tenable-universal-layout 0.0.1-security → 7.20.13

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.

Potentially problematic release.


This version of tenable-universal-layout might be problematic. Click here for more details.

Files changed (967) hide show
  1. package/dist/_entrypoints/client.d.ts +5 -0
  2. package/dist/_entrypoints/client.js +26 -0
  3. package/dist/_entrypoints/client.js.map +1 -0
  4. package/dist/_entrypoints/server.d.ts +13 -0
  5. package/dist/_entrypoints/server.js +43 -0
  6. package/dist/_entrypoints/server.js.map +1 -0
  7. package/dist/appSample/data.d.ts +253 -0
  8. package/dist/appSample/data.js +396 -0
  9. package/dist/appSample/data.js.map +1 -0
  10. package/dist/appSample/getAppSampleTulConfig.d.ts +9 -0
  11. package/dist/appSample/getAppSampleTulConfig.js +393 -0
  12. package/dist/appSample/getAppSampleTulConfig.js.map +1 -0
  13. package/dist/appSample/index.d.ts +1 -0
  14. package/dist/appSample/index.js +64 -0
  15. package/dist/appSample/index.js.map +1 -0
  16. package/dist/appSample/renderAppSample.d.ts +7 -0
  17. package/dist/appSample/renderAppSample.js +136 -0
  18. package/dist/appSample/renderAppSample.js.map +1 -0
  19. package/dist/appSample/slot-data.d.ts +50 -0
  20. package/dist/appSample/slot-data.js +116 -0
  21. package/dist/appSample/slot-data.js.map +1 -0
  22. package/dist/assets/fonts/Barlow-Medium.woff +0 -0
  23. package/dist/assets/fonts/Barlow-Medium.woff2 +0 -0
  24. package/dist/assets/fonts/Barlow-Regular.woff +0 -0
  25. package/dist/assets/fonts/Barlow-Regular.woff2 +0 -0
  26. package/dist/assets/fonts/Barlow-SemiBold.woff +0 -0
  27. package/dist/assets/fonts/Barlow-SemiBold.woff2 +0 -0
  28. package/dist/assets/fonts/BarlowCondensed-Light.woff +0 -0
  29. package/dist/assets/fonts/BarlowCondensed-Light.woff2 +0 -0
  30. package/dist/assets/fonts/BarlowCondensed-Medium.woff +0 -0
  31. package/dist/assets/fonts/BarlowCondensed-Medium.woff2 +0 -0
  32. package/dist/assets/fonts/BarlowCondensed-Regular.woff +0 -0
  33. package/dist/assets/fonts/BarlowCondensed-Regular.woff2 +0 -0
  34. package/dist/assets/fonts/fonts.css +71 -0
  35. package/dist/assets/images/Tenable_Logo.png +0 -0
  36. package/dist/assets/images/dev/test.png +0 -0
  37. package/dist/assets/images/logos/ASM-FullColor-RGB-logo.svg +1 -0
  38. package/dist/assets/images/logos/ASM-White-RGB-logo.svg +1 -0
  39. package/dist/assets/images/logos/ASM-stacked-FullColor-RGB-logo.svg +1 -0
  40. package/dist/assets/images/logos/ASM-stacked-White-RGB-logo.svg +1 -0
  41. package/dist/assets/images/logos/CS-FullColor-RGB-logo.svg +1 -0
  42. package/dist/assets/images/logos/CS-White-RGB-logo.svg +1 -0
  43. package/dist/assets/images/logos/CS-stacked-FullColor-RGB-logo.svg +1 -0
  44. package/dist/assets/images/logos/CS-stacked-White-RGB-logo.svg +1 -0
  45. package/dist/assets/images/logos/IE-FullColor-RGB-logo.svg +1 -0
  46. package/dist/assets/images/logos/IE-White-RGB-logo.svg +1 -0
  47. package/dist/assets/images/logos/IE-stacked-FullColor-RGB-logo.svg +1 -0
  48. package/dist/assets/images/logos/IE-stacked-White-RGB-logo.svg +1 -0
  49. package/dist/assets/images/logos/Lumin-FullColor-RGB-logo.svg +1 -0
  50. package/dist/assets/images/logos/Lumin-White-RGB-logo.svg +1 -0
  51. package/dist/assets/images/logos/Lumin-stacked-FullColor-RGB-logo.svg +1 -0
  52. package/dist/assets/images/logos/Lumin-stacked-White-RGB-logo.svg +1 -0
  53. package/dist/assets/images/logos/Nessus-Essentials-FullColor-RGB-logo.svg +1 -0
  54. package/dist/assets/images/logos/Nessus-Essentials-White-RGB-logo.svg +1 -0
  55. package/dist/assets/images/logos/Nessus-Essentials-stacked-FullColor-RGB-logo.svg +1 -0
  56. package/dist/assets/images/logos/Nessus-Essentials-stacked-White-RGB-logo.svg +1 -0
  57. package/dist/assets/images/logos/Nessus-Expert-FullColor-RGB-logo.svg +1 -0
  58. package/dist/assets/images/logos/Nessus-Expert-White-RGB-logo.svg +1 -0
  59. package/dist/assets/images/logos/Nessus-Expert-stacked-FullColor-RGB-logo.svg +1 -0
  60. package/dist/assets/images/logos/Nessus-Expert-stacked-White-RGB-logo.svg +1 -0
  61. package/dist/assets/images/logos/Nessus-FullColor-RGB-logo.svg +1 -0
  62. package/dist/assets/images/logos/Nessus-Pro-FullColor-RGB-logo.svg +1 -0
  63. package/dist/assets/images/logos/Nessus-Pro-White-RGB-logo.svg +1 -0
  64. package/dist/assets/images/logos/Nessus-Pro-stacked-FullColor-RGB-logo.svg +1 -0
  65. package/dist/assets/images/logos/Nessus-Pro-stacked-White-RGB-logo.svg +1 -0
  66. package/dist/assets/images/logos/Nessus-White-RGB-logo.svg +1 -0
  67. package/dist/assets/images/logos/Nessus-stacked-FullColor-RGB-logo.svg +1 -0
  68. package/dist/assets/images/logos/Nessus-stacked-White-RGB-logo.svg +1 -0
  69. package/dist/assets/images/logos/OT-FullColor-RGB-logo.svg +1 -0
  70. package/dist/assets/images/logos/OT-White-RGB-logo.svg +1 -0
  71. package/dist/assets/images/logos/OT-stacked-FullColor-RGB-logo.svg +1 -0
  72. package/dist/assets/images/logos/OT-stacked-White-RGB-logo.svg +1 -0
  73. package/dist/assets/images/logos/PCI-FullColor-RGB-logo.svg +1 -0
  74. package/dist/assets/images/logos/PCI-White-RGB-logo.svg +1 -0
  75. package/dist/assets/images/logos/PCI-stacked-FullColor-RGB-logo.svg +1 -0
  76. package/dist/assets/images/logos/PCI-stacked-White-RGB-logo.svg +1 -0
  77. package/dist/assets/images/logos/SC-Director-FullColor-RGB-logo.svg +1 -0
  78. package/dist/assets/images/logos/SC-Director-White-RGB-logo.svg +1 -0
  79. package/dist/assets/images/logos/SC-Director-stacked-FullColor-RGB-logo.svg +1 -0
  80. package/dist/assets/images/logos/SC-Director-stacked-White-RGB-logo.svg +1 -0
  81. package/dist/assets/images/logos/SC-FullColor-RGB-logo.svg +1 -0
  82. package/dist/assets/images/logos/SC-Plus-FullColor-RGB-logo.svg +1 -0
  83. package/dist/assets/images/logos/SC-Plus-White-RGB-logo.svg +1 -0
  84. package/dist/assets/images/logos/SC-Plus-stacked-FullColor-RGB-logo.svg +1 -0
  85. package/dist/assets/images/logos/SC-Plus-stacked-White-RGB-logo.svg +1 -0
  86. package/dist/assets/images/logos/SC-White-RGB-logo.svg +1 -0
  87. package/dist/assets/images/logos/SC-stacked-FullColor-RGB-logo.svg +1 -0
  88. package/dist/assets/images/logos/SC-stacked-White-RGB-logo.svg +1 -0
  89. package/dist/assets/images/logos/Tenable-One-FullColor-RGB-logo.svg +1 -0
  90. package/dist/assets/images/logos/Tenable-One-White-RGB-logo.svg +88 -0
  91. package/dist/assets/images/logos/Tenable-One-tagline-FullColor-RGB-logo.svg +1 -0
  92. package/dist/assets/images/logos/Tenable-One-tagline-White-RGB-logo.svg +1 -0
  93. package/dist/assets/images/logos/TenableLogo_FullColor_RGB.svg +11 -0
  94. package/dist/assets/images/logos/TerrascanTM_BY_Logo.svg +83 -0
  95. package/dist/assets/images/logos/TerrascanTM_BY_Logo_WHITE.svg +135 -0
  96. package/dist/assets/images/logos/TerrascanTM_BY_TALL_Logo.svg +83 -0
  97. package/dist/assets/images/logos/TerrascanTM_BY_TALL_Logo_WHITE.svg +136 -0
  98. package/dist/assets/images/logos/VM-FullColor-RGB-logo.svg +1 -0
  99. package/dist/assets/images/logos/VM-White-RGB-logo.svg +1 -0
  100. package/dist/assets/images/logos/VM-stacked-FullColor-RGB-logo.svg +1 -0
  101. package/dist/assets/images/logos/VM-stacked-White-RGB-logo.svg +1 -0
  102. package/dist/assets/images/logos/WAS-FullColor-RGB-logo.svg +1 -0
  103. package/dist/assets/images/logos/WAS-White-RGB-logo.svg +1 -0
  104. package/dist/assets/images/logos/WAS-stacked-FullColor-RGB-logo.svg +1 -0
  105. package/dist/assets/images/logos/WAS-stacked-White-RGB-logo.svg +1 -0
  106. package/dist/components/GlobalHeader/GlobalHeader.d.ts +14 -0
  107. package/dist/components/GlobalHeader/GlobalHeader.js +198 -0
  108. package/dist/components/GlobalHeader/GlobalHeader.js.map +1 -0
  109. package/dist/components/GlobalHeader/controller/MenuKeyboardController.d.ts +21 -0
  110. package/dist/components/GlobalHeader/controller/MenuKeyboardController.js +165 -0
  111. package/dist/components/GlobalHeader/controller/MenuKeyboardController.js.map +1 -0
  112. package/dist/components/GlobalHeader/controller/NavigationMenuKeyboardController.d.ts +4 -0
  113. package/dist/components/GlobalHeader/controller/NavigationMenuKeyboardController.js +25 -0
  114. package/dist/components/GlobalHeader/controller/NavigationMenuKeyboardController.js.map +1 -0
  115. package/dist/components/GlobalHeader/controller/TelemetryController.d.ts +13 -0
  116. package/dist/components/GlobalHeader/controller/TelemetryController.js +26 -0
  117. package/dist/components/GlobalHeader/controller/TelemetryController.js.map +1 -0
  118. package/dist/components/GlobalHeader/controller/UniversalNavigationController.d.ts +15 -0
  119. package/dist/components/GlobalHeader/controller/UniversalNavigationController.js +60 -0
  120. package/dist/components/GlobalHeader/controller/UniversalNavigationController.js.map +1 -0
  121. package/dist/components/GlobalHeader/index.d.ts +77 -0
  122. package/dist/components/GlobalHeader/index.js +80 -0
  123. package/dist/components/GlobalHeader/index.js.map +1 -0
  124. package/dist/components/GlobalHeader/styles.d.ts +9 -0
  125. package/dist/components/GlobalHeader/styles.js +14 -0
  126. package/dist/components/GlobalHeader/styles.js.map +1 -0
  127. package/dist/components/GlobalHeader/utils/data/AppSettingsData.d.ts +2 -0
  128. package/dist/components/GlobalHeader/utils/data/AppSettingsData.js +19 -0
  129. package/dist/components/GlobalHeader/utils/data/AppSettingsData.js.map +1 -0
  130. package/dist/components/GlobalHeader/utils/data/BreadCrumbsData.d.ts +3 -0
  131. package/dist/components/GlobalHeader/utils/data/BreadCrumbsData.js +38 -0
  132. package/dist/components/GlobalHeader/utils/data/BreadCrumbsData.js.map +1 -0
  133. package/dist/components/GlobalHeader/utils/data/NavigationData.d.ts +2 -0
  134. package/dist/components/GlobalHeader/utils/data/NavigationData.js +88 -0
  135. package/dist/components/GlobalHeader/utils/data/NavigationData.js.map +1 -0
  136. package/dist/components/GlobalHeader/utils/data/PlatformSettingsData.d.ts +2 -0
  137. package/dist/components/GlobalHeader/utils/data/PlatformSettingsData.js +30 -0
  138. package/dist/components/GlobalHeader/utils/data/PlatformSettingsData.js.map +1 -0
  139. package/dist/components/GlobalHeader/utils/data/QuickActionsData.d.ts +2 -0
  140. package/dist/components/GlobalHeader/utils/data/QuickActionsData.js +47 -0
  141. package/dist/components/GlobalHeader/utils/data/QuickActionsData.js.map +1 -0
  142. package/dist/components/GlobalHeader/utils/data/UserProfileMenuData.d.ts +3 -0
  143. package/dist/components/GlobalHeader/utils/data/UserProfileMenuData.js +56 -0
  144. package/dist/components/GlobalHeader/utils/data/UserProfileMenuData.js.map +1 -0
  145. package/dist/components/GlobalHeader/utils/data/WorskspaceAppsData.d.ts +8 -0
  146. package/dist/components/GlobalHeader/utils/data/WorskspaceAppsData.js +54 -0
  147. package/dist/components/GlobalHeader/utils/data/WorskspaceAppsData.js.map +1 -0
  148. package/dist/components/GlobalHeader/utils/mergeMenuItems.d.ts +6 -0
  149. package/dist/components/GlobalHeader/utils/mergeMenuItems.js +12 -0
  150. package/dist/components/GlobalHeader/utils/mergeMenuItems.js.map +1 -0
  151. package/dist/components/GlobalHeader/utils/renderer.d.ts +5 -0
  152. package/dist/components/GlobalHeader/utils/renderer.js +63 -0
  153. package/dist/components/GlobalHeader/utils/renderer.js.map +1 -0
  154. package/dist/components/GlobalHeader/utils/slot.d.ts +7 -0
  155. package/dist/components/GlobalHeader/utils/slot.js +14 -0
  156. package/dist/components/GlobalHeader/utils/slot.js.map +1 -0
  157. package/dist/components/GlobalHeader/utils/uuid.d.ts +4 -0
  158. package/dist/components/GlobalHeader/utils/uuid.js +27 -0
  159. package/dist/components/GlobalHeader/utils/uuid.js.map +1 -0
  160. package/dist/components/GlobalHeader/views/ActionPanel/ActionController.d.ts +15 -0
  161. package/dist/components/GlobalHeader/views/ActionPanel/ActionController.js +66 -0
  162. package/dist/components/GlobalHeader/views/ActionPanel/ActionController.js.map +1 -0
  163. package/dist/components/GlobalHeader/views/ActionPanel/ActionPanel.d.ts +17 -0
  164. package/dist/components/GlobalHeader/views/ActionPanel/ActionPanel.js +42 -0
  165. package/dist/components/GlobalHeader/views/ActionPanel/ActionPanel.js.map +1 -0
  166. package/dist/components/GlobalHeader/views/ActionPanel/Body/ActionPanelBody.d.ts +23 -0
  167. package/dist/components/GlobalHeader/views/ActionPanel/Body/ActionPanelBody.js +81 -0
  168. package/dist/components/GlobalHeader/views/ActionPanel/Body/ActionPanelBody.js.map +1 -0
  169. package/dist/components/GlobalHeader/views/ActionPanel/Body/styles.d.ts +1 -0
  170. package/dist/components/GlobalHeader/views/ActionPanel/Body/styles.js +17 -0
  171. package/dist/components/GlobalHeader/views/ActionPanel/Body/styles.js.map +1 -0
  172. package/dist/components/GlobalHeader/views/ActionPanel/Header/ActionPanelHeader.d.ts +18 -0
  173. package/dist/components/GlobalHeader/views/ActionPanel/Header/ActionPanelHeader.js +54 -0
  174. package/dist/components/GlobalHeader/views/ActionPanel/Header/ActionPanelHeader.js.map +1 -0
  175. package/dist/components/GlobalHeader/views/ActionPanel/Header/styles.d.ts +1 -0
  176. package/dist/components/GlobalHeader/views/ActionPanel/Header/styles.js +32 -0
  177. package/dist/components/GlobalHeader/views/ActionPanel/Header/styles.js.map +1 -0
  178. package/dist/components/GlobalHeader/views/ActionPanel/styles.d.ts +1 -0
  179. package/dist/components/GlobalHeader/views/ActionPanel/styles.js +34 -0
  180. package/dist/components/GlobalHeader/views/ActionPanel/styles.js.map +1 -0
  181. package/dist/components/GlobalHeader/views/AppSpecificActions/AppActions.d.ts +18 -0
  182. package/dist/components/GlobalHeader/views/AppSpecificActions/AppActions.js +78 -0
  183. package/dist/components/GlobalHeader/views/AppSpecificActions/AppActions.js.map +1 -0
  184. package/dist/components/GlobalHeader/views/AppSpecificActions/styles.d.ts +1 -0
  185. package/dist/components/GlobalHeader/views/AppSpecificActions/styles.js +10 -0
  186. package/dist/components/GlobalHeader/views/AppSpecificActions/styles.js.map +1 -0
  187. package/dist/components/GlobalHeader/views/AssistMode/AssistMode.d.ts +15 -0
  188. package/dist/components/GlobalHeader/views/AssistMode/AssistMode.js +96 -0
  189. package/dist/components/GlobalHeader/views/AssistMode/AssistMode.js.map +1 -0
  190. package/dist/components/GlobalHeader/views/AssistMode/styles.d.ts +1 -0
  191. package/dist/components/GlobalHeader/views/AssistMode/styles.js +68 -0
  192. package/dist/components/GlobalHeader/views/AssistMode/styles.js.map +1 -0
  193. package/dist/components/GlobalHeader/views/Avatar/Avatar.d.ts +18 -0
  194. package/dist/components/GlobalHeader/views/Avatar/Avatar.js +102 -0
  195. package/dist/components/GlobalHeader/views/Avatar/Avatar.js.map +1 -0
  196. package/dist/components/GlobalHeader/views/Badge/Badge.d.ts +19 -0
  197. package/dist/components/GlobalHeader/views/Badge/Badge.js +55 -0
  198. package/dist/components/GlobalHeader/views/Badge/Badge.js.map +1 -0
  199. package/dist/components/GlobalHeader/views/Badge/styles.d.ts +1 -0
  200. package/dist/components/GlobalHeader/views/Badge/styles.js +100 -0
  201. package/dist/components/GlobalHeader/views/Badge/styles.js.map +1 -0
  202. package/dist/components/GlobalHeader/views/Badge/types.d.ts +6 -0
  203. package/dist/components/GlobalHeader/views/Badge/types.js +3 -0
  204. package/dist/components/GlobalHeader/views/Badge/types.js.map +1 -0
  205. package/dist/components/GlobalHeader/views/BaseEvent.d.ts +4 -0
  206. package/dist/components/GlobalHeader/views/BaseEvent.js +12 -0
  207. package/dist/components/GlobalHeader/views/BaseEvent.js.map +1 -0
  208. package/dist/components/GlobalHeader/views/BaseStyles.d.ts +1 -0
  209. package/dist/components/GlobalHeader/views/BaseStyles.js +23 -0
  210. package/dist/components/GlobalHeader/views/BaseStyles.js.map +1 -0
  211. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/BreadCrumb.d.ts +12 -0
  212. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/BreadCrumb.js +45 -0
  213. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/BreadCrumb.js.map +1 -0
  214. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/styles.d.ts +1 -0
  215. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/styles.js +16 -0
  216. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/styles.js.map +1 -0
  217. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/BreadCrumbItem.d.ts +19 -0
  218. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/BreadCrumbItem.js +119 -0
  219. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/BreadCrumbItem.js.map +1 -0
  220. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/styles.d.ts +1 -0
  221. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/styles.js +37 -0
  222. package/dist/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/styles.js.map +1 -0
  223. package/dist/components/GlobalHeader/views/Button/Button.d.ts +34 -0
  224. package/dist/components/GlobalHeader/views/Button/Button.js +134 -0
  225. package/dist/components/GlobalHeader/views/Button/Button.js.map +1 -0
  226. package/dist/components/GlobalHeader/views/Button/LinkButton/LinkButton.d.ts +20 -0
  227. package/dist/components/GlobalHeader/views/Button/LinkButton/LinkButton.js +64 -0
  228. package/dist/components/GlobalHeader/views/Button/LinkButton/LinkButton.js.map +1 -0
  229. package/dist/components/GlobalHeader/views/Button/LinkButton/styles.d.ts +1 -0
  230. package/dist/components/GlobalHeader/views/Button/LinkButton/styles.js +85 -0
  231. package/dist/components/GlobalHeader/views/Button/LinkButton/styles.js.map +1 -0
  232. package/dist/components/GlobalHeader/views/Button/SecondaryButton/SecondaryButton.d.ts +9 -0
  233. package/dist/components/GlobalHeader/views/Button/SecondaryButton/SecondaryButton.js +21 -0
  234. package/dist/components/GlobalHeader/views/Button/SecondaryButton/SecondaryButton.js.map +1 -0
  235. package/dist/components/GlobalHeader/views/Button/SecondaryButton/styles.d.ts +1 -0
  236. package/dist/components/GlobalHeader/views/Button/SecondaryButton/styles.js +67 -0
  237. package/dist/components/GlobalHeader/views/Button/SecondaryButton/styles.js.map +1 -0
  238. package/dist/components/GlobalHeader/views/Button/styles.d.ts +1 -0
  239. package/dist/components/GlobalHeader/views/Button/styles.js +127 -0
  240. package/dist/components/GlobalHeader/views/Button/styles.js.map +1 -0
  241. package/dist/components/GlobalHeader/views/Chat/ChatAction.d.ts +22 -0
  242. package/dist/components/GlobalHeader/views/Chat/ChatAction.js +96 -0
  243. package/dist/components/GlobalHeader/views/Chat/ChatAction.js.map +1 -0
  244. package/dist/components/GlobalHeader/views/Chat/ChatPanel.d.ts +19 -0
  245. package/dist/components/GlobalHeader/views/Chat/ChatPanel.js +50 -0
  246. package/dist/components/GlobalHeader/views/Chat/ChatPanel.js.map +1 -0
  247. package/dist/components/GlobalHeader/views/Chat/styles.d.ts +1 -0
  248. package/dist/components/GlobalHeader/views/Chat/styles.js +14 -0
  249. package/dist/components/GlobalHeader/views/Chat/styles.js.map +1 -0
  250. package/dist/components/GlobalHeader/views/FloatingButton/FloatingButton.d.ts +23 -0
  251. package/dist/components/GlobalHeader/views/FloatingButton/FloatingButton.js +88 -0
  252. package/dist/components/GlobalHeader/views/FloatingButton/FloatingButton.js.map +1 -0
  253. package/dist/components/GlobalHeader/views/FloatingButton/styles.d.ts +1 -0
  254. package/dist/components/GlobalHeader/views/FloatingButton/styles.js +83 -0
  255. package/dist/components/GlobalHeader/views/FloatingButton/styles.js.map +1 -0
  256. package/dist/components/GlobalHeader/views/FloatingTextButton/FloatingTextButton.d.ts +23 -0
  257. package/dist/components/GlobalHeader/views/FloatingTextButton/FloatingTextButton.js +99 -0
  258. package/dist/components/GlobalHeader/views/FloatingTextButton/FloatingTextButton.js.map +1 -0
  259. package/dist/components/GlobalHeader/views/FloatingTextButton/styles.d.ts +1 -0
  260. package/dist/components/GlobalHeader/views/FloatingTextButton/styles.js +92 -0
  261. package/dist/components/GlobalHeader/views/FloatingTextButton/styles.js.map +1 -0
  262. package/dist/components/GlobalHeader/views/Header/Header.d.ts +46 -0
  263. package/dist/components/GlobalHeader/views/Header/Header.js +264 -0
  264. package/dist/components/GlobalHeader/views/Header/Header.js.map +1 -0
  265. package/dist/components/GlobalHeader/views/Header/HeaderEvent.d.ts +5 -0
  266. package/dist/components/GlobalHeader/views/Header/HeaderEvent.js +10 -0
  267. package/dist/components/GlobalHeader/views/Header/HeaderEvent.js.map +1 -0
  268. package/dist/components/GlobalHeader/views/Header/NavigationEvent.d.ts +8 -0
  269. package/dist/components/GlobalHeader/views/Header/NavigationEvent.js +13 -0
  270. package/dist/components/GlobalHeader/views/Header/NavigationEvent.js.map +1 -0
  271. package/dist/components/GlobalHeader/views/Header/ToggleSwitchEvent.d.ts +4 -0
  272. package/dist/components/GlobalHeader/views/Header/ToggleSwitchEvent.js +9 -0
  273. package/dist/components/GlobalHeader/views/Header/ToggleSwitchEvent.js.map +1 -0
  274. package/dist/components/GlobalHeader/views/Header/styles.d.ts +1 -0
  275. package/dist/components/GlobalHeader/views/Header/styles.js +129 -0
  276. package/dist/components/GlobalHeader/views/Header/styles.js.map +1 -0
  277. package/dist/components/GlobalHeader/views/Help/HelpAction.d.ts +21 -0
  278. package/dist/components/GlobalHeader/views/Help/HelpAction.js +83 -0
  279. package/dist/components/GlobalHeader/views/Help/HelpAction.js.map +1 -0
  280. package/dist/components/GlobalHeader/views/Help/styles.d.ts +1 -0
  281. package/dist/components/GlobalHeader/views/Help/styles.js +29 -0
  282. package/dist/components/GlobalHeader/views/Help/styles.js.map +1 -0
  283. package/dist/components/GlobalHeader/views/Icon/AccessControl.d.ts +12 -0
  284. package/dist/components/GlobalHeader/views/Icon/AccessControl.js +63 -0
  285. package/dist/components/GlobalHeader/views/Icon/AccessControl.js.map +1 -0
  286. package/dist/components/GlobalHeader/views/Icon/ActivityLogs.d.ts +12 -0
  287. package/dist/components/GlobalHeader/views/Icon/ActivityLogs.js +95 -0
  288. package/dist/components/GlobalHeader/views/Icon/ActivityLogs.js.map +1 -0
  289. package/dist/components/GlobalHeader/views/Icon/Announcement.d.ts +12 -0
  290. package/dist/components/GlobalHeader/views/Icon/Announcement.js +57 -0
  291. package/dist/components/GlobalHeader/views/Icon/Announcement.js.map +1 -0
  292. package/dist/components/GlobalHeader/views/Icon/AsmApp.d.ts +12 -0
  293. package/dist/components/GlobalHeader/views/Icon/AsmApp.js +110 -0
  294. package/dist/components/GlobalHeader/views/Icon/AsmApp.js.map +1 -0
  295. package/dist/components/GlobalHeader/views/Icon/AssetInventory.d.ts +12 -0
  296. package/dist/components/GlobalHeader/views/Icon/AssetInventory.js +81 -0
  297. package/dist/components/GlobalHeader/views/Icon/AssetInventory.js.map +1 -0
  298. package/dist/components/GlobalHeader/views/Icon/AttackPathApp.d.ts +12 -0
  299. package/dist/components/GlobalHeader/views/Icon/AttackPathApp.js +74 -0
  300. package/dist/components/GlobalHeader/views/Icon/AttackPathApp.js.map +1 -0
  301. package/dist/components/GlobalHeader/views/Icon/Bell.d.ts +12 -0
  302. package/dist/components/GlobalHeader/views/Icon/Bell.js +52 -0
  303. package/dist/components/GlobalHeader/views/Icon/Bell.js.map +1 -0
  304. package/dist/components/GlobalHeader/views/Icon/Book.d.ts +12 -0
  305. package/dist/components/GlobalHeader/views/Icon/Book.js +51 -0
  306. package/dist/components/GlobalHeader/views/Icon/Book.js.map +1 -0
  307. package/dist/components/GlobalHeader/views/Icon/Chat.d.ts +12 -0
  308. package/dist/components/GlobalHeader/views/Icon/Chat.js +46 -0
  309. package/dist/components/GlobalHeader/views/Icon/Chat.js.map +1 -0
  310. package/dist/components/GlobalHeader/views/Icon/ChevronDown.d.ts +12 -0
  311. package/dist/components/GlobalHeader/views/Icon/ChevronDown.js +46 -0
  312. package/dist/components/GlobalHeader/views/Icon/ChevronDown.js.map +1 -0
  313. package/dist/components/GlobalHeader/views/Icon/ChevronLeft.d.ts +12 -0
  314. package/dist/components/GlobalHeader/views/Icon/ChevronLeft.js +46 -0
  315. package/dist/components/GlobalHeader/views/Icon/ChevronLeft.js.map +1 -0
  316. package/dist/components/GlobalHeader/views/Icon/ChevronRight.d.ts +12 -0
  317. package/dist/components/GlobalHeader/views/Icon/ChevronRight.js +46 -0
  318. package/dist/components/GlobalHeader/views/Icon/ChevronRight.js.map +1 -0
  319. package/dist/components/GlobalHeader/views/Icon/CloseLarge.d.ts +12 -0
  320. package/dist/components/GlobalHeader/views/Icon/CloseLarge.js +53 -0
  321. package/dist/components/GlobalHeader/views/Icon/CloseLarge.js.map +1 -0
  322. package/dist/components/GlobalHeader/views/Icon/CloseSmall.d.ts +12 -0
  323. package/dist/components/GlobalHeader/views/Icon/CloseSmall.js +60 -0
  324. package/dist/components/GlobalHeader/views/Icon/CloseSmall.js.map +1 -0
  325. package/dist/components/GlobalHeader/views/Icon/CloudSecurityApp.d.ts +12 -0
  326. package/dist/components/GlobalHeader/views/Icon/CloudSecurityApp.js +45 -0
  327. package/dist/components/GlobalHeader/views/Icon/CloudSecurityApp.js.map +1 -0
  328. package/dist/components/GlobalHeader/views/Icon/ContainerSecurity.d.ts +12 -0
  329. package/dist/components/GlobalHeader/views/Icon/ContainerSecurity.js +58 -0
  330. package/dist/components/GlobalHeader/views/Icon/ContainerSecurity.js.map +1 -0
  331. package/dist/components/GlobalHeader/views/Icon/Ecosystem.d.ts +12 -0
  332. package/dist/components/GlobalHeader/views/Icon/Ecosystem.js +74 -0
  333. package/dist/components/GlobalHeader/views/Icon/Ecosystem.js.map +1 -0
  334. package/dist/components/GlobalHeader/views/Icon/HamburgerOpen.d.ts +12 -0
  335. package/dist/components/GlobalHeader/views/Icon/HamburgerOpen.js +60 -0
  336. package/dist/components/GlobalHeader/views/Icon/HamburgerOpen.js.map +1 -0
  337. package/dist/components/GlobalHeader/views/Icon/Help.d.ts +12 -0
  338. package/dist/components/GlobalHeader/views/Icon/Help.js +60 -0
  339. package/dist/components/GlobalHeader/views/Icon/Help.js.map +1 -0
  340. package/dist/components/GlobalHeader/views/Icon/IconBase.d.ts +7 -0
  341. package/dist/components/GlobalHeader/views/Icon/IconBase.js +144 -0
  342. package/dist/components/GlobalHeader/views/Icon/IconBase.js.map +1 -0
  343. package/dist/components/GlobalHeader/views/Icon/IdentityExposure.d.ts +12 -0
  344. package/dist/components/GlobalHeader/views/Icon/IdentityExposure.js +53 -0
  345. package/dist/components/GlobalHeader/views/Icon/IdentityExposure.js.map +1 -0
  346. package/dist/components/GlobalHeader/views/Icon/Info.d.ts +12 -0
  347. package/dist/components/GlobalHeader/views/Icon/Info.js +61 -0
  348. package/dist/components/GlobalHeader/views/Icon/Info.js.map +1 -0
  349. package/dist/components/GlobalHeader/views/Icon/LicenseInformation.d.ts +12 -0
  350. package/dist/components/GlobalHeader/views/Icon/LicenseInformation.js +95 -0
  351. package/dist/components/GlobalHeader/views/Icon/LicenseInformation.js.map +1 -0
  352. package/dist/components/GlobalHeader/views/Icon/LuminApp.d.ts +12 -0
  353. package/dist/components/GlobalHeader/views/Icon/LuminApp.js +57 -0
  354. package/dist/components/GlobalHeader/views/Icon/LuminApp.js.map +1 -0
  355. package/dist/components/GlobalHeader/views/Icon/LuminExposureView.d.ts +12 -0
  356. package/dist/components/GlobalHeader/views/Icon/LuminExposureView.js +53 -0
  357. package/dist/components/GlobalHeader/views/Icon/LuminExposureView.js.map +1 -0
  358. package/dist/components/GlobalHeader/views/Icon/Moon.d.ts +12 -0
  359. package/dist/components/GlobalHeader/views/Icon/Moon.js +45 -0
  360. package/dist/components/GlobalHeader/views/Icon/Moon.js.map +1 -0
  361. package/dist/components/GlobalHeader/views/Icon/PCIASV.d.ts +12 -0
  362. package/dist/components/GlobalHeader/views/Icon/PCIASV.js +60 -0
  363. package/dist/components/GlobalHeader/views/Icon/PCIASV.js.map +1 -0
  364. package/dist/components/GlobalHeader/views/Icon/Reports.d.ts +12 -0
  365. package/dist/components/GlobalHeader/views/Icon/Reports.js +44 -0
  366. package/dist/components/GlobalHeader/views/Icon/Reports.js.map +1 -0
  367. package/dist/components/GlobalHeader/views/Icon/SecurityCenter.d.ts +12 -0
  368. package/dist/components/GlobalHeader/views/Icon/SecurityCenter.js +45 -0
  369. package/dist/components/GlobalHeader/views/Icon/SecurityCenter.js.map +1 -0
  370. package/dist/components/GlobalHeader/views/Icon/Settings.d.ts +12 -0
  371. package/dist/components/GlobalHeader/views/Icon/Settings.js +51 -0
  372. package/dist/components/GlobalHeader/views/Icon/Settings.js.map +1 -0
  373. package/dist/components/GlobalHeader/views/Icon/SignOut.d.ts +12 -0
  374. package/dist/components/GlobalHeader/views/Icon/SignOut.js +53 -0
  375. package/dist/components/GlobalHeader/views/Icon/SignOut.js.map +1 -0
  376. package/dist/components/GlobalHeader/views/Icon/Star.d.ts +12 -0
  377. package/dist/components/GlobalHeader/views/Icon/Star.js +52 -0
  378. package/dist/components/GlobalHeader/views/Icon/Star.js.map +1 -0
  379. package/dist/components/GlobalHeader/views/Icon/UserProfile.d.ts +12 -0
  380. package/dist/components/GlobalHeader/views/Icon/UserProfile.js +52 -0
  381. package/dist/components/GlobalHeader/views/Icon/UserProfile.js.map +1 -0
  382. package/dist/components/GlobalHeader/views/Icon/VMApp.d.ts +12 -0
  383. package/dist/components/GlobalHeader/views/Icon/VMApp.js +46 -0
  384. package/dist/components/GlobalHeader/views/Icon/VMApp.js.map +1 -0
  385. package/dist/components/GlobalHeader/views/Icon/WASApp.d.ts +12 -0
  386. package/dist/components/GlobalHeader/views/Icon/WASApp.js +63 -0
  387. package/dist/components/GlobalHeader/views/Icon/WASApp.js.map +1 -0
  388. package/dist/components/GlobalHeader/views/Icon/WorkspaceApps.d.ts +12 -0
  389. package/dist/components/GlobalHeader/views/Icon/WorkspaceApps.js +102 -0
  390. package/dist/components/GlobalHeader/views/Icon/WorkspaceApps.js.map +1 -0
  391. package/dist/components/GlobalHeader/views/Icon/types.d.ts +11 -0
  392. package/dist/components/GlobalHeader/views/Icon/types.js +34 -0
  393. package/dist/components/GlobalHeader/views/Icon/types.js.map +1 -0
  394. package/dist/components/GlobalHeader/views/MenuGroupHeading/NavigationMenuHeading.d.ts +20 -0
  395. package/dist/components/GlobalHeader/views/MenuGroupHeading/NavigationMenuHeading.js +65 -0
  396. package/dist/components/GlobalHeader/views/MenuGroupHeading/NavigationMenuHeading.js.map +1 -0
  397. package/dist/components/GlobalHeader/views/MenuGroupHeading/styles.d.ts +1 -0
  398. package/dist/components/GlobalHeader/views/MenuGroupHeading/styles.js +82 -0
  399. package/dist/components/GlobalHeader/views/MenuGroupHeading/styles.js.map +1 -0
  400. package/dist/components/GlobalHeader/views/NavigationMenu/Menu/NavigationMenu.d.ts +21 -0
  401. package/dist/components/GlobalHeader/views/NavigationMenu/Menu/NavigationMenu.js +63 -0
  402. package/dist/components/GlobalHeader/views/NavigationMenu/Menu/NavigationMenu.js.map +1 -0
  403. package/dist/components/GlobalHeader/views/NavigationMenu/Menu/styles.d.ts +1 -0
  404. package/dist/components/GlobalHeader/views/NavigationMenu/Menu/styles.js +20 -0
  405. package/dist/components/GlobalHeader/views/NavigationMenu/Menu/styles.js.map +1 -0
  406. package/dist/components/GlobalHeader/views/NavigationMenu/MenuItem/NavigationMenuItem.d.ts +42 -0
  407. package/dist/components/GlobalHeader/views/NavigationMenu/MenuItem/NavigationMenuItem.js +274 -0
  408. package/dist/components/GlobalHeader/views/NavigationMenu/MenuItem/NavigationMenuItem.js.map +1 -0
  409. package/dist/components/GlobalHeader/views/NavigationMenu/MenuItem/styles.d.ts +1 -0
  410. package/dist/components/GlobalHeader/views/NavigationMenu/MenuItem/styles.js +110 -0
  411. package/dist/components/GlobalHeader/views/NavigationMenu/MenuItem/styles.js.map +1 -0
  412. package/dist/components/GlobalHeader/views/NavigationMenu/SubMenu/SubMenu.d.ts +20 -0
  413. package/dist/components/GlobalHeader/views/NavigationMenu/SubMenu/SubMenu.js +65 -0
  414. package/dist/components/GlobalHeader/views/NavigationMenu/SubMenu/SubMenu.js.map +1 -0
  415. package/dist/components/GlobalHeader/views/NavigationMenu/SubMenu/styles.d.ts +1 -0
  416. package/dist/components/GlobalHeader/views/NavigationMenu/SubMenu/styles.js +10 -0
  417. package/dist/components/GlobalHeader/views/NavigationMenu/SubMenu/styles.js.map +1 -0
  418. package/dist/components/GlobalHeader/views/NotificationBadge/NotificationBadge.d.ts +15 -0
  419. package/dist/components/GlobalHeader/views/NotificationBadge/NotificationBadge.js +60 -0
  420. package/dist/components/GlobalHeader/views/NotificationBadge/NotificationBadge.js.map +1 -0
  421. package/dist/components/GlobalHeader/views/Notifications/NotificationPanel.d.ts +19 -0
  422. package/dist/components/GlobalHeader/views/Notifications/NotificationPanel.js +50 -0
  423. package/dist/components/GlobalHeader/views/Notifications/NotificationPanel.js.map +1 -0
  424. package/dist/components/GlobalHeader/views/Notifications/NotificationsAction.d.ts +22 -0
  425. package/dist/components/GlobalHeader/views/Notifications/NotificationsAction.js +96 -0
  426. package/dist/components/GlobalHeader/views/Notifications/NotificationsAction.js.map +1 -0
  427. package/dist/components/GlobalHeader/views/Notifications/styles.d.ts +1 -0
  428. package/dist/components/GlobalHeader/views/Notifications/styles.js +14 -0
  429. package/dist/components/GlobalHeader/views/Notifications/styles.js.map +1 -0
  430. package/dist/components/GlobalHeader/views/PopOver/PopOver.d.ts +43 -0
  431. package/dist/components/GlobalHeader/views/PopOver/PopOver.js +292 -0
  432. package/dist/components/GlobalHeader/views/PopOver/PopOver.js.map +1 -0
  433. package/dist/components/GlobalHeader/views/PopOver/PopOverEvent.d.ts +13 -0
  434. package/dist/components/GlobalHeader/views/PopOver/PopOverEvent.js +10 -0
  435. package/dist/components/GlobalHeader/views/PopOver/PopOverEvent.js.map +1 -0
  436. package/dist/components/GlobalHeader/views/PopOver/PopOverStateController.d.ts +36 -0
  437. package/dist/components/GlobalHeader/views/PopOver/PopOverStateController.js +116 -0
  438. package/dist/components/GlobalHeader/views/PopOver/PopOverStateController.js.map +1 -0
  439. package/dist/components/GlobalHeader/views/PopOver/styles.d.ts +1 -0
  440. package/dist/components/GlobalHeader/views/PopOver/styles.js +34 -0
  441. package/dist/components/GlobalHeader/views/PopOver/styles.js.map +1 -0
  442. package/dist/components/GlobalHeader/views/QuickActions/QuickAction.d.ts +20 -0
  443. package/dist/components/GlobalHeader/views/QuickActions/QuickAction.js +75 -0
  444. package/dist/components/GlobalHeader/views/QuickActions/QuickAction.js.map +1 -0
  445. package/dist/components/GlobalHeader/views/QuickActions/QuickActionPanel.d.ts +28 -0
  446. package/dist/components/GlobalHeader/views/QuickActions/QuickActionPanel.js +78 -0
  447. package/dist/components/GlobalHeader/views/QuickActions/QuickActionPanel.js.map +1 -0
  448. package/dist/components/GlobalHeader/views/QuickActions/styles.d.ts +1 -0
  449. package/dist/components/GlobalHeader/views/QuickActions/styles.js +13 -0
  450. package/dist/components/GlobalHeader/views/QuickActions/styles.js.map +1 -0
  451. package/dist/components/GlobalHeader/views/Settings/SettingsAction.d.ts +20 -0
  452. package/dist/components/GlobalHeader/views/Settings/SettingsAction.js +95 -0
  453. package/dist/components/GlobalHeader/views/Settings/SettingsAction.js.map +1 -0
  454. package/dist/components/GlobalHeader/views/Settings/SettingsPanel.d.ts +36 -0
  455. package/dist/components/GlobalHeader/views/Settings/SettingsPanel.js +199 -0
  456. package/dist/components/GlobalHeader/views/Settings/SettingsPanel.js.map +1 -0
  457. package/dist/components/GlobalHeader/views/Settings/styles.d.ts +1 -0
  458. package/dist/components/GlobalHeader/views/Settings/styles.js +17 -0
  459. package/dist/components/GlobalHeader/views/Settings/styles.js.map +1 -0
  460. package/dist/components/GlobalHeader/views/ToggleSwitch/ToggleSwitch.d.ts +24 -0
  461. package/dist/components/GlobalHeader/views/ToggleSwitch/ToggleSwitch.js +102 -0
  462. package/dist/components/GlobalHeader/views/ToggleSwitch/ToggleSwitch.js.map +1 -0
  463. package/dist/components/GlobalHeader/views/ToggleSwitch/styles.d.ts +1 -0
  464. package/dist/components/GlobalHeader/views/ToggleSwitch/styles.js +106 -0
  465. package/dist/components/GlobalHeader/views/ToggleSwitch/styles.js.map +1 -0
  466. package/dist/components/GlobalHeader/views/Tooltip/Tooltip.d.ts +42 -0
  467. package/dist/components/GlobalHeader/views/Tooltip/Tooltip.js +219 -0
  468. package/dist/components/GlobalHeader/views/Tooltip/Tooltip.js.map +1 -0
  469. package/dist/components/GlobalHeader/views/Tooltip/styles.d.ts +1 -0
  470. package/dist/components/GlobalHeader/views/Tooltip/styles.js +57 -0
  471. package/dist/components/GlobalHeader/views/Tooltip/styles.js.map +1 -0
  472. package/dist/components/GlobalHeader/views/Typography/Heading3.d.ts +16 -0
  473. package/dist/components/GlobalHeader/views/Typography/Heading3.js +57 -0
  474. package/dist/components/GlobalHeader/views/Typography/Heading3.js.map +1 -0
  475. package/dist/components/GlobalHeader/views/Typography/SmallText.d.ts +17 -0
  476. package/dist/components/GlobalHeader/views/Typography/SmallText.js +68 -0
  477. package/dist/components/GlobalHeader/views/Typography/SmallText.js.map +1 -0
  478. package/dist/components/GlobalHeader/views/Typography/Text.d.ts +17 -0
  479. package/dist/components/GlobalHeader/views/Typography/Text.js +69 -0
  480. package/dist/components/GlobalHeader/views/Typography/Text.js.map +1 -0
  481. package/dist/components/GlobalHeader/views/UniversalNavigation/UniversalNavigation.d.ts +49 -0
  482. package/dist/components/GlobalHeader/views/UniversalNavigation/UniversalNavigation.js +321 -0
  483. package/dist/components/GlobalHeader/views/UniversalNavigation/UniversalNavigation.js.map +1 -0
  484. package/dist/components/GlobalHeader/views/UniversalNavigation/styles.d.ts +1 -0
  485. package/dist/components/GlobalHeader/views/UniversalNavigation/styles.js +108 -0
  486. package/dist/components/GlobalHeader/views/UniversalNavigation/styles.js.map +1 -0
  487. package/dist/components/GlobalHeader/views/UserProfile/UserAction.d.ts +20 -0
  488. package/dist/components/GlobalHeader/views/UserProfile/UserAction.js +70 -0
  489. package/dist/components/GlobalHeader/views/UserProfile/UserAction.js.map +1 -0
  490. package/dist/components/GlobalHeader/views/UserProfile/UserPanel.d.ts +25 -0
  491. package/dist/components/GlobalHeader/views/UserProfile/UserPanel.js +106 -0
  492. package/dist/components/GlobalHeader/views/UserProfile/UserPanel.js.map +1 -0
  493. package/dist/components/GlobalHeader/views/WorkspaceCard/WorkspaceCard.d.ts +30 -0
  494. package/dist/components/GlobalHeader/views/WorkspaceCard/WorkspaceCard.js +142 -0
  495. package/dist/components/GlobalHeader/views/WorkspaceCard/WorkspaceCard.js.map +1 -0
  496. package/dist/components/GlobalHeader/views/WorkspaceCard/styles.d.ts +1 -0
  497. package/dist/components/GlobalHeader/views/WorkspaceCard/styles.js +96 -0
  498. package/dist/components/GlobalHeader/views/WorkspaceCard/styles.js.map +1 -0
  499. package/dist/components/GlobalHeader/views/Workspaces/WorkspaceAction.d.ts +19 -0
  500. package/dist/components/GlobalHeader/views/Workspaces/WorkspaceAction.js +68 -0
  501. package/dist/components/GlobalHeader/views/Workspaces/WorkspaceAction.js.map +1 -0
  502. package/dist/components/GlobalHeader/views/Workspaces/WorkspacePanel.d.ts +48 -0
  503. package/dist/components/GlobalHeader/views/Workspaces/WorkspacePanel.js +242 -0
  504. package/dist/components/GlobalHeader/views/Workspaces/WorkspacePanel.js.map +1 -0
  505. package/dist/components/GlobalHeader/views/Workspaces/styles.d.ts +1 -0
  506. package/dist/components/GlobalHeader/views/Workspaces/styles.js +19 -0
  507. package/dist/components/GlobalHeader/views/Workspaces/styles.js.map +1 -0
  508. package/dist/components/TulHeader/index.d.ts +12 -0
  509. package/dist/components/TulHeader/index.js +30 -0
  510. package/dist/components/TulHeader/index.js.map +1 -0
  511. package/dist/consts.d.ts +7 -0
  512. package/dist/consts.js +13 -0
  513. package/dist/consts.js.map +1 -0
  514. package/dist/entities/EntityApp.d.ts +92 -0
  515. package/dist/entities/EntityApp.js +194 -0
  516. package/dist/entities/EntityApp.js.map +1 -0
  517. package/dist/entities/EntitySession.d.ts +100 -0
  518. package/dist/entities/EntitySession.js +192 -0
  519. package/dist/entities/EntitySession.js.map +1 -0
  520. package/dist/entities/consts.d.ts +2 -0
  521. package/dist/entities/consts.js +11 -0
  522. package/dist/entities/consts.js.map +1 -0
  523. package/dist/framework-browser-telemetry-0efeb35e.mjs +725 -0
  524. package/dist/framework-browser-telemetry-0efeb35e.mjs.map +1 -0
  525. package/dist/framework-browser-telemetry-17e06fd1.js +2 -0
  526. package/dist/framework-browser-telemetry-17e06fd1.js.map +1 -0
  527. package/dist/init/initTul.d.ts +11 -0
  528. package/dist/init/initTul.js +105 -0
  529. package/dist/init/initTul.js.map +1 -0
  530. package/dist/libs/Environment/Authentication/helpers.d.ts +10 -0
  531. package/dist/libs/Environment/Authentication/helpers.js +19 -0
  532. package/dist/libs/Environment/Authentication/helpers.js.map +1 -0
  533. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/index.d.ts +16 -0
  534. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/index.js +47 -0
  535. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/index.js.map +1 -0
  536. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/stubs/SessionResourceApiStub.d.ts +8 -0
  537. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/stubs/SessionResourceApiStub.js +26 -0
  538. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/stubs/SessionResourceApiStub.js.map +1 -0
  539. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/stubs/WugServerConfigResourceApiStub.d.ts +10 -0
  540. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/stubs/WugServerConfigResourceApiStub.js +31 -0
  541. package/dist/libs/Environment/OpenApiClients/OpenApiClientsStub/stubs/WugServerConfigResourceApiStub.js.map +1 -0
  542. package/dist/libs/Environment/OpenApiClients/index.d.ts +29 -0
  543. package/dist/libs/Environment/OpenApiClients/index.js +63 -0
  544. package/dist/libs/Environment/OpenApiClients/index.js.map +1 -0
  545. package/dist/libs/Environment/OpenApiClients/types.d.ts +14 -0
  546. package/dist/libs/Environment/OpenApiClients/types.js +9 -0
  547. package/dist/libs/Environment/OpenApiClients/types.js.map +1 -0
  548. package/dist/libs/Environment/createEnvironment.d.ts +6 -0
  549. package/dist/libs/Environment/createEnvironment.js +34 -0
  550. package/dist/libs/Environment/createEnvironment.js.map +1 -0
  551. package/dist/libs/Environment/createEnvironmentStub/DocumentStub.d.ts +7 -0
  552. package/dist/libs/Environment/createEnvironmentStub/DocumentStub.js +13 -0
  553. package/dist/libs/Environment/createEnvironmentStub/DocumentStub.js.map +1 -0
  554. package/dist/libs/Environment/createEnvironmentStub/PendoStub.d.ts +49 -0
  555. package/dist/libs/Environment/createEnvironmentStub/PendoStub.js +157 -0
  556. package/dist/libs/Environment/createEnvironmentStub/PendoStub.js.map +1 -0
  557. package/dist/libs/Environment/createEnvironmentStub/WindowStub.d.ts +8 -0
  558. package/dist/libs/Environment/createEnvironmentStub/WindowStub.js +14 -0
  559. package/dist/libs/Environment/createEnvironmentStub/WindowStub.js.map +1 -0
  560. package/dist/libs/Environment/createEnvironmentStub/configStub.d.ts +6 -0
  561. package/dist/libs/Environment/createEnvironmentStub/configStub.js +148 -0
  562. package/dist/libs/Environment/createEnvironmentStub/configStub.js.map +1 -0
  563. package/dist/libs/Environment/createEnvironmentStub/eventStub.d.ts +5 -0
  564. package/dist/libs/Environment/createEnvironmentStub/eventStub.js +10 -0
  565. package/dist/libs/Environment/createEnvironmentStub/eventStub.js.map +1 -0
  566. package/dist/libs/Environment/createEnvironmentStub/index.d.ts +6 -0
  567. package/dist/libs/Environment/createEnvironmentStub/index.js +31 -0
  568. package/dist/libs/Environment/createEnvironmentStub/index.js.map +1 -0
  569. package/dist/libs/Environment/createEnvironmentStub/types.d.ts +6 -0
  570. package/dist/libs/Environment/createEnvironmentStub/types.js +3 -0
  571. package/dist/libs/Environment/createEnvironmentStub/types.js.map +1 -0
  572. package/dist/libs/Environment/index.d.ts +4 -0
  573. package/dist/libs/Environment/index.js +11 -0
  574. package/dist/libs/Environment/index.js.map +1 -0
  575. package/dist/libs/FetchClient/FetchClient.d.ts +70 -0
  576. package/dist/libs/FetchClient/FetchClient.js +148 -0
  577. package/dist/libs/FetchClient/FetchClient.js.map +1 -0
  578. package/dist/libs/FetchClient/FetchClientStub.d.ts +36 -0
  579. package/dist/libs/FetchClient/FetchClientStub.js +80 -0
  580. package/dist/libs/FetchClient/FetchClientStub.js.map +1 -0
  581. package/dist/libs/FetchClient/handleFetchClientError.d.ts +6 -0
  582. package/dist/libs/FetchClient/handleFetchClientError.js +34 -0
  583. package/dist/libs/FetchClient/handleFetchClientError.js.map +1 -0
  584. package/dist/libs/FetchClient/index.d.ts +2 -0
  585. package/dist/libs/FetchClient/index.js +11 -0
  586. package/dist/libs/FetchClient/index.js.map +1 -0
  587. package/dist/libs/FetchClient/statusCodes.d.ts +66 -0
  588. package/dist/libs/FetchClient/statusCodes.js +134 -0
  589. package/dist/libs/FetchClient/statusCodes.js.map +1 -0
  590. package/dist/libs/FetchClient/types.d.ts +46 -0
  591. package/dist/libs/FetchClient/types.js +16 -0
  592. package/dist/libs/FetchClient/types.js.map +1 -0
  593. package/dist/libs/MobxLitElement/MobxReactionUpdate.d.ts +7 -0
  594. package/dist/libs/MobxLitElement/MobxReactionUpdate.js +43 -0
  595. package/dist/libs/MobxLitElement/MobxReactionUpdate.js.map +1 -0
  596. package/dist/libs/MobxLitElement/index.d.ts +65 -0
  597. package/dist/libs/MobxLitElement/index.js +92 -0
  598. package/dist/libs/MobxLitElement/index.js.map +1 -0
  599. package/dist/libs/OpenApiResponsesMocker/index.d.ts +13 -0
  600. package/dist/libs/OpenApiResponsesMocker/index.js +45 -0
  601. package/dist/libs/OpenApiResponsesMocker/index.js.map +1 -0
  602. package/dist/libs/OpenApiResponsesMocker/types.d.ts +7 -0
  603. package/dist/libs/OpenApiResponsesMocker/types.js +3 -0
  604. package/dist/libs/OpenApiResponsesMocker/types.js.map +1 -0
  605. package/dist/libs/authentication/parseCookie.d.ts +7 -0
  606. package/dist/libs/authentication/parseCookie.js +31 -0
  607. package/dist/libs/authentication/parseCookie.js.map +1 -0
  608. package/dist/libs/errors/CustomError.d.ts +11 -0
  609. package/dist/libs/errors/CustomError.js +33 -0
  610. package/dist/libs/errors/CustomError.js.map +1 -0
  611. package/dist/libs/errors/index.d.ts +7 -0
  612. package/dist/libs/errors/index.js +16 -0
  613. package/dist/libs/errors/index.js.map +1 -0
  614. package/dist/libs/errors/types.d.ts +4 -0
  615. package/dist/libs/errors/types.js +11 -0
  616. package/dist/libs/errors/types.js.map +1 -0
  617. package/dist/libs/helpers/map/indexEntitiesToMap.d.ts +8 -0
  618. package/dist/libs/helpers/map/indexEntitiesToMap.js +34 -0
  619. package/dist/libs/helpers/map/indexEntitiesToMap.js.map +1 -0
  620. package/dist/libs/helpers/map/setValuesToMap.d.ts +10 -0
  621. package/dist/libs/helpers/map/setValuesToMap.js +40 -0
  622. package/dist/libs/helpers/map/setValuesToMap.js.map +1 -0
  623. package/dist/libs/helpers/nullable/index.d.ts +6 -0
  624. package/dist/libs/helpers/nullable/index.js +15 -0
  625. package/dist/libs/helpers/nullable/index.js.map +1 -0
  626. package/dist/libs/helpers/objects/filterNullOrUndefinedValues.d.ts +5 -0
  627. package/dist/libs/helpers/objects/filterNullOrUndefinedValues.js +18 -0
  628. package/dist/libs/helpers/objects/filterNullOrUndefinedValues.js.map +1 -0
  629. package/dist/libs/i18n/index.d.ts +224 -0
  630. package/dist/libs/i18n/index.js +13 -0
  631. package/dist/libs/i18n/index.js.map +1 -0
  632. package/dist/libs/i18n/interpolateTemplate/index.d.ts +7 -0
  633. package/dist/libs/i18n/interpolateTemplate/index.js +37 -0
  634. package/dist/libs/i18n/interpolateTemplate/index.js.map +1 -0
  635. package/dist/libs/i18n/translate/helpers.d.ts +18 -0
  636. package/dist/libs/i18n/translate/helpers.js +101 -0
  637. package/dist/libs/i18n/translate/helpers.js.map +1 -0
  638. package/dist/libs/i18n/translate/index.d.ts +177 -0
  639. package/dist/libs/i18n/translate/index.js +37 -0
  640. package/dist/libs/i18n/translate/index.js.map +1 -0
  641. package/dist/libs/i18n/translations/en.json +53 -0
  642. package/dist/libs/i18n/translations/fr.json +53 -0
  643. package/dist/libs/i18n/translations/index.d.ts +5 -0
  644. package/dist/libs/i18n/translations/index.js +35 -0
  645. package/dist/libs/i18n/translations/index.js.map +1 -0
  646. package/dist/libs/i18n/translations/ja.json +53 -0
  647. package/dist/libs/i18n/translations/to.json +53 -0
  648. package/dist/libs/i18n/types.d.ts +8 -0
  649. package/dist/libs/i18n/types.js +3 -0
  650. package/dist/libs/i18n/types.js.map +1 -0
  651. package/dist/libs/json/index.d.ts +10 -0
  652. package/dist/libs/json/index.js +62 -0
  653. package/dist/libs/json/index.js.map +1 -0
  654. package/dist/libs/logger/index.d.ts +50 -0
  655. package/dist/libs/logger/index.js +24 -0
  656. package/dist/libs/logger/index.js.map +1 -0
  657. package/dist/libs/openapi/session/sessionResource/apis/DefaultApi.d.ts +57 -0
  658. package/dist/libs/openapi/session/sessionResource/apis/DefaultApi.js +144 -0
  659. package/dist/libs/openapi/session/sessionResource/apis/DefaultApi.js.map +1 -0
  660. package/dist/libs/openapi/session/sessionResource/apis/index.d.ts +1 -0
  661. package/dist/libs/openapi/session/sessionResource/apis/index.js +20 -0
  662. package/dist/libs/openapi/session/sessionResource/apis/index.js.map +1 -0
  663. package/dist/libs/openapi/session/sessionResource/index.d.ts +3 -0
  664. package/dist/libs/openapi/session/sessionResource/index.js +22 -0
  665. package/dist/libs/openapi/session/sessionResource/index.js.map +1 -0
  666. package/dist/libs/openapi/session/sessionResource/models/Features.d.ts +361 -0
  667. package/dist/libs/openapi/session/sessionResource/models/Features.js +268 -0
  668. package/dist/libs/openapi/session/sessionResource/models/Features.js.map +1 -0
  669. package/dist/libs/openapi/session/sessionResource/models/Group.d.ts +61 -0
  670. package/dist/libs/openapi/session/sessionResource/models/Group.js +68 -0
  671. package/dist/libs/openapi/session/sessionResource/models/Group.js.map +1 -0
  672. package/dist/libs/openapi/session/sessionResource/models/Preferences.d.ts +73 -0
  673. package/dist/libs/openapi/session/sessionResource/models/Preferences.js +62 -0
  674. package/dist/libs/openapi/session/sessionResource/models/Preferences.js.map +1 -0
  675. package/dist/libs/openapi/session/sessionResource/models/Session.d.ts +175 -0
  676. package/dist/libs/openapi/session/sessionResource/models/Session.js +132 -0
  677. package/dist/libs/openapi/session/sessionResource/models/Session.js.map +1 -0
  678. package/dist/libs/openapi/session/sessionResource/models/SessionTimeout.d.ts +37 -0
  679. package/dist/libs/openapi/session/sessionResource/models/SessionTimeout.js +48 -0
  680. package/dist/libs/openapi/session/sessionResource/models/SessionTimeout.js.map +1 -0
  681. package/dist/libs/openapi/session/sessionResource/models/UserPermissions.d.ts +93 -0
  682. package/dist/libs/openapi/session/sessionResource/models/UserPermissions.js +107 -0
  683. package/dist/libs/openapi/session/sessionResource/models/UserPermissions.js.map +1 -0
  684. package/dist/libs/openapi/session/sessionResource/models/index.d.ts +6 -0
  685. package/dist/libs/openapi/session/sessionResource/models/index.js +25 -0
  686. package/dist/libs/openapi/session/sessionResource/models/index.js.map +1 -0
  687. package/dist/libs/openapi/session/sessionResource/runtime.d.ts +181 -0
  688. package/dist/libs/openapi/session/sessionResource/runtime.js +342 -0
  689. package/dist/libs/openapi/session/sessionResource/runtime.js.map +1 -0
  690. package/dist/libs/openapi/wug/serverConfigResource/apis/DefaultApi.d.ts +48 -0
  691. package/dist/libs/openapi/wug/serverConfigResource/apis/DefaultApi.js +115 -0
  692. package/dist/libs/openapi/wug/serverConfigResource/apis/DefaultApi.js.map +1 -0
  693. package/dist/libs/openapi/wug/serverConfigResource/apis/index.d.ts +1 -0
  694. package/dist/libs/openapi/wug/serverConfigResource/apis/index.js +20 -0
  695. package/dist/libs/openapi/wug/serverConfigResource/apis/index.js.map +1 -0
  696. package/dist/libs/openapi/wug/serverConfigResource/index.d.ts +3 -0
  697. package/dist/libs/openapi/wug/serverConfigResource/index.js +22 -0
  698. package/dist/libs/openapi/wug/serverConfigResource/index.js.map +1 -0
  699. package/dist/libs/openapi/wug/serverConfigResource/models/Analytics.d.ts +43 -0
  700. package/dist/libs/openapi/wug/serverConfigResource/models/Analytics.js +56 -0
  701. package/dist/libs/openapi/wug/serverConfigResource/models/Analytics.js.map +1 -0
  702. package/dist/libs/openapi/wug/serverConfigResource/models/AppLicense.d.ts +67 -0
  703. package/dist/libs/openapi/wug/serverConfigResource/models/AppLicense.js +66 -0
  704. package/dist/libs/openapi/wug/serverConfigResource/models/AppLicense.js.map +1 -0
  705. package/dist/libs/openapi/wug/serverConfigResource/models/Evaluation.d.ts +43 -0
  706. package/dist/libs/openapi/wug/serverConfigResource/models/Evaluation.js +56 -0
  707. package/dist/libs/openapi/wug/serverConfigResource/models/Evaluation.js.map +1 -0
  708. package/dist/libs/openapi/wug/serverConfigResource/models/License.d.ts +75 -0
  709. package/dist/libs/openapi/wug/serverConfigResource/models/License.js +78 -0
  710. package/dist/libs/openapi/wug/serverConfigResource/models/License.js.map +1 -0
  711. package/dist/libs/openapi/wug/serverConfigResource/models/LicenseApps.d.ts +128 -0
  712. package/dist/libs/openapi/wug/serverConfigResource/models/LicenseApps.js +79 -0
  713. package/dist/libs/openapi/wug/serverConfigResource/models/LicenseApps.js.map +1 -0
  714. package/dist/libs/openapi/wug/serverConfigResource/models/LicenseType.d.ts +24 -0
  715. package/dist/libs/openapi/wug/serverConfigResource/models/LicenseType.js +38 -0
  716. package/dist/libs/openapi/wug/serverConfigResource/models/LicenseType.js.map +1 -0
  717. package/dist/libs/openapi/wug/serverConfigResource/models/ServerProperties.d.ts +124 -0
  718. package/dist/libs/openapi/wug/serverConfigResource/models/ServerProperties.js +105 -0
  719. package/dist/libs/openapi/wug/serverConfigResource/models/ServerProperties.js.map +1 -0
  720. package/dist/libs/openapi/wug/serverConfigResource/models/index.d.ts +7 -0
  721. package/dist/libs/openapi/wug/serverConfigResource/models/index.js +26 -0
  722. package/dist/libs/openapi/wug/serverConfigResource/models/index.js.map +1 -0
  723. package/dist/libs/openapi/wug/serverConfigResource/runtime.d.ts +181 -0
  724. package/dist/libs/openapi/wug/serverConfigResource/runtime.js +342 -0
  725. package/dist/libs/openapi/wug/serverConfigResource/runtime.js.map +1 -0
  726. package/dist/libs/pendo/addPendoScript/getPendoScriptContent.d.ts +13 -0
  727. package/dist/libs/pendo/addPendoScript/getPendoScriptContent.js +64 -0
  728. package/dist/libs/pendo/addPendoScript/getPendoScriptContent.js.map +1 -0
  729. package/dist/libs/pendo/addPendoScript/index.d.ts +5 -0
  730. package/dist/libs/pendo/addPendoScript/index.js +15 -0
  731. package/dist/libs/pendo/addPendoScript/index.js.map +1 -0
  732. package/dist/libs/pendo/consts.d.ts +4 -0
  733. package/dist/libs/pendo/consts.js +8 -0
  734. package/dist/libs/pendo/consts.js.map +1 -0
  735. package/dist/libs/pendo/createAccount.d.ts +7 -0
  736. package/dist/libs/pendo/createAccount.js +24 -0
  737. package/dist/libs/pendo/createAccount.js.map +1 -0
  738. package/dist/libs/pendo/createVisitor.d.ts +7 -0
  739. package/dist/libs/pendo/createVisitor.js +24 -0
  740. package/dist/libs/pendo/createVisitor.js.map +1 -0
  741. package/dist/libs/pendo/helpers.d.ts +2 -0
  742. package/dist/libs/pendo/helpers.js +11 -0
  743. package/dist/libs/pendo/helpers.js.map +1 -0
  744. package/dist/libs/pendo/types.d.ts +23 -0
  745. package/dist/libs/pendo/types.js +3 -0
  746. package/dist/libs/pendo/types.js.map +1 -0
  747. package/dist/libs/rbac/roles.d.ts +11 -0
  748. package/dist/libs/rbac/roles.js +35 -0
  749. package/dist/libs/rbac/roles.js.map +1 -0
  750. package/dist/libs/servicesConfiguration/index.d.ts +8 -0
  751. package/dist/libs/servicesConfiguration/index.js +180 -0
  752. package/dist/libs/servicesConfiguration/index.js.map +1 -0
  753. package/dist/libs/servicesConfiguration/types.d.ts +21 -0
  754. package/dist/libs/servicesConfiguration/types.js +15 -0
  755. package/dist/libs/servicesConfiguration/types.js.map +1 -0
  756. package/dist/libs/styles/index.d.ts +14 -0
  757. package/dist/libs/styles/index.js +32 -0
  758. package/dist/libs/styles/index.js.map +1 -0
  759. package/dist/libs/telemetry/addLocalTelemetry.d.ts +4 -0
  760. package/dist/libs/telemetry/addLocalTelemetry.js +58 -0
  761. package/dist/libs/telemetry/addLocalTelemetry.js.map +1 -0
  762. package/dist/libs/telemetry/framework-browser-telemetry.d.ts +0 -0
  763. package/dist/libs/telemetry/framework-browser-telemetry.js +233 -0
  764. package/dist/libs/telemetry/framework-browser-telemetry.js.map +1 -0
  765. package/dist/libs/telemetry/index.d.ts +5 -0
  766. package/dist/libs/telemetry/index.js +38 -0
  767. package/dist/libs/telemetry/index.js.map +1 -0
  768. package/dist/libs/tests-helpers/config/CSSStub.d.ts +0 -0
  769. package/dist/libs/tests-helpers/config/CSSStub.js +3 -0
  770. package/dist/libs/tests-helpers/config/CSSStub.js.map +1 -0
  771. package/dist/libs/tests-helpers/createStoreRootWithStubs.d.ts +13 -0
  772. package/dist/libs/tests-helpers/createStoreRootWithStubs.js +21 -0
  773. package/dist/libs/tests-helpers/createStoreRootWithStubs.js.map +1 -0
  774. package/dist/libs/tests-helpers/data/properties-data.d.ts +117 -0
  775. package/dist/libs/tests-helpers/data/properties-data.js +121 -0
  776. package/dist/libs/tests-helpers/data/properties-data.js.map +1 -0
  777. package/dist/libs/tests-helpers/data/quickaction-data.d.ts +2 -0
  778. package/dist/libs/tests-helpers/data/quickaction-data.js +47 -0
  779. package/dist/libs/tests-helpers/data/quickaction-data.js.map +1 -0
  780. package/dist/libs/tests-helpers/data/session-data.d.ts +109 -0
  781. package/dist/libs/tests-helpers/data/session-data.js +206 -0
  782. package/dist/libs/tests-helpers/data/session-data.js.map +1 -0
  783. package/dist/libs/tests-helpers/data/tio-navigation-data.d.ts +18 -0
  784. package/dist/libs/tests-helpers/data/tio-navigation-data.js +68 -0
  785. package/dist/libs/tests-helpers/data/tio-navigation-data.js.map +1 -0
  786. package/dist/libs/tests-helpers/fixtures/properties/properties.d.ts +2 -0
  787. package/dist/libs/tests-helpers/fixtures/properties/properties.js +123 -0
  788. package/dist/libs/tests-helpers/fixtures/properties/properties.js.map +1 -0
  789. package/dist/libs/tests-helpers/fixtures/sessions/adminSession.d.ts +2 -0
  790. package/dist/libs/tests-helpers/fixtures/sessions/adminSession.js +43 -0
  791. package/dist/libs/tests-helpers/fixtures/sessions/adminSession.js.map +1 -0
  792. package/dist/libs/validators/compileJsonSchemasToJs.d.ts +4 -0
  793. package/dist/libs/validators/compileJsonSchemasToJs.js +90 -0
  794. package/dist/libs/validators/compileJsonSchemasToJs.js.map +1 -0
  795. package/dist/libs/validators/configSchema.d.ts +434 -0
  796. package/dist/libs/validators/configSchema.js +442 -0
  797. package/dist/libs/validators/configSchema.js.map +1 -0
  798. package/dist/libs/validators/generatedValidators/validateConfigSchema.cjs.d.ts +7 -0
  799. package/dist/libs/validators/generatedValidators/validateConfigSchema.cjs.js +1643 -0
  800. package/dist/libs/validators/generatedValidators/validateConfigSchema.cjs.js.map +1 -0
  801. package/dist/libs/validators/generatedValidators/validateConfigSchema.d.ts +6 -0
  802. package/dist/libs/validators/generatedValidators/validateConfigSchema.js +1645 -0
  803. package/dist/libs/validators/generatedValidators/validateConfigSchema.js.map +1 -0
  804. package/dist/libs/validators/generatedValidators/validateServerProperties.cjs.d.ts +7 -0
  805. package/dist/libs/validators/generatedValidators/validateServerProperties.cjs.js +1441 -0
  806. package/dist/libs/validators/generatedValidators/validateServerProperties.cjs.js.map +1 -0
  807. package/dist/libs/validators/generatedValidators/validateServerProperties.d.ts +6 -0
  808. package/dist/libs/validators/generatedValidators/validateServerProperties.js +1443 -0
  809. package/dist/libs/validators/generatedValidators/validateServerProperties.js.map +1 -0
  810. package/dist/libs/validators/generatedValidators/validateSessionSchema.cjs.d.ts +7 -0
  811. package/dist/libs/validators/generatedValidators/validateSessionSchema.cjs.js +140 -0
  812. package/dist/libs/validators/generatedValidators/validateSessionSchema.cjs.js.map +1 -0
  813. package/dist/libs/validators/generatedValidators/validateSessionSchema.d.ts +6 -0
  814. package/dist/libs/validators/generatedValidators/validateSessionSchema.js +142 -0
  815. package/dist/libs/validators/generatedValidators/validateSessionSchema.js.map +1 -0
  816. package/dist/libs/validators/serverPropertiesSchema.d.ts +58 -0
  817. package/dist/libs/validators/serverPropertiesSchema.js +78 -0
  818. package/dist/libs/validators/serverPropertiesSchema.js.map +1 -0
  819. package/dist/libs/validators/sessionSchema.d.ts +36 -0
  820. package/dist/libs/validators/sessionSchema.js +45 -0
  821. package/dist/libs/validators/sessionSchema.js.map +1 -0
  822. package/dist/libs/validators/validateConfig.d.ts +5 -0
  823. package/dist/libs/validators/validateConfig.js +82 -0
  824. package/dist/libs/validators/validateConfig.js.map +1 -0
  825. package/dist/libs/validators/validators.d.ts +20 -0
  826. package/dist/libs/validators/validators.js +64 -0
  827. package/dist/libs/validators/validators.js.map +1 -0
  828. package/dist/manifest.json +36 -0
  829. package/dist/mocks/featureFlags/index.d.ts +1 -0
  830. package/dist/mocks/featureFlags/index.js +37 -0
  831. package/dist/mocks/featureFlags/index.js.map +1 -0
  832. package/dist/mocks/featureFlags/responses.d.ts +3 -0
  833. package/dist/mocks/featureFlags/responses.js +7 -0
  834. package/dist/mocks/featureFlags/responses.js.map +1 -0
  835. package/dist/mocks/server.d.ts +1 -0
  836. package/dist/mocks/server.js +39 -0
  837. package/dist/mocks/server.js.map +1 -0
  838. package/dist/mocks/session/consec-session-onprem.d.ts +47 -0
  839. package/dist/mocks/session/consec-session-onprem.js +77 -0
  840. package/dist/mocks/session/consec-session-onprem.js.map +1 -0
  841. package/dist/mocks/session/index.d.ts +1 -0
  842. package/dist/mocks/session/index.js +53 -0
  843. package/dist/mocks/session/index.js.map +1 -0
  844. package/dist/mocks/session/otherResponses.d.ts +0 -0
  845. package/dist/mocks/session/otherResponses.js +373 -0
  846. package/dist/mocks/session/otherResponses.js.map +1 -0
  847. package/dist/mocks/session/responses.d.ts +48 -0
  848. package/dist/mocks/session/responses.js +78 -0
  849. package/dist/mocks/session/responses.js.map +1 -0
  850. package/dist/mocks/wug/index.d.ts +1 -0
  851. package/dist/mocks/wug/index.js +37 -0
  852. package/dist/mocks/wug/index.js.map +1 -0
  853. package/dist/mocks/wug/responses.d.ts +39 -0
  854. package/dist/mocks/wug/responses.js +174 -0
  855. package/dist/mocks/wug/responses.js.map +1 -0
  856. package/dist/server-968402f2.js +9 -0
  857. package/dist/server-968402f2.js.map +1 -0
  858. package/dist/server-be52b4bb.mjs +9330 -0
  859. package/dist/server-be52b4bb.mjs.map +1 -0
  860. package/dist/stores/Base/EnvironmentBase/index.d.ts +11 -0
  861. package/dist/stores/Base/EnvironmentBase/index.js +15 -0
  862. package/dist/stores/Base/EnvironmentBase/index.js.map +1 -0
  863. package/dist/stores/Base/StoreBase/index.d.ts +14 -0
  864. package/dist/stores/Base/StoreBase/index.js +20 -0
  865. package/dist/stores/Base/StoreBase/index.js.map +1 -0
  866. package/dist/stores/Base/StoreRootBase/index.d.ts +8 -0
  867. package/dist/stores/Base/StoreRootBase/index.js +11 -0
  868. package/dist/stores/Base/StoreRootBase/index.js.map +1 -0
  869. package/dist/stores/Base/types.d.ts +48 -0
  870. package/dist/stores/Base/types.js +3 -0
  871. package/dist/stores/Base/types.js.map +1 -0
  872. package/dist/stores/StoreAssistMode.d.ts +29 -0
  873. package/dist/stores/StoreAssistMode.js +113 -0
  874. package/dist/stores/StoreAssistMode.js.map +1 -0
  875. package/dist/stores/StoreAuthentication.d.ts +73 -0
  876. package/dist/stores/StoreAuthentication.js +264 -0
  877. package/dist/stores/StoreAuthentication.js.map +1 -0
  878. package/dist/stores/StoreDrawer.d.ts +51 -0
  879. package/dist/stores/StoreDrawer.js +118 -0
  880. package/dist/stores/StoreDrawer.js.map +1 -0
  881. package/dist/stores/StoreFlags/helpers.d.ts +10 -0
  882. package/dist/stores/StoreFlags/helpers.js +43 -0
  883. package/dist/stores/StoreFlags/helpers.js.map +1 -0
  884. package/dist/stores/StoreFlags/index.d.ts +48 -0
  885. package/dist/stores/StoreFlags/index.js +149 -0
  886. package/dist/stores/StoreFlags/index.js.map +1 -0
  887. package/dist/stores/StoreFlags/types.d.ts +7 -0
  888. package/dist/stores/StoreFlags/types.js +3 -0
  889. package/dist/stores/StoreFlags/types.js.map +1 -0
  890. package/dist/stores/StoreLayout/consts.d.ts +11 -0
  891. package/dist/stores/StoreLayout/consts.js +85 -0
  892. package/dist/stores/StoreLayout/consts.js.map +1 -0
  893. package/dist/stores/StoreLayout/index.d.ts +207 -0
  894. package/dist/stores/StoreLayout/index.js +492 -0
  895. package/dist/stores/StoreLayout/index.js.map +1 -0
  896. package/dist/stores/StoreLayout/types.d.ts +6 -0
  897. package/dist/stores/StoreLayout/types.js +3 -0
  898. package/dist/stores/StoreLayout/types.js.map +1 -0
  899. package/dist/stores/StorePendo/handlers.d.ts +5 -0
  900. package/dist/stores/StorePendo/handlers.js +20 -0
  901. package/dist/stores/StorePendo/handlers.js.map +1 -0
  902. package/dist/stores/StorePendo/index.d.ts +27 -0
  903. package/dist/stores/StorePendo/index.js +155 -0
  904. package/dist/stores/StorePendo/index.js.map +1 -0
  905. package/dist/stores/StorePendo/types.d.ts +13 -0
  906. package/dist/stores/StorePendo/types.js +7 -0
  907. package/dist/stores/StorePendo/types.js.map +1 -0
  908. package/dist/stores/StoreRoot/index.d.ts +106 -0
  909. package/dist/stores/StoreRoot/index.js +398 -0
  910. package/dist/stores/StoreRoot/index.js.map +1 -0
  911. package/dist/stores/StoreTelemetry/index.d.ts +112 -0
  912. package/dist/stores/StoreTelemetry/index.js +408 -0
  913. package/dist/stores/StoreTelemetry/index.js.map +1 -0
  914. package/dist/stores/StoreTelemetry/types.d.ts +99 -0
  915. package/dist/stores/StoreTelemetry/types.js +21 -0
  916. package/dist/stores/StoreTelemetry/types.js.map +1 -0
  917. package/dist/stores/storeAlerts/index.d.ts +7 -0
  918. package/dist/stores/storeAlerts/index.js +15 -0
  919. package/dist/stores/storeAlerts/index.js.map +1 -0
  920. package/dist/stores/storeFeatureFlags/index.d.ts +24 -0
  921. package/dist/stores/storeFeatureFlags/index.js +60 -0
  922. package/dist/stores/storeFeatureFlags/index.js.map +1 -0
  923. package/dist/stores/storeFeatureFlags/types.d.ts +10 -0
  924. package/dist/stores/storeFeatureFlags/types.js +11 -0
  925. package/dist/stores/storeFeatureFlags/types.js.map +1 -0
  926. package/dist/stores/types.d.ts +19 -0
  927. package/dist/stores/types.js +3 -0
  928. package/dist/stores/types.js.map +1 -0
  929. package/dist/style.css +1 -0
  930. package/dist/styles/themes/default.d.ts +12 -0
  931. package/dist/styles/themes/default.js +16 -0
  932. package/dist/styles/themes/default.js.map +1 -0
  933. package/dist/styles/themes/index.d.ts +18 -0
  934. package/dist/styles/themes/index.js +10 -0
  935. package/dist/styles/themes/index.js.map +1 -0
  936. package/dist/styles/themes/tio.d.ts +2 -0
  937. package/dist/styles/themes/tio.js +12 -0
  938. package/dist/styles/themes/tio.js.map +1 -0
  939. package/dist/styles/themes/types.d.ts +5 -0
  940. package/dist/styles/themes/types.js +3 -0
  941. package/dist/styles/themes/types.js.map +1 -0
  942. package/dist/tul.client.cjs.js +3784 -0
  943. package/dist/tul.client.cjs.js.map +1 -0
  944. package/dist/tul.client.es.js +14357 -0
  945. package/dist/tul.client.es.js.map +1 -0
  946. package/dist/tul.server.cjs.js +2 -0
  947. package/dist/tul.server.cjs.js.map +1 -0
  948. package/dist/tul.server.es.js +21 -0
  949. package/dist/tul.server.es.js.map +1 -0
  950. package/dist/types/helpers.d.ts +14 -0
  951. package/dist/types/helpers.js +3 -0
  952. package/dist/types/helpers.js.map +1 -0
  953. package/dist/types/index.d.ts +38 -0
  954. package/dist/types/index.js +47 -0
  955. package/dist/types/index.js.map +1 -0
  956. package/dist/types/logos.d.ts +75 -0
  957. package/dist/types/logos.js +80 -0
  958. package/dist/types/logos.js.map +1 -0
  959. package/dist/types/openapi.d.ts +10 -0
  960. package/dist/types/openapi.js +3 -0
  961. package/dist/types/openapi.js.map +1 -0
  962. package/dist/types/tul.d.ts +629 -0
  963. package/dist/types/tul.js +47 -0
  964. package/dist/types/tul.js.map +1 -0
  965. package/package.json +106 -4
  966. package/scripts/postinstall.js +67 -0
  967. package/README.md +0 -5
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tul.client.cjs.js","sources":["../node_modules/@lit/reactive-element/css-tag.js","../node_modules/@lit/reactive-element/reactive-element.js","../node_modules/lit-html/lit-html.js","../node_modules/lit-element/lit-element.js","../node_modules/@lit/reactive-element/decorators/custom-element.js","../node_modules/@lit/reactive-element/decorators/property.js","../node_modules/@lit/reactive-element/decorators/state.js","../node_modules/@lit/reactive-element/decorators/base.js","../node_modules/@lit/reactive-element/decorators/query.js","../node_modules/@lit/reactive-element/decorators/query-assigned-elements.js","../node_modules/lit-html/directives/if-defined.js","../src/libs/helpers/nullable/index.ts","../node_modules/mobx/dist/mobx.esm.js","../node_modules/lodash/_stackClear.js","../node_modules/lodash/_stackDelete.js","../node_modules/lodash/_stackGet.js","../node_modules/lodash/_stackHas.js","../node_modules/lodash/_stackSet.js","../node_modules/lodash/_Stack.js","../node_modules/lodash/_arrayEach.js","../node_modules/lodash/_defineProperty.js","../node_modules/lodash/_baseAssignValue.js","../node_modules/lodash/_assignValue.js","../node_modules/lodash/_copyObject.js","../node_modules/lodash/_baseTimes.js","../node_modules/lodash/_baseIsArguments.js","../node_modules/lodash/isArguments.js","../node_modules/lodash/stubFalse.js","../node_modules/lodash/isBuffer.js","../node_modules/lodash/_isIndex.js","../node_modules/lodash/isLength.js","../node_modules/lodash/_baseIsTypedArray.js","../node_modules/lodash/_baseUnary.js","../node_modules/lodash/_nodeUtil.js","../node_modules/lodash/isTypedArray.js","../node_modules/lodash/_arrayLikeKeys.js","../node_modules/lodash/_isPrototype.js","../node_modules/lodash/_overArg.js","../node_modules/lodash/_nativeKeys.js","../node_modules/lodash/_baseKeys.js","../node_modules/lodash/isArrayLike.js","../node_modules/lodash/keys.js","../node_modules/lodash/_baseAssign.js","../node_modules/lodash/_nativeKeysIn.js","../node_modules/lodash/_baseKeysIn.js","../node_modules/lodash/keysIn.js","../node_modules/lodash/_baseAssignIn.js","../node_modules/lodash/_cloneBuffer.js","../node_modules/lodash/_copyArray.js","../node_modules/lodash/_arrayFilter.js","../node_modules/lodash/stubArray.js","../node_modules/lodash/_getSymbols.js","../node_modules/lodash/_copySymbols.js","../node_modules/lodash/_arrayPush.js","../node_modules/lodash/_getPrototype.js","../node_modules/lodash/_getSymbolsIn.js","../node_modules/lodash/_copySymbolsIn.js","../node_modules/lodash/_baseGetAllKeys.js","../node_modules/lodash/_getAllKeys.js","../node_modules/lodash/_getAllKeysIn.js","../node_modules/lodash/_DataView.js","../node_modules/lodash/_Promise.js","../node_modules/lodash/_Set.js","../node_modules/lodash/_WeakMap.js","../node_modules/lodash/_getTag.js","../node_modules/lodash/_initCloneArray.js","../node_modules/lodash/_Uint8Array.js","../node_modules/lodash/_cloneArrayBuffer.js","../node_modules/lodash/_cloneDataView.js","../node_modules/lodash/_cloneRegExp.js","../node_modules/lodash/_cloneSymbol.js","../node_modules/lodash/_cloneTypedArray.js","../node_modules/lodash/_initCloneByTag.js","../node_modules/lodash/_baseCreate.js","../node_modules/lodash/_initCloneObject.js","../node_modules/lodash/_baseIsMap.js","../node_modules/lodash/isMap.js","../node_modules/lodash/_baseIsSet.js","../node_modules/lodash/isSet.js","../node_modules/lodash/_baseClone.js","../node_modules/lodash/last.js","../node_modules/lodash/_parent.js","../node_modules/lodash/_baseUnset.js","../node_modules/lodash/isPlainObject.js","../node_modules/lodash/_customOmitClone.js","../node_modules/lodash/_isFlattenable.js","../node_modules/lodash/_baseFlatten.js","../node_modules/lodash/flatten.js","../node_modules/lodash/_apply.js","../node_modules/lodash/_overRest.js","../node_modules/lodash/constant.js","../node_modules/lodash/identity.js","../node_modules/lodash/_baseSetToString.js","../node_modules/lodash/_shortOut.js","../node_modules/lodash/_setToString.js","../node_modules/lodash/_flatRest.js","../node_modules/lodash/omit.js","../src/libs/FetchClient/types.ts","../src/libs/FetchClient/FetchClient.ts","../src/stores/Base/EnvironmentBase/index.ts","../src/libs/Environment/index.ts","../src/libs/openapi/session/sessionResource/models/Features.ts","../src/libs/openapi/session/sessionResource/models/Group.ts","../src/libs/openapi/session/sessionResource/models/Preferences.ts","../src/libs/openapi/session/sessionResource/models/Session.ts","../src/libs/openapi/session/sessionResource/models/SessionTimeout.ts","../src/libs/openapi/session/sessionResource/apis/DefaultApi.ts","../src/libs/openapi/wug/serverConfigResource/runtime.ts","../src/libs/openapi/wug/serverConfigResource/models/Analytics.ts","../src/libs/openapi/wug/serverConfigResource/models/AppLicense.ts","../src/libs/openapi/wug/serverConfigResource/models/Evaluation.ts","../src/libs/openapi/wug/serverConfigResource/models/LicenseApps.ts","../src/libs/openapi/wug/serverConfigResource/models/LicenseType.ts","../src/libs/openapi/wug/serverConfigResource/models/License.ts","../src/libs/openapi/wug/serverConfigResource/models/ServerProperties.ts","../src/libs/openapi/wug/serverConfigResource/apis/DefaultApi.ts","../src/libs/Environment/OpenApiClients/index.ts","../src/libs/Environment/createEnvironment.ts","../src/libs/i18n/index.ts","../src/libs/i18n/translate/index.ts","../src/stores/Base/StoreRootBase/index.ts","../src/stores/Base/StoreBase/index.ts","../src/stores/StoreFlags/index.ts","../src/stores/storeAlerts/index.ts","../src/stores/StoreAssistMode.ts","../src/libs/authentication/parseCookie.ts","../src/libs/Environment/Authentication/helpers.ts","../src/stores/StoreAuthentication.ts","../src/stores/storeFeatureFlags/types.ts","../src/stores/storeFeatureFlags/index.ts","../src/components/GlobalHeader/utils/data/NavigationData.ts","../src/components/GlobalHeader/utils/data/PlatformSettingsData.ts","../src/components/GlobalHeader/utils/data/UserProfileMenuData.ts","../src/components/GlobalHeader/utils/mergeMenuItems.ts","../src/components/GlobalHeader/views/BaseEvent.ts","../src/components/GlobalHeader/views/Header/NavigationEvent.ts","../src/libs/helpers/map/indexEntitiesToMap.ts","../src/styles/themes/default.ts","../src/styles/themes/tio.ts","../src/styles/themes/index.ts","../src/stores/StoreDrawer.ts","../src/stores/StoreLayout/consts.ts","../src/stores/StoreLayout/index.ts","../src/libs/helpers/objects/filterNullOrUndefinedValues.ts","../src/libs/pendo/addPendoScript/getPendoScriptContent.ts","../src/libs/pendo/addPendoScript/index.ts","../src/libs/pendo/consts.ts","../src/libs/pendo/helpers.ts","../src/libs/pendo/createAccount.ts","../src/libs/pendo/createVisitor.ts","../src/stores/StorePendo/index.ts","../src/libs/telemetry/index.ts","../src/stores/StoreTelemetry/index.ts","../src/stores/StoreRoot/index.ts","../src/libs/styles/index.ts","../src/libs/MobxLitElement/MobxReactionUpdate.ts","../src/libs/MobxLitElement/index.ts","../src/components/GlobalHeader/controller/UniversalNavigationController.ts","../src/components/GlobalHeader/styles.ts","../node_modules/lit-html/directive.js","../node_modules/lit-html/directives/unsafe-html.js","../node_modules/lit-html/directives/style-map.js","../src/components/GlobalHeader/utils/renderer.ts","../src/components/GlobalHeader/GlobalHeader.ts","../node_modules/lit-html/directives/class-map.js","../src/components/GlobalHeader/views/BaseStyles.ts","../src/components/GlobalHeader/views/ActionPanel/styles.ts","../src/components/GlobalHeader/views/ActionPanel/ActionPanel.ts","../node_modules/what-input/dist/what-input.js","../src/components/GlobalHeader/controller/MenuKeyboardController.ts","../src/components/GlobalHeader/controller/NavigationMenuKeyboardController.ts","../src/components/GlobalHeader/views/Header/HeaderEvent.ts","../src/components/GlobalHeader/views/ActionPanel/Body/styles.ts","../src/components/GlobalHeader/views/ActionPanel/Body/ActionPanelBody.ts","../src/components/GlobalHeader/views/ActionPanel/Header/styles.ts","../src/components/GlobalHeader/views/ActionPanel/Header/ActionPanelHeader.ts","../node_modules/lit-html/directive-helpers.js","../node_modules/lit-html/directives/repeat.js","../src/stores/StoreTelemetry/types.ts","../src/components/GlobalHeader/utils/uuid.ts","../src/components/GlobalHeader/views/AppSpecificActions/styles.ts","../src/components/GlobalHeader/views/AppSpecificActions/AppActions.ts","../src/components/GlobalHeader/views/AssistMode/styles.ts","../src/components/GlobalHeader/views/AssistMode/AssistMode.ts","../src/components/GlobalHeader/views/Avatar/Avatar.ts","../src/components/GlobalHeader/views/Badge/styles.ts","../src/components/GlobalHeader/views/Badge/Badge.ts","../src/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/styles.ts","../src/components/GlobalHeader/views/BreadCrumbs/BreadCrumb/BreadCrumb.ts","../src/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/styles.ts","../src/components/GlobalHeader/views/BreadCrumbs/BreadCrumbItem/BreadCrumbItem.ts","../src/components/GlobalHeader/controller/TelemetryController.ts","../src/components/GlobalHeader/views/Button/styles.ts","../src/components/GlobalHeader/views/Button/Button.ts","../src/components/GlobalHeader/views/Button/LinkButton/styles.ts","../src/components/GlobalHeader/views/Button/LinkButton/LinkButton.ts","../src/components/GlobalHeader/views/Button/SecondaryButton/styles.ts","../src/components/GlobalHeader/views/Button/SecondaryButton/SecondaryButton.ts","../src/components/GlobalHeader/views/ActionPanel/ActionController.ts","../src/components/GlobalHeader/views/Chat/ChatAction.ts","../src/components/GlobalHeader/views/Chat/styles.ts","../src/components/GlobalHeader/views/Chat/ChatPanel.ts","../src/components/GlobalHeader/views/FloatingButton/styles.ts","../src/components/GlobalHeader/views/FloatingButton/FloatingButton.ts","../src/components/GlobalHeader/utils/slot.ts","../src/components/GlobalHeader/views/FloatingTextButton/styles.ts","../src/components/GlobalHeader/views/FloatingTextButton/FloatingTextButton.ts","../src/components/GlobalHeader/views/Header/styles.ts","../src/components/GlobalHeader/views/Header/Header.ts","../src/components/GlobalHeader/views/Help/styles.ts","../src/components/GlobalHeader/views/Help/HelpAction.ts","../src/components/GlobalHeader/views/Icon/IconBase.ts","../src/components/GlobalHeader/views/Icon/AccessControl.ts","../src/components/GlobalHeader/views/Icon/ActivityLogs.ts","../src/components/GlobalHeader/views/Icon/Announcement.ts","../src/components/GlobalHeader/views/Icon/AsmApp.ts","../src/components/GlobalHeader/views/Icon/AssetInventory.ts","../src/components/GlobalHeader/views/Icon/AttackPathApp.ts","../src/components/GlobalHeader/views/Icon/Bell.ts","../src/components/GlobalHeader/views/Icon/Book.ts","../src/components/GlobalHeader/views/Icon/Chat.ts","../src/components/GlobalHeader/views/Icon/ChevronDown.ts","../src/components/GlobalHeader/views/Icon/ChevronLeft.ts","../src/components/GlobalHeader/views/Icon/ChevronRight.ts","../src/components/GlobalHeader/views/Icon/CloseLarge.ts","../src/components/GlobalHeader/views/Icon/CloseSmall.ts","../src/components/GlobalHeader/views/Icon/CloudSecurityApp.ts","../src/components/GlobalHeader/views/Icon/Ecosystem.ts","../src/components/GlobalHeader/views/Icon/HamburgerOpen.ts","../src/components/GlobalHeader/views/Icon/Help.ts","../src/components/GlobalHeader/views/Icon/IdentityExposure.ts","../src/components/GlobalHeader/views/Icon/Info.ts","../src/components/GlobalHeader/views/Icon/LicenseInformation.ts","../src/components/GlobalHeader/views/Icon/LuminApp.ts","../src/components/GlobalHeader/views/Icon/LuminExposureView.ts","../src/components/GlobalHeader/views/Icon/Moon.ts","../src/components/GlobalHeader/views/Icon/PCIASV.ts","../src/components/GlobalHeader/views/Icon/ContainerSecurity.ts","../src/components/GlobalHeader/views/Icon/SecurityCenter.ts","../src/components/GlobalHeader/views/Icon/Reports.ts","../src/components/GlobalHeader/views/Icon/Settings.ts","../src/components/GlobalHeader/views/Icon/SignOut.ts","../src/components/GlobalHeader/views/Icon/Star.ts","../src/components/GlobalHeader/views/Icon/UserProfile.ts","../src/components/GlobalHeader/views/Icon/VMApp.ts","../src/components/GlobalHeader/views/Icon/WASApp.ts","../src/components/GlobalHeader/views/Icon/WorkspaceApps.ts","../src/components/GlobalHeader/views/MenuGroupHeading/styles.ts","../src/components/GlobalHeader/views/MenuGroupHeading/NavigationMenuHeading.ts","../src/components/GlobalHeader/views/NavigationMenu/Menu/styles.ts","../src/components/GlobalHeader/views/NavigationMenu/Menu/NavigationMenu.ts","../src/components/GlobalHeader/views/NavigationMenu/MenuItem/styles.ts","../src/components/GlobalHeader/views/NavigationMenu/MenuItem/NavigationMenuItem.ts","../src/components/GlobalHeader/views/NavigationMenu/SubMenu/styles.ts","../src/components/GlobalHeader/views/NavigationMenu/SubMenu/SubMenu.ts","../src/components/GlobalHeader/views/NotificationBadge/NotificationBadge.ts","../src/components/GlobalHeader/views/Notifications/styles.ts","../src/components/GlobalHeader/views/Notifications/NotificationPanel.ts","../src/components/GlobalHeader/views/Notifications/NotificationsAction.ts","../node_modules/@floating-ui/core/dist/floating-ui.core.browser.min.mjs","../node_modules/@floating-ui/dom/dist/floating-ui.dom.browser.min.mjs","../src/components/GlobalHeader/views/PopOver/PopOverEvent.ts","../src/components/GlobalHeader/views/PopOver/styles.ts","../src/components/GlobalHeader/views/PopOver/PopOver.ts","../src/components/GlobalHeader/views/QuickActions/styles.ts","../src/components/GlobalHeader/views/QuickActions/QuickAction.ts","../src/components/GlobalHeader/views/QuickActions/QuickActionPanel.ts","../src/components/GlobalHeader/views/Settings/SettingsAction.ts","../src/components/GlobalHeader/views/PopOver/PopOverStateController.ts","../src/components/GlobalHeader/views/Settings/styles.ts","../src/components/GlobalHeader/views/Settings/SettingsPanel.ts","../src/components/GlobalHeader/views/Header/ToggleSwitchEvent.ts","../src/components/GlobalHeader/views/ToggleSwitch/styles.ts","../src/components/GlobalHeader/views/ToggleSwitch/ToggleSwitch.ts","../src/components/GlobalHeader/views/Tooltip/styles.ts","../src/components/GlobalHeader/views/Tooltip/Tooltip.ts","../src/components/GlobalHeader/views/Typography/Heading3.ts","../src/components/GlobalHeader/views/Typography/SmallText.ts","../src/components/GlobalHeader/views/Typography/Text.ts","../src/components/GlobalHeader/views/UniversalNavigation/styles.ts","../src/components/GlobalHeader/views/UniversalNavigation/UniversalNavigation.ts","../src/components/GlobalHeader/views/UserProfile/UserAction.ts","../src/components/GlobalHeader/views/UserProfile/UserPanel.ts","../src/components/GlobalHeader/views/WorkspaceCard/styles.ts","../src/components/GlobalHeader/views/WorkspaceCard/WorkspaceCard.ts","../src/components/GlobalHeader/views/Workspaces/WorkspaceAction.ts","../src/components/GlobalHeader/views/Workspaces/styles.ts","../src/components/GlobalHeader/views/Workspaces/WorkspacePanel.ts","../src/libs/validators/validateConfig.ts","../src/init/initTul.ts"],"sourcesContent":["/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t=window,e=t.ShadowRoot&&(void 0===t.ShadyCSS||t.ShadyCSS.nativeShadow)&&\"adoptedStyleSheets\"in Document.prototype&&\"replace\"in CSSStyleSheet.prototype,s=Symbol(),n=new WeakMap;class o{constructor(t,e,n){if(this._$cssResult$=!0,n!==s)throw Error(\"CSSResult is not constructable. Use `unsafeCSS` or `css` instead.\");this.cssText=t,this.t=e}get styleSheet(){let t=this.o;const s=this.t;if(e&&void 0===t){const e=void 0!==s&&1===s.length;e&&(t=n.get(s)),void 0===t&&((this.o=t=new CSSStyleSheet).replaceSync(this.cssText),e&&n.set(s,t))}return t}toString(){return this.cssText}}const r=t=>new o(\"string\"==typeof t?t:t+\"\",void 0,s),i=(t,...e)=>{const n=1===t.length?t[0]:e.reduce(((e,s,n)=>e+(t=>{if(!0===t._$cssResult$)return t.cssText;if(\"number\"==typeof t)return t;throw Error(\"Value passed to 'css' function must be a 'css' function result: \"+t+\". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.\")})(s)+t[n+1]),t[0]);return new o(n,t,s)},S=(s,n)=>{e?s.adoptedStyleSheets=n.map((t=>t instanceof CSSStyleSheet?t:t.styleSheet)):n.forEach((e=>{const n=document.createElement(\"style\"),o=t.litNonce;void 0!==o&&n.setAttribute(\"nonce\",o),n.textContent=e.cssText,s.appendChild(n)}))},c=e?t=>t:t=>t instanceof CSSStyleSheet?(t=>{let e=\"\";for(const s of t.cssRules)e+=s.cssText;return r(e)})(t):t;export{o as CSSResult,S as adoptStyles,i as css,c as getCompatibleStyle,e as supportsAdoptingStyleSheets,r as unsafeCSS};\n//# sourceMappingURL=css-tag.js.map\n","import{getCompatibleStyle as t,adoptStyles as i}from\"./css-tag.js\";export{CSSResult,adoptStyles,css,getCompatibleStyle,supportsAdoptingStyleSheets,unsafeCSS}from\"./css-tag.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var s;const e=window,r=e.trustedTypes,h=r?r.emptyScript:\"\",o=e.reactiveElementPolyfillSupport,n={toAttribute(t,i){switch(i){case Boolean:t=t?h:null;break;case Object:case Array:t=null==t?t:JSON.stringify(t)}return t},fromAttribute(t,i){let s=t;switch(i){case Boolean:s=null!==t;break;case Number:s=null===t?null:Number(t);break;case Object:case Array:try{s=JSON.parse(t)}catch(t){s=null}}return s}},a=(t,i)=>i!==t&&(i==i||t==t),l={attribute:!0,type:String,converter:n,reflect:!1,hasChanged:a},d=\"finalized\";class u extends HTMLElement{constructor(){super(),this._$Ei=new Map,this.isUpdatePending=!1,this.hasUpdated=!1,this._$El=null,this.u()}static addInitializer(t){var i;this.finalize(),(null!==(i=this.h)&&void 0!==i?i:this.h=[]).push(t)}static get observedAttributes(){this.finalize();const t=[];return this.elementProperties.forEach(((i,s)=>{const e=this._$Ep(s,i);void 0!==e&&(this._$Ev.set(e,s),t.push(e))})),t}static createProperty(t,i=l){if(i.state&&(i.attribute=!1),this.finalize(),this.elementProperties.set(t,i),!i.noAccessor&&!this.prototype.hasOwnProperty(t)){const s=\"symbol\"==typeof t?Symbol():\"__\"+t,e=this.getPropertyDescriptor(t,s,i);void 0!==e&&Object.defineProperty(this.prototype,t,e)}}static getPropertyDescriptor(t,i,s){return{get(){return this[i]},set(e){const r=this[t];this[i]=e,this.requestUpdate(t,r,s)},configurable:!0,enumerable:!0}}static getPropertyOptions(t){return this.elementProperties.get(t)||l}static finalize(){if(this.hasOwnProperty(d))return!1;this[d]=!0;const t=Object.getPrototypeOf(this);if(t.finalize(),void 0!==t.h&&(this.h=[...t.h]),this.elementProperties=new Map(t.elementProperties),this._$Ev=new Map,this.hasOwnProperty(\"properties\")){const t=this.properties,i=[...Object.getOwnPropertyNames(t),...Object.getOwnPropertySymbols(t)];for(const s of i)this.createProperty(s,t[s])}return this.elementStyles=this.finalizeStyles(this.styles),!0}static finalizeStyles(i){const s=[];if(Array.isArray(i)){const e=new Set(i.flat(1/0).reverse());for(const i of e)s.unshift(t(i))}else void 0!==i&&s.push(t(i));return s}static _$Ep(t,i){const s=i.attribute;return!1===s?void 0:\"string\"==typeof s?s:\"string\"==typeof t?t.toLowerCase():void 0}u(){var t;this._$E_=new Promise((t=>this.enableUpdating=t)),this._$AL=new Map,this._$Eg(),this.requestUpdate(),null===(t=this.constructor.h)||void 0===t||t.forEach((t=>t(this)))}addController(t){var i,s;(null!==(i=this._$ES)&&void 0!==i?i:this._$ES=[]).push(t),void 0!==this.renderRoot&&this.isConnected&&(null===(s=t.hostConnected)||void 0===s||s.call(t))}removeController(t){var i;null===(i=this._$ES)||void 0===i||i.splice(this._$ES.indexOf(t)>>>0,1)}_$Eg(){this.constructor.elementProperties.forEach(((t,i)=>{this.hasOwnProperty(i)&&(this._$Ei.set(i,this[i]),delete this[i])}))}createRenderRoot(){var t;const s=null!==(t=this.shadowRoot)&&void 0!==t?t:this.attachShadow(this.constructor.shadowRootOptions);return i(s,this.constructor.elementStyles),s}connectedCallback(){var t;void 0===this.renderRoot&&(this.renderRoot=this.createRenderRoot()),this.enableUpdating(!0),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostConnected)||void 0===i?void 0:i.call(t)}))}enableUpdating(t){}disconnectedCallback(){var t;null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostDisconnected)||void 0===i?void 0:i.call(t)}))}attributeChangedCallback(t,i,s){this._$AK(t,s)}_$EO(t,i,s=l){var e;const r=this.constructor._$Ep(t,s);if(void 0!==r&&!0===s.reflect){const h=(void 0!==(null===(e=s.converter)||void 0===e?void 0:e.toAttribute)?s.converter:n).toAttribute(i,s.type);this._$El=t,null==h?this.removeAttribute(r):this.setAttribute(r,h),this._$El=null}}_$AK(t,i){var s;const e=this.constructor,r=e._$Ev.get(t);if(void 0!==r&&this._$El!==r){const t=e.getPropertyOptions(r),h=\"function\"==typeof t.converter?{fromAttribute:t.converter}:void 0!==(null===(s=t.converter)||void 0===s?void 0:s.fromAttribute)?t.converter:n;this._$El=r,this[r]=h.fromAttribute(i,t.type),this._$El=null}}requestUpdate(t,i,s){let e=!0;void 0!==t&&(((s=s||this.constructor.getPropertyOptions(t)).hasChanged||a)(this[t],i)?(this._$AL.has(t)||this._$AL.set(t,i),!0===s.reflect&&this._$El!==t&&(void 0===this._$EC&&(this._$EC=new Map),this._$EC.set(t,s))):e=!1),!this.isUpdatePending&&e&&(this._$E_=this._$Ej())}async _$Ej(){this.isUpdatePending=!0;try{await this._$E_}catch(t){Promise.reject(t)}const t=this.scheduleUpdate();return null!=t&&await t,!this.isUpdatePending}scheduleUpdate(){return this.performUpdate()}performUpdate(){var t;if(!this.isUpdatePending)return;this.hasUpdated,this._$Ei&&(this._$Ei.forEach(((t,i)=>this[i]=t)),this._$Ei=void 0);let i=!1;const s=this._$AL;try{i=this.shouldUpdate(s),i?(this.willUpdate(s),null===(t=this._$ES)||void 0===t||t.forEach((t=>{var i;return null===(i=t.hostUpdate)||void 0===i?void 0:i.call(t)})),this.update(s)):this._$Ek()}catch(t){throw i=!1,this._$Ek(),t}i&&this._$AE(s)}willUpdate(t){}_$AE(t){var i;null===(i=this._$ES)||void 0===i||i.forEach((t=>{var i;return null===(i=t.hostUpdated)||void 0===i?void 0:i.call(t)})),this.hasUpdated||(this.hasUpdated=!0,this.firstUpdated(t)),this.updated(t)}_$Ek(){this._$AL=new Map,this.isUpdatePending=!1}get updateComplete(){return this.getUpdateComplete()}getUpdateComplete(){return this._$E_}shouldUpdate(t){return!0}update(t){void 0!==this._$EC&&(this._$EC.forEach(((t,i)=>this._$EO(i,this[i],t))),this._$EC=void 0),this._$Ek()}updated(t){}firstUpdated(t){}}u[d]=!0,u.elementProperties=new Map,u.elementStyles=[],u.shadowRootOptions={mode:\"open\"},null==o||o({ReactiveElement:u}),(null!==(s=e.reactiveElementVersions)&&void 0!==s?s:e.reactiveElementVersions=[]).push(\"1.6.2\");export{u as ReactiveElement,n as defaultConverter,a as notEqual};\n//# sourceMappingURL=reactive-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nvar t;const i=window,s=i.trustedTypes,e=s?s.createPolicy(\"lit-html\",{createHTML:t=>t}):void 0,o=\"$lit$\",n=`lit$${(Math.random()+\"\").slice(9)}$`,l=\"?\"+n,h=`<${l}>`,r=document,d=()=>r.createComment(\"\"),u=t=>null===t||\"object\"!=typeof t&&\"function\"!=typeof t,c=Array.isArray,v=t=>c(t)||\"function\"==typeof(null==t?void 0:t[Symbol.iterator]),a=\"[ \\t\\n\\f\\r]\",f=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,_=/-->/g,m=/>/g,p=RegExp(`>|${a}(?:([^\\\\s\"'>=/]+)(${a}*=${a}*(?:[^ \\t\\n\\f\\r\"'\\`<>=]|(\"|')|))|$)`,\"g\"),g=/'/g,$=/\"/g,y=/^(?:script|style|textarea|title)$/i,w=t=>(i,...s)=>({_$litType$:t,strings:i,values:s}),x=w(1),b=w(2),T=Symbol.for(\"lit-noChange\"),A=Symbol.for(\"lit-nothing\"),E=new WeakMap,C=r.createTreeWalker(r,129,null,!1),P=(t,i)=>{const s=t.length-1,l=[];let r,d=2===i?\"<svg>\":\"\",u=f;for(let i=0;i<s;i++){const s=t[i];let e,c,v=-1,a=0;for(;a<s.length&&(u.lastIndex=a,c=u.exec(s),null!==c);)a=u.lastIndex,u===f?\"!--\"===c[1]?u=_:void 0!==c[1]?u=m:void 0!==c[2]?(y.test(c[2])&&(r=RegExp(\"</\"+c[2],\"g\")),u=p):void 0!==c[3]&&(u=p):u===p?\">\"===c[0]?(u=null!=r?r:f,v=-1):void 0===c[1]?v=-2:(v=u.lastIndex-c[2].length,e=c[1],u=void 0===c[3]?p:'\"'===c[3]?$:g):u===$||u===g?u=p:u===_||u===m?u=f:(u=p,r=void 0);const w=u===p&&t[i+1].startsWith(\"/>\")?\" \":\"\";d+=u===f?s+h:v>=0?(l.push(e),s.slice(0,v)+o+s.slice(v)+n+w):s+n+(-2===v?(l.push(void 0),i):w)}const c=d+(t[s]||\"<?>\")+(2===i?\"</svg>\":\"\");if(!Array.isArray(t)||!t.hasOwnProperty(\"raw\"))throw Error(\"invalid template strings array\");return[void 0!==e?e.createHTML(c):c,l]};class V{constructor({strings:t,_$litType$:i},e){let h;this.parts=[];let r=0,u=0;const c=t.length-1,v=this.parts,[a,f]=P(t,i);if(this.el=V.createElement(a,e),C.currentNode=this.el.content,2===i){const t=this.el.content,i=t.firstChild;i.remove(),t.append(...i.childNodes)}for(;null!==(h=C.nextNode())&&v.length<c;){if(1===h.nodeType){if(h.hasAttributes()){const t=[];for(const i of h.getAttributeNames())if(i.endsWith(o)||i.startsWith(n)){const s=f[u++];if(t.push(i),void 0!==s){const t=h.getAttribute(s.toLowerCase()+o).split(n),i=/([.?@])?(.*)/.exec(s);v.push({type:1,index:r,name:i[2],strings:t,ctor:\".\"===i[1]?k:\"?\"===i[1]?I:\"@\"===i[1]?L:R})}else v.push({type:6,index:r})}for(const i of t)h.removeAttribute(i)}if(y.test(h.tagName)){const t=h.textContent.split(n),i=t.length-1;if(i>0){h.textContent=s?s.emptyScript:\"\";for(let s=0;s<i;s++)h.append(t[s],d()),C.nextNode(),v.push({type:2,index:++r});h.append(t[i],d())}}}else if(8===h.nodeType)if(h.data===l)v.push({type:2,index:r});else{let t=-1;for(;-1!==(t=h.data.indexOf(n,t+1));)v.push({type:7,index:r}),t+=n.length-1}r++}}static createElement(t,i){const s=r.createElement(\"template\");return s.innerHTML=t,s}}function N(t,i,s=t,e){var o,n,l,h;if(i===T)return i;let r=void 0!==e?null===(o=s._$Co)||void 0===o?void 0:o[e]:s._$Cl;const d=u(i)?void 0:i._$litDirective$;return(null==r?void 0:r.constructor)!==d&&(null===(n=null==r?void 0:r._$AO)||void 0===n||n.call(r,!1),void 0===d?r=void 0:(r=new d(t),r._$AT(t,s,e)),void 0!==e?(null!==(l=(h=s)._$Co)&&void 0!==l?l:h._$Co=[])[e]=r:s._$Cl=r),void 0!==r&&(i=N(t,r._$AS(t,i.values),r,e)),i}class S{constructor(t,i){this._$AV=[],this._$AN=void 0,this._$AD=t,this._$AM=i}get parentNode(){return this._$AM.parentNode}get _$AU(){return this._$AM._$AU}u(t){var i;const{el:{content:s},parts:e}=this._$AD,o=(null!==(i=null==t?void 0:t.creationScope)&&void 0!==i?i:r).importNode(s,!0);C.currentNode=o;let n=C.nextNode(),l=0,h=0,d=e[0];for(;void 0!==d;){if(l===d.index){let i;2===d.type?i=new M(n,n.nextSibling,this,t):1===d.type?i=new d.ctor(n,d.name,d.strings,this,t):6===d.type&&(i=new z(n,this,t)),this._$AV.push(i),d=e[++h]}l!==(null==d?void 0:d.index)&&(n=C.nextNode(),l++)}return C.currentNode=r,o}v(t){let i=0;for(const s of this._$AV)void 0!==s&&(void 0!==s.strings?(s._$AI(t,s,i),i+=s.strings.length-2):s._$AI(t[i])),i++}}class M{constructor(t,i,s,e){var o;this.type=2,this._$AH=A,this._$AN=void 0,this._$AA=t,this._$AB=i,this._$AM=s,this.options=e,this._$Cp=null===(o=null==e?void 0:e.isConnected)||void 0===o||o}get _$AU(){var t,i;return null!==(i=null===(t=this._$AM)||void 0===t?void 0:t._$AU)&&void 0!==i?i:this._$Cp}get parentNode(){let t=this._$AA.parentNode;const i=this._$AM;return void 0!==i&&11===(null==t?void 0:t.nodeType)&&(t=i.parentNode),t}get startNode(){return this._$AA}get endNode(){return this._$AB}_$AI(t,i=this){t=N(this,t,i),u(t)?t===A||null==t||\"\"===t?(this._$AH!==A&&this._$AR(),this._$AH=A):t!==this._$AH&&t!==T&&this._(t):void 0!==t._$litType$?this.g(t):void 0!==t.nodeType?this.$(t):v(t)?this.T(t):this._(t)}k(t){return this._$AA.parentNode.insertBefore(t,this._$AB)}$(t){this._$AH!==t&&(this._$AR(),this._$AH=this.k(t))}_(t){this._$AH!==A&&u(this._$AH)?this._$AA.nextSibling.data=t:this.$(r.createTextNode(t)),this._$AH=t}g(t){var i;const{values:s,_$litType$:e}=t,o=\"number\"==typeof e?this._$AC(t):(void 0===e.el&&(e.el=V.createElement(e.h,this.options)),e);if((null===(i=this._$AH)||void 0===i?void 0:i._$AD)===o)this._$AH.v(s);else{const t=new S(o,this),i=t.u(this.options);t.v(s),this.$(i),this._$AH=t}}_$AC(t){let i=E.get(t.strings);return void 0===i&&E.set(t.strings,i=new V(t)),i}T(t){c(this._$AH)||(this._$AH=[],this._$AR());const i=this._$AH;let s,e=0;for(const o of t)e===i.length?i.push(s=new M(this.k(d()),this.k(d()),this,this.options)):s=i[e],s._$AI(o),e++;e<i.length&&(this._$AR(s&&s._$AB.nextSibling,e),i.length=e)}_$AR(t=this._$AA.nextSibling,i){var s;for(null===(s=this._$AP)||void 0===s||s.call(this,!1,!0,i);t&&t!==this._$AB;){const i=t.nextSibling;t.remove(),t=i}}setConnected(t){var i;void 0===this._$AM&&(this._$Cp=t,null===(i=this._$AP)||void 0===i||i.call(this,t))}}class R{constructor(t,i,s,e,o){this.type=1,this._$AH=A,this._$AN=void 0,this.element=t,this.name=i,this._$AM=e,this.options=o,s.length>2||\"\"!==s[0]||\"\"!==s[1]?(this._$AH=Array(s.length-1).fill(new String),this.strings=s):this._$AH=A}get tagName(){return this.element.tagName}get _$AU(){return this._$AM._$AU}_$AI(t,i=this,s,e){const o=this.strings;let n=!1;if(void 0===o)t=N(this,t,i,0),n=!u(t)||t!==this._$AH&&t!==T,n&&(this._$AH=t);else{const e=t;let l,h;for(t=o[0],l=0;l<o.length-1;l++)h=N(this,e[s+l],i,l),h===T&&(h=this._$AH[l]),n||(n=!u(h)||h!==this._$AH[l]),h===A?t=A:t!==A&&(t+=(null!=h?h:\"\")+o[l+1]),this._$AH[l]=h}n&&!e&&this.j(t)}j(t){t===A?this.element.removeAttribute(this.name):this.element.setAttribute(this.name,null!=t?t:\"\")}}class k extends R{constructor(){super(...arguments),this.type=3}j(t){this.element[this.name]=t===A?void 0:t}}const H=s?s.emptyScript:\"\";class I extends R{constructor(){super(...arguments),this.type=4}j(t){t&&t!==A?this.element.setAttribute(this.name,H):this.element.removeAttribute(this.name)}}class L extends R{constructor(t,i,s,e,o){super(t,i,s,e,o),this.type=5}_$AI(t,i=this){var s;if((t=null!==(s=N(this,t,i,0))&&void 0!==s?s:A)===T)return;const e=this._$AH,o=t===A&&e!==A||t.capture!==e.capture||t.once!==e.once||t.passive!==e.passive,n=t!==A&&(e===A||o);o&&this.element.removeEventListener(this.name,this,e),n&&this.element.addEventListener(this.name,this,t),this._$AH=t}handleEvent(t){var i,s;\"function\"==typeof this._$AH?this._$AH.call(null!==(s=null===(i=this.options)||void 0===i?void 0:i.host)&&void 0!==s?s:this.element,t):this._$AH.handleEvent(t)}}class z{constructor(t,i,s){this.element=t,this.type=6,this._$AN=void 0,this._$AM=i,this.options=s}get _$AU(){return this._$AM._$AU}_$AI(t){N(this,t)}}const Z={O:o,P:n,A:l,C:1,M:P,L:S,D:v,R:N,I:M,V:R,H:I,N:L,U:k,F:z},j=i.litHtmlPolyfillSupport;null==j||j(V,M),(null!==(t=i.litHtmlVersions)&&void 0!==t?t:i.litHtmlVersions=[]).push(\"2.7.4\");const B=(t,i,s)=>{var e,o;const n=null!==(e=null==s?void 0:s.renderBefore)&&void 0!==e?e:i;let l=n._$litPart$;if(void 0===l){const t=null!==(o=null==s?void 0:s.renderBefore)&&void 0!==o?o:null;n._$litPart$=l=new M(i.insertBefore(d(),t),t,void 0,null!=s?s:{})}return l._$AI(t),l};export{Z as _$LH,x as html,T as noChange,A as nothing,B as render,b as svg};\n//# sourceMappingURL=lit-html.js.map\n","import{ReactiveElement as t}from\"@lit/reactive-element\";export*from\"@lit/reactive-element\";import{render as e,noChange as i}from\"lit-html\";export*from\"lit-html\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var l,o;const r=t;class s extends t{constructor(){super(...arguments),this.renderOptions={host:this},this._$Do=void 0}createRenderRoot(){var t,e;const i=super.createRenderRoot();return null!==(t=(e=this.renderOptions).renderBefore)&&void 0!==t||(e.renderBefore=i.firstChild),i}update(t){const i=this.render();this.hasUpdated||(this.renderOptions.isConnected=this.isConnected),super.update(t),this._$Do=e(i,this.renderRoot,this.renderOptions)}connectedCallback(){var t;super.connectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!0)}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._$Do)||void 0===t||t.setConnected(!1)}render(){return i}}s.finalized=!0,s._$litElement$=!0,null===(l=globalThis.litElementHydrateSupport)||void 0===l||l.call(globalThis,{LitElement:s});const n=globalThis.litElementPolyfillSupport;null==n||n({LitElement:s});const h={_$AK:(t,e,i)=>{t._$AK(e,i)},_$AL:t=>t._$AL};(null!==(o=globalThis.litElementVersions)&&void 0!==o?o:globalThis.litElementVersions=[]).push(\"3.3.2\");export{s as LitElement,r as UpdatingElement,h as _$LE};\n//# sourceMappingURL=lit-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=e=>n=>\"function\"==typeof n?((e,n)=>(customElements.define(e,n),n))(e,n):((e,n)=>{const{kind:t,elements:s}=n;return{kind:t,elements:s,finisher(n){customElements.define(e,n)}}})(e,n);export{e as customElement};\n//# sourceMappingURL=custom-element.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst i=(i,e)=>\"method\"===e.kind&&e.descriptor&&!(\"value\"in e.descriptor)?{...e,finisher(n){n.createProperty(e.key,i)}}:{kind:\"field\",key:Symbol(),placement:\"own\",descriptor:{},originalKey:e.key,initializer(){\"function\"==typeof e.initializer&&(this[e.key]=e.initializer.call(this))},finisher(n){n.createProperty(e.key,i)}},e=(i,e,n)=>{e.constructor.createProperty(n,i)};function n(n){return(t,o)=>void 0!==o?e(n,t,o):i(n,t)}export{n as property};\n//# sourceMappingURL=property.js.map\n","import{property as r}from\"./property.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function t(t){return r({...t,state:!0})}export{t as state};\n//# sourceMappingURL=state.js.map\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst e=(e,t,o)=>{Object.defineProperty(t,o,e)},t=(e,t)=>({kind:\"method\",placement:\"prototype\",key:t.key,descriptor:e}),o=({finisher:e,descriptor:t})=>(o,n)=>{var r;if(void 0===n){const n=null!==(r=o.originalKey)&&void 0!==r?r:o.key,i=null!=t?{kind:\"method\",placement:\"prototype\",key:n,descriptor:t(o.key)}:{...o,key:n};return null!=e&&(i.finisher=function(t){e(t,n)}),i}{const r=o.constructor;void 0!==t&&Object.defineProperty(o,n,t(n)),null==e||e(r,n)}};export{o as decorateProperty,e as legacyPrototypeMethod,t as standardPrototypeMethod};\n//# sourceMappingURL=base.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */function i(i,n){return o({descriptor:o=>{const t={get(){var o,n;return null!==(n=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==n?n:null},enumerable:!0,configurable:!0};if(n){const n=\"symbol\"==typeof o?Symbol():\"__\"+o;t.get=function(){var o,t;return void 0===this[n]&&(this[n]=null!==(t=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(i))&&void 0!==t?t:null),this[n]}}return t}})}export{i as query};\n//# sourceMappingURL=query.js.map\n","import{decorateProperty as o}from\"./base.js\";\n/**\n * @license\n * Copyright 2021 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */var n;const e=null!=(null===(n=window.HTMLSlotElement)||void 0===n?void 0:n.prototype.assignedElements)?(o,n)=>o.assignedElements(n):(o,n)=>o.assignedNodes(n).filter((o=>o.nodeType===Node.ELEMENT_NODE));function l(n){const{slot:l,selector:t}=null!=n?n:{};return o({descriptor:o=>({get(){var o;const r=\"slot\"+(l?`[name=${l}]`:\":not([name])\"),i=null===(o=this.renderRoot)||void 0===o?void 0:o.querySelector(r),s=null!=i?e(i,n):[];return t?s.filter((o=>o.matches(t))):s},enumerable:!0,configurable:!0})})}export{l as queryAssignedElements};\n//# sourceMappingURL=query-assigned-elements.js.map\n","import{nothing as t}from\"../lit-html.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const l=l=>null!=l?l:t;export{l as ifDefined};\n//# sourceMappingURL=if-defined.js.map\n","import type { Maybe, Perhaps } from '@productive-codebases/toolbox'\n\n/**\n * Return T or null from a potential undefined T value.\n * Useful to \"convert\" undefined to null.\n */\nexport function ensureNullable<T>(value: Perhaps<T>): Maybe<T> {\n if (value === undefined) {\n return null\n }\n\n return value\n}\n","var niceErrors = {\n 0: \"Invalid value for configuration 'enforceActions', expected 'never', 'always' or 'observed'\",\n 1: function _(annotationType, key) {\n return \"Cannot apply '\" + annotationType + \"' to '\" + key.toString() + \"': Field not found.\";\n },\n\n /*\r\n 2(prop) {\r\n return `invalid decorator for '${prop.toString()}'`\r\n },\r\n 3(prop) {\r\n return `Cannot decorate '${prop.toString()}': action can only be used on properties with a function value.`\r\n },\r\n 4(prop) {\r\n return `Cannot decorate '${prop.toString()}': computed can only be used on getter properties.`\r\n },\r\n */\n 5: \"'keys()' can only be used on observable objects, arrays, sets and maps\",\n 6: \"'values()' can only be used on observable objects, arrays, sets and maps\",\n 7: \"'entries()' can only be used on observable objects, arrays and maps\",\n 8: \"'set()' can only be used on observable objects, arrays and maps\",\n 9: \"'remove()' can only be used on observable objects, arrays and maps\",\n 10: \"'has()' can only be used on observable objects, arrays and maps\",\n 11: \"'get()' can only be used on observable objects, arrays and maps\",\n 12: \"Invalid annotation\",\n 13: \"Dynamic observable objects cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 14: \"Intercept handlers should return nothing or a change object\",\n 15: \"Observable arrays cannot be frozen. If you're passing observables to 3rd party component/function that calls Object.freeze, pass copy instead: toJS(observable)\",\n 16: \"Modification exception: the internal structure of an observable array was changed.\",\n 17: function _(index, length) {\n return \"[mobx.array] Index out of bounds, \" + index + \" is larger than \" + length;\n },\n 18: \"mobx.map requires Map polyfill for the current browser. Check babel-polyfill or core-js/es6/map.js\",\n 19: function _(other) {\n return \"Cannot initialize from classes that inherit from Map: \" + other.constructor.name;\n },\n 20: function _(other) {\n return \"Cannot initialize map from \" + other;\n },\n 21: function _(dataStructure) {\n return \"Cannot convert to map from '\" + dataStructure + \"'\";\n },\n 22: \"mobx.set requires Set polyfill for the current browser. Check babel-polyfill or core-js/es6/set.js\",\n 23: \"It is not possible to get index atoms from arrays\",\n 24: function _(thing) {\n return \"Cannot obtain administration from \" + thing;\n },\n 25: function _(property, name) {\n return \"the entry '\" + property + \"' does not exist in the observable map '\" + name + \"'\";\n },\n 26: \"please specify a property\",\n 27: function _(property, name) {\n return \"no observable property '\" + property.toString() + \"' found on the observable object '\" + name + \"'\";\n },\n 28: function _(thing) {\n return \"Cannot obtain atom from \" + thing;\n },\n 29: \"Expecting some object\",\n 30: \"invalid action stack. did you forget to finish an action?\",\n 31: \"missing option for computed: get\",\n 32: function _(name, derivation) {\n return \"Cycle detected in computation \" + name + \": \" + derivation;\n },\n 33: function _(name) {\n return \"The setter of computed value '\" + name + \"' is trying to update itself. Did you intend to update an _observable_ value, instead of the computed property?\";\n },\n 34: function _(name) {\n return \"[ComputedValue '\" + name + \"'] It is not possible to assign a new value to a computed value.\";\n },\n 35: \"There are multiple, different versions of MobX active. Make sure MobX is loaded only once or use `configure({ isolateGlobalState: true })`\",\n 36: \"isolateGlobalState should be called before MobX is running any reactions\",\n 37: function _(method) {\n return \"[mobx] `observableArray.\" + method + \"()` mutates the array in-place, which is not allowed inside a derivation. Use `array.slice().\" + method + \"()` instead\";\n },\n 38: \"'ownKeys()' can only be used on observable objects\",\n 39: \"'defineProperty()' can only be used on observable objects\"\n};\nvar errors = process.env.NODE_ENV !== \"production\" ? niceErrors : {};\nfunction die(error) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n var e = typeof error === \"string\" ? error : errors[error];\n if (typeof e === \"function\") e = e.apply(null, args);\n throw new Error(\"[MobX] \" + e);\n }\n\n throw new Error(typeof error === \"number\" ? \"[MobX] minified error nr: \" + error + (args.length ? \" \" + args.map(String).join(\",\") : \"\") + \". Find the full error at: https://github.com/mobxjs/mobx/blob/main/packages/mobx/src/errors.ts\" : \"[MobX] \" + error);\n}\n\nvar mockGlobal = {};\nfunction getGlobal() {\n if (typeof globalThis !== \"undefined\") {\n return globalThis;\n }\n\n if (typeof window !== \"undefined\") {\n return window;\n }\n\n if (typeof global !== \"undefined\") {\n return global;\n }\n\n if (typeof self !== \"undefined\") {\n return self;\n }\n\n return mockGlobal;\n}\n\nvar assign = Object.assign;\nvar getDescriptor = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar objectPrototype = Object.prototype;\nvar EMPTY_ARRAY = [];\nObject.freeze(EMPTY_ARRAY);\nvar EMPTY_OBJECT = {};\nObject.freeze(EMPTY_OBJECT);\nvar hasProxy = typeof Proxy !== \"undefined\";\nvar plainObjectString = /*#__PURE__*/Object.toString();\nfunction assertProxies() {\n if (!hasProxy) {\n die(process.env.NODE_ENV !== \"production\" ? \"`Proxy` objects are not available in the current environment. Please configure MobX to enable a fallback implementation.`\" : \"Proxy not available\");\n }\n}\nfunction warnAboutProxyRequirement(msg) {\n if (process.env.NODE_ENV !== \"production\" && globalState.verifyProxies) {\n die(\"MobX is currently configured to be able to run in ES5 mode, but in ES5 MobX won't be able to \" + msg);\n }\n}\nfunction getNextId() {\n return ++globalState.mobxGuid;\n}\n/**\r\n * Makes sure that the provided function is invoked at most once.\r\n */\n\nfunction once(func) {\n var invoked = false;\n return function () {\n if (invoked) {\n return;\n }\n\n invoked = true;\n return func.apply(this, arguments);\n };\n}\nvar noop = function noop() {};\nfunction isFunction(fn) {\n return typeof fn === \"function\";\n}\nfunction isStringish(value) {\n var t = typeof value;\n\n switch (t) {\n case \"string\":\n case \"symbol\":\n case \"number\":\n return true;\n }\n\n return false;\n}\nfunction isObject(value) {\n return value !== null && typeof value === \"object\";\n}\nfunction isPlainObject(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var proto = Object.getPrototypeOf(value);\n\n if (proto == null) {\n return true;\n }\n\n var protoConstructor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n return typeof protoConstructor === \"function\" && protoConstructor.toString() === plainObjectString;\n} // https://stackoverflow.com/a/37865170\n\nfunction isGenerator(obj) {\n var constructor = obj == null ? void 0 : obj.constructor;\n\n if (!constructor) {\n return false;\n }\n\n if (\"GeneratorFunction\" === constructor.name || \"GeneratorFunction\" === constructor.displayName) {\n return true;\n }\n\n return false;\n}\nfunction addHiddenProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: true,\n configurable: true,\n value: value\n });\n}\nfunction addHiddenFinalProp(object, propName, value) {\n defineProperty(object, propName, {\n enumerable: false,\n writable: false,\n configurable: true,\n value: value\n });\n}\nfunction createInstanceofPredicate(name, theClass) {\n var propName = \"isMobX\" + name;\n theClass.prototype[propName] = true;\n return function (x) {\n return isObject(x) && x[propName] === true;\n };\n}\nfunction isES6Map(thing) {\n return thing instanceof Map;\n}\nfunction isES6Set(thing) {\n return thing instanceof Set;\n}\nvar hasGetOwnPropertySymbols = typeof Object.getOwnPropertySymbols !== \"undefined\";\n/**\r\n * Returns the following: own enumerable keys and symbols.\r\n */\n\nfunction getPlainObjectKeys(object) {\n var keys = Object.keys(object); // Not supported in IE, so there are not going to be symbol props anyway...\n\n if (!hasGetOwnPropertySymbols) {\n return keys;\n }\n\n var symbols = Object.getOwnPropertySymbols(object);\n\n if (!symbols.length) {\n return keys;\n }\n\n return [].concat(keys, symbols.filter(function (s) {\n return objectPrototype.propertyIsEnumerable.call(object, s);\n }));\n} // From Immer utils\n// Returns all own keys, including non-enumerable and symbolic\n\nvar ownKeys = typeof Reflect !== \"undefined\" && Reflect.ownKeys ? Reflect.ownKeys : hasGetOwnPropertySymbols ? function (obj) {\n return Object.getOwnPropertyNames(obj).concat(Object.getOwnPropertySymbols(obj));\n} :\n/* istanbul ignore next */\nObject.getOwnPropertyNames;\nfunction stringifyKey(key) {\n if (typeof key === \"string\") {\n return key;\n }\n\n if (typeof key === \"symbol\") {\n return key.toString();\n }\n\n return new String(key).toString();\n}\nfunction toPrimitive(value) {\n return value === null ? null : typeof value === \"object\" ? \"\" + value : value;\n}\nfunction hasProp(target, prop) {\n return objectPrototype.hasOwnProperty.call(target, prop);\n} // From Immer utils\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors || function getOwnPropertyDescriptors(target) {\n // Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n var res = {}; // Note: without polyfill for ownKeys, symbols won't be picked up\n\n ownKeys(target).forEach(function (key) {\n res[key] = getDescriptor(target, key);\n });\n return res;\n};\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nvar storedAnnotationsSymbol = /*#__PURE__*/Symbol(\"mobx-stored-annotations\");\n/**\r\n * Creates a function that acts as\r\n * - decorator\r\n * - annotation object\r\n */\n\nfunction createDecoratorAnnotation(annotation) {\n function decorator(target, property) {\n storeAnnotation(target, property, annotation);\n }\n\n return Object.assign(decorator, annotation);\n}\n/**\r\n * Stores annotation to prototype,\r\n * so it can be inspected later by `makeObservable` called from constructor\r\n */\n\nfunction storeAnnotation(prototype, key, annotation) {\n if (!hasProp(prototype, storedAnnotationsSymbol)) {\n addHiddenProp(prototype, storedAnnotationsSymbol, _extends({}, prototype[storedAnnotationsSymbol]));\n } // @override must override something\n\n\n if (process.env.NODE_ENV !== \"production\" && isOverride(annotation) && !hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n die(\"'\" + fieldName + \"' is decorated with 'override', \" + \"but no such decorated member was found on prototype.\");\n } // Cannot re-decorate\n\n\n assertNotDecorated(prototype, annotation, key); // Ignore override\n\n if (!isOverride(annotation)) {\n prototype[storedAnnotationsSymbol][key] = annotation;\n }\n}\n\nfunction assertNotDecorated(prototype, annotation, key) {\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(prototype[storedAnnotationsSymbol], key)) {\n var fieldName = prototype.constructor.name + \".prototype.\" + key.toString();\n var currentAnnotationType = prototype[storedAnnotationsSymbol][key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '@\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already decorated with '@\" + currentAnnotationType + \"'.\") + \"\\nRe-decorating fields is not allowed.\" + \"\\nUse '@override' decorator for methods overridden by subclass.\");\n }\n}\n/**\r\n * Collects annotations from prototypes and stores them on target (instance)\r\n */\n\n\nfunction collectStoredAnnotations(target) {\n if (!hasProp(target, storedAnnotationsSymbol)) {\n if (process.env.NODE_ENV !== \"production\" && !target[storedAnnotationsSymbol]) {\n die(\"No annotations were passed to makeObservable, but no decorated members have been found either\");\n } // We need a copy as we will remove annotation from the list once it's applied.\n\n\n addHiddenProp(target, storedAnnotationsSymbol, _extends({}, target[storedAnnotationsSymbol]));\n }\n\n return target[storedAnnotationsSymbol];\n}\n\nvar $mobx = /*#__PURE__*/Symbol(\"mobx administration\");\nvar Atom = /*#__PURE__*/function () {\n // for effective unobserving. BaseAtom has true, for extra optimization, so its onBecomeUnobserved never gets called, because it's not needed\n\n /**\r\n * Create a new atom. For debugging purposes it is recommended to give it a name.\r\n * The onBecomeObserved and onBecomeUnobserved callbacks can be used for resource management.\r\n */\n function Atom(name_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Atom@\" + getNextId() : \"Atom\";\n }\n\n this.name_ = void 0;\n this.isPendingUnobservation_ = false;\n this.isBeingObserved_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.NOT_TRACKING_;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n this.name_ = name_;\n } // onBecomeObservedListeners\n\n\n var _proto = Atom.prototype;\n\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Invoke this method to notify mobx that your atom has been used somehow.\r\n * Returns true if there is currently a reactive context.\r\n */\n ;\n\n _proto.reportObserved = function reportObserved$1() {\n return reportObserved(this);\n }\n /**\r\n * Invoke this method _after_ this method has changed to signal mobx that all its observers should invalidate.\r\n */\n ;\n\n _proto.reportChanged = function reportChanged() {\n startBatch();\n propagateChanged(this);\n endBatch();\n };\n\n _proto.toString = function toString() {\n return this.name_;\n };\n\n return Atom;\n}();\nvar isAtom = /*#__PURE__*/createInstanceofPredicate(\"Atom\", Atom);\nfunction createAtom(name, onBecomeObservedHandler, onBecomeUnobservedHandler) {\n if (onBecomeObservedHandler === void 0) {\n onBecomeObservedHandler = noop;\n }\n\n if (onBecomeUnobservedHandler === void 0) {\n onBecomeUnobservedHandler = noop;\n }\n\n var atom = new Atom(name); // default `noop` listener will not initialize the hook Set\n\n if (onBecomeObservedHandler !== noop) {\n onBecomeObserved(atom, onBecomeObservedHandler);\n }\n\n if (onBecomeUnobservedHandler !== noop) {\n onBecomeUnobserved(atom, onBecomeUnobservedHandler);\n }\n\n return atom;\n}\n\nfunction identityComparer(a, b) {\n return a === b;\n}\n\nfunction structuralComparer(a, b) {\n return deepEqual(a, b);\n}\n\nfunction shallowComparer(a, b) {\n return deepEqual(a, b, 1);\n}\n\nfunction defaultComparer(a, b) {\n if (Object.is) {\n return Object.is(a, b);\n }\n\n return a === b ? a !== 0 || 1 / a === 1 / b : a !== a && b !== b;\n}\n\nvar comparer = {\n identity: identityComparer,\n structural: structuralComparer,\n \"default\": defaultComparer,\n shallow: shallowComparer\n};\n\nfunction deepEnhancer(v, _, name) {\n // it is an observable already, done\n if (isObservable(v)) {\n return v;\n } // something that can be converted and mutated?\n\n\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name\n });\n }\n\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name\n });\n }\n\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name\n });\n }\n\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name\n });\n }\n\n if (typeof v === \"function\" && !isAction(v) && !isFlow(v)) {\n if (isGenerator(v)) {\n return flow(v);\n } else {\n return autoAction(name, v);\n }\n }\n\n return v;\n}\nfunction shallowEnhancer(v, _, name) {\n if (v === undefined || v === null) {\n return v;\n }\n\n if (isObservableObject(v) || isObservableArray(v) || isObservableMap(v) || isObservableSet(v)) {\n return v;\n }\n\n if (Array.isArray(v)) {\n return observable.array(v, {\n name: name,\n deep: false\n });\n }\n\n if (isPlainObject(v)) {\n return observable.object(v, undefined, {\n name: name,\n deep: false\n });\n }\n\n if (isES6Map(v)) {\n return observable.map(v, {\n name: name,\n deep: false\n });\n }\n\n if (isES6Set(v)) {\n return observable.set(v, {\n name: name,\n deep: false\n });\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n die(\"The shallow modifier / decorator can only used in combination with arrays, objects, maps and sets\");\n }\n}\nfunction referenceEnhancer(newValue) {\n // never turn into an observable\n return newValue;\n}\nfunction refStructEnhancer(v, oldValue) {\n if (process.env.NODE_ENV !== \"production\" && isObservable(v)) {\n die(\"observable.struct should not be used with observable values\");\n }\n\n if (deepEqual(v, oldValue)) {\n return oldValue;\n }\n\n return v;\n}\n\nvar OVERRIDE = \"override\";\nvar override = /*#__PURE__*/createDecoratorAnnotation({\n annotationType_: OVERRIDE,\n make_: make_,\n extend_: extend_\n});\nfunction isOverride(annotation) {\n return annotation.annotationType_ === OVERRIDE;\n}\n\nfunction make_(adm, key) {\n // Must not be plain object\n if (process.env.NODE_ENV !== \"production\" && adm.isPlainObject_) {\n die(\"Cannot apply '\" + this.annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + this.annotationType_ + \"' cannot be used on plain objects.\"));\n } // Must override something\n\n\n if (process.env.NODE_ENV !== \"production\" && !hasProp(adm.appliedAnnotations_, key)) {\n die(\"'\" + adm.name_ + \".\" + key.toString() + \"' is annotated with '\" + this.annotationType_ + \"', \" + \"but no such annotated member was found on prototype.\");\n }\n\n return 0\n /* Cancel */\n ;\n}\n\nfunction extend_(adm, key, descriptor, proxyTrap) {\n die(\"'\" + this.annotationType_ + \"' can only be used with 'makeObservable'\");\n}\n\nfunction createActionAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$1,\n extend_: extend_$1\n };\n}\n\nfunction make_$1(adm, key, descriptor, source) {\n var _this$options_;\n\n // bound\n if ((_this$options_ = this.options_) != null && _this$options_.bound) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 1\n /* Break */\n ;\n } // own\n\n\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 2\n /* Continue */\n ;\n } // prototype\n\n\n if (isAction(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1\n /* Break */\n ;\n }\n\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor, false);\n defineProperty(source, key, actionDescriptor);\n return 2\n /* Continue */\n ;\n}\n\nfunction extend_$1(adm, key, descriptor, proxyTrap) {\n var actionDescriptor = createActionDescriptor(adm, this, key, descriptor);\n return adm.defineProperty_(key, actionDescriptor, proxyTrap);\n}\n\nfunction assertActionDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a function value.\"));\n }\n}\n\nfunction createActionDescriptor(adm, annotation, key, descriptor, // provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n var _annotation$options_, _annotation$options_$, _annotation$options_2, _annotation$options_$2, _annotation$options_3, _annotation$options_4, _adm$proxy_2;\n\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n\n assertActionDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value;\n\n if ((_annotation$options_ = annotation.options_) != null && _annotation$options_.bound) {\n var _adm$proxy_;\n\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n\n return {\n value: createAction((_annotation$options_$ = (_annotation$options_2 = annotation.options_) == null ? void 0 : _annotation$options_2.name) != null ? _annotation$options_$ : key.toString(), value, (_annotation$options_$2 = (_annotation$options_3 = annotation.options_) == null ? void 0 : _annotation$options_3.autoAction) != null ? _annotation$options_$2 : false, // https://github.com/mobxjs/mobx/discussions/3140\n (_annotation$options_4 = annotation.options_) != null && _annotation$options_4.bound ? (_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_ : undefined),\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createFlowAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$2,\n extend_: extend_$2\n };\n}\n\nfunction make_$2(adm, key, descriptor, source) {\n var _this$options_;\n\n // own\n if (source === adm.target_) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 2\n /* Continue */\n ;\n } // prototype\n // bound - must annotate protos to support super.flow()\n\n\n if ((_this$options_ = this.options_) != null && _this$options_.bound && (!hasProp(adm.target_, key) || !isFlow(adm.target_[key]))) {\n if (this.extend_(adm, key, descriptor, false) === null) {\n return 0\n /* Cancel */\n ;\n }\n }\n\n if (isFlow(descriptor.value)) {\n // A prototype could have been annotated already by other constructor,\n // rest of the proto chain must be annotated already\n return 1\n /* Break */\n ;\n }\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, false, false);\n defineProperty(source, key, flowDescriptor);\n return 2\n /* Continue */\n ;\n}\n\nfunction extend_$2(adm, key, descriptor, proxyTrap) {\n var _this$options_2;\n\n var flowDescriptor = createFlowDescriptor(adm, this, key, descriptor, (_this$options_2 = this.options_) == null ? void 0 : _this$options_2.bound);\n return adm.defineProperty_(key, flowDescriptor, proxyTrap);\n}\n\nfunction assertFlowDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var value = _ref2.value;\n\n if (process.env.NODE_ENV !== \"production\" && !isFunction(value)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on properties with a generator function value.\"));\n }\n}\n\nfunction createFlowDescriptor(adm, annotation, key, descriptor, bound, // provides ability to disable safeDescriptors for prototypes\nsafeDescriptors) {\n if (safeDescriptors === void 0) {\n safeDescriptors = globalState.safeDescriptors;\n }\n\n assertFlowDescriptor(adm, annotation, key, descriptor);\n var value = descriptor.value; // In case of flow.bound, the descriptor can be from already annotated prototype\n\n if (!isFlow(value)) {\n value = flow(value);\n }\n\n if (bound) {\n var _adm$proxy_;\n\n // We do not keep original function around, so we bind the existing flow\n value = value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_); // This is normally set by `flow`, but `bind` returns new function...\n\n value.isMobXFlow = true;\n }\n\n return {\n value: value,\n // Non-configurable for classes\n // prevents accidental field redefinition in subclass\n configurable: safeDescriptors ? adm.isPlainObject_ : true,\n // https://github.com/mobxjs/mobx/pull/2641#issuecomment-737292058\n enumerable: false,\n // Non-obsevable, therefore non-writable\n // Also prevents rewriting in subclass constructor\n writable: safeDescriptors ? false : true\n };\n}\n\nfunction createComputedAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$3,\n extend_: extend_$3\n };\n}\n\nfunction make_$3(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 1\n /* Break */\n ;\n}\n\nfunction extend_$3(adm, key, descriptor, proxyTrap) {\n assertComputedDescriptor(adm, this, key, descriptor);\n return adm.defineComputedProperty_(key, _extends({}, this.options_, {\n get: descriptor.get,\n set: descriptor.set\n }), proxyTrap);\n}\n\nfunction assertComputedDescriptor(adm, _ref, key, _ref2) {\n var annotationType_ = _ref.annotationType_;\n var get = _ref2.get;\n\n if (process.env.NODE_ENV !== \"production\" && !get) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' can only be used on getter(+setter) properties.\"));\n }\n}\n\nfunction createObservableAnnotation(name, options) {\n return {\n annotationType_: name,\n options_: options,\n make_: make_$4,\n extend_: extend_$4\n };\n}\n\nfunction make_$4(adm, key, descriptor) {\n return this.extend_(adm, key, descriptor, false) === null ? 0\n /* Cancel */\n : 1\n /* Break */\n ;\n}\n\nfunction extend_$4(adm, key, descriptor, proxyTrap) {\n var _this$options_$enhanc, _this$options_;\n\n assertObservableDescriptor(adm, this, key, descriptor);\n return adm.defineObservableProperty_(key, descriptor.value, (_this$options_$enhanc = (_this$options_ = this.options_) == null ? void 0 : _this$options_.enhancer) != null ? _this$options_$enhanc : deepEnhancer, proxyTrap);\n}\n\nfunction assertObservableDescriptor(adm, _ref, key, descriptor) {\n var annotationType_ = _ref.annotationType_;\n\n if (process.env.NODE_ENV !== \"production\" && !(\"value\" in descriptor)) {\n die(\"Cannot apply '\" + annotationType_ + \"' to '\" + adm.name_ + \".\" + key.toString() + \"':\" + (\"\\n'\" + annotationType_ + \"' cannot be used on getter/setter properties\"));\n }\n}\n\nvar AUTO = \"true\";\nvar autoAnnotation = /*#__PURE__*/createAutoAnnotation();\nfunction createAutoAnnotation(options) {\n return {\n annotationType_: AUTO,\n options_: options,\n make_: make_$5,\n extend_: extend_$5\n };\n}\n\nfunction make_$5(adm, key, descriptor, source) {\n var _this$options_3, _this$options_4;\n\n // getter -> computed\n if (descriptor.get) {\n return computed.make_(adm, key, descriptor, source);\n } // lone setter -> action setter\n\n\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.make_\n var set = createAction(key.toString(), descriptor.set); // own\n\n if (source === adm.target_) {\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: set\n }) === null ? 0\n /* Cancel */\n : 2\n /* Continue */\n ;\n } // proto\n\n\n defineProperty(source, key, {\n configurable: true,\n set: set\n });\n return 2\n /* Continue */\n ;\n } // function on proto -> autoAction/flow\n\n\n if (source !== adm.target_ && typeof descriptor.value === \"function\") {\n var _this$options_2;\n\n if (isGenerator(descriptor.value)) {\n var _this$options_;\n\n var flowAnnotation = (_this$options_ = this.options_) != null && _this$options_.autoBind ? flow.bound : flow;\n return flowAnnotation.make_(adm, key, descriptor, source);\n }\n\n var actionAnnotation = (_this$options_2 = this.options_) != null && _this$options_2.autoBind ? autoAction.bound : autoAction;\n return actionAnnotation.make_(adm, key, descriptor, source);\n } // other -> observable\n // Copy props from proto as well, see test:\n // \"decorate should work with Object.create\"\n\n\n var observableAnnotation = ((_this$options_3 = this.options_) == null ? void 0 : _this$options_3.deep) === false ? observable.ref : observable; // if function respect autoBind option\n\n if (typeof descriptor.value === \"function\" && (_this$options_4 = this.options_) != null && _this$options_4.autoBind) {\n var _adm$proxy_;\n\n descriptor.value = descriptor.value.bind((_adm$proxy_ = adm.proxy_) != null ? _adm$proxy_ : adm.target_);\n }\n\n return observableAnnotation.make_(adm, key, descriptor, source);\n}\n\nfunction extend_$5(adm, key, descriptor, proxyTrap) {\n var _this$options_5, _this$options_6;\n\n // getter -> computed\n if (descriptor.get) {\n return computed.extend_(adm, key, descriptor, proxyTrap);\n } // lone setter -> action setter\n\n\n if (descriptor.set) {\n // TODO make action applicable to setter and delegate to action.extend_\n return adm.defineProperty_(key, {\n configurable: globalState.safeDescriptors ? adm.isPlainObject_ : true,\n set: createAction(key.toString(), descriptor.set)\n }, proxyTrap);\n } // other -> observable\n // if function respect autoBind option\n\n\n if (typeof descriptor.value === \"function\" && (_this$options_5 = this.options_) != null && _this$options_5.autoBind) {\n var _adm$proxy_2;\n\n descriptor.value = descriptor.value.bind((_adm$proxy_2 = adm.proxy_) != null ? _adm$proxy_2 : adm.target_);\n }\n\n var observableAnnotation = ((_this$options_6 = this.options_) == null ? void 0 : _this$options_6.deep) === false ? observable.ref : observable;\n return observableAnnotation.extend_(adm, key, descriptor, proxyTrap);\n}\n\nvar OBSERVABLE = \"observable\";\nvar OBSERVABLE_REF = \"observable.ref\";\nvar OBSERVABLE_SHALLOW = \"observable.shallow\";\nvar OBSERVABLE_STRUCT = \"observable.struct\"; // Predefined bags of create observable options, to avoid allocating temporarily option objects\n// in the majority of cases\n\nvar defaultCreateObservableOptions = {\n deep: true,\n name: undefined,\n defaultDecorator: undefined,\n proxy: true\n};\nObject.freeze(defaultCreateObservableOptions);\nfunction asCreateObservableOptions(thing) {\n return thing || defaultCreateObservableOptions;\n}\nvar observableAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE);\nvar observableRefAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_REF, {\n enhancer: referenceEnhancer\n});\nvar observableShallowAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_SHALLOW, {\n enhancer: shallowEnhancer\n});\nvar observableStructAnnotation = /*#__PURE__*/createObservableAnnotation(OBSERVABLE_STRUCT, {\n enhancer: refStructEnhancer\n});\nvar observableDecoratorAnnotation = /*#__PURE__*/createDecoratorAnnotation(observableAnnotation);\nfunction getEnhancerFromOptions(options) {\n return options.deep === true ? deepEnhancer : options.deep === false ? referenceEnhancer : getEnhancerFromAnnotation(options.defaultDecorator);\n}\nfunction getAnnotationFromOptions(options) {\n var _options$defaultDecor;\n\n return options ? (_options$defaultDecor = options.defaultDecorator) != null ? _options$defaultDecor : createAutoAnnotation(options) : undefined;\n}\nfunction getEnhancerFromAnnotation(annotation) {\n var _annotation$options_$, _annotation$options_;\n\n return !annotation ? deepEnhancer : (_annotation$options_$ = (_annotation$options_ = annotation.options_) == null ? void 0 : _annotation$options_.enhancer) != null ? _annotation$options_$ : deepEnhancer;\n}\n/**\r\n * Turns an object, array or function into a reactive structure.\r\n * @param v the value which should become observable.\r\n */\n\nfunction createObservable(v, arg2, arg3) {\n // @observable someProp;\n if (isStringish(arg2)) {\n storeAnnotation(v, arg2, observableAnnotation);\n return;\n } // already observable - ignore\n\n\n if (isObservable(v)) {\n return v;\n } // plain object\n\n\n if (isPlainObject(v)) {\n return observable.object(v, arg2, arg3);\n } // Array\n\n\n if (Array.isArray(v)) {\n return observable.array(v, arg2);\n } // Map\n\n\n if (isES6Map(v)) {\n return observable.map(v, arg2);\n } // Set\n\n\n if (isES6Set(v)) {\n return observable.set(v, arg2);\n } // other object - ignore\n\n\n if (typeof v === \"object\" && v !== null) {\n return v;\n } // anything else\n\n\n return observable.box(v, arg2);\n}\n\nObject.assign(createObservable, observableDecoratorAnnotation);\nvar observableFactories = {\n box: function box(value, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableValue(value, getEnhancerFromOptions(o), o.name, true, o.equals);\n },\n array: function array(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return (globalState.useProxies === false || o.proxy === false ? createLegacyArray : createObservableArray)(initialValues, getEnhancerFromOptions(o), o.name);\n },\n map: function map(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableMap(initialValues, getEnhancerFromOptions(o), o.name);\n },\n set: function set(initialValues, options) {\n var o = asCreateObservableOptions(options);\n return new ObservableSet(initialValues, getEnhancerFromOptions(o), o.name);\n },\n object: function object(props, decorators, options) {\n return extendObservable(globalState.useProxies === false || (options == null ? void 0 : options.proxy) === false ? asObservableObject({}, options) : asDynamicObservableObject({}, options), props, decorators);\n },\n ref: /*#__PURE__*/createDecoratorAnnotation(observableRefAnnotation),\n shallow: /*#__PURE__*/createDecoratorAnnotation(observableShallowAnnotation),\n deep: observableDecoratorAnnotation,\n struct: /*#__PURE__*/createDecoratorAnnotation(observableStructAnnotation)\n}; // eslint-disable-next-line\n\nvar observable = /*#__PURE__*/assign(createObservable, observableFactories);\n\nvar COMPUTED = \"computed\";\nvar COMPUTED_STRUCT = \"computed.struct\";\nvar computedAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED);\nvar computedStructAnnotation = /*#__PURE__*/createComputedAnnotation(COMPUTED_STRUCT, {\n equals: comparer.structural\n});\n/**\r\n * Decorator for class properties: @computed get value() { return expr; }.\r\n * For legacy purposes also invokable as ES5 observable created: `computed(() => expr)`;\r\n */\n\nvar computed = function computed(arg1, arg2) {\n if (isStringish(arg2)) {\n // @computed\n return storeAnnotation(arg1, arg2, computedAnnotation);\n }\n\n if (isPlainObject(arg1)) {\n // @computed({ options })\n return createDecoratorAnnotation(createComputedAnnotation(COMPUTED, arg1));\n } // computed(expr, options?)\n\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(arg1)) {\n die(\"First argument to `computed` should be an expression.\");\n }\n\n if (isFunction(arg2)) {\n die(\"A setter as second argument is no longer supported, use `{ set: fn }` option instead\");\n }\n }\n\n var opts = isPlainObject(arg2) ? arg2 : {};\n opts.get = arg1;\n opts.name || (opts.name = arg1.name || \"\");\n /* for generated name */\n\n return new ComputedValue(opts);\n};\nObject.assign(computed, computedAnnotation);\ncomputed.struct = /*#__PURE__*/createDecoratorAnnotation(computedStructAnnotation);\n\nvar _getDescriptor$config, _getDescriptor;\n// mobx versions\n\nvar currentActionId = 0;\nvar nextActionId = 1;\nvar isFunctionNameConfigurable = (_getDescriptor$config = (_getDescriptor = /*#__PURE__*/getDescriptor(function () {}, \"name\")) == null ? void 0 : _getDescriptor.configurable) != null ? _getDescriptor$config : false; // we can safely recycle this object\n\nvar tmpNameDescriptor = {\n value: \"action\",\n configurable: true,\n writable: false,\n enumerable: false\n};\nfunction createAction(actionName, fn, autoAction, ref) {\n if (autoAction === void 0) {\n autoAction = false;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(fn)) {\n die(\"`action` can only be invoked on functions\");\n }\n\n if (typeof actionName !== \"string\" || !actionName) {\n die(\"actions should have valid names, got: '\" + actionName + \"'\");\n }\n }\n\n function res() {\n return executeAction(actionName, autoAction, fn, ref || this, arguments);\n }\n\n res.isMobxAction = true;\n\n if (isFunctionNameConfigurable) {\n tmpNameDescriptor.value = actionName;\n Object.defineProperty(res, \"name\", tmpNameDescriptor);\n }\n\n return res;\n}\nfunction executeAction(actionName, canRunAsDerivation, fn, scope, args) {\n var runInfo = _startAction(actionName, canRunAsDerivation, scope, args);\n\n try {\n return fn.apply(scope, args);\n } catch (err) {\n runInfo.error_ = err;\n throw err;\n } finally {\n _endAction(runInfo);\n }\n}\nfunction _startAction(actionName, canRunAsDerivation, // true for autoAction\nscope, args) {\n var notifySpy_ = process.env.NODE_ENV !== \"production\" && isSpyEnabled() && !!actionName;\n var startTime_ = 0;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy_) {\n startTime_ = Date.now();\n var flattenedArgs = args ? Array.from(args) : EMPTY_ARRAY;\n spyReportStart({\n type: ACTION,\n name: actionName,\n object: scope,\n arguments: flattenedArgs\n });\n }\n\n var prevDerivation_ = globalState.trackingDerivation;\n var runAsAction = !canRunAsDerivation || !prevDerivation_;\n startBatch();\n var prevAllowStateChanges_ = globalState.allowStateChanges; // by default preserve previous allow\n\n if (runAsAction) {\n untrackedStart();\n prevAllowStateChanges_ = allowStateChangesStart(true);\n }\n\n var prevAllowStateReads_ = allowStateReadsStart(true);\n var runInfo = {\n runAsAction_: runAsAction,\n prevDerivation_: prevDerivation_,\n prevAllowStateChanges_: prevAllowStateChanges_,\n prevAllowStateReads_: prevAllowStateReads_,\n notifySpy_: notifySpy_,\n startTime_: startTime_,\n actionId_: nextActionId++,\n parentActionId_: currentActionId\n };\n currentActionId = runInfo.actionId_;\n return runInfo;\n}\nfunction _endAction(runInfo) {\n if (currentActionId !== runInfo.actionId_) {\n die(30);\n }\n\n currentActionId = runInfo.parentActionId_;\n\n if (runInfo.error_ !== undefined) {\n globalState.suppressReactionErrors = true;\n }\n\n allowStateChangesEnd(runInfo.prevAllowStateChanges_);\n allowStateReadsEnd(runInfo.prevAllowStateReads_);\n endBatch();\n\n if (runInfo.runAsAction_) {\n untrackedEnd(runInfo.prevDerivation_);\n }\n\n if (process.env.NODE_ENV !== \"production\" && runInfo.notifySpy_) {\n spyReportEnd({\n time: Date.now() - runInfo.startTime_\n });\n }\n\n globalState.suppressReactionErrors = false;\n}\nfunction allowStateChanges(allowStateChanges, func) {\n var prev = allowStateChangesStart(allowStateChanges);\n\n try {\n return func();\n } finally {\n allowStateChangesEnd(prev);\n }\n}\nfunction allowStateChangesStart(allowStateChanges) {\n var prev = globalState.allowStateChanges;\n globalState.allowStateChanges = allowStateChanges;\n return prev;\n}\nfunction allowStateChangesEnd(prev) {\n globalState.allowStateChanges = prev;\n}\n\nvar _Symbol$toPrimitive;\nvar CREATE = \"create\";\n_Symbol$toPrimitive = Symbol.toPrimitive;\nvar ObservableValue = /*#__PURE__*/function (_Atom) {\n _inheritsLoose(ObservableValue, _Atom);\n\n function ObservableValue(value, enhancer, name_, notifySpy, equals) {\n var _this;\n\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableValue@\" + getNextId() : \"ObservableValue\";\n }\n\n if (notifySpy === void 0) {\n notifySpy = true;\n }\n\n if (equals === void 0) {\n equals = comparer[\"default\"];\n }\n\n _this = _Atom.call(this, name_) || this;\n _this.enhancer = void 0;\n _this.name_ = void 0;\n _this.equals = void 0;\n _this.hasUnreportedChange_ = false;\n _this.interceptors_ = void 0;\n _this.changeListeners_ = void 0;\n _this.value_ = void 0;\n _this.dehancer = void 0;\n _this.enhancer = enhancer;\n _this.name_ = name_;\n _this.equals = equals;\n _this.value_ = enhancer(value, undefined, name_);\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy && isSpyEnabled()) {\n // only notify spy if this is a stand-alone observable\n spyReport({\n type: CREATE,\n object: _assertThisInitialized(_this),\n observableKind: \"value\",\n debugObjectName: _this.name_,\n newValue: \"\" + _this.value_\n });\n }\n\n return _this;\n }\n\n var _proto = ObservableValue.prototype;\n\n _proto.dehanceValue = function dehanceValue(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.set = function set(newValue) {\n var oldValue = this.value_;\n newValue = this.prepareNewValue_(newValue);\n\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart({\n type: UPDATE,\n object: this,\n observableKind: \"value\",\n debugObjectName: this.name_,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n\n this.setNewValue_(newValue);\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n\n _proto.prepareNewValue_ = function prepareNewValue_(newValue) {\n checkIfStateModificationsAreAllowed(this);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this,\n type: UPDATE,\n newValue: newValue\n });\n\n if (!change) {\n return globalState.UNCHANGED;\n }\n\n newValue = change.newValue;\n } // apply modifier\n\n\n newValue = this.enhancer(newValue, this.value_, this.name_);\n return this.equals(this.value_, newValue) ? globalState.UNCHANGED : newValue;\n };\n\n _proto.setNewValue_ = function setNewValue_(newValue) {\n var oldValue = this.value_;\n this.value_ = newValue;\n this.reportChanged();\n\n if (hasListeners(this)) {\n notifyListeners(this, {\n type: UPDATE,\n object: this,\n newValue: newValue,\n oldValue: oldValue\n });\n }\n };\n\n _proto.get = function get() {\n this.reportObserved();\n return this.dehanceValue(this.value_);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately) {\n listener({\n observableKind: \"value\",\n debugObjectName: this.name_,\n object: this,\n type: UPDATE,\n newValue: this.value_,\n oldValue: undefined\n });\n }\n\n return registerListener(this, listener);\n };\n\n _proto.raw = function raw() {\n // used by MST ot get undehanced value\n return this.value_;\n };\n\n _proto.toJSON = function toJSON() {\n return this.get();\n };\n\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.value_ + \"]\";\n };\n\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n\n _proto[_Symbol$toPrimitive] = function () {\n return this.valueOf();\n };\n\n return ObservableValue;\n}(Atom);\nvar isObservableValue = /*#__PURE__*/createInstanceofPredicate(\"ObservableValue\", ObservableValue);\n\nvar _Symbol$toPrimitive$1;\n/**\r\n * A node in the state dependency root that observes other nodes, and can be observed itself.\r\n *\r\n * ComputedValue will remember the result of the computation for the duration of the batch, or\r\n * while being observed.\r\n *\r\n * During this time it will recompute only when one of its direct dependencies changed,\r\n * but only when it is being accessed with `ComputedValue.get()`.\r\n *\r\n * Implementation description:\r\n * 1. First time it's being accessed it will compute and remember result\r\n * give back remembered result until 2. happens\r\n * 2. First time any deep dependency change, propagate POSSIBLY_STALE to all observers, wait for 3.\r\n * 3. When it's being accessed, recompute if any shallow dependency changed.\r\n * if result changed: propagate STALE to all observers, that were POSSIBLY_STALE from the last step.\r\n * go to step 2. either way\r\n *\r\n * If at any point it's outside batch and it isn't observed: reset everything and go to 1.\r\n */\n\n_Symbol$toPrimitive$1 = Symbol.toPrimitive;\nvar ComputedValue = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n // during tracking it's an array with new observed observers\n // to check for cycles\n // N.B: unminified as it is used by MST\n\n /**\r\n * Create a new computed value based on a function expression.\r\n *\r\n * The `name` property is for debug purposes only.\r\n *\r\n * The `equals` property specifies the comparer function to use to determine if a newly produced\r\n * value differs from the previous value. Two comparers are provided in the library; `defaultComparer`\r\n * compares based on identity comparison (===), and `structuralComparer` deeply compares the structure.\r\n * Structural comparison can be convenient if you always produce a new aggregated object and\r\n * don't want to notify observers if it is structurally the same.\r\n * This is useful for working with vectors, mouse coordinates etc.\r\n */\n function ComputedValue(options) {\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.observing_ = [];\n this.newObserving_ = null;\n this.isBeingObserved_ = false;\n this.isPendingUnobservation_ = false;\n this.observers_ = new Set();\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.lastAccessedBy_ = 0;\n this.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n this.unboundDepsCount_ = 0;\n this.value_ = new CaughtException(null);\n this.name_ = void 0;\n this.triggeredBy_ = void 0;\n this.isComputing_ = false;\n this.isRunningSetter_ = false;\n this.derivation = void 0;\n this.setter_ = void 0;\n this.isTracing_ = TraceMode.NONE;\n this.scope_ = void 0;\n this.equals_ = void 0;\n this.requiresReaction_ = void 0;\n this.keepAlive_ = void 0;\n this.onBOL = void 0;\n this.onBUOL = void 0;\n\n if (!options.get) {\n die(31);\n }\n\n this.derivation = options.get;\n this.name_ = options.name || (process.env.NODE_ENV !== \"production\" ? \"ComputedValue@\" + getNextId() : \"ComputedValue\");\n\n if (options.set) {\n this.setter_ = createAction(process.env.NODE_ENV !== \"production\" ? this.name_ + \"-setter\" : \"ComputedValue-setter\", options.set);\n }\n\n this.equals_ = options.equals || (options.compareStructural || options.struct ? comparer.structural : comparer[\"default\"]);\n this.scope_ = options.context;\n this.requiresReaction_ = options.requiresReaction;\n this.keepAlive_ = !!options.keepAlive;\n }\n\n var _proto = ComputedValue.prototype;\n\n _proto.onBecomeStale_ = function onBecomeStale_() {\n propagateMaybeChanged(this);\n };\n\n _proto.onBO = function onBO() {\n if (this.onBOL) {\n this.onBOL.forEach(function (listener) {\n return listener();\n });\n }\n };\n\n _proto.onBUO = function onBUO() {\n if (this.onBUOL) {\n this.onBUOL.forEach(function (listener) {\n return listener();\n });\n }\n }\n /**\r\n * Returns the current value of this computed value.\r\n * Will evaluate its computation first if needed.\r\n */\n ;\n\n _proto.get = function get() {\n if (this.isComputing_) {\n die(32, this.name_, this.derivation);\n }\n\n if (globalState.inBatch === 0 && // !globalState.trackingDerivatpion &&\n this.observers_.size === 0 && !this.keepAlive_) {\n if (shouldCompute(this)) {\n this.warnAboutUntrackedRead_();\n startBatch(); // See perf test 'computed memoization'\n\n this.value_ = this.computeValue_(false);\n endBatch();\n }\n } else {\n reportObserved(this);\n\n if (shouldCompute(this)) {\n var prevTrackingContext = globalState.trackingContext;\n\n if (this.keepAlive_ && !prevTrackingContext) {\n globalState.trackingContext = this;\n }\n\n if (this.trackAndCompute()) {\n propagateChangeConfirmed(this);\n }\n\n globalState.trackingContext = prevTrackingContext;\n }\n }\n\n var result = this.value_;\n\n if (isCaughtException(result)) {\n throw result.cause;\n }\n\n return result;\n };\n\n _proto.set = function set(value) {\n if (this.setter_) {\n if (this.isRunningSetter_) {\n die(33, this.name_);\n }\n\n this.isRunningSetter_ = true;\n\n try {\n this.setter_.call(this.scope_, value);\n } finally {\n this.isRunningSetter_ = false;\n }\n } else {\n die(34, this.name_);\n }\n };\n\n _proto.trackAndCompute = function trackAndCompute() {\n // N.B: unminified as it is used by MST\n var oldValue = this.value_;\n var wasSuspended =\n /* see #1208 */\n this.dependenciesState_ === IDerivationState_.NOT_TRACKING_;\n var newValue = this.computeValue_(true);\n var changed = wasSuspended || isCaughtException(oldValue) || isCaughtException(newValue) || !this.equals_(oldValue, newValue);\n\n if (changed) {\n this.value_ = newValue;\n\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n observableKind: \"computed\",\n debugObjectName: this.name_,\n object: this.scope_,\n type: \"update\",\n oldValue: oldValue,\n newValue: newValue\n });\n }\n }\n\n return changed;\n };\n\n _proto.computeValue_ = function computeValue_(track) {\n this.isComputing_ = true; // don't allow state changes during computation\n\n var prev = allowStateChangesStart(false);\n var res;\n\n if (track) {\n res = trackDerivedFunction(this, this.derivation, this.scope_);\n } else {\n if (globalState.disableErrorBoundaries === true) {\n res = this.derivation.call(this.scope_);\n } else {\n try {\n res = this.derivation.call(this.scope_);\n } catch (e) {\n res = new CaughtException(e);\n }\n }\n }\n\n allowStateChangesEnd(prev);\n this.isComputing_ = false;\n return res;\n };\n\n _proto.suspend_ = function suspend_() {\n if (!this.keepAlive_) {\n clearObserving(this);\n this.value_ = undefined; // don't hold on to computed value!\n\n if (process.env.NODE_ENV !== \"production\" && this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' was suspended and it will recompute on the next access.\");\n }\n }\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n var _this = this;\n\n var firstTime = true;\n var prevValue = undefined;\n return autorun(function () {\n // TODO: why is this in a different place than the spyReport() function? in all other observables it's called in the same place\n var newValue = _this.get();\n\n if (!firstTime || fireImmediately) {\n var prevU = untrackedStart();\n listener({\n observableKind: \"computed\",\n debugObjectName: _this.name_,\n type: UPDATE,\n object: _this,\n newValue: newValue,\n oldValue: prevValue\n });\n untrackedEnd(prevU);\n }\n\n firstTime = false;\n prevValue = newValue;\n });\n };\n\n _proto.warnAboutUntrackedRead_ = function warnAboutUntrackedRead_() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n if (this.isTracing_ !== TraceMode.NONE) {\n console.log(\"[mobx.trace] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n\n if (typeof this.requiresReaction_ === \"boolean\" ? this.requiresReaction_ : globalState.computedRequiresReaction) {\n console.warn(\"[mobx] Computed value '\" + this.name_ + \"' is being read outside a reactive context. Doing a full recompute.\");\n }\n };\n\n _proto.toString = function toString() {\n return this.name_ + \"[\" + this.derivation.toString() + \"]\";\n };\n\n _proto.valueOf = function valueOf() {\n return toPrimitive(this.get());\n };\n\n _proto[_Symbol$toPrimitive$1] = function () {\n return this.valueOf();\n };\n\n return ComputedValue;\n}();\nvar isComputedValue = /*#__PURE__*/createInstanceofPredicate(\"ComputedValue\", ComputedValue);\n\nvar IDerivationState_;\n\n(function (IDerivationState_) {\n // before being run or (outside batch and not being observed)\n // at this point derivation is not holding any data about dependency tree\n IDerivationState_[IDerivationState_[\"NOT_TRACKING_\"] = -1] = \"NOT_TRACKING_\"; // no shallow dependency changed since last computation\n // won't recalculate derivation\n // this is what makes mobx fast\n\n IDerivationState_[IDerivationState_[\"UP_TO_DATE_\"] = 0] = \"UP_TO_DATE_\"; // some deep dependency changed, but don't know if shallow dependency changed\n // will require to check first if UP_TO_DATE or POSSIBLY_STALE\n // currently only ComputedValue will propagate POSSIBLY_STALE\n //\n // having this state is second big optimization:\n // don't have to recompute on every dependency change, but only when it's needed\n\n IDerivationState_[IDerivationState_[\"POSSIBLY_STALE_\"] = 1] = \"POSSIBLY_STALE_\"; // A shallow dependency has changed since last computation and the derivation\n // will need to recompute when it's needed next.\n\n IDerivationState_[IDerivationState_[\"STALE_\"] = 2] = \"STALE_\";\n})(IDerivationState_ || (IDerivationState_ = {}));\n\nvar TraceMode;\n\n(function (TraceMode) {\n TraceMode[TraceMode[\"NONE\"] = 0] = \"NONE\";\n TraceMode[TraceMode[\"LOG\"] = 1] = \"LOG\";\n TraceMode[TraceMode[\"BREAK\"] = 2] = \"BREAK\";\n})(TraceMode || (TraceMode = {}));\n\nvar CaughtException = function CaughtException(cause) {\n this.cause = void 0;\n this.cause = cause; // Empty\n};\nfunction isCaughtException(e) {\n return e instanceof CaughtException;\n}\n/**\r\n * Finds out whether any dependency of the derivation has actually changed.\r\n * If dependenciesState is 1 then it will recalculate dependencies,\r\n * if any dependency changed it will propagate it by changing dependenciesState to 2.\r\n *\r\n * By iterating over the dependencies in the same order that they were reported and\r\n * stopping on the first change, all the recalculations are only called for ComputedValues\r\n * that will be tracked by derivation. That is because we assume that if the first x\r\n * dependencies of the derivation doesn't change then the derivation should run the same way\r\n * up until accessing x-th dependency.\r\n */\n\nfunction shouldCompute(derivation) {\n switch (derivation.dependenciesState_) {\n case IDerivationState_.UP_TO_DATE_:\n return false;\n\n case IDerivationState_.NOT_TRACKING_:\n case IDerivationState_.STALE_:\n return true;\n\n case IDerivationState_.POSSIBLY_STALE_:\n {\n // state propagation can occur outside of action/reactive context #2195\n var prevAllowStateReads = allowStateReadsStart(true);\n var prevUntracked = untrackedStart(); // no need for those computeds to be reported, they will be picked up in trackDerivedFunction.\n\n var obs = derivation.observing_,\n l = obs.length;\n\n for (var i = 0; i < l; i++) {\n var obj = obs[i];\n\n if (isComputedValue(obj)) {\n if (globalState.disableErrorBoundaries) {\n obj.get();\n } else {\n try {\n obj.get();\n } catch (e) {\n // we are not interested in the value *or* exception at this moment, but if there is one, notify all\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n } // if ComputedValue `obj` actually changed it will be computed and propagated to its observers.\n // and `derivation` is an observer of `obj`\n // invariantShouldCompute(derivation)\n\n\n if (derivation.dependenciesState_ === IDerivationState_.STALE_) {\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return true;\n }\n }\n }\n\n changeDependenciesStateTo0(derivation);\n untrackedEnd(prevUntracked);\n allowStateReadsEnd(prevAllowStateReads);\n return false;\n }\n }\n}\nfunction isComputingDerivation() {\n return globalState.trackingDerivation !== null; // filter out actions inside computations\n}\nfunction checkIfStateModificationsAreAllowed(atom) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n var hasObservers = atom.observers_.size > 0; // Should not be possible to change observed state outside strict mode, except during initialization, see #563\n\n if (!globalState.allowStateChanges && (hasObservers || globalState.enforceActions === \"always\")) {\n console.warn(\"[MobX] \" + (globalState.enforceActions ? \"Since strict-mode is enabled, changing (observed) observable values without using an action is not allowed. Tried to modify: \" : \"Side effects like changing state are not allowed at this point. Are you trying to modify state from, for example, a computed value or the render function of a React component? You can wrap side effects in 'runInAction' (or decorate functions with 'action') if needed. Tried to modify: \") + atom.name_);\n }\n}\nfunction checkIfStateReadsAreAllowed(observable) {\n if (process.env.NODE_ENV !== \"production\" && !globalState.allowStateReads && globalState.observableRequiresReaction) {\n console.warn(\"[mobx] Observable '\" + observable.name_ + \"' being read outside a reactive context.\");\n }\n}\n/**\r\n * Executes the provided function `f` and tracks which observables are being accessed.\r\n * The tracking information is stored on the `derivation` object and the derivation is registered\r\n * as observer of any of the accessed observables.\r\n */\n\nfunction trackDerivedFunction(derivation, f, context) {\n var prevAllowStateReads = allowStateReadsStart(true); // pre allocate array allocation + room for variation in deps\n // array will be trimmed by bindDependencies\n\n changeDependenciesStateTo0(derivation);\n derivation.newObserving_ = new Array(derivation.observing_.length + 100);\n derivation.unboundDepsCount_ = 0;\n derivation.runId_ = ++globalState.runId;\n var prevTracking = globalState.trackingDerivation;\n globalState.trackingDerivation = derivation;\n globalState.inBatch++;\n var result;\n\n if (globalState.disableErrorBoundaries === true) {\n result = f.call(context);\n } else {\n try {\n result = f.call(context);\n } catch (e) {\n result = new CaughtException(e);\n }\n }\n\n globalState.inBatch--;\n globalState.trackingDerivation = prevTracking;\n bindDependencies(derivation);\n warnAboutDerivationWithoutDependencies(derivation);\n allowStateReadsEnd(prevAllowStateReads);\n return result;\n}\n\nfunction warnAboutDerivationWithoutDependencies(derivation) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n if (derivation.observing_.length !== 0) {\n return;\n }\n\n if (typeof derivation.requiresObservable_ === \"boolean\" ? derivation.requiresObservable_ : globalState.reactionRequiresObservable) {\n console.warn(\"[mobx] Derivation '\" + derivation.name_ + \"' is created/updated without reading any observable value.\");\n }\n}\n/**\r\n * diffs newObserving with observing.\r\n * update observing to be newObserving with unique observables\r\n * notify observers that become observed/unobserved\r\n */\n\n\nfunction bindDependencies(derivation) {\n // invariant(derivation.dependenciesState !== IDerivationState.NOT_TRACKING, \"INTERNAL ERROR bindDependencies expects derivation.dependenciesState !== -1\");\n var prevObserving = derivation.observing_;\n var observing = derivation.observing_ = derivation.newObserving_;\n var lowestNewObservingDerivationState = IDerivationState_.UP_TO_DATE_; // Go through all new observables and check diffValue: (this list can contain duplicates):\n // 0: first occurrence, change to 1 and keep it\n // 1: extra occurrence, drop it\n\n var i0 = 0,\n l = derivation.unboundDepsCount_;\n\n for (var i = 0; i < l; i++) {\n var dep = observing[i];\n\n if (dep.diffValue_ === 0) {\n dep.diffValue_ = 1;\n\n if (i0 !== i) {\n observing[i0] = dep;\n }\n\n i0++;\n } // Upcast is 'safe' here, because if dep is IObservable, `dependenciesState` will be undefined,\n // not hitting the condition\n\n\n if (dep.dependenciesState_ > lowestNewObservingDerivationState) {\n lowestNewObservingDerivationState = dep.dependenciesState_;\n }\n }\n\n observing.length = i0;\n derivation.newObserving_ = null; // newObserving shouldn't be needed outside tracking (statement moved down to work around FF bug, see #614)\n // Go through all old observables and check diffValue: (it is unique after last bindDependencies)\n // 0: it's not in new observables, unobserve it\n // 1: it keeps being observed, don't want to notify it. change to 0\n\n l = prevObserving.length;\n\n while (l--) {\n var _dep = prevObserving[l];\n\n if (_dep.diffValue_ === 0) {\n removeObserver(_dep, derivation);\n }\n\n _dep.diffValue_ = 0;\n } // Go through all new observables and check diffValue: (now it should be unique)\n // 0: it was set to 0 in last loop. don't need to do anything.\n // 1: it wasn't observed, let's observe it. set back to 0\n\n\n while (i0--) {\n var _dep2 = observing[i0];\n\n if (_dep2.diffValue_ === 1) {\n _dep2.diffValue_ = 0;\n addObserver(_dep2, derivation);\n }\n } // Some new observed derivations may become stale during this derivation computation\n // so they have had no chance to propagate staleness (#916)\n\n\n if (lowestNewObservingDerivationState !== IDerivationState_.UP_TO_DATE_) {\n derivation.dependenciesState_ = lowestNewObservingDerivationState;\n derivation.onBecomeStale_();\n }\n}\n\nfunction clearObserving(derivation) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR clearObserving should be called only inside batch\");\n var obs = derivation.observing_;\n derivation.observing_ = [];\n var i = obs.length;\n\n while (i--) {\n removeObserver(obs[i], derivation);\n }\n\n derivation.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n}\nfunction untracked(action) {\n var prev = untrackedStart();\n\n try {\n return action();\n } finally {\n untrackedEnd(prev);\n }\n}\nfunction untrackedStart() {\n var prev = globalState.trackingDerivation;\n globalState.trackingDerivation = null;\n return prev;\n}\nfunction untrackedEnd(prev) {\n globalState.trackingDerivation = prev;\n}\nfunction allowStateReadsStart(allowStateReads) {\n var prev = globalState.allowStateReads;\n globalState.allowStateReads = allowStateReads;\n return prev;\n}\nfunction allowStateReadsEnd(prev) {\n globalState.allowStateReads = prev;\n}\n/**\r\n * needed to keep `lowestObserverState` correct. when changing from (2 or 1) to 0\r\n *\r\n */\n\nfunction changeDependenciesStateTo0(derivation) {\n if (derivation.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n return;\n }\n\n derivation.dependenciesState_ = IDerivationState_.UP_TO_DATE_;\n var obs = derivation.observing_;\n var i = obs.length;\n\n while (i--) {\n obs[i].lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n}\n\n/**\r\n * These values will persist if global state is reset\r\n */\n\nvar persistentKeys = [\"mobxGuid\", \"spyListeners\", \"enforceActions\", \"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"allowStateReads\", \"disableErrorBoundaries\", \"runId\", \"UNCHANGED\", \"useProxies\"];\nvar MobXGlobals = function MobXGlobals() {\n this.version = 6;\n this.UNCHANGED = {};\n this.trackingDerivation = null;\n this.trackingContext = null;\n this.runId = 0;\n this.mobxGuid = 0;\n this.inBatch = 0;\n this.pendingUnobservations = [];\n this.pendingReactions = [];\n this.isRunningReactions = false;\n this.allowStateChanges = false;\n this.allowStateReads = true;\n this.enforceActions = true;\n this.spyListeners = [];\n this.globalReactionErrorHandlers = [];\n this.computedRequiresReaction = false;\n this.reactionRequiresObservable = false;\n this.observableRequiresReaction = false;\n this.disableErrorBoundaries = false;\n this.suppressReactionErrors = false;\n this.useProxies = true;\n this.verifyProxies = false;\n this.safeDescriptors = true;\n};\nvar canMergeGlobalState = true;\nvar isolateCalled = false;\nvar globalState = /*#__PURE__*/function () {\n var global = /*#__PURE__*/getGlobal();\n\n if (global.__mobxInstanceCount > 0 && !global.__mobxGlobals) {\n canMergeGlobalState = false;\n }\n\n if (global.__mobxGlobals && global.__mobxGlobals.version !== new MobXGlobals().version) {\n canMergeGlobalState = false;\n }\n\n if (!canMergeGlobalState) {\n // Because this is a IIFE we need to let isolateCalled a chance to change\n // so we run it after the event loop completed at least 1 iteration\n setTimeout(function () {\n if (!isolateCalled) {\n die(35);\n }\n }, 1);\n return new MobXGlobals();\n } else if (global.__mobxGlobals) {\n global.__mobxInstanceCount += 1;\n\n if (!global.__mobxGlobals.UNCHANGED) {\n global.__mobxGlobals.UNCHANGED = {};\n } // make merge backward compatible\n\n\n return global.__mobxGlobals;\n } else {\n global.__mobxInstanceCount = 1;\n return global.__mobxGlobals = /*#__PURE__*/new MobXGlobals();\n }\n}();\nfunction isolateGlobalState() {\n if (globalState.pendingReactions.length || globalState.inBatch || globalState.isRunningReactions) {\n die(36);\n }\n\n isolateCalled = true;\n\n if (canMergeGlobalState) {\n var global = getGlobal();\n\n if (--global.__mobxInstanceCount === 0) {\n global.__mobxGlobals = undefined;\n }\n\n globalState = new MobXGlobals();\n }\n}\nfunction getGlobalState() {\n return globalState;\n}\n/**\r\n * For testing purposes only; this will break the internal state of existing observables,\r\n * but can be used to get back at a stable state after throwing errors\r\n */\n\nfunction resetGlobalState() {\n var defaultGlobals = new MobXGlobals();\n\n for (var key in defaultGlobals) {\n if (persistentKeys.indexOf(key) === -1) {\n globalState[key] = defaultGlobals[key];\n }\n }\n\n globalState.allowStateChanges = !globalState.enforceActions;\n}\n\nfunction hasObservers(observable) {\n return observable.observers_ && observable.observers_.size > 0;\n}\nfunction getObservers(observable) {\n return observable.observers_;\n} // function invariantObservers(observable: IObservable) {\n// const list = observable.observers\n// const map = observable.observersIndexes\n// const l = list.length\n// for (let i = 0; i < l; i++) {\n// const id = list[i].__mapid\n// if (i) {\n// invariant(map[id] === i, \"INTERNAL ERROR maps derivation.__mapid to index in list\") // for performance\n// } else {\n// invariant(!(id in map), \"INTERNAL ERROR observer on index 0 shouldn't be held in map.\") // for performance\n// }\n// }\n// invariant(\n// list.length === 0 || Object.keys(map).length === list.length - 1,\n// \"INTERNAL ERROR there is no junk in map\"\n// )\n// }\n\nfunction addObserver(observable, node) {\n // invariant(node.dependenciesState !== -1, \"INTERNAL ERROR, can add only dependenciesState !== -1\");\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR add already added node\");\n // invariantObservers(observable);\n observable.observers_.add(node);\n\n if (observable.lowestObserverState_ > node.dependenciesState_) {\n observable.lowestObserverState_ = node.dependenciesState_;\n } // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR didn't add node\");\n\n}\nfunction removeObserver(observable, node) {\n // invariant(globalState.inBatch > 0, \"INTERNAL ERROR, remove should be called only inside batch\");\n // invariant(observable._observers.indexOf(node) !== -1, \"INTERNAL ERROR remove already removed node\");\n // invariantObservers(observable);\n observable.observers_[\"delete\"](node);\n\n if (observable.observers_.size === 0) {\n // deleting last observer\n queueForUnobservation(observable);\n } // invariantObservers(observable);\n // invariant(observable._observers.indexOf(node) === -1, \"INTERNAL ERROR remove already removed node2\");\n\n}\nfunction queueForUnobservation(observable) {\n if (observable.isPendingUnobservation_ === false) {\n // invariant(observable._observers.length === 0, \"INTERNAL ERROR, should only queue for unobservation unobserved observables\");\n observable.isPendingUnobservation_ = true;\n globalState.pendingUnobservations.push(observable);\n }\n}\n/**\r\n * Batch starts a transaction, at least for purposes of memoizing ComputedValues when nothing else does.\r\n * During a batch `onBecomeUnobserved` will be called at most once per observable.\r\n * Avoids unnecessary recalculations.\r\n */\n\nfunction startBatch() {\n globalState.inBatch++;\n}\nfunction endBatch() {\n if (--globalState.inBatch === 0) {\n runReactions(); // the batch is actually about to finish, all unobserving should happen here.\n\n var list = globalState.pendingUnobservations;\n\n for (var i = 0; i < list.length; i++) {\n var observable = list[i];\n observable.isPendingUnobservation_ = false;\n\n if (observable.observers_.size === 0) {\n if (observable.isBeingObserved_) {\n // if this observable had reactive observers, trigger the hooks\n observable.isBeingObserved_ = false;\n observable.onBUO();\n }\n\n if (observable instanceof ComputedValue) {\n // computed values are automatically teared down when the last observer leaves\n // this process happens recursively, this computed might be the last observabe of another, etc..\n observable.suspend_();\n }\n }\n }\n\n globalState.pendingUnobservations = [];\n }\n}\nfunction reportObserved(observable) {\n checkIfStateReadsAreAllowed(observable);\n var derivation = globalState.trackingDerivation;\n\n if (derivation !== null) {\n /**\r\n * Simple optimization, give each derivation run an unique id (runId)\r\n * Check if last time this observable was accessed the same runId is used\r\n * if this is the case, the relation is already known\r\n */\n if (derivation.runId_ !== observable.lastAccessedBy_) {\n observable.lastAccessedBy_ = derivation.runId_; // Tried storing newObserving, or observing, or both as Set, but performance didn't come close...\n\n derivation.newObserving_[derivation.unboundDepsCount_++] = observable;\n\n if (!observable.isBeingObserved_ && globalState.trackingContext) {\n observable.isBeingObserved_ = true;\n observable.onBO();\n }\n }\n\n return observable.isBeingObserved_;\n } else if (observable.observers_.size === 0 && globalState.inBatch > 0) {\n queueForUnobservation(observable);\n }\n\n return false;\n} // function invariantLOS(observable: IObservable, msg: string) {\n// // it's expensive so better not run it in produciton. but temporarily helpful for testing\n// const min = getObservers(observable).reduce((a, b) => Math.min(a, b.dependenciesState), 2)\n// if (min >= observable.lowestObserverState) return // <- the only assumption about `lowestObserverState`\n// throw new Error(\n// \"lowestObserverState is wrong for \" +\n// msg +\n// \" because \" +\n// min +\n// \" < \" +\n// observable.lowestObserverState\n// )\n// }\n\n/**\r\n * NOTE: current propagation mechanism will in case of self reruning autoruns behave unexpectedly\r\n * It will propagate changes to observers from previous run\r\n * It's hard or maybe impossible (with reasonable perf) to get it right with current approach\r\n * Hopefully self reruning autoruns aren't a feature people should depend on\r\n * Also most basic use cases should be ok\r\n */\n// Called by Atom when its value changes\n\nfunction propagateChanged(observable) {\n // invariantLOS(observable, \"changed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n\n observable.lowestObserverState_ = IDerivationState_.STALE_; // Ideally we use for..of here, but the downcompiled version is really slow...\n\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n\n d.onBecomeStale_();\n }\n\n d.dependenciesState_ = IDerivationState_.STALE_;\n }); // invariantLOS(observable, \"changed end\");\n} // Called by ComputedValue when it recalculate and its value changed\n\nfunction propagateChangeConfirmed(observable) {\n // invariantLOS(observable, \"confirmed start\");\n if (observable.lowestObserverState_ === IDerivationState_.STALE_) {\n return;\n }\n\n observable.lowestObserverState_ = IDerivationState_.STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.POSSIBLY_STALE_) {\n d.dependenciesState_ = IDerivationState_.STALE_;\n\n if (process.env.NODE_ENV !== \"production\" && d.isTracing_ !== TraceMode.NONE) {\n logTraceInfo(d, observable);\n }\n } else if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_ // this happens during computing of `d`, just keep lowestObserverState up to date.\n ) {\n observable.lowestObserverState_ = IDerivationState_.UP_TO_DATE_;\n }\n }); // invariantLOS(observable, \"confirmed end\");\n} // Used by computed when its dependency changed, but we don't wan't to immediately recompute.\n\nfunction propagateMaybeChanged(observable) {\n // invariantLOS(observable, \"maybe start\");\n if (observable.lowestObserverState_ !== IDerivationState_.UP_TO_DATE_) {\n return;\n }\n\n observable.lowestObserverState_ = IDerivationState_.POSSIBLY_STALE_;\n observable.observers_.forEach(function (d) {\n if (d.dependenciesState_ === IDerivationState_.UP_TO_DATE_) {\n d.dependenciesState_ = IDerivationState_.POSSIBLY_STALE_;\n d.onBecomeStale_();\n }\n }); // invariantLOS(observable, \"maybe end\");\n}\n\nfunction logTraceInfo(derivation, observable) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' is invalidated due to a change in: '\" + observable.name_ + \"'\");\n\n if (derivation.isTracing_ === TraceMode.BREAK) {\n var lines = [];\n printDepTree(getDependencyTree(derivation), lines, 1); // prettier-ignore\n\n new Function(\"debugger;\\n/*\\nTracing '\" + derivation.name_ + \"'\\n\\nYou are entering this break point because derivation '\" + derivation.name_ + \"' is being traced and '\" + observable.name_ + \"' is now forcing it to update.\\nJust follow the stacktrace you should now see in the devtools to see precisely what piece of your code is causing this update\\nThe stackframe you are looking for is at least ~6-8 stack-frames up.\\n\\n\" + (derivation instanceof ComputedValue ? derivation.derivation.toString().replace(/[*]\\//g, \"/\") : \"\") + \"\\n\\nThe dependencies for this derivation are:\\n\\n\" + lines.join(\"\\n\") + \"\\n*/\\n \")();\n }\n}\n\nfunction printDepTree(tree, lines, depth) {\n if (lines.length >= 1000) {\n lines.push(\"(and many more)\");\n return;\n }\n\n lines.push(\"\" + \"\\t\".repeat(depth - 1) + tree.name);\n\n if (tree.dependencies) {\n tree.dependencies.forEach(function (child) {\n return printDepTree(child, lines, depth + 1);\n });\n }\n}\n\nvar Reaction = /*#__PURE__*/function () {\n // nodes we are looking at. Our value depends on these nodes\n function Reaction(name_, onInvalidate_, errorHandler_, requiresObservable_) {\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n }\n\n this.name_ = void 0;\n this.onInvalidate_ = void 0;\n this.errorHandler_ = void 0;\n this.requiresObservable_ = void 0;\n this.observing_ = [];\n this.newObserving_ = [];\n this.dependenciesState_ = IDerivationState_.NOT_TRACKING_;\n this.diffValue_ = 0;\n this.runId_ = 0;\n this.unboundDepsCount_ = 0;\n this.isDisposed_ = false;\n this.isScheduled_ = false;\n this.isTrackPending_ = false;\n this.isRunning_ = false;\n this.isTracing_ = TraceMode.NONE;\n this.name_ = name_;\n this.onInvalidate_ = onInvalidate_;\n this.errorHandler_ = errorHandler_;\n this.requiresObservable_ = requiresObservable_;\n }\n\n var _proto = Reaction.prototype;\n\n _proto.onBecomeStale_ = function onBecomeStale_() {\n this.schedule_();\n };\n\n _proto.schedule_ = function schedule_() {\n if (!this.isScheduled_) {\n this.isScheduled_ = true;\n globalState.pendingReactions.push(this);\n runReactions();\n }\n };\n\n _proto.isScheduled = function isScheduled() {\n return this.isScheduled_;\n }\n /**\r\n * internal, use schedule() if you intend to kick off a reaction\r\n */\n ;\n\n _proto.runReaction_ = function runReaction_() {\n if (!this.isDisposed_) {\n startBatch();\n this.isScheduled_ = false;\n var prev = globalState.trackingContext;\n globalState.trackingContext = this;\n\n if (shouldCompute(this)) {\n this.isTrackPending_ = true;\n\n try {\n this.onInvalidate_();\n\n if (process.env.NODE_ENV !== \"production\" && this.isTrackPending_ && isSpyEnabled()) {\n // onInvalidate didn't trigger track right away..\n spyReport({\n name: this.name_,\n type: \"scheduled-reaction\"\n });\n }\n } catch (e) {\n this.reportExceptionInDerivation_(e);\n }\n }\n\n globalState.trackingContext = prev;\n endBatch();\n }\n };\n\n _proto.track = function track(fn) {\n if (this.isDisposed_) {\n return; // console.warn(\"Reaction already disposed\") // Note: Not a warning / error in mobx 4 either\n }\n\n startBatch();\n var notify = isSpyEnabled();\n var startTime;\n\n if (process.env.NODE_ENV !== \"production\" && notify) {\n startTime = Date.now();\n spyReportStart({\n name: this.name_,\n type: \"reaction\"\n });\n }\n\n this.isRunning_ = true;\n var prevReaction = globalState.trackingContext; // reactions could create reactions...\n\n globalState.trackingContext = this;\n var result = trackDerivedFunction(this, fn, undefined);\n globalState.trackingContext = prevReaction;\n this.isRunning_ = false;\n this.isTrackPending_ = false;\n\n if (this.isDisposed_) {\n // disposed during last run. Clean up everything that was bound after the dispose call.\n clearObserving(this);\n }\n\n if (isCaughtException(result)) {\n this.reportExceptionInDerivation_(result.cause);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notify) {\n spyReportEnd({\n time: Date.now() - startTime\n });\n }\n\n endBatch();\n };\n\n _proto.reportExceptionInDerivation_ = function reportExceptionInDerivation_(error) {\n var _this = this;\n\n if (this.errorHandler_) {\n this.errorHandler_(error, this);\n return;\n }\n\n if (globalState.disableErrorBoundaries) {\n throw error;\n }\n\n var message = process.env.NODE_ENV !== \"production\" ? \"[mobx] Encountered an uncaught exception that was thrown by a reaction or observer component, in: '\" + this + \"'\" : \"[mobx] uncaught error in '\" + this + \"'\";\n\n if (!globalState.suppressReactionErrors) {\n console.error(message, error);\n /** If debugging brought you here, please, read the above message :-). Tnx! */\n } else if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[mobx] (error in reaction '\" + this.name_ + \"' suppressed, fix error of causing action below)\");\n } // prettier-ignore\n\n\n if (process.env.NODE_ENV !== \"production\" && isSpyEnabled()) {\n spyReport({\n type: \"error\",\n name: this.name_,\n message: message,\n error: \"\" + error\n });\n }\n\n globalState.globalReactionErrorHandlers.forEach(function (f) {\n return f(error, _this);\n });\n };\n\n _proto.dispose = function dispose() {\n if (!this.isDisposed_) {\n this.isDisposed_ = true;\n\n if (!this.isRunning_) {\n // if disposed while running, clean up later. Maybe not optimal, but rare case\n startBatch();\n clearObserving(this);\n endBatch();\n }\n }\n };\n\n _proto.getDisposer_ = function getDisposer_() {\n var r = this.dispose.bind(this);\n r[$mobx] = this;\n return r;\n };\n\n _proto.toString = function toString() {\n return \"Reaction[\" + this.name_ + \"]\";\n };\n\n _proto.trace = function trace$1(enterBreakPoint) {\n if (enterBreakPoint === void 0) {\n enterBreakPoint = false;\n }\n\n trace(this, enterBreakPoint);\n };\n\n return Reaction;\n}();\nfunction onReactionError(handler) {\n globalState.globalReactionErrorHandlers.push(handler);\n return function () {\n var idx = globalState.globalReactionErrorHandlers.indexOf(handler);\n\n if (idx >= 0) {\n globalState.globalReactionErrorHandlers.splice(idx, 1);\n }\n };\n}\n/**\r\n * Magic number alert!\r\n * Defines within how many times a reaction is allowed to re-trigger itself\r\n * until it is assumed that this is gonna be a never ending loop...\r\n */\n\nvar MAX_REACTION_ITERATIONS = 100;\n\nvar reactionScheduler = function reactionScheduler(f) {\n return f();\n};\n\nfunction runReactions() {\n // Trampolining, if runReactions are already running, new reactions will be picked up\n if (globalState.inBatch > 0 || globalState.isRunningReactions) {\n return;\n }\n\n reactionScheduler(runReactionsHelper);\n}\n\nfunction runReactionsHelper() {\n globalState.isRunningReactions = true;\n var allReactions = globalState.pendingReactions;\n var iterations = 0; // While running reactions, new reactions might be triggered.\n // Hence we work with two variables and check whether\n // we converge to no remaining reactions after a while.\n\n while (allReactions.length > 0) {\n if (++iterations === MAX_REACTION_ITERATIONS) {\n console.error(process.env.NODE_ENV !== \"production\" ? \"Reaction doesn't converge to a stable state after \" + MAX_REACTION_ITERATIONS + \" iterations.\" + (\" Probably there is a cycle in the reactive function: \" + allReactions[0]) : \"[mobx] cycle in reaction: \" + allReactions[0]);\n allReactions.splice(0); // clear reactions\n }\n\n var remainingReactions = allReactions.splice(0);\n\n for (var i = 0, l = remainingReactions.length; i < l; i++) {\n remainingReactions[i].runReaction_();\n }\n }\n\n globalState.isRunningReactions = false;\n}\n\nvar isReaction = /*#__PURE__*/createInstanceofPredicate(\"Reaction\", Reaction);\nfunction setReactionScheduler(fn) {\n var baseScheduler = reactionScheduler;\n\n reactionScheduler = function reactionScheduler(f) {\n return fn(function () {\n return baseScheduler(f);\n });\n };\n}\n\nfunction isSpyEnabled() {\n return process.env.NODE_ENV !== \"production\" && !!globalState.spyListeners.length;\n}\nfunction spyReport(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n } // dead code elimination can do the rest\n\n\n if (!globalState.spyListeners.length) {\n return;\n }\n\n var listeners = globalState.spyListeners;\n\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](event);\n }\n}\nfunction spyReportStart(event) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n var change = _extends({}, event, {\n spyReportStart: true\n });\n\n spyReport(change);\n}\nvar END_EVENT = {\n type: \"report-end\",\n spyReportEnd: true\n};\nfunction spyReportEnd(change) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n return;\n }\n\n if (change) {\n spyReport(_extends({}, change, {\n type: \"report-end\",\n spyReportEnd: true\n }));\n } else {\n spyReport(END_EVENT);\n }\n}\nfunction spy(listener) {\n if (!(process.env.NODE_ENV !== \"production\")) {\n console.warn(\"[mobx.spy] Is a no-op in production builds\");\n return function () {};\n } else {\n globalState.spyListeners.push(listener);\n return once(function () {\n globalState.spyListeners = globalState.spyListeners.filter(function (l) {\n return l !== listener;\n });\n });\n }\n}\n\nvar ACTION = \"action\";\nvar ACTION_BOUND = \"action.bound\";\nvar AUTOACTION = \"autoAction\";\nvar AUTOACTION_BOUND = \"autoAction.bound\";\nvar DEFAULT_ACTION_NAME = \"<unnamed action>\";\nvar actionAnnotation = /*#__PURE__*/createActionAnnotation(ACTION);\nvar actionBoundAnnotation = /*#__PURE__*/createActionAnnotation(ACTION_BOUND, {\n bound: true\n});\nvar autoActionAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION, {\n autoAction: true\n});\nvar autoActionBoundAnnotation = /*#__PURE__*/createActionAnnotation(AUTOACTION_BOUND, {\n autoAction: true,\n bound: true\n});\n\nfunction createActionFactory(autoAction) {\n var res = function action(arg1, arg2) {\n // action(fn() {})\n if (isFunction(arg1)) {\n return createAction(arg1.name || DEFAULT_ACTION_NAME, arg1, autoAction);\n } // action(\"name\", fn() {})\n\n\n if (isFunction(arg2)) {\n return createAction(arg1, arg2, autoAction);\n } // @action\n\n\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, autoAction ? autoActionAnnotation : actionAnnotation);\n } // action(\"name\") & @action(\"name\")\n\n\n if (isStringish(arg1)) {\n return createDecoratorAnnotation(createActionAnnotation(autoAction ? AUTOACTION : ACTION, {\n name: arg1,\n autoAction: autoAction\n }));\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n die(\"Invalid arguments for `action`\");\n }\n };\n\n return res;\n}\n\nvar action = /*#__PURE__*/createActionFactory(false);\nObject.assign(action, actionAnnotation);\nvar autoAction = /*#__PURE__*/createActionFactory(true);\nObject.assign(autoAction, autoActionAnnotation);\naction.bound = /*#__PURE__*/createDecoratorAnnotation(actionBoundAnnotation);\nautoAction.bound = /*#__PURE__*/createDecoratorAnnotation(autoActionBoundAnnotation);\nfunction runInAction(fn) {\n return executeAction(fn.name || DEFAULT_ACTION_NAME, false, fn, this, undefined);\n}\nfunction isAction(thing) {\n return isFunction(thing) && thing.isMobxAction === true;\n}\n\n/**\r\n * Creates a named reactive view and keeps it alive, so that the view is always\r\n * updated if one of the dependencies changes, even when the view is not further used by something else.\r\n * @param view The reactive view\r\n * @returns disposer function, which can be used to stop the view from being updated in the future.\r\n */\n\nfunction autorun(view, opts) {\n var _opts$name, _opts;\n\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(view)) {\n die(\"Autorun expects a function as first argument\");\n }\n\n if (isAction(view)) {\n die(\"Autorun does not accept actions since actions are untrackable\");\n }\n }\n\n var name = (_opts$name = (_opts = opts) == null ? void 0 : _opts.name) != null ? _opts$name : process.env.NODE_ENV !== \"production\" ? view.name || \"Autorun@\" + getNextId() : \"Autorun\";\n var runSync = !opts.scheduler && !opts.delay;\n var reaction;\n\n if (runSync) {\n // normal autorun\n reaction = new Reaction(name, function () {\n this.track(reactionRunner);\n }, opts.onError, opts.requiresObservable);\n } else {\n var scheduler = createSchedulerFromOptions(opts); // debounced autorun\n\n var isScheduled = false;\n reaction = new Reaction(name, function () {\n if (!isScheduled) {\n isScheduled = true;\n scheduler(function () {\n isScheduled = false;\n\n if (!reaction.isDisposed_) {\n reaction.track(reactionRunner);\n }\n });\n }\n }, opts.onError, opts.requiresObservable);\n }\n\n function reactionRunner() {\n view(reaction);\n }\n\n reaction.schedule_();\n return reaction.getDisposer_();\n}\n\nvar run = function run(f) {\n return f();\n};\n\nfunction createSchedulerFromOptions(opts) {\n return opts.scheduler ? opts.scheduler : opts.delay ? function (f) {\n return setTimeout(f, opts.delay);\n } : run;\n}\n\nfunction reaction(expression, effect, opts) {\n var _opts$name2;\n\n if (opts === void 0) {\n opts = EMPTY_OBJECT;\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n if (!isFunction(expression) || !isFunction(effect)) {\n die(\"First and second argument to reaction should be functions\");\n }\n\n if (!isPlainObject(opts)) {\n die(\"Third argument of reactions should be an object\");\n }\n }\n\n var name = (_opts$name2 = opts.name) != null ? _opts$name2 : process.env.NODE_ENV !== \"production\" ? \"Reaction@\" + getNextId() : \"Reaction\";\n var effectAction = action(name, opts.onError ? wrapErrorHandler(opts.onError, effect) : effect);\n var runSync = !opts.scheduler && !opts.delay;\n var scheduler = createSchedulerFromOptions(opts);\n var firstTime = true;\n var isScheduled = false;\n var value;\n var oldValue;\n var equals = opts.compareStructural ? comparer.structural : opts.equals || comparer[\"default\"];\n var r = new Reaction(name, function () {\n if (firstTime || runSync) {\n reactionRunner();\n } else if (!isScheduled) {\n isScheduled = true;\n scheduler(reactionRunner);\n }\n }, opts.onError, opts.requiresObservable);\n\n function reactionRunner() {\n isScheduled = false;\n\n if (r.isDisposed_) {\n return;\n }\n\n var changed = false;\n r.track(function () {\n var nextValue = allowStateChanges(false, function () {\n return expression(r);\n });\n changed = firstTime || !equals(value, nextValue);\n oldValue = value;\n value = nextValue;\n });\n\n if (firstTime && opts.fireImmediately) {\n effectAction(value, oldValue, r);\n } else if (!firstTime && changed) {\n effectAction(value, oldValue, r);\n }\n\n firstTime = false;\n }\n\n r.schedule_();\n return r.getDisposer_();\n}\n\nfunction wrapErrorHandler(errorHandler, baseFn) {\n return function () {\n try {\n return baseFn.apply(this, arguments);\n } catch (e) {\n errorHandler.call(this, e);\n }\n };\n}\n\nvar ON_BECOME_OBSERVED = \"onBO\";\nvar ON_BECOME_UNOBSERVED = \"onBUO\";\nfunction onBecomeObserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_OBSERVED, thing, arg2, arg3);\n}\nfunction onBecomeUnobserved(thing, arg2, arg3) {\n return interceptHook(ON_BECOME_UNOBSERVED, thing, arg2, arg3);\n}\n\nfunction interceptHook(hook, thing, arg2, arg3) {\n var atom = typeof arg3 === \"function\" ? getAtom(thing, arg2) : getAtom(thing);\n var cb = isFunction(arg3) ? arg3 : arg2;\n var listenersKey = hook + \"L\";\n\n if (atom[listenersKey]) {\n atom[listenersKey].add(cb);\n } else {\n atom[listenersKey] = new Set([cb]);\n }\n\n return function () {\n var hookListeners = atom[listenersKey];\n\n if (hookListeners) {\n hookListeners[\"delete\"](cb);\n\n if (hookListeners.size === 0) {\n delete atom[listenersKey];\n }\n }\n };\n}\n\nvar NEVER = \"never\";\nvar ALWAYS = \"always\";\nvar OBSERVED = \"observed\"; // const IF_AVAILABLE = \"ifavailable\"\n\nfunction configure(options) {\n if (options.isolateGlobalState === true) {\n isolateGlobalState();\n }\n\n var useProxies = options.useProxies,\n enforceActions = options.enforceActions;\n\n if (useProxies !== undefined) {\n globalState.useProxies = useProxies === ALWAYS ? true : useProxies === NEVER ? false : typeof Proxy !== \"undefined\";\n }\n\n if (useProxies === \"ifavailable\") {\n globalState.verifyProxies = true;\n }\n\n if (enforceActions !== undefined) {\n var ea = enforceActions === ALWAYS ? ALWAYS : enforceActions === OBSERVED;\n globalState.enforceActions = ea;\n globalState.allowStateChanges = ea === true || ea === ALWAYS ? false : true;\n }\n [\"computedRequiresReaction\", \"reactionRequiresObservable\", \"observableRequiresReaction\", \"disableErrorBoundaries\", \"safeDescriptors\"].forEach(function (key) {\n if (key in options) {\n globalState[key] = !!options[key];\n }\n });\n globalState.allowStateReads = !globalState.observableRequiresReaction;\n\n if (process.env.NODE_ENV !== \"production\" && globalState.disableErrorBoundaries === true) {\n console.warn(\"WARNING: Debug feature only. MobX will NOT recover from errors when `disableErrorBoundaries` is enabled.\");\n }\n\n if (options.reactionScheduler) {\n setReactionScheduler(options.reactionScheduler);\n }\n}\n\nfunction extendObservable(target, properties, annotations, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (arguments.length > 4) {\n die(\"'extendObservable' expected 2-4 arguments\");\n }\n\n if (typeof target !== \"object\") {\n die(\"'extendObservable' expects an object as first argument\");\n }\n\n if (isObservableMap(target)) {\n die(\"'extendObservable' should not be used on maps, use map.merge instead\");\n }\n\n if (!isPlainObject(properties)) {\n die(\"'extendObservable' only accepts plain objects as second argument\");\n }\n\n if (isObservable(properties) || isObservable(annotations)) {\n die(\"Extending an object with another observable (object) is not supported\");\n }\n } // Pull descriptors first, so we don't have to deal with props added by administration ($mobx)\n\n\n var descriptors = getOwnPropertyDescriptors(properties);\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n\n try {\n ownKeys(descriptors).forEach(function (key) {\n adm.extend_(key, descriptors[key], // must pass \"undefined\" for { key: undefined }\n !annotations ? true : key in annotations ? annotations[key] : true);\n });\n } finally {\n endBatch();\n }\n\n return target;\n}\n\nfunction getDependencyTree(thing, property) {\n return nodeToDependencyTree(getAtom(thing, property));\n}\n\nfunction nodeToDependencyTree(node) {\n var result = {\n name: node.name_\n };\n\n if (node.observing_ && node.observing_.length > 0) {\n result.dependencies = unique(node.observing_).map(nodeToDependencyTree);\n }\n\n return result;\n}\n\nfunction getObserverTree(thing, property) {\n return nodeToObserverTree(getAtom(thing, property));\n}\n\nfunction nodeToObserverTree(node) {\n var result = {\n name: node.name_\n };\n\n if (hasObservers(node)) {\n result.observers = Array.from(getObservers(node)).map(nodeToObserverTree);\n }\n\n return result;\n}\n\nfunction unique(list) {\n return Array.from(new Set(list));\n}\n\nvar generatorId = 0;\nfunction FlowCancellationError() {\n this.message = \"FLOW_CANCELLED\";\n}\nFlowCancellationError.prototype = /*#__PURE__*/Object.create(Error.prototype);\nfunction isFlowCancellationError(error) {\n return error instanceof FlowCancellationError;\n}\nvar flowAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow\");\nvar flowBoundAnnotation = /*#__PURE__*/createFlowAnnotation(\"flow.bound\", {\n bound: true\n});\nvar flow = /*#__PURE__*/Object.assign(function flow(arg1, arg2) {\n // @flow\n if (isStringish(arg2)) {\n return storeAnnotation(arg1, arg2, flowAnnotation);\n } // flow(fn)\n\n\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"Flow expects single argument with generator function\");\n }\n\n var generator = arg1;\n var name = generator.name || \"<unnamed flow>\"; // Implementation based on https://github.com/tj/co/blob/master/index.js\n\n var res = function res() {\n var ctx = this;\n var args = arguments;\n var runId = ++generatorId;\n var gen = action(name + \" - runid: \" + runId + \" - init\", generator).apply(ctx, args);\n var rejector;\n var pendingPromise = undefined;\n var promise = new Promise(function (resolve, reject) {\n var stepId = 0;\n rejector = reject;\n\n function onFulfilled(res) {\n pendingPromise = undefined;\n var ret;\n\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen.next).call(gen, res);\n } catch (e) {\n return reject(e);\n }\n\n next(ret);\n }\n\n function onRejected(err) {\n pendingPromise = undefined;\n var ret;\n\n try {\n ret = action(name + \" - runid: \" + runId + \" - yield \" + stepId++, gen[\"throw\"]).call(gen, err);\n } catch (e) {\n return reject(e);\n }\n\n next(ret);\n }\n\n function next(ret) {\n if (isFunction(ret == null ? void 0 : ret.then)) {\n // an async iterator\n ret.then(next, reject);\n return;\n }\n\n if (ret.done) {\n return resolve(ret.value);\n }\n\n pendingPromise = Promise.resolve(ret.value);\n return pendingPromise.then(onFulfilled, onRejected);\n }\n\n onFulfilled(undefined); // kick off the process\n });\n promise.cancel = action(name + \" - runid: \" + runId + \" - cancel\", function () {\n try {\n if (pendingPromise) {\n cancelPromise(pendingPromise);\n } // Finally block can return (or yield) stuff..\n\n\n var _res = gen[\"return\"](undefined); // eat anything that promise would do, it's cancelled!\n\n\n var yieldedPromise = Promise.resolve(_res.value);\n yieldedPromise.then(noop, noop);\n cancelPromise(yieldedPromise); // maybe it can be cancelled :)\n // reject our original promise\n\n rejector(new FlowCancellationError());\n } catch (e) {\n rejector(e); // there could be a throwing finally block\n }\n });\n return promise;\n };\n\n res.isMobXFlow = true;\n return res;\n}, flowAnnotation);\nflow.bound = /*#__PURE__*/createDecoratorAnnotation(flowBoundAnnotation);\n\nfunction cancelPromise(promise) {\n if (isFunction(promise.cancel)) {\n promise.cancel();\n }\n}\n\nfunction flowResult(result) {\n return result; // just tricking TypeScript :)\n}\nfunction isFlow(fn) {\n return (fn == null ? void 0 : fn.isMobXFlow) === true;\n}\n\nfunction interceptReads(thing, propOrHandler, handler) {\n var target;\n\n if (isObservableMap(thing) || isObservableArray(thing) || isObservableValue(thing)) {\n target = getAdministration(thing);\n } else if (isObservableObject(thing)) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propOrHandler)) {\n return die(\"InterceptReads can only be used with a specific property, not with an object in general\");\n }\n\n target = getAdministration(thing, propOrHandler);\n } else if (process.env.NODE_ENV !== \"production\") {\n return die(\"Expected observable map, object or array as first array\");\n }\n\n if (process.env.NODE_ENV !== \"production\" && target.dehancer !== undefined) {\n return die(\"An intercept reader was already established\");\n }\n\n target.dehancer = typeof propOrHandler === \"function\" ? propOrHandler : handler;\n return function () {\n target.dehancer = undefined;\n };\n}\n\nfunction intercept(thing, propOrHandler, handler) {\n if (isFunction(handler)) {\n return interceptProperty(thing, propOrHandler, handler);\n } else {\n return interceptInterceptable(thing, propOrHandler);\n }\n}\n\nfunction interceptInterceptable(thing, handler) {\n return getAdministration(thing).intercept_(handler);\n}\n\nfunction interceptProperty(thing, property, handler) {\n return getAdministration(thing, property).intercept_(handler);\n}\n\nfunction _isComputed(value, property) {\n if (property === undefined) {\n return isComputedValue(value);\n }\n\n if (isObservableObject(value) === false) {\n return false;\n }\n\n if (!value[$mobx].values_.has(property)) {\n return false;\n }\n\n var atom = getAtom(value, property);\n return isComputedValue(atom);\n}\nfunction isComputed(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length > 1) {\n return die(\"isComputed expects only 1 argument. Use isComputedProp to inspect the observability of a property\");\n }\n\n return _isComputed(value);\n}\nfunction isComputedProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"isComputed expected a property name as second argument\");\n }\n\n return _isComputed(value, propName);\n}\n\nfunction _isObservable(value, property) {\n if (!value) {\n return false;\n }\n\n if (property !== undefined) {\n if (process.env.NODE_ENV !== \"production\" && (isObservableMap(value) || isObservableArray(value))) {\n return die(\"isObservable(object, propertyName) is not supported for arrays and maps. Use map.has or array.length instead.\");\n }\n\n if (isObservableObject(value)) {\n return value[$mobx].values_.has(property);\n }\n\n return false;\n } // For first check, see #701\n\n\n return isObservableObject(value) || !!value[$mobx] || isAtom(value) || isReaction(value) || isComputedValue(value);\n}\n\nfunction isObservable(value) {\n if (process.env.NODE_ENV !== \"production\" && arguments.length !== 1) {\n die(\"isObservable expects only 1 argument. Use isObservableProp to inspect the observability of a property\");\n }\n\n return _isObservable(value);\n}\nfunction isObservableProp(value, propName) {\n if (process.env.NODE_ENV !== \"production\" && !isStringish(propName)) {\n return die(\"expected a property name as second argument\");\n }\n\n return _isObservable(value, propName);\n}\n\nfunction keys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].keys_();\n }\n\n if (isObservableMap(obj) || isObservableSet(obj)) {\n return Array.from(obj.keys());\n }\n\n if (isObservableArray(obj)) {\n return obj.map(function (_, index) {\n return index;\n });\n }\n\n die(5);\n}\nfunction values(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return obj[key];\n });\n }\n\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return obj.get(key);\n });\n }\n\n if (isObservableSet(obj)) {\n return Array.from(obj.values());\n }\n\n if (isObservableArray(obj)) {\n return obj.slice();\n }\n\n die(6);\n}\nfunction entries(obj) {\n if (isObservableObject(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj[key]];\n });\n }\n\n if (isObservableMap(obj)) {\n return keys(obj).map(function (key) {\n return [key, obj.get(key)];\n });\n }\n\n if (isObservableSet(obj)) {\n return Array.from(obj.entries());\n }\n\n if (isObservableArray(obj)) {\n return obj.map(function (key, index) {\n return [index, key];\n });\n }\n\n die(7);\n}\nfunction set(obj, key, value) {\n if (arguments.length === 2 && !isObservableSet(obj)) {\n startBatch();\n var _values = key;\n\n try {\n for (var _key in _values) {\n set(obj, _key, _values[_key]);\n }\n } finally {\n endBatch();\n }\n\n return;\n }\n\n if (isObservableObject(obj)) {\n obj[$mobx].set_(key, value);\n } else if (isObservableMap(obj)) {\n obj.set(key, value);\n } else if (isObservableSet(obj)) {\n obj.add(key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n\n if (key < 0) {\n die(\"Invalid index: '\" + key + \"'\");\n }\n\n startBatch();\n\n if (key >= obj.length) {\n obj.length = key + 1;\n }\n\n obj[key] = value;\n endBatch();\n } else {\n die(8);\n }\n}\nfunction remove(obj, key) {\n if (isObservableObject(obj)) {\n obj[$mobx].delete_(key);\n } else if (isObservableMap(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableSet(obj)) {\n obj[\"delete\"](key);\n } else if (isObservableArray(obj)) {\n if (typeof key !== \"number\") {\n key = parseInt(key, 10);\n }\n\n obj.splice(key, 1);\n } else {\n die(9);\n }\n}\nfunction has(obj, key) {\n if (isObservableObject(obj)) {\n return obj[$mobx].has_(key);\n } else if (isObservableMap(obj)) {\n return obj.has(key);\n } else if (isObservableSet(obj)) {\n return obj.has(key);\n } else if (isObservableArray(obj)) {\n return key >= 0 && key < obj.length;\n }\n\n die(10);\n}\nfunction get(obj, key) {\n if (!has(obj, key)) {\n return undefined;\n }\n\n if (isObservableObject(obj)) {\n return obj[$mobx].get_(key);\n } else if (isObservableMap(obj)) {\n return obj.get(key);\n } else if (isObservableArray(obj)) {\n return obj[key];\n }\n\n die(11);\n}\nfunction apiDefineProperty(obj, key, descriptor) {\n if (isObservableObject(obj)) {\n return obj[$mobx].defineProperty_(key, descriptor);\n }\n\n die(39);\n}\nfunction apiOwnKeys(obj) {\n if (isObservableObject(obj)) {\n return obj[$mobx].ownKeys_();\n }\n\n die(38);\n}\n\nfunction observe(thing, propOrCb, cbOrFire, fireImmediately) {\n if (isFunction(cbOrFire)) {\n return observeObservableProperty(thing, propOrCb, cbOrFire, fireImmediately);\n } else {\n return observeObservable(thing, propOrCb, cbOrFire);\n }\n}\n\nfunction observeObservable(thing, listener, fireImmediately) {\n return getAdministration(thing).observe_(listener, fireImmediately);\n}\n\nfunction observeObservableProperty(thing, property, listener, fireImmediately) {\n return getAdministration(thing, property).observe_(listener, fireImmediately);\n}\n\nfunction cache(map, key, value) {\n map.set(key, value);\n return value;\n}\n\nfunction toJSHelper(source, __alreadySeen) {\n if (source == null || typeof source !== \"object\" || source instanceof Date || !isObservable(source)) {\n return source;\n }\n\n if (isObservableValue(source) || isComputedValue(source)) {\n return toJSHelper(source.get(), __alreadySeen);\n }\n\n if (__alreadySeen.has(source)) {\n return __alreadySeen.get(source);\n }\n\n if (isObservableArray(source)) {\n var res = cache(__alreadySeen, source, new Array(source.length));\n source.forEach(function (value, idx) {\n res[idx] = toJSHelper(value, __alreadySeen);\n });\n return res;\n }\n\n if (isObservableSet(source)) {\n var _res = cache(__alreadySeen, source, new Set());\n\n source.forEach(function (value) {\n _res.add(toJSHelper(value, __alreadySeen));\n });\n return _res;\n }\n\n if (isObservableMap(source)) {\n var _res2 = cache(__alreadySeen, source, new Map());\n\n source.forEach(function (value, key) {\n _res2.set(key, toJSHelper(value, __alreadySeen));\n });\n return _res2;\n } else {\n // must be observable object\n var _res3 = cache(__alreadySeen, source, {});\n\n apiOwnKeys(source).forEach(function (key) {\n if (objectPrototype.propertyIsEnumerable.call(source, key)) {\n _res3[key] = toJSHelper(source[key], __alreadySeen);\n }\n });\n return _res3;\n }\n}\n/**\r\n * Recursively converts an observable to it's non-observable native counterpart.\r\n * It does NOT recurse into non-observables, these are left as they are, even if they contain observables.\r\n * Computed and other non-enumerable properties are completely ignored.\r\n * Complex scenarios require custom solution, eg implementing `toJSON` or using `serializr` lib.\r\n */\n\n\nfunction toJS(source, options) {\n if (process.env.NODE_ENV !== \"production\" && options) {\n die(\"toJS no longer supports options\");\n }\n\n return toJSHelper(source, new Map());\n}\n\nfunction trace() {\n if (!(process.env.NODE_ENV !== \"production\")) {\n die(\"trace() is not available in production builds\");\n }\n\n var enterBreakPoint = false;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[args.length - 1] === \"boolean\") {\n enterBreakPoint = args.pop();\n }\n\n var derivation = getAtomFromArgs(args);\n\n if (!derivation) {\n return die(\"'trace(break?)' can only be used inside a tracked computed value or a Reaction. Consider passing in the computed value or reaction explicitly\");\n }\n\n if (derivation.isTracing_ === TraceMode.NONE) {\n console.log(\"[mobx.trace] '\" + derivation.name_ + \"' tracing enabled\");\n }\n\n derivation.isTracing_ = enterBreakPoint ? TraceMode.BREAK : TraceMode.LOG;\n}\n\nfunction getAtomFromArgs(args) {\n switch (args.length) {\n case 0:\n return globalState.trackingDerivation;\n\n case 1:\n return getAtom(args[0]);\n\n case 2:\n return getAtom(args[0], args[1]);\n }\n}\n\n/**\r\n * During a transaction no views are updated until the end of the transaction.\r\n * The transaction will be run synchronously nonetheless.\r\n *\r\n * @param action a function that updates some reactive state\r\n * @returns any value that was returned by the 'action' parameter.\r\n */\n\nfunction transaction(action, thisArg) {\n if (thisArg === void 0) {\n thisArg = undefined;\n }\n\n startBatch();\n\n try {\n return action.apply(thisArg);\n } finally {\n endBatch();\n }\n}\n\nfunction when(predicate, arg1, arg2) {\n if (arguments.length === 1 || arg1 && typeof arg1 === \"object\") {\n return whenPromise(predicate, arg1);\n }\n\n return _when(predicate, arg1, arg2 || {});\n}\n\nfunction _when(predicate, effect, opts) {\n var timeoutHandle;\n\n if (typeof opts.timeout === \"number\") {\n var error = new Error(\"WHEN_TIMEOUT\");\n timeoutHandle = setTimeout(function () {\n if (!disposer[$mobx].isDisposed_) {\n disposer();\n\n if (opts.onError) {\n opts.onError(error);\n } else {\n throw error;\n }\n }\n }, opts.timeout);\n }\n\n opts.name = process.env.NODE_ENV !== \"production\" ? opts.name || \"When@\" + getNextId() : \"When\";\n var effectAction = createAction(process.env.NODE_ENV !== \"production\" ? opts.name + \"-effect\" : \"When-effect\", effect); // eslint-disable-next-line\n\n var disposer = autorun(function (r) {\n // predicate should not change state\n var cond = allowStateChanges(false, predicate);\n\n if (cond) {\n r.dispose();\n\n if (timeoutHandle) {\n clearTimeout(timeoutHandle);\n }\n\n effectAction();\n }\n }, opts);\n return disposer;\n}\n\nfunction whenPromise(predicate, opts) {\n var _opts$signal;\n\n if (process.env.NODE_ENV !== \"production\" && opts && opts.onError) {\n return die(\"the options 'onError' and 'promise' cannot be combined\");\n }\n\n if (opts != null && (_opts$signal = opts.signal) != null && _opts$signal.aborted) {\n return Object.assign(Promise.reject(new Error(\"WHEN_ABORTED\")), {\n cancel: function cancel() {\n return null;\n }\n });\n }\n\n var cancel;\n var abort;\n var res = new Promise(function (resolve, reject) {\n var _opts$signal2;\n\n var disposer = _when(predicate, resolve, _extends({}, opts, {\n onError: reject\n }));\n\n cancel = function cancel() {\n disposer();\n reject(new Error(\"WHEN_CANCELLED\"));\n };\n\n abort = function abort() {\n disposer();\n reject(new Error(\"WHEN_ABORTED\"));\n };\n\n opts == null ? void 0 : (_opts$signal2 = opts.signal) == null ? void 0 : _opts$signal2.addEventListener(\"abort\", abort);\n })[\"finally\"](function () {\n var _opts$signal3;\n\n return opts == null ? void 0 : (_opts$signal3 = opts.signal) == null ? void 0 : _opts$signal3.removeEventListener(\"abort\", abort);\n });\n res.cancel = cancel;\n return res;\n}\n\nfunction getAdm(target) {\n return target[$mobx];\n} // Optimization: we don't need the intermediate objects and could have a completely custom administration for DynamicObjects,\n// and skip either the internal values map, or the base object with its property descriptors!\n\n\nvar objectProxyTraps = {\n has: function has(target, name) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"detect new properties using the 'in' operator. Use 'has' from 'mobx' instead.\");\n }\n\n return getAdm(target).has_(name);\n },\n get: function get(target, name) {\n return getAdm(target).get_(name);\n },\n set: function set(target, name, value) {\n var _getAdm$set_;\n\n if (!isStringish(name)) {\n return false;\n }\n\n if (process.env.NODE_ENV !== \"production\" && !getAdm(target).values_.has(name)) {\n warnAboutProxyRequirement(\"add a new observable property through direct assignment. Use 'set' from 'mobx' instead.\");\n } // null (intercepted) -> true (success)\n\n\n return (_getAdm$set_ = getAdm(target).set_(name, value, true)) != null ? _getAdm$set_ : true;\n },\n deleteProperty: function deleteProperty(target, name) {\n var _getAdm$delete_;\n\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"delete properties from an observable object. Use 'remove' from 'mobx' instead.\");\n }\n\n if (!isStringish(name)) {\n return false;\n } // null (intercepted) -> true (success)\n\n\n return (_getAdm$delete_ = getAdm(target).delete_(name, true)) != null ? _getAdm$delete_ : true;\n },\n defineProperty: function defineProperty(target, name, descriptor) {\n var _getAdm$definePropert;\n\n if (process.env.NODE_ENV !== \"production\") {\n warnAboutProxyRequirement(\"define property on an observable object. Use 'defineProperty' from 'mobx' instead.\");\n } // null (intercepted) -> true (success)\n\n\n return (_getAdm$definePropert = getAdm(target).defineProperty_(name, descriptor)) != null ? _getAdm$definePropert : true;\n },\n ownKeys: function ownKeys(target) {\n if (process.env.NODE_ENV !== \"production\" && globalState.trackingDerivation) {\n warnAboutProxyRequirement(\"iterate keys to detect added / removed properties. Use 'keys' from 'mobx' instead.\");\n }\n\n return getAdm(target).ownKeys_();\n },\n preventExtensions: function preventExtensions(target) {\n die(13);\n }\n};\nfunction asDynamicObservableObject(target, options) {\n var _target$$mobx, _target$$mobx$proxy_;\n\n assertProxies();\n target = asObservableObject(target, options);\n return (_target$$mobx$proxy_ = (_target$$mobx = target[$mobx]).proxy_) != null ? _target$$mobx$proxy_ : _target$$mobx.proxy_ = new Proxy(target, objectProxyTraps);\n}\n\nfunction hasInterceptors(interceptable) {\n return interceptable.interceptors_ !== undefined && interceptable.interceptors_.length > 0;\n}\nfunction registerInterceptor(interceptable, handler) {\n var interceptors = interceptable.interceptors_ || (interceptable.interceptors_ = []);\n interceptors.push(handler);\n return once(function () {\n var idx = interceptors.indexOf(handler);\n\n if (idx !== -1) {\n interceptors.splice(idx, 1);\n }\n });\n}\nfunction interceptChange(interceptable, change) {\n var prevU = untrackedStart();\n\n try {\n // Interceptor can modify the array, copy it to avoid concurrent modification, see #1950\n var interceptors = [].concat(interceptable.interceptors_ || []);\n\n for (var i = 0, l = interceptors.length; i < l; i++) {\n change = interceptors[i](change);\n\n if (change && !change.type) {\n die(14);\n }\n\n if (!change) {\n break;\n }\n }\n\n return change;\n } finally {\n untrackedEnd(prevU);\n }\n}\n\nfunction hasListeners(listenable) {\n return listenable.changeListeners_ !== undefined && listenable.changeListeners_.length > 0;\n}\nfunction registerListener(listenable, handler) {\n var listeners = listenable.changeListeners_ || (listenable.changeListeners_ = []);\n listeners.push(handler);\n return once(function () {\n var idx = listeners.indexOf(handler);\n\n if (idx !== -1) {\n listeners.splice(idx, 1);\n }\n });\n}\nfunction notifyListeners(listenable, change) {\n var prevU = untrackedStart();\n var listeners = listenable.changeListeners_;\n\n if (!listeners) {\n return;\n }\n\n listeners = listeners.slice();\n\n for (var i = 0, l = listeners.length; i < l; i++) {\n listeners[i](change);\n }\n\n untrackedEnd(prevU);\n}\n\nfunction makeObservable(target, annotations, options) {\n var adm = asObservableObject(target, options)[$mobx];\n startBatch();\n\n try {\n var _annotations;\n\n if (process.env.NODE_ENV !== \"production\" && annotations && target[storedAnnotationsSymbol]) {\n die(\"makeObservable second arg must be nullish when using decorators. Mixing @decorator syntax with annotations is not supported.\");\n } // Default to decorators\n\n\n (_annotations = annotations) != null ? _annotations : annotations = collectStoredAnnotations(target); // Annotate\n\n ownKeys(annotations).forEach(function (key) {\n return adm.make_(key, annotations[key]);\n });\n } finally {\n endBatch();\n }\n\n return target;\n} // proto[keysSymbol] = new Set<PropertyKey>()\n\nvar keysSymbol = /*#__PURE__*/Symbol(\"mobx-keys\");\nfunction makeAutoObservable(target, overrides, options) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!isPlainObject(target) && !isPlainObject(Object.getPrototypeOf(target))) {\n die(\"'makeAutoObservable' can only be used for classes that don't have a superclass\");\n }\n\n if (isObservableObject(target)) {\n die(\"makeAutoObservable can only be used on objects not already made observable\");\n }\n } // Optimization: avoid visiting protos\n // Assumes that annotation.make_/.extend_ works the same for plain objects\n\n\n if (isPlainObject(target)) {\n return extendObservable(target, target, overrides, options);\n }\n\n var adm = asObservableObject(target, options)[$mobx]; // Optimization: cache keys on proto\n // Assumes makeAutoObservable can be called only once per object and can't be used in subclass\n\n if (!target[keysSymbol]) {\n var proto = Object.getPrototypeOf(target);\n var keys = new Set([].concat(ownKeys(target), ownKeys(proto)));\n keys[\"delete\"](\"constructor\");\n keys[\"delete\"]($mobx);\n addHiddenProp(proto, keysSymbol, keys);\n }\n\n startBatch();\n\n try {\n target[keysSymbol].forEach(function (key) {\n return adm.make_(key, // must pass \"undefined\" for { key: undefined }\n !overrides ? true : key in overrides ? overrides[key] : true);\n });\n } finally {\n endBatch();\n }\n\n return target;\n}\n\nvar SPLICE = \"splice\";\nvar UPDATE = \"update\";\nvar MAX_SPLICE_SIZE = 10000; // See e.g. https://github.com/mobxjs/mobx/issues/859\n\nvar arrayTraps = {\n get: function get(target, name) {\n var adm = target[$mobx];\n\n if (name === $mobx) {\n return adm;\n }\n\n if (name === \"length\") {\n return adm.getArrayLength_();\n }\n\n if (typeof name === \"string\" && !isNaN(name)) {\n return adm.get_(parseInt(name));\n }\n\n if (hasProp(arrayExtensions, name)) {\n return arrayExtensions[name];\n }\n\n return target[name];\n },\n set: function set(target, name, value) {\n var adm = target[$mobx];\n\n if (name === \"length\") {\n adm.setArrayLength_(value);\n }\n\n if (typeof name === \"symbol\" || isNaN(name)) {\n target[name] = value;\n } else {\n // numeric string\n adm.set_(parseInt(name), value);\n }\n\n return true;\n },\n preventExtensions: function preventExtensions() {\n die(15);\n }\n};\nvar ObservableArrayAdministration = /*#__PURE__*/function () {\n // this is the prop that gets proxied, so can't replace it!\n function ObservableArrayAdministration(name, enhancer, owned_, legacyMode_) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n\n this.owned_ = void 0;\n this.legacyMode_ = void 0;\n this.atom_ = void 0;\n this.values_ = [];\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.enhancer_ = void 0;\n this.dehancer = void 0;\n this.proxy_ = void 0;\n this.lastKnownLength_ = 0;\n this.owned_ = owned_;\n this.legacyMode_ = legacyMode_;\n this.atom_ = new Atom(name);\n\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, process.env.NODE_ENV !== \"production\" ? name + \"[..]\" : \"ObservableArray[..]\");\n };\n }\n\n var _proto = ObservableArrayAdministration.prototype;\n\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.dehanceValues_ = function dehanceValues_(values) {\n if (this.dehancer !== undefined && values.length > 0) {\n return values.map(this.dehancer);\n }\n\n return values;\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (fireImmediately === void 0) {\n fireImmediately = false;\n }\n\n if (fireImmediately) {\n listener({\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: \"splice\",\n index: 0,\n added: this.values_.slice(),\n addedCount: this.values_.length,\n removed: [],\n removedCount: 0\n });\n }\n\n return registerListener(this, listener);\n };\n\n _proto.getArrayLength_ = function getArrayLength_() {\n this.atom_.reportObserved();\n return this.values_.length;\n };\n\n _proto.setArrayLength_ = function setArrayLength_(newLength) {\n if (typeof newLength !== \"number\" || isNaN(newLength) || newLength < 0) {\n die(\"Out of range: \" + newLength);\n }\n\n var currentLength = this.values_.length;\n\n if (newLength === currentLength) {\n return;\n } else if (newLength > currentLength) {\n var newItems = new Array(newLength - currentLength);\n\n for (var i = 0; i < newLength - currentLength; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n\n\n this.spliceWithArray_(currentLength, 0, newItems);\n } else {\n this.spliceWithArray_(newLength, currentLength - newLength);\n }\n };\n\n _proto.updateArrayLength_ = function updateArrayLength_(oldLength, delta) {\n if (oldLength !== this.lastKnownLength_) {\n die(16);\n }\n\n this.lastKnownLength_ += delta;\n\n if (this.legacyMode_ && delta > 0) {\n reserveArrayBuffer(oldLength + delta + 1);\n }\n };\n\n _proto.spliceWithArray_ = function spliceWithArray_(index, deleteCount, newItems) {\n var _this = this;\n\n checkIfStateModificationsAreAllowed(this.atom_);\n var length = this.values_.length;\n\n if (index === undefined) {\n index = 0;\n } else if (index > length) {\n index = length;\n } else if (index < 0) {\n index = Math.max(0, length + index);\n }\n\n if (arguments.length === 1) {\n deleteCount = length - index;\n } else if (deleteCount === undefined || deleteCount === null) {\n deleteCount = 0;\n } else {\n deleteCount = Math.max(0, Math.min(deleteCount, length - index));\n }\n\n if (newItems === undefined) {\n newItems = EMPTY_ARRAY;\n }\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_,\n type: SPLICE,\n index: index,\n removedCount: deleteCount,\n added: newItems\n });\n\n if (!change) {\n return EMPTY_ARRAY;\n }\n\n deleteCount = change.removedCount;\n newItems = change.added;\n }\n\n newItems = newItems.length === 0 ? newItems : newItems.map(function (v) {\n return _this.enhancer_(v, undefined);\n });\n\n if (this.legacyMode_ || process.env.NODE_ENV !== \"production\") {\n var lengthDelta = newItems.length - deleteCount;\n this.updateArrayLength_(length, lengthDelta); // checks if internal array wasn't modified\n }\n\n var res = this.spliceItemsIntoValues_(index, deleteCount, newItems);\n\n if (deleteCount !== 0 || newItems.length !== 0) {\n this.notifyArraySplice_(index, newItems, res);\n }\n\n return this.dehanceValues_(res);\n };\n\n _proto.spliceItemsIntoValues_ = function spliceItemsIntoValues_(index, deleteCount, newItems) {\n if (newItems.length < MAX_SPLICE_SIZE) {\n var _this$values_;\n\n return (_this$values_ = this.values_).splice.apply(_this$values_, [index, deleteCount].concat(newItems));\n } else {\n // The items removed by the splice\n var res = this.values_.slice(index, index + deleteCount); // The items that that should remain at the end of the array\n\n var oldItems = this.values_.slice(index + deleteCount); // New length is the previous length + addition count - deletion count\n\n this.values_.length += newItems.length - deleteCount;\n\n for (var i = 0; i < newItems.length; i++) {\n this.values_[index + i] = newItems[i];\n }\n\n for (var _i = 0; _i < oldItems.length; _i++) {\n this.values_[index + newItems.length + _i] = oldItems[_i];\n }\n\n return res;\n }\n };\n\n _proto.notifyArrayChildUpdate_ = function notifyArrayChildUpdate_(index, newValue, oldValue) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n type: UPDATE,\n debugObjectName: this.atom_.name_,\n index: index,\n newValue: newValue,\n oldValue: oldValue\n } : null; // The reason why this is on right hand side here (and not above), is this way the uglifier will drop it, but it won't\n // cause any runtime overhead in development mode without NODE_ENV set, unless spying is enabled\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n\n this.atom_.reportChanged();\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n\n _proto.notifyArraySplice_ = function notifyArraySplice_(index, added, removed) {\n var notifySpy = !this.owned_ && isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"array\",\n object: this.proxy_,\n debugObjectName: this.atom_.name_,\n type: SPLICE,\n index: index,\n removed: removed,\n added: added,\n removedCount: removed.length,\n addedCount: added.length\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n\n this.atom_.reportChanged(); // conform: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/observe\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n\n _proto.get_ = function get_(index) {\n if (this.legacyMode_ && index >= this.values_.length) {\n console.warn(process.env.NODE_ENV !== \"production\" ? \"[mobx.array] Attempt to read an array index (\" + index + \") that is out of bounds (\" + this.values_.length + \"). Please check length first. Out of bound indices will not be tracked by MobX\" : \"[mobx] Out of bounds read: \" + index);\n return undefined;\n }\n\n this.atom_.reportObserved();\n return this.dehanceValue_(this.values_[index]);\n };\n\n _proto.set_ = function set_(index, newValue) {\n var values = this.values_;\n\n if (this.legacyMode_ && index > values.length) {\n // out of bounds\n die(17, index, values.length);\n }\n\n if (index < values.length) {\n // update at index in range\n checkIfStateModificationsAreAllowed(this.atom_);\n var oldValue = values[index];\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_,\n index: index,\n newValue: newValue\n });\n\n if (!change) {\n return;\n }\n\n newValue = change.newValue;\n }\n\n newValue = this.enhancer_(newValue, oldValue);\n var changed = newValue !== oldValue;\n\n if (changed) {\n values[index] = newValue;\n this.notifyArrayChildUpdate_(index, newValue, oldValue);\n }\n } else {\n // For out of bound index, we don't create an actual sparse array,\n // but rather fill the holes with undefined (same as setArrayLength_).\n // This could be considered a bug.\n var newItems = new Array(index + 1 - values.length);\n\n for (var i = 0; i < newItems.length - 1; i++) {\n newItems[i] = undefined;\n } // No Array.fill everywhere...\n\n\n newItems[newItems.length - 1] = newValue;\n this.spliceWithArray_(values.length, 0, newItems);\n }\n };\n\n return ObservableArrayAdministration;\n}();\nfunction createObservableArray(initialValues, enhancer, name, owned) {\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n\n if (owned === void 0) {\n owned = false;\n }\n\n assertProxies();\n var adm = new ObservableArrayAdministration(name, enhancer, owned, false);\n addHiddenFinalProp(adm.values_, $mobx, adm);\n var proxy = new Proxy(adm.values_, arrayTraps);\n adm.proxy_ = proxy;\n\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true);\n adm.spliceWithArray_(0, 0, initialValues);\n allowStateChangesEnd(prev);\n }\n\n return proxy;\n} // eslint-disable-next-line\n\nvar arrayExtensions = {\n clear: function clear() {\n return this.splice(0);\n },\n replace: function replace(newItems) {\n var adm = this[$mobx];\n return adm.spliceWithArray_(0, adm.values_.length, newItems);\n },\n // Used by JSON.stringify\n toJSON: function toJSON() {\n return this.slice();\n },\n\n /*\r\n * functions that do alter the internal structure of the array, (based on lib.es6.d.ts)\r\n * since these functions alter the inner structure of the array, the have side effects.\r\n * Because the have side effects, they should not be used in computed function,\r\n * and for that reason the do not call dependencyState.notifyObserved\r\n */\n splice: function splice(index, deleteCount) {\n for (var _len = arguments.length, newItems = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n newItems[_key - 2] = arguments[_key];\n }\n\n var adm = this[$mobx];\n\n switch (arguments.length) {\n case 0:\n return [];\n\n case 1:\n return adm.spliceWithArray_(index);\n\n case 2:\n return adm.spliceWithArray_(index, deleteCount);\n }\n\n return adm.spliceWithArray_(index, deleteCount, newItems);\n },\n spliceWithArray: function spliceWithArray(index, deleteCount, newItems) {\n return this[$mobx].spliceWithArray_(index, deleteCount, newItems);\n },\n push: function push() {\n var adm = this[$mobx];\n\n for (var _len2 = arguments.length, items = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n items[_key2] = arguments[_key2];\n }\n\n adm.spliceWithArray_(adm.values_.length, 0, items);\n return adm.values_.length;\n },\n pop: function pop() {\n return this.splice(Math.max(this[$mobx].values_.length - 1, 0), 1)[0];\n },\n shift: function shift() {\n return this.splice(0, 1)[0];\n },\n unshift: function unshift() {\n var adm = this[$mobx];\n\n for (var _len3 = arguments.length, items = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n items[_key3] = arguments[_key3];\n }\n\n adm.spliceWithArray_(0, 0, items);\n return adm.values_.length;\n },\n reverse: function reverse() {\n // reverse by default mutates in place before returning the result\n // which makes it both a 'derivation' and a 'mutation'.\n if (globalState.trackingDerivation) {\n die(37, \"reverse\");\n }\n\n this.replace(this.slice().reverse());\n return this;\n },\n sort: function sort() {\n // sort by default mutates in place before returning the result\n // which goes against all good practices. Let's not change the array in place!\n if (globalState.trackingDerivation) {\n die(37, \"sort\");\n }\n\n var copy = this.slice();\n copy.sort.apply(copy, arguments);\n this.replace(copy);\n return this;\n },\n remove: function remove(value) {\n var adm = this[$mobx];\n var idx = adm.dehanceValues_(adm.values_).indexOf(value);\n\n if (idx > -1) {\n this.splice(idx, 1);\n return true;\n }\n\n return false;\n }\n};\n/**\r\n * Wrap function from prototype\r\n * Without this, everything works as well, but this works\r\n * faster as everything works on unproxied values\r\n */\n\naddArrayExtension(\"concat\", simpleFunc);\naddArrayExtension(\"flat\", simpleFunc);\naddArrayExtension(\"includes\", simpleFunc);\naddArrayExtension(\"indexOf\", simpleFunc);\naddArrayExtension(\"join\", simpleFunc);\naddArrayExtension(\"lastIndexOf\", simpleFunc);\naddArrayExtension(\"slice\", simpleFunc);\naddArrayExtension(\"toString\", simpleFunc);\naddArrayExtension(\"toLocaleString\", simpleFunc); // map\n\naddArrayExtension(\"every\", mapLikeFunc);\naddArrayExtension(\"filter\", mapLikeFunc);\naddArrayExtension(\"find\", mapLikeFunc);\naddArrayExtension(\"findIndex\", mapLikeFunc);\naddArrayExtension(\"flatMap\", mapLikeFunc);\naddArrayExtension(\"forEach\", mapLikeFunc);\naddArrayExtension(\"map\", mapLikeFunc);\naddArrayExtension(\"some\", mapLikeFunc); // reduce\n\naddArrayExtension(\"reduce\", reduceLikeFunc);\naddArrayExtension(\"reduceRight\", reduceLikeFunc);\n\nfunction addArrayExtension(funcName, funcFactory) {\n if (typeof Array.prototype[funcName] === \"function\") {\n arrayExtensions[funcName] = funcFactory(funcName);\n }\n} // Report and delegate to dehanced array\n\n\nfunction simpleFunc(funcName) {\n return function () {\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n} // Make sure callbacks recieve correct array arg #2326\n\n\nfunction mapLikeFunc(funcName) {\n return function (callback, thisArg) {\n var _this2 = this;\n\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_);\n return dehancedValues[funcName](function (element, index) {\n return callback.call(thisArg, element, index, _this2);\n });\n };\n} // Make sure callbacks recieve correct array arg #2326\n\n\nfunction reduceLikeFunc(funcName) {\n return function () {\n var _this3 = this;\n\n var adm = this[$mobx];\n adm.atom_.reportObserved();\n var dehancedValues = adm.dehanceValues_(adm.values_); // #2432 - reduce behavior depends on arguments.length\n\n var callback = arguments[0];\n\n arguments[0] = function (accumulator, currentValue, index) {\n return callback(accumulator, currentValue, index, _this3);\n };\n\n return dehancedValues[funcName].apply(dehancedValues, arguments);\n };\n}\n\nvar isObservableArrayAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableArrayAdministration\", ObservableArrayAdministration);\nfunction isObservableArray(thing) {\n return isObject(thing) && isObservableArrayAdministration(thing[$mobx]);\n}\n\nvar _Symbol$iterator, _Symbol$toStringTag;\nvar ObservableMapMarker = {};\nvar ADD = \"add\";\nvar DELETE = \"delete\"; // just extend Map? See also https://gist.github.com/nestharus/13b4d74f2ef4a2f4357dbd3fc23c1e54\n// But: https://github.com/mobxjs/mobx/issues/1556\n\n_Symbol$iterator = Symbol.iterator;\n_Symbol$toStringTag = Symbol.toStringTag;\nvar ObservableMap = /*#__PURE__*/function () {\n // hasMap, not hashMap >-).\n function ObservableMap(initialData, enhancer_, name_) {\n var _this = this;\n\n if (enhancer_ === void 0) {\n enhancer_ = deepEnhancer;\n }\n\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableMap@\" + getNextId() : \"ObservableMap\";\n }\n\n this.enhancer_ = void 0;\n this.name_ = void 0;\n this[$mobx] = ObservableMapMarker;\n this.data_ = void 0;\n this.hasMap_ = void 0;\n this.keysAtom_ = void 0;\n this.interceptors_ = void 0;\n this.changeListeners_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = enhancer_;\n this.name_ = name_;\n\n if (!isFunction(Map)) {\n die(18);\n }\n\n this.keysAtom_ = createAtom(process.env.NODE_ENV !== \"production\" ? this.name_ + \".keys()\" : \"ObservableMap.keys()\");\n this.data_ = new Map();\n this.hasMap_ = new Map();\n allowStateChanges(true, function () {\n _this.merge(initialData);\n });\n }\n\n var _proto = ObservableMap.prototype;\n\n _proto.has_ = function has_(key) {\n return this.data_.has(key);\n };\n\n _proto.has = function has(key) {\n var _this2 = this;\n\n if (!globalState.trackingDerivation) {\n return this.has_(key);\n }\n\n var entry = this.hasMap_.get(key);\n\n if (!entry) {\n var newEntry = entry = new ObservableValue(this.has_(key), referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableMap.key?\", false);\n this.hasMap_.set(key, newEntry);\n onBecomeUnobserved(newEntry, function () {\n return _this2.hasMap_[\"delete\"](key);\n });\n }\n\n return entry.get();\n };\n\n _proto.set = function set(key, value) {\n var hasKey = this.has_(key);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: hasKey ? UPDATE : ADD,\n object: this,\n newValue: value,\n name: key\n });\n\n if (!change) {\n return this;\n }\n\n value = change.newValue;\n }\n\n if (hasKey) {\n this.updateValue_(key, value);\n } else {\n this.addValue_(key, value);\n }\n\n return this;\n };\n\n _proto[\"delete\"] = function _delete(key) {\n var _this3 = this;\n\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n name: key\n });\n\n if (!change) {\n return false;\n }\n }\n\n if (this.has_(key)) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n\n var _change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: this.data_.get(key).value_,\n name: key\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n } // TODO fix type\n\n\n transaction(function () {\n var _this3$hasMap_$get;\n\n _this3.keysAtom_.reportChanged();\n\n (_this3$hasMap_$get = _this3.hasMap_.get(key)) == null ? void 0 : _this3$hasMap_$get.setNewValue_(false);\n\n var observable = _this3.data_.get(key);\n\n observable.setNewValue_(undefined);\n\n _this3.data_[\"delete\"](key);\n });\n\n if (notify) {\n notifyListeners(this, _change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n\n return true;\n }\n\n return false;\n };\n\n _proto.updateValue_ = function updateValue_(key, newValue) {\n var observable = this.data_.get(key);\n newValue = observable.prepareNewValue_(newValue);\n\n if (newValue !== globalState.UNCHANGED) {\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: UPDATE,\n object: this,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n\n\n observable.setNewValue_(newValue);\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n };\n\n _proto.addValue_ = function addValue_(key, newValue) {\n var _this4 = this;\n\n checkIfStateModificationsAreAllowed(this.keysAtom_);\n transaction(function () {\n var _this4$hasMap_$get;\n\n var observable = new ObservableValue(newValue, _this4.enhancer_, process.env.NODE_ENV !== \"production\" ? _this4.name_ + \".\" + stringifyKey(key) : \"ObservableMap.key\", false);\n\n _this4.data_.set(key, observable);\n\n newValue = observable.value_; // value might have been changed\n\n (_this4$hasMap_$get = _this4.hasMap_.get(key)) == null ? void 0 : _this4$hasMap_$get.setNewValue_(true);\n\n _this4.keysAtom_.reportChanged();\n });\n var notifySpy = isSpyEnabled();\n var notify = hasListeners(this);\n var change = notify || notifySpy ? {\n observableKind: \"map\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n name: key,\n newValue: newValue\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n } // TODO fix type\n\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n };\n\n _proto.get = function get(key) {\n if (this.has(key)) {\n return this.dehanceValue_(this.data_.get(key).get());\n }\n\n return this.dehanceValue_(undefined);\n };\n\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.keys = function keys() {\n this.keysAtom_.reportObserved();\n return this.data_.keys();\n };\n\n _proto.values = function values() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next = keys.next(),\n done = _keys$next.done,\n value = _keys$next.value;\n\n return {\n done: done,\n value: done ? undefined : self.get(value)\n };\n }\n });\n };\n\n _proto.entries = function entries() {\n var self = this;\n var keys = this.keys();\n return makeIterable({\n next: function next() {\n var _keys$next2 = keys.next(),\n done = _keys$next2.done,\n value = _keys$next2.value;\n\n return {\n done: done,\n value: done ? undefined : [value, self.get(value)]\n };\n }\n });\n };\n\n _proto[_Symbol$iterator] = function () {\n return this.entries();\n };\n\n _proto.forEach = function forEach(callback, thisArg) {\n for (var _iterator = _createForOfIteratorHelperLoose(this), _step; !(_step = _iterator()).done;) {\n var _step$value = _step.value,\n key = _step$value[0],\n value = _step$value[1];\n callback.call(thisArg, value, key, this);\n }\n }\n /** Merge another object into this object, returns this. */\n ;\n\n _proto.merge = function merge(other) {\n var _this5 = this;\n\n if (isObservableMap(other)) {\n other = new Map(other);\n }\n\n transaction(function () {\n if (isPlainObject(other)) {\n getPlainObjectKeys(other).forEach(function (key) {\n return _this5.set(key, other[key]);\n });\n } else if (Array.isArray(other)) {\n other.forEach(function (_ref) {\n var key = _ref[0],\n value = _ref[1];\n return _this5.set(key, value);\n });\n } else if (isES6Map(other)) {\n if (other.constructor !== Map) {\n die(19, other);\n }\n\n other.forEach(function (value, key) {\n return _this5.set(key, value);\n });\n } else if (other !== null && other !== undefined) {\n die(20, other);\n }\n });\n return this;\n };\n\n _proto.clear = function clear() {\n var _this6 = this;\n\n transaction(function () {\n untracked(function () {\n for (var _iterator2 = _createForOfIteratorHelperLoose(_this6.keys()), _step2; !(_step2 = _iterator2()).done;) {\n var key = _step2.value;\n\n _this6[\"delete\"](key);\n }\n });\n });\n };\n\n _proto.replace = function replace(values) {\n var _this7 = this;\n\n // Implementation requirements:\n // - respect ordering of replacement map\n // - allow interceptors to run and potentially prevent individual operations\n // - don't recreate observables that already exist in original map (so we don't destroy existing subscriptions)\n // - don't _keysAtom.reportChanged if the keys of resulting map are indentical (order matters!)\n // - note that result map may differ from replacement map due to the interceptors\n transaction(function () {\n // Convert to map so we can do quick key lookups\n var replacementMap = convertToMap(values);\n var orderedData = new Map(); // Used for optimization\n\n var keysReportChangedCalled = false; // Delete keys that don't exist in replacement map\n // if the key deletion is prevented by interceptor\n // add entry at the beginning of the result map\n\n for (var _iterator3 = _createForOfIteratorHelperLoose(_this7.data_.keys()), _step3; !(_step3 = _iterator3()).done;) {\n var key = _step3.value;\n\n // Concurrently iterating/deleting keys\n // iterator should handle this correctly\n if (!replacementMap.has(key)) {\n var deleted = _this7[\"delete\"](key); // Was the key removed?\n\n\n if (deleted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n } else {\n // Delete prevented by interceptor\n var value = _this7.data_.get(key);\n\n orderedData.set(key, value);\n }\n }\n } // Merge entries\n\n\n for (var _iterator4 = _createForOfIteratorHelperLoose(replacementMap.entries()), _step4; !(_step4 = _iterator4()).done;) {\n var _step4$value = _step4.value,\n _key = _step4$value[0],\n _value = _step4$value[1];\n\n // We will want to know whether a new key is added\n var keyExisted = _this7.data_.has(_key); // Add or update value\n\n\n _this7.set(_key, _value); // The addition could have been prevent by interceptor\n\n\n if (_this7.data_.has(_key)) {\n // The update could have been prevented by interceptor\n // and also we want to preserve existing values\n // so use value from _data map (instead of replacement map)\n var _value2 = _this7.data_.get(_key);\n\n orderedData.set(_key, _value2); // Was a new key added?\n\n if (!keyExisted) {\n // _keysAtom.reportChanged() was already called\n keysReportChangedCalled = true;\n }\n }\n } // Check for possible key order change\n\n\n if (!keysReportChangedCalled) {\n if (_this7.data_.size !== orderedData.size) {\n // If size differs, keys are definitely modified\n _this7.keysAtom_.reportChanged();\n } else {\n var iter1 = _this7.data_.keys();\n\n var iter2 = orderedData.keys();\n var next1 = iter1.next();\n var next2 = iter2.next();\n\n while (!next1.done) {\n if (next1.value !== next2.value) {\n _this7.keysAtom_.reportChanged();\n\n break;\n }\n\n next1 = iter1.next();\n next2 = iter2.next();\n }\n }\n } // Use correctly ordered map\n\n\n _this7.data_ = orderedData;\n });\n return this;\n };\n\n _proto.toString = function toString() {\n return \"[object ObservableMap]\";\n };\n\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n _proto.observe_ = function observe_(listener, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with maps.\");\n }\n\n return registerListener(this, listener);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _createClass(ObservableMap, [{\n key: \"size\",\n get: function get() {\n this.keysAtom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Map\";\n }\n }]);\n\n return ObservableMap;\n}(); // eslint-disable-next-line\n\nvar isObservableMap = /*#__PURE__*/createInstanceofPredicate(\"ObservableMap\", ObservableMap);\n\nfunction convertToMap(dataStructure) {\n if (isES6Map(dataStructure) || isObservableMap(dataStructure)) {\n return dataStructure;\n } else if (Array.isArray(dataStructure)) {\n return new Map(dataStructure);\n } else if (isPlainObject(dataStructure)) {\n var map = new Map();\n\n for (var key in dataStructure) {\n map.set(key, dataStructure[key]);\n }\n\n return map;\n } else {\n return die(21, dataStructure);\n }\n}\n\nvar _Symbol$iterator$1, _Symbol$toStringTag$1;\nvar ObservableSetMarker = {};\n_Symbol$iterator$1 = Symbol.iterator;\n_Symbol$toStringTag$1 = Symbol.toStringTag;\nvar ObservableSet = /*#__PURE__*/function () {\n function ObservableSet(initialData, enhancer, name_) {\n if (enhancer === void 0) {\n enhancer = deepEnhancer;\n }\n\n if (name_ === void 0) {\n name_ = process.env.NODE_ENV !== \"production\" ? \"ObservableSet@\" + getNextId() : \"ObservableSet\";\n }\n\n this.name_ = void 0;\n this[$mobx] = ObservableSetMarker;\n this.data_ = new Set();\n this.atom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.dehancer = void 0;\n this.enhancer_ = void 0;\n this.name_ = name_;\n\n if (!isFunction(Set)) {\n die(22);\n }\n\n this.atom_ = createAtom(this.name_);\n\n this.enhancer_ = function (newV, oldV) {\n return enhancer(newV, oldV, name_);\n };\n\n if (initialData) {\n this.replace(initialData);\n }\n }\n\n var _proto = ObservableSet.prototype;\n\n _proto.dehanceValue_ = function dehanceValue_(value) {\n if (this.dehancer !== undefined) {\n return this.dehancer(value);\n }\n\n return value;\n };\n\n _proto.clear = function clear() {\n var _this = this;\n\n transaction(function () {\n untracked(function () {\n for (var _iterator = _createForOfIteratorHelperLoose(_this.data_.values()), _step; !(_step = _iterator()).done;) {\n var value = _step.value;\n\n _this[\"delete\"](value);\n }\n });\n });\n };\n\n _proto.forEach = function forEach(callbackFn, thisArg) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(this), _step2; !(_step2 = _iterator2()).done;) {\n var value = _step2.value;\n callbackFn.call(thisArg, value, value, this);\n }\n };\n\n _proto.add = function add(value) {\n var _this2 = this;\n\n checkIfStateModificationsAreAllowed(this.atom_);\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: ADD,\n object: this,\n newValue: value\n });\n\n if (!change) {\n return this;\n } // ideally, value = change.value would be done here, so that values can be\n // changed by interceptor. Same applies for other Set and Map api's.\n\n }\n\n if (!this.has(value)) {\n transaction(function () {\n _this2.data_.add(_this2.enhancer_(value, undefined));\n\n _this2.atom_.reportChanged();\n });\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n\n var _change = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: ADD,\n object: this,\n newValue: value\n } : null;\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change);\n }\n\n if (notify) {\n notifyListeners(this, _change);\n }\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n }\n\n return this;\n };\n\n _proto[\"delete\"] = function _delete(value) {\n var _this3 = this;\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: DELETE,\n object: this,\n oldValue: value\n });\n\n if (!change) {\n return false;\n }\n }\n\n if (this.has(value)) {\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var notify = hasListeners(this);\n\n var _change2 = notify || notifySpy ? {\n observableKind: \"set\",\n debugObjectName: this.name_,\n type: DELETE,\n object: this,\n oldValue: value\n } : null;\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportStart(_change2);\n }\n\n transaction(function () {\n _this3.atom_.reportChanged();\n\n _this3.data_[\"delete\"](value);\n });\n\n if (notify) {\n notifyListeners(this, _change2);\n }\n\n if (notifySpy && process.env.NODE_ENV !== \"production\") {\n spyReportEnd();\n }\n\n return true;\n }\n\n return false;\n };\n\n _proto.has = function has(value) {\n this.atom_.reportObserved();\n return this.data_.has(this.dehanceValue_(value));\n };\n\n _proto.entries = function entries() {\n var nextIndex = 0;\n var keys = Array.from(this.keys());\n var values = Array.from(this.values());\n return makeIterable({\n next: function next() {\n var index = nextIndex;\n nextIndex += 1;\n return index < values.length ? {\n value: [keys[index], values[index]],\n done: false\n } : {\n done: true\n };\n }\n });\n };\n\n _proto.keys = function keys() {\n return this.values();\n };\n\n _proto.values = function values() {\n this.atom_.reportObserved();\n var self = this;\n var nextIndex = 0;\n var observableValues = Array.from(this.data_.values());\n return makeIterable({\n next: function next() {\n return nextIndex < observableValues.length ? {\n value: self.dehanceValue_(observableValues[nextIndex++]),\n done: false\n } : {\n done: true\n };\n }\n });\n };\n\n _proto.replace = function replace(other) {\n var _this4 = this;\n\n if (isObservableSet(other)) {\n other = new Set(other);\n }\n\n transaction(function () {\n if (Array.isArray(other)) {\n _this4.clear();\n\n other.forEach(function (value) {\n return _this4.add(value);\n });\n } else if (isES6Set(other)) {\n _this4.clear();\n\n other.forEach(function (value) {\n return _this4.add(value);\n });\n } else if (other !== null && other !== undefined) {\n die(\"Cannot initialize set from \" + other);\n }\n });\n return this;\n };\n\n _proto.observe_ = function observe_(listener, fireImmediately) {\n // ... 'fireImmediately' could also be true?\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support fireImmediately=true in combination with sets.\");\n }\n\n return registerListener(this, listener);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.toJSON = function toJSON() {\n return Array.from(this);\n };\n\n _proto.toString = function toString() {\n return \"[object ObservableSet]\";\n };\n\n _proto[_Symbol$iterator$1] = function () {\n return this.values();\n };\n\n _createClass(ObservableSet, [{\n key: \"size\",\n get: function get() {\n this.atom_.reportObserved();\n return this.data_.size;\n }\n }, {\n key: _Symbol$toStringTag$1,\n get: function get() {\n return \"Set\";\n }\n }]);\n\n return ObservableSet;\n}(); // eslint-disable-next-line\n\nvar isObservableSet = /*#__PURE__*/createInstanceofPredicate(\"ObservableSet\", ObservableSet);\n\nvar descriptorCache = /*#__PURE__*/Object.create(null);\nvar REMOVE = \"remove\";\nvar ObservableObjectAdministration = /*#__PURE__*/function () {\n function ObservableObjectAdministration(target_, values_, name_, // Used anytime annotation is not explicitely provided\n defaultAnnotation_) {\n if (values_ === void 0) {\n values_ = new Map();\n }\n\n if (defaultAnnotation_ === void 0) {\n defaultAnnotation_ = autoAnnotation;\n }\n\n this.target_ = void 0;\n this.values_ = void 0;\n this.name_ = void 0;\n this.defaultAnnotation_ = void 0;\n this.keysAtom_ = void 0;\n this.changeListeners_ = void 0;\n this.interceptors_ = void 0;\n this.proxy_ = void 0;\n this.isPlainObject_ = void 0;\n this.appliedAnnotations_ = void 0;\n this.pendingKeys_ = void 0;\n this.target_ = target_;\n this.values_ = values_;\n this.name_ = name_;\n this.defaultAnnotation_ = defaultAnnotation_;\n this.keysAtom_ = new Atom(process.env.NODE_ENV !== \"production\" ? this.name_ + \".keys\" : \"ObservableObject.keys\"); // Optimization: we use this frequently\n\n this.isPlainObject_ = isPlainObject(this.target_);\n\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(this.defaultAnnotation_)) {\n die(\"defaultAnnotation must be valid annotation\");\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n // Prepare structure for tracking which fields were already annotated\n this.appliedAnnotations_ = {};\n }\n }\n\n var _proto = ObservableObjectAdministration.prototype;\n\n _proto.getObservablePropValue_ = function getObservablePropValue_(key) {\n return this.values_.get(key).get();\n };\n\n _proto.setObservablePropValue_ = function setObservablePropValue_(key, newValue) {\n var observable = this.values_.get(key);\n\n if (observable instanceof ComputedValue) {\n observable.set(newValue);\n return true;\n } // intercept\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n type: UPDATE,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: newValue\n });\n\n if (!change) {\n return null;\n }\n\n newValue = change.newValue;\n }\n\n newValue = observable.prepareNewValue_(newValue); // notify spy & observers\n\n if (newValue !== globalState.UNCHANGED) {\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n\n var _change = notify || notifySpy ? {\n type: UPDATE,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n oldValue: observable.value_,\n name: key,\n newValue: newValue\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change);\n }\n observable.setNewValue_(newValue);\n\n if (notify) {\n notifyListeners(this, _change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n\n return true;\n };\n\n _proto.get_ = function get_(key) {\n if (globalState.trackingDerivation && !hasProp(this.target_, key)) {\n // Key doesn't exist yet, subscribe for it in case it's added later\n this.has_(key);\n }\n\n return this.target_[key];\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {any} value\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.set_ = function set_(key, value, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n // Don't use .has(key) - we care about own\n if (hasProp(this.target_, key)) {\n // Existing prop\n if (this.values_.has(key)) {\n // Observable (can be intercepted)\n return this.setObservablePropValue_(key, value);\n } else if (proxyTrap) {\n // Non-observable - proxy\n return Reflect.set(this.target_, key, value);\n } else {\n // Non-observable\n this.target_[key] = value;\n return true;\n }\n } else {\n // New prop\n return this.extend_(key, {\n value: value,\n enumerable: true,\n writable: true,\n configurable: true\n }, this.defaultAnnotation_, proxyTrap);\n }\n } // Trap for \"in\"\n ;\n\n _proto.has_ = function has_(key) {\n if (!globalState.trackingDerivation) {\n // Skip key subscription outside derivation\n return key in this.target_;\n }\n\n this.pendingKeys_ || (this.pendingKeys_ = new Map());\n var entry = this.pendingKeys_.get(key);\n\n if (!entry) {\n entry = new ObservableValue(key in this.target_, referenceEnhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + stringifyKey(key) + \"?\" : \"ObservableObject.key?\", false);\n this.pendingKeys_.set(key, entry);\n }\n\n return entry.get();\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - ignore prop\r\n */\n ;\n\n _proto.make_ = function make_(key, annotation) {\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n\n if (annotation === false) {\n return;\n }\n\n assertAnnotable(this, annotation, key);\n\n if (!(key in this.target_)) {\n var _this$target_$storedA;\n\n // Throw on missing key, except for decorators:\n // Decorator annotations are collected from whole prototype chain.\n // When called from super() some props may not exist yet.\n // However we don't have to worry about missing prop,\n // because the decorator must have been applied to something.\n if ((_this$target_$storedA = this.target_[storedAnnotationsSymbol]) != null && _this$target_$storedA[key]) {\n return; // will be annotated by subclass constructor\n } else {\n die(1, annotation.annotationType_, this.name_ + \".\" + key.toString());\n }\n }\n\n var source = this.target_;\n\n while (source && source !== objectPrototype) {\n var descriptor = getDescriptor(source, key);\n\n if (descriptor) {\n var outcome = annotation.make_(this, key, descriptor, source);\n\n if (outcome === 0\n /* Cancel */\n ) {\n return;\n }\n\n if (outcome === 1\n /* Break */\n ) {\n break;\n }\n }\n\n source = Object.getPrototypeOf(source);\n }\n\n recordAnnotationApplied(this, annotation, key);\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {Annotation|boolean} annotation true - use default annotation, false - copy as is\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.extend_ = function extend_(key, descriptor, annotation, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n if (annotation === true) {\n annotation = this.defaultAnnotation_;\n }\n\n if (annotation === false) {\n return this.defineProperty_(key, descriptor, proxyTrap);\n }\n\n assertAnnotable(this, annotation, key);\n var outcome = annotation.extend_(this, key, descriptor, proxyTrap);\n\n if (outcome) {\n recordAnnotationApplied(this, annotation, key);\n }\n\n return outcome;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.defineProperty_ = function defineProperty_(key, descriptor, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n try {\n startBatch(); // Delete\n\n var deleteOutcome = this.delete_(key);\n\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n } // ADD interceptor\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: descriptor.value\n });\n\n if (!change) {\n return null;\n }\n\n var newValue = change.newValue;\n\n if (descriptor.value !== newValue) {\n descriptor = _extends({}, descriptor, {\n value: newValue\n });\n }\n } // Define\n\n\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n } // Notify\n\n\n this.notifyPropertyAddition_(key, descriptor.value);\n } finally {\n endBatch();\n }\n\n return true;\n } // If original descriptor becomes relevant, move this to annotation directly\n ;\n\n _proto.defineObservableProperty_ = function defineObservableProperty_(key, value, enhancer, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n try {\n startBatch(); // Delete\n\n var deleteOutcome = this.delete_(key);\n\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n } // ADD interceptor\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: value\n });\n\n if (!change) {\n return null;\n }\n\n value = change.newValue;\n }\n\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: true,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n }; // Define\n\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n\n var observable = new ObservableValue(value, enhancer, process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\", false);\n this.values_.set(key, observable); // Notify (value possibly changed by ObservableValue)\n\n this.notifyPropertyAddition_(key, observable.value_);\n } finally {\n endBatch();\n }\n\n return true;\n } // If original descriptor becomes relevant, move this to annotation directly\n ;\n\n _proto.defineComputedProperty_ = function defineComputedProperty_(key, options, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n try {\n startBatch(); // Delete\n\n var deleteOutcome = this.delete_(key);\n\n if (!deleteOutcome) {\n // Failure or intercepted\n return deleteOutcome;\n } // ADD interceptor\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: ADD,\n newValue: undefined\n });\n\n if (!change) {\n return null;\n }\n }\n\n options.name || (options.name = process.env.NODE_ENV !== \"production\" ? this.name_ + \".\" + key.toString() : \"ObservableObject.key\");\n options.context = this.proxy_ || this.target_;\n var cachedDescriptor = getCachedObservablePropDescriptor(key);\n var descriptor = {\n configurable: globalState.safeDescriptors ? this.isPlainObject_ : true,\n enumerable: false,\n get: cachedDescriptor.get,\n set: cachedDescriptor.set\n }; // Define\n\n if (proxyTrap) {\n if (!Reflect.defineProperty(this.target_, key, descriptor)) {\n return false;\n }\n } else {\n defineProperty(this.target_, key, descriptor);\n }\n\n this.values_.set(key, new ComputedValue(options)); // Notify\n\n this.notifyPropertyAddition_(key, undefined);\n } finally {\n endBatch();\n }\n\n return true;\n }\n /**\r\n * @param {PropertyKey} key\r\n * @param {PropertyDescriptor} descriptor\r\n * @param {boolean} proxyTrap whether it's called from proxy trap\r\n * @returns {boolean|null} true on success, false on failure (proxyTrap + non-configurable), null when cancelled by interceptor\r\n */\n ;\n\n _proto.delete_ = function delete_(key, proxyTrap) {\n if (proxyTrap === void 0) {\n proxyTrap = false;\n }\n\n // No such prop\n if (!hasProp(this.target_, key)) {\n return true;\n } // Intercept\n\n\n if (hasInterceptors(this)) {\n var change = interceptChange(this, {\n object: this.proxy_ || this.target_,\n name: key,\n type: REMOVE\n }); // Cancelled\n\n if (!change) {\n return null;\n }\n } // Delete\n\n\n try {\n var _this$pendingKeys_, _this$pendingKeys_$ge;\n\n startBatch();\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n var observable = this.values_.get(key); // Value needed for spies/listeners\n\n var value = undefined; // Optimization: don't pull the value unless we will need it\n\n if (!observable && (notify || notifySpy)) {\n var _getDescriptor;\n\n value = (_getDescriptor = getDescriptor(this.target_, key)) == null ? void 0 : _getDescriptor.value;\n } // delete prop (do first, may fail)\n\n\n if (proxyTrap) {\n if (!Reflect.deleteProperty(this.target_, key)) {\n return false;\n }\n } else {\n delete this.target_[key];\n } // Allow re-annotating this field\n\n\n if (process.env.NODE_ENV !== \"production\") {\n delete this.appliedAnnotations_[key];\n } // Clear observable\n\n\n if (observable) {\n this.values_[\"delete\"](key); // for computed, value is undefined\n\n if (observable instanceof ObservableValue) {\n value = observable.value_;\n } // Notify: autorun(() => obj[key]), see #1796\n\n\n propagateChanged(observable);\n } // Notify \"keys/entries/values\" observers\n\n\n this.keysAtom_.reportChanged(); // Notify \"has\" observers\n // \"in\" as it may still exist in proto\n\n (_this$pendingKeys_ = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_$ge = _this$pendingKeys_.get(key)) == null ? void 0 : _this$pendingKeys_$ge.set(key in this.target_); // Notify spies/listeners\n\n if (notify || notifySpy) {\n var _change2 = {\n type: REMOVE,\n observableKind: \"object\",\n object: this.proxy_ || this.target_,\n debugObjectName: this.name_,\n oldValue: value,\n name: key\n };\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(_change2);\n }\n\n if (notify) {\n notifyListeners(this, _change2);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n } finally {\n endBatch();\n }\n\n return true;\n }\n /**\r\n * Observes this object. Triggers for the events 'add', 'update' and 'delete'.\r\n * See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/observe\r\n * for callback details\r\n */\n ;\n\n _proto.observe_ = function observe_(callback, fireImmediately) {\n if (process.env.NODE_ENV !== \"production\" && fireImmediately === true) {\n die(\"`observe` doesn't support the fire immediately property for observable objects.\");\n }\n\n return registerListener(this, callback);\n };\n\n _proto.intercept_ = function intercept_(handler) {\n return registerInterceptor(this, handler);\n };\n\n _proto.notifyPropertyAddition_ = function notifyPropertyAddition_(key, value) {\n var _this$pendingKeys_2, _this$pendingKeys_2$g;\n\n var notify = hasListeners(this);\n var notifySpy = process.env.NODE_ENV !== \"production\" && isSpyEnabled();\n\n if (notify || notifySpy) {\n var change = notify || notifySpy ? {\n type: ADD,\n observableKind: \"object\",\n debugObjectName: this.name_,\n object: this.proxy_ || this.target_,\n name: key,\n newValue: value\n } : null;\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportStart(change);\n }\n\n if (notify) {\n notifyListeners(this, change);\n }\n\n if (process.env.NODE_ENV !== \"production\" && notifySpy) {\n spyReportEnd();\n }\n }\n\n (_this$pendingKeys_2 = this.pendingKeys_) == null ? void 0 : (_this$pendingKeys_2$g = _this$pendingKeys_2.get(key)) == null ? void 0 : _this$pendingKeys_2$g.set(true); // Notify \"keys/entries/values\" observers\n\n this.keysAtom_.reportChanged();\n };\n\n _proto.ownKeys_ = function ownKeys_() {\n this.keysAtom_.reportObserved();\n return ownKeys(this.target_);\n };\n\n _proto.keys_ = function keys_() {\n // Returns enumerable && own, but unfortunately keysAtom will report on ANY key change.\n // There is no way to distinguish between Object.keys(object) and Reflect.ownKeys(object) - both are handled by ownKeys trap.\n // We can either over-report in Object.keys(object) or under-report in Reflect.ownKeys(object)\n // We choose to over-report in Object.keys(object), because:\n // - typically it's used with simple data objects\n // - when symbolic/non-enumerable keys are relevant Reflect.ownKeys works as expected\n this.keysAtom_.reportObserved();\n return Object.keys(this.target_);\n };\n\n return ObservableObjectAdministration;\n}();\nfunction asObservableObject(target, options) {\n var _options$name;\n\n if (process.env.NODE_ENV !== \"production\" && options && isObservableObject(target)) {\n die(\"Options can't be provided for already observable objects.\");\n }\n\n if (hasProp(target, $mobx)) {\n if (process.env.NODE_ENV !== \"production\" && !(getAdministration(target) instanceof ObservableObjectAdministration)) {\n die(\"Cannot convert '\" + getDebugName(target) + \"' into observable object:\" + \"\\nThe target is already observable of different type.\" + \"\\nExtending builtins is not supported.\");\n }\n\n return target;\n }\n\n if (process.env.NODE_ENV !== \"production\" && !Object.isExtensible(target)) {\n die(\"Cannot make the designated object observable; it is not extensible\");\n }\n\n var name = (_options$name = options == null ? void 0 : options.name) != null ? _options$name : process.env.NODE_ENV !== \"production\" ? (isPlainObject(target) ? \"ObservableObject\" : target.constructor.name) + \"@\" + getNextId() : \"ObservableObject\";\n var adm = new ObservableObjectAdministration(target, new Map(), String(name), getAnnotationFromOptions(options));\n addHiddenProp(target, $mobx, adm);\n return target;\n}\nvar isObservableObjectAdministration = /*#__PURE__*/createInstanceofPredicate(\"ObservableObjectAdministration\", ObservableObjectAdministration);\n\nfunction getCachedObservablePropDescriptor(key) {\n return descriptorCache[key] || (descriptorCache[key] = {\n get: function get() {\n return this[$mobx].getObservablePropValue_(key);\n },\n set: function set(value) {\n return this[$mobx].setObservablePropValue_(key, value);\n }\n });\n}\n\nfunction isObservableObject(thing) {\n if (isObject(thing)) {\n return isObservableObjectAdministration(thing[$mobx]);\n }\n\n return false;\n}\nfunction recordAnnotationApplied(adm, annotation, key) {\n var _adm$target_$storedAn;\n\n if (process.env.NODE_ENV !== \"production\") {\n adm.appliedAnnotations_[key] = annotation;\n } // Remove applied decorator annotation so we don't try to apply it again in subclass constructor\n\n\n (_adm$target_$storedAn = adm.target_[storedAnnotationsSymbol]) == null ? true : delete _adm$target_$storedAn[key];\n}\n\nfunction assertAnnotable(adm, annotation, key) {\n // Valid annotation\n if (process.env.NODE_ENV !== \"production\" && !isAnnotation(annotation)) {\n die(\"Cannot annotate '\" + adm.name_ + \".\" + key.toString() + \"': Invalid annotation.\");\n }\n /*\r\n // Configurable, not sealed, not frozen\r\n // Possibly not needed, just a little better error then the one thrown by engine.\r\n // Cases where this would be useful the most (subclass field initializer) are not interceptable by this.\r\n if (__DEV__) {\r\n const configurable = getDescriptor(adm.target_, key)?.configurable\r\n const frozen = Object.isFrozen(adm.target_)\r\n const sealed = Object.isSealed(adm.target_)\r\n if (!configurable || frozen || sealed) {\r\n const fieldName = `${adm.name_}.${key.toString()}`\r\n const requestedAnnotationType = annotation.annotationType_\r\n let error = `Cannot apply '${requestedAnnotationType}' to '${fieldName}':`\r\n if (frozen) {\r\n error += `\\nObject is frozen.`\r\n }\r\n if (sealed) {\r\n error += `\\nObject is sealed.`\r\n }\r\n if (!configurable) {\r\n error += `\\nproperty is not configurable.`\r\n // Mention only if caused by us to avoid confusion\r\n if (hasProp(adm.appliedAnnotations!, key)) {\r\n error += `\\nTo prevent accidental re-definition of a field by a subclass, `\r\n error += `all annotated fields of non-plain objects (classes) are not configurable.`\r\n }\r\n }\r\n die(error)\r\n }\r\n }\r\n */\n // Not annotated\n\n\n if (process.env.NODE_ENV !== \"production\" && !isOverride(annotation) && hasProp(adm.appliedAnnotations_, key)) {\n var fieldName = adm.name_ + \".\" + key.toString();\n var currentAnnotationType = adm.appliedAnnotations_[key].annotationType_;\n var requestedAnnotationType = annotation.annotationType_;\n die(\"Cannot apply '\" + requestedAnnotationType + \"' to '\" + fieldName + \"':\" + (\"\\nThe field is already annotated with '\" + currentAnnotationType + \"'.\") + \"\\nRe-annotating fields is not allowed.\" + \"\\nUse 'override' annotation for methods overridden by subclass.\");\n }\n}\n\nvar ENTRY_0 = /*#__PURE__*/createArrayEntryDescriptor(0);\n/**\r\n * This array buffer contains two lists of properties, so that all arrays\r\n * can recycle their property definitions, which significantly improves performance of creating\r\n * properties on the fly.\r\n */\n\n\nvar OBSERVABLE_ARRAY_BUFFER_SIZE = 0; // Typescript workaround to make sure ObservableArray extends Array\n\nvar StubArray = function StubArray() {};\n\nfunction inherit(ctor, proto) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(ctor.prototype, proto);\n } else if (ctor.prototype.__proto__ !== undefined) {\n ctor.prototype.__proto__ = proto;\n } else {\n ctor.prototype = proto;\n }\n}\n\ninherit(StubArray, Array.prototype); // Weex proto freeze protection was here,\n// but it is unclear why the hack is need as MobX never changed the prototype\n// anyway, so removed it in V6\n\nvar LegacyObservableArray = /*#__PURE__*/function (_StubArray, _Symbol$toStringTag, _Symbol$iterator) {\n _inheritsLoose(LegacyObservableArray, _StubArray);\n\n function LegacyObservableArray(initialValues, enhancer, name, owned) {\n var _this;\n\n if (name === void 0) {\n name = process.env.NODE_ENV !== \"production\" ? \"ObservableArray@\" + getNextId() : \"ObservableArray\";\n }\n\n if (owned === void 0) {\n owned = false;\n }\n\n _this = _StubArray.call(this) || this;\n var adm = new ObservableArrayAdministration(name, enhancer, owned, true);\n adm.proxy_ = _assertThisInitialized(_this);\n addHiddenFinalProp(_assertThisInitialized(_this), $mobx, adm);\n\n if (initialValues && initialValues.length) {\n var prev = allowStateChangesStart(true); // @ts-ignore\n\n _this.spliceWithArray(0, 0, initialValues);\n\n allowStateChangesEnd(prev);\n }\n\n {\n // Seems that Safari won't use numeric prototype setter untill any * numeric property is\n // defined on the instance. After that it works fine, even if this property is deleted.\n Object.defineProperty(_assertThisInitialized(_this), \"0\", ENTRY_0);\n }\n\n return _this;\n }\n\n var _proto = LegacyObservableArray.prototype;\n\n _proto.concat = function concat() {\n this[$mobx].atom_.reportObserved();\n\n for (var _len = arguments.length, arrays = new Array(_len), _key = 0; _key < _len; _key++) {\n arrays[_key] = arguments[_key];\n }\n\n return Array.prototype.concat.apply(this.slice(), //@ts-ignore\n arrays.map(function (a) {\n return isObservableArray(a) ? a.slice() : a;\n }));\n };\n\n _proto[_Symbol$iterator] = function () {\n var self = this;\n var nextIndex = 0;\n return makeIterable({\n next: function next() {\n return nextIndex < self.length ? {\n value: self[nextIndex++],\n done: false\n } : {\n done: true,\n value: undefined\n };\n }\n });\n };\n\n _createClass(LegacyObservableArray, [{\n key: \"length\",\n get: function get() {\n return this[$mobx].getArrayLength_();\n },\n set: function set(newLength) {\n this[$mobx].setArrayLength_(newLength);\n }\n }, {\n key: _Symbol$toStringTag,\n get: function get() {\n return \"Array\";\n }\n }]);\n\n return LegacyObservableArray;\n}(StubArray, Symbol.toStringTag, Symbol.iterator);\n\nObject.entries(arrayExtensions).forEach(function (_ref) {\n var prop = _ref[0],\n fn = _ref[1];\n\n if (prop !== \"concat\") {\n addHiddenProp(LegacyObservableArray.prototype, prop, fn);\n }\n});\n\nfunction createArrayEntryDescriptor(index) {\n return {\n enumerable: false,\n configurable: true,\n get: function get() {\n return this[$mobx].get_(index);\n },\n set: function set(value) {\n this[$mobx].set_(index, value);\n }\n };\n}\n\nfunction createArrayBufferItem(index) {\n defineProperty(LegacyObservableArray.prototype, \"\" + index, createArrayEntryDescriptor(index));\n}\n\nfunction reserveArrayBuffer(max) {\n if (max > OBSERVABLE_ARRAY_BUFFER_SIZE) {\n for (var index = OBSERVABLE_ARRAY_BUFFER_SIZE; index < max + 100; index++) {\n createArrayBufferItem(index);\n }\n\n OBSERVABLE_ARRAY_BUFFER_SIZE = max;\n }\n}\nreserveArrayBuffer(1000);\nfunction createLegacyArray(initialValues, enhancer, name) {\n return new LegacyObservableArray(initialValues, enhancer, name);\n}\n\nfunction getAtom(thing, property) {\n if (typeof thing === \"object\" && thing !== null) {\n if (isObservableArray(thing)) {\n if (property !== undefined) {\n die(23);\n }\n\n return thing[$mobx].atom_;\n }\n\n if (isObservableSet(thing)) {\n return thing[$mobx];\n }\n\n if (isObservableMap(thing)) {\n if (property === undefined) {\n return thing.keysAtom_;\n }\n\n var observable = thing.data_.get(property) || thing.hasMap_.get(property);\n\n if (!observable) {\n die(25, property, getDebugName(thing));\n }\n\n return observable;\n }\n\n\n if (isObservableObject(thing)) {\n if (!property) {\n return die(26);\n }\n\n var _observable = thing[$mobx].values_.get(property);\n\n if (!_observable) {\n die(27, property, getDebugName(thing));\n }\n\n return _observable;\n }\n\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n } else if (isFunction(thing)) {\n if (isReaction(thing[$mobx])) {\n // disposer function\n return thing[$mobx];\n }\n }\n\n die(28);\n}\nfunction getAdministration(thing, property) {\n if (!thing) {\n die(29);\n }\n\n if (property !== undefined) {\n return getAdministration(getAtom(thing, property));\n }\n\n if (isAtom(thing) || isComputedValue(thing) || isReaction(thing)) {\n return thing;\n }\n\n if (isObservableMap(thing) || isObservableSet(thing)) {\n return thing;\n }\n\n if (thing[$mobx]) {\n return thing[$mobx];\n }\n\n die(24, thing);\n}\nfunction getDebugName(thing, property) {\n var named;\n\n if (property !== undefined) {\n named = getAtom(thing, property);\n } else if (isAction(thing)) {\n return thing.name;\n } else if (isObservableObject(thing) || isObservableMap(thing) || isObservableSet(thing)) {\n named = getAdministration(thing);\n } else {\n // valid for arrays as well\n named = getAtom(thing);\n }\n\n return named.name_;\n}\n\nvar toString = objectPrototype.toString;\nfunction deepEqual(a, b, depth) {\n if (depth === void 0) {\n depth = -1;\n }\n\n return eq(a, b, depth);\n} // Copied from https://github.com/jashkenas/underscore/blob/5c237a7c682fb68fd5378203f0bf22dce1624854/underscore.js#L1186-L1289\n// Internal recursive comparison function for `isEqual`.\n\nfunction eq(a, b, depth, aStack, bStack) {\n // Identical objects are equal. `0 === -0`, but they aren't identical.\n // See the [Harmony `egal` proposal](http://wiki.ecmascript.org/doku.php?id=harmony:egal).\n if (a === b) {\n return a !== 0 || 1 / a === 1 / b;\n } // `null` or `undefined` only equal to itself (strict comparison).\n\n\n if (a == null || b == null) {\n return false;\n } // `NaN`s are equivalent, but non-reflexive.\n\n\n if (a !== a) {\n return b !== b;\n } // Exhaust primitive checks\n\n\n var type = typeof a;\n\n if (type !== \"function\" && type !== \"object\" && typeof b != \"object\") {\n return false;\n } // Compare `[[Class]]` names.\n\n\n var className = toString.call(a);\n\n if (className !== toString.call(b)) {\n return false;\n }\n\n switch (className) {\n // Strings, numbers, regular expressions, dates, and booleans are compared by value.\n case \"[object RegExp]\": // RegExps are coerced to strings for comparison (Note: '' + /a/i === '/a/i')\n\n case \"[object String]\":\n // Primitives and their corresponding object wrappers are equivalent; thus, `\"5\"` is\n // equivalent to `new String(\"5\")`.\n return \"\" + a === \"\" + b;\n\n case \"[object Number]\":\n // `NaN`s are equivalent, but non-reflexive.\n // Object(NaN) is equivalent to NaN.\n if (+a !== +a) {\n return +b !== +b;\n } // An `egal` comparison is performed for other numeric values.\n\n\n return +a === 0 ? 1 / +a === 1 / b : +a === +b;\n\n case \"[object Date]\":\n case \"[object Boolean]\":\n // Coerce dates and booleans to numeric primitive values. Dates are compared by their\n // millisecond representations. Note that invalid dates with millisecond representations\n // of `NaN` are not equivalent.\n return +a === +b;\n\n case \"[object Symbol]\":\n return typeof Symbol !== \"undefined\" && Symbol.valueOf.call(a) === Symbol.valueOf.call(b);\n\n case \"[object Map]\":\n case \"[object Set]\":\n // Maps and Sets are unwrapped to arrays of entry-pairs, adding an incidental level.\n // Hide this extra level by increasing the depth.\n if (depth >= 0) {\n depth++;\n }\n\n break;\n } // Unwrap any wrapped objects.\n\n\n a = unwrap(a);\n b = unwrap(b);\n var areArrays = className === \"[object Array]\";\n\n if (!areArrays) {\n if (typeof a != \"object\" || typeof b != \"object\") {\n return false;\n } // Objects with different constructors are not equivalent, but `Object`s or `Array`s\n // from different frames are.\n\n\n var aCtor = a.constructor,\n bCtor = b.constructor;\n\n if (aCtor !== bCtor && !(isFunction(aCtor) && aCtor instanceof aCtor && isFunction(bCtor) && bCtor instanceof bCtor) && \"constructor\" in a && \"constructor\" in b) {\n return false;\n }\n }\n\n if (depth === 0) {\n return false;\n } else if (depth < 0) {\n depth = -1;\n } // Assume equality for cyclic structures. The algorithm for detecting cyclic\n // structures is adapted from ES 5.1 section 15.12.3, abstract operation `JO`.\n // Initializing stack of traversed objects.\n // It's done here since we only need them for objects and arrays comparison.\n\n\n aStack = aStack || [];\n bStack = bStack || [];\n var length = aStack.length;\n\n while (length--) {\n // Linear search. Performance is inversely proportional to the number of\n // unique nested structures.\n if (aStack[length] === a) {\n return bStack[length] === b;\n }\n } // Add the first object to the stack of traversed objects.\n\n\n aStack.push(a);\n bStack.push(b); // Recursively compare objects and arrays.\n\n if (areArrays) {\n // Compare array lengths to determine if a deep comparison is necessary.\n length = a.length;\n\n if (length !== b.length) {\n return false;\n } // Deep compare the contents, ignoring non-numeric properties.\n\n\n while (length--) {\n if (!eq(a[length], b[length], depth - 1, aStack, bStack)) {\n return false;\n }\n }\n } else {\n // Deep compare objects.\n var keys = Object.keys(a);\n var key;\n length = keys.length; // Ensure that both objects contain the same number of properties before comparing deep equality.\n\n if (Object.keys(b).length !== length) {\n return false;\n }\n\n while (length--) {\n // Deep compare each member\n key = keys[length];\n\n if (!(hasProp(b, key) && eq(a[key], b[key], depth - 1, aStack, bStack))) {\n return false;\n }\n }\n } // Remove the first object from the stack of traversed objects.\n\n\n aStack.pop();\n bStack.pop();\n return true;\n}\n\nfunction unwrap(a) {\n if (isObservableArray(a)) {\n return a.slice();\n }\n\n if (isES6Map(a) || isObservableMap(a)) {\n return Array.from(a.entries());\n }\n\n if (isES6Set(a) || isObservableSet(a)) {\n return Array.from(a.entries());\n }\n\n return a;\n}\n\nfunction makeIterable(iterator) {\n iterator[Symbol.iterator] = getSelf;\n return iterator;\n}\n\nfunction getSelf() {\n return this;\n}\n\nfunction isAnnotation(thing) {\n return (// Can be function\n thing instanceof Object && typeof thing.annotationType_ === \"string\" && isFunction(thing.make_) && isFunction(thing.extend_)\n );\n}\n\n/**\r\n * (c) Michel Weststrate 2015 - 2020\r\n * MIT Licensed\r\n *\r\n * Welcome to the mobx sources! To get a global overview of how MobX internally works,\r\n * this is a good place to start:\r\n * https://medium.com/@mweststrate/becoming-fully-reactive-an-in-depth-explanation-of-mobservable-55995262a254#.xvbh6qd74\r\n *\r\n * Source folders:\r\n * ===============\r\n *\r\n * - api/ Most of the public static methods exposed by the module can be found here.\r\n * - core/ Implementation of the MobX algorithm; atoms, derivations, reactions, dependency trees, optimizations. Cool stuff can be found here.\r\n * - types/ All the magic that is need to have observable objects, arrays and values is in this folder. Including the modifiers like `asFlat`.\r\n * - utils/ Utility stuff.\r\n *\r\n */\n[\"Symbol\", \"Map\", \"Set\"].forEach(function (m) {\n var g = getGlobal();\n\n if (typeof g[m] === \"undefined\") {\n die(\"MobX requires global '\" + m + \"' to be available or polyfilled\");\n }\n});\n\nif (typeof __MOBX_DEVTOOLS_GLOBAL_HOOK__ === \"object\") {\n // See: https://github.com/andykog/mobx-devtools/\n __MOBX_DEVTOOLS_GLOBAL_HOOK__.injectMobx({\n spy: spy,\n extras: {\n getDebugName: getDebugName\n },\n $mobx: $mobx\n });\n}\n\nexport { $mobx, FlowCancellationError, ObservableMap, ObservableSet, Reaction, allowStateChanges as _allowStateChanges, runInAction as _allowStateChangesInsideComputed, allowStateReadsEnd as _allowStateReadsEnd, allowStateReadsStart as _allowStateReadsStart, autoAction as _autoAction, _endAction, getAdministration as _getAdministration, getGlobalState as _getGlobalState, interceptReads as _interceptReads, isComputingDerivation as _isComputingDerivation, resetGlobalState as _resetGlobalState, _startAction, action, autorun, comparer, computed, configure, createAtom, apiDefineProperty as defineProperty, entries, extendObservable, flow, flowResult, get, getAtom, getDebugName, getDependencyTree, getObserverTree, has, intercept, isAction, isObservableValue as isBoxedObservable, isComputed, isComputedProp, isFlow, isFlowCancellationError, isObservable, isObservableArray, isObservableMap, isObservableObject, isObservableProp, isObservableSet, keys, makeAutoObservable, makeObservable, observable, observe, onBecomeObserved, onBecomeUnobserved, onReactionError, override, apiOwnKeys as ownKeys, reaction, remove, runInAction, set, spy, toJS, trace, transaction, untracked, values, when };\n//# sourceMappingURL=mobx.esm.js.map\n","var ListCache = require('./_ListCache');\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n this.size = 0;\n}\n\nmodule.exports = stackClear;\n","/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n var data = this.__data__,\n result = data['delete'](key);\n\n this.size = data.size;\n return result;\n}\n\nmodule.exports = stackDelete;\n","/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\nmodule.exports = stackGet;\n","/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\nmodule.exports = stackHas;\n","var ListCache = require('./_ListCache'),\n Map = require('./_Map'),\n MapCache = require('./_MapCache');\n\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var data = this.__data__;\n if (data instanceof ListCache) {\n var pairs = data.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n this.size = ++data.size;\n return this;\n }\n data = this.__data__ = new MapCache(pairs);\n }\n data.set(key, value);\n this.size = data.size;\n return this;\n}\n\nmodule.exports = stackSet;\n","var ListCache = require('./_ListCache'),\n stackClear = require('./_stackClear'),\n stackDelete = require('./_stackDelete'),\n stackGet = require('./_stackGet'),\n stackHas = require('./_stackHas'),\n stackSet = require('./_stackSet');\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n var data = this.__data__ = new ListCache(entries);\n this.size = data.size;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\nmodule.exports = Stack;\n","/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array == null ? 0 : array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","var getNative = require('./_getNative');\n\nvar defineProperty = (function() {\n try {\n var func = getNative(Object, 'defineProperty');\n func({}, '', {});\n return func;\n } catch (e) {}\n}());\n\nmodule.exports = defineProperty;\n","var defineProperty = require('./_defineProperty');\n\n/**\n * The base implementation of `assignValue` and `assignMergeValue` without\n * value checks.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction baseAssignValue(object, key, value) {\n if (key == '__proto__' && defineProperty) {\n defineProperty(object, key, {\n 'configurable': true,\n 'enumerable': true,\n 'value': value,\n 'writable': true\n });\n } else {\n object[key] = value;\n }\n}\n\nmodule.exports = baseAssignValue;\n","var baseAssignValue = require('./_baseAssignValue'),\n eq = require('./eq');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n baseAssignValue(object, key, value);\n }\n}\n\nmodule.exports = assignValue;\n","var assignValue = require('./_assignValue'),\n baseAssignValue = require('./_baseAssignValue');\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n var isNew = !object;\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n if (newValue === undefined) {\n newValue = source[key];\n }\n if (isNew) {\n baseAssignValue(object, key, newValue);\n } else {\n assignValue(object, key, newValue);\n }\n }\n return object;\n}\n\nmodule.exports = copyObject;\n","/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\nmodule.exports = baseTimes;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/**\n * The base implementation of `_.isArguments`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n */\nfunction baseIsArguments(value) {\n return isObjectLike(value) && baseGetTag(value) == argsTag;\n}\n\nmodule.exports = baseIsArguments;\n","var baseIsArguments = require('./_baseIsArguments'),\n isObjectLike = require('./isObjectLike');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nvar isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) {\n return isObjectLike(value) && hasOwnProperty.call(value, 'callee') &&\n !propertyIsEnumerable.call(value, 'callee');\n};\n\nmodule.exports = isArguments;\n","/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = stubFalse;\n","var root = require('./_root'),\n stubFalse = require('./stubFalse');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined;\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\nmodule.exports = isBuffer;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n var type = typeof value;\n length = length == null ? MAX_SAFE_INTEGER : length;\n\n return !!length &&\n (type == 'number' ||\n (type != 'symbol' && reIsUint.test(value))) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\nmodule.exports = isIndex;\n","/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","var baseGetTag = require('./_baseGetTag'),\n isLength = require('./isLength'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dataViewTag] = typedArrayTags[dateTag] =\ntypedArrayTags[errorTag] = typedArrayTags[funcTag] =\ntypedArrayTags[mapTag] = typedArrayTags[numberTag] =\ntypedArrayTags[objectTag] = typedArrayTags[regexpTag] =\ntypedArrayTags[setTag] = typedArrayTags[stringTag] =\ntypedArrayTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.isTypedArray` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n */\nfunction baseIsTypedArray(value) {\n return isObjectLike(value) &&\n isLength(value.length) && !!typedArrayTags[baseGetTag(value)];\n}\n\nmodule.exports = baseIsTypedArray;\n","/**\n * The base implementation of `_.unary` without support for storing metadata.\n *\n * @private\n * @param {Function} func The function to cap arguments for.\n * @returns {Function} Returns the new capped function.\n */\nfunction baseUnary(func) {\n return function(value) {\n return func(value);\n };\n}\n\nmodule.exports = baseUnary;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Detect free variable `process` from Node.js. */\nvar freeProcess = moduleExports && freeGlobal.process;\n\n/** Used to access faster Node.js helpers. */\nvar nodeUtil = (function() {\n try {\n // Use `util.types` for Node.js 10+.\n var types = freeModule && freeModule.require && freeModule.require('util').types;\n\n if (types) {\n return types;\n }\n\n // Legacy `process.binding('util')` for Node.js < 10.\n return freeProcess && freeProcess.binding && freeProcess.binding('util');\n } catch (e) {}\n}());\n\nmodule.exports = nodeUtil;\n","var baseIsTypedArray = require('./_baseIsTypedArray'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a typed array, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nvar isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray;\n\nmodule.exports = isTypedArray;\n","var baseTimes = require('./_baseTimes'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isIndex = require('./_isIndex'),\n isTypedArray = require('./isTypedArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n var isArr = isArray(value),\n isArg = !isArr && isArguments(value),\n isBuff = !isArr && !isArg && isBuffer(value),\n isType = !isArr && !isArg && !isBuff && isTypedArray(value),\n skipIndexes = isArr || isArg || isBuff || isType,\n result = skipIndexes ? baseTimes(value.length, String) : [],\n length = result.length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (\n // Safari 9 has enumerable `arguments.length` in strict mode.\n key == 'length' ||\n // Node.js 0.10 has enumerable non-index properties on buffers.\n (isBuff && (key == 'offset' || key == 'parent')) ||\n // PhantomJS 2 has enumerable non-index properties on typed arrays.\n (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) ||\n // Skip index properties.\n isIndex(key, length)\n ))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = arrayLikeKeys;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\nmodule.exports = isPrototype;\n","/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\nmodule.exports = overArg;\n","var overArg = require('./_overArg');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = overArg(Object.keys, Object);\n\nmodule.exports = nativeKeys;\n","var isPrototype = require('./_isPrototype'),\n nativeKeys = require('./_nativeKeys');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeys;\n","var isFunction = require('./isFunction'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\nmodule.exports = isArrayLike;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeys = require('./_baseKeys'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\nmodule.exports = keys;\n","var copyObject = require('./_copyObject'),\n keys = require('./keys');\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nmodule.exports = baseAssign;\n","/**\n * This function is like\n * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * except that it includes inherited enumerable properties.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction nativeKeysIn(object) {\n var result = [];\n if (object != null) {\n for (var key in Object(object)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = nativeKeysIn;\n","var isObject = require('./isObject'),\n isPrototype = require('./_isPrototype'),\n nativeKeysIn = require('./_nativeKeysIn');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeysIn(object) {\n if (!isObject(object)) {\n return nativeKeysIn(object);\n }\n var isProto = isPrototype(object),\n result = [];\n\n for (var key in object) {\n if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = baseKeysIn;\n","var arrayLikeKeys = require('./_arrayLikeKeys'),\n baseKeysIn = require('./_baseKeysIn'),\n isArrayLike = require('./isArrayLike');\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object);\n}\n\nmodule.exports = keysIn;\n","var copyObject = require('./_copyObject'),\n keysIn = require('./keysIn');\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nmodule.exports = baseAssignIn;\n","var root = require('./_root');\n\n/** Detect free variable `exports`. */\nvar freeExports = typeof exports == 'object' && exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n allocUnsafe = Buffer ? Buffer.allocUnsafe : undefined;\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var length = buffer.length,\n result = allocUnsafe ? allocUnsafe(length) : new buffer.constructor(length);\n\n buffer.copy(result);\n return result;\n}\n\nmodule.exports = cloneBuffer;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = copyArray;\n","/**\n * A specialized version of `_.filter` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} predicate The function invoked per iteration.\n * @returns {Array} Returns the new filtered array.\n */\nfunction arrayFilter(array, predicate) {\n var index = -1,\n length = array == null ? 0 : array.length,\n resIndex = 0,\n result = [];\n\n while (++index < length) {\n var value = array[index];\n if (predicate(value, index, array)) {\n result[resIndex++] = value;\n }\n }\n return result;\n}\n\nmodule.exports = arrayFilter;\n","/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\nmodule.exports = stubArray;\n","var arrayFilter = require('./_arrayFilter'),\n stubArray = require('./stubArray');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Built-in value references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = !nativeGetSymbols ? stubArray : function(object) {\n if (object == null) {\n return [];\n }\n object = Object(object);\n return arrayFilter(nativeGetSymbols(object), function(symbol) {\n return propertyIsEnumerable.call(object, symbol);\n });\n};\n\nmodule.exports = getSymbols;\n","var copyObject = require('./_copyObject'),\n getSymbols = require('./_getSymbols');\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nmodule.exports = copySymbols;\n","/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\nmodule.exports = arrayPush;\n","var overArg = require('./_overArg');\n\n/** Built-in value references. */\nvar getPrototype = overArg(Object.getPrototypeOf, Object);\n\nmodule.exports = getPrototype;\n","var arrayPush = require('./_arrayPush'),\n getPrototype = require('./_getPrototype'),\n getSymbols = require('./_getSymbols'),\n stubArray = require('./stubArray');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nmodule.exports = getSymbolsIn;\n","var copyObject = require('./_copyObject'),\n getSymbolsIn = require('./_getSymbolsIn');\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nmodule.exports = copySymbolsIn;\n","var arrayPush = require('./_arrayPush'),\n isArray = require('./isArray');\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\nmodule.exports = baseGetAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbols = require('./_getSymbols'),\n keys = require('./keys');\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\nmodule.exports = getAllKeys;\n","var baseGetAllKeys = require('./_baseGetAllKeys'),\n getSymbolsIn = require('./_getSymbolsIn'),\n keysIn = require('./keysIn');\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nmodule.exports = getAllKeysIn;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView');\n\nmodule.exports = DataView;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Promise = getNative(root, 'Promise');\n\nmodule.exports = Promise;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar Set = getNative(root, 'Set');\n\nmodule.exports = Set;\n","var getNative = require('./_getNative'),\n root = require('./_root');\n\n/* Built-in method references that are verified to be native. */\nvar WeakMap = getNative(root, 'WeakMap');\n\nmodule.exports = WeakMap;\n","var DataView = require('./_DataView'),\n Map = require('./_Map'),\n Promise = require('./_Promise'),\n Set = require('./_Set'),\n WeakMap = require('./_WeakMap'),\n baseGetTag = require('./_baseGetTag'),\n toSource = require('./_toSource');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n setTag = '[object Set]',\n weakMapTag = '[object WeakMap]';\n\nvar dataViewTag = '[object DataView]';\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = baseGetTag(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : '';\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\nmodule.exports = getTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nmodule.exports = initCloneArray;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Uint8Array = root.Uint8Array;\n\nmodule.exports = Uint8Array;\n","var Uint8Array = require('./_Uint8Array');\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\nmodule.exports = cloneArrayBuffer;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nmodule.exports = cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nmodule.exports = cloneRegExp;\n","var Symbol = require('./_Symbol');\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nmodule.exports = cloneSymbol;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer');\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\nmodule.exports = cloneTypedArray;\n","var cloneArrayBuffer = require('./_cloneArrayBuffer'),\n cloneDataView = require('./_cloneDataView'),\n cloneRegExp = require('./_cloneRegExp'),\n cloneSymbol = require('./_cloneSymbol'),\n cloneTypedArray = require('./_cloneTypedArray');\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nmodule.exports = initCloneByTag;\n","var isObject = require('./isObject');\n\n/** Built-in value references. */\nvar objectCreate = Object.create;\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} proto The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nvar baseCreate = (function() {\n function object() {}\n return function(proto) {\n if (!isObject(proto)) {\n return {};\n }\n if (objectCreate) {\n return objectCreate(proto);\n }\n object.prototype = proto;\n var result = new object;\n object.prototype = undefined;\n return result;\n };\n}());\n\nmodule.exports = baseCreate;\n","var baseCreate = require('./_baseCreate'),\n getPrototype = require('./_getPrototype'),\n isPrototype = require('./_isPrototype');\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\nmodule.exports = initCloneObject;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nmodule.exports = baseIsMap;\n","var baseIsMap = require('./_baseIsMap'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nmodule.exports = isMap;\n","var getTag = require('./_getTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nmodule.exports = baseIsSet;\n","var baseIsSet = require('./_baseIsSet'),\n baseUnary = require('./_baseUnary'),\n nodeUtil = require('./_nodeUtil');\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nmodule.exports = isSet;\n","var Stack = require('./_Stack'),\n arrayEach = require('./_arrayEach'),\n assignValue = require('./_assignValue'),\n baseAssign = require('./_baseAssign'),\n baseAssignIn = require('./_baseAssignIn'),\n cloneBuffer = require('./_cloneBuffer'),\n copyArray = require('./_copyArray'),\n copySymbols = require('./_copySymbols'),\n copySymbolsIn = require('./_copySymbolsIn'),\n getAllKeys = require('./_getAllKeys'),\n getAllKeysIn = require('./_getAllKeysIn'),\n getTag = require('./_getTag'),\n initCloneArray = require('./_initCloneArray'),\n initCloneByTag = require('./_initCloneByTag'),\n initCloneObject = require('./_initCloneObject'),\n isArray = require('./isArray'),\n isBuffer = require('./isBuffer'),\n isMap = require('./isMap'),\n isObject = require('./isObject'),\n isSet = require('./isSet'),\n keys = require('./keys'),\n keysIn = require('./keysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nmodule.exports = baseClone;\n","/**\n * Gets the last element of `array`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to query.\n * @returns {*} Returns the last element of `array`.\n * @example\n *\n * _.last([1, 2, 3]);\n * // => 3\n */\nfunction last(array) {\n var length = array == null ? 0 : array.length;\n return length ? array[length - 1] : undefined;\n}\n\nmodule.exports = last;\n","var baseGet = require('./_baseGet'),\n baseSlice = require('./_baseSlice');\n\n/**\n * Gets the parent value at `path` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Array} path The path to get the parent value of.\n * @returns {*} Returns the parent value.\n */\nfunction parent(object, path) {\n return path.length < 2 ? object : baseGet(object, baseSlice(path, 0, -1));\n}\n\nmodule.exports = parent;\n","var castPath = require('./_castPath'),\n last = require('./last'),\n parent = require('./_parent'),\n toKey = require('./_toKey');\n\n/**\n * The base implementation of `_.unset`.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {Array|string} path The property path to unset.\n * @returns {boolean} Returns `true` if the property is deleted, else `false`.\n */\nfunction baseUnset(object, path) {\n path = castPath(path, object);\n object = parent(object, path);\n return object == null || delete object[toKey(last(path))];\n}\n\nmodule.exports = baseUnset;\n","var baseGetTag = require('./_baseGetTag'),\n getPrototype = require('./_getPrototype'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for built-in method references. */\nvar funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to infer the `Object` constructor. */\nvar objectCtorString = funcToString.call(Object);\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * @static\n * @memberOf _\n * @since 0.8.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n if (!isObjectLike(value) || baseGetTag(value) != objectTag) {\n return false;\n }\n var proto = getPrototype(value);\n if (proto === null) {\n return true;\n }\n var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor;\n return typeof Ctor == 'function' && Ctor instanceof Ctor &&\n funcToString.call(Ctor) == objectCtorString;\n}\n\nmodule.exports = isPlainObject;\n","var isPlainObject = require('./isPlainObject');\n\n/**\n * Used by `_.omit` to customize its `_.cloneDeep` use to only clone plain\n * objects.\n *\n * @private\n * @param {*} value The value to inspect.\n * @param {string} key The key of the property to inspect.\n * @returns {*} Returns the uncloned value or `undefined` to defer cloning to `_.cloneDeep`.\n */\nfunction customOmitClone(value) {\n return isPlainObject(value) ? undefined : value;\n}\n\nmodule.exports = customOmitClone;\n","var Symbol = require('./_Symbol'),\n isArguments = require('./isArguments'),\n isArray = require('./isArray');\n\n/** Built-in value references. */\nvar spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined;\n\n/**\n * Checks if `value` is a flattenable `arguments` object or array.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is flattenable, else `false`.\n */\nfunction isFlattenable(value) {\n return isArray(value) || isArguments(value) ||\n !!(spreadableSymbol && value && value[spreadableSymbol]);\n}\n\nmodule.exports = isFlattenable;\n","var arrayPush = require('./_arrayPush'),\n isFlattenable = require('./_isFlattenable');\n\n/**\n * The base implementation of `_.flatten` with support for restricting flattening.\n *\n * @private\n * @param {Array} array The array to flatten.\n * @param {number} depth The maximum recursion depth.\n * @param {boolean} [predicate=isFlattenable] The function invoked per iteration.\n * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks.\n * @param {Array} [result=[]] The initial result value.\n * @returns {Array} Returns the new flattened array.\n */\nfunction baseFlatten(array, depth, predicate, isStrict, result) {\n var index = -1,\n length = array.length;\n\n predicate || (predicate = isFlattenable);\n result || (result = []);\n\n while (++index < length) {\n var value = array[index];\n if (depth > 0 && predicate(value)) {\n if (depth > 1) {\n // Recursively flatten arrays (susceptible to call stack limits).\n baseFlatten(value, depth - 1, predicate, isStrict, result);\n } else {\n arrayPush(result, value);\n }\n } else if (!isStrict) {\n result[result.length] = value;\n }\n }\n return result;\n}\n\nmodule.exports = baseFlatten;\n","var baseFlatten = require('./_baseFlatten');\n\n/**\n * Flattens `array` a single level deep.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Array\n * @param {Array} array The array to flatten.\n * @returns {Array} Returns the new flattened array.\n * @example\n *\n * _.flatten([1, [2, [3, [4]], 5]]);\n * // => [1, 2, [3, [4]], 5]\n */\nfunction flatten(array) {\n var length = array == null ? 0 : array.length;\n return length ? baseFlatten(array, 1) : [];\n}\n\nmodule.exports = flatten;\n","/**\n * A faster alternative to `Function#apply`, this function invokes `func`\n * with the `this` binding of `thisArg` and the arguments of `args`.\n *\n * @private\n * @param {Function} func The function to invoke.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {Array} args The arguments to invoke `func` with.\n * @returns {*} Returns the result of `func`.\n */\nfunction apply(func, thisArg, args) {\n switch (args.length) {\n case 0: return func.call(thisArg);\n case 1: return func.call(thisArg, args[0]);\n case 2: return func.call(thisArg, args[0], args[1]);\n case 3: return func.call(thisArg, args[0], args[1], args[2]);\n }\n return func.apply(thisArg, args);\n}\n\nmodule.exports = apply;\n","var apply = require('./_apply');\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * A specialized version of `baseRest` which transforms the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @param {Function} transform The rest array transform.\n * @returns {Function} Returns the new function.\n */\nfunction overRest(func, start, transform) {\n start = nativeMax(start === undefined ? (func.length - 1) : start, 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n array = Array(length);\n\n while (++index < length) {\n array[index] = args[start + index];\n }\n index = -1;\n var otherArgs = Array(start + 1);\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = transform(array);\n return apply(func, this, otherArgs);\n };\n}\n\nmodule.exports = overRest;\n","/**\n * Creates a function that returns `value`.\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Util\n * @param {*} value The value to return from the new function.\n * @returns {Function} Returns the new constant function.\n * @example\n *\n * var objects = _.times(2, _.constant({ 'a': 1 }));\n *\n * console.log(objects);\n * // => [{ 'a': 1 }, { 'a': 1 }]\n *\n * console.log(objects[0] === objects[1]);\n * // => true\n */\nfunction constant(value) {\n return function() {\n return value;\n };\n}\n\nmodule.exports = constant;\n","/**\n * This method returns the first argument it receives.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Util\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'a': 1 };\n *\n * console.log(_.identity(object) === object);\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","var constant = require('./constant'),\n defineProperty = require('./_defineProperty'),\n identity = require('./identity');\n\n/**\n * The base implementation of `setToString` without support for hot loop shorting.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar baseSetToString = !defineProperty ? identity : function(func, string) {\n return defineProperty(func, 'toString', {\n 'configurable': true,\n 'enumerable': false,\n 'value': constant(string),\n 'writable': true\n });\n};\n\nmodule.exports = baseSetToString;\n","/** Used to detect hot functions by number of calls within a span of milliseconds. */\nvar HOT_COUNT = 800,\n HOT_SPAN = 16;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeNow = Date.now;\n\n/**\n * Creates a function that'll short out and invoke `identity` instead\n * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN`\n * milliseconds.\n *\n * @private\n * @param {Function} func The function to restrict.\n * @returns {Function} Returns the new shortable function.\n */\nfunction shortOut(func) {\n var count = 0,\n lastCalled = 0;\n\n return function() {\n var stamp = nativeNow(),\n remaining = HOT_SPAN - (stamp - lastCalled);\n\n lastCalled = stamp;\n if (remaining > 0) {\n if (++count >= HOT_COUNT) {\n return arguments[0];\n }\n } else {\n count = 0;\n }\n return func.apply(undefined, arguments);\n };\n}\n\nmodule.exports = shortOut;\n","var baseSetToString = require('./_baseSetToString'),\n shortOut = require('./_shortOut');\n\n/**\n * Sets the `toString` method of `func` to return `string`.\n *\n * @private\n * @param {Function} func The function to modify.\n * @param {Function} string The `toString` result.\n * @returns {Function} Returns `func`.\n */\nvar setToString = shortOut(baseSetToString);\n\nmodule.exports = setToString;\n","var flatten = require('./flatten'),\n overRest = require('./_overRest'),\n setToString = require('./_setToString');\n\n/**\n * A specialized version of `baseRest` which flattens the rest array.\n *\n * @private\n * @param {Function} func The function to apply a rest parameter to.\n * @returns {Function} Returns the new function.\n */\nfunction flatRest(func) {\n return setToString(overRest(func, undefined, flatten), func + '');\n}\n\nmodule.exports = flatRest;\n","var arrayMap = require('./_arrayMap'),\n baseClone = require('./_baseClone'),\n baseUnset = require('./_baseUnset'),\n castPath = require('./_castPath'),\n copyObject = require('./_copyObject'),\n customOmitClone = require('./_customOmitClone'),\n flatRest = require('./_flatRest'),\n getAllKeysIn = require('./_getAllKeysIn');\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * The opposite of `_.pick`; this method creates an object composed of the\n * own and inherited enumerable property paths of `object` that are not omitted.\n *\n * **Note:** This method is considerably slower than `_.pick`.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The source object.\n * @param {...(string|string[])} [paths] The property paths to omit.\n * @returns {Object} Returns the new object.\n * @example\n *\n * var object = { 'a': 1, 'b': '2', 'c': 3 };\n *\n * _.omit(object, ['a', 'c']);\n * // => { 'b': '2' }\n */\nvar omit = flatRest(function(object, paths) {\n var result = {};\n if (object == null) {\n return result;\n }\n var isDeep = false;\n paths = arrayMap(paths, function(path) {\n path = castPath(path, object);\n isDeep || (isDeep = path.length > 1);\n return path;\n });\n copyObject(object, getAllKeysIn(object), result);\n if (isDeep) {\n result = baseClone(result, CLONE_DEEP_FLAG | CLONE_FLAT_FLAG | CLONE_SYMBOLS_FLAG, customOmitClone);\n }\n var length = paths.length;\n while (length--) {\n baseUnset(result, paths[length]);\n }\n return result;\n});\n\nmodule.exports = omit;\n","export enum HTTPMethod {\n GET = 'GET',\n POST = 'POST',\n PATCH = 'PATCH',\n PUT = 'PUT',\n DELETE = 'DELETE'\n}\n\nexport type TFetchClientFetchFunction = typeof fetch\n\nexport interface IFetchClientHeaders {\n [key: string]: any\n}\n\nexport interface IFetchClientParams {\n [key: string]: any\n}\n\nexport interface IFetchClientContext {\n baseURL?: string\n headers?: IFetchClientHeaders\n}\n\nexport enum FetchClientEventName {\n postQuery = 'postQuery'\n}\n\nexport type FetchClientHookFn = (\n requestInfo: RequestInfo,\n requestInit: RequestInit,\n res: Response\n) => void\n\nexport interface IFetchClientQueryStats {\n date: string\n url: string\n method: string\n statusCode: number\n}\n\nexport interface IFetchClient {\n get(input: RequestInfo, init?: RequestInit): Promise<Response>\n\n post(\n input: RequestInfo,\n bodyParams: IFetchClientParams | IFetchClientParams[],\n init?: RequestInit\n ): Promise<Response>\n\n patch(\n input: RequestInfo,\n bodyParams: IFetchClientParams,\n init?: RequestInit\n ): Promise<Response>\n\n put(\n input: RequestInfo,\n bodyParams: IFetchClientParams,\n init?: RequestInit\n ): Promise<Response>\n\n delete(\n input: RequestInfo,\n bodyParams: IFetchClientParams,\n init?: RequestInit\n ): Promise<Response>\n\n fetch(input: RequestInfo, init?: RequestInit): Promise<Response>\n\n setHeaders(headers: IFetchClientHeaders): this\n removeHeader(name: string): this\n}\n\nexport type FetchClientStubOnCallFn = (parameters: {\n input: RequestInfo\n init?: RequestInit\n}) => void\n\nexport interface IFetchClientStubMockResponses<TFailed, TSuccess> {\n responses: [TFailed, TSuccess]\n onCall?: FetchClientStubOnCallFn\n}\n","import omit from 'lodash/omit'\nimport type {\n FetchClientHookFn,\n IFetchClient,\n IFetchClientContext,\n IFetchClientHeaders,\n IFetchClientParams,\n IFetchClientQueryStats,\n TFetchClientFetchFunction\n} from './types'\nimport { FetchClientEventName, HTTPMethod } from './types'\n\nexport default class FetchClient implements IFetchClient {\n // counter (used for kind of very basic profiling)\n private _stats = false\n\n private _queriesStats: Set<IFetchClientQueryStats> = new Set()\n\n // mapping of hooks\n private _hooks: Map<FetchClientEventName, Set<FetchClientHookFn>> = new Map()\n\n constructor(\n public fetchFunction: TFetchClientFetchFunction,\n public context: IFetchClientContext = {}\n ) {}\n\n /**\n * Do a GET query.\n */\n get(input: RequestInfo, init: RequestInit = {}): Promise<Response> {\n const requestInit = {\n ...init,\n method: HTTPMethod.GET\n }\n\n return this.fetch(input, requestInit)\n }\n\n /**\n * Do a POST query.\n */\n post(\n input: RequestInfo,\n bodyParams: IFetchClientParams | IFetchClientParams[],\n init: RequestInit = {}\n ): Promise<Response> {\n const requestInit = {\n ...init,\n method: HTTPMethod.POST,\n headers: {\n 'Content-Type': 'application/json',\n ...init.headers\n },\n body: JSON.stringify(bodyParams)\n }\n\n return this.fetch(input, requestInit)\n }\n\n /**\n * Do a PATCH query.\n */\n patch(\n input: RequestInfo,\n bodyParams: IFetchClientParams,\n init: RequestInit = {}\n ): Promise<Response> {\n const requestInit = {\n ...init,\n method: HTTPMethod.PATCH,\n headers: {\n 'Content-Type': 'application/json',\n ...init.headers\n },\n body: JSON.stringify(bodyParams)\n }\n\n return this.fetch(input, requestInit)\n }\n\n /**\n * Do a PUT query.\n */\n put(\n input: RequestInfo,\n bodyParams: IFetchClientParams,\n init: RequestInit = {}\n ): Promise<Response> {\n const requestInit = {\n ...init,\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n ...init.headers\n },\n body: JSON.stringify(bodyParams)\n }\n\n return this.fetch(input, requestInit)\n }\n\n /**\n * Do a DELETE query.\n */\n delete(\n input: RequestInfo,\n bodyParams: IFetchClientParams,\n init: RequestInit = {}\n ): Promise<Response> {\n const requestInit = {\n ...init,\n method: HTTPMethod.DELETE,\n headers: {\n 'Content-Type': 'application/json',\n ...init.headers\n },\n body: JSON.stringify(bodyParams)\n }\n\n return this.fetch(input, requestInit)\n }\n\n /**\n * Fetch the query.\n */\n fetch(input: RequestInfo, init: RequestInit = {}): Promise<Response> {\n // add headers of the context if set\n if (this.context.headers) {\n init.headers = {\n ...(init.headers || {}),\n ...this.context.headers\n }\n }\n\n // prefix with the baseURL context if set\n if (typeof input === 'string' && this.context.baseURL) {\n input = this.context.baseURL + input\n }\n\n // set cookies of the same origin\n init.credentials = 'same-origin'\n\n return this.fetchFunction(input, init).then(res => {\n this._applyPostQueryHooks(input, init, res)\n this._addToStats(input, init, res)\n return res\n })\n }\n\n /**\n * Set headers in the context.\n */\n setHeaders(headers: IFetchClientHeaders): this {\n this.context.headers = {\n ...this.context.headers,\n ...headers\n }\n\n return this\n }\n\n /**\n * Remove a header from the context.\n */\n removeHeader(name: string): this {\n this.context.headers = omit(this.context.headers, name)\n\n return this\n }\n\n /**\n * Return the context.\n */\n getContext(): IFetchClientContext {\n return this.context\n }\n\n /**\n * Return a set of hooks for a event name.\n */\n getHooks(eventName: FetchClientEventName) {\n return this._hooks.get(eventName) || new Set()\n }\n\n /**\n * Register hooks.\n */\n on(eventName: FetchClientEventName, hook: FetchClientHookFn): this {\n const existingHooks = this.getHooks(eventName)\n this._hooks.set(eventName, existingHooks.add(hook))\n\n return this\n }\n\n /**\n * Activate/Deactivate statistics.\n */\n enableStats(status: boolean): this {\n this._stats = status\n\n if (!status) {\n this._queriesStats.clear()\n }\n\n return this\n }\n\n /**\n * Return statistics.\n */\n getStats(): Set<IFetchClientQueryStats> {\n return this._queriesStats\n }\n\n /* Private */\n\n /**\n * Apply registered post-query hooks.\n */\n private _applyPostQueryHooks(\n input: RequestInfo,\n init: RequestInit,\n res: Response\n ): void {\n Array.from(this.getHooks(FetchClientEventName.postQuery)).forEach(hook => {\n hook(input, init, res)\n })\n }\n\n /**\n * Add the query to statistics.\n */\n private _addToStats(\n input: RequestInfo,\n init: RequestInit,\n res: Response\n ): void {\n if (!this._stats) {\n return\n }\n\n this._queriesStats.add({\n date: new Date().toISOString(),\n url: String(input),\n method: init.method || '',\n statusCode: res.status\n })\n }\n}\n","import type {\n EnvironmentName,\n IEnvironment,\n IEnvironmentConfiguration\n} from '../types'\n\nexport default class EnvironmentBase<\n TEnvironmentConfiguration extends IEnvironmentConfiguration\n> implements IEnvironment<TEnvironmentConfiguration>\n{\n envName: EnvironmentName\n\n window: TEnvironmentConfiguration['window']\n\n document: TEnvironmentConfiguration['document']\n\n localStorage: TEnvironmentConfiguration['localStorage']\n\n config: TEnvironmentConfiguration['config']\n\n fetchClient: TEnvironmentConfiguration['fetchClient']\n\n openApiClients: TEnvironmentConfiguration['openApiClients']\n\n constructor(environmentConfiguration: TEnvironmentConfiguration) {\n this.envName = environmentConfiguration.envName\n this.window = environmentConfiguration.window\n this.document = environmentConfiguration.document\n this.localStorage = environmentConfiguration.localStorage\n this.config = environmentConfiguration.config\n this.fetchClient = environmentConfiguration.fetchClient\n this.openApiClients = environmentConfiguration.openApiClients\n }\n}\n","import EnvironmentBase from '@/stores/Base/EnvironmentBase'\nimport type { IEnvironmentConfiguration } from '@/stores/Base/types'\n\nexport class Environment<\n TEnvironmentConfiguration extends\n IEnvironmentConfiguration = IEnvironmentConfiguration\n> extends EnvironmentBase<TEnvironmentConfiguration> {}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * SessionResource\n * API Spec for service-ai-idp SessionResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Features\n */\nexport interface Features {\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n accessGroups: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n accessGroupsMigration: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n advancedSearchV2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n agentTriageM2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n agentUpdates: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n analytics: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n analyticsV2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n assetDeletingUi: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n assetManagement: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n auditsWorkbench: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n awsConnectorV1: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n cflCoreSsor: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n connectorsGen2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n containerSecurity: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n containerSecurityGen2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n credentialsMgmt: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n credentialsMgmtV2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2BlankCanvas: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2Export: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2ExportPng: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2LuminEnabled: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2Schedule: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2TagFilter: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2WidgetFilters: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dashboardsGen2WidgetLibrary: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n dynamicTagging: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n environmentManagement: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n exportDashboard: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n exportDashboardPdf: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n generalDataProtectionCompliance: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n importData: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n indexingV2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n luminBetaAllowed: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n luminBetaEnabled: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n modifyVulnerability: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n pciMultiscan: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n qualysConnector: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n qualysVulnConnector: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n rbac: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n recastRules: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n reporting: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n scanService: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n scansGen2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n state: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n suggestFeature: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n tagging: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n vmServiceQuery: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n vulnerabilityManagementGen2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n wasDiscovery: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n wasMultiScanning: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n wasPluginSelection: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n wasScanProgress: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n webappScanning: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n webappScanningGen2: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Features\n */\n system: boolean;\n}\n\n/**\n * Check if a given object implements the Features interface.\n */\nexport function instanceOfFeatures(value: object): boolean {\n if (!('accessGroups' in value)) return false;\n if (!('accessGroupsMigration' in value)) return false;\n if (!('advancedSearchV2' in value)) return false;\n if (!('agentTriageM2' in value)) return false;\n if (!('agentUpdates' in value)) return false;\n if (!('analytics' in value)) return false;\n if (!('analyticsV2' in value)) return false;\n if (!('assetDeletingUi' in value)) return false;\n if (!('assetManagement' in value)) return false;\n if (!('auditsWorkbench' in value)) return false;\n if (!('awsConnectorV1' in value)) return false;\n if (!('cflCoreSsor' in value)) return false;\n if (!('connectorsGen2' in value)) return false;\n if (!('containerSecurity' in value)) return false;\n if (!('containerSecurityGen2' in value)) return false;\n if (!('credentialsMgmt' in value)) return false;\n if (!('credentialsMgmtV2' in value)) return false;\n if (!('dashboardsGen2' in value)) return false;\n if (!('dashboardsGen2BlankCanvas' in value)) return false;\n if (!('dashboardsGen2Export' in value)) return false;\n if (!('dashboardsGen2ExportPng' in value)) return false;\n if (!('dashboardsGen2LuminEnabled' in value)) return false;\n if (!('dashboardsGen2Schedule' in value)) return false;\n if (!('dashboardsGen2TagFilter' in value)) return false;\n if (!('dashboardsGen2WidgetFilters' in value)) return false;\n if (!('dashboardsGen2WidgetLibrary' in value)) return false;\n if (!('dynamicTagging' in value)) return false;\n if (!('environmentManagement' in value)) return false;\n if (!('exportDashboard' in value)) return false;\n if (!('exportDashboardPdf' in value)) return false;\n if (!('generalDataProtectionCompliance' in value)) return false;\n if (!('importData' in value)) return false;\n if (!('indexingV2' in value)) return false;\n if (!('luminBetaAllowed' in value)) return false;\n if (!('luminBetaEnabled' in value)) return false;\n if (!('modifyVulnerability' in value)) return false;\n if (!('pciMultiscan' in value)) return false;\n if (!('qualysConnector' in value)) return false;\n if (!('qualysVulnConnector' in value)) return false;\n if (!('rbac' in value)) return false;\n if (!('recastRules' in value)) return false;\n if (!('reporting' in value)) return false;\n if (!('scanService' in value)) return false;\n if (!('scansGen2' in value)) return false;\n if (!('state' in value)) return false;\n if (!('suggestFeature' in value)) return false;\n if (!('tagging' in value)) return false;\n if (!('vmServiceQuery' in value)) return false;\n if (!('vulnerabilityManagementGen2' in value)) return false;\n if (!('wasDiscovery' in value)) return false;\n if (!('wasMultiScanning' in value)) return false;\n if (!('wasPluginSelection' in value)) return false;\n if (!('wasScanProgress' in value)) return false;\n if (!('webappScanning' in value)) return false;\n if (!('webappScanningGen2' in value)) return false;\n if (!('system' in value)) return false;\n return true;\n}\n\nexport function FeaturesFromJSON(json: any): Features {\n return FeaturesFromJSONTyped(json, false);\n}\n\nexport function FeaturesFromJSONTyped(json: any, ignoreDiscriminator: boolean): Features {\n if (json == null) {\n return json;\n }\n return {\n \n 'accessGroups': json['access_groups'],\n 'accessGroupsMigration': json['access_groups_migration'],\n 'advancedSearchV2': json['advanced_search_v2'],\n 'agentTriageM2': json['agent_triage_m2'],\n 'agentUpdates': json['agent_updates'],\n 'analytics': json['analytics'],\n 'analyticsV2': json['analytics_v2'],\n 'assetDeletingUi': json['asset_deleting_ui'],\n 'assetManagement': json['asset_management'],\n 'auditsWorkbench': json['audits_workbench'],\n 'awsConnectorV1': json['aws_connector_v1'],\n 'cflCoreSsor': json['cfl_core_ssor'],\n 'connectorsGen2': json['connectors_gen2'],\n 'containerSecurity': json['container_security'],\n 'containerSecurityGen2': json['container_security_gen2'],\n 'credentialsMgmt': json['credentials_mgmt'],\n 'credentialsMgmtV2': json['credentials_mgmt_v2'],\n 'dashboardsGen2': json['dashboards_gen2'],\n 'dashboardsGen2BlankCanvas': json['dashboards_gen2_blank_canvas'],\n 'dashboardsGen2Export': json['dashboards_gen2_export'],\n 'dashboardsGen2ExportPng': json['dashboards_gen2_export_png'],\n 'dashboardsGen2LuminEnabled': json['dashboards_gen2_lumin_enabled'],\n 'dashboardsGen2Schedule': json['dashboards_gen2_schedule'],\n 'dashboardsGen2TagFilter': json['dashboards_gen2_tag_filter'],\n 'dashboardsGen2WidgetFilters': json['dashboards_gen2_widget_filters'],\n 'dashboardsGen2WidgetLibrary': json['dashboards_gen2_widget_library'],\n 'dynamicTagging': json['dynamic_tagging'],\n 'environmentManagement': json['environment_management'],\n 'exportDashboard': json['export_dashboard'],\n 'exportDashboardPdf': json['export_dashboard_pdf'],\n 'generalDataProtectionCompliance': json['general_data_protection_compliance'],\n 'importData': json['import_data'],\n 'indexingV2': json['indexing_v2'],\n 'luminBetaAllowed': json['lumin_beta_allowed'],\n 'luminBetaEnabled': json['lumin_beta_enabled'],\n 'modifyVulnerability': json['modify_vulnerability'],\n 'pciMultiscan': json['pci_multiscan'],\n 'qualysConnector': json['qualys_connector'],\n 'qualysVulnConnector': json['qualys_vuln_connector'],\n 'rbac': json['rbac'],\n 'recastRules': json['recast_rules'],\n 'reporting': json['reporting'],\n 'scanService': json['scan_service'],\n 'scansGen2': json['scans_gen2'],\n 'state': json['state'],\n 'suggestFeature': json['suggest_feature'],\n 'tagging': json['tagging'],\n 'vmServiceQuery': json['vm_service_query'],\n 'vulnerabilityManagementGen2': json['vulnerability_management_gen2'],\n 'wasDiscovery': json['was_discovery'],\n 'wasMultiScanning': json['was_multi_scanning'],\n 'wasPluginSelection': json['was_plugin_selection'],\n 'wasScanProgress': json['was_scan_progress'],\n 'webappScanning': json['webapp_scanning'],\n 'webappScanningGen2': json['webapp_scanning_gen2'],\n 'system': json['system'],\n };\n}\n\nexport function FeaturesToJSON(value?: Features | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'access_groups': value['accessGroups'],\n 'access_groups_migration': value['accessGroupsMigration'],\n 'advanced_search_v2': value['advancedSearchV2'],\n 'agent_triage_m2': value['agentTriageM2'],\n 'agent_updates': value['agentUpdates'],\n 'analytics': value['analytics'],\n 'analytics_v2': value['analyticsV2'],\n 'asset_deleting_ui': value['assetDeletingUi'],\n 'asset_management': value['assetManagement'],\n 'audits_workbench': value['auditsWorkbench'],\n 'aws_connector_v1': value['awsConnectorV1'],\n 'cfl_core_ssor': value['cflCoreSsor'],\n 'connectors_gen2': value['connectorsGen2'],\n 'container_security': value['containerSecurity'],\n 'container_security_gen2': value['containerSecurityGen2'],\n 'credentials_mgmt': value['credentialsMgmt'],\n 'credentials_mgmt_v2': value['credentialsMgmtV2'],\n 'dashboards_gen2': value['dashboardsGen2'],\n 'dashboards_gen2_blank_canvas': value['dashboardsGen2BlankCanvas'],\n 'dashboards_gen2_export': value['dashboardsGen2Export'],\n 'dashboards_gen2_export_png': value['dashboardsGen2ExportPng'],\n 'dashboards_gen2_lumin_enabled': value['dashboardsGen2LuminEnabled'],\n 'dashboards_gen2_schedule': value['dashboardsGen2Schedule'],\n 'dashboards_gen2_tag_filter': value['dashboardsGen2TagFilter'],\n 'dashboards_gen2_widget_filters': value['dashboardsGen2WidgetFilters'],\n 'dashboards_gen2_widget_library': value['dashboardsGen2WidgetLibrary'],\n 'dynamic_tagging': value['dynamicTagging'],\n 'environment_management': value['environmentManagement'],\n 'export_dashboard': value['exportDashboard'],\n 'export_dashboard_pdf': value['exportDashboardPdf'],\n 'general_data_protection_compliance': value['generalDataProtectionCompliance'],\n 'import_data': value['importData'],\n 'indexing_v2': value['indexingV2'],\n 'lumin_beta_allowed': value['luminBetaAllowed'],\n 'lumin_beta_enabled': value['luminBetaEnabled'],\n 'modify_vulnerability': value['modifyVulnerability'],\n 'pci_multiscan': value['pciMultiscan'],\n 'qualys_connector': value['qualysConnector'],\n 'qualys_vuln_connector': value['qualysVulnConnector'],\n 'rbac': value['rbac'],\n 'recast_rules': value['recastRules'],\n 'reporting': value['reporting'],\n 'scan_service': value['scanService'],\n 'scans_gen2': value['scansGen2'],\n 'state': value['state'],\n 'suggest_feature': value['suggestFeature'],\n 'tagging': value['tagging'],\n 'vm_service_query': value['vmServiceQuery'],\n 'vulnerability_management_gen2': value['vulnerabilityManagementGen2'],\n 'was_discovery': value['wasDiscovery'],\n 'was_multi_scanning': value['wasMultiScanning'],\n 'was_plugin_selection': value['wasPluginSelection'],\n 'was_scan_progress': value['wasScanProgress'],\n 'webapp_scanning': value['webappScanning'],\n 'webapp_scanning_gen2': value['webappScanningGen2'],\n 'system': value['system'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * SessionResource\n * API Spec for service-ai-idp SessionResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Group\n */\nexport interface Group {\n /**\n * \n * @type {string}\n * @memberof Group\n */\n uuid: string;\n /**\n * \n * @type {boolean}\n * @memberof Group\n */\n immutable: boolean;\n /**\n * \n * @type {boolean}\n * @memberof Group\n */\n membershipFixed: boolean;\n /**\n * \n * @type {string}\n * @memberof Group\n */\n name: string;\n /**\n * \n * @type {number}\n * @memberof Group\n */\n id: number;\n /**\n * \n * @type {string}\n * @memberof Group\n */\n containerUuid: string;\n}\n\n/**\n * Check if a given object implements the Group interface.\n */\nexport function instanceOfGroup(value: object): boolean {\n if (!('uuid' in value)) return false;\n if (!('immutable' in value)) return false;\n if (!('membershipFixed' in value)) return false;\n if (!('name' in value)) return false;\n if (!('id' in value)) return false;\n if (!('containerUuid' in value)) return false;\n return true;\n}\n\nexport function GroupFromJSON(json: any): Group {\n return GroupFromJSONTyped(json, false);\n}\n\nexport function GroupFromJSONTyped(json: any, ignoreDiscriminator: boolean): Group {\n if (json == null) {\n return json;\n }\n return {\n \n 'uuid': json['uuid'],\n 'immutable': json['immutable'],\n 'membershipFixed': json['membership_fixed'],\n 'name': json['name'],\n 'id': json['id'],\n 'containerUuid': json['container_uuid'],\n };\n}\n\nexport function GroupToJSON(value?: Group | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'uuid': value['uuid'],\n 'immutable': value['immutable'],\n 'membership_fixed': value['membershipFixed'],\n 'name': value['name'],\n 'id': value['id'],\n 'container_uuid': value['containerUuid'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * SessionResource\n * API Spec for service-ai-idp SessionResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Preferences\n */\nexport interface Preferences {\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n defaultApp?: string;\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n enableAssetWorkbench?: string;\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n enableExplore: string;\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n enableVMWorkbench?: string;\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n enableWebAppWorkbench?: string;\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n pinnedExposureInitiatives?: string;\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n tenableGridState?: string;\n /**\n * \n * @type {string}\n * @memberof Preferences\n */\n vmDefaultDashboard?: string;\n}\n\n/**\n * Check if a given object implements the Preferences interface.\n */\nexport function instanceOfPreferences(value: object): boolean {\n if (!('enableExplore' in value)) return false;\n return true;\n}\n\nexport function PreferencesFromJSON(json: any): Preferences {\n return PreferencesFromJSONTyped(json, false);\n}\n\nexport function PreferencesFromJSONTyped(json: any, ignoreDiscriminator: boolean): Preferences {\n if (json == null) {\n return json;\n }\n return {\n \n 'defaultApp': json['defaultApp'] == null ? undefined : json['defaultApp'],\n 'enableAssetWorkbench': json['enableAssetWorkbench'] == null ? undefined : json['enableAssetWorkbench'],\n 'enableExplore': json['enableExplore'],\n 'enableVMWorkbench': json['enableVMWorkbench'] == null ? undefined : json['enableVMWorkbench'],\n 'enableWebAppWorkbench': json['enableWebAppWorkbench'] == null ? undefined : json['enableWebAppWorkbench'],\n 'pinnedExposureInitiatives': json['pinnedExposureInitiatives'] == null ? undefined : json['pinnedExposureInitiatives'],\n 'tenableGridState': json['tenableGridState'] == null ? undefined : json['tenableGridState'],\n 'vmDefaultDashboard': json['vmDefaultDashboard'] == null ? undefined : json['vmDefaultDashboard'],\n };\n}\n\nexport function PreferencesToJSON(value?: Preferences | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'defaultApp': value['defaultApp'],\n 'enableAssetWorkbench': value['enableAssetWorkbench'],\n 'enableExplore': value['enableExplore'],\n 'enableVMWorkbench': value['enableVMWorkbench'],\n 'enableWebAppWorkbench': value['enableWebAppWorkbench'],\n 'pinnedExposureInitiatives': value['pinnedExposureInitiatives'],\n 'tenableGridState': value['tenableGridState'],\n 'vmDefaultDashboard': value['vmDefaultDashboard'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * SessionResource\n * API Spec for service-ai-idp SessionResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Features } from './Features';\nimport {\n FeaturesFromJSON,\n FeaturesFromJSONTyped,\n FeaturesToJSON,\n} from './Features';\nimport type { Group } from './Group';\nimport {\n GroupFromJSON,\n GroupFromJSONTyped,\n GroupToJSON,\n} from './Group';\nimport type { Preferences } from './Preferences';\nimport {\n PreferencesFromJSON,\n PreferencesFromJSONTyped,\n PreferencesToJSON,\n} from './Preferences';\nimport type { UserPermissions } from './UserPermissions';\nimport {\n UserPermissionsFromJSON,\n UserPermissionsFromJSONTyped,\n UserPermissionsToJSON,\n} from './UserPermissions';\n\n/**\n * \n * @export\n * @interface Session\n */\nexport interface Session {\n /**\n * \n * @type {number}\n * @memberof Session\n */\n id: number;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n uuid: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n uuidId: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n username?: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n userName?: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n email?: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n name?: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n type: string;\n /**\n * \n * @type {number}\n * @memberof Session\n */\n permissions: number;\n /**\n * \n * @type {Array<UserPermissions>}\n * @memberof Session\n */\n userPermissions?: Array<UserPermissions>;\n /**\n * \n * @type {Preferences}\n * @memberof Session\n */\n preferences: Preferences;\n /**\n * \n * @type {boolean}\n * @memberof Session\n */\n enabled: boolean;\n /**\n * \n * @type {number}\n * @memberof Session\n */\n lastLoginAttempt: number;\n /**\n * \n * @type {number}\n * @memberof Session\n */\n loginFailCount: number;\n /**\n * \n * @type {number}\n * @memberof Session\n */\n loginFailTotal: number;\n /**\n * \n * @type {number}\n * @memberof Session\n */\n containerId: number;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n containerUuid: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n containerName: string;\n /**\n * \n * @type {string}\n * @memberof Session\n */\n containerType: string;\n /**\n * \n * @type {Features}\n * @memberof Session\n */\n features: Features;\n /**\n * \n * @type {{ [key: string]: string; }}\n * @memberof Session\n */\n apps: { [key: string]: string; };\n /**\n * \n * @type {Array<string>}\n * @memberof Session\n */\n groupUuids: Array<string>;\n /**\n * \n * @type {Array<Group>}\n * @memberof Session\n */\n groups?: Array<Group>;\n /**\n * \n * @type {Date}\n * @memberof Session\n */\n lastlogin: Date;\n}\n\n/**\n * Check if a given object implements the Session interface.\n */\nexport function instanceOfSession(value: object): boolean {\n if (!('id' in value)) return false;\n if (!('uuid' in value)) return false;\n if (!('uuidId' in value)) return false;\n if (!('type' in value)) return false;\n if (!('permissions' in value)) return false;\n if (!('preferences' in value)) return false;\n if (!('enabled' in value)) return false;\n if (!('lastLoginAttempt' in value)) return false;\n if (!('loginFailCount' in value)) return false;\n if (!('loginFailTotal' in value)) return false;\n if (!('containerId' in value)) return false;\n if (!('containerUuid' in value)) return false;\n if (!('containerName' in value)) return false;\n if (!('containerType' in value)) return false;\n if (!('features' in value)) return false;\n if (!('apps' in value)) return false;\n if (!('groupUuids' in value)) return false;\n if (!('lastlogin' in value)) return false;\n return true;\n}\n\nexport function SessionFromJSON(json: any): Session {\n return SessionFromJSONTyped(json, false);\n}\n\nexport function SessionFromJSONTyped(json: any, ignoreDiscriminator: boolean): Session {\n if (json == null) {\n return json;\n }\n return {\n \n 'id': json['id'],\n 'uuid': json['uuid'],\n 'uuidId': json['uuid_id'],\n 'username': json['username'] == null ? undefined : json['username'],\n 'userName': json['user_name'] == null ? undefined : json['user_name'],\n 'email': json['email'] == null ? undefined : json['email'],\n 'name': json['name'] == null ? undefined : json['name'],\n 'type': json['type'],\n 'permissions': json['permissions'],\n 'userPermissions': json['user_permissions'] == null ? undefined : ((json['user_permissions'] as Array<any>).map(UserPermissionsFromJSON)),\n 'preferences': PreferencesFromJSON(json['preferences']),\n 'enabled': json['enabled'],\n 'lastLoginAttempt': json['last_login_attempt'],\n 'loginFailCount': json['login_fail_count'],\n 'loginFailTotal': json['login_fail_total'],\n 'containerId': json['container_id'],\n 'containerUuid': json['container_uuid'],\n 'containerName': json['container_name'],\n 'containerType': json['container_type'],\n 'features': FeaturesFromJSON(json['features']),\n 'apps': json['apps'],\n 'groupUuids': json['group_uuids'],\n 'groups': json['groups'] == null ? undefined : ((json['groups'] as Array<any>).map(GroupFromJSON)),\n 'lastlogin': (new Date(json['lastlogin'])),\n };\n}\n\nexport function SessionToJSON(value?: Session | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'id': value['id'],\n 'uuid': value['uuid'],\n 'uuid_id': value['uuidId'],\n 'username': value['username'],\n 'user_name': value['userName'],\n 'email': value['email'],\n 'name': value['name'],\n 'type': value['type'],\n 'permissions': value['permissions'],\n 'user_permissions': value['userPermissions'] == null ? undefined : ((value['userPermissions'] as Array<any>).map(UserPermissionsToJSON)),\n 'preferences': PreferencesToJSON(value['preferences']),\n 'enabled': value['enabled'],\n 'last_login_attempt': value['lastLoginAttempt'],\n 'login_fail_count': value['loginFailCount'],\n 'login_fail_total': value['loginFailTotal'],\n 'container_id': value['containerId'],\n 'container_uuid': value['containerUuid'],\n 'container_name': value['containerName'],\n 'container_type': value['containerType'],\n 'features': FeaturesToJSON(value['features']),\n 'apps': value['apps'],\n 'group_uuids': value['groupUuids'],\n 'groups': value['groups'] == null ? undefined : ((value['groups'] as Array<any>).map(GroupToJSON)),\n 'lastlogin': ((value['lastlogin']).toISOString()),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * SessionResource\n * API Spec for service-ai-idp SessionResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface SessionTimeout\n */\nexport interface SessionTimeout {\n /**\n * \n * @type {number}\n * @memberof SessionTimeout\n */\n code?: number;\n /**\n * \n * @type {string}\n * @memberof SessionTimeout\n */\n status?: string;\n}\n\n/**\n * Check if a given object implements the SessionTimeout interface.\n */\nexport function instanceOfSessionTimeout(value: object): boolean {\n return true;\n}\n\nexport function SessionTimeoutFromJSON(json: any): SessionTimeout {\n return SessionTimeoutFromJSONTyped(json, false);\n}\n\nexport function SessionTimeoutFromJSONTyped(json: any, ignoreDiscriminator: boolean): SessionTimeout {\n if (json == null) {\n return json;\n }\n return {\n \n 'code': json['code'] == null ? undefined : json['code'],\n 'status': json['status'] == null ? undefined : json['status'],\n };\n}\n\nexport function SessionTimeoutToJSON(value?: SessionTimeout | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'code': value['code'],\n 'status': value['status'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * SessionResource\n * API Spec for service-ai-idp SessionResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n Session,\n SessionTimeout,\n} from '../models/index';\nimport {\n SessionFromJSON,\n SessionToJSON,\n SessionTimeoutFromJSON,\n SessionTimeoutToJSON,\n} from '../models/index';\n\nexport interface HeartbeatRequest {\n body?: object;\n}\n\nexport interface PutSessionRequest {\n body?: object;\n}\n\nexport interface SessionRequest {\n body?: object;\n}\n\n/**\n * \n */\nexport class DefaultApi extends runtime.BaseAPI {\n\n /**\n * Check Session Timeout\n * Check Session Timeout\n */\n async heartbeatRaw(requestParameters: HeartbeatRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<SessionTimeout>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/server/heartbeat`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['body'] as any,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SessionTimeoutFromJSON(jsonValue));\n }\n\n /**\n * Check Session Timeout\n * Check Session Timeout\n */\n async heartbeat(requestParameters: HeartbeatRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<SessionTimeout> {\n const response = await this.heartbeatRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Put User Session Info\n * Put User Session Info\n */\n async putSessionRaw(requestParameters: PutSessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Session>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/session`,\n method: 'PUT',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['body'] as any,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SessionFromJSON(jsonValue));\n }\n\n /**\n * Put User Session Info\n * Put User Session Info\n */\n async putSession(requestParameters: PutSessionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Session> {\n const response = await this.putSessionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Get User Session Info\n * Get User Session Info\n */\n async sessionRaw(requestParameters: SessionRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<Session>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/session`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['body'] as any,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => SessionFromJSON(jsonValue));\n }\n\n /**\n * Get User Session Info\n * Get User Session Info\n */\n async session(requestParameters: SessionRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<Session> {\n const response = await this.sessionRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nexport const BASE_PATH = \"http://localhost\".replace(/\\/+$/, \"\");\n\nexport interface ConfigurationParameters {\n basePath?: string; // override base path\n fetchApi?: FetchAPI; // override for fetch implementation\n middleware?: Middleware[]; // middleware to apply before/after fetch requests\n queryParamsStringify?: (params: HTTPQuery) => string; // stringify function for query strings\n username?: string; // parameter for basic security\n password?: string; // parameter for basic security\n apiKey?: string | Promise<string> | ((name: string) => string | Promise<string>); // parameter for apiKey security\n accessToken?: string | Promise<string> | ((name?: string, scopes?: string[]) => string | Promise<string>); // parameter for oauth2 security\n headers?: HTTPHeaders; //header params we want to use on every request\n credentials?: RequestCredentials; //value for the credentials param we want to use on each request\n}\n\nexport class Configuration {\n constructor(private configuration: ConfigurationParameters = {}) {}\n\n set config(configuration: Configuration) {\n this.configuration = configuration;\n }\n\n get basePath(): string {\n return this.configuration.basePath != null ? this.configuration.basePath : BASE_PATH;\n }\n\n get fetchApi(): FetchAPI | undefined {\n return this.configuration.fetchApi;\n }\n\n get middleware(): Middleware[] {\n return this.configuration.middleware || [];\n }\n\n get queryParamsStringify(): (params: HTTPQuery) => string {\n return this.configuration.queryParamsStringify || querystring;\n }\n\n get username(): string | undefined {\n return this.configuration.username;\n }\n\n get password(): string | undefined {\n return this.configuration.password;\n }\n\n get apiKey(): ((name: string) => string | Promise<string>) | undefined {\n const apiKey = this.configuration.apiKey;\n if (apiKey) {\n return typeof apiKey === 'function' ? apiKey : () => apiKey;\n }\n return undefined;\n }\n\n get accessToken(): ((name?: string, scopes?: string[]) => string | Promise<string>) | undefined {\n const accessToken = this.configuration.accessToken;\n if (accessToken) {\n return typeof accessToken === 'function' ? accessToken : async () => accessToken;\n }\n return undefined;\n }\n\n get headers(): HTTPHeaders | undefined {\n return this.configuration.headers;\n }\n\n get credentials(): RequestCredentials | undefined {\n return this.configuration.credentials;\n }\n}\n\nexport const DefaultConfig = new Configuration();\n\n/**\n * This is the base class for all generated API classes.\n */\nexport class BaseAPI {\n\n private static readonly jsonRegex = new RegExp('^(:?application\\/json|[^;/ \\t]+\\/[^;/ \\t]+[+]json)[ \\t]*(:?;.*)?$', 'i');\n private middleware: Middleware[];\n\n constructor(protected configuration = DefaultConfig) {\n this.middleware = configuration.middleware;\n }\n\n withMiddleware<T extends BaseAPI>(this: T, ...middlewares: Middleware[]) {\n const next = this.clone<T>();\n next.middleware = next.middleware.concat(...middlewares);\n return next;\n }\n\n withPreMiddleware<T extends BaseAPI>(this: T, ...preMiddlewares: Array<Middleware['pre']>) {\n const middlewares = preMiddlewares.map((pre) => ({ pre }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n withPostMiddleware<T extends BaseAPI>(this: T, ...postMiddlewares: Array<Middleware['post']>) {\n const middlewares = postMiddlewares.map((post) => ({ post }));\n return this.withMiddleware<T>(...middlewares);\n }\n\n /**\n * Check if the given MIME is a JSON MIME.\n * JSON MIME examples:\n * application/json\n * application/json; charset=UTF8\n * APPLICATION/JSON\n * application/vnd.company+json\n * @param mime - MIME (Multipurpose Internet Mail Extensions)\n * @return True if the given MIME is JSON, false otherwise.\n */\n protected isJsonMime(mime: string | null | undefined): boolean {\n if (!mime) {\n return false;\n }\n return BaseAPI.jsonRegex.test(mime);\n }\n\n protected async request(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction): Promise<Response> {\n const { url, init } = await this.createFetchParams(context, initOverrides);\n const response = await this.fetchApi(url, init);\n if (response && (response.status >= 200 && response.status < 300)) {\n return response;\n }\n throw new ResponseError(response, 'Response returned an error code');\n }\n\n private async createFetchParams(context: RequestOpts, initOverrides?: RequestInit | InitOverrideFunction) {\n let url = this.configuration.basePath + context.path;\n if (context.query !== undefined && Object.keys(context.query).length !== 0) {\n // only add the querystring to the URL if there are query parameters.\n // this is done to avoid urls ending with a \"?\" character which buggy webservers\n // do not handle correctly sometimes.\n url += '?' + this.configuration.queryParamsStringify(context.query);\n }\n\n const headers = Object.assign({}, this.configuration.headers, context.headers);\n Object.keys(headers).forEach(key => headers[key] === undefined ? delete headers[key] : {});\n\n const initOverrideFn =\n typeof initOverrides === \"function\"\n ? initOverrides\n : async () => initOverrides;\n\n const initParams = {\n method: context.method,\n headers,\n body: context.body,\n credentials: this.configuration.credentials,\n };\n\n const overriddenInit: RequestInit = {\n ...initParams,\n ...(await initOverrideFn({\n init: initParams,\n context,\n }))\n };\n\n let body: any;\n if (isFormData(overriddenInit.body)\n || (overriddenInit.body instanceof URLSearchParams)\n || isBlob(overriddenInit.body)) {\n body = overriddenInit.body;\n } else if (this.isJsonMime(headers['Content-Type'])) {\n body = JSON.stringify(overriddenInit.body);\n } else {\n body = overriddenInit.body;\n }\n\n const init: RequestInit = {\n ...overriddenInit,\n body\n };\n\n return { url, init };\n }\n\n private fetchApi = async (url: string, init: RequestInit) => {\n let fetchParams = { url, init };\n for (const middleware of this.middleware) {\n if (middleware.pre) {\n fetchParams = await middleware.pre({\n fetch: this.fetchApi,\n ...fetchParams,\n }) || fetchParams;\n }\n }\n let response: Response | undefined = undefined;\n try {\n response = await (this.configuration.fetchApi || fetch)(fetchParams.url, fetchParams.init);\n } catch (e) {\n for (const middleware of this.middleware) {\n if (middleware.onError) {\n response = await middleware.onError({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n error: e,\n response: response ? response.clone() : undefined,\n }) || response;\n }\n }\n if (response === undefined) {\n if (e instanceof Error) {\n throw new FetchError(e, 'The request failed and the interceptors did not return an alternative response');\n } else {\n throw e;\n }\n }\n }\n for (const middleware of this.middleware) {\n if (middleware.post) {\n response = await middleware.post({\n fetch: this.fetchApi,\n url: fetchParams.url,\n init: fetchParams.init,\n response: response.clone(),\n }) || response;\n }\n }\n return response;\n }\n\n /**\n * Create a shallow clone of `this` by constructing a new instance\n * and then shallow cloning data members.\n */\n private clone<T extends BaseAPI>(this: T): T {\n const constructor = this.constructor as any;\n const next = new constructor(this.configuration);\n next.middleware = this.middleware.slice();\n return next;\n }\n};\n\nfunction isBlob(value: any): value is Blob {\n return typeof Blob !== 'undefined' && value instanceof Blob;\n}\n\nfunction isFormData(value: any): value is FormData {\n return typeof FormData !== \"undefined\" && value instanceof FormData;\n}\n\nexport class ResponseError extends Error {\n override name: \"ResponseError\" = \"ResponseError\";\n constructor(public response: Response, msg?: string) {\n super(msg);\n }\n}\n\nexport class FetchError extends Error {\n override name: \"FetchError\" = \"FetchError\";\n constructor(public cause: Error, msg?: string) {\n super(msg);\n }\n}\n\nexport class RequiredError extends Error {\n override name: \"RequiredError\" = \"RequiredError\";\n constructor(public field: string, msg?: string) {\n super(msg);\n }\n}\n\nexport const COLLECTION_FORMATS = {\n csv: \",\",\n ssv: \" \",\n tsv: \"\\t\",\n pipes: \"|\",\n};\n\nexport type FetchAPI = WindowOrWorkerGlobalScope['fetch'];\n\nexport type Json = any;\nexport type HTTPMethod = 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE' | 'OPTIONS' | 'HEAD';\nexport type HTTPHeaders = { [key: string]: string };\nexport type HTTPQuery = { [key: string]: string | number | null | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery };\nexport type HTTPBody = Json | FormData | URLSearchParams;\nexport type HTTPRequestInit = { headers?: HTTPHeaders; method: HTTPMethod; credentials?: RequestCredentials; body?: HTTPBody };\nexport type ModelPropertyNaming = 'camelCase' | 'snake_case' | 'PascalCase' | 'original';\n\nexport type InitOverrideFunction = (requestContext: { init: HTTPRequestInit, context: RequestOpts }) => Promise<RequestInit>\n\nexport interface FetchParams {\n url: string;\n init: RequestInit;\n}\n\nexport interface RequestOpts {\n path: string;\n method: HTTPMethod;\n headers: HTTPHeaders;\n query?: HTTPQuery;\n body?: HTTPBody;\n}\n\nexport function querystring(params: HTTPQuery, prefix: string = ''): string {\n return Object.keys(params)\n .map(key => querystringSingleKey(key, params[key], prefix))\n .filter(part => part.length > 0)\n .join('&');\n}\n\nfunction querystringSingleKey(key: string, value: string | number | null | undefined | boolean | Array<string | number | null | boolean> | Set<string | number | null | boolean> | HTTPQuery, keyPrefix: string = ''): string {\n const fullKey = keyPrefix + (keyPrefix.length ? `[${key}]` : key);\n if (value instanceof Array) {\n const multiValue = value.map(singleValue => encodeURIComponent(String(singleValue)))\n .join(`&${encodeURIComponent(fullKey)}=`);\n return `${encodeURIComponent(fullKey)}=${multiValue}`;\n }\n if (value instanceof Set) {\n const valueAsArray = Array.from(value);\n return querystringSingleKey(key, valueAsArray, keyPrefix);\n }\n if (value instanceof Date) {\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(value.toISOString())}`;\n }\n if (value instanceof Object) {\n return querystring(value as HTTPQuery, fullKey);\n }\n return `${encodeURIComponent(fullKey)}=${encodeURIComponent(String(value))}`;\n}\n\nexport function mapValues(data: any, fn: (item: any) => any) {\n return Object.keys(data).reduce(\n (acc, key) => ({ ...acc, [key]: fn(data[key]) }),\n {}\n );\n}\n\nexport function canConsumeForm(consumes: Consume[]): boolean {\n for (const consume of consumes) {\n if ('multipart/form-data' === consume.contentType) {\n return true;\n }\n }\n return false;\n}\n\nexport interface Consume {\n contentType: string;\n}\n\nexport interface RequestContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n}\n\nexport interface ResponseContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n response: Response;\n}\n\nexport interface ErrorContext {\n fetch: FetchAPI;\n url: string;\n init: RequestInit;\n error: unknown;\n response?: Response;\n}\n\nexport interface Middleware {\n pre?(context: RequestContext): Promise<FetchParams | void>;\n post?(context: ResponseContext): Promise<Response | void>;\n onError?(context: ErrorContext): Promise<Response | void>;\n}\n\nexport interface ApiResponse<T> {\n raw: Response;\n value(): Promise<T>;\n}\n\nexport interface ResponseTransformer<T> {\n (json: any): T;\n}\n\nexport class JSONApiResponse<T> {\n constructor(public raw: Response, private transformer: ResponseTransformer<T> = (jsonValue: any) => jsonValue) {}\n\n async value(): Promise<T> {\n return this.transformer(await this.raw.json());\n }\n}\n\nexport class VoidApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<void> {\n return undefined;\n }\n}\n\nexport class BlobApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<Blob> {\n return await this.raw.blob();\n };\n}\n\nexport class TextApiResponse {\n constructor(public raw: Response) {}\n\n async value(): Promise<string> {\n return await this.raw.text();\n };\n}\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Analytics\n */\nexport interface Analytics {\n /**\n * \n * @type {boolean}\n * @memberof Analytics\n */\n enabled: boolean;\n /**\n * \n * @type {string}\n * @memberof Analytics\n */\n key: string;\n /**\n * \n * @type {string}\n * @memberof Analytics\n */\n siteId: string;\n}\n\n/**\n * Check if a given object implements the Analytics interface.\n */\nexport function instanceOfAnalytics(value: object): boolean {\n if (!('enabled' in value)) return false;\n if (!('key' in value)) return false;\n if (!('siteId' in value)) return false;\n return true;\n}\n\nexport function AnalyticsFromJSON(json: any): Analytics {\n return AnalyticsFromJSONTyped(json, false);\n}\n\nexport function AnalyticsFromJSONTyped(json: any, ignoreDiscriminator: boolean): Analytics {\n if (json == null) {\n return json;\n }\n return {\n \n 'enabled': json['enabled'],\n 'key': json['key'],\n 'siteId': json['site_id'],\n };\n}\n\nexport function AnalyticsToJSON(value?: Analytics | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'enabled': value['enabled'],\n 'key': value['key'],\n 'site_id': value['siteId'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface AppLicense\n */\nexport interface AppLicense {\n /**\n * \n * @type {string}\n * @memberof AppLicense\n */\n displayName: string;\n /**\n * \n * @type {boolean}\n * @memberof AppLicense\n */\n enabled: boolean;\n /**\n * \n * @type {number}\n * @memberof AppLicense\n */\n expirationDate?: number;\n /**\n * \n * @type {boolean}\n * @memberof AppLicense\n */\n expired?: boolean;\n /**\n * \n * @type {string}\n * @memberof AppLicense\n */\n link: string;\n /**\n * \n * @type {string}\n * @memberof AppLicense\n */\n mode: string;\n /**\n * \n * @type {string}\n * @memberof AppLicense\n */\n icon?: string;\n}\n\n/**\n * Check if a given object implements the AppLicense interface.\n */\nexport function instanceOfAppLicense(value: object): boolean {\n if (!('displayName' in value)) return false;\n if (!('enabled' in value)) return false;\n if (!('link' in value)) return false;\n if (!('mode' in value)) return false;\n return true;\n}\n\nexport function AppLicenseFromJSON(json: any): AppLicense {\n return AppLicenseFromJSONTyped(json, false);\n}\n\nexport function AppLicenseFromJSONTyped(json: any, ignoreDiscriminator: boolean): AppLicense {\n if (json == null) {\n return json;\n }\n return {\n \n 'displayName': json['display_name'],\n 'enabled': json['enabled'],\n 'expirationDate': json['expiration_date'] == null ? undefined : json['expiration_date'],\n 'expired': json['expired'] == null ? undefined : json['expired'],\n 'link': json['link'],\n 'mode': json['mode'],\n 'icon': json['icon'] == null ? undefined : json['icon'],\n };\n}\n\nexport function AppLicenseToJSON(value?: AppLicense | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'display_name': value['displayName'],\n 'enabled': value['enabled'],\n 'expiration_date': value['expirationDate'],\n 'expired': value['expired'],\n 'link': value['link'],\n 'mode': value['mode'],\n 'icon': value['icon'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\n/**\n * \n * @export\n * @interface Evaluation\n */\nexport interface Evaluation {\n /**\n * \n * @type {boolean}\n * @memberof Evaluation\n */\n limitEnabled: boolean;\n /**\n * \n * @type {number}\n * @memberof Evaluation\n */\n scans: number;\n /**\n * \n * @type {number}\n * @memberof Evaluation\n */\n targets: number;\n}\n\n/**\n * Check if a given object implements the Evaluation interface.\n */\nexport function instanceOfEvaluation(value: object): boolean {\n if (!('limitEnabled' in value)) return false;\n if (!('scans' in value)) return false;\n if (!('targets' in value)) return false;\n return true;\n}\n\nexport function EvaluationFromJSON(json: any): Evaluation {\n return EvaluationFromJSONTyped(json, false);\n}\n\nexport function EvaluationFromJSONTyped(json: any, ignoreDiscriminator: boolean): Evaluation {\n if (json == null) {\n return json;\n }\n return {\n \n 'limitEnabled': json['limitEnabled'],\n 'scans': json['scans'],\n 'targets': json['targets'],\n };\n}\n\nexport function EvaluationToJSON(value?: Evaluation | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'limitEnabled': value['limitEnabled'],\n 'scans': value['scans'],\n 'targets': value['targets'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { AppLicense } from './AppLicense';\nimport {\n AppLicenseFromJSON,\n AppLicenseFromJSONTyped,\n AppLicenseToJSON,\n} from './AppLicense';\n\n/**\n * \n * @export\n * @interface LicenseApps\n */\nexport interface LicenseApps {\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n ad?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n aiv?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n cnapp?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n cns?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n ec?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n lumin?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n pci?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n tio?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n was?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n asm?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n apa?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n workspace?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n one?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n tpc?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n tpcSc?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n tpcConsec?: AppLicense;\n /**\n * \n * @type {AppLicense}\n * @memberof LicenseApps\n */\n reports?: AppLicense;\n}\n\n/**\n * Check if a given object implements the LicenseApps interface.\n */\nexport function instanceOfLicenseApps(value: object): boolean {\n return true;\n}\n\nexport function LicenseAppsFromJSON(json: any): LicenseApps {\n return LicenseAppsFromJSONTyped(json, false);\n}\n\nexport function LicenseAppsFromJSONTyped(json: any, ignoreDiscriminator: boolean): LicenseApps {\n if (json == null) {\n return json;\n }\n return {\n \n 'ad': json['ad'] == null ? undefined : AppLicenseFromJSON(json['ad']),\n 'aiv': json['aiv'] == null ? undefined : AppLicenseFromJSON(json['aiv']),\n 'cnapp': json['cnapp'] == null ? undefined : AppLicenseFromJSON(json['cnapp']),\n 'cns': json['cns'] == null ? undefined : AppLicenseFromJSON(json['cns']),\n 'ec': json['ec'] == null ? undefined : AppLicenseFromJSON(json['ec']),\n 'lumin': json['lumin'] == null ? undefined : AppLicenseFromJSON(json['lumin']),\n 'pci': json['pci'] == null ? undefined : AppLicenseFromJSON(json['pci']),\n 'tio': json['tio'] == null ? undefined : AppLicenseFromJSON(json['tio']),\n 'was': json['was'] == null ? undefined : AppLicenseFromJSON(json['was']),\n 'asm': json['asm'] == null ? undefined : AppLicenseFromJSON(json['asm']),\n 'apa': json['apa'] == null ? undefined : AppLicenseFromJSON(json['apa']),\n 'workspace': json['workspace'] == null ? undefined : AppLicenseFromJSON(json['workspace']),\n 'one': json['one'] == null ? undefined : AppLicenseFromJSON(json['one']),\n 'tpc': json['tpc'] == null ? undefined : AppLicenseFromJSON(json['tpc']),\n 'tpcSc': json['tpcSc'] == null ? undefined : AppLicenseFromJSON(json['tpcSc']),\n 'tpcConsec': json['tpcConsec'] == null ? undefined : AppLicenseFromJSON(json['tpcConsec']),\n 'reports': json['reports'] == null ? undefined : AppLicenseFromJSON(json['reports']),\n };\n}\n\nexport function LicenseAppsToJSON(value?: LicenseApps | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'ad': AppLicenseToJSON(value['ad']),\n 'aiv': AppLicenseToJSON(value['aiv']),\n 'cnapp': AppLicenseToJSON(value['cnapp']),\n 'cns': AppLicenseToJSON(value['cns']),\n 'ec': AppLicenseToJSON(value['ec']),\n 'lumin': AppLicenseToJSON(value['lumin']),\n 'pci': AppLicenseToJSON(value['pci']),\n 'tio': AppLicenseToJSON(value['tio']),\n 'was': AppLicenseToJSON(value['was']),\n 'asm': AppLicenseToJSON(value['asm']),\n 'apa': AppLicenseToJSON(value['apa']),\n 'workspace': AppLicenseToJSON(value['workspace']),\n 'one': AppLicenseToJSON(value['one']),\n 'tpc': AppLicenseToJSON(value['tpc']),\n 'tpcSc': AppLicenseToJSON(value['tpcSc']),\n 'tpcConsec': AppLicenseToJSON(value['tpcConsec']),\n 'reports': AppLicenseToJSON(value['reports']),\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\n/**\n * \n * @export\n */\nexport const LicenseType = {\n Ep: 'ep',\n Local: 'local',\n Mssp: 'mssp'\n} as const;\nexport type LicenseType = typeof LicenseType[keyof typeof LicenseType];\n\n\nexport function LicenseTypeFromJSON(json: any): LicenseType {\n return LicenseTypeFromJSONTyped(json, false);\n}\n\nexport function LicenseTypeFromJSONTyped(json: any, ignoreDiscriminator: boolean): LicenseType {\n return json as LicenseType;\n}\n\nexport function LicenseTypeToJSON(value?: LicenseType | null): any {\n return value as any;\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { LicenseApps } from './LicenseApps';\nimport {\n LicenseAppsFromJSON,\n LicenseAppsFromJSONTyped,\n LicenseAppsToJSON,\n} from './LicenseApps';\nimport type { LicenseType } from './LicenseType';\nimport {\n LicenseTypeFromJSON,\n LicenseTypeFromJSONTyped,\n LicenseTypeToJSON,\n} from './LicenseType';\n\n/**\n * \n * @export\n * @interface License\n */\nexport interface License {\n /**\n * \n * @type {LicenseApps}\n * @memberof License\n */\n apps: LicenseApps;\n /**\n * \n * @type {number}\n * @memberof License\n */\n agents: number;\n /**\n * \n * @type {boolean}\n * @memberof License\n */\n evaluation: boolean;\n /**\n * \n * @type {number}\n * @memberof License\n */\n expirationDate: number;\n /**\n * \n * @type {number}\n * @memberof License\n */\n ips: number;\n /**\n * \n * @type {number}\n * @memberof License\n */\n scanners: number;\n /**\n * \n * @type {LicenseType}\n * @memberof License\n */\n type: LicenseType;\n /**\n * \n * @type {number}\n * @memberof License\n */\n users: number;\n}\n\n/**\n * Check if a given object implements the License interface.\n */\nexport function instanceOfLicense(value: object): boolean {\n if (!('apps' in value)) return false;\n if (!('agents' in value)) return false;\n if (!('evaluation' in value)) return false;\n if (!('expirationDate' in value)) return false;\n if (!('ips' in value)) return false;\n if (!('scanners' in value)) return false;\n if (!('type' in value)) return false;\n if (!('users' in value)) return false;\n return true;\n}\n\nexport function LicenseFromJSON(json: any): License {\n return LicenseFromJSONTyped(json, false);\n}\n\nexport function LicenseFromJSONTyped(json: any, ignoreDiscriminator: boolean): License {\n if (json == null) {\n return json;\n }\n return {\n \n 'apps': LicenseAppsFromJSON(json['apps']),\n 'agents': json['agents'],\n 'evaluation': json['evaluation'],\n 'expirationDate': json['expiration_date'],\n 'ips': json['ips'],\n 'scanners': json['scanners'],\n 'type': LicenseTypeFromJSON(json['type']),\n 'users': json['users'],\n };\n}\n\nexport function LicenseToJSON(value?: License | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'apps': LicenseAppsToJSON(value['apps']),\n 'agents': value['agents'],\n 'evaluation': value['evaluation'],\n 'expiration_date': value['expirationDate'],\n 'ips': value['ips'],\n 'scanners': value['scanners'],\n 'type': LicenseTypeToJSON(value['type']),\n 'users': value['users'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\nimport { mapValues } from '../runtime';\nimport type { Analytics } from './Analytics';\nimport {\n AnalyticsFromJSON,\n AnalyticsFromJSONTyped,\n AnalyticsToJSON,\n} from './Analytics';\nimport type { Evaluation } from './Evaluation';\nimport {\n EvaluationFromJSON,\n EvaluationFromJSONTyped,\n EvaluationToJSON,\n} from './Evaluation';\nimport type { License } from './License';\nimport {\n LicenseFromJSON,\n LicenseFromJSONTyped,\n LicenseToJSON,\n} from './License';\n\n/**\n * \n * @export\n * @interface ServerProperties\n */\nexport interface ServerProperties {\n /**\n * \n * @type {License}\n * @memberof ServerProperties\n */\n license: License;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n nessusType: string;\n /**\n * \n * @type {boolean}\n * @memberof ServerProperties\n */\n enterprise: boolean;\n /**\n * \n * @type {Analytics}\n * @memberof ServerProperties\n */\n analytics: Analytics;\n /**\n * \n * @type {boolean}\n * @memberof ServerProperties\n */\n msp: boolean;\n /**\n * \n * @type {boolean}\n * @memberof ServerProperties\n */\n forceUiReload: boolean;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n nessusUiBuild: string;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n nessusUiVersion: string;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n serverBuild: string;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n serverVersion: string;\n /**\n * \n * @type {number}\n * @memberof ServerProperties\n */\n scannerBoottime: number;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n containerDbVersion: string;\n /**\n * \n * @type {Evaluation}\n * @memberof ServerProperties\n */\n evaluation: Evaluation;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n loadedPluginSet?: string;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n pluginSet?: string;\n /**\n * \n * @type {string}\n * @memberof ServerProperties\n */\n region?: string;\n}\n\n/**\n * Check if a given object implements the ServerProperties interface.\n */\nexport function instanceOfServerProperties(value: object): boolean {\n if (!('license' in value)) return false;\n if (!('nessusType' in value)) return false;\n if (!('enterprise' in value)) return false;\n if (!('analytics' in value)) return false;\n if (!('msp' in value)) return false;\n if (!('forceUiReload' in value)) return false;\n if (!('nessusUiBuild' in value)) return false;\n if (!('nessusUiVersion' in value)) return false;\n if (!('serverBuild' in value)) return false;\n if (!('serverVersion' in value)) return false;\n if (!('scannerBoottime' in value)) return false;\n if (!('containerDbVersion' in value)) return false;\n if (!('evaluation' in value)) return false;\n return true;\n}\n\nexport function ServerPropertiesFromJSON(json: any): ServerProperties {\n return ServerPropertiesFromJSONTyped(json, false);\n}\n\nexport function ServerPropertiesFromJSONTyped(json: any, ignoreDiscriminator: boolean): ServerProperties {\n if (json == null) {\n return json;\n }\n return {\n \n 'license': LicenseFromJSON(json['license']),\n 'nessusType': json['nessus_type'],\n 'enterprise': json['enterprise'],\n 'analytics': AnalyticsFromJSON(json['analytics']),\n 'msp': json['msp'],\n 'forceUiReload': json['force_ui_reload'],\n 'nessusUiBuild': json['nessus_ui_build'],\n 'nessusUiVersion': json['nessus_ui_version'],\n 'serverBuild': json['server_build'],\n 'serverVersion': json['server_version'],\n 'scannerBoottime': json['scanner_boottime'],\n 'containerDbVersion': json['container_db_version'],\n 'evaluation': EvaluationFromJSON(json['evaluation']),\n 'loadedPluginSet': json['loaded_plugin_set'] == null ? undefined : json['loaded_plugin_set'],\n 'pluginSet': json['plugin_set'] == null ? undefined : json['plugin_set'],\n 'region': json['region'] == null ? undefined : json['region'],\n };\n}\n\nexport function ServerPropertiesToJSON(value?: ServerProperties | null): any {\n if (value == null) {\n return value;\n }\n return {\n \n 'license': LicenseToJSON(value['license']),\n 'nessus_type': value['nessusType'],\n 'enterprise': value['enterprise'],\n 'analytics': AnalyticsToJSON(value['analytics']),\n 'msp': value['msp'],\n 'force_ui_reload': value['forceUiReload'],\n 'nessus_ui_build': value['nessusUiBuild'],\n 'nessus_ui_version': value['nessusUiVersion'],\n 'server_build': value['serverBuild'],\n 'server_version': value['serverVersion'],\n 'scanner_boottime': value['scannerBoottime'],\n 'container_db_version': value['containerDbVersion'],\n 'evaluation': EvaluationToJSON(value['evaluation']),\n 'loaded_plugin_set': value['loadedPluginSet'],\n 'plugin_set': value['pluginSet'],\n 'region': value['region'],\n };\n}\n\n","/* tslint:disable */\n/* eslint-disable */\n/**\n * ServerConfigResource\n * API Spec for service-ai-idp ServerConfigResource\n *\n * The version of the OpenAPI document: 1.0.0\n * Contact: support@example.com\n *\n * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).\n * https://openapi-generator.tech\n * Do not edit the class manually.\n */\n\n\nimport * as runtime from '../runtime';\nimport type {\n ServerProperties,\n} from '../models/index';\nimport {\n ServerPropertiesFromJSON,\n ServerPropertiesToJSON,\n} from '../models/index';\n\nexport interface GetFeatureFlagsRequest {\n requestBody?: Array<string>;\n}\n\nexport interface GetServerPropertiesRequest {\n body?: object;\n}\n\n/**\n * \n */\nexport class DefaultApi extends runtime.BaseAPI {\n\n /**\n * Get feature flags\n * Get feature flags\n */\n async getFeatureFlagsRaw(requestParameters: GetFeatureFlagsRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<{ [key: string]: string; }>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/feature-flags`,\n method: 'POST',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['requestBody'],\n }, initOverrides);\n\n return new runtime.JSONApiResponse<any>(response);\n }\n\n /**\n * Get feature flags\n * Get feature flags\n */\n async getFeatureFlags(requestParameters: GetFeatureFlagsRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<{ [key: string]: string; }> {\n const response = await this.getFeatureFlagsRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n /**\n * Get server properties\n * Get server properties\n */\n async getServerPropertiesRaw(requestParameters: GetServerPropertiesRequest, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<runtime.ApiResponse<ServerProperties>> {\n const queryParameters: any = {};\n\n const headerParameters: runtime.HTTPHeaders = {};\n\n headerParameters['Content-Type'] = 'application/json';\n\n const response = await this.request({\n path: `/server/properties`,\n method: 'GET',\n headers: headerParameters,\n query: queryParameters,\n body: requestParameters['body'] as any,\n }, initOverrides);\n\n return new runtime.JSONApiResponse(response, (jsonValue) => ServerPropertiesFromJSON(jsonValue));\n }\n\n /**\n * Get server properties\n * Get server properties\n */\n async getServerProperties(requestParameters: GetServerPropertiesRequest = {}, initOverrides?: RequestInit | runtime.InitOverrideFunction): Promise<ServerProperties> {\n const response = await this.getServerPropertiesRaw(requestParameters, initOverrides);\n return await response.value();\n }\n\n}\n","import type { ConfigurationParameters } from '@/libs/openapi/session/sessionResource'\nimport {\n Configuration as SessionResourceConfiguration,\n DefaultApi as SessionResourceApi\n} from '@/libs/openapi/session/sessionResource'\nimport {\n Configuration as WugServerConfigResourceConfiguration,\n DefaultApi as WugServerConfigResourceApi\n} from '@/libs/openapi/wug/serverConfigResource'\nimport type { IAuthenticationHeaders } from '@/types'\nimport type { Maybe } from '@/types/helpers'\nimport type { ITulConfig } from '@/types/tul'\nimport type { IOpenApiClients } from './types'\n\nexport class OpenApiClients implements IOpenApiClients {\n private _wugServerConfigResourceApi: Maybe<WugServerConfigResourceApi> = null\n\n private _sessionResourceApi: Maybe<SessionResourceApi> = null\n\n private _defaultConfiguration: ConfigurationParameters = {\n fetchApi: window.fetch,\n headers: {}\n }\n\n constructor(private _config: ITulConfig) {\n this.createClients()\n }\n\n /**\n * Reinstanciate all OpenApi clients with the cookie value saved in headers.\n */\n setAuthToken(authenticationHeaders: IAuthenticationHeaders): this {\n this._defaultConfiguration.headers = authenticationHeaders\n this.createClients()\n\n return this\n }\n\n /**\n * Reinstanciate all OpenApi clients without the cookie value.\n */\n unsetAuthToken(): this {\n this._defaultConfiguration.headers = {}\n this.createClients()\n\n return this\n }\n\n /**\n * Instanciate all OpenApi clients.\n */\n createClients(): this {\n // Wug\n this._wugServerConfigResourceApi = new WugServerConfigResourceApi(\n new WugServerConfigResourceConfiguration({\n ...this._defaultConfiguration,\n basePath:\n this._config.services.serverProperties?.parameters?.serviceBasePath ||\n document.location.origin\n })\n )\n\n // Session\n this._sessionResourceApi = new SessionResourceApi(\n new SessionResourceConfiguration({\n ...this._defaultConfiguration,\n basePath:\n this._config.services.session?.parameters?.serviceBasePath ||\n document.location.origin\n })\n )\n\n return this\n }\n\n /**\n * Getters.\n */\n\n get wugServerConfigResourceApi(): WugServerConfigResourceApi {\n if (!this._wugServerConfigResourceApi) {\n throw new Error(\n 'WUG OpenAPI client is not available. Is config.services.server enabled?'\n )\n }\n\n return this._wugServerConfigResourceApi\n }\n\n get sessionResourceApi(): SessionResourceApi {\n if (!this._sessionResourceApi) {\n throw new Error(\n 'Service-account OpenAPI client is not available. Is config.services.session enabled?'\n )\n }\n\n return this._sessionResourceApi\n }\n}\n","import { FetchClient } from '@/libs/FetchClient'\nimport type { IEnvironmentConfiguration } from '@/stores/Base/types'\nimport type { ITulConfig } from '@/types/tul'\nimport { Environment } from '.'\nimport { OpenApiClients } from './OpenApiClients'\n\n/**\n * Create environment for stores.\n */\nexport function createEnvironment(config: ITulConfig): Environment {\n const isPendoFromTul = config.services.pendo?.enabled\n const isTelemetryFromTul = config.services.telemetry?.enabled\n\n const windowEnv = Object.assign(window, {\n pendo: isPendoFromTul ? undefined : (window as any).pendo,\n telemetry: isTelemetryFromTul ? undefined : (window as any).telemetry\n })\n\n const fetchClient = new FetchClient(fetch.bind(window)).setHeaders({\n 'Accept-Language': config.i18n.language\n })\n\n const openApiClients = new OpenApiClients(config)\n\n const environmentConfiguration: IEnvironmentConfiguration = {\n envName: 'inapp',\n window: windowEnv,\n document,\n localStorage,\n config,\n fetchClient,\n openApiClients\n }\n\n return new Environment(environmentConfiguration)\n}\n","import {\n enTranslations,\n frTranslations,\n jaTranslations,\n toTranslations\n} from './translations'\nimport type { Language } from './types'\n\n// Use this type for translations for other language than English, so all\n// translations shape (keys) will be synchronized.\nexport type Translations = typeof enTranslations\n\nexport const allTranslations = {\n en: enTranslations,\n fr: frTranslations,\n ja: jaTranslations,\n to: toTranslations\n}\n\nexport const languages: Language[] = ['fr', 'en', 'ja', 'to']\n\nexport const fallbackLanguage: Language = 'en'\n\nexport type QuickActionsLabelType =\n keyof (typeof enTranslations)['Header']['QuickActions']\n\nexport type SettingsLabelType =\n keyof (typeof enTranslations)['Header']['PanelSettings']\n\nexport type UserAssistLabelType =\n keyof (typeof enTranslations)['Header']['UserAssist']\n\nexport type UserProfileLabelType =\n keyof (typeof enTranslations)['Header']['PanelUserProfile']\n\nexport type AppsLabelType = keyof (typeof enTranslations)['Header']['PanelApps']\n","import type { Translations } from '..'\nimport { allTranslations, fallbackLanguage } from '..'\nimport type { Language } from '../types'\n\n/**\n * Translate function that allows different level of composition:\n * language -> namespace -> sub namespace -> key\n *\n * Usage:\n *\n * const translate = translate('en')('Identities')('Details')\n * const text = translate('Object Name')\n *\n * In React context:\n *\n * Use `useTranslator` hook that returns a translate instance bounded\n * to the current language of the application:\n *\n * Example:\n *\n * const translate = useTranslator()('Identities')('Details')\n * <Typo>{translate('Object Name')}</Typo>\n */\n\nexport function translate<L extends Language>(l: L) {\n return <N1 extends keyof Translations>(n1: N1) => {\n return <N2 extends keyof Translations[N1]>(n2: N2) => {\n return <K extends keyof Translations[N1][N2]>(k: K) => {\n return (\n // Fallback to default language if there are gaps in translated json files\n (allTranslations?.[l] as Translations)?.[n1]?.[n2]?.[k] ??\n (allTranslations[fallbackLanguage] as Translations)[n1][n2][k]\n )\n }\n }\n }\n}\n","import type { IEnvironment, IStoreBase, IStores } from '../types'\n\nexport default abstract class StoreRootBase<\n TEnvironment extends IEnvironment<any>,\n TStores extends IStores<any>\n> implements IStoreBase<any>\n{\n public storeRoot = this\n\n public environment: TEnvironment\n\n public stores: TStores\n\n constructor(environment: TEnvironment) {\n this.environment = environment\n this.stores = this._instanciateStores()\n }\n\n abstract _instanciateStores(): TStores\n}\n","import type StoreRootBase from '../StoreRootBase'\nimport type {\n IEnvironment,\n IEnvironmentConfiguration,\n IStoreBase,\n IStoreOptions,\n IStores\n} from '../types'\n\n/**\n * Base store for all stores.\n */\nexport default abstract class StoreBase<\n TStoreRoot extends StoreRootBase<\n IEnvironment<IEnvironmentConfiguration>,\n IStores<any>\n >,\n TStoreOptions extends IStoreOptions = {}\n> implements IStoreBase<TStoreRoot>\n{\n public storeRoot: TStoreRoot\n\n public options: TStoreOptions\n\n constructor(storeRoot: TStoreRoot, options: TStoreOptions) {\n this.storeRoot = storeRoot\n\n this.options = {\n ...options\n }\n }\n\n /**\n * Set some options to the store.\n */\n setOptions(options: Partial<TStoreOptions>): this {\n this.options = {\n ...this.options,\n ...options\n }\n\n return this\n }\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\nimport StoreBase from '../Base/StoreBase'\nimport type { IStoreOptions } from '../Base/types'\nimport type StoreRoot from '../StoreRoot'\nimport type { IFlags } from './types'\n\nexport enum LoadingFlags {\n isReady = 0,\n isLoading = 1 << 0,\n isError = 1 << 1,\n isForbidden = 1 << 2,\n isSuccess = 1 << 3\n}\n\nexport default class StoreFlags extends StoreBase<StoreRoot, IStoreOptions> {\n @observable\n private $flags = LoadingFlags.isReady\n\n constructor(storeRoot: StoreRoot, options: IStoreOptions) {\n super(storeRoot, options)\n makeObservable(this)\n }\n\n /**\n * Reset flags.\n */\n @action\n reset(): this {\n this.$flags &= ~LoadingFlags.isLoading\n this.$flags &= ~LoadingFlags.isError\n this.$flags &= ~LoadingFlags.isForbidden\n this.$flags &= ~LoadingFlags.isSuccess\n\n return this\n }\n\n /**\n * Set flags just before an async process.\n */\n @action\n loading(): this {\n this.$flags |= LoadingFlags.isLoading\n\n this.$flags &= ~LoadingFlags.isError\n this.$flags &= ~LoadingFlags.isForbidden\n this.$flags &= ~LoadingFlags.isSuccess\n\n return this\n }\n\n /**\n * Unset the loading flag but keep other flags as it.\n */\n @action\n stopLoading(): this {\n this.$flags &= ~LoadingFlags.isLoading\n\n return this\n }\n\n /**\n * Set flags after a successful async process.\n */\n @action\n success(): this {\n this.$flags |= LoadingFlags.isSuccess\n\n this.$flags &= ~LoadingFlags.isLoading\n this.$flags &= ~LoadingFlags.isError\n this.$flags &= ~LoadingFlags.isForbidden\n\n return this\n }\n\n /**\n * Set flags after a failed async process.\n */\n @action\n fail(): this {\n this.$flags |= LoadingFlags.isError\n\n this.$flags &= ~LoadingFlags.isLoading\n this.$flags &= ~LoadingFlags.isForbidden\n this.$flags &= ~LoadingFlags.isSuccess\n\n return this\n }\n\n /**\n * Set flags after a forbidden access.\n */\n @action\n forbidden(): this {\n this.$flags |= LoadingFlags.isForbidden\n\n this.$flags &= ~LoadingFlags.isLoading\n this.$flags &= ~LoadingFlags.isError\n this.$flags &= ~LoadingFlags.isSuccess\n\n return this\n }\n\n @computed\n get isLoading(): boolean {\n return Boolean(this.$flags & LoadingFlags.isLoading)\n }\n\n @computed\n get isError(): boolean {\n return Boolean(this.$flags & LoadingFlags.isError)\n }\n\n @computed\n get isForbidden(): boolean {\n return Boolean(this.$flags & LoadingFlags.isForbidden)\n }\n\n @computed\n get isSuccess(): boolean {\n return Boolean(this.$flags & LoadingFlags.isSuccess)\n }\n\n /**\n * Return flags by accessing to properties allowing to track the results in\n * observer components.\n */\n @computed\n get flags(): IFlags {\n return {\n flags: true,\n isLoading: this.isLoading,\n isError: this.isError,\n isForbidden: this.isForbidden,\n isSuccess: this.isSuccess\n }\n }\n}\n","import StoreBase from '../Base/StoreBase'\nimport type { IStoreOptions } from '../Base/types'\nimport StoreFlags from '../StoreFlags'\nimport type StoreRoot from '../StoreRoot'\n\nexport default class StoreAlerts extends StoreBase<StoreRoot, IStoreOptions> {\n public storeFlagsInitAlerts = new StoreFlags(this.storeRoot, {})\n}\n","import { isDefined } from '@productive-codebases/toolbox'\nimport StoreFlags from '@/stores/StoreFlags'\nimport { LocalStorageKey, LocalStorageSelectedApplication } from '@/types'\nimport type { MaybeUndef } from '@/types/helpers'\nimport StoreBase from './Base/StoreBase'\nimport type { IStoreOptions } from './Base/types'\nimport type StoreRoot from './StoreRoot'\n\ninterface ISAML {\n saml_response: string\n saml_config_id: string\n}\n\nfunction getLocalStorageTokens(\n htmlResponse: string\n): MaybeUndef<[string, string][]> {\n return htmlResponse\n .match(/localStorage.setItem\\(([^()]+)\\)/g)\n ?.map(tokenEntry => tokenEntry.match(/'[^']+'/g) as [string, string])\n .map(\n entries =>\n entries.map(value => value.split(\"'\").join('')) as [string, string]\n )\n}\n\nexport default class StoreAssistMode extends StoreBase<\n StoreRoot,\n IStoreOptions\n> {\n public storeFlagsStopImpersonation = new StoreFlags(this.storeRoot, {})\n\n private _logger = this.storeRoot.logger\n\n private get localStorage() {\n return this.storeRoot.environment.localStorage\n }\n\n /**\n *\n * Stop Mssp impersonation in two steps\n * First logout and get the SAML payload in order to re-login\n */\n stopMsspImpersonation(): this {\n this.storeRoot.environment.fetchClient\n .post('/mssp/accounts/logout', {})\n .then(response => response.json())\n .then((payload: ISAML) =>\n fetch(`/saml/login/${payload.saml_config_id}`, {\n method: 'POST',\n body: `SAMLResponse=${encodeURIComponent(payload.saml_response)}`,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n })\n )\n .then(response => response.text())\n .then(htmlText => {\n this.storeFlagsStopImpersonation.success()\n\n this.localStorage?.removeItem(LocalStorageKey.isMsspParent)\n this.localStorage?.removeItem(LocalStorageKey.IronImpersonate)\n\n getLocalStorageTokens(htmlText)?.forEach(([tokenName, tokenValue]) =>\n this.localStorage?.setItem(tokenName, tokenValue)\n )\n\n this.storeRoot.redirectToTio('mssp/accounts')\n })\n .catch(error => {\n this.storeFlagsStopImpersonation.fail()\n\n this._logger('error')(error)\n })\n\n return this\n }\n\n /**\n * Stop impersonation for a standard admin\n */\n stopAdminImpersonation(): this {\n this.storeRoot.environment.fetchClient\n .post('/session/restore', {})\n .then(() => {\n this.storeFlagsStopImpersonation.success()\n\n this.localStorage?.removeItem(LocalStorageKey.IronImpersonate)\n\n this.storeRoot.redirectToTio(\n 'settings/access-control/users',\n LocalStorageSelectedApplication.settings\n )\n })\n .catch(error => {\n this.storeFlagsStopImpersonation.fail()\n\n this._logger('error')(error)\n })\n\n return this\n }\n\n /**\n * Stop impersonation whatever the context\n */\n stopImpersonation(): this {\n if (this.isMsspChild) {\n return this.stopMsspImpersonation()\n }\n return this.stopAdminImpersonation()\n }\n\n get isImpersonating() {\n return (\n this.localStorage?.getItem(LocalStorageKey.IronImpersonate) === 'true'\n )\n }\n\n get isMsspImpersonation() {\n return isDefined(this.localStorage?.getItem(LocalStorageKey.isMsspParent))\n }\n\n get isMsspChild() {\n return Boolean(\n this.storeRoot.stores.storeAuthentication.session?.rawSession\n .containerType === 'local' &&\n this.storeRoot.stores.storeAuthentication.session?.rawSession.type ===\n 'mssp' &&\n this.isMsspImpersonation\n )\n }\n\n get isMsspParent() {\n return (\n this.storeRoot.stores.storeAuthentication.session?.rawSession\n .containerType === 'mssp'\n )\n }\n\n get isImpersonation() {\n return (\n this.storeRoot.stores.storeAuthentication.session?.rawSession\n .containerType === 'mssp'\n )\n }\n\n get isNormalUser() {\n return (\n this.storeRoot.stores.storeAuthentication.session?.rawSession\n .containerType === 'local' &&\n this.storeRoot.stores.storeAuthentication.session?.rawSession.type ===\n 'local'\n )\n }\n}\n","import type { Perhaps } from '@productive-codebases/toolbox'\nimport { isDefined } from '@productive-codebases/toolbox'\n\n/**\n * Parse cookies client side.\n *\n * Usage:\n * const cookies = parseCookies(document.cookie)\n */\nexport function parseCookies(str: string): Record<string, string> {\n return str\n .split(';')\n .filter(_isDefinedAndNotEmptyString)\n .map(v => v.split('='))\n .reduce(\n (acc, v) => {\n acc[decodeURIComponent(v[0].trim())] = decodeURIComponent(v[1].trim())\n return acc\n },\n {} as Record<string, string>\n )\n}\n\nfunction _isDefinedAndNotEmptyString(value: Perhaps<string>): value is string {\n if (!isDefined(value)) {\n return false\n }\n\n if (String(value.trim()) === '') {\n return false\n }\n\n return true\n}\n","import type { Maybe } from '@/types/helpers'\n\n/**\n * Extract the token value from a pattern like:\n * token=4932b786-c41c...\n */\nexport function extractTokenFromCookieValue(\n cookieValue: string\n): Maybe<string> {\n return cookieValue.split('=').pop() || null\n}\n\n/**\n * Return the cookie value from a token.\n */\nexport function getTokenForCookieValue(token: string): string {\n return `token=${token}`\n}\n","import { action, computed, makeObservable, observable, toJS } from 'mobx'\nimport EntitySession from '@/entities/EntitySession'\nimport { parseCookies } from '@/libs/authentication/parseCookie'\nimport { getTokenForCookieValue } from '@/libs/Environment/Authentication/helpers'\nimport type { ServerProperties } from '@/libs/openapi/wug/serverConfigResource'\nimport {\n isValidServerProperties,\n isValidSession\n} from '@/libs/validators/validators'\nimport type { IAuthenticationHeaders } from '@/types'\nimport { LocalStorageKey } from '@/types'\nimport type { Maybe } from '@/types/helpers'\nimport StoreBase from './Base/StoreBase'\nimport type { IStoreOptions } from './Base/types'\nimport StoreFlags from './StoreFlags'\nimport type StoreRoot from './StoreRoot'\n\nexport default class StoreAuthentication extends StoreBase<\n StoreRoot,\n IStoreOptions\n> {\n public storeFlagsFetchSession = new StoreFlags(this.storeRoot, {})\n\n public storeFlagsFetchServerProperties = new StoreFlags(this.storeRoot, {})\n\n private _serverProperties: Maybe<ServerProperties> = null\n\n private _logger = this.storeRoot.logger\n\n /**\n * Observable\n */\n\n private $session = observable.box<Maybe<EntitySession>>(null)\n\n constructor(storeRoot: StoreRoot, options: IStoreOptions) {\n super(storeRoot, options)\n\n makeObservable(this)\n }\n\n /**\n * Sets up heartbeat polling in production to check for a session timeout.\n * When timeout is detected, the user is redirected to t.io logout page\n * which will initiate the required cleanup & logout steps.\n */\n setupSessionTimeoutPoll(): void {\n const { services } = this.storeRoot.environment.config\n const { sessionResourceApi } = this.storeRoot.environment.openApiClients\n\n // if explicitely set to false, don't check session timeout\n const dontCheckSessionTimeout =\n services.session?.checkSessionTimeout === false\n\n if (dontCheckSessionTimeout) {\n return\n }\n\n // Use the one from the config or the default one from OpenApi\n const checkSessionFetchFn = services.session?.checkSessionTimeout\n ? services.session.checkSessionTimeout\n : sessionResourceApi.heartbeatRaw.bind(sessionResourceApi)\n\n // Same interval as specified by t.io\n const heartbeatIntervalDuration = 30000\n\n // We don't need to clear interval because we will hard redirect to t.io app\n if (this.storeRoot.environment.config.app.production) {\n setInterval(() => {\n checkSessionFetchFn({})\n .then(response => {\n if (!response.raw.ok) {\n this.redirectToTioLogout(response.raw)\n }\n })\n .catch(err => {\n this.redirectToTioLogout(err)\n })\n }, heartbeatIntervalDuration)\n }\n }\n\n /**\n * Only redirect to t.io app in production when session timeout is detected.\n */\n private redirectToTioLogout(append?: Error | Response) {\n this._logger('error')(\n `Session timeout detected, redirecting to t.io logout page.\\n${append}`\n )\n\n this.storeRoot.redirectToTio('logout')\n }\n\n /**\n * Fetch the session.\n * By default, the one returned by service-account returned by the /session endpoint.\n */\n fetchSession(): Promise<void> {\n const { services } = this.storeRoot.environment.config\n\n // use the one from the config or the default one from OpenApi\n const fetchUserSessionPromise = services.session?.sessionDataGetter\n ? services.session?.sessionDataGetter()\n : this.storeRoot.environment.openApiClients.sessionResourceApi.session()\n\n this.storeFlagsFetchSession.loading()\n\n return fetchUserSessionPromise\n .then(session => {\n if (!isValidSession(session)) {\n throw new Error('Invalid session')\n }\n\n this.setSession(EntitySession.createFromObject(session))\n this.storeFlagsFetchSession.success()\n\n // Send session data if handler is defined\n if (\n this.storeRoot.environment.config.app.handlers?.onTulSessionFetched\n ) {\n this.storeRoot.environment.config.app.handlers.onTulSessionFetched({\n tulApi: this.storeRoot.tulApi,\n session: this.session\n })\n }\n })\n .catch(err => {\n this._logger('error')(\n 'Cant retrieve the session from the backend (%o)',\n err\n )\n\n this.storeFlagsFetchSession.fail()\n\n // Send a null session if handler is defined\n if (\n this.storeRoot.environment.config.app.handlers?.onTulSessionFetched\n ) {\n this.storeRoot.environment.config.app.handlers.onTulSessionFetched({\n tulApi: this.storeRoot.tulApi,\n session: null\n })\n }\n\n // Forward the exception to the caller\n throw err\n })\n }\n\n /**\n * Fetch server properties (WUG meta-data).\n */\n fetchServerProperties(): Promise<void> {\n const { services } = this.storeRoot.environment.config\n\n // use the one from the config or the default one from OpenApi\n const fetchServerPropertiesPromise = services.serverProperties\n ?.serverPropertiesDataGetter\n ? services.serverProperties?.serverPropertiesDataGetter()\n : this.storeRoot.environment.openApiClients.wugServerConfigResourceApi.getServerProperties()\n\n this.storeFlagsFetchServerProperties.loading()\n\n return fetchServerPropertiesPromise\n .then(serverProperties => {\n if (!isValidServerProperties(serverProperties)) {\n throw new Error('Invalid server properties')\n }\n\n this._serverProperties = serverProperties\n\n // Send server properties data if handler is defined\n if (\n this.storeRoot.environment.config.app.handlers\n ?.onTulServerPropertiesFetched\n ) {\n this.storeRoot.environment.config.app.handlers.onTulServerPropertiesFetched(\n {\n tulApi: this.storeRoot.tulApi,\n serverProperties: this.serverProperties\n }\n )\n }\n\n if (serverProperties.license) {\n this.storeRoot.stores.storeLayout.initApps(\n serverProperties.license.apps\n )\n\n // Send licensed apps if handler is defined\n if (\n this.storeRoot.environment.config.app.handlers?.onTulLicensedAppsSet\n ) {\n this.storeRoot.environment.config.app.handlers.onTulLicensedAppsSet(\n {\n tulApi: this.storeRoot.tulApi,\n apps: this.storeRoot.stores.storeLayout.apps\n }\n )\n }\n }\n\n this.storeFlagsFetchServerProperties.success()\n })\n .catch(err => {\n this._logger('error')(\n 'Cant retrieve the server properties from the backend (%s)',\n err\n )\n\n // Send a null serverProperties if handler is defined\n if (\n this.storeRoot.environment.config.app.handlers\n ?.onTulServerPropertiesFetched\n ) {\n this.storeRoot.environment.config.app.handlers.onTulServerPropertiesFetched(\n {\n tulApi: this.storeRoot.tulApi,\n serverProperties: null\n }\n )\n }\n\n this.storeFlagsFetchServerProperties.fail()\n\n // Forward the exception to the caller\n throw err\n })\n }\n\n /**\n * Save the iron token received from the login query in LocalStorage\n * and set the x-cookie header value to the FetchClient to authenticate\n * all next queries.\n */\n saveAndApplyIronToken(session?: { token: string }): this {\n const token = session?.token || this.getIronToken()\n\n if (!token) {\n throw new Error('Missing authentication token')\n }\n\n // set the token in localstorage, that defines if the user is authed or not\n this.storeRoot.environment.localStorage?.setItem(\n LocalStorageKey.IronToken,\n token\n )\n\n const authenticationHeaders = this.forgeXCookieHeader()\n\n if (!authenticationHeaders) {\n throw new Error('Missing x-cookie header')\n }\n\n // add the token into the fetchClient instance for REST communications\n this.storeRoot.environment.fetchClient.setHeaders(authenticationHeaders)\n\n // add the token in headers for OpenApi implementation\n this.storeRoot.environment.openApiClients.setAuthToken(\n authenticationHeaders\n )\n\n return this\n }\n\n /**\n * Return the x-cookie header as an object.\n */\n forgeXCookieHeader(): Maybe<IAuthenticationHeaders> {\n const token = this.getIronToken()\n\n if (!token) {\n return null\n }\n\n return {\n 'x-cookie': getTokenForCookieValue(token)\n }\n }\n\n /**\n * Retrieve the iron token from\n * - cookie (workaround to be able to be authentificed when rendering PDF via Pupetteer)\n * - or from the local storage (normal behavior)\n */\n getIronToken(): Maybe<string> {\n const cookies = parseCookies(this.storeRoot.environment.document.cookie)\n\n return (\n // Iron token can be saved in a cookie when rendering PDF pages to workaround\n // local storage limitation\n cookies[LocalStorageKey.IronToken] ||\n // Retrieve Iton token from local storage in all other use-cases\n this.storeRoot.environment.localStorage?.getItem(\n LocalStorageKey.IronToken\n ) ||\n null\n )\n }\n\n /**\n * Checks if siteId is a Fedramp site\n */\n isFedramp(): boolean {\n const siteId = this.serverProperties?.analytics?.siteId\n return siteId === 'qa-gov01' || siteId === 'gov01'\n }\n\n get serverProperties(): Maybe<ServerProperties> {\n return this._serverProperties\n }\n\n /**\n * Actions\n */\n\n @action\n setSession(session: EntitySession): this {\n this.$session.set(session)\n return this\n }\n\n /**\n * Computed\n */\n\n @computed\n get session(): Maybe<EntitySession> {\n return toJS(this.$session.get())\n }\n\n /**\n * Return user's initials.\n */\n @computed\n get userInitials(): string {\n return this.$session.get()?.initials || '?'\n }\n}\n","export interface IFeatureFlag {\n name: string\n enabled: boolean\n}\n\n/**\n * Feature flags exposed by LaunchDarkly.\n */\nexport enum FeatureFlag {\n 't-one-product-renaming' = 't-one-product-renaming'\n}\n","import { isDefined } from '@productive-codebases/toolbox'\nimport get from 'lodash/get'\nimport StoreBase from '../Base/StoreBase'\nimport type { IStoreOptions } from '../Base/types'\nimport StoreFlags from '../StoreFlags'\nimport type StoreRoot from '../StoreRoot'\nimport { FeatureFlag } from './types'\n\n/**\n * Store in charge of feature-flags.\n */\nexport default class StoreFeatureFlags extends StoreBase<\n StoreRoot,\n IStoreOptions\n> {\n public storeFlagsFetchFeatureFlags = new StoreFlags(this.storeRoot, {})\n\n private _featureFlags: Set<FeatureFlag> = new Set()\n\n /**\n * Fetch feature flags from the WUG endpoint.\n */\n fetchFeatureFlags(): Promise<void> {\n this.storeFlagsFetchFeatureFlags.loading()\n\n const featureFlagsList = Object.values(FeatureFlag)\n\n return this.storeRoot.environment.openApiClients.wugServerConfigResourceApi\n .getFeatureFlags({ requestBody: featureFlagsList })\n .then(featureFlags => {\n const featureFlagsEnabled = featureFlagsList\n .map(featureFlag => {\n const isEnabled =\n // LD flags are strings so we need to coerce to boolean\n get(featureFlags, featureFlag) === 'true'\n\n return isEnabled ? featureFlag : null\n })\n .filter(isDefined)\n\n this._featureFlags = new Set(featureFlagsEnabled)\n\n this.storeFlagsFetchFeatureFlags.success()\n })\n .catch(err => {\n this.storeFlagsFetchFeatureFlags.fail()\n\n // Forward the exception to the caller\n throw err\n })\n }\n\n /**\n * Return true if the feature-flag is enabled.\n */\n isFeatureFlagEnabled(featureFlag: FeatureFlag): boolean {\n return this._featureFlags.has(featureFlag)\n }\n\n /**\n * Returns feature flags array enabled for the user.\n */\n get featureFlags(): FeatureFlag[] {\n return Array.from(this._featureFlags)\n }\n}\n","import type { MenuItem } from '@/types/tul'\n\nexport const navigationData: MenuItem[] = [\n {\n id: 'dashboards',\n name: 'Dashboards',\n url: '/dashboards',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const,\n menuItems: []\n },\n {\n id: 'scans',\n name: 'Scans',\n url: '/',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const,\n menuItems: [\n {\n id: 'scans-1',\n name: 'Scans Item 1',\n url: '/scans/1',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const\n },\n {\n id: 'scans-2',\n name: 'Scans Item 2',\n url: '/scans/2'\n },\n {\n id: 'scans-3',\n name: 'Scans Item 3',\n url: '/scans/3'\n },\n {\n id: 'scans-4',\n name: 'Scans Item 4',\n url: '/scans/4'\n }\n ]\n },\n {\n id: 'findings',\n name: 'Findings',\n url: '/',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const,\n menuItems: [\n {\n id: 'findings-1',\n name: 'Findings Item 1',\n url: '/findings/1',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const\n },\n {\n id: 'findings-2',\n name: 'Findings Item 2',\n url: '/findings/2',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const\n },\n {\n id: 'findings-3',\n name: 'Findings Item 3',\n url: '/findings/3',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const\n }\n ]\n },\n {\n id: 'assets',\n name: 'Assets',\n url: '/assets',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const,\n menuItems: []\n },\n {\n id: 'remediation',\n name: 'Remediation',\n url: '/remediation',\n icon: `<tenable-workspace-app-vm color='accent-idle' size='medium'></tenable-workspace-app-vm>` as const\n },\n {\n id: 'reports',\n name: 'Reports',\n url: '/reports',\n icon: `<img src='../../assets/images/dev/test.png' alt='warning'/>` as const,\n menuItems: []\n }\n]\n","import type { EntitySession, MenuItem } from '@/types/tul'\n\nexport const settingsMenuData: MenuItem[] = [\n {\n id: 'licenseInfo',\n name: 'License Information',\n url: '/platform-settings/#/license/assets',\n rbac: (session: EntitySession) => session?.hasAccessToLicense,\n icon: `<tenable-settings-license color='accent-idle' size='medium'></tenable-settings-license>` as const,\n target: '_self'\n },\n {\n id: 'accessControl',\n name: 'Access Control',\n url: '/platform-settings/#/access-control/users',\n rbac: (session: EntitySession) => session?.hasAccessToAccessControl,\n icon: `<tenable-settings-access-control color='accent-idle' size='medium'></tenable-settings-access-control>` as const,\n target: '_self'\n },\n {\n id: 'activityLogs',\n name: 'Activity Logs',\n url: '/platform-settings/#/activity-logs',\n rbac: (session: EntitySession) => session?.hasAccessToActivityLogs,\n icon: `<tenable-settings-activity-logs color='accent-idle' size='medium'></tenable-settings-activity-logs>` as const,\n target: '_self'\n }\n]\n","import { LocalStorageSelectedApplication } from '@/types'\nimport { UserManagementMenuKeys } from '@/types/tul'\nimport type { UserMenuItemsProps } from '../../views/UserProfile/UserPanel'\n\n/** This needs to be done for pages inside TIO to work as it is dependant on this config */\nconst myAccountAppConfigForTio = {\n selectedApplication: LocalStorageSelectedApplication.platformSettings,\n selectedApplicationTitleNew: 'PlatformSettings',\n selectedAppConfig: null\n}\nconst base64EncodedConfigForMyAccount = btoa(\n JSON.stringify(myAccountAppConfigForTio)\n)\n\nexport const userMenuData: UserMenuItemsProps = [\n {\n id: UserManagementMenuKeys.MyAccount,\n name: 'My Profile',\n url: `/tio/app.html#/settings/my-account/update-account?appConfig=${base64EncodedConfigForMyAccount}`,\n target: '_self',\n icon: `<tenable-user-profile color='accent-idle' size='medium'></tenable-user-profile>` as const\n },\n {\n id: UserManagementMenuKeys.SignOut,\n name: 'Sign out',\n url: '/tio/app.html#/logout',\n target: '_self',\n icon: `<tenable-sign-out color='accent-idle' size='medium'></tenable-sign-out>` as const\n },\n {\n id: UserManagementMenuKeys.WhatsNew,\n name: \"What's new\",\n url: 'https://docs.tenable.com/release-notes/Content/vulnerability-management/tenableio.htm',\n icon: `<tenable-announcement color='accent-idle' size='medium'></tenable-announcement>` as const\n },\n {\n id: UserManagementMenuKeys.ViewDocumentation,\n name: 'View Documentation',\n url: 'https://docs.tenable.com/vulnerability-management.htm',\n icon: `<tenable-book color='accent-idle' size='medium'></tenable-book>` as const\n }\n]\n\nexport const appUserMenuData: UserMenuItemsProps = [\n {\n id: 'myAccount',\n name: 'My Account VM',\n url: '/tio/app.html#/settings/my-account/update-account',\n icon: `<tenable-user-profile color='accent-idle' size='medium'></tenable-user-profile>` as const\n },\n {\n id: 'signOut',\n name: 'Sign out VM',\n url: '/tio/app.html#/logout',\n target: '_self',\n icon: `<tenable-sign-out color='accent-idle' size='medium'></tenable-sign-out>` as const\n }\n]\n","import type { MenuItem } from '@/types/tul'\n\ntype ExtendedMenuItem = MenuItem & { [index: string]: string }\n\nexport const mergeMenuItems = (\n src: MenuItem[],\n tgt: MenuItem[],\n property = 'id'\n) => {\n const source: ExtendedMenuItem[] = src as ExtendedMenuItem[]\n const target: ExtendedMenuItem[] = tgt as ExtendedMenuItem[]\n return source\n .filter(\n (sourceItem: ExtendedMenuItem) =>\n !target.find(\n (targetItem: ExtendedMenuItem) =>\n sourceItem[property] === targetItem[property]\n )\n )\n .concat(target)\n}\n","export class TenableBaseEvent<TPayload> extends Event {\n payload: TPayload\n\n constructor(\n type = 'tenableBaseEvent',\n payload: TPayload,\n options?: EventInit\n ) {\n const _options = {\n bubbles: true,\n cancelable: false,\n composed: true,\n ...options\n }\n\n super(type, _options)\n\n this.payload = payload\n }\n}\n","import { TenableBaseEvent } from '../BaseEvent'\n\nexport class NavigationEvent extends TenableBaseEvent<unknown> {\n static UNIVERSAL_NAVIGATION_BUTTON_CLICKED =\n 'tenable-navigation-button-clicked'\n\n static UNIVERSAL_NAVIGATION_MENU_COLLAPSED =\n 'tenable-universal-navigation-menu-collapsed'\n\n static UNIVERSAL_NAVIGATION_ITEM_CLICKED = 'tenable-navigation-item-clicked'\n\n static UNIVERSAL_NAVIGATION_MENU_ITEM_CLICKED =\n 'tenable-navigation-menu-item-clicked'\n\n static UNIVERSAL_NAVIGATION_POPOVER_OPENED =\n 'tenable-universal-navigation-popover-opened'\n}\n","import { addSetValueToMap } from './setValuesToMap'\n\n/**\n * Index entities to a map with the id as key.\n */\nexport function indexEntitiesToMap<TEntity, TKey>(\n entities: TEntity[],\n key: keyof TEntity\n): Map<TKey, TEntity> {\n return entities.reduce((acc, entity) => {\n const id = entity[key] as unknown as TKey\n\n if (!id) {\n return acc\n }\n\n acc.set(id, entity)\n return acc\n }, new Map<TKey, TEntity>())\n}\n\n/**\n * Append entities to a map with the id as key.\n */\nexport function appendEntitiesToMap<TEntity, TKey>(\n entities: TEntity[],\n key: keyof TEntity\n): Map<TKey, Set<TEntity>> {\n const map: Map<TKey, Set<TEntity>> = new Map()\n\n entities.forEach(entity => {\n const id = entity[key] as unknown as TKey\n\n if (!id) {\n return\n }\n\n addSetValueToMap(map, id, entity)\n })\n\n return map\n}\n","/**\n * Default TUL theme.\n * Define the theming properties as well, other themes implements the same interface.\n */\nexport const tulDefaultTheme = {\n 'tul-header/height': '64px',\n 'tul-header/background': 'var(--tenb-colors-background-page)',\n 'tul-floating-button-hover/background':\n 'var(--tenb-colors-background-button-floating-hover)',\n 'tul-title/color': 'var(--tenb-colors-text-brand)',\n 'tul-title/fontFamily': 'var(--tenb-fonts-brand-medium)',\n 'tul-title/fontSize': 'var(--tenb-fontSizes-24)'\n}\n","import type { TulTheme } from './types'\n\nexport const tulTioTheme: TulTheme = {\n 'tul-header/height': '64px',\n 'tul-header/background': 'var(--tenb-colors-background-page)',\n 'tul-floating-button-hover/background':\n 'var(--tenb-colors-background-button-floating-hover)',\n 'tul-title/color': 'var(--tenb-colors-text-brand)',\n 'tul-title/fontFamily': 'var(--tenb-fonts-brand-medium)',\n 'tul-title/fontSize': 'var(--tenb-fontSizes-24)'\n}\n","import { tulDefaultTheme } from './default'\nimport { tulTioTheme } from './tio'\n\nexport const tulThemes = {\n default: tulDefaultTheme,\n Tio: tulTioTheme\n}\n","import { action, computed, makeObservable, observable } from 'mobx'\nimport type { Maybe } from '@/types/helpers'\nimport StoreBase from './Base/StoreBase'\nimport type { IStoreOptions } from './Base/types'\nimport type StoreRoot from './StoreRoot'\n\nexport enum DrawerState {\n isClosed = 0,\n isOpened = 1 << 0\n}\n\n/**\n * Handle drawers status.\n */\nexport default class StoreDrawer<TData extends object> extends StoreBase<\n StoreRoot,\n IStoreOptions\n> {\n /**\n * Observables\n */\n\n // optional data for the drawer\n private $data = observable.box<Maybe<Partial<TData>>>(null)\n\n @observable\n private $drawerState = DrawerState.isClosed\n\n constructor(storeRoot: StoreRoot, options: IStoreOptions) {\n super(storeRoot, options)\n makeObservable(this)\n }\n\n /**\n * Retrieve data.\n */\n getDataValue<K extends keyof TData>(key: K): Maybe<TData[K]> {\n const data = this.$data.get()\n\n if (!data) {\n return null\n }\n\n return (data[key] as TData[K]) || null\n }\n\n /**\n * Reset the store.\n */\n reset(): this {\n this.closeDrawer()\n this.clearData()\n\n return this\n }\n\n /* Actions */\n\n /**\n * Clear data.\n */\n @action\n clearData(): this {\n this.$data.set(null)\n\n return this\n }\n\n /**\n * Set data.\n */\n @action\n setData(partialData: Maybe<Partial<TData>>): this {\n this.$data.set({ ...this.$data.get(), ...partialData })\n\n return this\n }\n\n /**\n * Open the drawer.\n */\n @action\n openDrawer(): this {\n this.$drawerState |= DrawerState.isOpened\n\n return this\n }\n\n /**\n * Close the drawer and delete the data.\n */\n @action\n closeDrawer(): this {\n this.$drawerState &= ~DrawerState.isOpened\n this.$data.set(null)\n\n return this\n }\n\n /* Computed */\n\n /**\n * Return true if the drawer is opened.\n */\n @computed\n get isDrawerOpened(): boolean {\n return Boolean(this.$drawerState & DrawerState.isOpened)\n }\n\n /**\n * Retrieve all data.\n */\n @computed\n get data(): Maybe<Partial<TData>> {\n return this.$data.get()\n }\n}\n","import EntityApp from '@/entities/EntityApp'\nimport {\n LocalStorageSelectedApplication,\n SelectedTioSettingsPage\n} from '@/types'\nimport type { AppName, TenableProduct } from '@/types/tul'\n\nexport const PRODUCTS_APPS: Record<TenableProduct, EntityApp> = {\n /**\n * Maps to /server/properties app names in license object.\n */\n\n workspace: new EntityApp('workspace'),\n\n // Not an app, it's just used to detect metadata of Tenable One license\n one: new EntityApp('one'),\n\n cns: new EntityApp('cns'),\n\n lumin: new EntityApp('lumin').setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.lumin\n ),\n\n ec: new EntityApp('ec'),\n\n was: new EntityApp('was').setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.was\n ),\n\n tio: new EntityApp('tio').setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.tenable_io\n ),\n\n ad: new EntityApp('ad').forceSamlRedirection(true),\n\n apa: new EntityApp('apa'),\n\n // TODO: overriding CAM url with assets-new as this is not doable on the backend.\n // We should remove this override when we move back to cyber-asset-management path.\n aiv: new EntityApp('aiv').setUrl('/one/#/assets-new'),\n\n pci: new EntityApp('pci').setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.pci\n ),\n\n asm: new EntityApp('asm'),\n\n cnapp: new EntityApp('cnapp'),\n\n // Consec and Eco are still Tenable apps? If yes, should be added in the OpenAPI specs\n // (openapi/model/server_config_resource/License.json)\n\n // consec: new EntityApp('consec').setLocalStorageSelectedApplication(\n // LocalStorageSelectedApplication.consec\n // ),\n\n // eco: new EntityApp('eco'),\n\n tpc: new EntityApp('tpc'),\n\n tpcConsec: new EntityApp('tpcConsec'),\n\n tpcSc: new EntityApp('tpcSc'),\n\n reports: new EntityApp('reports')\n}\n\n/**\n * Declare all applications / pages used in TUL.\n * Apps are saved into StoreLayout.\n *\n * Use as this:\n * storeLayout.apps.get('MyAccount')...\n */\n\nexport const PAGE_APPS: Record<AppName, EntityApp> = {\n /**\n * T.one pages\n */\n\n Datasources: new EntityApp('Datasources').setUrl('/one/#/data-sources'),\n\n /**\n * T.io pages\n */\n\n MyAccount: new EntityApp('MyAccount')\n .setUrl('/tio/app.html#/settings/my-account/update-account')\n .setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.settings\n )\n .setLocalStorageSelectedTioSettingsPage(SelectedTioSettingsPage.myAccount),\n\n SystemSettings: new EntityApp('SystemSettings')\n .setUrl('/tio/app.html#/settings')\n .setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.settings\n )\n .setLocalStorageSelectedTioSettingsPage(SelectedTioSettingsPage.settings),\n\n License: new EntityApp('License')\n .setUrl('/tio/app.html#/settings/license')\n .setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.settings\n )\n .setLocalStorageSelectedTioSettingsPage(SelectedTioSettingsPage.license),\n\n UserManagement: new EntityApp('UserManagement')\n .setUrl('/tio/app.html#/settings/access-control/users')\n .setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.settings\n )\n .setLocalStorageSelectedTioSettingsPage(\n SelectedTioSettingsPage.accessControl\n ),\n\n Roles: new EntityApp('Roles')\n .setUrl('/tio/app.html#/settings/access-control/roles')\n .setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.settings\n )\n .setLocalStorageSelectedTioSettingsPage(\n SelectedTioSettingsPage.accessControl\n ),\n\n Authentication: new EntityApp('Authentication')\n .setUrl('/tio/app.html#/settings/my-account/update-account')\n .setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.settings\n )\n .setLocalStorageSelectedTioSettingsPage(SelectedTioSettingsPage.myAccount),\n\n ActivityLogs: new EntityApp('ActivityLogs')\n .setUrl('/tio/app.html#/settings/activity-logs')\n .setLocalStorageSelectedApplication(\n LocalStorageSelectedApplication.settings\n )\n .setLocalStorageSelectedTioSettingsPage(\n SelectedTioSettingsPage.activityLogs\n ),\n\n Logout: new EntityApp('Logout').setUrl('/tio/app.html#/logout')\n}\n","import { deepMerge, StrictObject } from '@productive-codebases/toolbox'\nimport { action, computed, makeObservable, observable } from 'mobx'\nimport { navigationData } from '@/components/GlobalHeader/utils/data/NavigationData'\nimport { settingsMenuData } from '@/components/GlobalHeader/utils/data/PlatformSettingsData'\nimport { userMenuData } from '@/components/GlobalHeader/utils/data/UserProfileMenuData'\nimport { mergeMenuItems } from '@/components/GlobalHeader/utils/mergeMenuItems'\nimport { NavigationEvent } from '@/components/GlobalHeader/views/Header/NavigationEvent'\nimport type { UserMenuItemsProps } from '@/components/GlobalHeader/views/UserProfile/UserPanel'\nimport type EntityApp from '@/entities/EntityApp'\nimport { indexEntitiesToMap } from '@/libs/helpers/map/indexEntitiesToMap'\nimport type { Language } from '@/libs/i18n/types'\nimport type {\n AppLicense,\n ServerProperties\n} from '@/libs/openapi/wug/serverConfigResource'\nimport { tulThemes } from '@/styles/themes'\nimport type { TulTheme } from '@/styles/themes/types'\nimport { LocalStorageKey } from '@/types'\nimport type { Maybe } from '@/types/helpers'\nimport type {\n AppNameOrProduct,\n BreadCrumbItem,\n HtmlString,\n ITulEventHamburgerOnClick,\n MenuItem,\n TulEventDetail\n} from '@/types/tul'\nimport { TulEvent } from '@/types/tul'\nimport StoreBase from '../Base/StoreBase'\nimport type { IStoreOptions } from '../Base/types'\nimport StoreDrawer from '../StoreDrawer'\nimport type StoreRoot from '../StoreRoot'\nimport { PAGE_APPS, PRODUCTS_APPS } from './consts'\nimport type { ILayoutPreferences } from './types'\n\nexport default class StoreLayout extends StoreBase<StoreRoot, IStoreOptions> {\n public storeDrawerMainNavigation = new StoreDrawer(this.storeRoot, {})\n\n /**\n * Observable\n */\n\n /**\n * Using map because the order of apps matter so they are listed correctly in the app switcher.\n */\n private $apps = observable.map<AppNameOrProduct, EntityApp>()\n\n private $currentAppSelected = observable.box<Maybe<AppNameOrProduct>>(null)\n\n private $selectedSideBarMenuItem = observable.box<string>('')\n\n private $selectedSettingsMenuItem = observable.box<string>('')\n\n private $selectedUserProfileMenuItem = observable.box<string>('')\n\n private $selectedQuickActionsMenuItem = observable.box<string>('')\n\n private $logo = observable.box<string | HtmlString>('')\n\n private $notificationsCount = observable.box<number>()\n\n private $chatCount = observable.box<number>()\n\n private $language = observable.box<Language>('en')\n\n private $breadcrumbs = observable.box<BreadCrumbItem[]>([])\n\n /**\n * Private\n */\n\n private _layoutPreferences: ILayoutPreferences = {\n mainNavigation: 'closed'\n }\n\n constructor(storeRoot: StoreRoot, options: IStoreOptions) {\n super(storeRoot, options)\n makeObservable(this)\n }\n\n /**\n * Init all EntityApps.\n */\n initApps(apps: ServerProperties['license']['apps']) {\n this._setProductsApps(apps)\n this._setPagesApps()\n }\n\n /**\n * Open the main navigation and update the layout preferences.\n */\n openMainNavigation() {\n this.storeDrawerMainNavigation.openDrawer()\n\n this._layoutPreferences.mainNavigation = 'opened'\n\n this._saveLayoutPreferencesInLocalStorage(this._layoutPreferences)\n }\n\n /**\n * Close the main navigation and update the layout preferences.\n */\n closeMainNavigation() {\n this.storeDrawerMainNavigation.closeDrawer()\n\n this._layoutPreferences.mainNavigation = 'closed'\n this._saveLayoutPreferencesInLocalStorage(this._layoutPreferences)\n }\n\n /**\n * Toggle main navigation.\n */\n toggleMainNavigation() {\n this.storeDrawerMainNavigation.isDrawerOpened\n ? this.closeMainNavigation()\n : this.openMainNavigation()\n }\n\n /**\n * Set apps links from hard-coded PAGE_APPS.\n */\n private _setPagesApps(): this {\n StrictObject.entries(PAGE_APPS).forEach(([appName, appEntity]) =>\n this._setApp(appName, appEntity)\n )\n return this\n }\n\n /**\n * Set apps links from PRODUCT_APPS and from API response.\n */\n private _setProductsApps(apps: ServerProperties['license']['apps']): this {\n StrictObject.entries(PRODUCTS_APPS).forEach(\n ([tenableProduct, appEntity]) => {\n // keep only apps defined in fetched apps\n if (!appEntity) {\n return\n }\n\n const appLicense = apps[tenableProduct]\n\n // keep only apps returned by the server\n if (!appLicense) {\n return\n }\n\n // keep only enabled apps in addition to the \"one\" app so we can leverage T1 license meta data for expiration message\n if (!appLicense.enabled && tenableProduct !== 'one') {\n return\n }\n\n this._setApp(tenableProduct, appEntity, appLicense)\n }\n )\n\n return this\n }\n\n /**\n * Save layout preference in the local storage.\n */\n private _saveLayoutPreferencesInLocalStorage(\n layoutPreferences: ILayoutPreferences\n ): this {\n this.storeRoot.environment.localStorage?.setItem(\n LocalStorageKey.Layout,\n JSON.stringify(layoutPreferences)\n )\n return this\n }\n\n /**\n * Actions\n */\n\n /**\n * Set entity app.\n */\n @action\n private _setApp(\n appName: AppNameOrProduct,\n appEntity: EntityApp,\n appLicense?: AppLicense\n ) {\n appEntity\n .setAppLicense(appLicense)\n .setWorkspaceDomain(\n this.storeRoot.config.services.serverProperties?.parameters\n ?.workspaceDomain ?? null\n )\n .setNavigateFn(url => {\n // Set localstorage first, so T.io redirects to the proper app\n if (appEntity.localStorageSelectedApplication) {\n this.storeRoot.environment.localStorage?.setItem(\n LocalStorageKey.selectedApplication,\n appEntity.localStorageSelectedApplication\n )\n }\n\n // delegate the redirection to the navigateFn passed at TUL initialization\n if (this.storeRoot.environment.config.app.handlers?.onTulNavigate) {\n this.storeRoot.environment.config.app.handlers.onTulNavigate({\n tulApi: this.storeRoot.tulApi,\n url\n })\n\n this.storeRoot.stores.storeLayout.storeDrawerMainNavigation.closeDrawer()\n }\n })\n\n this.$apps.set(appName, appEntity)\n }\n\n /**\n * Highlight the selected app in app switcher.\n *\n * Usage:\n *\n * tulApi.setCurrentAppSelected('cns')\n */\n @action\n setCurrentAppSelected(appName: Maybe<AppNameOrProduct>): this {\n this.$currentAppSelected.set(appName)\n return this\n }\n\n /**\n * Allow hamburger icon to switch through api.\n *\n * Usage:\n *\n * tulApi.setToggleMainNavigation(true)\n */\n @action\n setToggleMainNavigation(state: boolean): this {\n if (this.storeDrawerMainNavigation.isDrawerOpened === state) {\n return this\n }\n\n !state ? this.closeMainNavigation() : this.openMainNavigation()\n const payload = {\n isNavigationOpen: this.isNavigationOpened,\n nativeEvent: undefined\n }\n const options: CustomEventInit = { bubbles: true, composed: true }\n const navigationEvent = new NavigationEvent(\n NavigationEvent.UNIVERSAL_NAVIGATION_BUTTON_CLICKED,\n payload,\n options\n )\n document.dispatchEvent(navigationEvent)\n const tulEvent: ITulEventHamburgerOnClick = {\n eventName: TulEvent.onTulEventHamburgerClick,\n detail: {\n nativeEvent: undefined,\n navigationOpened: this.isNavigationOpened,\n tulApi: this.storeRoot.tulApi\n }\n }\n const cusOptions: Partial<CustomEvent<TulEventDetail>> = {\n detail: { ...tulEvent.detail, ...{ tulApi: this.storeRoot.tulApi } },\n bubbles: true,\n composed: true\n }\n\n const customEvent = new CustomEvent(tulEvent.eventName, cusOptions)\n\n this.storeRoot.tulRoot?.dispatchEvent(customEvent)\n this.storeRoot.environment.config.app.handlers?.onTulHamburgerClick?.({\n tulEvent\n })\n return this\n }\n\n /**\n * Highlight the selected user profile menu in user profile panel.\n *\n * Usage:\n *\n * tulApi.setSelectedUserProfileMenuItem('viewDocumentation')\n */\n @action\n setSelectedUserProfileMenuItem(menu: string): this {\n this.$selectedUserProfileMenuItem.set(menu)\n return this\n }\n\n /**\n * Highlight the selected quick actions menu in quick actions panel.\n *\n * Usage:\n *\n * tulApi.setSelectedQuickActionsMenuItem('add-dashboards')\n */\n @action\n setSelectedQuickActionsMenuItem(menu: string): this {\n this.$selectedQuickActionsMenuItem.set(menu)\n return this\n }\n\n /**\n * Highlight the selected settings menu in settings panel.\n *\n * Usage:\n *\n * tulApi.setSelectedSettingsMenuItem('accessControl')\n */\n @action\n setSelectedSettingsMenuItem(menu: string): this {\n this.$selectedSettingsMenuItem.set(menu)\n return this\n }\n\n /**\n * Highlight the selected sidebar menu in sidebar.\n *\n * Usage:\n *\n * tulApi.selectedSideBarMenuItem('dashboards')\n */\n @action\n setSelectedSideBarMenuItem(menu: string): this {\n this.$selectedSideBarMenuItem.set(menu)\n return this\n }\n\n /**\n * count to the notification badge in notification icon.\n *\n * Usage:\n *\n * tulApi.setNotificationsCount(10)\n */\n @action\n setNotificationsCount(count: number): this {\n this.$notificationsCount.set(count)\n return this\n }\n\n /**\n * count to the count badge in chat icon.\n *\n * Usage:\n *\n * tulApi.setChatCount(10)\n */\n @action\n setChatCount(count: number): this {\n this.$chatCount.set(count)\n return this\n }\n\n /**\n * count to the count badge in chat icon.\n *\n * Usage:\n *\n * tulApi.setChatCount(10)\n */\n @action\n setLanguage(language: Language): this {\n this.$language.set(language)\n return this\n }\n\n /**\n * set the breadcrumbs\n *\n * Usage:\n *\n * tulApi.setBreadcrumbs([])\n */\n @action\n setBreadcrumbs(breadcrumbs: BreadCrumbItem[]): this {\n this.$breadcrumbs.set(breadcrumbs)\n return this\n }\n\n /**\n * set the logo\n *\n * Usage:\n *\n * tulApi.setLogo([])\n */\n @action\n setLogo(source: string | HtmlString): this {\n this.$logo.set(source)\n return this\n }\n\n /**\n * FIXME\n */\n @computed\n get userMenuData(): UserMenuItemsProps {\n const hasUserProfileFromConfig = Boolean(\n this.storeRoot.config.app.userProfile\n )\n const hasUserMenuProfileFromConfig =\n hasUserProfileFromConfig &&\n Boolean(this.storeRoot.config.app.userProfile?.menu?.length)\n if (\n this.storeRoot.config.app.userProfile &&\n hasUserProfileFromConfig &&\n hasUserMenuProfileFromConfig\n ) {\n if (this.storeRoot.isInSass) {\n return mergeMenuItems(\n userMenuData,\n this.storeRoot.config.app.userProfile.menu as MenuItem[]\n )\n } else {\n return this.storeRoot.config.app.userProfile.menu as MenuItem[]\n }\n }\n return userMenuData\n }\n\n /**\n * FIXME\n *\n * @todo -- get this data from the API in this.apps and convert to required format\n */\n @computed\n get navigationData(): MenuItem[] {\n return navigationData\n }\n\n /**\n * FIXME\n *\n * Set menu data.\n * @todo -- data has to be with sub menus change accordingly\n */\n @computed\n get settingsMenuData(): MenuItem[] {\n return settingsMenuData\n }\n\n /**\n * All applications, even the one from which the license has expired.\n */\n @computed\n get allApps(): Map<AppNameOrProduct, EntityApp> {\n return this.$apps\n }\n\n /**\n * Only valid applications on which the user has a valid license.\n * The Global UX requirement is to display the app in app switcher even if the license is expired.\n * Then we can fallback to using the expiration date if enabled property is undefined or false.\n * It's up to apps to show error messages if the license is expired according to their desired UX.\n * For example, the consumer app can check: `TUL_STORE_ROOT.stores.storeLayout.apps.get('aiv').isLicenseExpired()`\n */\n @computed\n get apps(): Map<AppNameOrProduct, EntityApp> {\n const apps = Array.from(this.$apps.values()).filter(app => {\n return app.isEnabled() || app.appName === 'one'\n })\n\n return indexEntitiesToMap<EntityApp, AppNameOrProduct>(apps, 'appName')\n }\n\n /**\n * Return true if the main navigation is opened.\n */\n @computed\n get isNavigationOpened(): boolean {\n return this.storeDrawerMainNavigation.isDrawerOpened\n }\n\n /**\n * Return the final theme, computed from the default one and the configuration\n * overrides.\n */\n @computed\n get theme(): TulTheme {\n const { app } = this.storeRoot.environment.config\n\n const baseTheme = tulThemes[app.theme?.base ?? 'default']\n return deepMerge([baseTheme, app.theme?.overrides])\n }\n\n @computed\n get currentAppSelected(): Maybe<AppNameOrProduct> {\n return this.$currentAppSelected.get()\n }\n\n @computed\n get notificationsCount(): number {\n return this.$notificationsCount.get() as number\n }\n\n @computed\n get selectedSideBarMenuItem(): string {\n return this.$selectedSideBarMenuItem.get()\n }\n\n @computed\n get selectedSettingsMenuItem(): string {\n return this.$selectedSettingsMenuItem.get()\n }\n\n @computed\n get selectedUserProfileMenuItem(): string {\n return this.$selectedUserProfileMenuItem.get()\n }\n\n @computed\n get selectedQuickActionsMenuItem(): string {\n return this.$selectedQuickActionsMenuItem.get()\n }\n\n @computed\n get chatCount(): number {\n return this.$chatCount.get() as number\n }\n\n @computed\n get language(): Language {\n return this.$language.get() as Language\n }\n\n @computed\n get breadcrumbs(): BreadCrumbItem[] {\n return this.$breadcrumbs.get()\n }\n\n @computed\n get logo(): string | HtmlString {\n return this.$logo.get()\n }\n}\n","import { isDefined } from '@productive-codebases/toolbox'\nimport type { PropertiesNonNullable } from '@/types/helpers'\n\n/**\n * Return the object `obj` without null or undefined values.\n */\nexport function filterNullOrUndefinedValues<O extends object>(\n obj: O,\n omitKeys?: Array<keyof O>\n): PropertiesNonNullable<O> {\n return Array.from(Object.entries(obj)).reduce((acc, [key, value]) => {\n const isKeyOmitted = omitKeys && omitKeys.includes(key as keyof O)\n\n if (!isKeyOmitted && !isDefined(value)) {\n return acc\n }\n\n return {\n ...acc,\n [key]: value\n }\n }, {} as PropertiesNonNullable<O>)\n}\n","/* eslint-disable prefer-const */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n\nimport type { DomWindow } from '@/stores/Base/types'\n\n/**\n * Load (or unload + load) Pendo by injecting Pendo script into the DOM.\n * + Init Pendo framework.\n *\n * Note: Pendo events bindings are not removed by this function and if you reload\n * Pendo with a different key, all guides will be merged and triggered.\n *\n * As of now, we don't have a solution to clear/remove Pendo bindings to be able\n * to load new guides from a different API key in case of you want to reload TUL\n * with a different configuration.\n */\nexport function getPendoScriptContent(\n apiKey: string,\n domwindow: DomWindow,\n scriptUrl = 'https://cdn.pendo.io/agent/static/'\n) {\n const pendoScriptNode = document.querySelector(\n \"script[src^='\" + scriptUrl + \"']\"\n )\n\n // if Pendo already present, remove it from window and from the DOM\n if (pendoScriptNode) {\n // remove Pendo session\n // FIXME - it does not remove events attached by Pendo script loaded dynamically\n domwindow.pendo?.clearSession()\n\n // Delete global object\n delete domwindow.pendo\n\n // Remove the Pendo init script\n pendoScriptNode.remove()\n }\n\n return new Promise(resolve => {\n function loadPendo(p: any, e: any, n: any, d: any, o: any) {\n let v: any\n let w: any\n let x: any\n let y: any\n let z: any\n\n o = p[d] = p[d] || {}\n o._q = []\n v = ['initialize', 'identify', 'updateOptions', 'pageLoad']\n\n for (w = 0, x = v.length; w < x; ++w) {\n ;(function (m) {\n o[m] =\n o[m] ||\n function () {\n o._q[m === v[0] ? 'unshift' : 'push'](\n // eslint-disable-next-line prefer-rest-params\n [m].concat([].slice.call(arguments, 0))\n )\n }\n })(v[w])\n }\n\n // Create a `<script>` tag linked to your application-specific Agent build from our CDN...\n y = e.createElement(n)\n y.async = !0\n y.src = `${scriptUrl}${apiKey}/pendo.js`\n y.addEventListener('load', resolve)\n z = e.getElementsByTagName(n)[0]\n z.parentNode.insertBefore(y, z)\n }\n\n return loadPendo(domwindow, document, 'script', 'pendo', {})\n })\n}\n","import type StoreRoot from '@/stores/StoreRoot'\nimport { getPendoScriptContent } from './getPendoScriptContent'\n\n/**\n * Load the Pendo script according to the enviroment.\n */\nexport function addPendoScript(\n storeRoot: StoreRoot,\n apiKey: string,\n scriptUrl?: string\n): void {\n if (storeRoot.environment.envName === 'stubbed') {\n return\n }\n\n getPendoScriptContent(apiKey, storeRoot.environment.window, scriptUrl)\n}\n","/**\n * Create user for Pendo.\n */\nexport const pendoAnonymousId = '99999999-9999-9999-9999-999999999999'\n","import { ensureArray } from '@productive-codebases/toolbox'\nimport type { IPendoMetadata } from '@/types/tul'\n\nexport function buildPendoMetadata(\n metadata: IPendoMetadata['visitor'] | IPendoMetadata['account']\n): pendo.Metadata {\n return ensureArray(metadata).reduce((acc, metadata_) => {\n return {\n ...acc,\n [metadata_.name]: metadata_.value\n }\n }, {} as pendo.Metadata)\n}\n","import type { Maybe } from '@/types/helpers'\nimport type { IPendoMetadata } from '@/types/tul'\nimport { pendoAnonymousId } from './consts'\nimport { buildPendoMetadata } from './helpers'\nimport type { IIdentityMetadata, IPendoAccountMetadata } from './types'\n\n/**\n * Create IdentityMetadata for Pendo initialization.\n */\nexport function createAccount(\n identityMetadata: IIdentityMetadata,\n customMetadata?: IPendoMetadata['account']\n): Maybe<IPendoAccountMetadata> {\n const {\n optOut = false,\n userUuid,\n containerUuid,\n site = null\n } = identityMetadata\n\n const pendoMetadata = buildPendoMetadata(customMetadata)\n\n const anonymousAccount: IPendoAccountMetadata = {\n id: `${pendoAnonymousId}-1`,\n user_uuid: 'N/A',\n container_uuid: `${pendoAnonymousId}-2`,\n site: 'N/A',\n ...pendoMetadata\n }\n\n // Return anonymyzed user when tracking is disabled.\n if (optOut) {\n return anonymousAccount\n }\n\n if (!containerUuid || !userUuid || !site) {\n return null\n }\n\n const account: IPendoAccountMetadata = {\n id: containerUuid,\n user_uuid: userUuid,\n container_uuid: containerUuid,\n site,\n ...pendoMetadata\n }\n\n return account\n}\n","import type { Maybe } from '@/types/helpers'\nimport type { IPendoMetadata } from '@/types/tul'\nimport { pendoAnonymousId } from './consts'\nimport { buildPendoMetadata } from './helpers'\nimport type { IIdentityMetadata, IPendoVisitorMetadata } from './types'\n\n/**\n * Create IdentityMetadata for Pendo initialization.\n */\nexport function createVisitor(\n identityMetadata: IIdentityMetadata,\n customMetadata?: IPendoMetadata['visitor']\n): Maybe<IPendoVisitorMetadata> {\n const {\n optOut = false,\n userUuid,\n containerUuid,\n role = 'N/A'\n } = identityMetadata\n\n const pendoMetadata = buildPendoMetadata(customMetadata)\n\n const anonymousVisitor: IPendoVisitorMetadata = {\n id: `${pendoAnonymousId}-1`,\n user_uuid: 'N/A',\n container_uuid: `${pendoAnonymousId}-2`,\n role: 'N/A',\n ...pendoMetadata\n }\n\n // Return anonymyzed user when tracking is disabled.\n if (optOut) {\n return anonymousVisitor\n }\n\n if (!userUuid || !containerUuid || !role) {\n return null\n }\n\n const visitor: IPendoVisitorMetadata = {\n id: `${containerUuid}-${userUuid}`,\n user_uuid: userUuid,\n container_uuid: containerUuid,\n role,\n ...pendoMetadata\n }\n\n return visitor\n}\n","import { deepMerge } from '@productive-codebases/toolbox'\nimport { filterNullOrUndefinedValues } from '@/libs/helpers/objects/filterNullOrUndefinedValues'\nimport { newLogger } from '@/libs/logger'\nimport { addPendoScript } from '@/libs/pendo/addPendoScript'\nimport { createAccount } from '@/libs/pendo/createAccount'\nimport { createVisitor } from '@/libs/pendo/createVisitor'\nimport { getRoleNameFromPermission } from '@/libs/rbac/roles'\nimport type { Maybe } from '@/types/helpers'\nimport type { IPendoData } from '@/types/tul'\nimport StoreBase from '../Base/StoreBase'\nimport type { IStoreOptions } from '../Base/types'\nimport StoreFlags from '../StoreFlags'\nimport type StoreRoot from '../StoreRoot'\n\nexport default class StorePendo extends StoreBase<StoreRoot, IStoreOptions> {\n public storeFlagsFetchPendoData = new StoreFlags(this.storeRoot, {})\n\n private _pendoData: Maybe<IPendoData> = null\n\n /* Private */\n\n private _logger = newLogger('tul')('pendo')\n\n /**\n * Initialize Pendo.\n */\n initPendo(): Promise<void> {\n if (this.storeRoot.environment.config.services.pendo?.enabled !== true) {\n return Promise.resolve()\n }\n\n const { parameters } = this.storeRoot.environment.config.services.pendo\n\n if (!parameters) {\n this._logger('error')('Missing Pendo parameters in TUL configuration')\n return Promise.resolve()\n }\n\n return this._fetchInitPendoData()\n .then(() => {\n if (parameters.scriptUrl) {\n return addPendoScript(\n this.storeRoot,\n parameters.apikey,\n parameters.scriptUrl\n )\n }\n return addPendoScript(this.storeRoot, parameters.apikey)\n })\n .then(() => {\n const { pendo } = this.storeRoot.environment.window\n\n if (!pendo) {\n throw new Error('Pendo is not defined. Script loading has failed?')\n }\n\n if (!this.pendoData) {\n throw new Error(\n 'Unable to get Pendo init data, check the session and/or Pendo fetched data if defined'\n )\n }\n\n const visitor = createVisitor(\n filterNullOrUndefinedValues({\n optOut: false, // TODO AI-707 Add ability to opt out for Fedramp users\n userUuid: this.pendoData.uuid,\n containerUuid: this.pendoData.containerUuid,\n role: getRoleNameFromPermission(this.pendoData.permissions)\n }),\n this.storeRoot.environment.config.services.pendo?.metadata?.visitor\n )\n\n const account = createAccount(\n filterNullOrUndefinedValues({\n optOut: false, // TODO AI-707 Add ability to opt out for Fedramp users\n userUuid: this.pendoData.uuid,\n containerUuid: this.pendoData.containerUuid,\n site: this.pendoData.siteId\n }),\n this.storeRoot.environment.config.services.pendo?.metadata?.account\n )\n\n if (!visitor || !account) {\n throw new Error(\n 'Unable to build visitor and account identities. Check Pendo init data.'\n )\n }\n\n const options: pendo.InitOptions = {\n disablePersistence: true,\n visitor,\n account\n }\n\n const mergedOptions = deepMerge([\n options,\n this.storeRoot.environment.config.services.pendo?.initOptions\n ])\n\n pendo.initialize(mergedOptions)\n\n this._logger('info')('Init done with options %o', options)\n })\n\n .catch(err => {\n this._logger('warn')(\n 'Error during Pendo initialization: %o',\n err.message\n )\n throw err\n })\n }\n\n /**\n * Return Pendo data according to the context (session available and/or custom Pendo init).\n */\n get pendoData(): Maybe<IPendoData> {\n const session =\n this.storeRoot.stores.storeAuthentication.session?.rawSession\n\n if (this._pendoData) {\n return {\n containerUuid: this._pendoData.containerUuid,\n uuid: this._pendoData.uuid,\n siteId: this._pendoData.siteId,\n permissions: this._pendoData.permissions\n }\n }\n\n if (session) {\n const siteId =\n this.storeRoot.stores.storeAuthentication.serverProperties?.analytics\n .siteId\n\n return {\n containerUuid: session.containerUuid,\n uuid: session.uuid,\n siteId: siteId ?? '',\n permissions: session.permissions\n }\n }\n\n return null\n }\n\n /**\n * Private\n */\n\n /**\n * Fetch data required by Pendo from an external handler (if defined).\n */\n private _fetchInitPendoData(): Promise<void> {\n const { services } = this.storeRoot.environment.config\n\n if (!services.pendo?.pendoDataGetter) {\n return Promise.resolve()\n }\n\n this.storeFlagsFetchPendoData.loading()\n\n return services.pendo\n .pendoDataGetter()\n .then(pendoData => {\n this._pendoData = pendoData\n\n this.storeFlagsFetchPendoData.success()\n })\n .catch(err => {\n this.storeFlagsFetchPendoData.fail()\n\n // Forward the exception to the caller\n throw err\n })\n }\n\n closeResourceCenter = (event: Event | CustomEvent) => {\n if (!this.storeRoot.environment.config.services.pendo?.enabled) {\n return\n }\n const pendoResourceContainerId = 'pendo-resource-center-container'\n const pendoResourceContainer = document.getElementById(\n pendoResourceContainerId\n )\n const { pendo } = this.storeRoot.environment.window\n\n if (event instanceof CustomEvent) {\n if (pendo && pendoResourceContainer) {\n pendo.BuildingBlocks.BuildingBlockResourceCenter.dismissResourceCenter()\n }\n return\n }\n const isInPendoWindow = (event.target as Element).closest(\n `#${pendoResourceContainerId}`\n )\n if (pendo && pendoResourceContainer && !isInPendoWindow) {\n pendo.BuildingBlocks.BuildingBlockResourceCenter.dismissResourceCenter()\n }\n }\n}\n","import type StoreRoot from '@/stores/StoreRoot'\n\n/**\n * Load the Telemetry framework according to the enviroment.\n */\nexport function getFrameworkBrowserTelemetry(storeRoot: StoreRoot) {\n if (storeRoot.environment.envName === 'stubbed') {\n return Promise.resolve()\n }\n // @ts-ignore\n return import('@/libs/telemetry/framework-browser-telemetry.js')\n}\n","import { deepMerge } from '@productive-codebases/toolbox'\nimport { newLogger } from '@/libs/logger'\nimport { getRoleNameFromPermission } from '@/libs/rbac/roles'\nimport { getFrameworkBrowserTelemetry } from '@/libs/telemetry'\nimport type { Maybe } from '@/types/helpers'\nimport StoreBase from '../Base/StoreBase'\nimport type { IStoreOptions } from '../Base/types'\nimport StoreFlags from '../StoreFlags'\nimport type StoreRoot from '../StoreRoot'\nimport type {\n ITelemetryEnableMetadata,\n ITelemetryExternalScriptAPI,\n ITelemetryIdentifyMetadata,\n ITelemetryTraits,\n ITrackingEventMetadata,\n ParamsFormSubmitted,\n ParamsPageLeft,\n ParamsPageVisited,\n TelemetryIdentifyMetadata\n} from './types'\n\nexport default class StoreTelemetry extends StoreBase<\n StoreRoot,\n IStoreOptions\n> {\n public storeFlagsInitTelemetry = new StoreFlags(this.storeRoot, {})\n\n /**\n * License mode retrieved here:\n * https://github.eng.tenable.com/Product/tio-ui/blob/0e2341ae06773ca0b0e0ff4266eff90ff2260a4f/libs/tio/common/src/constants.ts#L76-L88\n */\n public readonly licenseMode = {\n core: 'core',\n properties: 'properties',\n license: 'license',\n apps: 'apps',\n expired: 'expired',\n type: 'type',\n standard: 'standard',\n evaluation: 'evaluation',\n none: 'none',\n mode: 'mode',\n hideClassicUI: 'hide_classic_ui'\n }\n\n /**\n * Private\n */\n\n private _logger = newLogger('tul')('telemetry')\n\n private _lastDatePageVisited = new Date()\n\n /**\n * Initialize telemetry tracking in Amplitude.\n *\n * /!\\ Don't use storeFlagsInitTelemetry here since Amplitude loading should not block\n * the UI. storeFlagsInitTelemetry are still sent in the custom onInit function of\n * the configuration.\n */\n initTelemetry(): Promise<void> {\n if (!this.storeRoot.environment.config.services.telemetry?.enabled) {\n return Promise.resolve()\n }\n\n const { parameters } = this.storeRoot.environment.config.services.telemetry\n\n if (!parameters) {\n this._logger('error')('Missing Telemetry parameters in TUL configuration')\n return Promise.resolve()\n }\n\n return getFrameworkBrowserTelemetry(this.storeRoot)\n .then(() => {\n if (!this.storeRoot.environment.config.services.telemetry?.enabled) {\n return\n }\n\n const session =\n this.storeRoot.stores.storeAuthentication.session?.rawSession\n\n if (\n !this.storeRoot.stores.storeAuthentication.serverProperties ||\n !session\n ) {\n throw new Error('Init failed - Some metadata is missing')\n }\n\n // const { namespace, development, debug } = parameters\n\n const {\n analytics: { siteId }\n } = this.storeRoot.stores.storeAuthentication.serverProperties\n\n const { containerName, permissions, uuid, containerUuid } = session\n\n if (!containerName || !permissions || !uuid || !containerUuid) {\n throw new Error('Init failed - Some metadata is missing')\n }\n\n this.enableTelemetry({\n parameters,\n siteId\n })\n\n this.identifyTelemetry({\n session,\n properties: this.storeRoot.stores.storeAuthentication.serverProperties\n })\n })\n .catch(err => {\n this._logger('warn')('Error during initialization')\n this._logger('debug')(err.message)\n\n throw err\n })\n }\n\n // Date converter UNIX to ISO\n private _unixDateToIso = (unixDate: string) =>\n new Date(parseInt(unixDate) * 1000).toISOString().split('T')[0]\n\n /**\n * Get the human readable diff between two dates\n */\n private _dateDiffInDays = (startDate = new Date(), endDate = new Date()) => {\n const MS = 1000\n const SEC_MIN = 60\n const HOURS = 24\n const MS_PER_DAY = MS * SEC_MIN * SEC_MIN * HOURS\n // Discard the time and time-zone information.\n const utc1 = Date.UTC(\n startDate.getFullYear(),\n startDate.getMonth(),\n startDate.getDate()\n )\n const utc2 = Date.UTC(\n endDate.getFullYear(),\n endDate.getMonth(),\n endDate.getDate()\n )\n\n return Math.floor((utc2 - utc1) / MS_PER_DAY)\n }\n\n private _convertUnixTimeToDate = (timestamp: number) => {\n const dateValue = new Date(timestamp)\n const dateValueConverted =\n dateValue.getDate() +\n '-' +\n dateValue.getMonth() +\n '-' +\n dateValue.getFullYear()\n return dateValueConverted\n }\n\n /**\n * @param {object} app - The app object containing app license information.\n * @param {bool} date - The boolean to get the ISO date string.\n */\n private _checkUserExpirationAndGetDate = (app: any, date = false) => {\n const expirationDate = app?.expiration_date || app?.expiration_data\n\n if (date) {\n return app && expirationDate ? this._unixDateToIso(expirationDate) : ''\n }\n // Return expired if there is no app entitlement or the entitlement is expired\n if (\n !app ||\n (expirationDate &&\n this._dateDiffInDays(\n new Date(this._convertUnixTimeToDate(parseInt(expirationDate)))\n ) > 0)\n ) {\n return true\n }\n\n return false\n }\n\n private _getUserProperties = ({\n consec,\n lumin,\n pci,\n was,\n cns,\n type,\n expirationDate,\n evaluation\n }: any) => {\n let licenseTep =\n type === 'ep' ? this.licenseMode.standard : this.licenseMode.none\n let licenseVm = evaluation\n ? this.licenseMode.evaluation\n : this.licenseMode.standard\n let licensePci = pci ? pci.mode : this.licenseMode.none\n let licenseLumin = lumin ? lumin.mode : this.licenseMode.none\n let licenseConsec = consec ? consec.mode : this.licenseMode.none\n let licenseWas = was ? was.mode : this.licenseMode.none\n let licenseCns = cns ? cns?.mode : this.licenseMode.none\n\n if (expirationDate) {\n if (\n type &&\n this._dateDiffInDays(\n new Date(this._convertUnixTimeToDate(expirationDate))\n ) > 0\n ) {\n licenseTep = this.licenseMode.expired\n }\n\n if (\n this._dateDiffInDays(\n new Date(this._convertUnixTimeToDate(expirationDate))\n ) > 0\n ) {\n licenseVm = this.licenseMode.expired\n }\n }\n\n if (this._checkUserExpirationAndGetDate(consec)) {\n licenseConsec = this.licenseMode.expired\n }\n\n if (this._checkUserExpirationAndGetDate(pci)) {\n licensePci = this.licenseMode.expired\n }\n\n if (this._checkUserExpirationAndGetDate(lumin)) {\n licenseLumin = this.licenseMode.expired\n }\n\n if (this._checkUserExpirationAndGetDate(was)) {\n licenseWas = this.licenseMode.expired\n }\n\n if (this._checkUserExpirationAndGetDate(cns)) {\n licenseCns = this.licenseMode.expired\n }\n\n return {\n licenseTep,\n licenseVm,\n licenseConsec,\n licensePci,\n licenseLumin,\n licenseWas,\n licenseCns,\n tepExpirationDate:\n type && expirationDate ? this._unixDateToIso(expirationDate) : '',\n vmExpirationDate: expirationDate\n ? this._unixDateToIso(expirationDate)\n : '',\n pciExpirationDate: this._checkUserExpirationAndGetDate(pci, true),\n consecExpirationDate: this._checkUserExpirationAndGetDate(consec, true),\n luminExpirationDate: this._checkUserExpirationAndGetDate(lumin, true),\n wasExpirationDate: this._checkUserExpirationAndGetDate(was, true),\n cnsExpirationDate: this._checkUserExpirationAndGetDate(cns, true)\n }\n }\n\n private _extractTraitsForTelemetry = (\n telemetryMetaData: TelemetryIdentifyMetadata\n ): { userUuid: string; traits: ITelemetryTraits } => {\n const {\n containerName,\n permissions,\n uuid: userUuid,\n containerUuid\n } = telemetryMetaData.session\n\n const { isMsspParent } = this.storeRoot.stores.storeAssistMode\n\n const theme = document?.documentElement?.getAttribute('data-theme')\n\n const userProperties = this._getUserProperties(telemetryMetaData.properties)\n\n const traits = {\n container_id: containerUuid,\n site_id: telemetryMetaData.properties.analytics.siteId,\n role: getRoleNameFromPermission(permissions),\n is_mssp_account: isMsspParent ? 'Yes' : 'No',\n license_vm: userProperties.licenseVm,\n theme: theme ?? 'light',\n eval: /Eval/gi.test(containerName),\n vm_expiration_date: userProperties.vmExpirationDate,\n ...(userProperties.licenseTep !== this.licenseMode.none && {\n license_tep: userProperties.licenseTep,\n tep_expiration_date: userProperties.tepExpirationDate\n }),\n ...(userProperties.licensePci !== this.licenseMode.none && {\n license_pci: userProperties.licensePci,\n pci_expiration_date: userProperties.pciExpirationDate\n }),\n ...(userProperties.licenseLumin !== this.licenseMode.none && {\n license_lumin: userProperties.licenseLumin,\n lumin_expiration_date: userProperties.luminExpirationDate\n }),\n ...(userProperties.licenseConsec !== this.licenseMode.none && {\n license_consec: userProperties.licenseConsec,\n consec_expiration_date: userProperties.consecExpirationDate\n }),\n ...(userProperties.licenseWas !== this.licenseMode.none && {\n license_was: userProperties.licenseWas,\n was_expiration_date: userProperties.wasExpirationDate\n }),\n ...(userProperties.licenseCns !== this.licenseMode.none && {\n 'license_cloud-security': userProperties.licenseCns,\n 'cloud-security_expiration_date': userProperties.cnsExpirationDate\n })\n }\n\n return { userUuid, traits }\n }\n\n /**\n *\n * Enable Telemetry.\n */\n enableTelemetry(telemetryMetaData: ITelemetryEnableMetadata): this {\n const { parameters, siteId } = telemetryMetaData\n\n const isInternal = !!siteId.match(/qa-|us-2b/gi)\n\n if (!this._telemetry) {\n return this\n }\n\n const _options = {\n namespace: 'tenable-io/webui-frontend-nextgen',\n development: false,\n autotrack: true,\n debug: false,\n properties: {\n product: this.storeRoot.appId, // name of the app\n component: 'webui-frontend',\n internal: isInternal\n }\n }\n\n const options = deepMerge([_options, parameters])\n\n this._telemetry.enable(options.namespace, options)\n\n return this\n }\n\n /**\n * Identify Telemetry with the logged used.\n */\n identifyTelemetrySimple(telemetryMetaData: ITelemetryIdentifyMetadata): this {\n const { userUuid, containerUuid, containerName, siteId, permissions } =\n telemetryMetaData\n\n if (!this._telemetry) {\n return this\n }\n\n const isEval = /Eval/gi.test(containerName)\n\n this._telemetry.identify(userUuid, {\n container_id: containerUuid,\n site_id: siteId,\n role: getRoleNameFromPermission(permissions),\n eval: isEval\n })\n\n return this\n }\n\n /**\n * Identify Telemetry with the logged used.\n */\n identifyTelemetry(telemetryMetaData: TelemetryIdentifyMetadata): this {\n if (!this._telemetry) {\n return this\n }\n\n const { userUuid, traits } =\n this._extractTraitsForTelemetry(telemetryMetaData)\n\n this._telemetry.identify(userUuid, traits)\n\n return this\n }\n\n /**\n * Log an telemetry event.\n */\n trackTelemetry(\n eventName: string,\n eventProperties?: ITrackingEventMetadata\n ): this {\n const theme =\n document?.documentElement?.getAttribute('data-theme') ?? 'light'\n this._logEvent(eventName, {\n ...eventProperties,\n ...{ language: this.storeRoot.stores.storeLayout.language ?? 'en' },\n ...{ theme: theme ?? 'light' }\n })\n return this\n }\n\n /**\n * Log the manual page the user visited.\n */\n logCustomPageVisited(pageName: string): this {\n const params: ParamsPageVisited = {\n pageName,\n href: window.location.href\n }\n\n if (this._logPageVisitedEvent(params)) {\n this._lastDatePageVisited = new Date()\n this._logger('debug')('🚀 Log page visited:', params)\n }\n\n return this\n }\n\n /**\n * Log manual the page the user left.\n */\n logCustomPageLeft(pageName: string): this {\n const timeSpent = this._getTimeSpent()\n\n const params: ParamsPageLeft = {\n pageName,\n href: window.location.href,\n timeSpent\n }\n\n if (this._logPageLeftEvent(params)) {\n this._logger('debug')('⌛ Log page left:', params)\n }\n\n return this\n }\n\n /**\n * Log the manual submit event when the user validates a form.\n */\n logCustomFormSubmitted(formName: string): this {\n const params: ParamsFormSubmitted = {\n formName\n }\n\n if (this._logFormSubmittedEvent(params)) {\n this._logger('debug')('Form submitted', params)\n }\n\n return this\n }\n\n /**\n * Log Browser PageVisited event.\n */\n logPageVisited(params?: object): this {\n if (this._logPageEvent(params)) {\n this._logger('debug')('🚀 Log Browser Page visited', params)\n }\n\n return this\n }\n\n /* Private */\n\n /**\n * Return the global amplitude object registered by the browser script.\n */\n private get _telemetry(): Maybe<ITelemetryExternalScriptAPI> {\n const { window: envWindow, envName } = this.storeRoot.environment\n const isTelemetryEnabled =\n this.storeRoot.environment.config.services.telemetry?.enabled\n\n let telemetry = null\n\n if (isTelemetryEnabled) {\n telemetry = envWindow.telemetry\n } else {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n telemetry = (window as any).telemetry\n }\n\n if (envName == 'stubbed') {\n this._logger('info')('Telemetry framework is not imported for tests')\n\n return null\n }\n\n if (!(telemetry && telemetry.enable)) {\n this._logger('warn')('Cannot enable telemetry - Missing framework')\n\n return null\n }\n\n return telemetry\n }\n\n /**\n * Compute the time stayed on a page.\n */\n private _getTimeSpent(): number {\n const startDate = this._lastDatePageVisited\n const endDate = new Date()\n\n const diffInSeconds = Math.round(\n (endDate.getTime() - startDate.getTime()) / 1000\n )\n\n return diffInSeconds\n }\n\n /**\n * Log PageVisited event.\n */\n private _logPageVisitedEvent(params: ParamsPageVisited): boolean {\n return this._logEvent('page visited', params)\n }\n\n /**\n * Log PageLeft event.\n */\n private _logPageLeftEvent(params: ParamsPageLeft): boolean {\n return this._logEvent('page left', params)\n }\n\n /**\n * Log FormSubmitted event.\n */\n private _logFormSubmittedEvent(params: ParamsFormSubmitted): boolean {\n return this._logEvent('tone / form / submitted', params)\n }\n\n /**\n * Log an event.\n */\n private _logEvent(eventName: string, params?: object): boolean {\n if (\n // check if Telemetry is enabled\n // !this.storeRoot.environment.config.services.telemetry?.enabled ||\n // and if the framework is present\n !this._telemetry ||\n // and if the user is logged in\n !this.storeRoot.stores.storeAuthentication.session\n ) {\n return false\n }\n\n this._telemetry.event(eventName, params)\n\n return true\n }\n\n /**\n * Log a browser page event.\n */\n private _logPageEvent(params?: object): boolean {\n if (\n // check if Telemetry is enabled\n // !this.storeRoot.environment.config.services.telemetry?.enabled ||\n // and if the framework is present\n !this._telemetry ||\n // and if the user is logged in\n !this.storeRoot.stores.storeAuthentication.session\n ) {\n return false\n }\n\n this._telemetry.page(params)\n\n return true\n }\n}\n","import { computed, observable } from 'mobx'\nimport type { Environment } from '@/libs/Environment'\nimport { createEnvironment } from '@/libs/Environment/createEnvironment'\nimport { translate } from '@/libs/i18n/translate'\nimport type { Translate } from '@/libs/i18n/types'\nimport { newLogger } from '@/libs/logger'\nimport { LocalStorageKey, LocalStorageSelectedApplication } from '@/types'\nimport type { HtmlString, ITulApi, ITulConfig } from '@/types/tul'\nimport { HTML_AS_STRING_REGEX } from '@/types/tul'\nimport StoreRootBase from '../Base/StoreRootBase'\nimport StoreAlerts from '../storeAlerts'\nimport StoreAssistMode from '../StoreAssistMode'\nimport StoreAuthentication from '../StoreAuthentication'\nimport StoreFeatureFlags from '../storeFeatureFlags'\nimport StoreLayout from '../StoreLayout'\nimport StorePendo from '../StorePendo'\nimport StoreTelemetry from '../StoreTelemetry'\nimport type { IAllStores } from '../types'\n\nconst urlsToIgnoreForReload = [\n '/asset-inventory',\n '/cyber-asset-management',\n '/exposure-view',\n '/apa',\n '/cns',\n '/webapp'\n]\nexport default class StoreRoot<\n TEnvironment extends Environment = Environment\n> extends StoreRootBase<TEnvironment, IAllStores> {\n static instance: StoreRoot\n\n private $tulRoot = observable.box<HTMLElement>()\n\n /**\n * TUL initialization by querying different services according to the configuration.\n */\n async init(tulConfig: ITulConfig): Promise<ITulApi> {\n try {\n await this._initSession(tulConfig)\n\n await Promise.all([\n this._initServerProperties(tulConfig),\n this._initFeatureFlags(tulConfig)\n ])\n\n // Initing alerts\n // await this._initAlerts(tulConfig)\n\n // Initing pendo (non blocking so no awaiting)\n this._initPendo(tulConfig)\n\n // Initing Telemetry (non blocking so no awaiting)\n this._initTelemetry(tulConfig)\n\n // Initiating Language\n this._initLanguage(tulConfig)\n\n // Setting the logo\n this._initAppLogo(tulConfig)\n\n this.logger('debug')('Initialization done with: %o', tulConfig)\n\n return this.tulApi\n } catch (err) {\n if (err instanceof Error) {\n this.logger('error')(`Initialization failed: %s`, err.message)\n\n if (err.stack) {\n this.logger('debug')(err.stack)\n }\n }\n\n // forward exception to let the underlying app handles the error\n throw err\n }\n }\n\n /**\n * Init feature-flags from WUG endpoint.\n */\n async _initFeatureFlags(config: ITulConfig): Promise<this> {\n if (config.services.featureFlags?.enabled !== true) {\n return this\n }\n\n await this.stores.storeFeatureFlags.fetchFeatureFlags()\n\n return this\n }\n\n /**\n * Init of the user's session.\n */\n async _initSession(config: ITulConfig): Promise<this> {\n if (config.services.session?.enabled === false) {\n return this\n }\n\n const disableIronToken =\n config.services.session?.parameters?.disableIronToken ?? false\n\n if (!disableIronToken) {\n this.stores.storeAuthentication.saveAndApplyIronToken()\n }\n\n await this.stores.storeAuthentication.fetchSession()\n\n this.stores.storeAuthentication.setupSessionTimeoutPoll()\n\n return this\n }\n\n /**\n * Init of server and license informations.\n */\n async _initServerProperties(config: ITulConfig): Promise<this> {\n if (config.services.serverProperties?.enabled === false) {\n return this\n }\n\n await this.stores.storeAuthentication.fetchServerProperties()\n\n return this\n }\n\n /**\n * Init alerts.\n */\n // async _initAlerts(config: ITulConfig): Promise<this> {\n // if (config.services.alerts?.enabled === false) {\n // return this\n // }\n\n // this.logger('warn')('Alerts are not yet implemented')\n\n // return this\n // }\n\n /**\n * Init of in-app help (Pendo).\n */\n async _initPendo(config: ITulConfig): Promise<this> {\n if (this.stores.storeAuthentication.isFedramp()) {\n this.logger('info')('Pendo cant be enabled on Fedramp platforms.')\n return this\n }\n\n if (config.services.pendo?.enabled === false) {\n return this\n }\n\n await this.stores.storePendo.initPendo()\n\n return this\n }\n\n /**\n * Init of Telemetry (Amplitude).\n */\n async _initLanguage(config: ITulConfig): Promise<this> {\n if (this.stores.storeLayout.language) {\n const { language } = config.i18n ?? 'en'\n this.stores.storeLayout.setLanguage(language)\n return this\n }\n\n return this\n }\n\n /**\n * Init of appLogo.\n */\n async _initAppLogo(config: ITulConfig): Promise<this> {\n const { name, directory, source } = config.app.logo\n\n // explicit error in case of\n if (!name) {\n throw new Error(\n 'The name of the logo has not been set properly in config'\n )\n } else if (!directory && !source) {\n throw new Error('At least directory or source field has to be valid.')\n } else {\n if (this.isLogoFromDirectory) {\n // this is to force governance if the logo management through a fixed set happens\n this.stores.storeLayout.setLogo(`${directory}/${name}.svg`)\n } else {\n if (this.isLogoFromSource) {\n this.stores.storeLayout.setLogo(source as HtmlString)\n } else if (!this.isLogoFromDirectory) {\n throw new Error(\n 'The directory of the logo has not been set properly in config'\n )\n } else {\n throw new Error(\n 'The source of the logo has not been set properly in config'\n )\n }\n }\n }\n\n return this\n }\n\n /**\n * Init of Telemtry (Amplitude).\n */\n async _initTelemetry(config: ITulConfig): Promise<this> {\n if (this.stores.storeAuthentication.isFedramp()) {\n this.logger('info')('Telemetry cant be enabled on Fedramp platforms.')\n return this\n }\n\n if (config.services.telemetry?.enabled === false) {\n return this\n }\n\n // default behavior\n await this.stores.storeTelemetry.initTelemetry()\n\n return this\n }\n\n /**\n * Handle redirects to app on app-switcher\n */\n redirectToClickedApp(path: string, appId: string, newTab = false) {\n // Setting the local storage is required\n // in order to keep the redirect working on T.io\n if (appId) {\n this.environment.localStorage?.setItem(\n LocalStorageKey.selectedApplication,\n appId\n )\n } else {\n this.environment.localStorage?.removeItem(\n LocalStorageKey.selectedApplication\n )\n }\n\n if (newTab && window) {\n window.open(path, '_blank')\n return\n }\n\n if (window) {\n window.document.location.href = `${path}`\n\n // reload to self trigger the app - needed in case of platform-settings user assist mode kind of scenarios and tio\n // in such situations hash change wont trigger a refresh/reload and hence the state will not be refreshed\n if (\n urlsToIgnoreForReload.filter(item => path.includes(item)).length === 0\n ) {\n setTimeout(() => {\n window.location.reload()\n }, 500)\n }\n }\n }\n\n /**\n * Handle redirects to t.io app\n */\n redirectToTio(\n path: string,\n selectedApp = LocalStorageSelectedApplication.tenable_io\n ) {\n // Setting the local storage is required\n // in order to keep the redirect working on T.io\n this.environment.localStorage?.setItem(\n LocalStorageKey.selectedApplication,\n selectedApp\n )\n\n window.document.location.href = `/tio/app.html#/${path}`\n }\n\n /**\n * Set the root of the TUL ie; an element from the application\n */\n setTulRoot(element: HTMLElement): this {\n this.$tulRoot.set(element)\n return this\n }\n\n /**\n * Return the configuration.\n */\n get config(): ITulConfig {\n return this.environment.config\n }\n\n get logger() {\n return newLogger('tul')('runtime')\n }\n\n /**\n * Return the root element.\n */\n get tulRoot(): HTMLElement {\n return this.$tulRoot.get() as HTMLElement\n }\n\n /**\n * Return the translate function, configured for a language.\n */\n get translator(): Translate {\n return translate\n }\n\n /**\n * Return TUL API.\n */\n get tulApi(): ITulApi {\n return {\n _storeRoot: this,\n _tulRoot: this.tulRoot,\n trackTelemetry: this.stores.storeTelemetry.trackTelemetry.bind(\n this.stores.storeTelemetry\n ),\n logCustomPageVisited:\n this.stores.storeTelemetry.logCustomPageVisited.bind(\n this.stores.storeTelemetry\n ),\n logCustomPageLeft: this.stores.storeTelemetry.logCustomPageLeft.bind(\n this.stores.storeTelemetry\n ),\n logPageVisited: this.stores.storeTelemetry.logPageVisited.bind(\n this.stores.storeTelemetry\n ),\n setCurrentAppSelected: this.stores.storeLayout.setCurrentAppSelected.bind(\n this.stores.storeLayout\n ),\n setNotificationsCount: this.stores.storeLayout.setNotificationsCount.bind(\n this.stores.storeLayout\n ),\n setChatCount: this.stores.storeLayout.setChatCount.bind(\n this.stores.storeLayout\n ),\n setSelectedSideBarMenuItem:\n this.stores.storeLayout.setSelectedSideBarMenuItem.bind(\n this.stores.storeLayout\n ),\n setSelectedSettingsMenuItem:\n this.stores.storeLayout.setSelectedSettingsMenuItem.bind(\n this.stores.storeLayout\n ),\n setSelectedUserProfileMenuItem:\n this.stores.storeLayout.setSelectedUserProfileMenuItem.bind(\n this.stores.storeLayout\n ),\n setSelectedQuickActionsMenuItem:\n this.stores.storeLayout.setSelectedQuickActionsMenuItem.bind(\n this.stores.storeLayout\n ),\n setLanguage: this.stores.storeLayout.setLanguage.bind(\n this.stores.storeLayout\n ),\n setLogo: this.stores.storeLayout.setLogo.bind(this.stores.storeLayout),\n setToggleMainNavigation:\n this.stores.storeLayout.setToggleMainNavigation.bind(\n this.stores.storeLayout\n ),\n setBreadcrumbs: this.stores.storeLayout.setBreadcrumbs.bind(\n this.stores.storeLayout\n )\n }\n }\n\n /**\n * Return the current App id\n */\n get appId(): string {\n return this.config.app.id\n }\n\n /**\n * Return the impersonation state\n */\n get disableImpersonation(): boolean {\n return Boolean(this.config?.impersonation?.disable ?? false)\n }\n\n /* Private */\n\n /**\n * Instanciate all stores.\n */\n _instanciateStores(): IAllStores {\n return {\n storeRoot: this,\n storeLayout: new StoreLayout(this, {}),\n storeAuthentication: new StoreAuthentication(this, {}),\n storeAlerts: new StoreAlerts(this, {}),\n storePendo: new StorePendo(this, {}),\n storeTelemetry: new StoreTelemetry(this, {}),\n storeAssistMode: new StoreAssistMode(this, {}),\n storeFeatureFlags: new StoreFeatureFlags(this, {})\n }\n }\n\n /**\n * Static\n */\n\n /**\n * Singleton implementation to create StoreRoot instance.\n */\n static createRootStore(\n tulConfig: ITulConfig,\n options = { override: false }\n ): StoreRoot {\n if (this.instance && options.override === false) {\n return this.instance\n }\n\n const environment = createEnvironment(tulConfig)\n\n this.instance = new StoreRoot(environment)\n\n return this.instance\n }\n\n /**\n * Return all stores of the current instance of StoreRoot.\n * Exposed in MobxLitElement base class.\n *\n * Take an optional storeRoot instance to allow custom StoreRoot instance,\n * mainly used for unit-testing with stubbed StoreRoot instances.\n */\n static getStores(storeRoot?: StoreRoot): IAllStores {\n if (storeRoot) {\n this.instance = storeRoot\n }\n\n if (!this.instance) {\n throw new Error('StoreRoot has not been created')\n }\n\n return this.instance.stores\n }\n\n @computed\n get isLogoFromDirectory(): boolean {\n const { directory } = this.storeRoot.environment.config.app.logo\n\n if (directory) {\n return true\n }\n return false\n }\n\n @computed\n get isLogoFromSource(): boolean {\n const { source } = this.storeRoot.environment.config.app.logo\n\n if (source && HTML_AS_STRING_REGEX.test(source)) {\n return true\n }\n return false\n }\n\n @computed\n get isInSass(): boolean {\n const { as } = this.storeRoot.config\n\n return as === 'saas'\n }\n}\n","import type { CSSResult } from 'lit'\nimport { unsafeCSS } from 'lit'\nimport type { TulTheme, TulThemeProperty } from '@/styles/themes/types'\n\n/**\n * Define a CSS var from a theme property.\n */\nexport function themeProperty(property: TulThemeProperty): CSSResult {\n return unsafeCSS(`var(${themePropertyToCssVar(property)})`)\n}\n\n/**\n * Replace CSS vars by theme properties values.\n */\nexport function setStyleProperties(\n style: CSSStyleDeclaration,\n partialTheme: Partial<TulTheme>\n) {\n const properties = Object.keys(partialTheme) as TulThemeProperty[]\n\n properties.forEach(property => {\n const value = partialTheme[property]\n\n if (value) {\n style.setProperty(themePropertyToCssVar(property), value)\n }\n })\n}\n\n/**\n * Convert a theme property to a CSS var.\n */\nexport function themePropertyToCssVar(property: TulThemeProperty): string {\n return `--${property.replace('/', '__')}`\n}\n","import type { ReactiveElement, PropertyValues } from 'lit'\nimport type { Reaction } from 'mobx'\n\nconst reaction = Symbol('LitMobxRenderReaction')\nconst cachedRequestUpdate = Symbol('LitMobxRequestUpdate')\n\nexport type ReactiveElementConstructor = new (...args: any[]) => ReactiveElement\n\nexport interface ReactionConstructor {\n new (...args: any[]): Reaction\n}\n\nexport function MobxReactionUpdate<T extends ReactiveElementConstructor>(\n reactiveElementConstructor: T,\n ReactionConstructor: ReactionConstructor\n): T {\n return class MobxReactingElement extends reactiveElementConstructor {\n // NOTE: using a symbol here to avoid potential name collisions in derived classes\n private [reaction]: Reaction | undefined\n\n private [cachedRequestUpdate] = () => {\n this.requestUpdate()\n }\n\n public connectedCallback(): void {\n super.connectedCallback()\n\n const name = this.constructor.name || this.nodeName\n\n this[reaction] = new ReactionConstructor(\n `${name}.update()`,\n this[cachedRequestUpdate]\n )\n\n if (this.hasUpdated) {\n this.requestUpdate()\n }\n }\n\n public disconnectedCallback(): void {\n super.disconnectedCallback()\n\n if (this[reaction]) {\n this[reaction].dispose()\n this[reaction] = undefined\n }\n }\n\n protected update(changedProperties: PropertyValues): void {\n if (this[reaction]) {\n this[reaction].track(super.update.bind(this, changedProperties))\n return\n }\n\n // this should never happen, but just in case\n super.update(changedProperties)\n }\n }\n}\n","import { deepMerge } from '@productive-codebases/toolbox'\nimport { LitElement } from 'lit'\nimport { Reaction } from 'mobx'\nimport StoreRoot from '@/stores/StoreRoot'\nimport type { IAllStores } from '@/stores/types'\nimport type { TulTheme } from '@/styles/themes/types'\nimport type { TulEventDetail, TulEventUnion } from '@/types/tul'\nimport { setStyleProperties } from '../styles'\nimport { MobxReactionUpdate } from './MobxReactionUpdate'\n\n/**\n * Extends MobX LitElement reactions with useful methods used in Header implementation.\n */\nexport class MobxLitElement extends MobxReactionUpdate(LitElement, Reaction) {\n /** Custom StoreRoot instance for unit-testing mainly */\n static storeRoot: StoreRoot\n\n /**\n * Return stores instances.\n *\n * Usage:\n * const { storeRoot, storeLayout } = this.__getStores()\n */\n __getStores(): IAllStores {\n return StoreRoot.getStores(MobxLitElement.storeRoot)\n }\n\n /**\n * Shortcut to the translator function.\n *\n * Usage:\n * `<div>${this.__translator('en')('Namespace1')('Namespace2')('Translation')}</div>`\n */\n __translator = this.__getStores().storeRoot.translator\n\n /**\n * Set CSS vars values with final theme values.\n * `partialTheme` can use used to define conditional theme properties.\n */\n __applyThemeProperties(partialTheme?: Partial<TulTheme>): void {\n const { storeLayout } = StoreRoot.getStores()\n\n const theme = deepMerge([storeLayout.theme, partialTheme])\n setStyleProperties(this.style, theme)\n }\n\n /**\n * Dispatch a Tul event via document.\n * See TulEvent declaration in src/types/tul.ts.\n *\n * Usage:\n *\n * const tulEvent: ITulApplicationLogoOnClick = {\n * eventName: 'onTulApplicationLogoClick',\n * detail: {\n * url: '/',\n * tulApi: storeRoot.tulApi\n * }\n * }\n\n * this.__dispatchTulEvent(tulEvent)\n */\n __dispatchTulEvent(tulEvent: TulEventUnion): void {\n const { storeRoot } = StoreRoot.getStores()\n const options: Partial<CustomEvent<TulEventDetail>> = {\n detail: { ...tulEvent.detail, ...{ tulApi: storeRoot.tulApi } },\n bubbles: true,\n composed: true\n }\n\n const customEvent = new CustomEvent(tulEvent.eventName, options)\n\n storeRoot.tulRoot?.dispatchEvent(customEvent)\n // document.dispatchEvent(customEvent)\n }\n\n /**\n * Static\n */\n\n /**\n * Allow to set a specific StoreRoot instance for all components inheriting MobxLitElement.\n * Useful in unit-test when using a stubbed root store instance.\n *\n * Usage example:\n *\n * beforeEach(async () => {\n * storeRoot = createStoreRootWithStubs()\n * MobxLitElement.__setRootStore(storeRoot)\n * })\n */\n static __setRootStore(storeRoot: StoreRoot) {\n MobxLitElement.storeRoot = storeRoot\n }\n}\n","import type { ReactiveController, ReactiveControllerHost } from 'lit'\nimport StoreRoot from '@/stores/StoreRoot'\nimport type { NavigationConfig } from '@/types/tul'\nimport { GlobalHeaderPanels } from '@/types/tul'\nimport { NavigationEvent } from '../views/Header/NavigationEvent'\n\ntype NavigationHost = ReactiveControllerHost & {\n selectedMenuItem?: string\n}\n\nexport class UniversalNavigationController implements ReactiveController {\n host: NavigationHost\n\n private _config: any\n\n constructor(host: NavigationHost, navigationConfig: NavigationConfig) {\n // Store a reference to the host\n this.host = host\n\n // Register for lifecycle updates\n host.addController(this)\n\n this._config = navigationConfig\n }\n\n hostConnected() {\n document.addEventListener(\n NavigationEvent.UNIVERSAL_NAVIGATION_ITEM_CLICKED,\n event => this.handleNavigationItemClicked(event as CustomEvent)\n )\n }\n\n hostDisconnected() {\n document.removeEventListener(\n NavigationEvent.UNIVERSAL_NAVIGATION_ITEM_CLICKED,\n event => this.handleNavigationItemClicked(event as CustomEvent)\n )\n }\n\n handleNavigationItemClicked(event: CustomEvent) {\n this.determineEventForMenuItem(event)\n }\n\n determineEventForMenuItem(event: CustomEvent) {\n /**\n * @todo -- Since this is not a lit element, we cannot extend MobxLitElement\n * This left us with direct usage of StoreRoot.getStores() method\n * See Alternatives if possible to avoid this\n */\n const { storeRoot, storeLayout } = StoreRoot.getStores()\n switch (event.detail.host) {\n case GlobalHeaderPanels.Settings:\n storeLayout.setSelectedSettingsMenuItem(event.detail.itemId)\n storeRoot.config.app.settings?.config?.navigate?.(event.detail)\n break\n\n case GlobalHeaderPanels.Sidebar:\n // this.host.selectedMenuItem = event.detail.itemId\n storeLayout.setSelectedSideBarMenuItem(event.detail.itemId)\n storeRoot.config.app.sidebar?.config?.navigate?.(event.detail)\n break\n\n case GlobalHeaderPanels.UserProfile:\n storeLayout.setSelectedUserProfileMenuItem(event.detail.itemId)\n storeRoot.config.app.userProfile?.config?.navigate?.(event.detail)\n break\n\n case GlobalHeaderPanels.QuickActions:\n storeLayout.setSelectedQuickActionsMenuItem(event.detail.itemId)\n storeRoot.config.app.quickActions?.config?.navigate?.(event.detail)\n break\n\n default:\n this._config?.navigate?.(event.detail)\n break\n }\n }\n}\n","import { css } from 'lit'\nimport './css/light-color-variables.css'\nimport './css/dark-color-variables.css'\nimport './css/font-variables.css'\nimport './css/font-size-variables.css'\nimport './css/size-variables.css'\nimport './css/space-variables.css'\nimport './css/border-widths-variables.css'\nimport './css/z-indices-variables.css'\n\nexport const globalHeaderStyles = css``\n","/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst t={ATTRIBUTE:1,CHILD:2,PROPERTY:3,BOOLEAN_ATTRIBUTE:4,EVENT:5,ELEMENT:6},e=t=>(...e)=>({_$litDirective$:t,values:e});class i{constructor(t){}get _$AU(){return this._$AM._$AU}_$AT(t,e,i){this._$Ct=t,this._$AM=e,this._$Ci=i}_$AS(t,e){return this.update(t,e)}update(t,e){return this.render(...e)}}export{i as Directive,t as PartType,e as directive};\n//# sourceMappingURL=directive.js.map\n","import{nothing as t,noChange as i}from\"../lit-html.js\";import{Directive as r,PartType as s,directive as n}from\"../directive.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */class e extends r{constructor(i){if(super(i),this.et=t,i.type!==s.CHILD)throw Error(this.constructor.directiveName+\"() can only be used in child bindings\")}render(r){if(r===t||null==r)return this.ft=void 0,this.et=r;if(r===i)return r;if(\"string\"!=typeof r)throw Error(this.constructor.directiveName+\"() called with a non-string value\");if(r===this.et)return this.ft;this.et=r;const s=[r];return s.raw=s,this.ft={_$litType$:this.constructor.resultType,strings:s,values:[]}}}e.directiveName=\"unsafeHTML\",e.resultType=1;const o=n(e);export{e as UnsafeHTMLDirective,o as unsafeHTML};\n//# sourceMappingURL=unsafe-html.js.map\n","import{noChange as t}from\"../lit-html.js\";import{directive as e,Directive as r,PartType as s}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const i=\"important\",n=\" !\"+i,o=e(class extends r{constructor(t){var e;if(super(t),t.type!==s.ATTRIBUTE||\"style\"!==t.name||(null===(e=t.strings)||void 0===e?void 0:e.length)>2)throw Error(\"The `styleMap` directive must be used in the `style` attribute and must be the only part in the attribute.\")}render(t){return Object.keys(t).reduce(((e,r)=>{const s=t[r];return null==s?e:e+`${r=r.includes(\"-\")?r:r.replace(/(?:^(webkit|moz|ms|o)|)(?=[A-Z])/g,\"-$&\").toLowerCase()}:${s};`}),\"\")}update(e,[r]){const{style:s}=e.element;if(void 0===this.ut){this.ut=new Set;for(const t in r)this.ut.add(t);return this.render(r)}this.ut.forEach((t=>{null==r[t]&&(this.ut.delete(t),t.includes(\"-\")?s.removeProperty(t):s[t]=\"\")}));for(const t in r){const e=r[t];if(null!=e){this.ut.add(t);const r=\"string\"==typeof e&&e.endsWith(n);t.includes(\"-\")||r?s.setProperty(t,r?e.slice(0,-11):e,r?i:\"\"):s[t]=e}}return t}});export{o as styleMap};\n//# sourceMappingURL=style-map.js.map\n","import type { TemplateResult } from 'lit'\nimport { html } from 'lit'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\nimport { styleMap } from 'lit-html/directives/style-map.js'\nimport type { HtmlString, ITulConfig } from '@/types/tul'\n\nexport function renderWidgetOld(\n config: ITulConfig,\n service: keyof ITulConfig['services'],\n DefaultComponent: HtmlString,\n customRenderer?: boolean | (() => HtmlString)\n) {\n const widgetConfiguration = config.services[service]\n\n if (!widgetConfiguration) {\n return unsafeHTML(`${DefaultComponent}`)\n }\n\n if (widgetConfiguration.enabled === false) {\n return null\n }\n\n if (customRenderer === false) {\n return null\n }\n\n if (customRenderer === true) {\n return unsafeHTML(`${DefaultComponent}`)\n }\n\n if (customRenderer && customRenderer instanceof Function) {\n return unsafeHTML(`${customRenderer()}`)\n }\n\n return unsafeHTML(`${DefaultComponent}`)\n}\n\nexport function renderWidget(\n config: ITulConfig,\n service: keyof ITulConfig['services'],\n DefaultComponent: TemplateResult,\n customRenderer?: boolean | (() => HtmlString)\n) {\n const widgetConfiguration = config.services[service]\n\n if (!widgetConfiguration) {\n return html`${DefaultComponent}`\n }\n\n if (widgetConfiguration.enabled === false) {\n return null\n }\n\n if (customRenderer === false) {\n return null\n }\n\n if (customRenderer === true) {\n return html`${DefaultComponent}`\n }\n\n if (customRenderer && customRenderer instanceof Function) {\n return unsafeHTML(`${customRenderer()}`)\n }\n\n return html`${DefaultComponent}`\n}\n\nexport function renderIconAsString(iconSource: string) {\n if (iconSource) {\n const styles = {\n display: 'flex',\n alignItems: 'center'\n }\n return html`<i\n slot=\"icon\"\n style=${styleMap(styles)}\n part=\"panel-menu-item-icon\"\n >${unsafeHTML(iconSource)}</i\n >`\n }\n return html``\n}\n","import { ensureArray, isDefined } from '@productive-codebases/toolbox'\nimport { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { ensureNullable } from '@/libs/helpers/nullable'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { UniversalNavigationController } from './controller/UniversalNavigationController'\nimport { globalHeaderStyles } from './styles'\nimport { renderWidget } from './utils/renderer'\n\n@customElement('tenable-global-header')\nexport default class GlobalHeader extends MobxLitElement {\n static styles = [globalHeaderStyles]\n\n private _universalNavigationController: UniversalNavigationController | null =\n null\n\n connectedCallback() {\n super.connectedCallback()\n this.createUniversalNavigationController()\n }\n\n updated() {\n if (this._universalNavigationController === null) {\n this.createUniversalNavigationController()\n }\n }\n\n createUniversalNavigationController = () => {\n const { storeRoot } = this.__getStores()\n // get sidebar navigation config\n const sidebarNavigationConfig = storeRoot.config.app.sidebar?.config\n\n // get settings navigation config\n const settingsNavigationConfig = storeRoot.config.app.settings?.config\n\n // get quickActions navigation config\n const quickActionsNavigationConfig =\n storeRoot.config.app.quickActions?.config\n\n // get user navigation config\n const userProfileNavigationConfig = storeRoot.config.app.userProfile?.config\n\n const navigationConfig =\n sidebarNavigationConfig ||\n quickActionsNavigationConfig ||\n settingsNavigationConfig ||\n userProfileNavigationConfig\n // Depending on the framework, this might not be defined until later in the updated() lifecycle\n if (navigationConfig) {\n this._universalNavigationController = new UniversalNavigationController(\n this,\n navigationConfig\n )\n }\n }\n\n render() {\n const { storeRoot, storeLayout, storeAuthentication, storeAssistMode } =\n this.__getStores()\n\n this.__applyThemeProperties()\n\n // hide if explicit set to false\n const hideHamburgerIcon = storeRoot.config.app.sidebar?.hamburger === false\n\n // hide side navigation if no menu items are part of config\n const hideSidebar = isDefined(storeRoot.config.app.sidebar?.menu) === false\n\n // get navigation data\n const navigationData = storeRoot.config.app.sidebar?.menu\n\n // get sidebar navigation config\n const sidebarNavigationConfig = storeRoot.config.app.sidebar?.config\n\n // get custom icons\n const icons = storeRoot.config.custom?.icons\n\n // get app settings data\n const appSettingsMenuData = storeRoot.config.app.settings?.menu ?? []\n\n // get app specific quick actions data\n const quickActionsMenuData = storeRoot.config.app.quickActions?.menu\n\n const isAssistMode = Boolean(\n storeAuthentication.session &&\n storeAssistMode.isImpersonating &&\n !storeRoot.disableImpersonation\n )\n\n /*\n Settings is currently pointing to TVM Settings and hence no RBAC controls on this now.\n */\n // const hasAccessToPlatformSettings =\n // storeRoot.stores.storeAuthentication.session\n // ?.hasAccessToPlatformSettings &&\n // Number(storeLayout.settingsMenuData?.length) > 0\n // const hasAppSettings = Number(appSettingsMenuData?.length) > 0\n // const noSettings =\n // hasAccessToPlatformSettings === false && hasAppSettings === false\n\n const hasAccessToAppSwitcher =\n !storeRoot.stores.storeAuthentication.session?.isMsspParent\n\n const renderUserManagementSlot = () => {\n return renderWidget(\n storeRoot.config,\n 'session',\n html` <tenable-universal-header-user-action\n slot=\"user-action\"\n avatar=${ifDefined(storeAuthentication.session?.name)}\n >\n <tenable-universal-header-user-panel\n panelTitle=${ifDefined(storeAuthentication.session?.name)}\n panelSubTitle=${ifDefined(storeAuthentication.session?.email)}\n .menuItems=\"${storeLayout.userMenuData}\"\n .selectedMenuItem=\"${storeLayout.selectedUserProfileMenuItem}\"\n >\n </tenable-universal-header-user-panel>\n </tenable-universal-header-user-action>`,\n storeRoot.config.services.session?.renderComponents?.accountPanel\n )\n }\n const renderAppSwitcherSlot = () => {\n if (!hasAccessToAppSwitcher) {\n return ''\n }\n return renderWidget(\n storeRoot.config,\n 'serverProperties',\n html`<tenable-universal-header-workspace-action slot=\"workspace-action\">\n <tenable-universal-header-workspace-panel>\n </tenable-universal-header-workspace-panel>\n </tenable-universal-header-workspace-action>`,\n storeRoot.config.services.serverProperties?.renderComponents?.appsPanel\n )\n }\n\n const renderSettingsSlot = () => {\n return renderWidget(\n storeRoot.config,\n 'settings',\n html` <tenable-universal-header-settings-action slot=\"settings-action\">\n <tenable-universal-header-settings-panel\n .menuItems=\"${storeLayout.settingsMenuData}\"\n .appSpecificItems=\"${appSettingsMenuData}\"\n .selectedMenuItem=\"${storeLayout.selectedSettingsMenuItem}\"\n >\n </tenable-universal-header-settings-panel>\n </tenable-universal-header-settings-action>`,\n storeRoot.config.services.settings?.renderComponents?.settingsPanel\n )\n }\n const renderNotificationsSlot = () => {\n return renderWidget(\n storeRoot.config,\n 'alerts',\n html` <tenable-universal-header-notifications-action\n slot=\"notifications-action\"\n notificationCount=${storeLayout?.notificationsCount}\n >\n </tenable-universal-header-notifications-action>`,\n storeRoot.config.services.alerts?.renderComponents?.alertsPanel\n )\n }\n const renderChatsSlot = () => {\n return renderWidget(\n storeRoot.config,\n 'chats',\n html`<tenable-universal-header-chat-action\n slot=\"chats-action\"\n chatCount=${storeLayout?.chatCount}\n >\n </tenable-universal-header-chat-action>`,\n storeRoot.config.services.chats?.renderComponents?.chatsPanel\n )\n }\n\n const renderPendoSlot = () => {\n if (!storeAuthentication.isFedramp()) {\n return renderWidget(\n storeRoot.config,\n 'pendo',\n html`\n <tenable-universal-header-help-action\n slot=\"help-action\"\n ></tenable-universal-header-help-action>\n `,\n storeRoot.config.services.pendo?.renderComponents?.infoPanel\n )\n }\n return ''\n }\n const renderAppSpecificIconsSlot = () => {\n if (storeRoot.config.services.appSpecific?.enabled || icons) {\n return renderWidget(\n storeRoot.config,\n 'appSpecific',\n html` <tenable-universal-header-app-specific-actions\n slot=\"app-specific-actions\"\n ></tenable-universal-header-app-specific-actions>`,\n storeRoot.config.services.appSpecific?.renderComponents\n ?.appSpecificPanel\n )\n }\n\n return ''\n }\n const renderCustomActionsSlot = () => {\n if (quickActionsMenuData?.length) {\n return html`\n <div slot=\"custom-actions\">\n <tenable-universal-header-quick-actions>\n <tenable-universal-header-quick-actions-panel\n .menuItems=\"${quickActionsMenuData}\"\n .selectedMenuItem=\"${storeLayout.selectedQuickActionsMenuItem}\"\n >\n </tenable-universal-header-quick-actions-panel>\n </tenable-universal-header-quick-actions>\n </div>\n `\n }\n return ''\n }\n\n return html`\n ${isAssistMode ? html`<tenable-assist-mode></tenable-assist-mode>` : ''}\n <tenable-universal-header .hideNavigationButton=${hideHamburgerIcon}>\n ${renderAppSpecificIconsSlot()} ${renderChatsSlot()}\n ${renderNotificationsSlot()} ${renderPendoSlot()}\n ${renderSettingsSlot()} ${renderAppSwitcherSlot()}\n ${renderUserManagementSlot()} ${renderCustomActionsSlot()}\n </tenable-universal-header>\n\n ${hideSidebar\n ? ''\n : html`<tenable-universal-navigation\n .isClosed=\"${!storeLayout.isNavigationOpened}\"\n .menuItems=\"${ensureArray(navigationData)}\"\n .navigationConfig=\"${ensureNullable(sidebarNavigationConfig)}\"\n .selectedMenuItem=\"${storeLayout.selectedSideBarMenuItem}\"\n >\n </tenable-universal-navigation>`}\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-global-header': GlobalHeader\n }\n}\n","import{noChange as t}from\"../lit-html.js\";import{directive as i,Directive as s,PartType as r}from\"../directive.js\";\n/**\n * @license\n * Copyright 2018 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const o=i(class extends s{constructor(t){var i;if(super(t),t.type!==r.ATTRIBUTE||\"class\"!==t.name||(null===(i=t.strings)||void 0===i?void 0:i.length)>2)throw Error(\"`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.\")}render(t){return\" \"+Object.keys(t).filter((i=>t[i])).join(\" \")+\" \"}update(i,[s]){var r,o;if(void 0===this.it){this.it=new Set,void 0!==i.strings&&(this.nt=new Set(i.strings.join(\" \").split(/\\s/).filter((t=>\"\"!==t))));for(const t in s)s[t]&&!(null===(r=this.nt)||void 0===r?void 0:r.has(t))&&this.it.add(t);return this.render(s)}const e=i.element.classList;this.it.forEach((t=>{t in s||(e.remove(t),this.it.delete(t))}));for(const t in s){const i=!!s[t];i===this.it.has(t)||(null===(o=this.nt)||void 0===o?void 0:o.has(t))||(i?(e.add(t),this.it.add(t)):(e.remove(t),this.it.delete(t)))}return t}});export{o as classMap};\n//# sourceMappingURL=class-map.js.map\n","import { css } from 'lit'\n\nexport const componentStyles = css`\n :host {\n box-sizing: border-box;\n // -webkit-font-smoothing: antialiased;\n // -moz-osx-font-smoothing: grayscale;\n // font-smoothing: antialiased;\n }\n\n :host *,\n :host *::before,\n :host *::after {\n box-sizing: inherit;\n }\n\n [hidden] {\n display: none !important;\n }\n`\n","import { css } from 'lit'\nimport { componentStyles } from '../BaseStyles'\n\nexport const styles = css`\n ${componentStyles}\n\n .tenable-panel-root {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 56px 1fr;\n gap: 0px 0px;\n grid-template-areas:\n 'MenuHeaderRegion'\n 'MenuContentRegion';\n box-sizing: border-box;\n background-color: var(--tenb-colors-background-component);\n color: var(--tenb-colors-text-body);\n box-sizing: border-box;\n border: 1px solid var(--tenb-colors-border-base);\n border-radius: 6px;\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.25);\n overflow: auto;\n width: 273px;\n height: auto;\n max-height: 550px;\n }\n .tenable-panel-root-no-header {\n grid-template-rows: 1fr;\n grid-template-areas: 'MenuContentRegion';\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { styles } from './styles'\n\n/**\n * @slot Default - Use to add child content\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-universal-header-action-panel')\nclass ActionPanel extends MobxLitElement {\n static styles = [styles]\n\n @property({ type: Boolean })\n header = true\n\n render() {\n const classes = {\n 'tenable-panel-root-no-header': this.header === false\n }\n return html`\n <div class=\"tenable-panel-root ${classMap(classes)}\" part=\"base\">\n <slot></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-action-panel': ActionPanel\n }\n}\n","/**\n * what-input - A global utility for tracking the current input method (mouse, keyboard or touch).\n * @version v5.2.12\n * @link https://github.com/ten1seven/what-input\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"whatInput\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"whatInput\"] = factory();\n\telse\n\t\troot[\"whatInput\"] = factory();\n})(this, function() {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n\n\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\n\tmodule.exports = function () {\n\t /*\n\t * bail out if there is no document or window\n\t * (i.e. in a node/non-DOM environment)\n\t *\n\t * Return a stubbed API instead\n\t */\n\t if (typeof document === 'undefined' || typeof window === 'undefined') {\n\t return {\n\t // always return \"initial\" because no interaction will ever be detected\n\t ask: function ask() {\n\t return 'initial';\n\t },\n\n\t // always return null\n\t element: function element() {\n\t return null;\n\t },\n\n\t // no-op\n\t ignoreKeys: function ignoreKeys() {},\n\n\t // no-op\n\t specificKeys: function specificKeys() {},\n\n\t // no-op\n\t registerOnChange: function registerOnChange() {},\n\n\t // no-op\n\t unRegisterOnChange: function unRegisterOnChange() {}\n\t };\n\t }\n\n\t /*\n\t * variables\n\t */\n\n\t // cache document.documentElement\n\t var docElem = document.documentElement;\n\n\t // currently focused dom element\n\t var currentElement = null;\n\n\t // last used input type\n\t var currentInput = 'initial';\n\n\t // last used input intent\n\t var currentIntent = currentInput;\n\n\t // UNIX timestamp of current event\n\t var currentTimestamp = Date.now();\n\n\t // check for a `data-whatpersist` attribute on either the `html` or `body` elements, defaults to `true`\n\t var shouldPersist = false;\n\n\t // form input types\n\t var formInputs = ['button', 'input', 'select', 'textarea'];\n\n\t // empty array for holding callback functions\n\t var functionList = [];\n\n\t // list of modifier keys commonly used with the mouse and\n\t // can be safely ignored to prevent false keyboard detection\n\t var ignoreMap = [16, // shift\n\t 17, // control\n\t 18, // alt\n\t 91, // Windows key / left Apple cmd\n\t 93 // Windows menu / right Apple cmd\n\t ];\n\n\t var specificMap = [];\n\n\t // mapping of events to input types\n\t var inputMap = {\n\t keydown: 'keyboard',\n\t keyup: 'keyboard',\n\t mousedown: 'mouse',\n\t mousemove: 'mouse',\n\t MSPointerDown: 'pointer',\n\t MSPointerMove: 'pointer',\n\t pointerdown: 'pointer',\n\t pointermove: 'pointer',\n\t touchstart: 'touch',\n\t touchend: 'touch'\n\n\t // boolean: true if the page is being scrolled\n\t };var isScrolling = false;\n\n\t // store current mouse position\n\t var mousePos = {\n\t x: null,\n\t y: null\n\n\t // map of IE 10 pointer events\n\t };var pointerMap = {\n\t 2: 'touch',\n\t 3: 'touch', // treat pen like touch\n\t 4: 'mouse'\n\n\t // check support for passive event listeners\n\t };var supportsPassive = false;\n\n\t try {\n\t var opts = Object.defineProperty({}, 'passive', {\n\t get: function get() {\n\t supportsPassive = true;\n\t }\n\t });\n\n\t window.addEventListener('test', null, opts);\n\t } catch (e) {}\n\t // fail silently\n\n\n\t /*\n\t * set up\n\t */\n\n\t var setUp = function setUp() {\n\t // add correct mouse wheel event mapping to `inputMap`\n\t inputMap[detectWheel()] = 'mouse';\n\n\t addListeners();\n\t };\n\n\t /*\n\t * events\n\t */\n\n\t var addListeners = function addListeners() {\n\t // `pointermove`, `MSPointerMove`, `mousemove` and mouse wheel event binding\n\t // can only demonstrate potential, but not actual, interaction\n\t // and are treated separately\n\t var options = supportsPassive ? { passive: true, capture: true } : true;\n\n\t document.addEventListener('DOMContentLoaded', setPersist, true);\n\n\t // pointer events (mouse, pen, touch)\n\t if (window.PointerEvent) {\n\t window.addEventListener('pointerdown', setInput, true);\n\t window.addEventListener('pointermove', setIntent, true);\n\t } else if (window.MSPointerEvent) {\n\t window.addEventListener('MSPointerDown', setInput, true);\n\t window.addEventListener('MSPointerMove', setIntent, true);\n\t } else {\n\t // mouse events\n\t window.addEventListener('mousedown', setInput, true);\n\t window.addEventListener('mousemove', setIntent, true);\n\n\t // touch events\n\t if ('ontouchstart' in window) {\n\t window.addEventListener('touchstart', setInput, options);\n\t window.addEventListener('touchend', setInput, true);\n\t }\n\t }\n\n\t // mouse wheel\n\t window.addEventListener(detectWheel(), setIntent, options);\n\n\t // keyboard events\n\t window.addEventListener('keydown', setInput, true);\n\t window.addEventListener('keyup', setInput, true);\n\n\t // focus events\n\t window.addEventListener('focusin', setElement, true);\n\t window.addEventListener('focusout', clearElement, true);\n\t };\n\n\t // checks if input persistence should happen and\n\t // get saved state from session storage if true (defaults to `false`)\n\t var setPersist = function setPersist() {\n\t shouldPersist = !(docElem.getAttribute('data-whatpersist') === 'false' || document.body.getAttribute('data-whatpersist') === 'false');\n\n\t if (shouldPersist) {\n\t // check for session variables and use if available\n\t try {\n\t if (window.sessionStorage.getItem('what-input')) {\n\t currentInput = window.sessionStorage.getItem('what-input');\n\t }\n\n\t if (window.sessionStorage.getItem('what-intent')) {\n\t currentIntent = window.sessionStorage.getItem('what-intent');\n\t }\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\n\t // always run these so at least `initial` state is set\n\t doUpdate('input');\n\t doUpdate('intent');\n\t };\n\n\t // checks conditions before updating new input\n\t var setInput = function setInput(event) {\n\t var eventKey = event.which;\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t var ignoreMatch = !specificMap.length && ignoreMap.indexOf(eventKey) === -1;\n\n\t var specificMatch = specificMap.length && specificMap.indexOf(eventKey) !== -1;\n\n\t var shouldUpdate = value === 'keyboard' && eventKey && (ignoreMatch || specificMatch) || value === 'mouse' || value === 'touch';\n\n\t // prevent touch detection from being overridden by event execution order\n\t if (validateTouch(value)) {\n\t shouldUpdate = false;\n\t }\n\n\t if (shouldUpdate && currentInput !== value) {\n\t currentInput = value;\n\n\t persistInput('input', currentInput);\n\t doUpdate('input');\n\t }\n\n\t if (shouldUpdate && currentIntent !== value) {\n\t // preserve intent for keyboard interaction with form fields\n\t var activeElem = document.activeElement;\n\t var notFormInput = activeElem && activeElem.nodeName && (formInputs.indexOf(activeElem.nodeName.toLowerCase()) === -1 || activeElem.nodeName.toLowerCase() === 'button' && !checkClosest(activeElem, 'form'));\n\n\t if (notFormInput) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t }\n\t };\n\n\t // updates the doc and `inputTypes` array with new input\n\t var doUpdate = function doUpdate(which) {\n\t docElem.setAttribute('data-what' + which, which === 'input' ? currentInput : currentIntent);\n\n\t fireFunctions(which);\n\t };\n\n\t // updates input intent for `mousemove` and `pointermove`\n\t var setIntent = function setIntent(event) {\n\t var value = inputMap[event.type];\n\n\t if (value === 'pointer') {\n\t value = pointerType(event);\n\t }\n\n\t // test to see if `mousemove` happened relative to the screen to detect scrolling versus mousemove\n\t detectScrolling(event);\n\n\t // only execute if scrolling isn't happening\n\t if ((!isScrolling && !validateTouch(value) || isScrolling && event.type === 'wheel' || event.type === 'mousewheel' || event.type === 'DOMMouseScroll') && currentIntent !== value) {\n\t currentIntent = value;\n\n\t persistInput('intent', currentIntent);\n\t doUpdate('intent');\n\t }\n\t };\n\n\t var setElement = function setElement(event) {\n\t if (!event.target.nodeName) {\n\t // If nodeName is undefined, clear the element\n\t // This can happen if click inside an <svg> element.\n\t clearElement();\n\t return;\n\t }\n\n\t currentElement = event.target.nodeName.toLowerCase();\n\t docElem.setAttribute('data-whatelement', currentElement);\n\n\t if (event.target.classList && event.target.classList.length) {\n\t docElem.setAttribute('data-whatclasses', event.target.classList.toString().replace(' ', ','));\n\t }\n\t };\n\n\t var clearElement = function clearElement() {\n\t currentElement = null;\n\n\t docElem.removeAttribute('data-whatelement');\n\t docElem.removeAttribute('data-whatclasses');\n\t };\n\n\t var persistInput = function persistInput(which, value) {\n\t if (shouldPersist) {\n\t try {\n\t window.sessionStorage.setItem('what-' + which, value);\n\t } catch (e) {\n\t // fail silently\n\t }\n\t }\n\t };\n\n\t /*\n\t * utilities\n\t */\n\n\t var pointerType = function pointerType(event) {\n\t if (typeof event.pointerType === 'number') {\n\t return pointerMap[event.pointerType];\n\t } else {\n\t // treat pen like touch\n\t return event.pointerType === 'pen' ? 'touch' : event.pointerType;\n\t }\n\t };\n\n\t // prevent touch detection from being overridden by event execution order\n\t var validateTouch = function validateTouch(value) {\n\t var timestamp = Date.now();\n\n\t var touchIsValid = value === 'mouse' && currentInput === 'touch' && timestamp - currentTimestamp < 200;\n\n\t currentTimestamp = timestamp;\n\n\t return touchIsValid;\n\t };\n\n\t // detect version of mouse wheel event to use\n\t // via https://developer.mozilla.org/en-US/docs/Web/API/Element/wheel_event\n\t var detectWheel = function detectWheel() {\n\t var wheelType = null;\n\n\t // Modern browsers support \"wheel\"\n\t if ('onwheel' in document.createElement('div')) {\n\t wheelType = 'wheel';\n\t } else {\n\t // Webkit and IE support at least \"mousewheel\"\n\t // or assume that remaining browsers are older Firefox\n\t wheelType = document.onmousewheel !== undefined ? 'mousewheel' : 'DOMMouseScroll';\n\t }\n\n\t return wheelType;\n\t };\n\n\t // runs callback functions\n\t var fireFunctions = function fireFunctions(type) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].type === type) {\n\t functionList[i].fn.call(undefined, type === 'input' ? currentInput : currentIntent);\n\t }\n\t }\n\t };\n\n\t // finds matching element in an object\n\t var objPos = function objPos(match) {\n\t for (var i = 0, len = functionList.length; i < len; i++) {\n\t if (functionList[i].fn === match) {\n\t return i;\n\t }\n\t }\n\t };\n\n\t var detectScrolling = function detectScrolling(event) {\n\t if (mousePos.x !== event.screenX || mousePos.y !== event.screenY) {\n\t isScrolling = false;\n\n\t mousePos.x = event.screenX;\n\t mousePos.y = event.screenY;\n\t } else {\n\t isScrolling = true;\n\t }\n\t };\n\n\t // manual version of `closest()`\n\t var checkClosest = function checkClosest(elem, tag) {\n\t var ElementPrototype = window.Element.prototype;\n\n\t if (!ElementPrototype.matches) {\n\t ElementPrototype.matches = ElementPrototype.msMatchesSelector || ElementPrototype.webkitMatchesSelector;\n\t }\n\n\t if (!ElementPrototype.closest) {\n\t do {\n\t if (elem.matches(tag)) {\n\t return elem;\n\t }\n\n\t elem = elem.parentElement || elem.parentNode;\n\t } while (elem !== null && elem.nodeType === 1);\n\n\t return null;\n\t } else {\n\t return elem.closest(tag);\n\t }\n\t };\n\n\t /*\n\t * init\n\t */\n\n\t // don't start script unless browser cuts the mustard\n\t // (also passes if polyfills are used)\n\t if ('addEventListener' in window && Array.prototype.indexOf) {\n\t setUp();\n\t }\n\n\t /*\n\t * api\n\t */\n\n\t return {\n\t // returns string: the current input type\n\t // opt: 'intent'|'input'\n\t // 'input' (default): returns the same value as the `data-whatinput` attribute\n\t // 'intent': includes `data-whatintent` value if it's different than `data-whatinput`\n\t ask: function ask(opt) {\n\t return opt === 'intent' ? currentIntent : currentInput;\n\t },\n\n\t // returns string: the currently focused element or null\n\t element: function element() {\n\t return currentElement;\n\t },\n\n\t // overwrites ignored keys with provided array\n\t ignoreKeys: function ignoreKeys(arr) {\n\t ignoreMap = arr;\n\t },\n\n\t // overwrites specific char keys to update on\n\t specificKeys: function specificKeys(arr) {\n\t specificMap = arr;\n\t },\n\n\t // attach functions to input and intent \"events\"\n\t // funct: function to fire on change\n\t // eventType: 'input'|'intent'\n\t registerOnChange: function registerOnChange(fn, eventType) {\n\t functionList.push({\n\t fn: fn,\n\t type: eventType || 'input'\n\t });\n\t },\n\n\t unRegisterOnChange: function unRegisterOnChange(fn) {\n\t var position = objPos(fn);\n\n\t if (position || position === 0) {\n\t functionList.splice(position, 1);\n\t }\n\t },\n\n\t clearStorage: function clearStorage() {\n\t window.sessionStorage.clear();\n\t }\n\t };\n\t}();\n\n/***/ })\n/******/ ])\n});\n;","import { type ReactiveControllerHost, type ReactiveController } from 'lit'\nimport whatInput from 'what-input'\n\ntype Host = ReactiveControllerHost & HTMLElement\n\nexport class MenuKeyboardController implements ReactiveController {\n host: Host\n\n private _selected = 0\n\n private _slotChangeInterval: any\n\n menuItemsElements: HTMLElement[] = []\n\n constructor(host: Host) {\n // Store a reference to the host\n this.host = host\n\n // Register for lifecycle updates\n host.addController(this)\n }\n\n hostConnected() {\n this.initMenuItems()\n\n this.host.addEventListener('keydown', this.handleKeyDown)\n }\n\n hostDisconnected() {\n if (this._slotChangeInterval) {\n clearInterval(this._slotChangeInterval)\n }\n\n this.menuItemsElements.forEach((item: HTMLElement) => {\n item.removeEventListener('focus', this.handleMenuItemFocus)\n item.removeEventListener('blur', this.handleMenuItemBlur)\n })\n\n this.host.removeEventListener('keydown', this.handleKeyDown)\n }\n\n set selected(idx) {\n const prevSelected = this.menuItemsElements[this.selected]\n if (prevSelected) {\n prevSelected.tabIndex = -1\n }\n\n const newSelected = this.menuItemsElements[idx]\n if (newSelected) {\n newSelected.tabIndex = 0\n newSelected.focus()\n }\n\n this._selected = idx\n }\n\n get selected() {\n return this._selected\n }\n\n queryMenuItemElements = (elementName: string) => {\n let menuItemElements = []\n\n menuItemElements = Array.from(\n this.host.querySelectorAll(elementName) as any as HTMLElement[]\n )\n\n // If the menu-items are passed in from the consumer through a slot we have to use assignedElements() instead of querySelectorAll()\n if (menuItemElements.length === 0) {\n const slot = this.host.querySelector('slot')\n\n if (slot) {\n menuItemElements = Array.from(\n slot\n .assignedElements()\n .filter(element => element.tagName.toLowerCase() === elementName)\n )\n }\n }\n\n return menuItemElements\n }\n\n applyMenuItemListenersAndAttributes() {\n this.menuItemsElements.forEach((item: HTMLElement) => {\n item.setAttribute('tabindex', '-1')\n\n // Necessary for keyboard focus outlines\n item.addEventListener('focus', this.handleMenuItemFocus)\n item.addEventListener('blur', this.handleMenuItemBlur)\n })\n\n if (this.menuItemsElements.length > 0) {\n this.menuItemsElements[this.selected]?.setAttribute('tabindex', '0')\n }\n }\n\n handleMenuItemFocus = (ev: Event) => {\n if (whatInput.ask() === 'keyboard') {\n const el = ev.composedPath()[0] as HTMLElement\n\n if (el.shadowRoot) {\n el.shadowRoot.children?.[0].classList.add('focus-visible')\n }\n }\n }\n\n handleMenuItemBlur = (ev: Event) => {\n const el = ev.composedPath()[0] as HTMLElement\n\n if (el.shadowRoot) {\n el.shadowRoot.children?.[0].classList.remove('focus-visible')\n }\n }\n\n handleKeyDown = (ev: KeyboardEvent) => {\n switch (ev.code) {\n case 'ArrowUp':\n case 'ArrowLeft': {\n ev.preventDefault()\n ev.stopPropagation()\n\n if (this.selected === 0) {\n this.selected = this.menuItemsElements.length - 1\n } else {\n this.selected -= 1\n }\n\n return\n }\n\n case 'ArrowDown':\n case 'ArrowRight': {\n ev.preventDefault()\n ev.stopPropagation()\n\n if (this.selected + 1 >= this.menuItemsElements.length) {\n this.selected = 0\n } else {\n this.selected += 1\n }\n\n return\n }\n\n case 'Enter':\n case 'Space': {\n ev.preventDefault()\n ev.stopPropagation()\n\n const selectedMenuItem = this.menuItemsElements[this.selected]\n\n if (selectedMenuItem.shadowRoot) {\n const menuItemRoot = selectedMenuItem.shadowRoot\n .children[0] as HTMLElement\n\n if (menuItemRoot.click) {\n menuItemRoot.click()\n }\n }\n\n return\n }\n\n default:\n break\n }\n }\n\n initMenuItems(menuItemsElements: HTMLElement[] = []) {\n // For Universal-Navigation items\n this.menuItemsElements = [...menuItemsElements]\n\n if (this.menuItemsElements.length === 0) {\n this.menuItemsElements = this.queryMenuItemElements(\n 'tenb-menu-item'\n ) as HTMLElement[]\n }\n\n this.applyMenuItemListenersAndAttributes()\n }\n\n /*\n In the initMenuItems method, we leverage queryMenuItemElements to get the dom elements that we\n want to cycle through via keyboard commands. These menu items may be rendered immediately or\n asynchronously (when data is fetched and then fed into the component). We set an interval here\n to check the associated slot and wait for it to fully render the menu items.\n */\n onSlotChange() {\n const MAX_SLOT_CHANGE_CHECKS = 5\n let slotChangeChecks = 0\n\n if (!this._slotChangeInterval) {\n this._slotChangeInterval = setInterval(() => {\n if (\n this.menuItemsElements.length === 0 &&\n slotChangeChecks <= MAX_SLOT_CHANGE_CHECKS\n ) {\n this.initMenuItems()\n\n slotChangeChecks++\n } else if (\n slotChangeChecks > MAX_SLOT_CHANGE_CHECKS ||\n this.menuItemsElements.length > 0\n ) {\n clearInterval(this._slotChangeInterval)\n }\n }, 250)\n }\n }\n}\n","import { MenuKeyboardController } from './MenuKeyboardController'\n\nexport class NavigationMenuKeyboardController extends MenuKeyboardController {\n initMenuItems(menuItemsElements: HTMLElement[] = []) {\n // For Universal-Navigation items\n this.menuItemsElements = [...menuItemsElements]\n\n // For generic Header Action popover items\n if (this.menuItemsElements.length === 0) {\n this.menuItemsElements = this.queryMenuItemElements(\n 'tenable-navigation-menu-item'\n ) as HTMLElement[]\n }\n\n // For Workspace popover items\n if (this.menuItemsElements.length === 0) {\n this.menuItemsElements = this.queryMenuItemElements(\n 'tenable-workspace-card'\n ) as HTMLElement[]\n }\n\n // For Notification popover items\n if (this.menuItemsElements.length === 0) {\n this.menuItemsElements = this.queryMenuItemElements(\n 'tenable-notification-item'\n ) as HTMLElement[]\n }\n\n this.applyMenuItemListenersAndAttributes()\n }\n}\n","import { TenableBaseEvent } from '../BaseEvent'\n\nexport class HeaderEvent extends TenableBaseEvent<unknown> {\n static UNIVERSAL_HEADER_POPOVER_CLICKED = 'universalHeaderPopoverClicked'\n\n static UNIVERSAL_HEADER_POPOVER_OPENED = 'universalHeaderPopoverOpened'\n}\n","import { css } from 'lit'\n\nexport const styles = css`\n :host {\n grid-area: MenuContentRegion;\n overflow: auto;\n padding-bottom: 8px;\n }\n\n /* If not use with panel-header, show extra padding */\n .action-panel-body__root_standalone {\n padding-top: 8px;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { NavigationMenuKeyboardController } from '@/components/GlobalHeader/controller/NavigationMenuKeyboardController'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { HeaderEvent } from '../../Header/HeaderEvent'\nimport { styles } from './styles'\n\n/**\n * @slot Default - Use to add child content\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-universal-header-action-panel-body')\nexport class ActionPanelBody extends MobxLitElement {\n static styles = [styles]\n\n @property({ type: Boolean })\n standalone = false\n\n _menuKeyboardController: NavigationMenuKeyboardController | null = null\n\n connectedCallback() {\n super.connectedCallback()\n\n this._menuKeyboardController = new NavigationMenuKeyboardController(this)\n\n // Get reference to respective 'universal-header-action' button (settings, workspace, user, etc...)\n const actionControllerHost = (\n this.parentElement?.getRootNode() as ShadowRoot\n ).host?.parentElement\n\n actionControllerHost?.addEventListener(\n HeaderEvent.UNIVERSAL_HEADER_POPOVER_OPENED,\n this.handleMenuOpen\n )\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n // Get reference to respective 'universal-header-action' button (settings, workspace, user, etc...)\n const actionControllerHost = (\n this.parentElement?.getRootNode() as ShadowRoot\n ).host?.parentElement\n\n actionControllerHost?.removeEventListener(\n HeaderEvent.UNIVERSAL_HEADER_POPOVER_OPENED,\n this.handleMenuOpen\n )\n }\n\n queryMenuItemElements = (elementName: string) => {\n if (this.shadowRoot?.children.length) {\n return Array.from(\n this.shadowRoot?.children?.[0].querySelectorAll(elementName)\n )\n }\n\n return []\n }\n\n // Reset selected item back to first when menu is opened\n handleMenuOpen = () => {\n if (this._menuKeyboardController !== null) {\n this._menuKeyboardController.selected = 0\n }\n }\n\n handleSlotChange() {\n if (this._menuKeyboardController !== null) {\n this._menuKeyboardController.onSlotChange()\n }\n }\n\n render() {\n const classes = {\n 'action-panel-body__root': true,\n 'action-panel-body__root_standalone': this.standalone\n }\n\n return html`\n <div part=\"base\" class=\"${classMap(classes)}\">\n <slot @slotchange=\"${this.handleSlotChange}\"></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-action-panel-body': ActionPanelBody\n }\n}\n","import { css } from 'lit'\n\nexport const styles = css`\n :host {\n grid-area: MenuHeaderRegion;\n border-bottom: 1px solid var(--tenb-colors-border-base);\n }\n\n .tenable-panel-header {\n display: grid;\n grid-template-columns: 1fr auto;\n grid-template-rows: 1fr;\n gap: 0px 0px;\n grid-template-areas: 'left-content-region right-content-region';\n align-items: center;\n padding-left: 16px;\n padding-right: 16px;\n height: 56px;\n }\n\n .tenable-panel-header-left {\n grid-area: left-content-region;\n }\n\n .tenable-panel-header-right {\n grid-area: right-content-region;\n width: 32px;\n }\n`\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { styles } from './styles'\n\n/**\n * @slot Default - Use to add child content\n *\n * @csspart base - The component's internal wrapper.\n * @csspart header-content-left - The component's left content wrapper.\n * @csspart header-content-right - The component's right content wrapper.\n */\n@customElement('tenable-universal-header-action-panel-header')\nexport class ActionPanelHeader extends MobxLitElement {\n static styles = [styles]\n\n handleClick = (event: Event) => {\n const element = event.target as HTMLElement\n\n if (\n element.localName !== 'tenable-close-large-icon' &&\n element.localName !== 'tenable-floating-button'\n ) {\n event.preventDefault()\n event.stopPropagation()\n }\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"tenable-panel-header\" @click=${this.handleClick}>\n <div part=\"header-content-left\" class=\"tenable-panel-header-left\">\n <slot></slot>\n </div>\n <div part=\"header-content-right\" class=\"tenable-panel-header-right\">\n <tenable-floating-button id=\"panel-close-button\">\n <tenable-close-large-icon color=\"accent-idle\">\n </tenable-close-large-icon>\n </tenable-floating-button>\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-action-panel-header': ActionPanelHeader\n }\n}\n","import{_$LH as o}from\"./lit-html.js\";\n/**\n * @license\n * Copyright 2020 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */const{I:l}=o,t=o=>null===o||\"object\"!=typeof o&&\"function\"!=typeof o,i={HTML:1,SVG:2},n=(o,l)=>void 0===l?void 0!==(null==o?void 0:o._$litType$):(null==o?void 0:o._$litType$)===l,d=o=>void 0!==(null==o?void 0:o._$litDirective$),v=o=>null==o?void 0:o._$litDirective$,e=o=>void 0===o.strings,c=()=>document.createComment(\"\"),r=(o,t,i)=>{var n;const d=o._$AA.parentNode,v=void 0===t?o._$AB:t._$AA;if(void 0===i){const t=d.insertBefore(c(),v),n=d.insertBefore(c(),v);i=new l(t,n,o,o.options)}else{const l=i._$AB.nextSibling,t=i._$AM,e=t!==o;if(e){let l;null===(n=i._$AQ)||void 0===n||n.call(i,o),i._$AM=o,void 0!==i._$AP&&(l=o._$AU)!==t._$AU&&i._$AP(l)}if(l!==v||e){let o=i._$AA;for(;o!==l;){const l=o.nextSibling;d.insertBefore(o,v),o=l}}}return i},u=(o,l,t=o)=>(o._$AI(l,t),o),f={},s=(o,l=f)=>o._$AH=l,m=o=>o._$AH,p=o=>{var l;null===(l=o._$AP)||void 0===l||l.call(o,!1,!0);let t=o._$AA;const i=o._$AB.nextSibling;for(;t!==i;){const o=t.nextSibling;t.remove(),t=o}},a=o=>{o._$AR()};export{i as TemplateResultType,a as clearPart,m as getCommittedValue,v as getDirectiveClass,r as insertPart,d as isDirectiveResult,t as isPrimitive,e as isSingleExpression,n as isTemplateResult,p as removePart,u as setChildPartValue,s as setCommittedValue};\n//# sourceMappingURL=directive-helpers.js.map\n","import{noChange as e}from\"../lit-html.js\";import{directive as s,Directive as t,PartType as r}from\"../directive.js\";import{getCommittedValue as l,setChildPartValue as o,insertPart as i,removePart as n,setCommittedValue as f}from\"../directive-helpers.js\";\n/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\nconst u=(e,s,t)=>{const r=new Map;for(let l=s;l<=t;l++)r.set(e[l],l);return r},c=s(class extends t{constructor(e){if(super(e),e.type!==r.CHILD)throw Error(\"repeat() can only be used in text expressions\")}dt(e,s,t){let r;void 0===t?t=s:void 0!==s&&(r=s);const l=[],o=[];let i=0;for(const s of e)l[i]=r?r(s,i):i,o[i]=t(s,i),i++;return{values:o,keys:l}}render(e,s,t){return this.dt(e,s,t).values}update(s,[t,r,c]){var d;const a=l(s),{values:p,keys:v}=this.dt(t,r,c);if(!Array.isArray(a))return this.ht=v,p;const h=null!==(d=this.ht)&&void 0!==d?d:this.ht=[],m=[];let y,x,j=0,k=a.length-1,w=0,A=p.length-1;for(;j<=k&&w<=A;)if(null===a[j])j++;else if(null===a[k])k--;else if(h[j]===v[w])m[w]=o(a[j],p[w]),j++,w++;else if(h[k]===v[A])m[A]=o(a[k],p[A]),k--,A--;else if(h[j]===v[A])m[A]=o(a[j],p[A]),i(s,m[A+1],a[j]),j++,A--;else if(h[k]===v[w])m[w]=o(a[k],p[w]),i(s,a[j],a[k]),k--,w++;else if(void 0===y&&(y=u(v,w,A),x=u(h,j,k)),y.has(h[j]))if(y.has(h[k])){const e=x.get(v[w]),t=void 0!==e?a[e]:null;if(null===t){const e=i(s,a[j]);o(e,p[w]),m[w]=e}else m[w]=o(t,p[w]),i(s,a[j],t),a[e]=null;w++}else n(a[k]),k--;else n(a[j]),j++;for(;w<=A;){const e=i(s,m[A+1]);o(e,p[w]),m[w++]=e}for(;j<=k;){const e=a[j++];null!==e&&n(e)}return this.ht=v,f(s,m),e}});export{c as repeat};\n//# sourceMappingURL=repeat.js.map\n","import type { Session } from '@/libs/openapi/session/sessionResource'\nimport type { ServerProperties } from '@/types/tul'\n\n/**\n * Telemetry framework type definitions.\n */\nexport interface ITelemetryEnableMetadataSimple {\n namespace: string\n development?: boolean\n debug?: boolean\n siteId: string\n}\nexport interface ITelemetryEnableMetadata {\n // this is required to have telemetry payload to be independent and header wont intervene in its type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any\n}\n\nexport interface ITelemetryIdentifyMetadata {\n userUuid: string\n containerUuid: string\n containerName: string\n siteId: string\n permissions: number\n}\n\nexport interface TelemetryIdentifyMetadata {\n session: Session\n properties: ServerProperties\n}\n\nexport interface ITrackingEventMetadata {\n count?: number\n criteria?: string[]\n default?: string[]\n format?: string\n name?: string\n search_type?: string[]\n section?: string\n targets?: string[]\n title?: string\n total_assets?: number\n total_tags?: number\n value?: string[]\n sub_section?: string\n language?: string\n}\n\nexport enum EventType {\n AppSwitcherClicked = 'app switcher clicked',\n HelpIconClicked = 'help clicked',\n LogoClicked = 'header logo clicked',\n HeaderUserProfileClicked = 'header account clicked',\n HeaderSettingsClicked = 'header settings clicked',\n HeaderQuickActionsClicked = 'header actions clicked',\n LinkClicked = 'link clicked',\n MainNavClicked = 'main nav clicked',\n NotificationClicked = 'notifications clicked',\n ChatClicked = 'chats clicked',\n CustomIconClicked = 'custom icon clicked',\n BreadCrumbItemClicked = 'breadcrumbs clicked',\n DarkModeClicked = 'dark mode switch clicked',\n ViewChanged = 'view changed'\n}\n\nexport interface IEvents\n extends Record<EventType, Partial<ITrackingEventMetadata> | undefined> {\n [EventType.HeaderUserProfileClicked]: Required<\n Pick<ITrackingEventMetadata, 'name'>\n >\n [EventType.HeaderSettingsClicked]: Required<\n Pick<ITrackingEventMetadata, 'name'>\n >\n [EventType.AppSwitcherClicked]: Required<Pick<ITrackingEventMetadata, 'name'>>\n [EventType.HeaderQuickActionsClicked]: Required<\n Pick<ITrackingEventMetadata, 'name'>\n >\n [EventType.BreadCrumbItemClicked]: Required<\n Pick<ITrackingEventMetadata, 'name'>\n >\n [EventType.LinkClicked]: Required<\n Pick<ITrackingEventMetadata, 'name' | 'section'>\n >\n [EventType.MainNavClicked]: Required<Pick<ITrackingEventMetadata, 'name'>>\n [EventType.NotificationClicked]: undefined\n [EventType.LogoClicked]: undefined\n [EventType.HelpIconClicked]: undefined\n [EventType.ViewChanged]: Required<Pick<ITrackingEventMetadata, 'name'>>\n}\n\nexport type ParamsPageVisited = {\n pageName: string\n href: string\n}\n\nexport type ParamsPageLeft = {\n pageName: string\n href: string\n timeSpent: number\n}\n\nexport type ParamsFormSubmitted = {\n formName: string\n}\n\n// https://github.eng.tenable.com/Product/framework-browser-telemetry\nexport interface ITelemetryTraits {\n container_id: string\n site_id: string\n role: string\n eval: boolean\n is_mssp_account?: string\n language?: string\n license_tep?: string\n}\n\nexport interface ITelemetryExternalScriptAPI {\n enable: (\n namespace: string,\n options: {\n // development?: boolean\n // autotrack?: boolean\n // debug?: boolean\n // properties?: {\n // product?: string\n // component?: string\n // internal?: boolean\n // }\n // this is required to have telemetry payload to be independent and header wont intervene in its type\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n [key: string]: any\n }\n ) => void\n identify: (userUuid: string, options: ITelemetryTraits) => void\n event: (name: string, properties?: object) => void\n page: (properties?: object) => void\n}\n","/**\n * Build unique UUID\n */\nexport function uuid() {\n let d = new Date().getTime()\n let d2 =\n (typeof performance !== 'undefined' &&\n performance.now &&\n performance.now() * 1000) ||\n 0\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, c => {\n let r = Math.random() * 16\n if (d > 0) {\n r = (d + r) % 16 | 0\n d = Math.floor(d / 16)\n } else {\n r = (d2 + r) % 16 | 0\n d2 = Math.floor(d2 / 16)\n }\n return (c === 'x' ? r : (r & 0x7) | 0x8).toString(16)\n })\n}\n","import { css } from 'lit'\n\nexport const appActionStyles = css`\n .app_specific_actions__trigger {\n margin-left: var(--tenb-space-8);\n }\n`\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport type { CustomIcon, ITulEventAppSpecificIconOnClick } from '@/types/tul'\nimport { TulEvent } from '@/types/tul'\nimport { renderIconAsString } from '../../utils/renderer'\nimport { uuid } from '../../utils/uuid'\nimport { appActionStyles } from './styles'\n\nconst id = 'universal-header-app-specific-actions'\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart trigger - The trigger wrapper\n */\n@customElement('tenable-universal-header-app-specific-actions')\nexport class AppActions extends MobxLitElement {\n static styles = [appActionStyles]\n\n onClickHandler = (event: Event, item: CustomIcon) => {\n const { storeRoot, storeTelemetry } = this.__getStores()\n\n const tulEvent: ITulEventAppSpecificIconOnClick = {\n eventName: TulEvent.onTulEventAppSpecificIconClick,\n detail: {\n nativeEvent: event,\n icon: item,\n tulApi: storeRoot.tulApi\n }\n }\n\n this.__dispatchTulEvent(tulEvent)\n\n storeRoot.environment.config.app.handlers?.onTulAppSpecificIconClick?.({\n tulEvent\n })\n\n storeTelemetry.trackTelemetry(EventType.CustomIconClicked)\n }\n\n render() {\n const { storeRoot } = this.__getStores()\n\n const getId = () => `${id}-${uuid()}`\n const icons = storeRoot.config?.custom?.icons\n\n return html`\n ${icons &&\n repeat(\n icons,\n icon => icon.name,\n (icon: CustomIcon) => html`\n <tenable-floating-button\n class=\"app_specific_actions__trigger\"\n .allowSelectedClick=${true}\n id=${getId()}\n aria-label=\"App-Action\"\n slot=\"anchor\"\n part=\"trigger\"\n data-icon-name=${icon.name}\n @click=${(event: Event) => this.onClickHandler(event, icon)}\n >\n <div class=\"app-specific-logo\" data-icon-name=${icon.name}>\n <i> ${renderIconAsString(`${icon.source}`)} </i>\n </div>\n </tenable-floating-button>\n `\n )}\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-app-specific-actions': AppActions\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../BaseStyles'\n\nexport const assistModeStyles = css`\n ${componentStyles}\n :host {\n font-family: var(--tenb-fonts-brand-medium);\n }\n .tenable-assist-mode-user-holder {\n padding: 5px;\n position: fixed;\n border-radius: 5px;\n background: var(--tenb-colors-teal-02);\n width: fit-content;\n height: 50px;\n top: 0px;\n left: 0px;\n right: 0px;\n z-index: 3;\n margin: auto;\n color: var(--tenb-colors-text-white);\n display: flex;\n -webkit-box-align: center;\n align-items: center;\n -webkit-box-pack: start;\n justify-content: start;\n flex-wrap: wrap;\n gap: 10px;\n }\n .tenable-assist-mode-user-details {\n display: flex;\n flex-flow: column;\n }\n .tenable-assist-mode-user-details-title {\n display: flex;\n flex-wrap: wrap;\n gap: 5px;\n }\n .tenable-assist-mode-user-details-title\n span.tenable-assist-mode-user-details-title-heading {\n display: block;\n font-size: var(--tenb-fontSizes-14);\n font-weight: 700;\n text-transform: uppercase;\n }\n .tenable-assist-mode-user-details-subtitle {\n display: block;\n font-size: var(--tenb-fontSizes-14);\n font-weight: 500;\n }\n .tenable-assist-mode-border-indicator {\n position: fixed;\n border: 5px solid var(--tenb-colors-teal-02);\n inset: 0px;\n /* using tooltip to make sure this is more than navigation overlay's */\n z-index: var(--tenb-zIndices-tooltip);\n pointer-events: none;\n }\n tenable-floating-button::part(base) {\n color: var(--tenb-colors-text-inverse);\n }\n tenable-floating-button::part(base):hover {\n color: var(--tenb-colors-text-body);\n }\n`\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { getRoleNameFromPermission } from '@/_entrypoints/server'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { assistModeStyles } from './styles'\n\n/**\n * @slot Default - Slot to place badge content.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-assist-mode')\nexport class AssistMode extends MobxLitElement {\n static styles = [assistModeStyles]\n\n render() {\n const { storeAuthentication, storeAssistMode, storeLayout } =\n this.__getStores()\n const { language } = storeLayout\n const translator = this.__translator(language)('Header')('UserAssist')\n if (!storeAuthentication.session || !storeAssistMode.isImpersonating) {\n return null\n }\n\n const { name, userName, email, permissions } =\n storeAuthentication.session.rawSession\n\n return html`\n <div\n name=\"AssistMode\"\n data-attr-name=\"AssistMode\"\n class=\"tenable-assist-mode-user-holder\"\n >\n <tenable-floating-button\n .allowSelectedClick=${true}\n id=\"user-assist-close-button\"\n slot=\"anchor\"\n aria-label=\"User Assist Close\"\n @click=\"${() => storeAssistMode.stopImpersonation()}\"\n >\n <tenable-close-large-icon\n color=\"brand\"\n size=\"medium\"\n ></tenable-close-large-icon>\n </tenable-floating-button>\n\n <div\n name=\"AssistModeDetails\"\n data-attr-name=\"AssistModeDetails\"\n class=\"tenable-assist-mode-user-details\"\n >\n <div\n name=\"AssistModeTitle\"\n data-attr-name=\"AssistModeTitle\"\n class=\"tenable-assist-mode-user-details-title\"\n >\n <span\n data-attr-name=\"AssistModeHeading\"\n class=\"tenable-assist-mode-user-details-title-heading\"\n >\n ${storeAssistMode.isMsspChild\n ? translator('Logged in as') ?? 'Logged in as'\n : translator('User assist mode') ?? 'User assist mode'}\n </span>\n <span\n title=${storeAssistMode.isMsspChild\n ? translator('Close this frame to return to MSSP.') ??\n 'Close this frame to return to MSSP.'\n : translator('Close this frame to leave the user.') ??\n 'Close this frame to leave the user.'}\n >\n <tenable-info-icon></tenable-info-icon\n ></span>\n </div>\n <span\n data-attr-name=\"Typography\"\n class=\"tenable-assist-mode-user-details-subtitle\"\n >\n ${email ?? name ?? userName} |\n ${translator(getRoleNameFromPermission(permissions)) ??\n getRoleNameFromPermission(permissions)}\n </span>\n </div>\n </div>\n <div\n data-attr-name=\"AssistModeBorderIndicator\"\n class=\"tenable-assist-mode-border-indicator\"\n ></div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-assist-mode': AssistMode\n }\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\n\n/**\n * @slot Default - Use to render child content\n */\n@customElement('tenable-avatar')\nexport class Avatar extends MobxLitElement {\n static styles = css`\n :host {\n display: flex;\n }\n\n button {\n background-color: var(--tenb-colors-background-avatar-idle);\n border: 0;\n border-radius: 100px;\n box-sizing: border-box;\n color: var(--tenb-colors-text-white);\n cursor: pointer;\n width: 32px;\n height: 32px;\n text-align: center;\n vertical-align: center;\n // margin-left: var(--tenb-space-4);\n }\n\n :focus-visible {\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 1px;\n }\n\n :hover {\n background-color: var(--tenb-colors-background-avatar-hover);\n }\n\n button.selected {\n background-color: var(--tenb-colors-background-avatar-selected);\n }\n `\n\n @property({ type: Boolean })\n disabled = false\n\n @property({ type: Boolean })\n selected = false\n\n @property({ type: Boolean })\n allowSelectedClick = false\n\n @property({ type: Boolean })\n autofocus = false\n\n onClickHandler = (ev: Event) => {\n if (this.disabled || (this.selected && !this.allowSelectedClick)) {\n ev.stopImmediatePropagation()\n }\n }\n\n render() {\n const classes = {\n selected: this.selected\n }\n\n /*\n <tenable-heading3 .color=${'alt'}>\n <slot></slot>\n </tenable-heading3>\n */\n\n return html`\n <button\n class=\"tenb-avatar ${classMap(classes)}\"\n type=\"button\"\n ?autofocus=${this.autofocus}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n @click=${this.onClickHandler}\n >\n <slot></slot>\n </button>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-avatar': Avatar\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../BaseStyles'\n\nexport const badgeStyles = css`\n ${componentStyles}\n\n :host {\n display: inline-block;\n }\n .tenable-badge__root {\n display: flex;\n align-items: center;\n width: fit-content;\n font-family: var(--tenb-fonts-base);\n font-style: normal;\n font-weight: 400;\n font-size: var(--tenb-fontSizes-10);\n background-color: var(--tenb-colors-background-container);\n border: 1px solid var(--tenb-colors-border-base);\n border-radius: 3px;\n color: var(--tenb-colors-text-alt);\n line-height: 10px;\n text-transform: uppercase;\n min-height: 10px;\n min-width: 14px;\n margin-right: 0px;\n padding: 4px;\n width: auto;\n text-align: center;\n user-select: none;\n -webkit-user-select: none; /* safari */\n }\n /* Fixes text alignment issue in Firefox */\n @-moz-document url-prefix() {\n .tenable-badge__root {\n padding-top: 5px;\n padding-bottom: 3px;\n }\n }\n .tenable-badge__variant_severity {\n color: var(--tenb-colors-text-inverse);\n font-weight: 700;\n font-size: var(--tenb-fontSizes-12);\n line-height: 14px;\n min-height: 14px;\n padding: 2px 7px;\n }\n /* Fixes text alignment issue in Firefox */\n @-moz-document url-prefix() {\n .tenable-badge__variant_severity {\n padding-top: 3px;\n padding-bottom: 1px;\n }\n }\n .tenable-badge__variant-critical {\n color: var(--tenb-colors-text-white);\n background-color: var(--tenb-colors-chart-severity-critical);\n border-color: var(--tenb-colors-chart-severity-critical);\n }\n .tenable-badge__variant-high {\n color: var(--tenb-colors-text-white);\n background-color: var(--tenb-colors-chart-severity-high);\n border-color: var(--tenb-colors-chart-severity-high);\n }\n /* \"Bad\" shares styles from \"High\" */\n .tenable-badge__variant-bad {\n color: var(--tenb-colors-text-white);\n background-color: var(--tenb-colors-chart-severity-high);\n border-color: var(--tenb-colors-chart-severity-high);\n }\n .tenable-badge__variant-medium {\n color: var(--tenb-colors-text-white);\n background-color: var(--tenb-colors-chart-severity-medium);\n border-color: var(--tenb-colors-chart-severity-medium);\n }\n /* \"Warning\" shares styles from \"Medium\" */\n .tenable-badge__variant-warning {\n color: var(--tenb-colors-text-white);\n background-color: var(--tenb-colors-chart-severity-medium);\n border-color: var(--tenb-colors-chart-severity-medium);\n }\n .tenable-badge__variant-low {\n color: var(--tenb-colors-text-dark);\n background-color: var(--tenb-colors-chart-severity-low);\n border-color: var(--tenb-colors-chart-severity-low);\n }\n .tenable-badge__variant-info {\n color: var(--tenb-colors-text-inverse);\n background-color: var(--tenb-colors-chart-sequential-segment-01);\n border-color: var(--tenb-colors-chart-sequential-segment-01);\n }\n .tenable-badge__variant-good {\n color: var(--tenb-colors-text-dark);\n background-color: var(--tenb-colors-chart-status-good);\n border-color: var(--tenb-colors-chart-status-good);\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { badgeStyles } from './styles'\nimport type { BadgeVariant } from './types'\n\n/**\n * @slot Default - Slot to place badge content.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-badge')\nexport class Badge extends MobxLitElement {\n static styles = [badgeStyles]\n\n @property({ type: String })\n variant: BadgeVariant | '' = ''\n\n connectedCallback() {\n super.connectedCallback()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n }\n\n render() {\n const badgeVariantKey = `tenable-badge__variant-${this.variant}`\n\n return html`\n <div\n part=\"base\"\n class=${classMap({\n 'tenable-badge__root': true,\n 'tenable-badge__variant_severity': this.variant !== '',\n [badgeVariantKey]: this.variant !== ''\n })}\n >\n <slot></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-badge': Badge\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../../BaseStyles'\n\nexport const breadcrumbStyles = css`\n ${componentStyles}\n\n :host {\n display: inline-flex;\n\n /* Prevents radius curve of button wrapper from being clickable when disabled */\n pointer-events: none;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport type { BreadCrumbItem } from '@/types/tul'\nimport { breadcrumbStyles } from './styles'\n\n@customElement('tenable-breadcrumbs')\nexport class BreadCrumbMenu extends MobxLitElement {\n static styles = [breadcrumbStyles]\n\n @property({ type: Array })\n breadcrumbs: BreadCrumbItem[] = []\n\n render() {\n return html`\n <div class=\"tenable-breadcrumb-menu\" part=\"base\">\n ${this.breadcrumbs &&\n repeat(\n this.breadcrumbs,\n item => item.id,\n (item: BreadCrumbItem, index: number) => html`\n <tenable-breadcrumb-item\n .items=\"${this.breadcrumbs}\"\n title=${item?.name}\n .item=${item}\n .hideChevron=${this.breadcrumbs.length - 1 === index}\n >\n </tenable-breadcrumb-item>\n `\n )}\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-breadcrumbs': BreadCrumbMenu\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../../BaseStyles'\n\nexport const breadcrumbItemStyles = css`\n ${componentStyles}\n\n :host {\n display: inline-flex;\n\n /* Prevents radius curve of button wrapper from being clickable when disabled */\n pointer-events: none;\n }\n tenable-link-button::part(base) {\n align-items: center;\n }\n tenable-link-button::part(base):hover {\n border: 0;\n }\n tenable-chevron-right {\n color: var(--tenb-colors-icon-alt);\n display: flex;\n }\n\n .last-link::part(base) {\n color: var(--tenb-colors-text-body);\n cursor: auto;\n }\n\n // Removing this due to a hover issue on last-link\n // .last-link::part(base):hover {\n // cursor: none;\n // border: 0;\n // }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { renderIconAsString } from '@/components/GlobalHeader/utils/renderer'\nimport { uuid } from '@/components/GlobalHeader/utils/uuid'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport type { BreadCrumbItem, ITulEventBreadCrumbOnClick } from '@/types/tul'\nimport { TulEvent } from '@/types/tul'\nimport { breadcrumbItemStyles } from './styles'\n\n// const ALLOWED_CHAR_LIMIT = 20\n// const SLICE_CHAR_POINT = 16\n\n@customElement('tenable-breadcrumb-item')\nexport class BreadCrumbMenuItem extends MobxLitElement {\n static styles = [breadcrumbItemStyles]\n\n @property({ type: Array })\n items: BreadCrumbItem[] = []\n\n @property({ type: Object })\n item: BreadCrumbItem | null = null\n\n @property({ type: Boolean, reflect: true })\n hideChevron = false\n\n handleClick = (ev: Event) => {\n if (this.item?.disabled) {\n ev.stopImmediatePropagation()\n return\n }\n const { storeRoot, storeTelemetry } = this.__getStores()\n const tulEvent: ITulEventBreadCrumbOnClick = {\n eventName: TulEvent.onTulEventBreadCrumbClick,\n detail: {\n nativeEvent: ev,\n breadcrumb: { ...this.item } as BreadCrumbItem,\n tulApi: storeRoot.tulApi\n }\n }\n storeTelemetry.trackTelemetry(EventType.BreadCrumbItemClicked, {\n name: this.item?.name\n })\n this.__dispatchTulEvent(tulEvent)\n storeRoot.environment.config.app.handlers?.onTulBreadCrumbClick?.({\n tulEvent\n })\n }\n\n private _truncateName = (name = '') => {\n /*\n @Todo -- Truncate when there is a bigger breadcrumb item based on UX\n */\n // if (name.length > ALLOWED_CHAR_LIMIT) {\n // return name.slice(0, SLICE_CHAR_POINT) + '...'\n // }\n return name\n }\n\n private _prepareIdForBreadcrumb = (name = '') => {\n return name?.toLocaleLowerCase()?.split(' ')?.join('-') || uuid()\n }\n\n private _renderLink = () => {\n return html`\n <tenable-link-button\n ?disabled=${this.item?.disabled}\n ?autofocus=${this.item?.autofocus}\n @click=${this.handleClick}\n >\n ${this.item?.icon\n ? html`<i slot=\"icon-left\">\n ${renderIconAsString(`${this.item?.icon}`)}\n </i>`\n : ''}\n <span\n id=\"tul-breadcrumb-item-for-${this._prepareIdForBreadcrumb(\n this.item?.name\n )}\"\n >${this._truncateName(this.item?.name)}</span\n >\n ${this.hideChevron\n ? ''\n : html`<tenable-chevron-right slot=\"icon-right\">\n </tenable-chevron-right>`}\n </tenable-link-button>\n `\n }\n\n private _renderText = () => {\n return html`\n <tenable-link-button class=\"last-link\" tabindex=\"-1\">\n <span\n class=\"tul-last-breadcrumb-item\"\n id=\"tul-breadcrumb-item-for-${this._prepareIdForBreadcrumb(\n this.item?.name\n )}\"\n >${this.items.length > 1\n ? this._truncateName(this.item?.name)\n : this.item?.name}</span\n >\n </tenable-link-button>\n `\n }\n\n render() {\n return this.hideChevron ? this._renderText() : this._renderLink()\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-breadcrumb-item': BreadCrumbMenuItem\n }\n}\n","import type { ReactiveControllerHost } from 'lit'\n\ntype PDSHost = {\n dataAttr: any\n} & HTMLElement &\n ReactiveControllerHost\n\nexport class TelemetryController {\n host: PDSHost\n\n dataAttr: any = null\n\n constructor(host: PDSHost, dataAttr: any) {\n this.host = host\n this.dataAttr = dataAttr\n\n this.host.addController(this)\n }\n\n setAttributes(dataAttr = this.dataAttr) {\n for (const key in dataAttr) {\n this.host.setAttribute(key, dataAttr[key])\n }\n }\n\n hostConnected() {\n this.setAttributes()\n }\n\n // React lifecycles requires the telemetry attributes to be set after hostConnected/connectedCallback\n hostUpdate() {\n this.dataAttr = this.host.dataAttr\n\n this.setAttributes()\n }\n}\n","import { css } from 'lit'\n\nexport const buttonStyles = css`\n :host {\n display: inline-block;\n\n /* Prevents radius curve of button wrapper from being clickable when disabled */\n pointer-events: none;\n }\n\n .tenable-button {\n display: inline-flex;\n align-items: stretch;\n border: 1px solid var(--tenb-colors-border-idle);\n border-radius: 100px;\n box-sizing: border-box;\n box-shadow: 0px 0px 4px rgba(0, 0, 0, 0.25);\n color: var(--tenb-colors-text-white);\n cursor: pointer;\n font-family: var(--tenb-fonts-brand-medium);\n font-size: var(--tenb-fontSizes-16);\n padding: 7px 12px;\n height: var(--tenb-sizes-32);\n width: auto;\n\n /* Prevents radius curve of button from being clickable when disabled */\n pointer-events: auto;\n }\n\n .tenable-button.small,\n .tenable-button.selected.small {\n font-size: var(--tenb-fontSizes-14);\n padding: 5px 12px;\n height: 28px;\n }\n\n .tenable-button.large,\n .tenable-button.selected.large {\n padding: 7px 12px;\n height: 32px;\n }\n\n .tenable-button.xlarge,\n .tenable-button.selected.xlarge {\n padding: 11px 16px;\n height: 40px;\n }\n\n .tenable-button .icon-left {\n display: inline-flex;\n padding-right: 4px;\n color: var(--tenb-colors-icon-white);\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-button .icon-right {\n display: inline-flex;\n padding-left: 4px;\n color: var(--tenb-colors-icon-white);\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-button .label {\n display: inline-flex;\n line-height: 16px;\n user-select: none;\n -webkit-user-select: none; /* safari */\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-button:focus-visible {\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 2px;\n }\n\n .tenable-button:hover {\n border: 1px solid var(--tenb-colors-border-hover);\n }\n\n .tenable-button:active {\n border: 1px solid var(--tenb-colors-border-active);\n color: var(--tenb-colors-text-interactive-idle);\n }\n\n .tenable-button:active .icon-left,\n .tenable-button:active .icon-right {\n color: var(--tenb-colors-icon-accent-idle);\n }\n\n .tenable-button:disabled {\n border: 1px solid var(--tenb-colors-border-form-disabled);\n box-shadow: none;\n color: var(--tenb-colors-text-white);\n cursor: default;\n }\n\n .tenable-button:disabled .icon-left,\n .tenable-button:disabled .icon-right {\n color: var(--tenb-colors-icon-white);\n }\n\n .tenable-button.selected {\n border: 1px solid var(--tenb-colors-border-selected);\n color: var(--tenb-colors-text-white);\n }\n\n .tenable-button.selected:active {\n color: var(--tenb-colors-text-white);\n }\n\n .tenable-button.selected .icon-left,\n .tenable-button.selected:active .icon-left,\n .tenable-button.selected .icon-right,\n .tenable-button.selected:active .icon-right {\n color: var(--tenb-colors-icon-white);\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { TelemetryController } from '../../controller/TelemetryController'\nimport { buttonStyles } from './styles'\n\n/**\n * @slot Default - Slot to place Button label.\n * @slot icon-left - Slot to place the left icon.\n * @slot icon-right - Slot to place the right icon.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-button')\nexport class BaseButton extends MobxLitElement {\n static styles = [buttonStyles]\n\n @property({ type: Boolean, reflect: true })\n disabled = false\n\n @property({ type: Boolean, reflect: true })\n selected = false\n\n @property({ type: Boolean })\n allowSelectedClick = false\n\n @property({ reflect: true })\n type: 'button' | 'reset' | 'submit' = 'button'\n\n @property()\n size: 'small' | 'large' | 'xlarge' = 'large'\n\n @property({ reflect: true })\n value = ''\n\n @property()\n name = ''\n\n @property()\n form: string | null = ''\n\n @property()\n formMethod: string | null = ''\n\n @property()\n formAction: string | null = ''\n\n @property()\n formTarget: string | null = ''\n\n @property({ type: Boolean, reflect: true })\n autofocus = false\n\n @property({ type: Object })\n dataAttr: any = null\n\n telemetryController: TelemetryController | null = null\n\n onClickHandler = (ev: Event) => {\n if (this.disabled || (this.selected && !this.allowSelectedClick)) {\n ev.stopImmediatePropagation()\n }\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n this.telemetryController = new TelemetryController(this, this.dataAttr)\n }\n\n render() {\n const classes = {\n selected: this.selected,\n [this.size]: true\n }\n\n const isFormButton = this.type === 'submit' || this.type === 'reset'\n if (!isFormButton) {\n this.form = null\n this.formMethod = null\n this.formAction = null\n this.formTarget = null\n }\n\n return html`\n <button\n part=\"base\"\n class=\"tenable-button ${classMap(classes)}\"\n type=${this.type}\n form=${ifDefined(this.form as string)}\n formmethod=${ifDefined(this.formMethod as any)}\n formaction=${ifDefined(this.formAction as string)}\n formtarget=${ifDefined(this.formTarget as any)}\n name=${ifDefined(this.name)}\n value=\"${ifDefined(this.value)}\"\n ?autofocus=${this.autofocus}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n @click=${this.onClickHandler}\n >\n <div part=\"icon-left\" class=\"icon-left\">\n <slot name=\"icon-left\"></slot>\n </div>\n <span part=\"label\" class=\"label\"><slot></slot></span>\n <div part=\"icon-right\" class=\"icon-right\">\n <slot name=\"icon-right\"></slot>\n </div>\n </button>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-button': BaseButton\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../../BaseStyles'\n\nexport const linkButtonStyles = css`\n ${componentStyles}\n\n :host {\n display: inline-flex;\n\n /* Prevents radius curve of button wrapper from being clickable when disabled */\n pointer-events: none;\n }\n\n .tenable-link-button {\n display: inline-flex;\n align-items: stretch;\n background-color: transparent;\n border: 0;\n border-bottom: 1px solid var(--tenb-colors-transparent);\n border-radius: 0;\n box-sizing: border-box;\n color: var(--tenb-colors-text-interactive-idle);\n cursor: pointer;\n font-family: var(--tenb-fonts-brand-medium);\n font-size: var(--tenb-fontSizes-16);\n padding: 0px;\n height: 21px;\n width: auto;\n\n /* Prevents radius curve of button from being clickable when disabled */\n pointer-events: auto;\n }\n\n .tenable-link-button .icon-left {\n display: inline-flex;\n padding-right: 4px;\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-link-button .icon-right {\n display: inline-flex;\n padding-left: 4px;\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-link-button .label {\n display: inline-flex;\n line-height: 16px;\n user-select: none;\n -webkit-user-select: none; /* safari */\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-link-button:focus-visible {\n border-radius: 3px;\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 2px;\n }\n\n .tenable-link-button:hover {\n border-bottom: 1px solid var(--tenb-colors-text-interactive-idle);\n color: var(--tenb-colors-text-interactive-idle);\n }\n\n .tenable-link-button:active {\n border-bottom: 1px solid var(--tenb-colors-text-interactive-active);\n color: var(--tenb-colors-text-interactive-active);\n }\n\n .tenable-link-button:disabled {\n border-bottom: none;\n color: var(--tenb-colors-background-button-primary-disabled);\n cursor: default;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { linkButtonStyles } from './styles'\n\n/**\n * @slot Default - Slot to place LinkButton content.\n * @slot icon-left - Slot to place the left icon.\n * @slot icon-right - Slot to place the right icon.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-link-button')\nexport class LinkButton extends MobxLitElement {\n static styles = [linkButtonStyles]\n\n @property({ type: Boolean })\n disabled = false\n\n @property({ type: Boolean })\n autofocus = false\n\n handleClick = (ev: Event) => {\n if (this.disabled) {\n ev.stopImmediatePropagation()\n }\n }\n\n render() {\n return html`\n <button\n part=\"base\"\n class=\"tenable-link-button\"\n type=\"button\"\n ?autofocus=${this.autofocus}\n ?disabled=${this.disabled}\n @click=${this.handleClick}\n >\n <div part=\"icon-left\" class=\"icon-left\">\n <slot name=\"icon-left\"></slot>\n </div>\n <span part=\"label\" class=\"label\"><slot></slot></span>\n <div part=\"icon-right\" class=\"icon-right\">\n <slot name=\"icon-right\"></slot>\n </div>\n </button>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-link-button': LinkButton\n }\n}\n","import { css } from 'lit'\n\nexport const secondaryButtonStyles = css`\n .tenable-button {\n background-color: var(--tenb-colors-background-button-secondary-idle);\n border: 1px solid var(--tenb-colors-border-interactive);\n color: var(--tenb-colors-text-body);\n }\n\n .tenable-button .icon-left {\n color: var(--tenb-colors-icon-accent-idle);\n }\n\n .tenable-button .icon-right {\n color: var(--tenb-colors-icon-default);\n }\n\n .tenable-button:hover {\n background-color: var(--tenb-colors-background-button-secondary-hover);\n border: 1px solid var(--tenb-colors-border-interactive);\n }\n\n .tenable-button:active {\n background-color: var(--tenb-colors-background-button-secondary-active);\n border: 1px solid var(--tenb-colors-border-active);\n color: var(--tenb-colors-text-interactive-idle);\n box-shadow: 0px 0px 3px var(--tenb-colors-shadow-button-secondary);\n }\n\n .tenable-button:active .icon-left,\n .tenable-button:active .icon-right {\n color: var(--tenb-colors-icon-accent-idle);\n }\n\n .tenable-button:disabled {\n background-color: var(--tenb-colors-background-button-secondary-disabled);\n border: 1px solid var(--tenb-colors-border-form-disabled);\n color: var(--tenb-colors-text-disabled);\n box-shadow: none;\n }\n\n .tenable-button:disabled .icon-left,\n .tenable-button:disabled .icon-right {\n color: var(--tenb-colors-icon-disabled);\n }\n\n .tenable-button.selected {\n background-color: var(--tenb-colors-background-button-secondary-selected);\n border: 1px solid var(--tenb-colors-border-active);\n color: var(--tenb-colors-text-interactive-idle);\n box-shadow: 0px 0px 3px var(--tenb-colors-shadow-button-secondary);\n }\n\n .tenable-button.selected:active {\n color: var(--tenb-colors-text-interactive-idle);\n }\n\n .tenable-button.selected .icon-left,\n .tenable-button.selected:active .icon-left,\n .tenable-button.selected .icon-right,\n .tenable-button.selected:active .icon-right {\n color: var(--tenb-colors-icon-accent-idle);\n }\n`\n","import { customElement } from 'lit/decorators.js'\nimport { BaseButton } from '../Button'\nimport { buttonStyles } from '../styles'\nimport { secondaryButtonStyles } from './styles'\n\n@customElement('tenable-secondary-button')\nexport class SecondaryButton extends BaseButton {\n static styles = [buttonStyles, secondaryButtonStyles]\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-secondary-button': SecondaryButton\n }\n}\n","import type {\n LitElement,\n ReactiveController,\n ReactiveControllerHost\n} from 'lit'\nimport StoreRoot from '@/stores/StoreRoot'\nimport { HeaderEvent } from '../Header/HeaderEvent'\n\nexport class ActionController implements ReactiveController {\n host: ReactiveControllerHost & EventTarget\n\n isMenuOpen?: boolean\n\n private _headerActionsPopover: any\n\n constructor(host: ReactiveControllerHost & EventTarget) {\n this.host = host\n\n this.host.addController(this)\n }\n\n hostConnected() {\n document.addEventListener('click', this.closePopover)\n\n document.addEventListener(\n HeaderEvent.UNIVERSAL_HEADER_POPOVER_CLICKED,\n evt =>\n this.onPopoverClicked(evt as CustomEvent<{ hostClicked: LitElement }>)\n )\n }\n\n hostDisconnected() {\n document.removeEventListener('click', this.closePopover)\n document.removeEventListener(\n HeaderEvent.UNIVERSAL_HEADER_POPOVER_CLICKED,\n evt =>\n this.onPopoverClicked(evt as CustomEvent<{ hostClicked: LitElement }>)\n )\n }\n\n // Only gets called by the host\n onPopoverTriggerClicked(hostClicked: LitElement, popover: any) {\n this._headerActionsPopover = popover\n\n const options: CustomEventInit<{ hostClicked: LitElement }> = {\n detail: { hostClicked },\n bubbles: true,\n composed: true\n }\n\n // Dispatch an custom event to notify listeners that one of the actions menus have been clicked.\n const popoverClickedEvent = new CustomEvent(\n HeaderEvent.UNIVERSAL_HEADER_POPOVER_CLICKED,\n options\n )\n\n document.dispatchEvent(popoverClickedEvent)\n }\n\n // Gets called whenever a user clicks any header popover-trigger\n onPopoverClicked = (event: CustomEvent<{ hostClicked: LitElement }>) => {\n const { storePendo } = StoreRoot.getStores()\n\n // Close popover if the host that was clicked is not this host OR if the host menu was already open\n const shouldClose =\n this.host !== event.detail.hostClicked || Boolean(this.isMenuOpen)\n\n storePendo?.closeResourceCenter(event)\n this.updatePopover(shouldClose)\n }\n\n // Gets called whenever a user clicks outside the header popovers\n closePopover = () => {\n this.updatePopover(true)\n }\n\n updatePopover = (close: boolean) => {\n // Dispatch custom event on instance of controller's host only\n // Allows the ActionPanelBody to listen and see if its popover was opened\n if (!this.isMenuOpen && this._headerActionsPopover) {\n const options: CustomEventInit<{ hostOpened: ActionController }> = {\n detail: { hostOpened: this },\n bubbles: true,\n composed: true\n }\n const UniversalHeaderPopoverOpened = new CustomEvent(\n HeaderEvent.UNIVERSAL_HEADER_POPOVER_OPENED,\n options\n )\n this.host.dispatchEvent(UniversalHeaderPopoverOpened)\n }\n\n this.isMenuOpen = !close\n\n if (close && this._headerActionsPopover) {\n this._headerActionsPopover.closePopover()\n }\n\n this.host.requestUpdate()\n }\n}\n","import { html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport type { ITulEventChatOnClick } from '@/types/tul'\nimport { TulEvent } from '@/types/tul'\nimport { uuid } from '../../utils/uuid'\nimport { ActionController } from '../ActionPanel/ActionController'\nimport type { TenablePopoverEvents } from '../PopOver/PopOverEvent'\n\nconst id = 'universal-header-chat-action'\nconst uniqueId = `${uuid()}`\nconst popoverId = `${id}-${uniqueId}`\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart trigger - The trigger wrapper\n * @csspart content - The content wrapper\n */\n@customElement('tenable-universal-header-chat-action')\nexport class ChatAction extends MobxLitElement {\n @query(`#${popoverId}`)\n popover: any\n\n @property({ type: Number })\n chatCount = 0\n\n private _actionController = new ActionController(this)\n\n onPopoverTriggerClicked = (event: TenablePopoverEvents) => {\n const { storeRoot, storeTelemetry } = this.__getStores()\n\n this._actionController.onPopoverTriggerClicked(this, this.popover)\n\n const tulEvent: ITulEventChatOnClick = {\n eventName: TulEvent.onTulEventChatClick,\n detail: {\n nativeEvent: event,\n tulApi: storeRoot.tulApi\n }\n }\n\n this.__dispatchTulEvent(tulEvent)\n\n storeRoot.environment.config.app.handlers?.onTulChatClick?.({\n tulEvent\n })\n\n storeTelemetry.trackTelemetry(EventType.ChatClicked)\n }\n\n renderBadge = () => {\n if (this.chatCount > 0) {\n return html`<tenable-notification-badge\n >${this.chatCount}</tenable-notification-badge\n >`\n }\n }\n\n render() {\n return html`\n <tenable-popover\n part=\"base\"\n id=\"${popoverId}\"\n label=\"Chat Menu\"\n ?is-open=${this._actionController.isMenuOpen}\n @tenable-popover-anchor-clicked=${this.onPopoverTriggerClicked}\n >\n <tenable-floating-button\n class=\"chat__trigger\"\n ?selected=${this._actionController.isMenuOpen}\n .allowSelectedClick=${true}\n id=\"chat-menu-button\"\n aria-label=\"Chat\"\n aria-haspopup=\"true\"\n slot=\"anchor\"\n part=\"trigger\"\n >\n <tenable-chat color=\"brand\" size=\"medium\"></tenable-chat>\n\n ${this.renderBadge()}\n </tenable-floating-button>\n\n <slot></slot>\n </tenable-popover>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-chat-action': ChatAction\n }\n}\n","import { css } from 'lit'\n\nexport const chatMenuStyles = css`\n #chat-view {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n gap: 16px 16px;\n margin: 16px;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { chatMenuStyles } from './styles'\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart panel-header - The panel header wrapper\n * @csspart panel-header-title - The panel header title\n * @csspart panel-body - The panel body wrapper\n */\n@customElement('tenable-universal-header-chat-panel')\nexport class ChatPanel extends MobxLitElement {\n static styles = [chatMenuStyles]\n\n @property({ type: String })\n panelTitle = 'Chat'\n\n render() {\n return html`\n <tenable-universal-header-action-panel part=\"base\">\n <tenable-universal-header-action-panel-header part=\"panel-header\">\n <tenable-heading3 part=\"panel-header-title\"\n >${this.panelTitle}</tenable-heading3\n >\n </tenable-universal-header-action-panel-header>\n <tenable-universal-header-action-panel-body part=\"panel-body\">\n <slot></slot>\n </tenable-universal-header-action-panel-body>\n </tenable-universal-header-action-panel>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-chat-panel': ChatPanel\n }\n}\n","import { css } from 'lit'\nimport { themeProperty } from '@/libs/styles'\nimport { componentStyles } from '../BaseStyles'\n\nexport const floatingButtonStyles = css`\n ${componentStyles}\n\n :host {\n display: flex;\n width: 32px;\n height: 32px;\n\n /* Prevents radius curve of button wrapper from being clickable when disabled */\n pointer-events: none;\n }\n\n .tenable-floating-button {\n background-color: transparent;\n border: 0;\n border-radius: 100px;\n box-sizing: border-box;\n color: var(--tenb-colors-text-body);\n cursor: pointer;\n width: 32px;\n height: 32px;\n text-align: center;\n vertical-align: center;\n user-select: none;\n padding-inline: 4px;\n -webkit-user-select: none; /* safari */\n\n /* Prevents radius curve of button from being clickable when disabled */\n pointer-events: auto;\n }\n\n .tenable-floating-button.medium,\n :host([size='medium']) {\n width: 24px;\n height: 24px;\n padding: 0;\n }\n\n .tenable-floating-button.small,\n :host([size='small']) {\n width: 20px;\n height: 20px;\n padding: 0;\n }\n\n .tenable-floating-button .icon {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 1.5rem;\n height: 1.5rem;\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-floating-button:focus-visible {\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 2px;\n }\n\n .tenable-floating-button:hover {\n background-color: ${themeProperty('tul-floating-button-hover/background')};\n }\n\n .tenable-floating-button:disabled {\n cursor: default;\n background-color: transparent;\n color: var(--tenb-colors-icon-disabled);\n }\n\n .tenable-floating-button.selected {\n background-color: var(--tenb-colors-background-button-floating-selected);\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { floatingButtonStyles } from './styles'\n\n/**\n * @slot Default - Slot to place floating button content.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-floating-button')\nexport class FloatingButton extends MobxLitElement {\n static styles = [floatingButtonStyles]\n\n @property({ type: String, reflect: true })\n size: 'small' | 'medium' | 'large' = 'large'\n\n @property({ type: Boolean, reflect: true })\n disabled = false\n\n @property({ type: Boolean, reflect: true })\n selected = false\n\n @property({ type: Boolean })\n allowSelectedClick = false\n\n @property({ type: Boolean, reflect: true })\n autofocus = false\n\n @property()\n 'aria-haspopup' = ''\n\n @property()\n 'aria-label' = 'null'\n\n handleClick = (ev: Event) => {\n if (this.disabled || (this.selected && !this.allowSelectedClick)) {\n ev.stopImmediatePropagation()\n }\n }\n\n render() {\n const classes = {\n selected: this.selected,\n [this.size]: true\n }\n\n return html`\n <button\n part=\"base\"\n class=\"tenable-floating-button ${classMap(classes)}\"\n role=\"button\"\n type=\"button\"\n aria-haspopup=${Boolean(this['aria-haspopup'])}\n aria-label=${ifDefined(this['aria-label'])}\n ?autofocus=${this.autofocus}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n @click=${this.handleClick}\n >\n <div part=\"icon\" class=\"icon\">\n <slot></slot>\n </div>\n </button>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-floating-button': FloatingButton\n }\n}\n","/**\n * Determines if a named slot has been filled externally\n * @param node host DOM node to search within\n * @param name name of slot\n * @returns boolean\n */\nexport const isNamedSlotFilled = (hostNode: HTMLElement, name: string) => {\n return hostNode.querySelector(`*[slot='${name}']`) !== null\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../BaseStyles'\n\nexport const floatingTextButtonStyles = css`\n ${componentStyles}\n\n :host {\n height: 32px;\n\n /* Prevents radius curve of button wrapper from being clickable when disabled */\n pointer-events: none;\n }\n\n .tenable-floating-text-button {\n display: inline-flex;\n flex-flow: row nowrap;\n align-items: center;\n background-color: transparent;\n border: 0;\n border-radius: 100px;\n box-sizing: border-box;\n color: var(--tenb-colors-text-body);\n cursor: pointer;\n height: 32px;\n text-align: center;\n vertical-align: middle;\n\n /* apply tenb-text styling */\n font-family: var(--tenb-fonts-base);\n font-size: var(--tenb-fontSizes-14);\n font-weight: 400;\n\n /* Prevents radius curve of button from being clickable when disabled */\n pointer-events: auto;\n }\n\n .tenable-floating-text-button_small {\n height: 24px;\n\n /* apply tenb-small-text styling */\n font-size: var(--tenb-fontSizes-12);\n }\n\n .tenable-floating-text-button__icon-left_enabled {\n padding-top: 4px;\n padding-right: 4px;\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-floating-text-button__icon-right_enabled {\n padding-top: 4px;\n padding-left: 4px;\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-floating-text-button__label {\n user-select: none;\n -webkit-user-select: none; /* safari */\n\n /* Prevents html onclick events from bubbling when disabled */\n pointer-events: none;\n }\n\n .tenable-floating-text-button:focus-visible {\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 2px;\n }\n\n .tenable-floating-text-button:hover {\n background-color: var(--tenb-colors-background-button-floating-hover);\n }\n\n .tenable-floating-text-button:disabled {\n cursor: default;\n }\n\n .tenable-floating-text-button:disabled:hover {\n background-color: transparent;\n }\n\n .tenable-floating-text-button.selected {\n background-color: var(--tenb-colors-background-button-floating-selected);\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { isNamedSlotFilled } from '../../utils/slot'\nimport { floatingTextButtonStyles } from './styles'\n\n/**\n * @slot Default - Slot to place label content.\n * @slot icon-left - Slot to place an icon.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-floating-text-button')\nexport class FloatingTextButton extends MobxLitElement {\n static styles = [floatingTextButtonStyles]\n\n @property({ type: Boolean })\n disabled = false\n\n @property({ type: Boolean })\n selected = false\n\n @property({ type: Boolean })\n allowSelectedClick = false\n\n @property({ type: Boolean })\n autofocus = false\n\n @property()\n size: 'small' | 'medium' = 'medium'\n\n @property()\n 'aria-haspopup' = ''\n\n handleClick = (ev: Event) => {\n if (this.disabled || (this.selected && !this.allowSelectedClick)) {\n ev.stopImmediatePropagation()\n }\n }\n\n render() {\n const classes = {\n 'tenable-floating-text-button': true,\n 'tenable-floating-text-button_small': this.size === 'small',\n selected: this.selected\n }\n\n const iconLeftClassMap = classMap({\n 'tenable-floating-text-button__icon-left': true,\n 'tenable-floating-text-button__icon-left_enabled': isNamedSlotFilled(\n this,\n 'icon-left'\n )\n })\n const iconRightClassMap = classMap({\n 'tenable-floating-text-button__icon-right': true,\n 'tenable-floating-text-button__icon-right_enabled': isNamedSlotFilled(\n this,\n 'icon-right'\n )\n })\n\n return html`\n <button\n part=\"base\"\n class=\"${classMap(classes)}\"\n type=\"button\"\n ?autofocus=${this.autofocus}\n ?selected=${this.selected}\n ?disabled=${this.disabled}\n aria-haspopup=${ifDefined(this['aria-haspopup']) ? true : false}\n @click=${this.handleClick}\n >\n <div part=\"icon-left\" .class=${iconLeftClassMap}>\n <slot name=\"icon-left\"></slot>\n </div>\n <div part=\"label\" class=\"tenable-floating-text-button__label\">\n <slot></slot>\n </div>\n <div part=\"icon-right\" .class=${iconRightClassMap}>\n <slot name=\"icon-right\"></slot>\n </div>\n </button>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-floating-text-button': FloatingTextButton\n }\n}\n","import { css } from 'lit'\nimport { themeProperty } from '@/libs/styles'\n\nexport const universalHeaderStyles = css`\n .universal-header {\n background-color: ${themeProperty('tul-header/background')};\n box-sizing: border-box;\n border-bottom: 1px solid var(--tenb-colors-border-base);\n color: var(--tenb-colors-text-body);\n font-size: 1.875rem;\n height: ${themeProperty('tul-header/height')};\n width: 100%;\n min-width: 1200px;\n\n display: flex;\n align-items: center;\n justify-content: space-between;\n flex-flow: row nowrap;\n }\n\n .universal-header .left-content-region {\n flex: 3 1;\n box-sizing: border-box;\n width: 100%;\n font-size: 0.875rem;\n }\n\n .universal-header .right-content-region {\n flex: 2 1;\n box-sizing: border-box;\n width: 100%;\n padding-right: 16px;\n font-size: 0.875rem;\n }\n\n .universal-header .left-content-region .left-content {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n text-align: left;\n }\n\n .universal-header .left-content-region .navigation-button-container {\n width: 32px;\n height: inherit;\n padding-left: 12px;\n padding-right: 8px;\n }\n\n .universal-header .left-content-region tenable-floating-button::part(base) {\n // can be done for all icons, but added only where needed\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .universal-header .right-content-region .right-content {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: flex-end;\n height: inherit;\n\n > div {\n flex: 1;\n height: inherit;\n }\n }\n\n .universal-header .right-content-region .right-content > div {\n flex: 1;\n }\n\n .universal-header .right-content-region .right-content ::slotted(*) {\n margin-left: var(--tenb-space-8);\n }\n\n div.divider {\n margin: 8px 17px;\n height: 17px;\n width: 1px;\n background-color: var(--tenb-colors-border-base);\n }\n\n .left-content .universal-header-title {\n display: inline-flex;\n }\n\n // .left-content .universal-header-logo {\n // min-width: 400px;\n // }\n\n .universal-header-logo {\n height: 2.0625rem;\n max-width: 22rem;\n }\n\n .left-content .universal-header-logo.clickable {\n cursor: pointer;\n }\n .left-content .universal-header-logo.no-hamburger {\n margin-left: 12px;\n }\n .left-content .universal-header-logo:focus-visible {\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 2px;\n border-radius: 6px;\n }\n\n .left-content .universal-header-logo-image {\n height: 33px;\n }\n\n .universal-header-logo.clickable:focus-visible {\n border-radius: 10px;\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 1px;\n }\n\n ::slotted(*) {\n display: flex;\n align-items: center;\n }\n`\n","import { isDefined } from '@productive-codebases/toolbox'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport type {\n BreadCrumbItem,\n ITulEventApplicationLogoOnClick,\n ITulEventHamburgerOnClick\n} from '@/types/tul'\nimport { HTML_AS_STRING_REGEX, TulEvent } from '@/types/tul'\nimport { renderIconAsString } from '../../utils/renderer'\nimport { NavigationEvent } from './NavigationEvent'\nimport { universalHeaderStyles } from './styles'\n\n/**\n * @slot custom-actions - Used to display any custom dom elements, such as quick actions or a custom button.\n * @slot settings-action - Used to render the Settings Menu\n * @slot notifications-action - Used to render the Notifications Menu.\n * @slot pagination - Used to render a pagination component.\n * @slot workspace-action - Used to render the Workspace Menu.\n * @slot user-action - Used to render the User Profile Menu.\n * @slot help-action - Used to render the User Help Menu.\n *\n * @csspart base - The component's internal wrapper.\n * @csspart left-content-region - The region that contains the left content.\n * @csspart right-content-region - The region that contains the right content.\n * @csspart left-content - The component's left content.\n * @csspart right-content - The component's right content.\n *\n * @event {NavigationEvent} pds-navigation-button-clicked - Dispatched when the Navigation Hamburger Button is clicked.\n */\n@customElement('tenable-universal-header')\nexport class UniversalHeader extends MobxLitElement {\n static styles = [universalHeaderStyles]\n\n @property({ type: Boolean })\n hideActions = false\n\n @property({ type: Boolean })\n hideNavigationButton = false\n\n connectedCallback() {\n super.connectedCallback()\n\n /**\n * @todo Comment this if we don't want to toggle icon on document click\n */\n document.addEventListener('click', this.closeMenu)\n\n document.addEventListener(\n NavigationEvent.UNIVERSAL_NAVIGATION_MENU_COLLAPSED,\n this.closeMenu\n )\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n /**\n * @todo Comment this if we don't want to toggle icon on document click\n */\n document.removeEventListener('click', this.closeMenu)\n }\n\n closeMenu = (event: Event) => {\n const isNavigationButton = event\n .composedPath()\n .some(node => (node as HTMLElement)?.id === 'navigation-button')\n\n if (!isNavigationButton) {\n this.__getStores().storeLayout.closeMainNavigation()\n this.dispatchHamburgerEvent(event)\n }\n }\n\n private dispatchHamburgerEvent(event: Event) {\n const { storeRoot, storeLayout } = this.__getStores()\n const tulEvent: ITulEventHamburgerOnClick = {\n eventName: TulEvent.onTulEventHamburgerClick,\n detail: {\n nativeEvent: event,\n navigationOpened: storeLayout.isNavigationOpened,\n tulApi: storeRoot.tulApi\n }\n }\n this.__dispatchTulEvent(tulEvent)\n storeRoot.environment.config.app.handlers?.onTulHamburgerClick?.({\n tulEvent\n })\n }\n\n private _handleNavigationButtonClick = (event: Event) => {\n const { storeLayout } = this.__getStores()\n storeLayout.toggleMainNavigation()\n const payload = {\n isNavigationOpen: storeLayout.isNavigationOpened,\n nativeEvent: event\n }\n const options: CustomEventInit = { bubbles: true, composed: true }\n const navigationEvent = new NavigationEvent(\n NavigationEvent.UNIVERSAL_NAVIGATION_BUTTON_CLICKED,\n payload,\n options\n )\n this.dispatchEvent(navigationEvent)\n this.dispatchHamburgerEvent(event)\n }\n\n renderHamburgerIcon = () => {\n const { storeLayout } = this.__getStores()\n\n return storeLayout.isNavigationOpened\n ? html`<tenable-close-large-icon\n color=\"brand\"\n size=\"medium\"\n ></tenable-close-large-icon>`\n : html`<tenable-hamburger-open\n color=\"brand\"\n size=\"medium\"\n ></tenable-hamburger-open>`\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"universal-header\">\n ${this._renderLeftContentRegion()} ${this._renderRightContentRegion()}\n </div>\n `\n }\n\n /**\n * Private\n */\n\n private _renderNavigationButton = () => {\n const { storeLayout } = this.__getStores()\n\n if (this.hideNavigationButton) {\n return\n }\n\n return html`\n <div\n part=\"navigation-button-container\"\n id=\"navigation-button-container\"\n class=\"navigation-button-container\"\n @click=\"${(event: Event) => this._handleNavigationButtonClick(event)}\"\n >\n <tenable-floating-button\n id=\"navigation-button\"\n ?selected=${storeLayout.isNavigationOpened}\n .allowSelectedClick=${true}\n data-test=${storeLayout.isNavigationOpened?\"hamburger-close\":\"hamburger-open\"}\n >\n ${this.renderHamburgerIcon()}\n </tenable-floating-button>\n </div>\n `\n }\n\n private _handleLogoOnClick() {\n const { storeRoot, storeTelemetry } = this.__getStores()\n\n const defaultRoute = storeRoot.config.app?.logo?.defaultRoute\n const noHandler =\n !storeRoot.environment.config.app.handlers?.onTulApplicationLogoClick\n\n storeTelemetry.trackTelemetry(EventType.LogoClicked)\n const tulEvent: ITulEventApplicationLogoOnClick = {\n eventName: TulEvent.onTulEventApplicationLogoClick,\n detail: {\n url: '/',\n tulApi: storeRoot.tulApi\n }\n }\n\n if (defaultRoute) {\n window.document.location.href = defaultRoute\n } else if (noHandler) {\n // @todo - do we need to take them to workspace ???\n // window.document.location.href = '/'\n this.__dispatchTulEvent(tulEvent)\n } else {\n // expect app to handle now as they have given a handler\n this.__dispatchTulEvent(tulEvent)\n\n storeRoot.environment.config.app.handlers?.onTulApplicationLogoClick?.({\n tulEvent\n })\n }\n }\n\n private handleKeyDown = (ev: KeyboardEvent) => {\n const element = ev.target as HTMLElement\n switch (ev.code) {\n case 'Enter':\n case 'Space':\n ev.preventDefault()\n element?.click()\n break\n }\n }\n\n private _renderLogo = () => {\n const { storeRoot, storeLayout } = this.__getStores()\n\n const defaultRoute = storeRoot.config.app?.logo?.defaultRoute\n\n const noHamburger =\n storeRoot.config.app?.sidebar?.hamburger === (false as boolean)\n\n const hasHandler = isDefined(\n storeRoot.environment.config.app.handlers?.onTulApplicationLogoClick\n )\n\n const classes = {\n // clickable: defaultRoute || hasHandler,\n clickable: true,\n 'no-hamburger': noHamburger\n }\n\n return html`\n <div\n class=\"universal-header-logo ${classMap(classes)}\"\n @click=\"${this._handleLogoOnClick}\"\n tabindex=\"${defaultRoute || hasHandler ? 0 : -1}\"\n @keydown=\"${this.handleKeyDown}\"\n >\n ${!(storeLayout.logo && HTML_AS_STRING_REGEX.test(storeLayout.logo))\n ? html`<img\n class=\"universal-header-logo-image\"\n src=${storeLayout.logo}\n />`\n : ''}\n ${storeLayout.logo && HTML_AS_STRING_REGEX.test(storeLayout.logo)\n ? html`<i>${renderIconAsString(`${storeLayout.logo}`)} </i>`\n : ''}\n </div>\n `\n }\n\n private _renderHeaderActions = () => {\n if (!this.hideActions) {\n return html`\n <slot name=\"custom-actions\"></slot>\n <slot name=\"app-specific-actions\"></slot>\n <slot name=\"chats-action\"></slot>\n <slot name=\"help-action\"></slot>\n <slot name=\"notifications-action\"></slot>\n <slot name=\"settings-action\"></slot>\n <slot name=\"workspace-action\"></slot>\n <slot name=\"user-action\"></slot>\n `\n }\n }\n\n private _renderBreadCrumbs = () => {\n const breadcrumbs = this.__getStores().storeLayout\n .breadcrumbs as BreadCrumbItem[]\n return breadcrumbs?.length\n ? html`<div class=\"divider\"></div>\n <tenable-breadcrumbs\n .breadcrumbs=${breadcrumbs}\n ></tenable-breadcrumbs>`\n : ''\n }\n\n private _renderLeftContentRegion = () => {\n return html`\n <div part=\"left-content-region\" class=\"left-content-region\">\n <div part=\"left-content\" class=\"left-content\">\n ${this._renderNavigationButton()} ${this._renderLogo()}\n ${this._renderBreadCrumbs()}\n </div>\n </div>\n `\n }\n\n private _renderRightContentRegion = () => {\n return html`\n <div part=\"right-content-region\" class=\"right-content-region\">\n <div part=\"right-content\" class=\"right-content\">\n ${this._renderHeaderActions()}\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header': UniversalHeader\n }\n}\n","import { css } from 'lit'\n\nexport const helpActionStyles = css`\n /* Added to address the Resource Center notification bubble postiion shift after agent 2.90.0 */\n #help-menu-button {\n position: relative;\n }\n\n #help-menu-button > div.pendo-resource-center-badge-notification-bubble {\n position: absolute !important;\n top: -5px !important;\n left: 20px !important;\n height: 20px !important;\n width: 20px !important;\n }\n\n #help-menu-button\n > div.pendo-resource-center-badge-notification-bubble\n > div.pendo-notification-bubble-unread-count {\n line-height: 18px !important;\n width: 20px !important;\n top: 1px !important;\n font-family: var(--tenb-fonts-base) !important;\n font-size: var(--tenb-fontSizes-12) !important;\n }\n`\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport type { ITulEventHelpIconOnClick } from '@/types/tul'\nimport { TulEvent } from '@/types/tul'\nimport { helpActionStyles } from './styles'\n\n/**\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-universal-header-help-action')\nexport class HelpAction extends MobxLitElement {\n private _preventPendoClose = false\n\n static styles = [helpActionStyles]\n\n connectedCallback() {\n super.connectedCallback()\n document.addEventListener('click', this._handleMouseUp)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n document.removeEventListener('click', this._handleMouseUp)\n }\n\n render() {\n return html`\n <tenable-floating-button\n part=\"base\"\n id=\"help-menu-button\"\n aria-haspopup=\"true\"\n aria-label=\"Resource Center\"\n .allowSelectedClick=${true}\n @click=\"${this._handleHelpIconClick}\"\n >\n <tenable-help-icon color=\"brand\" size=\"medium\"></tenable-help-icon>\n </tenable-floating-button>\n `\n }\n\n /*\nIf we're not clicking something in the Pendo resource menu\nand the menu is actually open, go ahead and close the guide.\n*/\n _handleMouseUp = (event: Event) => {\n const { storePendo } = this.__getStores()\n if (!this._preventPendoClose) {\n storePendo.closeResourceCenter(event)\n }\n this._preventPendoClose = false\n }\n\n /**\n * Private\n */\n\n _handleHelpIconClick = (event: Event) => {\n this._preventPendoClose = true\n const { storeRoot, storeTelemetry } = this.__getStores()\n\n const tulEvent: ITulEventHelpIconOnClick = {\n eventName: TulEvent.onTulEventHelpClick,\n detail: {\n nativeEvent: event,\n tulApi: storeRoot.tulApi\n }\n }\n\n this.__dispatchTulEvent(tulEvent)\n\n storeRoot.environment.config.app.handlers?.onTulHelpIconClick?.({\n tulEvent\n })\n\n storeTelemetry.trackTelemetry(EventType.HelpIconClicked)\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-help-action': HelpAction\n }\n}\n","import { css } from 'lit'\nimport { property } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { componentStyles } from '../BaseStyles'\nimport type { IconColor, IconSize } from './types'\n\nexport class IconBase extends MobxLitElement {\n static styles = [\n css`\n ${componentStyles}\n\n :host {\n /* Prevents radius curve of button wrapper from being clickable when disabled */\n pointer-events: none;\n\n /* Default size 'small' */\n height: 16px;\n width: 16px;\n }\n\n svg {\n height: inherit;\n width: inherit;\n stroke: currentcolor;\n /* Ensure the stroke thickness is not scaled proportionally with the width/height */\n vector-effect: non-scaling-stroke;\n stroke-width: 1px;\n }\n\n svg.size-icon-large,\n svg.size-icon-xlarge {\n stroke-width: 1.5px;\n }\n\n circle,\n ellipse,\n g,\n line,\n path,\n polygon,\n polyline,\n rect {\n stroke: currentcolor;\n vector-effect: inherit;\n }\n\n /* Icon Sizes */\n /* This list should match the names defined in Icon's types.ts */\n :host([size='small']) {\n height: 16px;\n width: 16px;\n }\n :host([size='medium']) {\n height: 24px;\n width: 24px;\n }\n :host([size='large']) {\n height: 32px;\n width: 32px;\n }\n :host([size='xlarge']) {\n height: 40px;\n width: 40px;\n }\n\n /* Icon colors (based on design token names available in light/dark color-variables.css) */\n /* This list should match names defined in Icon's types.ts */\n .color-icon-default {\n color: var(--tenb-colors-icon-default);\n }\n .color-icon-alt {\n color: var(--tenb-colors-icon-alt);\n }\n .color-icon-brand {\n color: var(--tenb-colors-icon-brand);\n }\n .color-icon-accent-idle {\n color: var(--tenb-colors-icon-accent-idle);\n }\n .color-icon-accent-hover {\n color: var(--tenb-colors-icon-accent-hover);\n }\n .color-icon-accent-active {\n color: var(--tenb-colors-icon-accent-active);\n }\n .color-icon-white {\n color: var(--tenb-colors-icon-white);\n }\n .color-icon-disabled {\n color: var(--tenb-colors-icon-disabled);\n }\n .color-icon-severity-critical {\n color: var(--tenb-colors-icon-severity-critical);\n }\n .color-icon-severity-high {\n color: var(--tenb-colors-icon-severity-high);\n }\n .color-icon-severity-medium {\n color: var(--tenb-colors-icon-severity-medium);\n }\n .color-icon-severity-low {\n color: var(--tenb-colors-icon-severity-low);\n }\n .color-icon-status-bad {\n color: var(--tenb-colors-icon-status-bad);\n }\n .color-icon-status-warning {\n color: var(--tenb-colors-icon-status-warning);\n }\n .color-icon-status-good {\n color: var(--tenb-colors-icon-status-good);\n }\n .color-icon-status-info {\n color: var(--tenb-colors-icon-status-info);\n }\n .color-icon-error-idle {\n color: var(--tenb-colors-icon-error-idle);\n }\n .color-icon-error-disabled {\n color: var(--tenb-colors-icon-error-disabled);\n }\n `\n ]\n\n @property()\n color: IconColor = 'default'\n\n @property()\n size: IconSize = 'small'\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable AccessControl settings panel icon.\n */\n@customElement('tenable-settings-access-control')\nexport default class AccessControlIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M3.07324 3.87287C4.27779 2.67485 5.87546 1.74799 7.73246 1.28051C8.07241 1.19493 8.412 1.12703 8.74995 1.07617\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M15.537 10.5956C15.1708 7.9417 12.8935 5.89795 10.139 5.89795C7.12928 5.89795 4.68945 8.33777 4.68945 11.3474C4.68945 13.2077 5.62154 14.8502 7.04417 15.8335C7.66369 16.2817 8.07764 16.4725 8.92452 16.5727C10.588 16.7696 11.4746 15.403 11.4746 13.9601C11.4746 12.8779 10.9417 11.8244 10.004 11.4278\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M8.87355 13.9623C7.87191 13.4417 7.06276 12.5196 7.06276 11.3127C7.06276 9.58684 8.46187 8.18773 10.1878 8.18773C11.7399 8.18773 13.0277 9.31929 13.2555 10.8029C13.3792 12.5002 14.4871 13.6968 15.7173 13.8231C17.0722 13.9623 18.0494 12.6486 18.0592 11.1953C18.0646 10.5741 17.9918 9.94305 17.8334 9.31388C16.8128 5.25952 12.4464 2.61542 8.28673 3.61367C4.38735 4.54947 1.88264 8.1113 2.17096 11.7406\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M11.8572 18.7956C9.05681 19.5005 6.23734 18.6176 4.38672 16.7222\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-settings-access-control': AccessControlIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable ActivityLogs settings panel icon.\n */\n@customElement('tenable-settings-activity-logs')\nexport default class ActivityLogsIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M6.875 8.125H15.625\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M6.875 11.875H15.625\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M6.875 15.625H15.625\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M6.875 4.375H15.625\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.3875 15.6123L4.375 15.6248\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.3875 11.8623L4.375 11.8748\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.3875 8.1123L4.375 8.12481\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.3875 4.3623L4.375 4.3748\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-settings-activity-logs': ActivityLogsIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Announcement icon.\n */\n@customElement('tenable-announcement')\nexport default class AnnouncementIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M15.625 3.5994V16.4009C15.625 16.9121 15.0463 17.2085 14.6315 16.9098L9.70277 13.3612C9.48966 13.2077 9.23371 13.1252 8.97111 13.1252H3.11514C2.43023 13.1252 1.875 12.5699 1.875 11.885V8.1153C1.875 7.43039 2.43023 6.87516 3.11514 6.87516H8.97111C9.23371 6.87516 9.48966 6.7926 9.70277 6.63916L14.6315 3.09049C15.0463 2.79182 15.625 3.08825 15.625 3.5994Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M4.19727 13.2109L5.37188 17.2522C5.52217 17.7693 5.99591 18.1249 6.53438 18.1249H6.53438C7.33451 18.1249 7.91455 17.3625 7.70114 16.5914L6.76559 13.2109\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M17.998 7.40869C18.8293 7.97028 19.3758 8.92131 19.3758 10C19.3758 11.0232 18.8841 11.9316 18.124 12.5016\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-announcement': AnnouncementIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable ASM app workspaces icon.\n */\n@customElement('tenable-workspace-app-asm')\nexport default class AsmAppIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M4.26758 5.625C5.30311 5.625 6.14258 4.78553 6.14258 3.75C6.14258 2.71447 5.30311 1.875 4.26758 1.875C3.23204 1.875 2.39258 2.71447 2.39258 3.75C2.39258 4.78553 3.23204 5.625 4.26758 5.625Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M14.9159 4.6042C15.7086 4.6042 16.3513 3.96155 16.3513 3.1688C16.3513 2.37605 15.7086 1.7334 14.9159 1.7334C14.1231 1.7334 13.4805 2.37605 13.4805 3.1688C13.4805 3.96155 14.1231 4.6042 14.9159 4.6042Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M6.07993 18.2663C6.87268 18.2663 7.51533 17.6237 7.51533 16.8309C7.51533 16.0382 6.87268 15.3955 6.07993 15.3955C5.28718 15.3955 4.64453 16.0382 4.64453 16.8309C4.64453 17.6237 5.28718 18.2663 6.07993 18.2663Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M17.3319 16.8312C18.1246 16.8312 18.7673 16.1886 18.7673 15.3958C18.7673 14.6031 18.1246 13.9604 17.3319 13.9604C16.5391 13.9604 15.8965 14.6031 15.8965 15.3958C15.8965 16.1886 16.5391 16.8312 17.3319 16.8312Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M13.6297 9.55244C14.4225 9.55244 15.0651 8.90979 15.0651 8.11704C15.0651 7.32429 14.4225 6.68164 13.6297 6.68164C12.837 6.68164 12.1943 7.32429 12.1943 8.11704C12.1943 8.90979 12.837 9.55244 13.6297 9.55244Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M13.0074 9.40674C11.4562 12.2636 9.22494 14.8805 7.34766 16.1718\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M14.7887 4.59375C14.6674 5.31015 14.4631 6.05068 14.1934 6.79692\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M12.6357 7.08264C11.5127 6.08706 10.187 5.24265 8.65527 4.67432\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M17.0069 13.9998C16.5754 12.4845 15.768 10.7699 14.5752 9.18945\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M4.96487 15.9318C3.3818 14.4492 2.39258 12.3402 2.39258 10.0002C2.39258 9.3548 2.46783 8.72696 2.61004 8.125\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M16.0209 15.9771C14.5734 17.3106 12.6404 18.125 10.5171 18.125C9.39528 18.125 8.32655 17.8977 7.35449 17.4865\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M16.0449 4.04492C17.6426 5.52865 18.6423 7.64752 18.6423 9.99988C18.6423 11.442 18.2666 12.7963 17.6077 13.9704\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M8.59082 2.10488C9.20853 1.95464 9.85387 1.875 10.5178 1.875C11.6264 1.875 12.6832 2.09703 13.646 2.49905\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-asm': AsmAppIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable AIV app workspaces icon.\n */\n@customElement('tenable-workspace-app-aiv')\nexport default class AssetInventoryIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M5.51758 5.625H3.01758C2.6724 5.625 2.39258 5.34518 2.39258 5V2.5C2.39258 2.15482 2.6724 1.875 3.01758 1.875H5.51758C5.86276 1.875 6.14258 2.15482 6.14258 2.5V5C6.14258 5.34518 5.86276 5.625 5.51758 5.625Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M5.51758 11.875H3.01758C2.6724 11.875 2.39258 11.5952 2.39258 11.25V8.75C2.39258 8.40482 2.6724 8.125 3.01758 8.125H5.51758C5.86276 8.125 6.14258 8.40482 6.14258 8.75V11.25C6.14258 11.5952 5.86276 11.875 5.51758 11.875Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M5.51758 18.125H3.01758C2.6724 18.125 2.39258 17.8452 2.39258 17.5V15C2.39258 14.6548 2.6724 14.375 3.01758 14.375H5.51758C5.86276 14.375 6.14258 14.6548 6.14258 15V17.5C6.14258 17.8452 5.86276 18.125 5.51758 18.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M18.0176 5.625H9.26758C8.9224 5.625 8.64258 5.34518 8.64258 5V2.5C8.64258 2.15482 8.9224 1.875 9.26758 1.875H18.0176C18.3628 1.875 18.6426 2.15482 18.6426 2.5V5C18.6426 5.34518 18.3628 5.625 18.0176 5.625Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M18.0176 11.875H9.26758C8.9224 11.875 8.64258 11.5952 8.64258 11.25V8.75C8.64258 8.40482 8.9224 8.125 9.26758 8.125H18.0176C18.3628 8.125 18.6426 8.40482 18.6426 8.75V11.25C18.6426 11.5952 18.3628 11.875 18.0176 11.875Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M18.0176 18.125H9.26758C8.9224 18.125 8.64258 17.8452 8.64258 17.5V15C8.64258 14.6548 8.9224 14.375 9.26758 14.375H18.0176C18.3628 14.375 18.6426 14.6548 18.6426 15V17.5C18.6426 17.8452 18.3628 18.125 18.0176 18.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-aiv': AssetInventoryIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable APA app workspaces icon.\n */\n@customElement('tenable-workspace-app-apa')\nexport default class AttackPathAppIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M17.5352 5.625H7.53516C7.18998 5.625 6.91016 5.34518 6.91016 5V2.5C6.91016 2.15482 7.18998 1.875 7.53516 1.875H17.5352C17.8803 1.875 18.1602 2.15482 18.1602 2.5V5C18.1602 5.34518 17.8803 5.625 17.5352 5.625Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.0352 11.875H1.28516C0.939979 11.875 0.660156 11.5952 0.660156 11.25V10C0.660156 9.65482 0.939979 9.375 1.28516 9.375H10.0352C10.3803 9.375 10.6602 9.65482 10.6602 10V11.25C10.6602 11.5952 10.3803 11.875 10.0352 11.875Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M17.5352 18.125H12.5352C12.19 18.125 11.9102 17.8452 11.9102 17.5V16.25C11.9102 15.9048 12.19 15.625 12.5352 15.625H17.5352C17.8803 15.625 18.1602 15.9048 18.1602 16.25V17.5C18.1602 17.8452 17.8803 18.125 17.5352 18.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3.16016 9.37515C3.16016 6.81252 4.70245 4.61011 6.90946 3.64551\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M11.9101 16.8752C8.88983 16.8752 6.3699 14.7328 5.78711 11.8848\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-apa': AttackPathAppIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable bell icon.\n */\n@customElement('tenable-bell')\nexport default class BellIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M8.63946 18.7719C4.7519 18.6443 1.66303 18.287 2.25007 17.7C3.75007 16.2 5.25007 13.5 5.25007 9.75C5.25007 6.78218 7.14293 4.28412 9.78048 3.37114C9.96042 2.31023 10.8856 1.5 12.0001 1.5C13.1145 1.5 14.0397 2.31023 14.2188 3.37377C16.8572 4.28412 18.7501 6.78218 18.7501 9.75C18.7501 13.5 20.2501 16.2 21.7501 17.7C22.663 18.613 14.6854 18.9703 8.63946 18.7719Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.6746 21.7529C13.2627 22.2116 12.6651 22.5001 12.0001 22.5001C11.3346 22.5001 10.7366 22.2112 10.3247 21.752\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-bell': BellIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Book icon.\n */\n@customElement('tenable-book')\nexport default class BookIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M4.375 3.125C4.37692 3.89094 4.375 14.4375 4.375 14.4375C5.03824 14.0533 5.91445 13.8125 6.875 13.8125C8.17936 13.8125 9.32817 14.2565 9.99892 14.9312C10.6706 14.2569 11.8199 13.8125 13.125 13.8125C14.0893 13.8125 14.9686 14.0551 15.625 14.4375C15.625 14.4375 15.6208 3.5686 15.625 3.125C14.9611 2.72765 14.0875 2.5 13.125 2.5C11.8199 2.5 10.6706 2.94444 9.99892 3.61867C9.32817 2.94396 8.17936 2.5 6.875 2.5C5.91358 2.5 5.03858 2.69685 4.375 3.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M15.625 4.375H18.125V16.875C18.125 16.875 14.7769 16.875 12.9336 16.875C12.5119 17.6061 11.357 18.125 10 18.125C8.64305 18.125 7.4881 17.6061 7.06636 16.875C5.338 16.875 1.875 16.875 1.875 16.875V4.375H4.37501\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-book': BookIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Chat icon.\n */\n@customElement('tenable-chat')\nexport default class ChatIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M20.25 17.25H7.5L2.25 20.25V5.25C2.25 4.42157 2.92157 3.75 3.75 3.75H20.25C21.0784 3.75 21.75 4.42157 21.75 5.25V15.75C21.75 16.5784 21.0784 17.25 20.25 17.25Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-chat': ChatIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Chevron-Down icon.\n */\n@customElement('tenable-chevron-down')\nexport default class ChevronDownIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M3.5 6.5L8 11L12.48 6.5\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-chevron-down': ChevronDownIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Chevron-Left icon.\n */\n@customElement('tenable-chevron-left')\nexport default class ChevronLeftIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M9.5 13.1963L5 8.69629L9.5 4.19629\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-chevron-left': ChevronLeftIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Chevron-Right icon.\n */\n@customElement('tenable-chevron-right')\nexport default class ChevronRightIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"16\"\n height=\"17\"\n viewBox=\"0 0 16 17\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M6.5 13.2939L11 8.79395L6.5 4.29395\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-chevron-right': ChevronRightIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Close-Large icon.\n */\n@customElement('tenable-close-large-icon')\nexport default class CloseLargeIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M5.25 5.25L18.75 18.75\"\n stroke=\"#041E42\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M5.25 18.75L18.75 5.25\"\n stroke=\"#041E42\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-close-large-icon': CloseLargeIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Close-Small icon.\n */\n@customElement('tenable-close-small-icon')\nexport default class CloseSmallIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_2978_35816)\">\n <path\n d=\"M3.5 3.5L12.5 12.5\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3.5 12.5L12.5 3.5\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_2978_35816\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-close-small-icon': CloseSmallIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable CS app workspaces icon.\n */\n@customElement('tenable-workspace-app-cs')\nexport default class CloudSecurityAppIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M6.28516 16.875C3.86891 16.875 1.91016 14.9162 1.91016 12.5C1.91016 11.1487 2.52283 9.94041 3.47828 9.14089C3.27313 8.63418 3.16016 8.08028 3.16016 7.5C3.16016 5.08375 5.11891 3.125 7.53516 3.125C9.76348 3.125 11.6027 4.79091 11.8753 6.94523C12.0845 6.89946 12.307 6.875 12.5352 6.875C14.261 6.875 15.6602 8.27411 15.6602 10C15.6602 10.2341 15.6344 10.4621 15.5856 10.6815C17.0497 10.9342 18.1602 12.2124 18.1602 13.75C18.1602 15.4759 16.761 16.875 15.0352 16.875H6.28516Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-cs': CloudSecurityAppIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable ECO app workspaces icon.\n */\n@customElement('tenable-workspace-app-eco')\nexport default class EcosystemIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M18.6426 10.5924V16.8697C18.6426 17.563 18.0806 18.125 17.3873 18.125H3.64784C2.95458 18.125 2.39258 17.563 2.39258 16.8697V3.13026C2.39258 2.437 2.95458 1.875 3.64784 1.875H9.9013\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M8.22591 8.125H6.55924C6.32913 8.125 6.14258 7.93845 6.14258 7.70833V6.04167C6.14258 5.81155 6.32913 5.625 6.55924 5.625H8.22591C8.45603 5.625 8.64258 5.81155 8.64258 6.04167V7.70833C8.64258 7.93845 8.45603 8.125 8.22591 8.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M8.22591 14.375H6.55924C6.32913 14.375 6.14258 14.1885 6.14258 13.9583V12.2917C6.14258 12.0615 6.32913 11.875 6.55924 11.875H8.22591C8.45603 11.875 8.64258 12.0615 8.64258 12.2917V13.9583C8.64258 14.1885 8.45603 14.375 8.22591 14.375Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.4759 8.125H12.8092C12.5791 8.125 12.3926 7.93845 12.3926 7.70833V6.04167C12.3926 5.81155 12.5791 5.625 12.8092 5.625H14.4759C14.706 5.625 14.8926 5.81155 14.8926 6.04167V7.70833C14.8926 7.93845 14.706 8.125 14.4759 8.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M14.4759 14.375H12.8092C12.5791 14.375 12.3926 14.1885 12.3926 13.9583V12.2917C12.3926 12.0615 12.5791 11.875 12.8092 11.875H14.4759C14.706 11.875 14.8926 12.0615 14.8926 12.2917V13.9583C14.8926 14.1885 14.706 14.375 14.4759 14.375Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-eco': EcosystemIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Hamburger open icon.\n */\n@customElement('tenable-hamburger-open')\nexport default class HamburgerOpenIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M2.25 6.75H21.75\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M2.25 12.75H21.75\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M2.25 18.75H21.75\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-hamburger-open': HamburgerOpenIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Help icon.\n */\n@customElement('tenable-help-icon')\nexport default class HelpIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M12 21.75C17.3848 21.75 21.75 17.3848 21.75 12C21.75 6.61522 17.3848 2.25 12 2.25C6.61522 2.25 2.25 6.61522 2.25 12C2.25 17.3848 6.61522 21.75 12 21.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12.015 16.5L12 16.515\"\n stroke=\"currentColor\"\n stroke-width=\"1.25\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M11.9999 13.02V12.75C11.9999 10.89 14.7449 11.16 14.7449 9.00004C14.7449 7.65004 12.9299 5.88004 10.0122 7.93393\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-help-icon': HelpIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable AD/IE app workspaces icon.\n */\n@customElement('tenable-workspace-app-ad')\nexport default class IdentityExposureIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M9.98196 2.12659L2.4447 12.6307C2.27408 12.9099 2.34651 13.2733 2.61112 13.4658L10.1484 18.1065C10.3685 18.2666 10.6667 18.2666 10.8868 18.1065L18.4241 13.4658C18.6887 13.2733 18.7612 12.9099 18.5905 12.6307L11.0533 2.12659C10.8085 1.72603 10.2267 1.72603 9.98196 2.12659Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.5176 1.9375V18.0625\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-ad': IdentityExposureIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Info icon.\n */\n@customElement('tenable-info-icon')\nexport default class InfoIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8 14.5C11.5899 14.5 14.5 11.5899 14.5 8C14.5 4.41015 11.5899 1.5 8 1.5C4.41015 1.5 1.5 4.41015 1.5 8C1.5 11.5899 4.41015 14.5 8 14.5Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M8.01 5L8 5.01\"\n stroke=\"currentColor\"\n stroke-width=\"1.25\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M8 7.45V11.45\"\n stroke=\"currentColor\"\n stroke-width=\"1.25\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-info-icon': InfoIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable License settings panel icon.\n */\n@customElement('tenable-settings-license')\nexport default class LicenseInformationIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M14.375 10.625C15.7557 10.625 16.875 9.50571 16.875 8.125C16.875 6.74429 15.7557 5.625 14.375 5.625C12.9943 5.625 11.875 6.74429 11.875 8.125C11.875 9.50571 12.9943 10.625 14.375 10.625Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.125 3.1236C13.125 2.43402 12.566 1.875 11.8764 1.875H3.12207C2.43333 1.875 1.875 2.43333 1.875 3.12207V16.8779C1.875 17.5667 2.43333 18.125 3.12207 18.125H11.8764C12.566 18.125 13.125 17.566 13.125 16.8764\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.625 15V14.3758C10.625 13.685 11.185 13.125 11.8758 13.125H16.8742C17.565 13.125 18.125 13.685 18.125 14.3758V15\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.375 5.625H9.375\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.375 8.125H9.375\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.375 10.625H9.375\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.375 13.125H8.125\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.375 15.625H8.125\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-settings-license': LicenseInformationIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Lumin app workspaces icon.\n */\n@customElement('tenable-workspace-app-lumin')\nexport default class LuminAppIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M7.38184 4.1127V7.14065C7.38184 7.35987 7.49722 7.5629 7.68557 7.67508L10.1989 9.17207C10.395 9.2889 10.6394 9.2889 10.8355 9.17207L13.3488 7.67508C13.5371 7.5629 13.6525 7.35987 13.6525 7.14065V4.1127C13.6525 3.89348 13.5371 3.69044 13.3488 3.57826L10.8355 2.08127C10.6394 1.96445 10.395 1.96445 10.1989 2.08127L7.68557 3.57826C7.49723 3.69044 7.38184 3.89348 7.38184 4.1127Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M2.38086 12.8596V15.8871C2.38086 16.1063 2.49626 16.3094 2.68461 16.4216L5.19791 17.9184C5.39404 18.0352 5.63838 18.0352 5.83451 17.9184L8.3478 16.4216C8.53616 16.3094 8.65156 16.1063 8.65156 15.8871V12.8596C8.65156 12.6404 8.53616 12.4373 8.3478 12.3252L5.83451 10.8283C5.63838 10.7115 5.39404 10.7115 5.19791 10.8283L2.68462 12.3252C2.49626 12.4373 2.38086 12.6404 2.38086 12.8596Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M12.375 12.8596V15.8871C12.375 16.1063 12.4904 16.3094 12.6788 16.4216L15.192 17.9184C15.3882 18.0352 15.6325 18.0352 15.8286 17.9184L18.3419 16.4216C18.5303 16.3094 18.6457 16.1063 18.6457 15.8871V12.8596C18.6457 12.6404 18.5303 12.4373 18.3419 12.3252L15.8286 10.8283C15.6325 10.7115 15.3882 10.7115 15.192 10.8283L12.6788 12.3252C12.4904 12.4373 12.375 12.6404 12.375 12.8596Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-lumin': LuminAppIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Hamburger open icon.\n */\n@customElement('tenable-workspace-app-ec')\nexport default class LuminExposureViewIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M10.0352 18.125C14.5225 18.125 18.1602 14.4873 18.1602 10C18.1602 5.51269 14.5225 1.875 10.0352 1.875C5.54784 1.875 1.91016 5.51269 1.91016 10C1.91016 14.4873 5.54784 18.125 10.0352 18.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M10.0352 13.125C11.761 13.125 13.1602 11.7259 13.1602 10C13.1602 8.27411 11.761 6.875 10.0352 6.875C8.30927 6.875 6.91016 8.27411 6.91016 10C6.91016 11.7259 8.30927 13.125 10.0352 13.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-ec': LuminExposureViewIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Moon icon.\n */\n@customElement('tenable-moon-icon')\nexport default class MoonIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n >\n <path\n d=\"M14.375 14.375C10.9232 14.375 8.125 11.5768 8.125 8.125C8.125 5.37567 9.91188 3.06702 12.3787 2.23068C11.6261 2.00058 10.8279 1.875 10 1.875C5.5127 1.875 1.875 5.5127 1.875 10C1.875 14.4873 5.5127 18.125 10 18.125C13.1768 18.125 15.9205 16.2975 17.2563 13.6404C16.3905 14.094 15.4202 14.375 14.375 14.375Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-moon-icon': MoonIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable PCI app workspaces icon.\n */\n@customElement('tenable-workspace-app-pci')\nexport default class PCIASVIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M17.5312 15.625H2.53906C2.19173 15.625 1.91016 15.3434 1.91016 14.9961V5.00391C1.91016 4.65657 2.19173 4.375 2.53906 4.375H17.5312C17.8786 4.375 18.1602 4.65657 18.1602 5.00391V14.9961C18.1602 15.3434 17.8786 15.625 17.5312 15.625Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M1.91016 8.125H18.1602\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M11.9102 13.125H15.6602\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-pci': PCIASVIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Consec TPC workspaces icon.\n */\n@customElement('tenable-workspace-app-consec')\nexport default class ConsecIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n >\n <g clip-path=\"url(#clip0_250_8901)\">\n <path\n d=\"M20.2762 12V17.25L12.0262 21.72L3.77625 17.25V12M3.77625 6.75003L12.0262 2.28003L20.2762 6.75003M12.0262 11.25L3.77625 6.78003L0.776245 10.11L9.02625 15L12.0262 11.25ZM12.0262 11.25L20.2762 6.78003L23.2762 10.11L15.0262 15L12.0262 11.25Z\"\n stroke=\"#0066CC\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_250_8901\">\n <rect\n width=\"24\"\n height=\"24\"\n fill=\"white\"\n transform=\"translate(0.0262451)\"\n />\n </clipPath>\n </defs>\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-consec': ConsecIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable sc app tpc workspaces icon.\n */\n@customElement('tenable-workspace-app-sc')\nexport default class SCIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n >\n <path\n d=\"M2.33445 20.2346H9.76956M5.29444 17.249V9.76113M9.76956 17.249V9.76113M14.2805 11.2293V9.76113M18.7763 11.2293V9.76113M14.323 17.1213V16.6927C14.323 16.0431 14.5173 15.4202 14.9389 14.9609C15.3604 14.5016 15.9322 14.2436 16.5284 14.2436C17.1246 14.2436 17.7389 14.5016 18.1604 14.9609C18.582 15.4202 18.8188 16.0431 18.8188 16.6927V17.1213M12.0702 2.25488L21.7842 6.80297H2.31363L12.0702 2.25488ZM13.5837 17.2488H19.457C19.9204 17.2488 20.296 17.6245 20.296 18.0879V20.8972C20.296 21.3606 19.9204 21.7363 19.457 21.7363H13.5837C13.1203 21.7363 12.7446 21.3606 12.7446 20.8972V18.0879C12.7446 17.6245 13.1203 17.2488 13.5837 17.2488Z\"\n stroke=\"#0066CC\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-sc': SCIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable reports app - used in tpc(Tenable Private Cloud) platform .\n */\n@customElement('tenable-workspace-app-reports')\nexport default class ReportsIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"25\"\n height=\"24\"\n viewBox=\"0 0 25 24\"\n fill=\"none\"\n >\n <path\n d=\"M9.80499 12.005L9.30569 12.0315L9.30569 12.0315L9.80499 12.005ZM10.5873 12.005L10.0889 12.0442L10.5873 12.005ZM7.58607 18.4224L7.29601 18.0151L7.296 18.0151L7.58607 18.4224ZM13.5155 16.1206L13.4323 16.6137L13.4323 16.6137L13.5155 16.1206ZM13.4142 17.0505L13.5101 16.5598L13.5101 16.5598L13.4142 17.0505ZM13.2264 2.25L13.5799 1.89645C13.4862 1.80268 13.359 1.75 13.2264 1.75V2.25ZM20.2764 9.3H20.7764C20.7764 9.16739 20.7237 9.04021 20.6299 8.94645L20.2764 9.3ZM10.3043 11.9785C10.2906 11.7198 10.3219 11.5475 10.3544 11.457C10.3708 11.4115 10.3812 11.4043 10.3705 11.4164C10.3598 11.4287 10.3077 11.4817 10.2072 11.4976C10.1572 11.5055 10.1078 11.5018 10.0635 11.4891C10.0204 11.4768 9.99002 11.4584 9.97195 11.4448C9.93946 11.4204 9.94244 11.4087 9.96299 11.4487C9.98188 11.4855 10.0075 11.5506 10.0317 11.6527C10.0556 11.7535 10.0762 11.8829 10.0889 12.0442L11.0858 11.9659C11.0546 11.5692 10.9787 11.2377 10.8526 10.9921C10.7437 10.7798 10.4836 10.4415 10.0511 10.5099C9.67003 10.5701 9.48878 10.9093 9.4135 11.1184C9.32328 11.3692 9.28719 11.6826 9.30569 12.0315L10.3043 11.9785ZM10.0889 12.0442C10.1139 12.3633 10.0358 12.8484 9.85516 13.4462C9.67816 14.0318 9.41647 14.6816 9.11317 15.3118C8.80994 15.9418 8.47007 16.5419 8.14084 17.029C7.80254 17.5297 7.50513 17.8662 7.29601 18.0151L7.87613 18.8297C8.23808 18.5719 8.61759 18.1096 8.96939 17.589C9.33026 17.055 9.69367 16.4115 10.0142 15.7455C10.3347 15.0797 10.6173 14.381 10.8124 13.7355C11.0038 13.1021 11.1257 12.4734 11.0858 11.9659L10.0889 12.0442ZM7.296 18.0151C7.15631 18.1146 7.03386 18.1856 6.93089 18.2341C6.82688 18.283 6.74954 18.3058 6.69909 18.3147C6.64573 18.3241 6.64124 18.3148 6.66866 18.323C6.68416 18.3277 6.70976 18.338 6.73835 18.3597C6.76775 18.382 6.79428 18.4118 6.81389 18.4472C6.83318 18.482 6.84134 18.5142 6.8442 18.5376C6.84696 18.5602 6.8447 18.5732 6.84459 18.5738C6.84447 18.5745 6.84594 18.5661 6.85331 18.5482C6.8606 18.5305 6.87264 18.506 6.89176 18.475C6.97169 18.3453 7.14411 18.1516 7.45647 17.9246L6.86862 17.1156C6.49044 17.3904 6.21056 17.6743 6.04045 17.9503C5.88966 18.195 5.74326 18.578 5.93907 18.9316C6.15632 19.324 6.59276 19.3488 6.87245 19.2995C7.17966 19.2455 7.52196 19.0819 7.87613 18.8297L7.296 18.0151ZM7.45647 17.9246C8.05916 17.4866 9.18007 17.0895 10.3863 16.8367C11.5898 16.5845 12.7601 16.5003 13.4323 16.6137L13.5986 15.6276C12.7424 15.4832 11.4269 15.5969 10.1812 15.858C8.93836 16.1185 7.64699 16.55 6.86862 17.1156L7.45647 17.9246ZM13.4323 16.6137C13.5979 16.6416 13.7366 16.6784 13.8495 16.7187C13.963 16.7593 14.0462 16.8017 14.1032 16.8389C14.1314 16.8573 14.1514 16.8732 14.1648 16.8854C14.1784 16.8977 14.1834 16.9046 14.1833 16.9045C14.1833 16.9044 14.1761 16.8946 14.1691 16.8743C14.1618 16.8534 14.1548 16.8216 14.1565 16.7816C14.1582 16.7407 14.1689 16.7004 14.1869 16.6646C14.2044 16.6297 14.2252 16.6066 14.2398 16.5935C14.254 16.5808 14.2623 16.5775 14.2585 16.5793C14.2547 16.5811 14.2422 16.5865 14.2181 16.5926C14.1686 16.6051 14.0864 16.6163 13.9646 16.6138C13.8441 16.6113 13.6932 16.5956 13.5101 16.5598L13.3182 17.5413C13.7675 17.6291 14.1569 17.6393 14.4624 17.5623C14.7438 17.4914 15.1359 17.2818 15.1555 16.8246C15.1725 16.4301 14.8818 16.1527 14.6492 16.0011C14.3851 15.829 14.0272 15.6999 13.5986 15.6276L13.4323 16.6137ZM13.5101 16.5598C13.2128 16.5017 12.8637 16.3162 12.4918 16.0011C12.1244 15.6899 11.7624 15.2756 11.4396 14.807C10.7846 13.8563 10.346 12.7644 10.3043 11.9785L9.30569 12.0315C9.36071 13.0689 9.90261 14.3387 10.6161 15.3743C10.9775 15.8989 11.3966 16.384 11.8454 16.7641C12.2895 17.1404 12.7916 17.4383 13.3182 17.5413L13.5101 16.5598ZM18.3264 21.25H5.72637V22.25H18.3264V21.25ZM5.72637 21.25C4.92555 21.25 4.27637 20.6008 4.27637 19.8H3.27637C3.27637 21.1531 4.37327 22.25 5.72637 22.25V21.25ZM4.27637 19.8V4.2H3.27637V19.8H4.27637ZM4.27637 4.2C4.27637 3.39919 4.92555 2.75 5.72637 2.75V1.75C4.37327 1.75 3.27637 2.8469 3.27637 4.2H4.27637ZM5.72637 2.75H13.2264V1.75H5.72637V2.75ZM12.8728 2.60355L19.9228 9.65355L20.6299 8.94645L13.5799 1.89645L12.8728 2.60355ZM19.7764 9.3V19.8H20.7764V9.3H19.7764ZM19.7764 19.8C19.7764 20.6008 19.1272 21.25 18.3264 21.25V22.25C19.6795 22.25 20.7764 21.1531 20.7764 19.8H19.7764ZM12.2764 2.25V8.25H13.2764V2.25H12.2764ZM12.2764 8.25C12.2764 9.35457 13.1718 10.25 14.2764 10.25V9.25C13.7241 9.25 13.2764 8.80229 13.2764 8.25H12.2764ZM14.2764 10.25H20.2764V9.25H14.2764V10.25Z\"\n fill=\"currentColor\"\n stroke-width=\"0\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-reports': ReportsIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Settings action icon.\n */\n@customElement('tenable-settings-app')\nexport default class SettingsAppIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M15.9738 18.3619C15.2798 18.7963 14.5096 19.1203 13.6878 19.3093C13.6835 19.3641 13.5533 21.0566 13.5533 21.0566C13.5232 21.4479 13.197 21.75 12.8046 21.75H11.1954C10.803 21.75 10.4768 21.4479 10.4467 21.0566C10.4467 21.0566 10.3165 19.3641 10.3122 19.3093C9.49014 19.1203 8.71973 18.7961 8.02555 18.3615C7.97565 18.4041 6.69436 19.5024 6.69436 19.5024C6.39643 19.7578 5.95212 19.7407 5.67465 19.4632L4.53677 18.3254C4.25931 18.0479 4.24224 17.6036 4.49761 17.3056C4.49761 17.3056 5.59568 16.0246 5.6385 15.9745C5.20388 15.2803 4.87973 14.5099 4.69068 13.6878C4.63621 13.6836 2.94335 13.5533 2.94335 13.5533C2.55211 13.5232 2.25 13.197 2.25 12.8046V11.1954C2.25 10.803 2.55211 10.4768 2.94335 10.4467C2.94335 10.4467 4.63561 10.3165 4.6912 10.3122C4.87973 9.49014 5.20388 8.71973 5.6385 8.02555C5.59615 7.97599 4.49761 6.69436 4.49761 6.69436C4.24224 6.39643 4.2593 5.95211 4.53677 5.67465L5.67465 4.53677C5.95211 4.2593 6.39643 4.24224 6.69435 4.49761C6.69435 4.49761 7.97427 5.59468 8.02582 5.63886C8.71974 5.20387 9.49015 4.87973 10.3122 4.69128C10.316 4.6415 10.4467 2.94335 10.4467 2.94335C10.4768 2.55211 10.803 2.25 11.1954 2.25H12.8046C13.197 2.25 13.5232 2.55211 13.5533 2.94335C13.5533 2.94335 13.6842 4.64516 13.6878 4.69068C14.5098 4.87973 15.2803 5.20387 15.9745 5.63849C16.0244 5.59586 17.3056 4.49761 17.3056 4.49761C17.6036 4.24224 18.0479 4.2593 18.3254 4.53677L19.4632 5.67465C19.7407 5.95211 19.7578 6.39643 19.5024 6.69435C19.5024 6.69435 18.3797 8.00417 18.3603 8.0268C18.7962 8.71991 19.1203 9.49026 19.3087 10.3122C19.3404 10.3146 21.0567 10.4467 21.0567 10.4467C21.4479 10.4768 21.75 10.803 21.75 11.1954V12.8046C21.75 13.197 21.4479 13.5232 21.0566 13.5533C21.0566 13.5533 19.3629 13.6836 19.3093 13.6878C19.1203 14.5099 18.7961 15.2803 18.3615 15.9745C18.4043 16.0246 19.5024 17.3056 19.5024 17.3056C19.7578 17.6036 19.7407 18.0479 19.4632 18.3254L18.3254 19.4632C18.0479 19.7407 17.6036 19.7578 17.3056 19.5024C17.3056 19.5024 16.024 18.4038 15.9738 18.3619Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M12 15.75C14.0711 15.75 15.75 14.0711 15.75 12C15.75 9.92893 14.0711 8.25 12 8.25C9.92893 8.25 8.25 9.92893 8.25 12C8.25 14.0711 9.92893 15.75 12 15.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-settings-app': SettingsAppIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable SignOut user panel icon.\n */\n@customElement('tenable-sign-out')\nexport default class SignOutIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M13.1309 14.3813L16.8934 10.0063L13.1309 5.63135\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M3.13086 10.0063H16.8934\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-sign-out': SignOutIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Star icon.\n */\n@customElement('tenable-star')\nexport default class StarIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <g clip-path=\"url(#clip0_3906_15653)\">\n <path\n d=\"M8 1.22754L10 5.90008L15 6.4013L11.2361 9.71718L12.3262 14.7726L8 12.0763L3.67376 14.7726L4.76393 9.71718L1 6.4013L6 5.90008L8 1.22754Z\"\n stroke=\"#0254A7\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n </g>\n <defs>\n <clipPath id=\"clip0_3906_15653\">\n <rect width=\"16\" height=\"16\" fill=\"white\" />\n </clipPath>\n </defs>\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-star': StarIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable UserProfile action icon.\n */\n@customElement('tenable-user-profile')\nexport default class UserProfileIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M10 9.375C11.7259 9.375 13.125 7.97589 13.125 6.25C13.125 4.52411 11.7259 3.125 10 3.125C8.27411 3.125 6.875 4.52411 6.875 6.25C6.875 7.97589 8.27411 9.375 10 9.375Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M4.375 15.625V15.625C4.375 13.5539 6.05393 11.875 8.125 11.875H11.875C13.9461 11.875 15.625 13.5539 15.625 15.625V15.625\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-user-profile': UserProfileIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable VM app workspaces icon.\n */\n@customElement('tenable-workspace-app-vm')\nexport default class VMAppIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M12.3926 11.875L14.8926 9.375L12.3926 8.15L14.8551 5.6625L12.3926 4.375C12.3926 4.375 13.7815 2.98607 14.4461 2.32141C13.1795 1.97599 10.5176 1.25 10.5176 1.25L3.64258 3.125V11.9143C3.64258 15.625 7.30981 17.7719 10.3896 19.0729C10.4715 19.1075 10.5637 19.1075 10.6456 19.0729C13.7252 17.772 17.3926 15.625 17.3926 11.9115V3.125\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-vm': VMAppIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable WAS app workspaces icon.\n */\n@customElement('tenable-workspace-app-was')\nexport default class WASAppIcon extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"21\"\n height=\"20\"\n viewBox=\"0 0 21 20\"\n fill=\"none\"\n >\n <path\n d=\"M10.0352 18.125C14.5225 18.125 18.1602 14.4873 18.1602 10C18.1602 5.51269 14.5225 1.875 10.0352 1.875C5.54784 1.875 1.91016 5.51269 1.91016 10C1.91016 14.4873 5.54784 18.125 10.0352 18.125Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M12.954 11.1159C14.5562 6.92437 14.5483 3.02691 12.9361 2.41066C11.324 1.7944 8.71825 4.69272 7.11599 8.88423C5.51373 13.0757 5.52172 16.9732 7.13384 17.5895C8.74596 18.2057 11.3517 15.3074 12.954 11.1159Z\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M3.61621 5.13716C5.44727 4.49889 17.5574 9.12816 18.0616 10.6591\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n <path\n d=\"M2.00879 9.34082C2.94719 11.0377 15.0574 15.667 16.4542 14.8628\"\n stroke=\"#026EDD\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-app-was': WASAppIcon\n }\n}\n","import { html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { IconBase } from './IconBase'\n\n/**\n * Tenable Workspaces action icon.\n */\n@customElement('tenable-workspace-apps')\nexport default class WorkspaceApps extends IconBase {\n render() {\n const classes = classMap({\n [`color-icon-${this.color}`]: true,\n [`size-icon-${this.size}`]: true\n })\n\n return html`\n <svg\n class=${classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M6 6.75H3C2.58579 6.75 2.25 6.41421 2.25 6V3C2.25 2.58579 2.58579 2.25 3 2.25H6C6.41421 2.25 6.75 2.58579 6.75 3V6C6.75 6.41421 6.41421 6.75 6 6.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.5 6.75H10.5C10.0858 6.75 9.75 6.41421 9.75 6V3C9.75 2.58579 10.0858 2.25 10.5 2.25H13.5C13.9142 2.25 14.25 2.58579 14.25 3V6C14.25 6.41421 13.9142 6.75 13.5 6.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M21 6.75H18C17.5858 6.75 17.25 6.41421 17.25 6V3C17.25 2.58579 17.5858 2.25 18 2.25H21C21.4142 2.25 21.75 2.58579 21.75 3V6C21.75 6.41421 21.4142 6.75 21 6.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M6 14.25H3C2.58579 14.25 2.25 13.9142 2.25 13.5V10.5C2.25 10.0858 2.58579 9.75 3 9.75H6C6.41421 9.75 6.75 10.0858 6.75 10.5V13.5C6.75 13.9142 6.41421 14.25 6 14.25Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.5 14.25H10.5C10.0858 14.25 9.75 13.9142 9.75 13.5V10.5C9.75 10.0858 10.0858 9.75 10.5 9.75H13.5C13.9142 9.75 14.25 10.0858 14.25 10.5V13.5C14.25 13.9142 13.9142 14.25 13.5 14.25Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M21 14.25H18C17.5858 14.25 17.25 13.9142 17.25 13.5V10.5C17.25 10.0858 17.5858 9.75 18 9.75H21C21.4142 9.75 21.75 10.0858 21.75 10.5V13.5C21.75 13.9142 21.4142 14.25 21 14.25Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M6 21.75H3C2.58579 21.75 2.25 21.4142 2.25 21V18C2.25 17.5858 2.58579 17.25 3 17.25H6C6.41421 17.25 6.75 17.5858 6.75 18V21C6.75 21.4142 6.41421 21.75 6 21.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M13.5 21.75H10.5C10.0858 21.75 9.75 21.4142 9.75 21V18C9.75 17.5858 10.0858 17.25 10.5 17.25H13.5C13.9142 17.25 14.25 17.5858 14.25 18V21C14.25 21.4142 13.9142 21.75 13.5 21.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M21 21.75H18C17.5858 21.75 17.25 21.4142 17.25 21V18C17.25 17.5858 17.5858 17.25 18 17.25H21C21.4142 17.25 21.75 17.5858 21.75 18V21C21.75 21.4142 21.4142 21.75 21 21.75Z\"\n stroke=\"currentColor\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n </svg>\n `\n }\n}\n\ndeclare global {\n interface HtmlElementTagNameMap {\n 'tenable-workspace-apps': WorkspaceApps\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../BaseStyles'\n\nexport const navigationMenuGroupItemStyles = css`\n ${componentStyles}\n\n :host(:focus-visible) {\n outline: none;\n }\n\n .tenable-navigation-menu-group-item-root {\n display: flex;\n flex-wrap: nowrap;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n background-color: var(--tenb-colors-background-component);\n border-radius: 0px;\n box-sizing: border-box;\n border: 0;\n color: var(--tenb-colors-text-body);\n // cursor: pointer;\n height: 56px;\n width: 100%;\n padding-left: var(--tenb-space-16);\n padding-right: var(--tenb-space-16);\n gap: 0px var(--tenb-space-8);\n }\n\n .tenable-navigation-menu-group-item-root.small {\n height: 32px;\n }\n\n .tenable-navigation-menu-group-item-root.small\n .tenable-navigation-menu-group-item-label {\n font-family: var(--fonts-base);\n font-size: var(--font-size-14);\n }\n\n .tenable-navigation-menu-group-item-root.focus-visible {\n border-radius: 6px;\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: -1px;\n }\n\n // .tenable-navigation-menu-group-item-root:hover {\n // background-color: var(--tenb-colors-background-hover);\n // }\n\n .tenable-navigation-menu-group-item-root:active {\n background-color: var(--tenb-colors-background-selected-alt);\n }\n\n .tenable-navigation-menu-group-item-label {\n display: inline-flex;\n color: var(--tenb-colors-text-body);\n cursor: inherit;\n font-family: var(--tenb-fonts-brand-medium);\n font-size: var(--tenb-fontSizes-18);\n line-height: 22px;\n opacity: 1;\n visibility: visible;\n margin-bottom: 0;\n margin-top: 0;\n transition:\n visibility 0.5s,\n opacity 0.5s ease-in;\n width: 100%;\n // -moz-osx-font-smoothing: grayscale;\n // -webkit-font-smoothing: antialiased;\n user-select: none;\n -webkit-user-select: none; /* safari */\n }\n\n .tenable-navigation-menu-group-item-label.alt {\n color: var(--tenb-colors-text-inverse);\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { navigationMenuGroupItemStyles } from './styles'\n\n/**\n * @slot label - The component's text to display.\n *\n * @csspart base - The component's internal wrapper.\n * @csspart label - The component's label.\n *\n */\n@customElement('tenable-navigation-menu-group-heading')\nexport class NavigationMenuHeading extends MobxLitElement {\n static styles = [navigationMenuGroupItemStyles]\n\n // A unique group ID\n @property({ attribute: 'item-id', type: String })\n itemId = ''\n\n @property({ type: String })\n label = ''\n\n renderLabel = () => {\n return html`\n <slot name=\"label\">\n <tenable-text\n part=\"label\"\n class=\"tenable-navigation-menu-group-item-label\"\n bold\n >${this.label}</tenable-text\n >\n </slot>\n `\n }\n\n render() {\n return html`\n <div\n part=\"base\"\n id=${this.itemId}\n class=\"tenable-navigation-menu-group-item-root\"\n aria-label=${ifDefined(this.label)}\n >\n ${this.renderLabel()}\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-navigation-menu-group-heading': NavigationMenuHeading\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../../BaseStyles'\n\nexport const navigationMenuStyles = css`\n ${componentStyles}\n\n .tenable-navigation-menu-root {\n background: var(--tenb-colors-background-component);\n border: 1px solid var(--tenb-colors-border-base);\n border-radius: 6px;\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.25);\n width: 308px;\n height: auto;\n padding-top: 4px;\n padding-bottom: 4px;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { NavigationMenuKeyboardController } from '../../../controller/NavigationMenuKeyboardController'\nimport { NavigationEvent } from '../../Header/NavigationEvent'\nimport { navigationMenuStyles } from './styles'\n\n/**\n * @slot default - Use to place Menu Items.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-navigation-menu')\nexport class NavigationMenu extends MobxLitElement {\n static styles = [navigationMenuStyles]\n\n @property({ type: Boolean, reflect: true })\n compact = false\n\n private _menuKeyboardController: NavigationMenuKeyboardController | null =\n null\n\n connectedCallback() {\n super.connectedCallback()\n\n this._menuKeyboardController = new NavigationMenuKeyboardController(this)\n\n document.addEventListener(\n NavigationEvent.UNIVERSAL_NAVIGATION_POPOVER_OPENED,\n this.handleMenuOpen\n )\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n document.removeEventListener(\n NavigationEvent.UNIVERSAL_NAVIGATION_POPOVER_OPENED,\n this.handleMenuOpen\n )\n }\n\n // Reset selected item back to first when menu is opened\n handleMenuOpen = () => {\n if (this._menuKeyboardController !== null) {\n this._menuKeyboardController.selected = 0\n }\n }\n\n handleSlotChange() {\n if (this._menuKeyboardController !== null) {\n this._menuKeyboardController.onSlotChange()\n }\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"tenable-navigation-menu-root\">\n <slot @slotchange=\"${this.handleSlotChange}\"></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-navigation-menu': NavigationMenu\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../../BaseStyles'\n\nexport const navigationMenuItemStyles = css`\n ${componentStyles}\n\n :host(:focus-visible) {\n outline: none;\n }\n\n .tenable-navigation-menu-item-root {\n display: flex;\n flex-wrap: nowrap;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n background-color: var(--tenb-colors-background-component);\n border-radius: 0px;\n box-sizing: border-box;\n border-left: 2px solid var(--tenb-colors-transparent);\n color: var(--tenb-colors-text-body);\n cursor: pointer;\n height: 56px;\n width: 100%;\n padding-left: 14px;\n padding-right: var(--tenb-space-16);\n gap: 0px var(--tenb-space-8);\n }\n\n .tenable-navigation-menu-item-root.small {\n height: 32px;\n }\n\n .tenable-navigation-menu-item-root.small .tenable-navigation-menu-item-label {\n font-family: var(--fonts-base);\n font-size: var(--font-size-14);\n }\n\n .tenable-navigation-menu-item-root.focus-visible {\n border-radius: 3px;\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: -1px;\n }\n\n .tenable-navigation-menu-item-root:hover {\n background-color: var(--tenb-colors-background-hover);\n }\n\n .tenable-navigation-menu-item-root:active {\n background-color: var(--tenb-colors-background-selected-alt);\n }\n\n .tenable-navigation-menu-item-root.opened,\n .tenable-navigation-menu-item-root.selected {\n background-color: var(--tenb-colors-background-selected);\n }\n\n .tenable-navigation-menu-item-root.selected {\n border-left-color: var(--tenb-colors-accent);\n padding-left: 14px;\n }\n\n .tenable-navigation-menu-item-root.round-bottom-border,\n .tenable-navigation-menu-item-root.round-bottom-border.opened,\n .tenable-navigation-menu-item-root.round-bottom-border.selected {\n border-radius: 6px;\n }\n\n .tenable-navigation-menu-item-label {\n display: inline-flex;\n color: var(--tenb-colors-text-body);\n cursor: inherit;\n font-family: var(--tenb-fonts-brand-medium);\n font-size: var(--tenb-fontSizes-16);\n line-height: 22px;\n opacity: 1;\n visibility: visible;\n margin-bottom: 0;\n margin-top: 0;\n // transition-delay: 250ms;\n transition:\n visibility 0.2s,\n opacity 0.5s ease-in;\n width: 100%;\n // -moz-osx-font-smoothing: grayscale;\n // -webkit-font-smoothing: antialiased;\n user-select: none;\n -webkit-user-select: none; /* safari */\n }\n\n .tenable-navigation-menu-item-label.hidden {\n visibility: hidden;\n opacity: 0;\n }\n\n .tenable-navigation-menu-item-label.alt {\n color: var(--tenb-colors-text-inverse);\n }\n\n tenable-toggle-switch::part(base) {\n margin-bottom: 0;\n }\n .tenable-navigation-menu-item-label-for-sidebar {\n white-space: nowrap;\n }\n`\n","import type { Maybe } from '@productive-codebases/toolbox'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport { LocalStorageKey, LocalStorageSelectedApplication } from '@/types'\nimport type { MenuItem, TulEventUnion } from '@/types/tul'\nimport {\n GlobalHeaderPanels,\n TulEvent,\n UserManagementMenuKeys\n} from '@/types/tul'\nimport { NavigationEvent } from '../../Header/NavigationEvent'\nimport { navigationMenuItemStyles } from './styles'\n\n/**\n * @slot icon - The component's icon displayed to the left of label.\n * @slot label - The component's text to display.\n *\n * @csspart base - The component's internal wrapper.\n * @csspart icon - The component's icon wrapper.\n * @csspart label - The component's label.\n *\n * @event {NavigationEvent} pds-navigation-item-clicked - Dispatched on the the document when the menu item is clicked. The UniversalNavigationController listens for this event to trigger routing when configured.\n * @event {NavigationEvent} pds-navigation-menu-item-clicked - Dispatched when a menu item is clicked. Use this to handle routing yourself when the menu item has been clicked.\n */\n@customElement('tenable-navigation-menu-item')\nexport class NavigationMenuItem extends MobxLitElement {\n static styles = [navigationMenuItemStyles]\n\n // A unique menu item ID; it's used to communicate to the menu which menu item is currently selected on click\n @property({ attribute: 'item-id', type: String })\n itemId = ''\n\n @property({ type: String })\n label = ''\n\n @property({ type: String })\n url: Maybe<string> = null\n\n @property({ type: String })\n host = ''\n\n @property({ type: Boolean })\n newTab = false\n\n // A flag that indicates that the menu item has been opened to reveal a submenu.\n @property({ reflect: true, type: Boolean })\n opened = false\n\n // A flag to set the menu item in a selected state.\n @property({ reflect: true, type: Boolean })\n selected = false\n\n @property({ type: Boolean })\n labelVisible = true\n\n @property({ type: Boolean })\n hasChildren = false\n\n @property({ type: Object })\n item: Maybe<MenuItem> = null\n\n private addToLocalStorage = () => {\n const {\n storeRoot: { environment }\n } = this.__getStores()\n if (this.host !== GlobalHeaderPanels.UserProfile) {\n return\n }\n switch (this.item?.id) {\n case UserManagementMenuKeys.MyAccount:\n // Setting the local storage is required\n // in order to keep the redirect working on T.io and this has to be set to settings to show a different header than VM\n environment.localStorage?.setItem(\n LocalStorageKey.selectedApplication,\n LocalStorageSelectedApplication.platformSettings\n )\n break\n case UserManagementMenuKeys.SignOut:\n // Setting the local storage is required\n // in order to keep the redirect working on T.io\n environment.localStorage?.setItem(\n LocalStorageKey.selectedApplication,\n LocalStorageSelectedApplication.tenable_io\n )\n break\n default:\n break\n }\n }\n\n private logTelemetry = () => {\n const { storeTelemetry, storeRoot } = this.__getStores()\n\n if (!storeRoot.environment.config.services.telemetry?.enabled) {\n return\n }\n\n let event = EventType.MainNavClicked\n switch (this.host) {\n case GlobalHeaderPanels.UserProfile:\n event = EventType.HeaderUserProfileClicked\n break\n case GlobalHeaderPanels.Settings:\n event = EventType.HeaderSettingsClicked\n break\n case GlobalHeaderPanels.Sidebar:\n event = EventType.MainNavClicked\n break\n case GlobalHeaderPanels.QuickActions:\n event = EventType.HeaderQuickActionsClicked\n break\n default:\n event = EventType.MainNavClicked\n break\n }\n\n storeTelemetry.trackTelemetry(event, { name: this.label })\n }\n\n private shouldBlockEvent = (event: Event) => {\n const target = event.target as Element\n if (\n target.parentElement instanceof HTMLSlotElement &&\n target.parentElement.name == 'clickable'\n ) {\n return true\n }\n return false\n }\n\n onClick = (event: PointerEvent) => {\n const { storeRoot } = this.__getStores()\n\n if (this.shouldBlockEvent(event)) {\n event.stopImmediatePropagation()\n return\n }\n\n if (!this.url) {\n return\n }\n\n this.addToLocalStorage()\n this.logTelemetry()\n\n if (window && this.newTab === true) {\n window.open(this.url, '_blank')\n return\n }\n\n const options: CustomEventInit = {\n detail: {\n itemId: this.itemId,\n url: this.url,\n item: this.item,\n host: this.host,\n tulApi: storeRoot.tulApi\n },\n bubbles: true,\n composed: true\n }\n\n // Menu Item Clicked\n const NavigationMenuItemEvent = new CustomEvent(\n NavigationEvent.UNIVERSAL_NAVIGATION_MENU_ITEM_CLICKED,\n options\n )\n\n this.dispatchEvent(NavigationMenuItemEvent)\n\n // Navigation Event\n const navigationEvent = new CustomEvent(\n NavigationEvent.UNIVERSAL_NAVIGATION_ITEM_CLICKED,\n options\n )\n const eventName = this.determineEventForMenuItem()\n if (eventName) {\n const tulEvent = {\n eventName: eventName as TulEvent,\n detail: {\n nativeEvent: event,\n item: this.item,\n tulApi: storeRoot.tulApi\n }\n } as TulEventUnion\n this.__dispatchTulEvent(tulEvent)\n }\n\n document.dispatchEvent(navigationEvent)\n\n if (window?.document?.location && this.item?.target === '_self') {\n if (this.url?.includes('settings/my-account')) {\n storeRoot.redirectToClickedApp(\n this.url,\n LocalStorageSelectedApplication.platformSettings\n )\n } else {\n window.document.location.href = `${this.url}`\n }\n }\n }\n\n determineEventForMenuItem(): TulEvent | null {\n /**\n * @todo -- Since this is not a lit element, we cannot extend MobxLitElement\n * This left us with direct usage of StoreRoot.getStores() method\n * See Alternatives if possible to avoid this\n */\n let eventName = null\n switch (this.host) {\n case GlobalHeaderPanels.Settings:\n eventName = TulEvent.onTulEventSettingsMenuItemClick\n break\n case GlobalHeaderPanels.Sidebar:\n eventName = TulEvent.onTulEventSidebarMenuItemClick\n break\n case GlobalHeaderPanels.UserProfile:\n eventName = TulEvent.onTulEventUserProfileMenuItemClick\n break\n case GlobalHeaderPanels.QuickActions:\n eventName = TulEvent.onTulEventQuickActionsMenuItemClick\n break\n default:\n break\n }\n return eventName\n }\n\n renderSubMenuIcon = () => {\n if (this.labelVisible && this.hasChildren) {\n return html` <tenable-chevron-right></tenable-chevron-right> `\n }\n }\n\n renderToggleSwitch = () => {\n if (this.labelVisible) {\n return html` <tenable-toggle-switch></tenable-toggle-switch> `\n }\n }\n\n renderLabel = () => {\n const classes = {\n 'tenable-navigation-menu-item-label-for-sidebar':\n this.host === GlobalHeaderPanels.Sidebar,\n hidden: !this.labelVisible\n }\n return html`\n <slot name=\"label\">\n <label\n part=\"label\"\n class=\"tenable-navigation-menu-item-label ${classMap(classes)}\"\n >\n ${this.label}\n </label>\n </slot>\n `\n }\n\n render() {\n const classes = {\n opened: this.opened,\n selected: this.selected,\n 'toggle-switch': this.item?.toggle ?? false\n }\n\n return html`\n <div\n part=\"base\"\n class=\"tenable-navigation-menu-item-root ${classMap(classes)}\"\n @click=${this.onClick}\n aria-label=${ifDefined(this.label)}\n >\n <div part=\"icon\" class=\"tenable-navigation-menu-item__icon\">\n <slot name=\"icon\"></slot>\n </div>\n ${this.renderLabel()}\n ${(this.item as MenuItem) && this.item?.toggle\n ? html` <div\n part=\"clickable-elements\"\n class=\"tenable-navigation-menu-item__clickable\"\n >\n <slot name=\"clickable\"> ${this.renderToggleSwitch()} </slot>\n </div>`\n : ''}\n ${this.renderSubMenuIcon()}\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-navigation-menu-item': NavigationMenuItem\n }\n}\n","import { css } from 'lit'\n\nexport const universalNavigationMenuSubMenuStyles = css`\n :host {\n background-color: var(--tenb-colors-background-component);\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { renderIconAsString } from '@/components/GlobalHeader/utils/renderer'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport type { HtmlString, MenuItem } from '@/types/tul'\nimport { universalNavigationMenuSubMenuStyles } from './styles'\n\n/**\n * @slot icon - The icon component.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-universal-navigation-menu-submenu')\nclass UniversalNavigationMenuSubmenu extends MobxLitElement {\n static styles = [universalNavigationMenuSubMenuStyles]\n\n // A unique menu item ID; it's used to communicate to the menu which menu item is currently selected on click\n @property({ attribute: 'item-id', type: String })\n itemId = ''\n\n @property({ type: Array })\n menuItems: MenuItem[] = []\n\n @property({ type: String })\n host = 'navigation'\n\n render() {\n return html`\n <tenable-navigation-menu part=\"base\">\n ${this.menuItems &&\n repeat(\n this.menuItems,\n item => item.name,\n item => html`\n <tenable-navigation-menu-item\n item-id=${ifDefined(this.itemId)}\n url=${ifDefined(item.url)}\n host=${this.host}\n label=${item.name}\n .item=${item}\n ?newTab=${item.url?.startsWith('http') === true}\n >\n ${renderIconAsString(item.icon as HtmlString)}\n </tenable-navigation-menu-item>\n `\n )}\n </tenable-navigation-menu>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-navigation-menu-submenu': UniversalNavigationMenuSubmenu\n }\n}\n","import { css, html } from 'lit'\nimport { customElement } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\n\n/**\n * @slot Default - Use to add child content\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-notification-badge')\nexport class NotificationBadge extends MobxLitElement {\n static styles = css`\n :host {\n position: absolute;\n top: -5px;\n // left: 20px;\n }\n\n .tenable-notification-badge {\n position: absolute;\n background-color: var(--tenb-colors-icon-status-bad);\n border: 0;\n border-radius: 100px;\n box-sizing: border-box;\n color: var(--tenb-colors-text-white);\n cursor: pointer;\n text-align: center;\n vertical-align: center;\n width: 1.25rem;\n height: 1.25rem;\n }\n\n .tenable-notification-badge div {\n padding-top: 3px;\n font-family: var(--tenb-fonts-base);\n font-size: var(--tenb-fontSizes-12);\n }\n `\n\n render() {\n return html`\n <div part=\"base\" class=\"tenable-notification-badge\">\n <div>\n <slot></slot>\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-notification-badge': NotificationBadge\n }\n}\n","import { css } from 'lit'\n\nexport const notificationsMenuStyles = css`\n #notifications-view {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n gap: 16px 16px;\n margin: 16px;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { notificationsMenuStyles } from './styles'\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart panel-header - The panel header wrapper\n * @csspart panel-header-title - The panel header title\n * @csspart panel-body - The panel body wrapper\n */\n@customElement('tenable-universal-header-notifications-panel')\nexport class NotificationsPanel extends MobxLitElement {\n static styles = [notificationsMenuStyles]\n\n @property({ type: String })\n panelTitle = 'Notifications'\n\n render() {\n return html`\n <tenable-universal-header-action-panel part=\"base\">\n <tenable-universal-header-action-panel-header part=\"panel-header\">\n <tenable-heading3 part=\"panel-header-title\"\n >${this.panelTitle}</tenable-heading3\n >\n </tenable-universal-header-action-panel-header>\n <tenable-universal-header-action-panel-body part=\"panel-body\">\n <slot></slot>\n </tenable-universal-header-action-panel-body>\n </tenable-universal-header-action-panel>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-notifications-panel': NotificationsPanel\n }\n}\n","import { html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport type { ITulEventNotificationOnClick } from '@/types/tul'\nimport { TulEvent } from '@/types/tul'\nimport { uuid } from '../../utils/uuid'\nimport { ActionController } from '../ActionPanel/ActionController'\nimport type { TenablePopoverEvents } from '../PopOver/PopOverEvent'\n\nconst id = 'universal-header-notifications-action'\nconst uniqueId = `${uuid()}`\nconst popoverId = `${id}-${uniqueId}`\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart trigger - The trigger wrapper\n * @csspart content - The content wrapper\n */\n@customElement('tenable-universal-header-notifications-action')\nexport class NotificationsAction extends MobxLitElement {\n @query(`#${popoverId}`)\n popover: any\n\n @property({ type: Number })\n notificationCount = 0\n\n private _actionController = new ActionController(this)\n\n onPopoverTriggerClicked = (event: TenablePopoverEvents) => {\n const { storeRoot, storeTelemetry } = this.__getStores()\n\n this._actionController.onPopoverTriggerClicked(this, this.popover)\n\n const tulEvent: ITulEventNotificationOnClick = {\n eventName: TulEvent.onTulEventNotificationClick,\n detail: {\n nativeEvent: event,\n tulApi: storeRoot.tulApi\n }\n }\n\n this.__dispatchTulEvent(tulEvent)\n\n storeRoot.environment.config.app.handlers?.onTulNotificationsClick?.({\n tulEvent\n })\n\n storeTelemetry.trackTelemetry(EventType.NotificationClicked)\n }\n\n renderBadge = () => {\n if (this.notificationCount > 0) {\n return html`<tenable-notification-badge\n >${this.notificationCount}</tenable-notification-badge\n >`\n }\n }\n\n render() {\n return html`\n <tenable-popover\n part=\"base\"\n id=\"${popoverId}\"\n label=\"Notifications Menu\"\n ?is-open=${this._actionController.isMenuOpen}\n @tenable-popover-anchor-clicked=${this.onPopoverTriggerClicked}\n >\n <tenable-floating-button\n class=\"notification__trigger\"\n ?selected=${this._actionController.isMenuOpen}\n .allowSelectedClick=${true}\n id=\"notifications-menu-button\"\n aria-label=\"Notifications\"\n aria-haspopup=\"true\"\n slot=\"anchor\"\n part=\"trigger\"\n >\n <tenable-bell color=\"brand\" size=\"medium\"></tenable-bell>\n\n ${this.renderBadge()}\n </tenable-floating-button>\n\n <slot></slot>\n </tenable-popover>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-notifications-action': NotificationsAction\n }\n}\n","function t(t){return t.split(\"-\")[1]}function e(t){return\"y\"===t?\"height\":\"width\"}function n(t){return t.split(\"-\")[0]}function o(t){return[\"top\",\"bottom\"].includes(n(t))?\"x\":\"y\"}function i(i,r,a){let{reference:l,floating:s}=i;const c=l.x+l.width/2-s.width/2,f=l.y+l.height/2-s.height/2,m=o(r),u=e(m),g=l[u]/2-s[u]/2,d=\"x\"===m;let p;switch(n(r)){case\"top\":p={x:c,y:l.y-s.height};break;case\"bottom\":p={x:c,y:l.y+l.height};break;case\"right\":p={x:l.x+l.width,y:f};break;case\"left\":p={x:l.x-s.width,y:f};break;default:p={x:l.x,y:l.y}}switch(t(r)){case\"start\":p[m]-=g*(a&&d?-1:1);break;case\"end\":p[m]+=g*(a&&d?-1:1)}return p}const r=async(t,e,n)=>{const{placement:o=\"bottom\",strategy:r=\"absolute\",middleware:a=[],platform:l}=n,s=a.filter(Boolean),c=await(null==l.isRTL?void 0:l.isRTL(e));let f=await l.getElementRects({reference:t,floating:e,strategy:r}),{x:m,y:u}=i(f,o,c),g=o,d={},p=0;for(let n=0;n<s.length;n++){const{name:a,fn:h}=s[n],{x:y,y:x,data:w,reset:v}=await h({x:m,y:u,initialPlacement:o,placement:g,strategy:r,middlewareData:d,rects:f,platform:l,elements:{reference:t,floating:e}});m=null!=y?y:m,u=null!=x?x:u,d={...d,[a]:{...d[a],...w}},v&&p<=50&&(p++,\"object\"==typeof v&&(v.placement&&(g=v.placement),v.rects&&(f=!0===v.rects?await l.getElementRects({reference:t,floating:e,strategy:r}):v.rects),({x:m,y:u}=i(f,g,c))),n=-1)}return{x:m,y:u,placement:g,strategy:r,middlewareData:d}};function a(t,e){return\"function\"==typeof t?t(e):t}function l(t){return\"number\"!=typeof t?function(t){return{top:0,right:0,bottom:0,left:0,...t}}(t):{top:t,right:t,bottom:t,left:t}}function s(t){return{...t,top:t.y,left:t.x,right:t.x+t.width,bottom:t.y+t.height}}async function c(t,e){var n;void 0===e&&(e={});const{x:o,y:i,platform:r,rects:c,elements:f,strategy:m}=t,{boundary:u=\"clippingAncestors\",rootBoundary:g=\"viewport\",elementContext:d=\"floating\",altBoundary:p=!1,padding:h=0}=a(e,t),y=l(h),x=f[p?\"floating\"===d?\"reference\":\"floating\":d],w=s(await r.getClippingRect({element:null==(n=await(null==r.isElement?void 0:r.isElement(x)))||n?x:x.contextElement||await(null==r.getDocumentElement?void 0:r.getDocumentElement(f.floating)),boundary:u,rootBoundary:g,strategy:m})),v=\"floating\"===d?{...c.floating,x:o,y:i}:c.reference,b=await(null==r.getOffsetParent?void 0:r.getOffsetParent(f.floating)),A=await(null==r.isElement?void 0:r.isElement(b))&&await(null==r.getScale?void 0:r.getScale(b))||{x:1,y:1},R=s(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({rect:v,offsetParent:b,strategy:m}):v);return{top:(w.top-R.top+y.top)/A.y,bottom:(R.bottom-w.bottom+y.bottom)/A.y,left:(w.left-R.left+y.left)/A.x,right:(R.right-w.right+y.right)/A.x}}const f=Math.min,m=Math.max;function u(t,e,n){return m(t,f(e,n))}const g=n=>({name:\"arrow\",options:n,async fn(i){const{x:r,y:s,placement:c,rects:m,platform:g,elements:d}=i,{element:p,padding:h=0}=a(n,i)||{};if(null==p)return{};const y=l(h),x={x:r,y:s},w=o(c),v=e(w),b=await g.getDimensions(p),A=\"y\"===w,R=A?\"top\":\"left\",P=A?\"bottom\":\"right\",E=A?\"clientHeight\":\"clientWidth\",T=m.reference[v]+m.reference[w]-x[w]-m.floating[v],D=x[w]-m.reference[w],L=await(null==g.getOffsetParent?void 0:g.getOffsetParent(p));let k=L?L[E]:0;k&&await(null==g.isElement?void 0:g.isElement(L))||(k=d.floating[E]||m.floating[v]);const O=T/2-D/2,B=k/2-b[v]/2-1,C=f(y[R],B),H=f(y[P],B),S=C,F=k-b[v]-H,M=k/2-b[v]/2+O,V=u(S,M,F),W=null!=t(c)&&M!=V&&m.reference[v]/2-(M<S?C:H)-b[v]/2<0?M<S?S-M:F-M:0;return{[w]:x[w]-W,data:{[w]:V,centerOffset:M-V+W}}}}),d=[\"top\",\"right\",\"bottom\",\"left\"],p=d.reduce(((t,e)=>t.concat(e,e+\"-start\",e+\"-end\")),[]),h={left:\"right\",right:\"left\",bottom:\"top\",top:\"bottom\"};function y(t){return t.replace(/left|right|bottom|top/g,(t=>h[t]))}function x(n,i,r){void 0===r&&(r=!1);const a=t(n),l=o(n),s=e(l);let c=\"x\"===l?a===(r?\"end\":\"start\")?\"right\":\"left\":\"start\"===a?\"bottom\":\"top\";return i.reference[s]>i.floating[s]&&(c=y(c)),{main:c,cross:y(c)}}const w={start:\"end\",end:\"start\"};function v(t){return t.replace(/start|end/g,(t=>w[t]))}const b=function(e){return void 0===e&&(e={}),{name:\"autoPlacement\",options:e,async fn(o){var i,r,l;const{rects:s,middlewareData:f,placement:m,platform:u,elements:g}=o,{crossAxis:d=!1,alignment:h,allowedPlacements:y=p,autoAlignment:w=!0,...b}=a(e,o),A=void 0!==h||y===p?function(e,o,i){return(e?[...i.filter((n=>t(n)===e)),...i.filter((n=>t(n)!==e))]:i.filter((t=>n(t)===t))).filter((n=>!e||t(n)===e||!!o&&v(n)!==n))}(h||null,w,y):y,R=await c(o,b),P=(null==(i=f.autoPlacement)?void 0:i.index)||0,E=A[P];if(null==E)return{};const{main:T,cross:D}=x(E,s,await(null==u.isRTL?void 0:u.isRTL(g.floating)));if(m!==E)return{reset:{placement:A[0]}};const L=[R[n(E)],R[T],R[D]],k=[...(null==(r=f.autoPlacement)?void 0:r.overflows)||[],{placement:E,overflows:L}],O=A[P+1];if(O)return{data:{index:P+1,overflows:k},reset:{placement:O}};const B=k.map((e=>{const n=t(e.placement);return[e.placement,n&&d?e.overflows.slice(0,2).reduce(((t,e)=>t+e),0):e.overflows[0],e.overflows]})).sort(((t,e)=>t[1]-e[1])),C=(null==(l=B.filter((e=>e[2].slice(0,t(e[0])?2:3).every((t=>t<=0))))[0])?void 0:l[0])||B[0][0];return C!==m?{data:{index:P+1,overflows:k},reset:{placement:C}}:{}}}};const A=function(e){return void 0===e&&(e={}),{name:\"flip\",options:e,async fn(o){var i;const{placement:r,middlewareData:l,rects:s,initialPlacement:f,platform:m,elements:u}=o,{mainAxis:g=!0,crossAxis:d=!0,fallbackPlacements:p,fallbackStrategy:h=\"bestFit\",fallbackAxisSideDirection:w=\"none\",flipAlignment:b=!0,...A}=a(e,o),R=n(r),P=n(f)===f,E=await(null==m.isRTL?void 0:m.isRTL(u.floating)),T=p||(P||!b?[y(f)]:function(t){const e=y(t);return[v(t),e,v(e)]}(f));p||\"none\"===w||T.push(...function(e,o,i,r){const a=t(e);let l=function(t,e,n){const o=[\"left\",\"right\"],i=[\"right\",\"left\"],r=[\"top\",\"bottom\"],a=[\"bottom\",\"top\"];switch(t){case\"top\":case\"bottom\":return n?e?i:o:e?o:i;case\"left\":case\"right\":return e?r:a;default:return[]}}(n(e),\"start\"===i,r);return a&&(l=l.map((t=>t+\"-\"+a)),o&&(l=l.concat(l.map(v)))),l}(f,b,w,E));const D=[f,...T],L=await c(o,A),k=[];let O=(null==(i=l.flip)?void 0:i.overflows)||[];if(g&&k.push(L[R]),d){const{main:t,cross:e}=x(r,s,E);k.push(L[t],L[e])}if(O=[...O,{placement:r,overflows:k}],!k.every((t=>t<=0))){var B,C;const t=((null==(B=l.flip)?void 0:B.index)||0)+1,e=D[t];if(e)return{data:{index:t,overflows:O},reset:{placement:e}};let n=null==(C=O.filter((t=>t.overflows[0]<=0)).sort(((t,e)=>t.overflows[1]-e.overflows[1]))[0])?void 0:C.placement;if(!n)switch(h){case\"bestFit\":{var H;const t=null==(H=O.map((t=>[t.placement,t.overflows.filter((t=>t>0)).reduce(((t,e)=>t+e),0)])).sort(((t,e)=>t[1]-e[1]))[0])?void 0:H[0];t&&(n=t);break}case\"initialPlacement\":n=f}if(r!==n)return{reset:{placement:n}}}return{}}}};function R(t,e){return{top:t.top-e.height,right:t.right-e.width,bottom:t.bottom-e.height,left:t.left-e.width}}function P(t){return d.some((e=>t[e]>=0))}const E=function(t){return void 0===t&&(t={}),{name:\"hide\",options:t,async fn(e){const{rects:n}=e,{strategy:o=\"referenceHidden\",...i}=a(t,e);switch(o){case\"referenceHidden\":{const t=R(await c(e,{...i,elementContext:\"reference\"}),n.reference);return{data:{referenceHiddenOffsets:t,referenceHidden:P(t)}}}case\"escaped\":{const t=R(await c(e,{...i,altBoundary:!0}),n.floating);return{data:{escapedOffsets:t,escaped:P(t)}}}default:return{}}}}};function T(t){const e=f(...t.map((t=>t.left))),n=f(...t.map((t=>t.top)));return{x:e,y:n,width:m(...t.map((t=>t.right)))-e,height:m(...t.map((t=>t.bottom)))-n}}const D=function(t){return void 0===t&&(t={}),{name:\"inline\",options:t,async fn(e){const{placement:i,elements:r,rects:c,platform:u,strategy:g}=e,{padding:d=2,x:p,y:h}=a(t,e),y=Array.from(await(null==u.getClientRects?void 0:u.getClientRects(r.reference))||[]),x=function(t){const e=t.slice().sort(((t,e)=>t.y-e.y)),n=[];let o=null;for(let t=0;t<e.length;t++){const i=e[t];!o||i.y-o.y>o.height/2?n.push([i]):n[n.length-1].push(i),o=i}return n.map((t=>s(T(t))))}(y),w=s(T(y)),v=l(d);const b=await u.getElementRects({reference:{getBoundingClientRect:function(){if(2===x.length&&x[0].left>x[1].right&&null!=p&&null!=h)return x.find((t=>p>t.left-v.left&&p<t.right+v.right&&h>t.top-v.top&&h<t.bottom+v.bottom))||w;if(x.length>=2){if(\"x\"===o(i)){const t=x[0],e=x[x.length-1],o=\"top\"===n(i),r=t.top,a=e.bottom,l=o?t.left:e.left,s=o?t.right:e.right;return{top:r,bottom:a,left:l,right:s,width:s-l,height:a-r,x:l,y:r}}const t=\"left\"===n(i),e=m(...x.map((t=>t.right))),r=f(...x.map((t=>t.left))),a=x.filter((n=>t?n.left===r:n.right===e)),l=a[0].top,s=a[a.length-1].bottom;return{top:l,bottom:s,left:r,right:e,width:e-r,height:s-l,x:r,y:l}}return w}},floating:r.floating,strategy:g});return c.reference.x!==b.reference.x||c.reference.y!==b.reference.y||c.reference.width!==b.reference.width||c.reference.height!==b.reference.height?{reset:{rects:b}}:{}}}};const L=function(e){return void 0===e&&(e=0),{name:\"offset\",options:e,async fn(i){const{x:r,y:l}=i,s=await async function(e,i){const{placement:r,platform:l,elements:s}=e,c=await(null==l.isRTL?void 0:l.isRTL(s.floating)),f=n(r),m=t(r),u=\"x\"===o(r),g=[\"left\",\"top\"].includes(f)?-1:1,d=c&&u?-1:1,p=a(i,e);let{mainAxis:h,crossAxis:y,alignmentAxis:x}=\"number\"==typeof p?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:0,crossAxis:0,alignmentAxis:null,...p};return m&&\"number\"==typeof x&&(y=\"end\"===m?-1*x:x),u?{x:y*d,y:h*g}:{x:h*g,y:y*d}}(i,e);return{x:r+s.x,y:l+s.y,data:s}}}};function k(t){return\"x\"===t?\"y\":\"x\"}const O=function(t){return void 0===t&&(t={}),{name:\"shift\",options:t,async fn(e){const{x:i,y:r,placement:l}=e,{mainAxis:s=!0,crossAxis:f=!1,limiter:m={fn:t=>{let{x:e,y:n}=t;return{x:e,y:n}}},...g}=a(t,e),d={x:i,y:r},p=await c(e,g),h=o(n(l)),y=k(h);let x=d[h],w=d[y];if(s){const t=\"y\"===h?\"bottom\":\"right\";x=u(x+p[\"y\"===h?\"top\":\"left\"],x,x-p[t])}if(f){const t=\"y\"===y?\"bottom\":\"right\";w=u(w+p[\"y\"===y?\"top\":\"left\"],w,w-p[t])}const v=m.fn({...e,[h]:x,[y]:w});return{...v,data:{x:v.x-i,y:v.y-r}}}}},B=function(t){return void 0===t&&(t={}),{options:t,fn(e){const{x:i,y:r,placement:l,rects:s,middlewareData:c}=e,{offset:f=0,mainAxis:m=!0,crossAxis:u=!0}=a(t,e),g={x:i,y:r},d=o(l),p=k(d);let h=g[d],y=g[p];const x=a(f,e),w=\"number\"==typeof x?{mainAxis:x,crossAxis:0}:{mainAxis:0,crossAxis:0,...x};if(m){const t=\"y\"===d?\"height\":\"width\",e=s.reference[d]-s.floating[t]+w.mainAxis,n=s.reference[d]+s.reference[t]-w.mainAxis;h<e?h=e:h>n&&(h=n)}if(u){var v,b;const t=\"y\"===d?\"width\":\"height\",e=[\"top\",\"left\"].includes(n(l)),o=s.reference[p]-s.floating[t]+(e&&(null==(v=c.offset)?void 0:v[p])||0)+(e?0:w.crossAxis),i=s.reference[p]+s.reference[t]+(e?0:(null==(b=c.offset)?void 0:b[p])||0)-(e?w.crossAxis:0);y<o?y=o:y>i&&(y=i)}return{[d]:h,[p]:y}}}},C=function(e){return void 0===e&&(e={}),{name:\"size\",options:e,async fn(i){const{placement:r,rects:l,platform:s,elements:u}=i,{apply:g=(()=>{}),...d}=a(e,i),p=await c(i,d),h=n(r),y=t(r),x=\"x\"===o(r),{width:w,height:v}=l.floating;let b,A;\"top\"===h||\"bottom\"===h?(b=h,A=y===(await(null==s.isRTL?void 0:s.isRTL(u.floating))?\"start\":\"end\")?\"left\":\"right\"):(A=h,b=\"end\"===y?\"top\":\"bottom\");const R=v-p[b],P=w-p[A],E=!i.middlewareData.shift;let T=R,D=P;if(x){const t=w-p.left-p.right;D=y||E?f(P,t):t}else{const t=v-p.top-p.bottom;T=y||E?f(R,t):t}if(E&&!y){const t=m(p.left,0),e=m(p.right,0),n=m(p.top,0),o=m(p.bottom,0);x?D=w-2*(0!==t||0!==e?t+e:m(p.left,p.right)):T=v-2*(0!==n||0!==o?n+o:m(p.top,p.bottom))}await g({...i,availableWidth:D,availableHeight:T});const L=await s.getDimensions(u.floating);return w!==L.width||v!==L.height?{reset:{rects:!0}}:{}}}};export{g as arrow,b as autoPlacement,r as computePosition,c as detectOverflow,A as flip,E as hide,D as inline,B as limitShift,L as offset,s as rectToClientRect,O as shift,C as size};\n","import{rectToClientRect as t,computePosition as e}from\"@floating-ui/core\";export{arrow,autoPlacement,detectOverflow,flip,hide,inline,limitShift,offset,shift,size}from\"@floating-ui/core\";function n(t){var e;return(null==(e=t.ownerDocument)?void 0:e.defaultView)||window}function o(t){return n(t).getComputedStyle(t)}function i(t){return t instanceof n(t).Node}function r(t){return i(t)?(t.nodeName||\"\").toLowerCase():\"#document\"}function c(t){return t instanceof n(t).HTMLElement}function l(t){return t instanceof n(t).Element}function s(t){return\"undefined\"!=typeof ShadowRoot&&(t instanceof n(t).ShadowRoot||t instanceof ShadowRoot)}function f(t){const{overflow:e,overflowX:n,overflowY:i,display:r}=o(t);return/auto|scroll|overlay|hidden|clip/.test(e+i+n)&&![\"inline\",\"contents\"].includes(r)}function u(t){return[\"table\",\"td\",\"th\"].includes(r(t))}function d(t){const e=a(),n=o(t);return\"none\"!==n.transform||\"none\"!==n.perspective||!e&&!!n.backdropFilter&&\"none\"!==n.backdropFilter||!e&&!!n.filter&&\"none\"!==n.filter||[\"transform\",\"perspective\",\"filter\"].some((t=>(n.willChange||\"\").includes(t)))||[\"paint\",\"layout\",\"strict\",\"content\"].some((t=>(n.contain||\"\").includes(t)))}function a(){return!(\"undefined\"==typeof CSS||!CSS.supports)&&CSS.supports(\"-webkit-backdrop-filter\",\"none\")}function h(t){return[\"html\",\"body\",\"#document\"].includes(r(t))}const p=Math.min,g=Math.max,m=Math.round,y=Math.floor,w=t=>({x:t,y:t});function x(t){const e=o(t);let n=parseFloat(e.width)||0,i=parseFloat(e.height)||0;const r=c(t),l=r?t.offsetWidth:n,s=r?t.offsetHeight:i,f=m(n)!==l||m(i)!==s;return f&&(n=l,i=s),{width:n,height:i,$:f}}function v(t){return l(t)?t:t.contextElement}function b(t){const e=v(t);if(!c(e))return w(1);const n=e.getBoundingClientRect(),{width:o,height:i,$:r}=x(e);let l=(r?m(n.width):n.width)/o,s=(r?m(n.height):n.height)/i;return l&&Number.isFinite(l)||(l=1),s&&Number.isFinite(s)||(s=1),{x:l,y:s}}const L=w(0);function R(t,e,o){var i,r;if(void 0===e&&(e=!0),!a())return L;const c=t?n(t):window;return!o||e&&o!==c?L:{x:(null==(i=c.visualViewport)?void 0:i.offsetLeft)||0,y:(null==(r=c.visualViewport)?void 0:r.offsetTop)||0}}function T(e,o,i,r){void 0===o&&(o=!1),void 0===i&&(i=!1);const c=e.getBoundingClientRect(),s=v(e);let f=w(1);o&&(r?l(r)&&(f=b(r)):f=b(e));const u=R(s,i,r);let d=(c.left+u.x)/f.x,a=(c.top+u.y)/f.y,h=c.width/f.x,p=c.height/f.y;if(s){const t=n(s),e=r&&l(r)?n(r):r;let o=t.frameElement;for(;o&&r&&e!==t;){const t=b(o),e=o.getBoundingClientRect(),i=getComputedStyle(o),r=e.left+(o.clientLeft+parseFloat(i.paddingLeft))*t.x,c=e.top+(o.clientTop+parseFloat(i.paddingTop))*t.y;d*=t.x,a*=t.y,h*=t.x,p*=t.y,d+=r,a+=c,o=n(o).frameElement}}return t({width:h,height:p,x:d,y:a})}function S(t){return((i(t)?t.ownerDocument:t.document)||window.document).documentElement}function E(t){return l(t)?{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}:{scrollLeft:t.pageXOffset,scrollTop:t.pageYOffset}}function C(t){return T(S(t)).left+E(t).scrollLeft}function F(t){if(\"html\"===r(t))return t;const e=t.assignedSlot||t.parentNode||s(t)&&t.host||S(t);return s(e)?e.host:e}function W(t){const e=F(t);return h(e)?t.ownerDocument?t.ownerDocument.body:t.body:c(e)&&f(e)?e:W(e)}function D(t,e){var o;void 0===e&&(e=[]);const i=W(t),r=i===(null==(o=t.ownerDocument)?void 0:o.body),c=n(i);return r?e.concat(c,c.visualViewport||[],f(i)?i:[]):e.concat(i,D(i))}function H(e,i,r){let s;if(\"viewport\"===i)s=function(t,e){const o=n(t),i=S(t),r=o.visualViewport;let c=i.clientWidth,l=i.clientHeight,s=0,f=0;if(r){c=r.width,l=r.height;const t=a();(!t||t&&\"fixed\"===e)&&(s=r.offsetLeft,f=r.offsetTop)}return{width:c,height:l,x:s,y:f}}(e,r);else if(\"document\"===i)s=function(t){const e=S(t),n=E(t),i=t.ownerDocument.body,r=g(e.scrollWidth,e.clientWidth,i.scrollWidth,i.clientWidth),c=g(e.scrollHeight,e.clientHeight,i.scrollHeight,i.clientHeight);let l=-n.scrollLeft+C(t);const s=-n.scrollTop;return\"rtl\"===o(i).direction&&(l+=g(e.clientWidth,i.clientWidth)-r),{width:r,height:c,x:l,y:s}}(S(e));else if(l(i))s=function(t,e){const n=T(t,!0,\"fixed\"===e),o=n.top+t.clientTop,i=n.left+t.clientLeft,r=c(t)?b(t):w(1);return{width:t.clientWidth*r.x,height:t.clientHeight*r.y,x:i*r.x,y:o*r.y}}(i,r);else{const t=R(e);s={...i,x:i.x-t.x,y:i.y-t.y}}return t(s)}function O(t,e){const n=F(t);return!(n===e||!l(n)||h(n))&&(\"fixed\"===o(n).position||O(n,e))}function M(t,e){return c(t)&&\"fixed\"!==o(t).position?e?e(t):t.offsetParent:null}function P(t,e){const i=n(t);if(!c(t))return i;let l=M(t,e);for(;l&&u(l)&&\"static\"===o(l).position;)l=M(l,e);return l&&(\"html\"===r(l)||\"body\"===r(l)&&\"static\"===o(l).position&&!d(l))?i:l||function(t){let e=F(t);for(;c(e)&&!h(e);){if(d(e))return e;e=F(e)}return null}(t)||i}function z(t,e,n){const o=c(e),i=S(e),l=\"fixed\"===n,s=T(t,!0,l,e);let u={scrollLeft:0,scrollTop:0};const d=w(0);if(o||!o&&!l)if((\"body\"!==r(e)||f(i))&&(u=E(e)),c(e)){const t=T(e,!0,l,e);d.x=t.x+e.clientLeft,d.y=t.y+e.clientTop}else i&&(d.x=C(i));return{x:s.left+u.scrollLeft-d.x,y:s.top+u.scrollTop-d.y,width:s.width,height:s.height}}const V={getClippingRect:function(t){let{element:e,boundary:n,rootBoundary:i,strategy:c}=t;const s=\"clippingAncestors\"===n?function(t,e){const n=e.get(t);if(n)return n;let i=D(t).filter((t=>l(t)&&\"body\"!==r(t))),c=null;const s=\"fixed\"===o(t).position;let u=s?F(t):t;for(;l(u)&&!h(u);){const e=o(u),n=d(u);n||\"fixed\"!==e.position||(c=null),(s?!n&&!c:!n&&\"static\"===e.position&&c&&[\"absolute\",\"fixed\"].includes(c.position)||f(u)&&!n&&O(t,u))?i=i.filter((t=>t!==u)):c=e,u=F(u)}return e.set(t,i),i}(e,this._c):[].concat(n),u=[...s,i],a=u[0],m=u.reduce(((t,n)=>{const o=H(e,n,c);return t.top=g(o.top,t.top),t.right=p(o.right,t.right),t.bottom=p(o.bottom,t.bottom),t.left=g(o.left,t.left),t}),H(e,a,c));return{width:m.right-m.left,height:m.bottom-m.top,x:m.left,y:m.top}},convertOffsetParentRelativeRectToViewportRelativeRect:function(t){let{rect:e,offsetParent:n,strategy:o}=t;const i=c(n),l=S(n);if(n===l)return e;let s={scrollLeft:0,scrollTop:0},u=w(1);const d=w(0);if((i||!i&&\"fixed\"!==o)&&((\"body\"!==r(n)||f(l))&&(s=E(n)),c(n))){const t=T(n);u=b(n),d.x=t.x+n.clientLeft,d.y=t.y+n.clientTop}return{width:e.width*u.x,height:e.height*u.y,x:e.x*u.x-s.scrollLeft*u.x+d.x,y:e.y*u.y-s.scrollTop*u.y+d.y}},isElement:l,getDimensions:function(t){return x(t)},getOffsetParent:P,getDocumentElement:S,getScale:b,async getElementRects(t){let{reference:e,floating:n,strategy:o}=t;const i=this.getOffsetParent||P,r=this.getDimensions;return{reference:z(e,await i(n),o),floating:{x:0,y:0,...await r(n)}}},getClientRects:t=>Array.from(t.getClientRects()),isRTL:t=>\"rtl\"===o(t).direction};function B(t,e,n,o){void 0===o&&(o={});const{ancestorScroll:i=!0,ancestorResize:r=!0,elementResize:c=!0,layoutShift:l=\"function\"==typeof IntersectionObserver,animationFrame:s=!1}=o,f=v(t),u=i||r?[...f?D(f):[],...D(e)]:[];u.forEach((t=>{i&&t.addEventListener(\"scroll\",n,{passive:!0}),r&&t.addEventListener(\"resize\",n)}));const d=f&&l?function(t,e){let n,o=null;const i=S(t);function r(){clearTimeout(n),o&&o.disconnect(),o=null}return function c(l,s){void 0===l&&(l=!1),void 0===s&&(s=1),r();const{left:f,top:u,width:d,height:a}=t.getBoundingClientRect();if(l||e(),!d||!a)return;const h=y(u),m=y(i.clientWidth-(f+d)),w=y(i.clientHeight-(u+a)),x=y(f);let v=!0;o=new IntersectionObserver((t=>{const e=t[0].intersectionRatio;if(e!==s){if(!v)return c();e?c(!1,e):n=setTimeout((()=>{c(!1,1e-7)}),100)}v=!1}),{rootMargin:-h+\"px \"+-m+\"px \"+-w+\"px \"+-x+\"px\",threshold:g(0,p(1,s))||1}),o.observe(t)}(!0),r}(f,n):null;let a,h=null;c&&(h=new ResizeObserver(n),f&&!s&&h.observe(f),h.observe(e));let m=s?T(t):null;return s&&function e(){const o=T(t);!m||o.x===m.x&&o.y===m.y&&o.width===m.width&&o.height===m.height||n();m=o,a=requestAnimationFrame(e)}(),n(),()=>{u.forEach((t=>{i&&t.removeEventListener(\"scroll\",n),r&&t.removeEventListener(\"resize\",n)})),d&&d(),h&&h.disconnect(),h=null,s&&cancelAnimationFrame(a)}}const N=(t,n,o)=>{const i=new Map,r={platform:V,...o},c={...r.platform,_c:i};return e(t,n,{...r,platform:c})};export{B as autoUpdate,N as computePosition,D as getOverflowAncestors,V as platform};\n","import { TenableBaseEvent } from '../BaseEvent'\n\ntype Payload = {\n detail: {\n popoverId: string\n isOpen: boolean\n nativeEvent: Event\n }\n}\n\nexport class TenablePopoverEvents extends TenableBaseEvent<Payload> {\n static TENABLE_POPOVER_ANCHOR_CLICKED = 'tenable-popover-anchor-clicked'\n\n static TENABLE_POPOVER_DIALOG_CLICKED = 'tenable-popover-dialog-clicked'\n}\n","import { css } from 'lit'\n\nexport const popoverStyles = css`\n :host {\n position: relative;\n }\n\n .tenable-popover__anchor {\n display: inline-block;\n position: relative;\n }\n\n .tenable-popover__dialog {\n background-color: var(--tenb-colors-background-component);\n border-radius: 6px;\n color: var(--tenb-colors-text-body);\n left: 0;\n isolation: isolate;\n position: absolute;\n top: 0;\n z-index: var(--tenb-zIndices-popover);\n }\n\n .tenable-popover__dialog.fixed {\n position: fixed;\n }\n\n .tenable-popover__dialog:not(.open) {\n display: none;\n }\n`\n","import {\n autoUpdate,\n computePosition,\n flip,\n offset,\n type Placement,\n shift\n} from '@floating-ui/dom'\nimport { type Maybe } from '@productive-codebases/toolbox'\nimport { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { TenablePopoverEvents } from './PopOverEvent'\nimport { popoverStyles } from './styles'\n\n/**\n * @slot Default - Use to add child content\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-popover')\nexport class Popover extends MobxLitElement {\n static styles = [popoverStyles]\n\n // A unique id for the anchor container element; It's used for targeting accessibility attributes\n anchorId = ''\n\n // A unique id for the dialog container element; It's used for targeting accessibility attributes\n dialogId = ''\n\n // A selector string that points to a specific element in the anchor slot\n @property({ attribute: 'anchor-selector' })\n anchorSelector = ''\n\n // Indicates if the popover is disabled and should ignore any click events in the anchor or dialog slots\n @property({ reflect: true, type: Boolean })\n disabled = false\n\n // Indicates the type of dialog content that the popover controls (used for accessibility)\n @property({ attribute: 'has-popup', reflect: true })\n hasPopup = 'menu'\n\n // Indicates if the popover dialog should be fixed positioned.\n @property({ type: Boolean, attribute: 'is-fixed', reflect: true })\n isFixed = false\n\n // Indicates if the popover is open or closed\n @property({ type: Boolean, attribute: 'is-open', reflect: true })\n isOpen = false\n\n // Sets an accessibility attribute that labels the popover trigger\n @property()\n label = ''\n\n // Defines the placement of the popover dialog content\n @property()\n placement: Placement = 'bottom-end'\n\n // A function generated by floating-ui's autoUpdate that's called when the component is disconnected\n private _cleanup: ReturnType<typeof autoUpdate> | undefined\n\n // The slotted anchor element\n get anchor(): Maybe<Element | null> {\n let slottedAnchorEl = this.querySelector('[slot=\"anchor\"]')\n\n // If the slotted anchor element is itself a slot element, retrieve the first assigned element in that slot\n if (slottedAnchorEl instanceof HTMLSlotElement) {\n slottedAnchorEl = slottedAnchorEl.assignedElements({\n flatten: true\n })[0] as HTMLElement\n }\n\n // If an anchor selector is specified, search the shadowRoot of the slotted anchor element based on the selector\n if (this.anchorSelector) {\n // Search the light DOM first\n let results = slottedAnchorEl?.querySelector(this.anchorSelector)\n\n // Then search the shadow DOM\n if (!results && slottedAnchorEl?.shadowRoot) {\n results = slottedAnchorEl.shadowRoot.querySelector(this.anchorSelector)\n }\n\n return results ?? null\n }\n\n // If not, return the slotted anchor element\n return slottedAnchorEl\n }\n\n // The dialog container element\n get dialog(): HTMLElement {\n return this.shadowRoot?.querySelector(\n '.tenable-popover__dialog'\n ) as HTMLElement\n }\n\n async connectedCallback() {\n super.connectedCallback()\n\n // Prepare unique ids for the anchor and dialog based on the id set on the popover\n this.anchorId = `${this.id}-anchor`\n this.dialogId = `${this.id}-dialog`\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n // Stop the positioner when the component disconnects\n this._stopPositioner()\n }\n\n async updated(changedProps: Map<string, unknown>) {\n super.updated(changedProps)\n\n // If isOpened change, start or stop the dialog positioner\n if (changedProps.has('isOpen')) {\n if (this.isOpen) {\n this._startPositioner()\n } else {\n this._stopPositioner()\n }\n }\n\n // If the popover is open, regardless of what property changed, recalculate the popover position\n // just in case that property change shifted the anchor's size/position\n if (this.isOpen) {\n await this.updateComplete\n this._reposition()\n }\n }\n\n // Opens the popover\n openPopover() {\n this.isOpen = true\n }\n\n // Closes the popover\n closePopover() {\n this.isOpen = false\n }\n\n render() {\n return html`\n <div\n aria-controls=${this.dialogId}\n aria-expanded=${this.isOpen}\n aria-haspopup=${Boolean(this.hasPopup)}\n aria-label=${this.label}\n class=\"tenb-popover__anchor\"\n @click=${this._handleAnchorClicked}\n id=${this.anchorId}\n part=\"anchor\"\n role=\"button\"\n >\n <slot name=\"anchor\" @slotchange=${this._onSlotChange}></slot>\n </div>\n <div\n aria-labeledby=${this.anchorId}\n class=${classMap({\n 'tenable-popover__dialog': true,\n fixed: this.isFixed,\n open: this.isOpen\n })}\n @click=${this._handleDialogClicked}\n id=${this.dialogId}\n part=\"dialog\"\n role=\"dialog\"\n >\n <slot></slot>\n </div>\n `\n }\n\n /**\n * Private\n */\n\n // Starts the dialog positioner\n private _startPositioner() {\n // Cannot start the positioner if there is no anchor to target\n if (!this.anchor) {\n return\n }\n\n this._cleanup = autoUpdate(\n this.anchor,\n this.dialog,\n () => this._reposition(),\n {\n elementResize: false // Without this, Bit will throw an error because ResizeObserver is undefined\n }\n )\n }\n\n // Stops the positioner\n private async _stopPositioner() {\n return new Promise<void>(resolve => {\n // If the cleanup function is defined, run it and resolve the promise in the next animation frame\n // Otherwise, resolve immediately\n if (this._cleanup) {\n this._cleanup()\n this._cleanup = undefined\n requestAnimationFrame(() => resolve())\n } else {\n resolve()\n }\n })\n }\n\n // Repositions the dialog context\n private _reposition() {\n // If the popover is not opened or anchor/dialog is not defined, exit early\n if (!this.isOpen || !this.anchor || !this.dialog) {\n return\n }\n\n computePosition(this.anchor, this.dialog, {\n placement: this.placement,\n middleware: [\n flip({\n fallbackStrategy: 'initialPlacement'\n }),\n offset(5),\n shift()\n ],\n strategy: this.isFixed ? 'fixed' : 'absolute'\n }).then(({ x, y }) => {\n this.dialog.style.left = `${x}px`\n this.dialog.style.top = `${y}px`\n })\n }\n\n // Handles slot changes by re-starting the positioner\n private _onSlotChange() {\n this._startPositioner()\n }\n\n // Handles anchor clicks by dispatching a popover anchor clicked event\n private _handleAnchorClicked(event: Event) {\n // If configured with an anchor selector, if the event target's path does not match the selector, do nothing\n if (this.anchorSelector) {\n const path = event.composedPath() as HTMLElement[]\n\n if (!path.some(elm => elm.matches?.(this.anchorSelector))) {\n return\n }\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n // If disabled, exit early\n if (this.disabled) {\n return\n }\n\n const payload = {\n detail: {\n isOpen: !this.isOpen,\n popoverId: this.id,\n nativeEvent: event\n }\n }\n\n const onAnchorClicked = new TenablePopoverEvents(\n TenablePopoverEvents.TENABLE_POPOVER_ANCHOR_CLICKED,\n payload\n )\n\n this.dispatchEvent(onAnchorClicked)\n }\n\n // Handles dialog clicks by dispatching a popover dialog clicked event\n private _handleDialogClicked(event: Event) {\n const hasLinkInAncestor = event.composedPath().some(path => {\n return 'tagName' in path\n ? (path as HTMLElement).tagName.toLowerCase() === 'a'\n : false\n })\n\n // The click event must be allowed to propagate in order for parent components to pick up the event\n // Without it, the universal navigation will not toggle the open/close icon at the top of the panel correctly\n // On the other hand, we avoid using preventDefault because it blocks the link\n if (!hasLinkInAncestor) {\n event.preventDefault()\n }\n\n // If disabled, exit early\n if (this.disabled) {\n return\n }\n\n const payload = {\n detail: {\n isOpen: !this.isOpen,\n popoverId: this.id,\n nativeEvent: event\n }\n }\n\n const onAnchorClicked = new TenablePopoverEvents(\n TenablePopoverEvents.TENABLE_POPOVER_DIALOG_CLICKED,\n payload\n )\n\n this.dispatchEvent(onAnchorClicked)\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-popover': Popover\n }\n}\n","import { css } from 'lit'\n\nexport const quickActionsStyles = css`\n #quick-actions-menu-button::part(label) {\n color: var(--tenb-colors-text-brand);\n font-family: var(--tenb-fonts-brand-medium);\n font-size: var(--tenb-fontSizes-16);\n font-weight: 500;\n }\n`\n","import { html } from 'lit'\nimport { query, property, customElement } from 'lit/decorators.js'\nimport type { QuickActionsLabelType } from '@/libs/i18n'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { uuid } from '../../utils/uuid'\nimport { ActionController } from '../ActionPanel/ActionController'\nimport { quickActionsStyles } from './styles'\n\nconst id = 'universal-header-quick-actions'\nconst uniqueId = `${uuid()}`\nconst popoverId = `${id}-${uniqueId}`\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart action-trigger-button - The trigger button\n */\n@customElement('tenable-universal-header-quick-actions')\nexport class QuickActions extends MobxLitElement {\n static styles = [quickActionsStyles]\n\n private _actionController = new ActionController(this)\n\n @query(`#${popoverId}`)\n public popover: any\n\n @property()\n label = 'Actions'\n\n onPopoverTriggerClicked = () => {\n this._actionController.onPopoverTriggerClicked(this, this.popover)\n }\n\n render() {\n const { language } = this.__getStores().storeLayout\n const translator = this.__translator(language)('Header')('QuickActions')\n\n return html`\n <tenable-popover\n part=\"base\"\n id=\"${popoverId}\"\n label=\"Quick Actions Menu\"\n ?is-open=${this._actionController.isMenuOpen}\n @tenable-popover-anchor-clicked=${this.onPopoverTriggerClicked}\n >\n <tenable-secondary-button\n id=\"quick-actions-menu-button\"\n part=\"action-trigger-button\"\n ?selected=${this._actionController.isMenuOpen}\n .allowSelectedClick=${true}\n aria-haspopup=\"true\"\n slot=\"anchor\"\n >\n ${translator(this.label as QuickActionsLabelType) ?? this.label}\n\n <tenable-star color=\"accent-idle\" slot=\"icon-left\"> </tenable-star>\n <tenable-chevron-down slot=\"icon-right\"> </tenable-chevron-down>\n </tenable-secondary-button>\n <slot></slot>\n </tenable-popover>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-quick-actions': QuickActions\n }\n}\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport type { HtmlString, MenuItem } from '@/types/tul'\nimport { GlobalHeaderPanels } from '@/types/tul'\nimport { renderIconAsString } from '../../utils/renderer'\ntype QuickActionsMenuItemsProps = MenuItem[]\n\n/**\n * @slot Default - Use to render child content\n */\n@customElement('tenable-universal-header-quick-actions-panel')\nexport class QuickActionsPanel extends MobxLitElement {\n @property({ type: Array })\n menuItems: QuickActionsMenuItemsProps = []\n\n // Indicates which menu item is currently selected based on the menu ID. It highlights that menu item in the list.\n @property({ attribute: 'selected-menu-item', reflect: true, type: String })\n selectedMenuItem = ''\n\n /**\n * @property({ type: String })\n * panelTitle = 'Quick Actions'\n *\n * <TENABLE-universal-header-action-panel-header>\n <div class=\"tenb-navigation-menu-header-quick-actions\">\n <TENABLE-heading3>${this.panelTitle}</TENABLE-heading3>\n </div>\n </TENABLE-universal-header-action-panel-header>\n *\n */\n\n protected render = () => {\n return html`\n <tenable-universal-header-action-panel .header=${false}>\n <tenable-universal-header-action-panel-body standalone>\n <div id=\"quick-actions-view\">\n ${this.menuItems &&\n repeat(\n this.menuItems,\n item => item.name,\n (item: MenuItem) => html`\n <tenable-navigation-menu-item\n part=\"panel-menu-item\"\n id=${'universal-quick-actions-menu-item' + item.id}\n .item=${item}\n item-id=${item.id}\n ?selected=${this.selectedMenuItem === item.id}\n url=${ifDefined(item.url)}\n label=${item.name}\n host=${GlobalHeaderPanels.QuickActions}\n ?newTab=${item.url?.startsWith('http') === true}\n >\n ${renderIconAsString(item.icon as HtmlString)}\n </tenable-navigation-menu-item>\n `\n )}\n </div>\n </tenable-universal-header-action-panel-body>\n </tenable-universal-header-action-panel>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-quick-actions-panel': QuickActionsPanel\n }\n}\n","import { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { LocalStorageSelectedApplication } from '@/types'\nimport { uuid } from '../../utils/uuid'\nimport { ActionController } from '../ActionPanel/ActionController'\nimport type { TenablePopoverEvents } from '../PopOver/PopOverEvent'\n\nconst id = 'universal-header-settings-action'\nconst uniqueId = `${uuid()}`\nconst popoverId = `${id}-${uniqueId}`\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart trigger - The trigger wrapper\n * @csspart content - The content wrapper\n */\n@customElement('tenable-universal-header-settings-action')\nexport class SettingsAction extends MobxLitElement {\n @query(`#${popoverId}`)\n popover: any\n\n private _actionController = new ActionController(this)\n\n onPopoverTriggerClicked = (event: TenablePopoverEvents) => {\n if (event.payload.detail?.popoverId === this.popover.id) {\n const { storeRoot } = this.__getStores()\n\n if (storeRoot.isInSass) {\n // Below code will stop the original popover to be shown and force a redirection\n /** This needs to be done for pages inside TIO to work as it is dependant on this config */\n let settingsLocalStorage = LocalStorageSelectedApplication.settings\n switch (storeRoot.appId) {\n case LocalStorageSelectedApplication.tio:\n settingsLocalStorage = LocalStorageSelectedApplication.tenable_io\n break\n case LocalStorageSelectedApplication.pci:\n settingsLocalStorage = LocalStorageSelectedApplication.pci\n break\n case LocalStorageSelectedApplication.lumin:\n settingsLocalStorage = LocalStorageSelectedApplication.lumin\n break\n\n default:\n settingsLocalStorage = LocalStorageSelectedApplication.settings\n break\n }\n\n storeRoot.redirectToClickedApp(\n `/tio/app.html#/settings`,\n settingsLocalStorage\n )\n } else {\n this._actionController.onPopoverTriggerClicked(this, this.popover)\n }\n }\n }\n\n render() {\n return html`\n <tenable-popover\n part=\"base\"\n id=\"${popoverId}\"\n label=\"Settings Menu\"\n ?is-open=${this._actionController.isMenuOpen}\n @tenable-popover-anchor-clicked=${this.onPopoverTriggerClicked}\n >\n <tenable-floating-button\n ?selected=${this._actionController.isMenuOpen}\n .allowSelectedClick=${true}\n id=\"settings-menu-button\"\n slot=\"anchor\"\n part=\"trigger\"\n aria-label=\"Settings\"\n aria-haspopup=\"true\"\n >\n <tenable-settings-app\n color=\"brand\"\n size=\"medium\"\n ></tenable-settings-app>\n </tenable-floating-button>\n <slot></slot>\n </tenable-popover>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-settings-action': SettingsAction\n }\n}\n","import type { ReactiveController } from 'lit'\nimport type { MobxLitElement } from '@/libs/MobxLitElement'\nimport { TenablePopoverEvents } from '../PopOver/PopOverEvent'\n\nexport interface PopoverStateHost extends MobxLitElement {\n popoverOpen: string | boolean | null\n}\n\ntype PopoverCallback = (event: TenablePopoverEvents) => void\n\ntype ConstructorArgs = {\n anchorCallback?: PopoverCallback\n closeOnAnchorClicked?: boolean\n closeOnDialogClicked?: boolean\n hasMultiplePopovers?: boolean\n dialogCallback?: PopoverCallback\n}\n\n// Adds listeners to Handle popover and document click events by toggling the host's popoverOpen state\nexport class PopoverStateController implements ReactiveController {\n // Indicates if the popover should be closed if the anchor is clicked\n // For example, dropdown components should close if the anchor is clicked again but a select component should not.\n closeOnAnchorClicked\n\n // Indicates if the popover should be closed if the dialog is clicked\n // For example, simple menu-items should close the dialog on click, but an interactive form should not close on clicks.\n closeOnDialogClicked\n\n // Indicates if the controller is maintaining multiple popovers or not\n hasMultiplePopovers: boolean\n\n // The host web component\n host: PopoverStateHost\n\n // A list of popovers currently in the DOM scope of the host. It's used to determine if a click event originated from within\n // a popover or not\n popoverList: HTMLElement[] | null = null\n\n // A reference to the popover trigger clicked callback passed to the controller\n popoverAnchorClickedCallback?: PopoverCallback\n\n // A reference to the popover dialog clicked callback passed to the controller\n popoverDialogClickedCallback?: PopoverCallback\n\n // Internal reference to the previous popover open reference. It's used to determine if the popover open state changed\n prevPopoverOpen: string | boolean | null\n\n constructor(host: PopoverStateHost, options: ConstructorArgs = {}) {\n const {\n anchorCallback,\n closeOnAnchorClicked = true,\n closeOnDialogClicked = true,\n hasMultiplePopovers = false,\n dialogCallback\n } = options\n\n this.host = host\n this.closeOnAnchorClicked = closeOnAnchorClicked\n this.closeOnDialogClicked = closeOnDialogClicked\n this.hasMultiplePopovers = hasMultiplePopovers\n\n // Store references to the popover click callbacks and bind them to the host scope\n this.popoverAnchorClickedCallback = anchorCallback?.bind(host)\n this.popoverDialogClickedCallback = dialogCallback?.bind(host)\n\n this.prevPopoverOpen = host.popoverOpen\n\n this.host.addController(this)\n }\n\n hostConnected() {\n // Bind listeners to the controller's scope\n this.handleDocumentEvent = this.handleDocumentEvent.bind(this)\n this.handlePopoverAnchorClicked = this.handlePopoverAnchorClicked.bind(this)\n this.handlePopoverDialogClicked = this.handlePopoverDialogClicked.bind(this)\n\n // Listen for popover events\n this.host.addEventListener(\n TenablePopoverEvents.TENABLE_POPOVER_ANCHOR_CLICKED,\n evt => this.handlePopoverAnchorClicked(evt as TenablePopoverEvents)\n )\n\n this.host.addEventListener(\n TenablePopoverEvents.TENABLE_POPOVER_DIALOG_CLICKED,\n evt => this.handlePopoverDialogClicked(evt as TenablePopoverEvents)\n )\n }\n\n hostDisconnected() {\n // Remove listeners for popover events\n this.host.removeEventListener(\n TenablePopoverEvents.TENABLE_POPOVER_ANCHOR_CLICKED,\n evt => this.handlePopoverAnchorClicked(evt as TenablePopoverEvents)\n )\n\n this.host.removeEventListener(\n TenablePopoverEvents.TENABLE_POPOVER_DIALOG_CLICKED,\n evt => this.handlePopoverDialogClicked(evt as TenablePopoverEvents)\n )\n\n // Remove any document listeners that might be open and looking for mouse events\n this.removeOpenListeners()\n }\n\n hostUpdated() {\n // If the popover open state did not change, do nothing\n if (this.host.popoverOpen === this.prevPopoverOpen) {\n return\n }\n\n // If the popover is open, add the open listeners; otherwise remove them\n if (this.host.popoverOpen) {\n this.addOpenListeners()\n } else {\n this.removeOpenListeners()\n }\n\n // Store the previous state\n this.prevPopoverOpen = this.host.popoverOpen\n }\n\n setCloseOnAnchorClicked(newValue: boolean) {\n this.closeOnAnchorClicked = newValue\n }\n\n setCloseOnDialogClicked(newValue: boolean) {\n this.closeOnDialogClicked = newValue\n }\n\n // Adds listeners when the popover is open\n addOpenListeners() {\n // Listen for mouse events outside the popover\n document.addEventListener('mousedown', this.handleDocumentEvent)\n document.addEventListener('keydown', this.handleDocumentEvent)\n\n // Store a reference to all the popovers under the host scope so we can determine if mouse events originated\n // within a popover or not\n const popovers: NodeListOf<HTMLElement> | null =\n this.host?.shadowRoot &&\n this.host.shadowRoot.querySelectorAll('tenable-popover')\n if (popovers) {\n this.popoverList = Array.from(popovers)\n }\n }\n\n // Removes listeners that were added when the popover was open\n removeOpenListeners() {\n document.removeEventListener('mousedown', this.handleDocumentEvent)\n document.removeEventListener('keydown', this.handleDocumentEvent)\n\n this.popoverList = null\n }\n\n // Handles document mouse down events\n handleDocumentEvent(event: Event) {\n const path = event.composedPath() as HTMLElement[]\n\n // Ignore mouse events that happen with the popover triggers or content\n if (!path.some(elm => this.popoverList?.includes(elm))) {\n this.host.popoverOpen = this.hasMultiplePopovers ? null : false\n this.removeOpenListeners()\n }\n }\n\n // Handles popover anchor click events\n handlePopoverAnchorClicked(event: TenablePopoverEvents) {\n const { popoverId, isOpen } = event.payload.detail\n\n const newValue = this.hasMultiplePopovers ? popoverId : Boolean(popoverId)\n const clearValue = this.hasMultiplePopovers ? null : false\n\n // If the dialog is to be closed but configured to not close on anchor click, ignore the click event\n if (!isOpen && !this.closeOnAnchorClicked) {\n return true\n }\n\n // Set the popoverOpen state to the id of the opened popover, if the popover was opened\n // Otherwise set it to null\n this.host.popoverOpen = isOpen ? newValue : clearValue\n\n // Run the callback, if it exists\n this.popoverAnchorClickedCallback?.(event)\n }\n\n // Handles popover dialog click events\n handlePopoverDialogClicked(event: TenablePopoverEvents) {\n if (this.closeOnDialogClicked) {\n // Clear the popoverOver state\n this.host.popoverOpen = this.hasMultiplePopovers ? null : false\n\n // Run the callback, if it exists\n this.popoverDialogClickedCallback?.(event)\n }\n }\n}\n","import { css } from 'lit'\n\nexport const settingsPanelStyles = css`\n .tenable-universal-header-settings-panel-divider {\n height: 1px;\n background-color: var(--tenb-colors-border-interactive);\n border: none;\n margin: 0;\n }\n\n tenable-universal-header-action-panel::part(base) {\n width: 350px;\n }\n`\n","import { ensureArray } from '@productive-codebases/toolbox'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport type { SettingsLabelType } from '@/libs/i18n'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport type { HtmlString, MenuItem } from '@/types/tul'\nimport { GlobalHeaderPanels } from '@/types/tul'\nimport { renderIconAsString } from '../../utils/renderer'\nimport type { PopoverStateHost } from '../PopOver/PopOverStateController'\nimport { PopoverStateController } from '../PopOver/PopOverStateController'\nimport type { KeyDownValues } from '../UniversalNavigation/UniversalNavigation'\nimport { settingsPanelStyles } from './styles'\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart panel-header - The panel header wrapper\n * @csspart panel-header-title - The panel header title\n * @csspart panel-body - The panel body wrapper\n */\n@customElement('tenable-universal-header-settings-panel')\nexport class SettingsPanel extends MobxLitElement implements PopoverStateHost {\n static styles = [settingsPanelStyles]\n\n @property({ type: Array })\n menuItems: MenuItem[] = []\n\n @property({ type: Array })\n appSpecificItems: MenuItem[] = []\n\n @property({ type: String })\n panelTitle = 'Settings'\n\n // Indicates which menu item is currently selected based on the menu ID. It highlights that menu item in the list.\n @property({ attribute: 'selected-menu-item', reflect: true, type: String })\n selectedMenuItem = ''\n\n @state()\n popoverOpen: string | null = null\n\n popoverStateController: PopoverStateController | null = null\n\n platformSettingsLabel = 'Platform Settings & Information'\n\n appSettingsLabel = 'App Settings'\n\n connectedCallback() {\n super.connectedCallback()\n this.addEventListener('keydown', this.handleKeyDown)\n this.popoverStateController = new PopoverStateController(this, {\n hasMultiplePopovers: true\n })\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n this.removeEventListener('keydown', this.handleKeyDown)\n }\n\n handleKeyDown = (ev: KeyboardEvent) => {\n const code = ev.code as KeyDownValues\n\n if (code === 'Escape') {\n ev.preventDefault()\n\n this.popoverOpen = null\n }\n }\n\n queryMenuItemElements = (elementName: string) => {\n if (this.shadowRoot?.children.length) {\n return Array.from(\n this.shadowRoot.children[0].querySelectorAll(elementName)\n )\n }\n\n return []\n }\n\n renderMenuItemNoSubmenu = (item: MenuItem) => {\n const menuItemId = item?.id?.toLowerCase() || 'unknown'\n const id = `universal-settings-menu-item-${menuItemId}`\n const { language } = this.__getStores().storeLayout\n const translator = this.__translator(language)('Header')('PanelSettings')\n\n return html`\n <tenable-navigation-menu-item\n id=${id}\n part=\"panel-menu-item\"\n item-id=${item.id}\n host=${GlobalHeaderPanels.Settings}\n url=${ifDefined(item.url)}\n label=${translator(item.name as SettingsLabelType) ?? item.name}\n ?selected=${this.selectedMenuItem === item.id}\n .item=${item}\n ?newTab=${item.url?.startsWith('http') === true}\n >\n ${renderIconAsString(item.icon as HtmlString)}\n </tenable-navigation-menu-item>\n `\n }\n\n renderMenuItemWithSubmenu = (item: MenuItem) => {\n const menuItemId = item?.id?.toLowerCase() || 'unknown'\n const id = `universal-settings-menu-item-${menuItemId}`\n const { language } = this.__getStores().storeLayout\n const translator = this.__translator(language)('Header')('PanelSettings')\n\n return html`\n <tenable-popover\n id=\"${id}\"\n label=${translator(item.name as SettingsLabelType) ?? item.name}\n is-fixed\n placement=\"right-start\"\n ?is-open=${this.popoverOpen === id}\n >\n <tenable-navigation-menu-item\n id=\"universal-navigation-menu-item-for-${GlobalHeaderPanels.Settings}-${item.id ||\n 'unknown'}\"\n item-id=${item.id}\n .item=${item}\n host=${GlobalHeaderPanels.Settings}\n ?selected=${this.selectedMenuItem === item.id}\n ?opened=${this.popoverOpen === id}\n .hasChildren=${Number(item.menuItems?.length) > 0}\n slot=\"anchor\"\n label=${translator(item.name as SettingsLabelType) ?? item.name}\n >\n ${renderIconAsString(item.icon as HtmlString)}\n </tenable-navigation-menu-item>\n <tenable-universal-navigation-menu-submenu\n .menuItems=${ensureArray(item.menuItems)}\n item-id=${item.id}\n host=${GlobalHeaderPanels.Settings}\n >\n </tenable-universal-navigation-menu-submenu>\n </tenable-popover>\n `\n }\n\n renderMenuItem = (item: MenuItem) => {\n return item.menuItems?.length\n ? this.renderMenuItemWithSubmenu(item)\n : this.renderMenuItemNoSubmenu(item)\n }\n\n render() {\n const { storeRoot } = this.__getStores()\n const hasAccessToPlatformSettings =\n storeRoot.stores.storeAuthentication.session\n ?.hasAccessToPlatformSettings && Number(this.menuItems?.length) > 0\n const hasAppSettings = Number(this.appSpecificItems?.length) > 0\n const hasBothSettings = hasAccessToPlatformSettings && hasAppSettings\n const noSettings =\n hasAccessToPlatformSettings === false && hasAppSettings === false\n const { language } = this.__getStores().storeLayout\n const translator = this.__translator(language)('Header')('PanelSettings')\n\n if (noSettings) {\n return ''\n }\n\n const filterRbacMenuItems = this.menuItems?.filter(item => {\n if (!item.rbac || !storeRoot.stores.storeAuthentication.session) {\n return false\n }\n\n return item.rbac(storeRoot.stores.storeAuthentication.session)\n })\n\n return html`\n <tenable-universal-header-action-panel part=\"base\">\n <tenable-universal-header-action-panel-header part=\"panel-header\">\n <tenable-heading3 part=\"panel-header-title\"\n >${translator(this.panelTitle as SettingsLabelType) ??\n this.panelTitle}</tenable-heading3\n >\n </tenable-universal-header-action-panel-header>\n <tenable-universal-header-action-panel-body part=\"panel-body\">\n ${hasAccessToPlatformSettings\n ? html`\n ${filterRbacMenuItems &&\n repeat(\n filterRbacMenuItems,\n item => item.name,\n item => this.renderMenuItem(item)\n )}\n `\n : ''}\n ${hasBothSettings\n ? html`\n <hr class=\"tenable-universal-header-settings-panel-divider\" />\n `\n : ''}\n ${hasAppSettings\n ? html`\n ${this.appSpecificItems &&\n repeat(\n this.appSpecificItems,\n item => item.name,\n item => this.renderMenuItem(item)\n )}\n `\n : ''}\n </tenable-universal-header-action-panel-body>\n </tenable-universal-header-action-panel>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-settings-panel': SettingsPanel\n }\n}\n","import { TenableBaseEvent } from '../BaseEvent'\n\nexport class TenableToggleSwitchEvents extends TenableBaseEvent<unknown> {\n static TOGGLE_SWITCH_CHANGED = 'tenable-universal-header-toggle-switch-change'\n}\n","import { css } from 'lit'\n\nexport const toggleSwitchStyles = css`\n :host {\n display: inline-block;\n width: fit-content;\n }\n\n .tenable-toggle-switch__root {\n flex: 1 1 auto;\n width: 100%;\n margin-bottom: 8px;\n margin-right: 8px;\n }\n\n /* Toggle Slider */\n\n .tenable-toggle-switch__switch {\n position: relative;\n display: inline-block;\n width: 40px;\n height: 20px;\n }\n\n .tenable-toggle-switch__switch input {\n opacity: 0;\n width: 0;\n height: 0;\n }\n\n .tenable-toggle-switch__slider {\n position: absolute;\n cursor: pointer;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n background-color: var(--tenb-colors-background-toggle-off-idle);\n -webkit-transition: 0.4s;\n transition: 0.4s;\n }\n\n .tenable-toggle-switch__slider:hover {\n background-color: var(--tenb-colors-background-toggle-off-hover);\n }\n\n .tenable-toggle-switch__checkbox:disabled + .tenb-toggle-switch__slider {\n background-color: var(--tenb-colors-background-toggle-off-disabled);\n cursor: default;\n }\n\n .tenable-toggle-switch__slider:before {\n position: absolute;\n content: '';\n height: 16px;\n width: 16px;\n left: 2px;\n bottom: 2px;\n background-color: var(--tenb-colors-white);\n -webkit-transition: 0.4s;\n transition: 0.4s;\n }\n\n /* Checkbox */\n\n .tenable-toggle-switch__checkbox:checked + .tenable-toggle-switch__slider {\n background-color: var(--tenb-colors-background-toggle-on-idle);\n }\n\n .tenable-toggle-switch__checkbox:checked\n + .tenable-toggle-switch__slider:hover {\n background-color: var(--tenb-colors-background-toggle-on-hover);\n }\n\n .tenable-toggle-switch__checkbox[disabled]:checked\n + .tenable-toggle-switch__slider {\n background-color: var(--tenb-colors-background-toggle-on-disabled);\n }\n\n .tenable-toggle-switch__checkbox:checked\n + .tenable-toggle-switch__slider:before {\n -webkit-transform: translateX(20px);\n -ms-transform: translateX(20px);\n transform: translateX(20px);\n }\n\n /* Focus (keyboard only) */\n .tenable-toggle-switch__checkbox:focus-visible\n + .tenable-toggle-switch__slider {\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 2px;\n }\n\n /* Rounded sliders */\n .tenable-toggle-switch__slider.tenable-toggle-switch__slider-round {\n border-radius: 100px;\n }\n\n .tenable-toggle-switch__slider.tenable-toggle-switch__slider-round:before {\n border-radius: 50%;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport { TulEvent } from '@/types/tul'\nimport type { ITulEventToggleSwitchOnClick } from '@/types/tul'\nimport { uuid } from '../../utils/uuid'\nimport { TenableToggleSwitchEvents } from '../Header/ToggleSwitchEvent'\nimport { toggleSwitchStyles } from './styles'\n\n/**\n * @csspart base - The component's internal wrapper.\n * @csspart input - The semantically correct HTML input type of checkbox element (hidden behind the pseudo-toggle)\n *\n * @event {TenableToggleSwitchEvents} tenable-universal-header-toggle-switch-change - Dispatched after the value changes from toggle-switch being clicked. Providing the new value of the toggle in the event payload.\n */\n@customElement('tenable-toggle-switch')\nexport class ToggleSwitch extends MobxLitElement {\n static styles = [toggleSwitchStyles]\n\n @property()\n id = `${uuid()}`\n\n /** Toggle switch active state */\n @property({ type: Boolean, reflect: true })\n checked = false\n\n /** Disables the toggle switch. */\n @property({ type: Boolean, reflect: true })\n disabled = false\n\n connectedCallback() {\n super.connectedCallback()\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n }\n\n onClickHandler = (ev: PointerEvent) => {\n ev.stopImmediatePropagation()\n\n const newValue = !this.checked\n\n this.checked = newValue\n\n const payload = { value: newValue }\n const options: CustomEventInit = {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n const menuEvent = new TenableToggleSwitchEvents(\n TenableToggleSwitchEvents.TOGGLE_SWITCH_CHANGED,\n payload,\n options\n )\n\n const { storeRoot, storeTelemetry } = this.__getStores()\n\n const tulEvent: ITulEventToggleSwitchOnClick = {\n eventName: TulEvent.onTulEventToggleSwitchClick,\n detail: {\n nativeEvent: ev,\n tulApi: storeRoot.tulApi,\n checked: this.checked\n }\n }\n\n this.__dispatchTulEvent(tulEvent)\n\n storeRoot.environment.config.app.handlers?.onTulToggleSwitchClick?.({\n tulEvent\n })\n\n storeTelemetry.trackTelemetry(EventType.DarkModeClicked)\n\n this.dispatchEvent(menuEvent)\n }\n\n render() {\n return html`\n <div part=\"base\" class=\"tenable-toggle-switch__root\">\n <label class=\"tenable-toggle-switch__switch\">\n <input\n part=\"input\"\n class=\"tenable-toggle-switch__checkbox\"\n type=\"checkbox\"\n id=\"tenable-toggle-switch-${this.id}\"\n ?disabled=${this.disabled}\n ?checked=${this.checked}\n @click=${this.onClickHandler}\n />\n <span\n class=\"tenable-toggle-switch__slider tenable-toggle-switch__slider-round\"\n ></span>\n </label>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-toggle-switch': ToggleSwitch\n }\n}\n","import { css } from 'lit'\n\nexport const tooltipStyles = css`\n :host {\n display: contents;\n }\n\n .tenable-tooltip-root {\n display: contents;\n }\n\n .tenable-tooltip-overlay {\n background-color: var(--tenb-colors-background-component);\n border: 1px solid transparent;\n border-radius: 3px;\n color: var(--tenb-colors-text-body);\n\n display: flex;\n justify-content: center;\n align-items: center;\n min-height: 16px;\n /* Need a minimum width to prevent arrow mis-alignment for short text length */\n min-width: 24px;\n padding: 8px 12px;\n pointer-events: none;\n position: absolute;\n z-index: var(--tenb-zIndices-tooltip);\n\n filter: drop-shadow(0px 1px 10px var(--tenb-colors-shadow-25));\n }\n\n .tenable-tooltip-overlay_fixed {\n position: fixed;\n }\n\n .tenable-tooltip-arrow {\n background-color: var(--tenb-colors-background-component);\n border: 1px solid transparent;\n position: absolute;\n /* Arrow is created by making a square and rotating so that only one corner is visible */\n /* The proper positioning of the arrow is set in _computePosition() in tenb-tooltip.ts */\n transform: rotate(45deg);\n width: 12px;\n height: 12px;\n }\n\n .tenable-tooltip-arrow_hidden {\n display: none;\n }\n\n [hidden] {\n display: none !important;\n }\n`\n","import type {\n Placement as PlacementType,\n ReferenceElement\n} from '@floating-ui/dom'\nimport {\n arrow,\n autoUpdate,\n computePosition,\n flip,\n offset,\n shift\n} from '@floating-ui/dom'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { tooltipStyles } from './styles'\n\n// These options are based on @floating-iu/dom \"Placement\" type\n// recreated here as a list since the pkg only exports them as a type\nexport const placementOptions: PlacementType[] = [\n 'top',\n 'top-start',\n 'top-end',\n 'right',\n 'right-start',\n 'right-end',\n 'bottom',\n 'bottom-start',\n 'bottom-end',\n 'left',\n 'left-start',\n 'left-end'\n]\n\nexport type Placement = (typeof placementOptions)[number]\n\n/**\n * @slot Default - Use to add child content.\n * @slot text - Place custom elements in the content of the tooltip overlay.\n *\n * @csspart base - The component's internal wrapper.\n * @csspart overlay - The tooltip's floating container, containing the text and arrow.\n * @csspart arrow - The tooltip's arrow.\n */\n@customElement('tenable-tooltip')\nexport class Tooltip extends MobxLitElement {\n static styles = [tooltipStyles]\n\n @property({ reflect: true })\n placement: Placement = 'top'\n\n @property({ reflect: true })\n type: 'hover' | 'click' = 'hover'\n\n @property({ type: Boolean, reflect: true })\n fixed = false\n\n // Allows customization of the distance from tooltip to content\n @property({ type: Number })\n offset = 0\n\n // Needed by Universal-Navigation to hide the tooltip when side-nav is expanded\n @property({ attribute: 'force-hide', type: Boolean, reflect: true })\n forceHide = false\n\n @property({ attribute: 'hide-arrow', type: Boolean, reflect: true })\n hideArrow = false\n\n @property()\n text = ''\n\n @state()\n hidden = true\n\n private _getTooltipTrigger = () => {\n const defaultSlot = this.shadowRoot?.querySelector(\n 'slot:not([name])'\n ) as HTMLSlotElement\n const triggerElement = defaultSlot.assignedElements()[0]\n\n return triggerElement as ReferenceElement\n }\n\n private _getTooltipOverlay = () => {\n return this.shadowRoot?.querySelector(\n '.tenable-tooltip-overlay'\n ) as HTMLElement\n }\n\n private _getTooltipArrow = () => {\n return this.shadowRoot?.querySelector(\n '.tenable-tooltip-arrow'\n ) as HTMLElement\n }\n\n private _setArrowPosition = (\n tooltipArrow: HTMLElement,\n arrowLen: number,\n x: number | undefined,\n y: number | undefined\n ) => {\n tooltipArrow.style.left = x != null ? `${x}px` : ''\n tooltipArrow.style.top = y != null ? `${y}px` : ''\n // Ensure the static side gets unset when flipping to other placements' axes.\n tooltipArrow.style.right = ''\n tooltipArrow.style.bottom = ''\n\n const side = this.placement.split('-')[0]\n\n const staticSide = {\n top: 'bottom' as const,\n right: 'left' as const,\n bottom: 'top' as const,\n left: 'right' as const\n }[side]\n\n // Calculate the proper positioning based off the arrow's size\n if (staticSide) {\n tooltipArrow.style[staticSide] = `${-arrowLen / 2}px`\n }\n }\n\n private _computePosition = () => {\n const tooltipTrigger = this._getTooltipTrigger()\n const tooltipOverlay = this._getTooltipOverlay()\n const tooltipArrow = this._getTooltipArrow()\n\n if (tooltipTrigger && tooltipOverlay) {\n const arrowLen = tooltipArrow.offsetWidth\n\n // Get half the arrow box's hypotenuse length\n let arrowOffset = Math.sqrt(2 * arrowLen ** 2) / 2\n if (this.hideArrow) {\n arrowOffset = 0\n }\n const totalOffset = arrowOffset + this.offset\n\n computePosition(tooltipTrigger, tooltipOverlay, {\n placement: this.placement,\n middleware: [\n offset(totalOffset),\n flip({\n // allows shift() to preserve the original axis as best as possible\n crossAxis: false\n }),\n shift(),\n arrow({\n element: tooltipArrow,\n // prevent arrow from aligning with or overflowing the corners of the overlay\n // overflow could occur due to small tooltip content and/or overlay border-radius\n padding: 8\n })\n ]\n }).then(({ middlewareData, x, y }) => {\n tooltipOverlay.style.left = `${x}px`\n tooltipOverlay.style.top = `${y}px`\n\n if (middlewareData.arrow) {\n this._setArrowPosition(\n tooltipArrow,\n arrowLen,\n middlewareData.arrow.x,\n middlewareData.arrow.y\n )\n }\n })\n }\n }\n\n showTooltip = () => {\n if (!this.forceHide) {\n this.hidden = false\n }\n }\n\n hideTooltip = () => {\n this.hidden = true\n }\n\n handleClick = () => {\n if (this.type === 'click') {\n this.hidden ? this.showTooltip() : this.hideTooltip()\n }\n }\n\n handleMouseOver = () => {\n if (this.type === 'hover') {\n this.showTooltip()\n }\n }\n\n handleMouseOut = () => {\n if (this.type === 'hover') {\n this.hideTooltip()\n }\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n this.addEventListener('click', this.handleClick)\n this.addEventListener('mouseover', this.handleMouseOver)\n this.addEventListener('mouseout', this.handleMouseOut)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n this.removeEventListener('click', this.handleClick)\n this.removeEventListener('mouseover', this.handleMouseOver)\n this.removeEventListener('mouseout', this.handleMouseOut)\n }\n\n firstUpdated() {\n autoUpdate(\n this._getTooltipTrigger(),\n this._getTooltipOverlay(),\n this._computePosition\n )\n }\n\n render() {\n return html`\n <div class=\"tenable-tooltip-root\" part=\"base\" role=\"tooltip\">\n <div\n class=${classMap({\n 'tenable-tooltip-overlay': true,\n 'tenable-tooltip-overlay_fixed': this.fixed\n })}\n part=\"overlay\"\n ?hidden=${this.hidden || this.forceHide}\n >\n <span\n part=\"arrow\"\n class=${classMap({\n 'tenable-tooltip-arrow': true,\n [`tenable-tooltip-arrow_placement-${this.placement}`]: true,\n 'tenable-tooltip-arrow_hidden': this.hideArrow\n })}\n ></span>\n <slot name=\"text\">\n <!-- prettier-ignore -- Ensure there is no whitespace added inside the <tenable-text> children -->\n <tenable-text>${this.text}</tenable-text>\n </slot>\n </div>\n <slot></slot>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-tooltip': Tooltip\n }\n}\n","import { html, css } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\n\n/**\n * @slot Default - Use to add child content. Usually text.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-heading3')\nexport class Heading3 extends MobxLitElement {\n static styles = css`\n h3 {\n color: var(--tenb-colors-text-brand);\n font-family: var(--tenb-fonts-brand-medium);\n font-size: var(--tenb-fontSizes-18);\n font-weight: 500;\n line-height: var(--tenb-fontSizes-22);\n margin-bottom: 0;\n margin-top: 0;\n }\n\n .alt {\n color: var(--tenb-colors-text-inverse);\n }\n `\n\n @property()\n color = ''\n\n render() {\n const classes = {\n [this.color]: true\n }\n\n return html`\n <h3 part=\"base\" class=${classMap(classes)}>\n <slot></slot>\n </h3>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-heading3': Heading3\n }\n}\n","import { html, css } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { componentStyles } from '../BaseStyles'\n\n/**\n * @slot Default - Use to add child content. Usually text.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-small-text')\nexport class SmallText extends MobxLitElement {\n static styles = css`\n ${componentStyles}\n\n /* Note: Any future changes here need to be reflected in floating-text-button styles */\n .tenb-small-text__root {\n color: var(--tenb-colors-text-body);\n font-family: var(--tenb-fonts-base);\n font-size: var(--tenb-fontSizes-12);\n font-weight: 400;\n line-height: 14px;\n margin-bottom: 0;\n margin-top: 0;\n white-space: pre-wrap;\n word-break: normal;\n }\n\n .bold {\n font-weight: 700;\n }\n `\n\n @property({ type: String })\n color = 'body'\n\n @property({ type: Boolean })\n bold = false\n\n render() {\n const classes = {\n 'tenb-small-text__root': true,\n bold: this.bold,\n [this.color]: true\n }\n\n return html`\n <!-- prettier-ignore -- Ensure there is no whitespace added inside the <p> children -->\n <p part=\"base\" class=${classMap(classes)}><slot></slot></p>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-small-text': SmallText\n }\n}\n","import { html, css } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { componentStyles } from '../BaseStyles'\n\n/**\n * @slot Default - Use to add child content. Usually text.\n *\n * @csspart base - The component's internal wrapper.\n */\n@customElement('tenable-text')\nexport class Text extends MobxLitElement {\n static styles = css`\n ${componentStyles}\n\n /* Note: Any future changes here need to be reflected in floating-text-button styles */\n /* white-space changing this to no wrap from pre-wrap as this is cramping */\n .tenable-text__root {\n color: var(--tenb-colors-text-body);\n font-family: var(--tenb-fonts-base);\n font-size: var(--tenb-fontSizes-14);\n font-weight: 400;\n line-height: 20px;\n margin-bottom: 0;\n margin-top: 0;\n white-space: nowrap;\n word-break: normal;\n }\n\n .bold {\n font-weight: 700;\n }\n `\n\n @property()\n color = 'body'\n\n @property({ type: Boolean })\n bold = false\n\n render() {\n const classes = {\n 'tenable-text__root': true,\n bold: this.bold,\n [this.color]: true\n }\n\n return html`\n <!-- prettier-ignore -- Ensure there is no whitespace added inside the <p> children -->\n <p part=\"base\" class=${classMap(classes)}><slot></slot></p>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-text': Text\n }\n}\n","import { css } from 'lit'\n\nexport const universalNavigationStyles = css`\n :host {\n display: grid;\n grid-template-columns: 1fr;\n grid-template-rows: 1fr;\n gap: 0px 0px;\n position: absolute;\n top: 0;\n z-index: var(--tenb-zIndices-universal-navigation);\n }\n\n .tenable-universal-navigation-root {\n background-color: var(--tenb-colors-background-component);\n box-shadow: 0px 15px 30px -2px rgba(0, 0, 0, 0);\n box-sizing: border-box;\n border-right: 1px solid var(--tenb-colors-border-base);\n color: var(--tenb-colors-text-body);\n height: calc(100vh - var(--tenb-navigation-top-offset, 64px));\n width: 56px;\n\n position: absolute;\n top: var(--tenb-navigation-top-offset, 64px);\n left: 0px;\n bottom: 0px;\n overflow-y: auto;\n overflow-x: clip;\n\n scrollbar-width: none;\n\n transition:\n width 0.3s ease-in,\n box-shadow 0.3s ease-in;\n }\n\n /* Scrollbar support for Safari TODO: Remove when Safari supports scrollbar-width */\n .tenable-universal-navigation-root::-webkit-scrollbar {\n width: 0;\n }\n\n .tenable-universal-navigation-root_expanded {\n width: 300px;\n box-shadow: 0px 15px 30px -2px rgba(0, 0, 0, 0.25);\n\n scrollbar-width: thin;\n }\n\n /* Scrollbar support for Safari TODO: Remove when Safari supports scrollbar-width */\n .tenable-universal-navigation-root_expanded::-webkit-scrollbar {\n width: 10px;\n }\n .tenable-universal-navigation-root_expanded::-webkit-scrollbar-track {\n background-color: var(--tenb-colors-background-container);\n }\n .tenable-universal-navigation-root_expanded::-webkit-scrollbar-thumb {\n background-color: var(--tenb-colors-background-hover-alt);\n border: 2px solid var(--tenb-colors-background-container);\n border-radius: 9999px;\n }\n\n .tenable-universal-navigation-root_scroll-indicator {\n position: fixed;\n left: 0px;\n width: 55px;\n height: 16px;\n z-index: var(--tenb-zIndices-universal-navigation);\n\n display: flex;\n align-items: center;\n justify-content: center;\n background: var(--tenb-colors-background-container);\n opacity: 1;\n\n transition:\n width 0.3s ease-in,\n opacity 0.3s ease-in;\n }\n\n .tenable-universal-navigation-root_scroll-indicator_expanded {\n opacity: 0;\n width: 300px;\n }\n\n .tenable-universal-navigation-root_scroll-indicator_hidden {\n opacity: 0;\n }\n\n .tenable-universal-navigation-root_scroll-indicator_top {\n top: var(--tenb-navigation-top-offset, 64px);\n }\n\n .tenable-universal-navigation-root_scroll-indicator_top\n > tenable-chevron-down {\n transform: rotate(180deg);\n }\n\n .tenable-universal-navigation-root_scroll-indicator_bottom {\n bottom: 0px;\n }\n\n tenable-popover::part(anchor) {\n display: block;\n }\n`\n","import type { Maybe } from '@productive-codebases/toolbox'\nimport { ensureArray } from '@productive-codebases/toolbox'\nimport { html } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { GlobalHeaderPanels } from '@/types/tul'\nimport type { HtmlString, MenuItem, NavigationConfig } from '@/types/tul'\nimport { NavigationMenuKeyboardController } from '../../controller/NavigationMenuKeyboardController'\nimport { renderIconAsString } from '../../utils/renderer'\nimport { NavigationEvent } from '../Header/NavigationEvent'\nimport type { TenablePopoverEvents } from '../PopOver/PopOverEvent'\nimport type { PopoverStateHost } from '../PopOver/PopOverStateController'\nimport { PopoverStateController } from '../PopOver/PopOverStateController'\nimport { universalNavigationStyles } from './styles'\n\nexport type KeyDownValues = 'Escape'\n\nconst SCROLL_INDICATOR_THRESHOLD = 16\n\n/**\n * @csspart base - The component's internal wrapper.\n *\n * @event {NavigationEvent} pds-universal-navigation-menu-collapsed - Dispatched when the menu is collapsed.\n * @event {NavigationEvent} pds-universal-navigation-popover-opened - Dispatched when one of the navigation menu's popover is opened.\n */\n@customElement('tenable-universal-navigation')\nexport class UniversalNavigation\n extends MobxLitElement\n implements PopoverStateHost\n{\n static styles = [universalNavigationStyles]\n\n @property({ type: Boolean })\n isClosed = true\n\n @property({ type: Array })\n menuItems: MenuItem[] = []\n\n @property({ type: Object })\n navigationConfig: Maybe<NavigationConfig> = null\n\n // Indicates which menu item is currently selected based on the menu ID. It highlights that menu item in the list.\n @property({ attribute: 'selected-menu-item', reflect: true, type: String })\n selectedMenuItem = ''\n\n @state()\n popoverOpen: Maybe<string> = null\n\n // Prevents Tooltip from being visible while closing animation is still occurring\n @state()\n isPanelVisible = false\n\n @state()\n isOverflowing = false\n\n @state()\n showTopScrollIndicator = false\n\n @state()\n showBottomScrollIndicator = false\n\n popoverStateController: PopoverStateController | null = null\n\n private _menuKeyboardController: NavigationMenuKeyboardController | null =\n null\n\n handleKeyDown = (ev: KeyboardEvent) => {\n const code = ev.code as KeyDownValues\n\n if (code === 'Escape') {\n ev.preventDefault()\n\n this.isClosed = true\n this.popoverOpen = null\n\n const payload = {}\n const options: CustomEventInit = { bubbles: true, composed: true }\n\n const navigationCollapsedEvent = new NavigationEvent(\n NavigationEvent.UNIVERSAL_NAVIGATION_MENU_COLLAPSED,\n payload,\n options\n )\n\n this.dispatchEvent(navigationCollapsedEvent)\n }\n }\n\n connectedCallback() {\n super.connectedCallback()\n\n document.addEventListener(\n NavigationEvent.UNIVERSAL_NAVIGATION_BUTTON_CLICKED,\n this.onNavigationButtonClicked\n )\n\n this.popoverStateController = new PopoverStateController(this, {\n hasMultiplePopovers: true\n })\n\n this._menuKeyboardController = new NavigationMenuKeyboardController(this)\n document.addEventListener('closeUniversalNavigation', this.closeMenu)\n /**\n * @todo Comment this if we don't want to toggle sidebar on document click\n */\n document.addEventListener('click', this.closeMenu)\n\n this.addEventListener('keydown', this.handleKeyDown)\n }\n\n disconnectedCallback() {\n super.disconnectedCallback()\n\n document.removeEventListener(\n NavigationEvent.UNIVERSAL_NAVIGATION_BUTTON_CLICKED,\n this.onNavigationButtonClicked\n )\n document.removeEventListener('closeUniversalNavigation', this.closeMenu)\n /**\n * @todo Comment this if we don't want to toggle sidebar on document click\n */\n document.removeEventListener('click', this.closeMenu)\n\n this.removeEventListener('keydown', this.handleKeyDown)\n }\n\n handleTransitionStart = () => {\n if (!this.isPanelVisible) {\n this.isPanelVisible = true\n }\n }\n\n handleTransitionEnd = () => {\n if (this.isClosed) {\n this.isPanelVisible = false\n }\n }\n\n firstUpdated() {\n const animation = this.shadowRoot?.querySelector(\n '.tenable-universal-navigation-root'\n )\n\n animation?.addEventListener('transitionstart', this.handleTransitionStart)\n animation?.addEventListener('transitionend', this.handleTransitionEnd)\n\n // Setup event listeners required for handling overflow scroll indicators.\n const basePart = this.shadowRoot?.children[0]\n window?.addEventListener('resize', () => {\n this.setOverflow()\n this.setScrollIndicatorStates()\n })\n basePart?.addEventListener('scroll', () => this.setScrollIndicatorStates())\n }\n\n setOverflow() {\n const basePart = this.shadowRoot?.children[0]\n if (basePart) {\n this.isOverflowing = basePart.scrollHeight > basePart.clientHeight\n }\n }\n\n setScrollIndicatorStates() {\n const basePart = this.shadowRoot?.children[0]\n if (basePart) {\n this.showTopScrollIndicator =\n this.isOverflowing && basePart.scrollTop > SCROLL_INDICATOR_THRESHOLD\n\n this.showBottomScrollIndicator =\n this.isOverflowing &&\n !(\n basePart.scrollHeight - basePart.scrollTop <\n basePart.clientHeight + SCROLL_INDICATOR_THRESHOLD\n )\n }\n }\n\n queryMenuItemElements = (elementName: string) => {\n if (this.shadowRoot?.children.length) {\n return Array.from(\n this.shadowRoot.children[0].querySelectorAll(elementName)\n )\n }\n\n return []\n }\n\n updated() {\n this._menuKeyboardController?.initMenuItems(\n this.queryMenuItemElements(\n 'tenable-navigation-menu-item'\n ) as HTMLElement[]\n )\n\n // Set initial overflow/scroll indicator states.\n this.setOverflow()\n this.setScrollIndicatorStates()\n }\n\n closeMenu = (event: Event) => {\n const isNavigationButton = event\n .composedPath()\n .some(node =>\n 'id' in node ? (node as HTMLElement).id === 'navigation-button' : false\n )\n\n if (!isNavigationButton) {\n this.isClosed = true\n this.popoverOpen = null\n }\n }\n\n onNavigationButtonClicked = () => {\n this.isClosed = !this.isClosed\n this.popoverOpen = null\n // Reset selected item when user closes the menu\n if (this._menuKeyboardController) {\n this._menuKeyboardController.selected = 0\n }\n }\n\n onPopoverTriggerClicked = (event: TenablePopoverEvents) => {\n const {\n detail: { isOpen, popoverId }\n } = event.payload\n\n if (!isOpen) {\n return\n }\n\n const clickedMenuItem = this.shadowRoot?.querySelector(\n `tenable-popover#${popoverId}`\n )\n\n if (clickedMenuItem) {\n const options: CustomEventInit = {\n detail: { hostClicked: clickedMenuItem },\n bubbles: true,\n composed: true\n }\n const NavItemPopoverEvent = new CustomEvent(\n NavigationEvent.UNIVERSAL_NAVIGATION_POPOVER_OPENED,\n options\n )\n document.dispatchEvent(NavItemPopoverEvent)\n }\n }\n\n renderMenuItemNoSubmenu = (item: MenuItem) => {\n return html`\n <tenable-tooltip\n .forceHide=${!this.isClosed || this.isPanelVisible}\n fixed\n offset=${-4}\n placement=\"right\"\n text=${item.name}\n >\n <tenable-navigation-menu-item\n id=\"universal-navigation-menu-item-for-${GlobalHeaderPanels.Sidebar}-${item.id}\"\n item-id=${item.id}\n host=${GlobalHeaderPanels.Sidebar}\n url=${ifDefined(item.url)}\n label=${item.name}\n ?selected=${this.selectedMenuItem === item.id}\n .item=${item}\n .labelVisible=${!this.isClosed}\n ?newTab=${item.url?.startsWith('http') === true}\n >\n ${renderIconAsString(item.icon as HtmlString)}\n </tenable-navigation-menu-item>\n </tenable-tooltip>\n `\n }\n\n renderMenuItemWithSubmenu = (item: MenuItem) => {\n const menuItemId = item?.id?.toLowerCase() || 'unknown'\n const id = `universal-navigation-menu-item-${menuItemId}`\n\n return html`\n <tenable-tooltip\n .forceHide=${!this.isClosed || this.isPanelVisible}\n fixed\n offset=${-4}\n placement=\"right\"\n text=${item.name}\n >\n <tenable-popover\n id=\"${id}\"\n label=\"${item.name}\"\n is-fixed\n ?is-open=${this.popoverOpen === id}\n placement=\"right-start\"\n @tenable-popover-anchor-clicked=${this.onPopoverTriggerClicked}\n >\n <tenable-navigation-menu-item\n id=\"universal-navigation-menu-item-for-${GlobalHeaderPanels.Sidebar}-${item.id ||\n 'unknown'}\"\n item-id=${item.id}\n .item=${item}\n host=${GlobalHeaderPanels.Sidebar}\n ?selected=${this.selectedMenuItem === item.id}\n ?opened=${this.popoverOpen === id}\n .labelVisible=${!this.isClosed}\n .hasChildren=${Number(item.menuItems?.length) > 0}\n slot=\"anchor\"\n label=${item.name}\n >\n ${renderIconAsString(item.icon as HtmlString)}\n </tenable-navigation-menu-item>\n ${item.menuItems && item.menuItems.length > 0\n ? html`\n <tenable-universal-navigation-menu-submenu\n .menuItems=${ensureArray(item.menuItems)}\n item-id=${item.id}\n host=${GlobalHeaderPanels.Sidebar}\n >\n </tenable-universal-navigation-menu-submenu>\n `\n : ''}\n </tenable-popover>\n </tenable-tooltip>\n `\n }\n\n renderMenuItem = (item: MenuItem) => {\n if (item && item.menuItems && item.menuItems.length) {\n return this.renderMenuItemWithSubmenu(item)\n } else {\n return this.renderMenuItemNoSubmenu(item)\n }\n }\n\n render() {\n const classes = classMap({\n 'tenable-universal-navigation-root': true,\n 'tenable-universal-navigation-root_expanded': !this.isClosed\n })\n\n const scrollTopClasses = classMap({\n 'tenable-universal-navigation-root_scroll-indicator': true,\n 'tenable-universal-navigation-root_scroll-indicator_top': true,\n 'tenable-universal-navigation-root_scroll-indicator_expanded':\n !this.isClosed,\n 'tenable-universal-navigation-root_scroll-indicator_hidden':\n !this.showTopScrollIndicator\n })\n\n const scrollBottomClasses = classMap({\n 'tenable-universal-navigation-root_scroll-indicator': true,\n 'tenable-universal-navigation-root_scroll-indicator_bottom': true,\n 'tenable-universal-navigation-root_scroll-indicator_expanded':\n !this.isClosed,\n 'tenable-universal-navigation-root_scroll-indicator_hidden':\n !this.showBottomScrollIndicator\n })\n\n return html`\n <div part=\"base\" class=${classes}>\n <div class=${scrollTopClasses}>\n <tenable-chevron-down></tenable-chevron-down>\n </div>\n\n ${this.menuItems &&\n repeat(\n this.menuItems,\n item => item.name,\n item => this.renderMenuItem(item)\n )}\n\n <div class=${scrollBottomClasses}>\n <tenable-chevron-down></tenable-chevron-down>\n </div>\n </div>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-navigation': UniversalNavigation\n }\n}\n","import { html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { uuid } from '../../utils/uuid'\nimport { ActionController } from '../ActionPanel/ActionController'\n\nconst id = 'universal-header-user-action'\nconst uniqueId = `${uuid()}`\nconst popoverId = `${id}-${uniqueId}`\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart trigger - The trigger wrapper\n * @csspart content - The content wrapper\n */\n@customElement('tenable-universal-header-user-action')\nexport class UserAction extends MobxLitElement {\n @query(`#${popoverId}`)\n popover: any\n\n @property()\n avatar = '??'\n\n private _actionController = new ActionController(this)\n\n onPopoverTriggerClicked = () => {\n this._actionController.onPopoverTriggerClicked(this, this.popover)\n }\n\n render() {\n return html`\n <tenable-popover\n part=\"base\"\n id=\"${popoverId}\"\n label=\"Profile Menu\"\n ?is-open=${this._actionController.isMenuOpen}\n @tenable-popover-anchor-clicked=${this.onPopoverTriggerClicked}\n >\n <tenable-avatar\n ?selected=${this._actionController.isMenuOpen}\n .allowSelectedClick=${true}\n id=\"profile-menu-button\"\n slot=\"anchor\"\n part=\"trigger\"\n aria-label=\"Avatar\"\n aria-haspopup=\"true\"\n >\n ${this.avatar?.slice(0, 2)?.toUpperCase()}\n </tenable-avatar>\n <slot></slot>\n </tenable-popover>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-user-action': UserAction\n }\n}\n","import { css, html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { ifDefined } from 'lit/directives/if-defined.js'\nimport { repeat } from 'lit/directives/repeat.js'\nimport type { UserProfileLabelType } from '@/libs/i18n'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { GlobalHeaderPanels } from '@/types/tul'\nimport type { HtmlString, MenuItem } from '@/types/tul'\nimport { renderIconAsString } from '../../utils/renderer'\n\nexport type UserMenuItemsProps = MenuItem[]\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart panel-header - The panel header wrapper\n * @csspart panel-header-title - The panel header title\n * @csspart panel-header-subtitle - The panel header subtitle\n * @csspart panel-body - The panel body wrapper\n */\n@customElement('tenable-universal-header-user-panel')\nexport class UserPanel extends MobxLitElement {\n static styles = [\n css`\n .user-panel-user-name::part(base) {\n overflow: hidden;\n max-width: 200px;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n `\n ]\n\n @property({ type: String })\n panelTitle = 'Title'\n\n @property({ type: String })\n panelSubTitle = 'Sub Title'\n\n @property({ type: Array })\n menuItems: UserMenuItemsProps = []\n\n // Indicates which menu item is currently selected based on the menu ID. It highlights that menu item in the list.\n @property({ attribute: 'selected-menu-item', reflect: true, type: String })\n selectedMenuItem = ''\n\n render() {\n const { language } = this.__getStores().storeLayout\n const translator = this.__translator(language)('Header')('PanelUserProfile')\n\n return html`\n <tenable-universal-header-action-panel part=\"base\">\n <tenable-universal-header-action-panel-header part=\"panel-header\">\n <div class=\"tenable-navigation-menu-header-user\">\n <tenable-heading3\n part=\"panel-header-title\"\n class=\"user-panel-user-name\"\n title=\"${this.panelTitle}\"\n >\n ${this.panelTitle}\n </tenable-heading3>\n <!-- prettier-ignore -- Ensure there is no whitespace added inside the <tenable-small-text> children -->\n <tenable-small-text part=\"panel-header-subtitle\"\n >${this.panelSubTitle}</tenable-small-text\n >\n </div>\n </tenable-universal-header-action-panel-header>\n\n <tenable-universal-header-action-panel-body part=\"panel-body\">\n ${this.menuItems &&\n repeat(\n this.menuItems,\n item => item.name,\n (item: MenuItem) => html`\n <tenable-navigation-menu-item\n part=\"panel-menu-item\"\n host=${GlobalHeaderPanels.UserProfile}\n item-id=${item.id}\n url=${ifDefined(item.url)}\n ?selected=${this.selectedMenuItem === item.id}\n label=${translator(item.name as UserProfileLabelType) ??\n item.name}\n .item=${item}\n ?newTab=${item.url?.startsWith('http') === true}\n >\n ${renderIconAsString(item.icon as HtmlString)}\n </tenable-navigation-menu-item>\n `\n )}\n </tenable-universal-header-action-panel-body>\n </tenable-universal-header-action-panel>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-user-panel': UserPanel\n }\n}\n","import { css } from 'lit'\nimport { componentStyles } from '../BaseStyles'\n\nexport const workspaceCardStyles = css`\n ${componentStyles}\n\n :host(:focus-visible) {\n outline: none;\n }\n\n .workspace-card__root {\n display: flex;\n flex-wrap: nowrap;\n flex-direction: row;\n align-items: center;\n justify-content: flex-start;\n background-color: var(--tenb-colors-background-component);\n border-radius: 8px;\n box-sizing: border-box;\n border: 1px solid var(--tenb-colors-gray-06);\n box-shadow: 0px 1px 4px rgba(0, 0, 0, 0.25);\n color: var(--tenb-colors-text-body);\n cursor: pointer;\n height: 48px;\n min-width: 184px;\n position: relative;\n padding-left: var(--tenb-space-16);\n gap: 0px 8px;\n }\n\n .workspace-card__root.focus-visible {\n outline: var(--tenb-borderWidths-outline) dashed\n var(--tenb-colors-outline-focus);\n outline-offset: 2px;\n }\n\n .workspace-card__root:hover {\n box-shadow: 0px 1px 10px rgba(0, 0, 0, 0.25);\n }\n\n .workspace-card__root:active {\n border-color: var(--tenb-colors-border-active);\n }\n\n .workspace-card__root.selected {\n background-color: var(--tenb-colors-background-selected);\n border-color: var(--tenb-colors-outline-focus);\n box-shadow: 0px 1px 4px rgba(82, 162, 239, 0.25);\n &:hover {\n box-shadow: rgba(4, 30, 66, 0.25) 0px 0px 8px;\n }\n }\n\n .workspace-card__root.unavailable {\n background-color: transparent;\n border: 1px solid rgb(223, 227, 230);\n cursor: default;\n opacity: 0.3;\n }\n\n div.workspace-card__icon {\n height: 24px;\n width: 24px;\n }\n\n .workspace-card__label {\n color: var(--tenb-colors-text-body);\n cursor: inherit;\n font-family: var(--tenb-fonts-brand-medium);\n font-size: var(--tenb-fontSizes-18);\n font-weight: 400;\n line-height: 22px;\n margin-bottom: 0;\n margin-top: 0;\n text-align: left;\n // -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n }\n\n .workspace-card__label.alt {\n color: var(--tenb-colors-text-inverse);\n }\n\n div.workspace-card__badge {\n position: absolute;\n right: 10px;\n }\n\n /* Links wrapping app cards to get \"real\" links */\n a {\n text-decoration: none;\n }\n`\n","import { html } from 'lit'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\nimport EntityApp from '@/entities/EntityApp'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { EventType } from '@/stores/StoreTelemetry/types'\nimport { LocalStorageSelectedApplication } from '@/types'\nimport { workspaceCardStyles } from './styles'\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart icon - The icon wrapper\n * @csspart label - The component's label element\n *\n * @event {NavigationEvent} pds-navigation-menu-item-clicked - Dispatched when the Navigation Menu Item is clicked.\n */\n@customElement('tenable-workspace-card')\nexport class WorkspaceCard extends MobxLitElement {\n static styles = [workspaceCardStyles]\n\n @property({ type: String })\n label = ''\n\n @property({ type: String })\n url = ''\n\n @property({ type: Boolean })\n newTab = false\n\n @property({ attribute: false })\n currentApp = new EntityApp('tio')\n\n @property({ type: Boolean })\n isAppActive = false\n\n private selectedApplication = () => {\n switch (this.currentApp.appName) {\n case 'workspace':\n return ''\n\n case 'tio':\n return LocalStorageSelectedApplication.tenable_io\n\n case 'was':\n return LocalStorageSelectedApplication.was\n\n case 'lumin':\n return LocalStorageSelectedApplication.lumin\n\n case 'pci':\n return LocalStorageSelectedApplication.pci\n\n default:\n return this.currentApp.appName ?? 'default'\n }\n }\n\n /**\n * Handle the redirection to the app.\n */\n onClickHandler = () => {\n const { storeRoot, storeTelemetry } = this.__getStores()\n\n storeTelemetry.trackTelemetry(EventType.AppSwitcherClicked, {\n name: this.label\n })\n\n if (\n storeRoot.config.services.serverProperties?.parameters?.inAppNavigation\n ) {\n this.currentApp?.redirect(storeRoot)\n return\n }\n\n if (this.url.length === 0) {\n return\n }\n\n if (this.currentApp && this.currentApp?.isUnavailable()) {\n return true\n }\n\n if (this.newTab) {\n storeRoot.redirectToClickedApp(this.url, this.selectedApplication(), true)\n return\n }\n\n if (!this.newTab) {\n this.currentApp?.redirect(storeRoot)\n storeRoot.redirectToClickedApp(this.url, this.selectedApplication())\n }\n }\n\n render() {\n const isUnavailable = this.currentApp?.isUnavailable()\n\n const card = html`\n <div\n part=\"base\"\n class=${classMap({\n 'workspace-card__root': true,\n selected: this.isAppActive,\n unavailable: isUnavailable\n })}\n @click=${this.onClickHandler}\n >\n <div part=\"icon\" class=\"workspace-card__icon\">\n <slot name=\"icon\"></slot>\n </div>\n <slot name=\"label\">\n <label part=\"label\" class=\"workspace-card__label\">\n ${this.label}\n </label>\n </slot>\n <div part=\"badge\" class=\"workspace-card__badge\">\n <slot name=\"badge\"></slot>\n </div>\n </div>\n `\n\n // no HTML link if the app is unavailable\n if (isUnavailable) {\n return card\n }\n\n return html` <a\n href=\"${this.url}\"\n @click=\"${(evt: Event) => evt.preventDefault()}\"\n >\n ${card}\n </a>`\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-workspace-card': WorkspaceCard\n }\n}\n","import { html } from 'lit'\nimport { customElement, query } from 'lit/decorators.js'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { uuid } from '../../utils/uuid'\nimport { ActionController } from '../ActionPanel/ActionController'\n\nconst id = 'universal-header-workspace-action'\nconst uniqueId = `${uuid()}`\nconst popoverId = `${id}-${uniqueId}`\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart trigger - The trigger wrapper\n * @csspart content - The content wrapper\n */\n@customElement('tenable-universal-header-workspace-action')\nexport class WorkspaceAction extends MobxLitElement {\n @query(`#${popoverId}`)\n popover: any\n\n private _actionController = new ActionController(this)\n\n onPopoverTriggerClicked = () => {\n this._actionController.onPopoverTriggerClicked(this, this.popover)\n }\n\n render() {\n return html`\n <tenable-popover\n part=\"base\"\n id=\"${popoverId}\"\n label=\"Workspace Menu\"\n ?is-open=${this._actionController.isMenuOpen}\n @tenable-popover-anchor-clicked=${this.onPopoverTriggerClicked}\n >\n <tenable-floating-button\n ?selected=${this._actionController.isMenuOpen}\n .allowSelectedClick=${true}\n id=\"workspace-menu-button\"\n slot=\"anchor\"\n part=\"trigger\"\n aria-label=\"Workspaces\"\n aria-haspopup=\"true\"\n >\n <tenable-workspace-apps\n size=\"medium\"\n color=\"brand\"\n ></tenable-workspace-apps>\n </tenable-floating-button>\n <slot></slot>\n </tenable-popover>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-workspace-action': WorkspaceAction\n }\n}\n","import { css } from 'lit'\n\nexport const workspaceMenuStyles = css`\n #workspaces-view {\n display: grid;\n grid-template-columns: 1fr 1fr;\n grid-template-rows: 1fr 1fr;\n gap: 16px 16px;\n margin: 16px;\n }\n\n .tenb-universal-header-action-panel__root::part(base) {\n width: 630px;\n z-index: 100;\n }\n`\n","import { ensureArray, isDefined } from '@productive-codebases/toolbox'\nimport { html, nothing } from 'lit'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { unsafeHTML } from 'lit/directives/unsafe-html.js'\nimport type EntityApp from '@/entities/EntityApp'\nimport type { AppsLabelType } from '@/libs/i18n'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport type StoreLayout from '@/stores/StoreLayout'\nimport type StoreRoot from '@/stores/StoreRoot'\nimport type { HtmlString } from '@/types/tul'\nimport type { BadgeInformation } from '../Badge/types'\nimport { workspaceMenuStyles } from './styles'\n\nexport type WorkspaceOptionProp = {\n appName: string\n name: string\n displayName: string\n url: string\n enabled: boolean\n rbac?: boolean\n mode?: string\n isLicenseExpired?: boolean\n expirationDate?: Date\n entityApp?: EntityApp\n isAppUnavailable?: boolean\n badgeInfo?: BadgeInformation\n icon?: HtmlString\n}\n\n/**\n * @slot Default - Use to render child content\n *\n * @csspart base - The component's internal wrapper\n * @csspart panel-header - The panel header wrapper\n * @csspart panel-header-title - The panel header title\n * @csspart panel-body - The panel body wrapper\n * @csspart panel-content - The panel content wrapper\n */\n@customElement('tenable-universal-header-workspace-panel')\nexport class WorkspacePanel extends MobxLitElement {\n static styles = [workspaceMenuStyles]\n\n storeRoot: StoreRoot\n\n storeLayout: StoreLayout\n\n @property({ type: String })\n panelTitle =\n this.__translator('en')('Header')('PanelApps')('Workspaces') ?? 'Workspaces'\n\n @state()\n protected _isSelectedAppFound = false\n\n constructor() {\n super()\n this.storeRoot = this.__getStores().storeRoot\n this.storeLayout = this.storeRoot.stores?.storeLayout\n }\n\n private _getAppDetails(appName: string, entityApp: EntityApp) {\n const { session } = this.storeRoot.stores.storeAuthentication\n\n const translator = this.__translator(this.storeLayout.language)('Header')(\n 'PanelApps'\n )\n\n const appDetails: WorkspaceOptionProp = {\n entityApp: entityApp,\n appName: appName,\n name: '',\n displayName:\n (entityApp.displayName || entityApp?.appName) === 'Workspace'\n ? translator('Workspaces') ?? 'Workspaces'\n : entityApp.displayName || entityApp?.appName,\n mode: entityApp.mode,\n url: entityApp.workspaceUrl,\n enabled: entityApp.isEnabled(),\n isLicenseExpired: entityApp.isLicenseExpired(),\n expirationDate: entityApp.expirationDate,\n isAppUnavailable: entityApp.isUnavailable(),\n badgeInfo: entityApp.badgeInformation,\n icon: entityApp.icon\n }\n\n let name = ''\n switch (appName) {\n case 'workspace':\n case 'tpc':\n name = 'tenable-workspace-apps'\n break\n case 'ad':\n name = 'tenable-workspace-app-ad'\n break\n case 'asm':\n name = 'tenable-workspace-app-asm'\n break\n case 'cns':\n case 'cnapp':\n name = 'tenable-workspace-app-cs'\n break\n case 'tio':\n name = 'tenable-workspace-app-vm'\n break\n case 'was':\n name = 'tenable-workspace-app-was'\n break\n case 'lumin':\n name = 'tenable-workspace-app-lumin'\n break\n case 'pci':\n name = 'tenable-workspace-app-pci'\n appDetails.rbac = session?.hasAccessToPciAsv\n break\n case 'aiv':\n name = 'tenable-workspace-app-aiv'\n appDetails.rbac = session?.hasAccessToAssetInventory\n break\n case 'apa':\n name = 'tenable-workspace-app-apa'\n appDetails.rbac = session?.hasAccessToAttackPath\n break\n case 'ec':\n name = 'tenable-workspace-app-ec'\n appDetails.rbac = session?.hasAccessToExposureView\n break\n case 'eco':\n name = 'tenable-workspace-app-eco'\n break\n case 'tpcConsec':\n name = 'tenable-workspace-app-consec'\n break\n case 'tpcSc':\n name = 'tenable-workspace-app-sc'\n break\n case 'reports':\n name = 'tenable-workspace-app-reports'\n break\n default:\n name = 'tenable-workspace-apps-eco'\n }\n\n appDetails.name = name\n\n return appDetails\n }\n\n private _getWorkspaceOptionsApps(): WorkspaceOptionProp[] {\n const menuItems: WorkspaceOptionProp[] = []\n\n for (const [key, value] of this.storeLayout.apps) {\n const appDetails = this._getAppDetails(key, value)\n\n if (!appDetails.enabled) {\n continue\n }\n\n if (key !== 'one') {\n menuItems.push(appDetails)\n }\n }\n\n return menuItems.filter(app => app?.name !== '')\n }\n\n // private getWorkspaceOptions() {\n // let { workspaces } = this\n\n // // Insert generic \"Workspaces\" card if not already provided in data\n // if (workspaces.length && workspaces[0].name !== 'workspaces') {\n // const workspaceTile = {\n // name: 'tenable-workspace-apps',\n // displayName: 'Workspaces',\n // link: '/',\n // enabled: true\n // }\n\n // workspaces = [workspaceTile, ...workspaces]\n // }\n\n // return workspaces\n // }\n\n private _badgeNode(app: WorkspaceOptionProp) {\n if (app?.badgeInfo?.isBadgeRequired) {\n return html`${unsafeHTML(`\n <tenable-badge variant='${app?.badgeInfo?.variant}'\n slot=\"badge\"\n part=\"panel-menu-item-badge\"\n >${app?.badgeInfo?.badgeText}</tenable-badge>\n `)}`\n }\n\n return nothing\n }\n\n private _findSelectedAppInSwitcher(workspace: WorkspaceOptionProp) {\n const currentApp = workspace.entityApp\n\n let activeAppFound = null\n if (this._isSelectedAppFound) {\n activeAppFound = false\n }\n if (this.storeLayout.currentAppSelected) {\n if (this.storeLayout.currentAppSelected === currentApp?.appName) {\n activeAppFound = true\n }\n } else if (this.storeRoot?.appId) {\n if (this.storeRoot?.appId === currentApp?.appName) {\n activeAppFound = true\n }\n } else if (currentApp?.isCurrent()) {\n activeAppFound = true\n }\n\n if (!this._isSelectedAppFound && activeAppFound) {\n this._isSelectedAppFound = true\n return activeAppFound\n }\n\n return false\n }\n\n protected render() {\n const translator = this.__translator(this.storeLayout.language)('Header')(\n 'PanelApps'\n )\n\n this._isSelectedAppFound = false\n\n // const workspaces = this.getWorkspaceOptions()\n const workspaces = this._getWorkspaceOptionsApps()\n\n return html`\n <tenable-universal-header-action-panel\n class=\"tenb-universal-header-action-panel__root\"\n part=\"base\"\n >\n <tenable-universal-header-action-panel-header part=\"panel-header\">\n <tenable-heading3 part=\"panel-header-title\">\n ${translator(this.panelTitle as AppsLabelType) ??\n 'Workspaces'}</tenable-heading3\n >\n </tenable-universal-header-action-panel-header>\n\n <tenable-universal-header-action-panel-body part=\"panel-body\">\n <div id=\"workspaces-view\" part=\"panel-content\">\n ${ensureArray(workspaces)\n .map(workspace => {\n if (!isDefined(workspace) || !workspace.entityApp) {\n return\n }\n\n const getActiveApp = this._findSelectedAppInSwitcher(workspace)\n\n return html` <tenable-workspace-card\n part=\"panel-menu-item\"\n label=${workspace.displayName}\n url=${workspace.url}\n .currentApp=${workspace.entityApp}\n .isAppActive=${getActiveApp}\n ?newTab=${workspace.url?.startsWith('http') === true}\n >\n ${workspace.icon\n ? unsafeHTML(workspace.icon)\n : unsafeHTML(\n `<${workspace.name} size=\"medium\" color=\"accent-idle\" slot=\"icon\" part=\"panel-menu-item-icon\" ></${workspace.name}>`\n )}\n ${this._badgeNode(workspace)}\n ${workspace?.badgeInfo?.isBadgeRequired &&\n `${unsafeHTML(`\n <tenable-badge variant='${workspace?.badgeInfo?.variant}' slot=\"badge\" part=\"panel-menu-item-badge\" >\n ${workspace?.badgeInfo?.badgeText}\n </tenable-badge>\n `)}`}\n </tenable-workspace-card>`\n })\n .filter(isDefined)}\n </div>\n </tenable-universal-header-action-panel-body>\n </tenable-universal-header-action-panel>\n `\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'tenable-universal-header-workspace-panel': WorkspacePanel\n }\n}\n","import { isDefined } from '@productive-codebases/toolbox'\nimport get from 'lodash/get'\nimport { newLogger } from '@/libs/logger'\nimport { configSchema as validateConfigSchema } from '@/libs/validators/generatedValidators/validateConfigSchema.js'\nimport type { ITulConfig } from '@/types/tul'\n\nconst logger = newLogger('tul')('init')\n\n/**\n * Basic validation of a configuration.\n */\nexport function validateConfig(config: ITulConfig): config is ITulConfig {\n if (!validateConfigSchema(config)) {\n logger('error')(\n 'The initialization object is invalid',\n // use Lodash to hack types and retrieve errors...\n get(validateConfigSchema, 'errors')\n )\n return false\n }\n\n if (!config.app.handlers) {\n return true\n }\n\n // check the navigate function\n if (\n isDefined(config.app.handlers.onTulNavigate) &&\n typeof config.app.handlers.onTulNavigate !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulNavigate` is not a function.'\n )\n return false\n }\n\n // check the session function\n if (\n isDefined(config.app.handlers.onTulSessionFetched) &&\n typeof config.app.handlers.onTulSessionFetched !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulSessionFetched` is not a function.'\n )\n return false\n }\n\n // check the server properties function\n if (\n isDefined(config.app.handlers.onTulServerPropertiesFetched) &&\n typeof config.app.handlers.onTulServerPropertiesFetched !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulServerPropertiesFetched` is not a function.'\n )\n return false\n }\n\n // check the hamburger onClick function\n if (\n isDefined(config.app.handlers.onTulHamburgerClick) &&\n typeof config.app.handlers.onTulHamburgerClick !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulHamburgerClick` is not a function.'\n )\n return false\n }\n\n // check the bell icon onClick function\n if (\n isDefined(config.app.handlers.onTulNotificationsClick) &&\n typeof config.app.handlers.onTulNotificationsClick !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulNotificationsClick` is not a function.'\n )\n return false\n }\n\n // check the chat icon onClick function\n if (\n isDefined(config.app.handlers.onTulChatClick) &&\n typeof config.app.handlers.onTulChatClick !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulChatClick` is not a function.'\n )\n return false\n }\n\n // check the chat app logo onClick function\n if (\n isDefined(config.app.handlers.onTulApplicationLogoClick) &&\n typeof config.app.handlers.onTulApplicationLogoClick !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulApplicationLogoClick` is not a function.'\n )\n return false\n }\n\n // check the chat app specific icon onClick function\n if (\n isDefined(config.app.handlers.onTulAppSpecificIconClick) &&\n typeof config.app.handlers.onTulAppSpecificIconClick !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulAppSpecificIconClick` is not a function.'\n )\n return false\n }\n\n // check the app license setter function\n if (\n isDefined(config.app.handlers.onTulLicensedAppsSet) &&\n typeof config.app.handlers.onTulLicensedAppsSet !== 'function'\n ) {\n logger('error')(\n 'The initialization object is invalid: `config.app.handlers.onTulLicensedAppsSet` is not a function.'\n )\n return false\n }\n\n return true\n}\n","import '@/components/GlobalHeader'\nimport { configure, runInAction } from 'mobx'\nimport type { Environment } from '@/libs/Environment'\nimport { createEnvironment } from '@/libs/Environment/createEnvironment'\nimport { newLogger } from '@/libs/logger'\nimport { MobxLitElement } from '@/libs/MobxLitElement'\nimport { validateConfig } from '@/libs/validators/validateConfig'\nimport StoreRoot from '@/stores/StoreRoot'\nimport { LocalStorageKey } from '@/types'\nimport type { Maybe } from '@/types/helpers'\nimport type { ITulApi, ITulConfig } from '@/types/tul'\n\n// import '@/components/TulHeader'\n// const mainComponent = `<tul-header></tul-header>`\n\n/**\n * Create TUL instance and returns TUL API.\n *\n * Usage:\n *\n * const tulApi = await init('tenable-platform-header', configuration)\n */\n\nexport async function initTul(\n htmlTagId: Maybe<string>,\n tulConfig: ITulConfig,\n mainComponent = `<tenable-global-header></tenable-global-header>`\n): Promise<ITulApi> {\n const logger = newLogger('tul')('init')\n\n // validate configuration\n if (!validateConfig(tulConfig)) {\n throw new Error('Invalid TUL configuration')\n }\n\n configure({\n // enable MobX strict mode\n enforceActions: 'always',\n // use JS proxies implementation\n useProxies: 'always',\n // allow having several MobX instance into a same app\n isolateGlobalState: true\n })\n\n try {\n const environment = createEnvironment(tulConfig)\n const storeRoot = _createTulStoreRoot(environment)\n\n await storeRoot.init(tulConfig)\n\n const appId = storeRoot.appId\n\n if (!appId) {\n throw new Error(\n `The application id has not been found, Please pass in tulConfig.app.id`\n )\n }\n\n // Override root store in Lit components (rootStore is set statically in Lit instances)\n MobxLitElement.__setRootStore(storeRoot)\n\n // If no htmlTag, this will be done manually by the caller app\n if (!htmlTagId) {\n return storeRoot.tulApi\n }\n\n // Render app in the DOM\n const tulHtmlTag = document.getElementById(htmlTagId)\n\n if (!tulHtmlTag) {\n throw new Error(\n `The HTML tag with the ID \"${htmlTagId}\" has not been found!`\n )\n }\n\n tulHtmlTag.innerHTML = mainComponent\n\n // Wrap all changes with runInAction to immediately run as action\n runInAction(() => {\n // Set the root DOM node in root store\n storeRoot.setTulRoot(tulHtmlTag)\n })\n\n // Return TUL API\n return storeRoot.tulApi\n } catch (err) {\n if (err instanceof Error) {\n logger('error')(`TUL initialization failed: %s`, err.message)\n logger('debug')('Error details: %o', err.stack)\n }\n\n // forward the exception to the caller\n throw err\n }\n}\n\n/**\n * Init root store before rendering the Root node.\n */\nfunction _createTulStoreRoot(environment: Environment): StoreRoot {\n // set debug configuration\n const currentDebugValue = window.localStorage.getItem(LocalStorageKey.debug)\n\n if (!currentDebugValue) {\n window.localStorage.setItem(\n LocalStorageKey.debug,\n // Log TUL messages\n 'tul:*'\n )\n }\n\n const { storeRoot } = StoreRoot.createRootStore(environment.config, {\n override: true\n })\n\n // save TUL root store for debug purposes\n window.TUL = {\n ...window.TUL,\n storeRoot\n }\n\n return storeRoot\n}\n"],"names":["t","e","s","n","o$9","r","o","i","S","c","h","a","l","d","u$5","u","v","f","_","m","p","g","$","y","w","x","T","A","E","C","P","V$1","V","k","I","L","R","N","S$1","M","z","M$1","R$1","k$1","H","L$2","z$1","Z","j","B","ensureNullable","value","die","error","_len","args","_key","mockGlobal","getGlobal","assign","getDescriptor","defineProperty","objectPrototype","EMPTY_ARRAY","EMPTY_OBJECT","hasProxy","plainObjectString","assertProxies","once","func","invoked","noop","isFunction","fn","isStringish","isObject","isPlainObject","proto","protoConstructor","isGenerator","obj","constructor","addHiddenProp","object","propName","addHiddenFinalProp","createInstanceofPredicate","name","theClass","isES6Map","thing","isES6Set","hasGetOwnPropertySymbols","getPlainObjectKeys","keys","symbols","ownKeys","toPrimitive","hasProp","target","prop","getOwnPropertyDescriptors","res","key","_defineProperties","props","descriptor","_createClass","Constructor","protoProps","staticProps","_extends","source","_inheritsLoose","subClass","superClass","_setPrototypeOf","_assertThisInitialized","self","_unsupportedIterableToArray","minLen","_arrayLikeToArray","arr","len","arr2","_createForOfIteratorHelperLoose","allowArrayLike","it","storedAnnotationsSymbol","createDecoratorAnnotation","annotation","decorator","property","storeAnnotation","prototype","isOverride","collectStoredAnnotations","$mobx","Atom","name_","IDerivationState_","_proto","listener","reportObserved","startBatch","propagateChanged","endBatch","isAtom","createAtom","onBecomeObservedHandler","onBecomeUnobservedHandler","atom","onBecomeObserved","onBecomeUnobserved","identityComparer","b","structuralComparer","deepEqual","shallowComparer","defaultComparer","comparer","deepEnhancer","isObservable","observable","isAction","isFlow","flow","autoAction","shallowEnhancer","isObservableObject","isObservableArray","isObservableMap","isObservableSet","referenceEnhancer","newValue","refStructEnhancer","oldValue","OVERRIDE","createActionAnnotation","options","make_$1","extend_$1","adm","_this$options_","actionDescriptor","createActionDescriptor","proxyTrap","assertActionDescriptor","_ref","_ref2","safeDescriptors","_annotation$options_","_annotation$options_$","_annotation$options_2","_annotation$options_$2","_annotation$options_3","_annotation$options_4","_adm$proxy_2","globalState","_adm$proxy_","createAction","createFlowAnnotation","make_$2","extend_$2","flowDescriptor","createFlowDescriptor","_this$options_2","assertFlowDescriptor","bound","createComputedAnnotation","make_$3","extend_$3","assertComputedDescriptor","createObservableAnnotation","make_$4","extend_$4","_this$options_$enhanc","assertObservableDescriptor","AUTO","autoAnnotation","createAutoAnnotation","make_$5","extend_$5","_this$options_3","_this$options_4","computed","set","flowAnnotation","actionAnnotation","observableAnnotation","_this$options_5","_this$options_6","OBSERVABLE","OBSERVABLE_REF","OBSERVABLE_SHALLOW","OBSERVABLE_STRUCT","defaultCreateObservableOptions","asCreateObservableOptions","observableRefAnnotation","observableShallowAnnotation","observableStructAnnotation","observableDecoratorAnnotation","getEnhancerFromOptions","getEnhancerFromAnnotation","getAnnotationFromOptions","_options$defaultDecor","createObservable","arg2","arg3","observableFactories","ObservableValue","initialValues","createLegacyArray","createObservableArray","ObservableMap","ObservableSet","decorators","extendObservable","asObservableObject","asDynamicObservableObject","COMPUTED","COMPUTED_STRUCT","computedAnnotation","computedStructAnnotation","arg1","opts","ComputedValue","_getDescriptor$config","_getDescriptor","currentActionId","nextActionId","isFunctionNameConfigurable","tmpNameDescriptor","actionName","ref","executeAction","canRunAsDerivation","scope","runInfo","_startAction","err","_endAction","notifySpy_","startTime_","prevDerivation_","runAsAction","prevAllowStateChanges_","untrackedStart","allowStateChangesStart","prevAllowStateReads_","allowStateReadsStart","allowStateChangesEnd","allowStateReadsEnd","untrackedEnd","allowStateChanges","prev","_Symbol$toPrimitive","_Atom","enhancer","notifySpy","equals","_this","hasInterceptors","change","interceptChange","UPDATE","hasListeners","notifyListeners","handler","registerInterceptor","fireImmediately","registerListener","isObservableValue","_Symbol$toPrimitive$1","CaughtException","TraceMode","propagateMaybeChanged","shouldCompute","prevTrackingContext","propagateChangeConfirmed","result","isCaughtException","wasSuspended","changed","track","trackDerivedFunction","clearObserving","firstTime","prevValue","autorun","prevU","isComputedValue","cause","derivation","prevAllowStateReads","prevUntracked","obs","changeDependenciesStateTo0","context","prevTracking","bindDependencies","prevObserving","observing","lowestNewObservingDerivationState","i0","dep","_dep","removeObserver","_dep2","addObserver","untracked","action","allowStateReads","MobXGlobals","canMergeGlobalState","isolateCalled","global","isolateGlobalState","node","queueForUnobservation","runReactions","list","Reaction","onInvalidate_","errorHandler_","requiresObservable_","prevReaction","message","enterBreakPoint","trace","MAX_REACTION_ITERATIONS","reactionScheduler","runReactionsHelper","allReactions","iterations","remainingReactions","isReaction","setReactionScheduler","baseScheduler","isSpyEnabled","spy","ACTION","ACTION_BOUND","AUTOACTION","AUTOACTION_BOUND","DEFAULT_ACTION_NAME","actionBoundAnnotation","autoActionAnnotation","autoActionBoundAnnotation","createActionFactory","runInAction","view","_opts$name","_opts","runSync","reaction","reactionRunner","scheduler","createSchedulerFromOptions","isScheduled","run","ON_BECOME_OBSERVED","ON_BECOME_UNOBSERVED","interceptHook","hook","getAtom","cb","listenersKey","hookListeners","NEVER","ALWAYS","OBSERVED","configure","useProxies","enforceActions","ea","properties","annotations","descriptors","generatorId","FlowCancellationError","flowBoundAnnotation","generator","ctx","runId","gen","rejector","pendingPromise","promise","resolve","reject","stepId","onFulfilled","ret","next","onRejected","cancelPromise","_res","yieldedPromise","_isObservable","apiOwnKeys","cache","map","toJSHelper","__alreadySeen","idx","_res2","_res3","toJS","getAtomFromArgs","transaction","thisArg","getAdm","objectProxyTraps","_getAdm$set_","_getAdm$delete_","_getAdm$definePropert","_target$$mobx","_target$$mobx$proxy_","interceptable","interceptors","listenable","listeners","makeObservable","_annotations","SPLICE","MAX_SPLICE_SIZE","arrayTraps","arrayExtensions","ObservableArrayAdministration","owned_","legacyMode_","newV","oldV","values","newLength","currentLength","newItems","oldLength","delta","reserveArrayBuffer","index","deleteCount","length","lengthDelta","_this$values_","oldItems","_i","notify","added","removed","owned","proxy","_len2","items","_key2","_len3","_key3","copy","addArrayExtension","simpleFunc","mapLikeFunc","reduceLikeFunc","funcName","funcFactory","dehancedValues","callback","_this2","element","_this3","accumulator","currentValue","isObservableArrayAdministration","_Symbol$iterator","_Symbol$toStringTag","ObservableMapMarker","ADD","DELETE","initialData","enhancer_","entry","newEntry","hasKey","_change","_this3$hasMap_$get","_this4","_this4$hasMap_$get","makeIterable","_keys$next","done","_keys$next2","_iterator","_step","_step$value","other","_this5","_this6","_iterator2","_step2","_this7","replacementMap","convertToMap","orderedData","keysReportChangedCalled","_iterator3","_step3","deleted","_iterator4","_step4","_step4$value","_value","keyExisted","_value2","iter1","iter2","next1","next2","dataStructure","_Symbol$iterator$1","_Symbol$toStringTag$1","ObservableSetMarker","callbackFn","_change2","nextIndex","observableValues","descriptorCache","REMOVE","ObservableObjectAdministration","target_","values_","defaultAnnotation_","_this$target_$storedA","outcome","recordAnnotationApplied","deleteOutcome","cachedDescriptor","getCachedObservablePropDescriptor","_this$pendingKeys_","_this$pendingKeys_$ge","_this$pendingKeys_2","_this$pendingKeys_2$g","_options$name","isObservableObjectAdministration","_adm$target_$storedAn","ENTRY_0","createArrayEntryDescriptor","OBSERVABLE_ARRAY_BUFFER_SIZE","StubArray","inherit","ctor","LegacyObservableArray","_StubArray","arrays","createArrayBufferItem","max","getDebugName","_observable","getAdministration","named","toString","depth","eq","aStack","bStack","type","className","unwrap","areArrays","aCtor","bCtor","iterator","getSelf","ListCache","require$$0","stackClear","_stackClear","stackDelete","data","_stackDelete","stackGet","_stackGet","stackHas","_stackHas","Map","require$$1","MapCache","require$$2","LARGE_ARRAY_SIZE","stackSet","pairs","_stackSet","require$$3","require$$4","require$$5","Stack","entries","_Stack","arrayEach","array","iteratee","_arrayEach","getNative","_defineProperty","baseAssignValue","_baseAssignValue","objectProto","hasOwnProperty","assignValue","objValue","_assignValue","copyObject","customizer","isNew","_copyObject","baseTimes","_baseTimes","baseGetTag","isObjectLike","argsTag","baseIsArguments","_baseIsArguments","propertyIsEnumerable","isArguments","isArguments_1","stubFalse","stubFalse_1","root","freeExports","exports","freeModule","module","moduleExports","Buffer","nativeIsBuffer","isBuffer","MAX_SAFE_INTEGER","reIsUint","isIndex","_isIndex","isLength","isLength_1","arrayTag","boolTag","dateTag","errorTag","funcTag","mapTag","numberTag","objectTag","regexpTag","setTag","stringTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","typedArrayTags","baseIsTypedArray","_baseIsTypedArray","baseUnary","_baseUnary","freeGlobal","freeProcess","nodeUtil","types","nodeIsTypedArray","isTypedArray","isTypedArray_1","isArray","arrayLikeKeys","inherited","isArr","isArg","isBuff","isType","skipIndexes","_arrayLikeKeys","isPrototype","Ctor","_isPrototype","overArg","transform","arg","_overArg","nativeKeys","_nativeKeys","baseKeys","_baseKeys","isArrayLike","isArrayLike_1","keys_1","baseAssign","_baseAssign","nativeKeysIn","_nativeKeysIn","baseKeysIn","isProto","_baseKeysIn","keysIn","keysIn_1","baseAssignIn","_baseAssignIn","allocUnsafe","cloneBuffer","buffer","isDeep","copyArray","_copyArray","arrayFilter","predicate","resIndex","_arrayFilter","stubArray","stubArray_1","nativeGetSymbols","getSymbols","symbol","_getSymbols","copySymbols","_copySymbols","arrayPush","offset","_arrayPush","getPrototype","_getPrototype","getSymbolsIn","_getSymbolsIn","copySymbolsIn","_copySymbolsIn","baseGetAllKeys","keysFunc","symbolsFunc","_baseGetAllKeys","getAllKeys","_getAllKeys","getAllKeysIn","_getAllKeysIn","DataView","_DataView","Promise","_Promise","Set","_Set","WeakMap","_WeakMap","toSource","require$$6","promiseTag","dataViewCtorString","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","getTag","ctorString","_getTag","initCloneArray","_initCloneArray","Uint8Array","_Uint8Array","cloneArrayBuffer","arrayBuffer","_cloneArrayBuffer","cloneDataView","dataView","_cloneDataView","reFlags","cloneRegExp","regexp","_cloneRegExp","Symbol","symbolProto","symbolValueOf","cloneSymbol","_cloneSymbol","cloneTypedArray","typedArray","_cloneTypedArray","symbolTag","initCloneByTag","tag","_initCloneByTag","objectCreate","baseCreate","_baseCreate","initCloneObject","_initCloneObject","baseIsMap","_baseIsMap","nodeIsMap","isMap","isMap_1","baseIsSet","_baseIsSet","nodeIsSet","isSet","isSet_1","require$$7","require$$8","require$$9","require$$10","require$$11","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","CLONE_DEEP_FLAG","CLONE_FLAT_FLAG","CLONE_SYMBOLS_FLAG","genTag","cloneableTags","baseClone","bitmask","stack","isFlat","isFull","isFunc","stacked","subValue","_baseClone","last","last_1","baseGet","baseSlice","parent","path","_parent","castPath","toKey","baseUnset","_baseUnset","funcProto","funcToString","objectCtorString","isPlainObject_1","customOmitClone","_customOmitClone","spreadableSymbol","isFlattenable","_isFlattenable","baseFlatten","isStrict","_baseFlatten","flatten","flatten_1","apply","_apply","nativeMax","overRest","start","otherArgs","_overRest","constant","constant_1","identity","identity_1","baseSetToString","string","_baseSetToString","HOT_COUNT","HOT_SPAN","nativeNow","shortOut","count","lastCalled","stamp","remaining","_shortOut","setToString","_setToString","flatRest","_flatRest","arrayMap","omit","paths","omit_1","HTTPMethod","FetchClientEventName","FetchClient","fetchFunction","input","init","requestInit","bodyParams","headers","eventName","existingHooks","status","EnvironmentBase","environmentConfiguration","Environment","FeaturesFromJSON","json","FeaturesFromJSONTyped","ignoreDiscriminator","GroupFromJSON","GroupFromJSONTyped","PreferencesFromJSON","PreferencesFromJSONTyped","SessionFromJSON","SessionFromJSONTyped","UserPermissionsFromJSON","SessionTimeoutFromJSON","SessionTimeoutFromJSONTyped","runtime.BaseAPI","requestParameters","initOverrides","queryParameters","headerParameters","response","runtime.JSONApiResponse","jsonValue","BASE_PATH","Configuration","configuration","querystring","apiKey","accessToken","DefaultConfig","_BaseAPI","url","fetchParams","middleware","FetchError","middlewares","preMiddlewares","pre","postMiddlewares","post","mime","ResponseError","initOverrideFn","initParams","overriddenInit","body","isFormData","isBlob","BaseAPI","msg","params","prefix","querystringSingleKey","part","keyPrefix","fullKey","multiValue","singleValue","valueAsArray","JSONApiResponse","raw","transformer","AnalyticsFromJSON","AnalyticsFromJSONTyped","AppLicenseFromJSON","AppLicenseFromJSONTyped","EvaluationFromJSON","EvaluationFromJSONTyped","LicenseAppsFromJSON","LicenseAppsFromJSONTyped","LicenseTypeFromJSON","LicenseTypeFromJSONTyped","LicenseFromJSON","LicenseFromJSONTyped","ServerPropertiesFromJSON","ServerPropertiesFromJSONTyped","DefaultApi","OpenApiClients","_config","authenticationHeaders","WugServerConfigResourceApi","WugServerConfigResourceConfiguration","_b","_a","SessionResourceApi","SessionResourceConfiguration","_d","_c","createEnvironment","config","isPendoFromTul","isTelemetryFromTul","windowEnv","fetchClient","openApiClients","allTranslations","enTranslations","frTranslations","jaTranslations","toTranslations","fallbackLanguage","translate","n1","n2","StoreRootBase","environment","StoreBase","storeRoot","StoreFlags","__decorateClass","StoreAlerts","getLocalStorageTokens","htmlResponse","tokenEntry","StoreAssistMode","payload","htmlText","LocalStorageKey","tokenName","tokenValue","LocalStorageSelectedApplication","isDefined","parseCookies","str","_isDefinedAndNotEmptyString","acc","getTokenForCookieValue","token","StoreAuthentication","services","sessionResourceApi","checkSessionFetchFn","heartbeatIntervalDuration","append","fetchUserSessionPromise","session","isValidSession","EntitySession","fetchServerPropertiesPromise","serverProperties","isValidServerProperties","siteId","FeatureFlag","StoreFeatureFlags","featureFlagsList","featureFlags","featureFlagsEnabled","featureFlag","get","navigationData","settingsMenuData","myAccountAppConfigForTio","base64EncodedConfigForMyAccount","userMenuData","UserManagementMenuKeys","mergeMenuItems","src","tgt","sourceItem","targetItem","TenableBaseEvent","_options","NavigationEvent","indexEntitiesToMap","entities","entity","id","tulDefaultTheme","tulTioTheme","tulThemes","StoreDrawer","partialData","PRODUCTS_APPS","EntityApp","PAGE_APPS","SelectedTioSettingsPage","StoreLayout","apps","StrictObject","appName","appEntity","tenableProduct","appLicense","layoutPreferences","state","navigationEvent","tulEvent","TulEvent","cusOptions","customEvent","menu","language","breadcrumbs","hasUserProfileFromConfig","hasUserMenuProfileFromConfig","app","baseTheme","deepMerge","filterNullOrUndefinedValues","omitKeys","getPendoScriptContent","domwindow","scriptUrl","pendoScriptNode","loadPendo","addPendoScript","pendoAnonymousId","buildPendoMetadata","metadata","ensureArray","metadata_","createAccount","identityMetadata","customMetadata","optOut","userUuid","containerUuid","site","pendoMetadata","anonymousAccount","createVisitor","role","anonymousVisitor","StorePendo","newLogger","event","pendoResourceContainerId","pendoResourceContainer","pendo","isInPendoWindow","parameters","visitor","getRoleNameFromPermission","account","mergedOptions","_e","pendoData","getFrameworkBrowserTelemetry","StoreTelemetry","unixDate","startDate","endDate","utc1","utc2","timestamp","dateValue","date","expirationDate","consec","lumin","pci","was","cns","evaluation","licenseTep","licenseVm","licensePci","licenseLumin","licenseConsec","licenseWas","licenseCns","telemetryMetaData","containerName","permissions","isMsspParent","theme","userProperties","traits","uuid","isInternal","isEval","eventProperties","pageName","timeSpent","formName","envWindow","envName","isTelemetryEnabled","telemetry","urlsToIgnoreForReload","_StoreRoot","tulConfig","directory","appId","newTab","item","selectedApp","HTML_AS_STRING_REGEX","as","StoreRoot","themeProperty","unsafeCSS","themePropertyToCssVar","setStyleProperties","style","partialTheme","cachedRequestUpdate","MobxReactionUpdate","reactiveElementConstructor","ReactionConstructor","changedProperties","MobxLitElement","LitElement","storeLayout","UniversalNavigationController","host","navigationConfig","GlobalHeaderPanels","_f","_h","_g","_l","_k","_j","_n","_m","globalHeaderStyles","css","i$3","e$1","renderWidget","service","DefaultComponent","customRenderer","widgetConfiguration","html","unsafeHTML","renderIconAsString","iconSource","styleMap","GlobalHeader","sidebarNavigationConfig","settingsNavigationConfig","quickActionsNavigationConfig","userProfileNavigationConfig","storeAuthentication","storeAssistMode","hideHamburgerIcon","hideSidebar","icons","appSettingsMenuData","quickActionsMenuData","isAssistMode","hasAccessToAppSwitcher","renderUserManagementSlot","ifDefined","renderAppSwitcherSlot","renderSettingsSlot","renderNotificationsSlot","renderChatsSlot","renderPendoSlot","renderAppSpecificIconsSlot","renderCustomActionsSlot","customElement","componentStyles","styles","ActionPanel","classes","classMap","factory","this","modules","installedModules","__webpack_require__","moduleId","docElem","currentElement","currentInput","currentIntent","currentTimestamp","shouldPersist","formInputs","functionList","ignoreMap","specificMap","inputMap","isScrolling","mousePos","pointerMap","supportsPassive","setUp","detectWheel","addListeners","setPersist","setInput","setIntent","setElement","clearElement","doUpdate","eventKey","pointerType","ignoreMatch","specificMatch","shouldUpdate","validateTouch","persistInput","activeElem","notFormInput","checkClosest","which","fireFunctions","detectScrolling","touchIsValid","wheelType","objPos","match","elem","ElementPrototype","opt","eventType","position","MenuKeyboardController","elementName","menuItemElements","slot","ev","whatInput","el","selectedMenuItem","menuItemRoot","prevSelected","newSelected","menuItemsElements","slotChangeChecks","NavigationMenuKeyboardController","HeaderEvent","ActionPanelBody","actionControllerHost","ActionPanelHeader","EventType","d2","appActionStyles","AppActions","storeTelemetry","getId","repeat","icon","assistModeStyles","AssistMode","translator","userName","email","Avatar","badgeStyles","Badge","badgeVariantKey","breadcrumbStyles","BreadCrumbMenu","breadcrumbItemStyles","BreadCrumbMenuItem","TelemetryController","dataAttr","buttonStyles","BaseButton","linkButtonStyles","LinkButton","secondaryButtonStyles","SecondaryButton","ActionController","storePendo","shouldClose","close","UniversalHeaderPopoverOpened","evt","hostClicked","popover","popoverClickedEvent","uniqueId","popoverId","ChatAction","query","chatMenuStyles","ChatPanel","floatingButtonStyles","FloatingButton","isNamedSlotFilled","hostNode","floatingTextButtonStyles","FloatingTextButton","iconLeftClassMap","iconRightClassMap","universalHeaderStyles","UniversalHeader","defaultRoute","noHamburger","hasHandler","noHandler","helpActionStyles","HelpAction","IconBase","AccessControlIcon","ActivityLogsIcon","AnnouncementIcon","AsmAppIcon","AssetInventoryIcon","AttackPathAppIcon","BellIcon","BookIcon","ChatIcon","ChevronDownIcon","ChevronLeftIcon","ChevronRightIcon","CloseLargeIcon","CloseSmallIcon","CloudSecurityAppIcon","EcosystemIcon","HamburgerOpenIcon","HelpIcon","IdentityExposureIcon","InfoIcon","LicenseInformationIcon","LuminAppIcon","LuminExposureViewIcon","MoonIcon","PCIASVIcon","ConsecIcon","SCIcon","ReportsIcon","SettingsAppIcon","SignOutIcon","StarIcon","UserProfileIcon","VMAppIcon","WASAppIcon","WorkspaceApps","navigationMenuGroupItemStyles","NavigationMenuHeading","navigationMenuStyles","NavigationMenu","navigationMenuItemStyles","NavigationMenuItem","NavigationMenuItemEvent","universalNavigationMenuSubMenuStyles","UniversalNavigationMenuSubmenu","NotificationBadge","notificationsMenuStyles","NotificationsPanel","NotificationsAction","D","O","F","W","TenablePopoverEvents","popoverStyles","Popover","slottedAnchorEl","results","changedProps","autoUpdate","computePosition","flip","shift","elm","onAnchorClicked","quickActionsStyles","QuickActions","QuickActionsPanel","SettingsAction","settingsLocalStorage","PopoverStateController","anchorCallback","closeOnAnchorClicked","closeOnDialogClicked","hasMultiplePopovers","dialogCallback","popovers","isOpen","clearValue","settingsPanelStyles","SettingsPanel","hasAccessToPlatformSettings","hasAppSettings","hasBothSettings","noSettings","filterRbacMenuItems","TenableToggleSwitchEvents","toggleSwitchStyles","ToggleSwitch","menuEvent","tooltipStyles","Tooltip","tooltipArrow","arrowLen","side","staticSide","tooltipTrigger","tooltipOverlay","arrowOffset","totalOffset","arrow","middlewareData","Heading3","SmallText","Text","universalNavigationStyles","SCROLL_INDICATOR_THRESHOLD","UniversalNavigation","navigationCollapsedEvent","clickedMenuItem","NavItemPopoverEvent","animation","basePart","scrollTopClasses","scrollBottomClasses","UserAction","UserPanel","workspaceCardStyles","WorkspaceCard","isUnavailable","card","WorkspaceAction","workspaceMenuStyles","WorkspacePanel","entityApp","appDetails","menuItems","nothing","workspace","currentApp","activeAppFound","workspaces","getActiveApp","logger","validateConfig","validateConfigSchema","initTul","htmlTagId","mainComponent","_createTulStoreRoot","tulHtmlTag"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,159,160,161,164,168,176,177,259,260]}