@api-client/ui 0.0.3 → 0.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/demo/amf/api-annotation.html +1 -0
  2. package/demo/amf/api-channel.html +1 -0
  3. package/demo/amf/api-console.html +1 -0
  4. package/demo/amf/api-documentation-document.html +1 -0
  5. package/demo/amf/api-documentation.html +1 -0
  6. package/demo/amf/api-editor.html +1 -0
  7. package/demo/amf/api-navigation.html +1 -0
  8. package/demo/amf/api-operation.html +1 -0
  9. package/demo/amf/api-payload.html +1 -0
  10. package/demo/amf/api-request.html +1 -0
  11. package/demo/amf/api-resource.html +1 -0
  12. package/demo/amf/api-schema-documentation.html +1 -0
  13. package/demo/amf/api-security-documentation.html +1 -0
  14. package/demo/amf/api-server-picker.html +1 -0
  15. package/demo/amf/api-summary.html +1 -0
  16. package/demo/amf/bare-components.html +2 -0
  17. package/demo/amf/index.html +2 -0
  18. package/demo/amf/oauth-authorize.html +2 -0
  19. package/demo/amf/request-editor.html +1 -0
  20. package/demo/elements/authorization/api-key.html +1 -0
  21. package/demo/elements/authorization/basic.html +1 -0
  22. package/demo/elements/authorization/bearer.html +1 -0
  23. package/demo/elements/authorization/cc.html +1 -0
  24. package/demo/elements/authorization/index.html +2 -0
  25. package/demo/elements/authorization/ntlm.html +1 -0
  26. package/demo/elements/authorization/oauth-error.html +2 -0
  27. package/demo/elements/authorization/oauth-popup.html +2 -0
  28. package/demo/elements/authorization/oauth2.html +1 -0
  29. package/demo/elements/authorization/oidc.html +1 -0
  30. package/demo/elements/authorization/redirect.html +3 -1
  31. package/demo/elements/context-menu/basic.html +2 -1
  32. package/demo/elements/context-menu/custom-data.html +2 -1
  33. package/demo/elements/context-menu/enabled-state.html +2 -1
  34. package/demo/elements/context-menu/icons.html +2 -1
  35. package/demo/elements/context-menu/index.html +2 -0
  36. package/demo/elements/context-menu/nested.html +2 -1
  37. package/demo/elements/context-menu/no-execute.html +2 -1
  38. package/demo/elements/context-menu/radio-menu.html +2 -1
  39. package/demo/elements/context-menu/separators.html +2 -1
  40. package/demo/elements/environment/environment-editor.html +1 -0
  41. package/demo/elements/environment/index.html +1 -0
  42. package/demo/elements/environment/server-editor.html +1 -1
  43. package/demo/elements/environment/variables-editor.html +1 -1
  44. package/demo/elements/har/har-viewer.html +1 -0
  45. package/demo/elements/highlight/index.html +1 -0
  46. package/demo/elements/highlight/marked-highlight.html +1 -0
  47. package/demo/elements/highlight/prism-highlight.html +1 -0
  48. package/demo/elements/http/body-editor.html +1 -0
  49. package/demo/elements/http/headers.html +1 -0
  50. package/demo/elements/http/http-assertions.html +1 -0
  51. package/demo/elements/http/request-editor.html +1 -0
  52. package/demo/elements/http/request-log.html +1 -0
  53. package/demo/elements/http/url-editing.html +1 -0
  54. package/demo/elements/icons/index.html +1 -0
  55. package/demo/elements/project/project-run-report.html +1 -0
  56. package/demo/elements/project/request-editor.html +1 -0
  57. package/demo/elements/ui/buttons/api-button.html +2 -1
  58. package/demo/elements/ui/buttons/api-icon-button.html +2 -1
  59. package/demo/elements/ui/buttons/segmented-buttons.html +2 -1
  60. package/demo/elements/ui/chip/api-chip.html +2 -1
  61. package/demo/elements/ui/collapse/ui-collapse.html +2 -1
  62. package/demo/elements/ui/dialog/ui-dialog.html +2 -1
  63. package/demo/elements/ui/inputs/api-checkbox.html +2 -1
  64. package/demo/elements/ui/inputs/api-input.html +2 -1
  65. package/demo/elements/ui/inputs/api-radio.html +2 -1
  66. package/demo/elements/ui/inputs/api-switch.html +2 -1
  67. package/demo/elements/ui/list/dropdown-list.html +2 -1
  68. package/demo/elements/ui/list/list.html +2 -1
  69. package/demo/elements/ui/notification/snack.html +2 -1
  70. package/demo/elements/ui/progress/ui-progress.html +2 -1
  71. package/demo/elements/ui/tabs/tabs.html +2 -1
  72. package/dist/amf/lib/AmfParameters.js +0 -4
  73. package/dist/amf/lib/AmfParameters.js.map +1 -1
  74. package/dist/amf/lib/navigation-layout/EndpointsTree.js +0 -2
  75. package/dist/amf/lib/navigation-layout/EndpointsTree.js.map +1 -1
  76. package/dist/amf/lib/navigation-layout/NaturalTree.js +0 -2
  77. package/dist/amf/lib/navigation-layout/NaturalTree.js.map +1 -1
  78. package/dist/amf/store/AmfGraphStore.js +0 -2
  79. package/dist/amf/store/AmfGraphStore.js.map +1 -1
  80. package/dist/amf/store/AmfStore.js +0 -7
  81. package/dist/amf/store/AmfStore.js.map +1 -1
  82. package/dist/bindings/base/HttpClientStoreBindings.js +4 -1
  83. package/dist/bindings/base/HttpClientStoreBindings.js.map +1 -1
  84. package/dist/bindings/base/PlatformBindings.js +6 -10
  85. package/dist/bindings/base/PlatformBindings.js.map +1 -1
  86. package/dist/bindings/base/ProxyBindings.js +9 -6
  87. package/dist/bindings/base/ProxyBindings.js.map +1 -1
  88. package/dist/bindings/base/SharedWorkerThread.js +4 -1
  89. package/dist/bindings/base/SharedWorkerThread.js.map +1 -1
  90. package/dist/bindings/base/StoreBindings.js +162 -170
  91. package/dist/bindings/base/StoreBindings.js.map +1 -1
  92. package/dist/bindings/web/WebConfigurationBindings.js +22 -24
  93. package/dist/bindings/web/WebConfigurationBindings.js.map +1 -1
  94. package/dist/bindings/web/WebFileBindings.js +7 -4
  95. package/dist/bindings/web/WebFileBindings.js.map +1 -1
  96. package/dist/bindings/web/WebHttpClientStoreBindings.js +19 -21
  97. package/dist/bindings/web/WebHttpClientStoreBindings.js.map +1 -1
  98. package/dist/bindings/web/WebNavigationBindings.js +4 -1
  99. package/dist/bindings/web/WebNavigationBindings.js.map +1 -1
  100. package/dist/bindings/web/WebProxyBindings.js +5 -6
  101. package/dist/bindings/web/WebProxyBindings.js.map +1 -1
  102. package/dist/bindings/web/WebStoreBindings.js +39 -44
  103. package/dist/bindings/web/WebStoreBindings.js.map +1 -1
  104. package/dist/contextual-menu/ContextualMenu.js +10 -19
  105. package/dist/contextual-menu/ContextualMenu.js.map +1 -1
  106. package/dist/contextual-menu/ContextualMenuElement.js +4 -32
  107. package/dist/contextual-menu/ContextualMenuElement.js.map +1 -1
  108. package/dist/contextual-menu/MenuItem.js +0 -12
  109. package/dist/contextual-menu/MenuItem.js.map +1 -1
  110. package/dist/define/amf/api-annotation-document.js +1 -1
  111. package/dist/define/amf/api-annotation-document.js.map +1 -1
  112. package/dist/define/amf/api-authorization-editor.js +1 -1
  113. package/dist/define/amf/api-authorization-editor.js.map +1 -1
  114. package/dist/define/amf/api-channel-document.js +1 -1
  115. package/dist/define/amf/api-channel-document.js.map +1 -1
  116. package/dist/define/amf/api-documentation-document.js +1 -1
  117. package/dist/define/amf/api-documentation-document.js.map +1 -1
  118. package/dist/define/amf/api-documentation.js +1 -1
  119. package/dist/define/amf/api-documentation.js.map +1 -1
  120. package/dist/define/amf/api-navigation.js +1 -1
  121. package/dist/define/amf/api-navigation.js.map +1 -1
  122. package/dist/define/amf/api-operation-document.js +1 -1
  123. package/dist/define/amf/api-operation-document.js.map +1 -1
  124. package/dist/define/amf/api-parameter-document.js +1 -1
  125. package/dist/define/amf/api-parameter-document.js.map +1 -1
  126. package/dist/define/amf/api-parametrized-security-scheme.js +1 -1
  127. package/dist/define/amf/api-parametrized-security-scheme.js.map +1 -1
  128. package/dist/define/amf/api-payload-document.js +1 -1
  129. package/dist/define/amf/api-payload-document.js.map +1 -1
  130. package/dist/define/amf/api-request-document.js +1 -1
  131. package/dist/define/amf/api-request-document.js.map +1 -1
  132. package/dist/define/amf/api-request-editor.js +1 -1
  133. package/dist/define/amf/api-request-editor.js.map +1 -1
  134. package/dist/define/amf/api-request.js +1 -1
  135. package/dist/define/amf/api-request.js.map +1 -1
  136. package/dist/define/amf/api-resource-document.js +1 -1
  137. package/dist/define/amf/api-resource-document.js.map +1 -1
  138. package/dist/define/amf/api-response-document.js +1 -1
  139. package/dist/define/amf/api-response-document.js.map +1 -1
  140. package/dist/define/amf/api-schema-document.js +1 -1
  141. package/dist/define/amf/api-schema-document.js.map +1 -1
  142. package/dist/define/amf/api-security-document.js +1 -1
  143. package/dist/define/amf/api-security-document.js.map +1 -1
  144. package/dist/define/amf/api-security-requirement-document.js +1 -1
  145. package/dist/define/amf/api-security-requirement-document.js.map +1 -1
  146. package/dist/define/amf/api-server-picker.js +1 -1
  147. package/dist/define/amf/api-server-picker.js.map +1 -1
  148. package/dist/define/amf/api-summary.js +1 -1
  149. package/dist/define/amf/api-summary.js.map +1 -1
  150. package/dist/define/amf/authorization/amf-apikey-authorization.js +1 -1
  151. package/dist/define/amf/authorization/amf-apikey-authorization.js.map +1 -1
  152. package/dist/define/amf/authorization/amf-basic-authorization.js +1 -1
  153. package/dist/define/amf/authorization/amf-basic-authorization.js.map +1 -1
  154. package/dist/define/amf/authorization/amf-bearer-authorization.js +1 -1
  155. package/dist/define/amf/authorization/amf-bearer-authorization.js.map +1 -1
  156. package/dist/define/amf/authorization/amf-oauth2-authorization.js +1 -1
  157. package/dist/define/amf/authorization/amf-oauth2-authorization.js.map +1 -1
  158. package/dist/define/amf/authorization/amf-oidc-authorization.js +1 -1
  159. package/dist/define/amf/authorization/amf-oidc-authorization.js.map +1 -1
  160. package/dist/define/amf/authorization/amf-passthrough-authorization.js +1 -1
  161. package/dist/define/amf/authorization/amf-passthrough-authorization.js.map +1 -1
  162. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js +1 -1
  163. package/dist/define/amf/authorization/amf-ramlcustom-authorization.js.map +1 -1
  164. package/dist/define/authorization/apikey-authorization.js +1 -1
  165. package/dist/define/authorization/apikey-authorization.js.map +1 -1
  166. package/dist/define/authorization/basic-authorization.js +1 -1
  167. package/dist/define/authorization/basic-authorization.js.map +1 -1
  168. package/dist/define/authorization/bearer-authorization.js +1 -1
  169. package/dist/define/authorization/bearer-authorization.js.map +1 -1
  170. package/dist/define/authorization/cc-authorization.js +1 -1
  171. package/dist/define/authorization/cc-authorization.js.map +1 -1
  172. package/dist/define/authorization/ntlm-authorization.js +1 -1
  173. package/dist/define/authorization/ntlm-authorization.js.map +1 -1
  174. package/dist/define/authorization/oauth2-authorization.js +1 -1
  175. package/dist/define/authorization/oauth2-authorization.js.map +1 -1
  176. package/dist/define/authorization/oidc-authorization.js +1 -1
  177. package/dist/define/authorization/oidc-authorization.js.map +1 -1
  178. package/dist/define/contextual-menu/contextual-menu.js +1 -1
  179. package/dist/define/contextual-menu/contextual-menu.js.map +1 -1
  180. package/dist/define/dialog/confirm-delete-dialog.js +1 -1
  181. package/dist/define/dialog/confirm-delete-dialog.js.map +1 -1
  182. package/dist/define/dialog/rename-dialog.js +1 -1
  183. package/dist/define/dialog/rename-dialog.js.map +1 -1
  184. package/dist/define/files/share-file.js +1 -1
  185. package/dist/define/files/share-file.js.map +1 -1
  186. package/dist/define/har/har-viewer.js +1 -1
  187. package/dist/define/har/har-viewer.js.map +1 -1
  188. package/dist/define/highlight/marked-highlight.js +1 -1
  189. package/dist/define/highlight/marked-highlight.js.map +1 -1
  190. package/dist/define/highlight/prism-highlight.js +1 -1
  191. package/dist/define/highlight/prism-highlight.js.map +1 -1
  192. package/dist/define/http/http-assertions.js +1 -1
  193. package/dist/define/http/http-assertions.js.map +1 -1
  194. package/dist/define/http/http-body-editor.js +1 -1
  195. package/dist/define/http/http-body-editor.js.map +1 -1
  196. package/dist/define/http/http-body-multipart-editor.js +1 -1
  197. package/dist/define/http/http-body-multipart-editor.js.map +1 -1
  198. package/dist/define/http/http-body-text-editor.js +1 -1
  199. package/dist/define/http/http-body-text-editor.js.map +1 -1
  200. package/dist/define/http/http-body-urlencoded-editor.js +1 -1
  201. package/dist/define/http/http-body-urlencoded-editor.js.map +1 -1
  202. package/dist/define/http/http-headers-form.js +1 -1
  203. package/dist/define/http/http-headers-form.js.map +1 -1
  204. package/dist/define/http/http-log-body.js +1 -1
  205. package/dist/define/http/http-log-body.js.map +1 -1
  206. package/dist/define/http/http-log-headers.js +1 -1
  207. package/dist/define/http/http-log-headers.js.map +1 -1
  208. package/dist/define/http/http-log-timings.js +1 -1
  209. package/dist/define/http/http-log-timings.js.map +1 -1
  210. package/dist/define/http/http-request-config.js +1 -1
  211. package/dist/define/http/http-request-config.js.map +1 -1
  212. package/dist/define/http/http-request-editor.js +1 -1
  213. package/dist/define/http/http-request-editor.js.map +1 -1
  214. package/dist/define/http/http-request-log.js +1 -1
  215. package/dist/define/http/http-request-log.js.map +1 -1
  216. package/dist/define/http/http-snippets.js +1 -1
  217. package/dist/define/http/http-snippets.js.map +1 -1
  218. package/dist/define/http/http-url-input.js +1 -1
  219. package/dist/define/http/http-url-input.js.map +1 -1
  220. package/dist/define/http/http-url-params-form.js +1 -1
  221. package/dist/define/http/http-url-params-form.js.map +1 -1
  222. package/dist/define/http-project/http-project-request-history.js +1 -1
  223. package/dist/define/http-project/http-project-request-history.js.map +1 -1
  224. package/dist/define/http-project/http-project-request.js +2 -2
  225. package/dist/define/http-project/http-project-request.js.map +1 -1
  226. package/dist/define/http-project/project-navigation.js +1 -1
  227. package/dist/define/http-project/project-navigation.js.map +1 -1
  228. package/dist/define/http-project/project-run-report.js +1 -1
  229. package/dist/define/http-project/project-run-report.js.map +1 -1
  230. package/dist/define/http-project/project-runner.js +2 -2
  231. package/dist/define/http-project/project-runner.js.map +1 -1
  232. package/dist/define/layout/split-view.js +1 -1
  233. package/dist/define/layout/split-view.js.map +1 -1
  234. package/dist/define/schema-design/schema-design-navigation.js +1 -1
  235. package/dist/define/schema-design/schema-design-navigation.js.map +1 -1
  236. package/dist/define/schema-design/schema-namespace-selector.js +1 -1
  237. package/dist/define/schema-design/schema-namespace-selector.js.map +1 -1
  238. package/dist/define/ui/ui-button.js +1 -1
  239. package/dist/define/ui/ui-button.js.map +1 -1
  240. package/dist/define/ui/ui-chip.js +1 -1
  241. package/dist/define/ui/ui-chip.js.map +1 -1
  242. package/dist/define/ui/ui-collapse.js +1 -1
  243. package/dist/define/ui/ui-collapse.js.map +1 -1
  244. package/dist/define/ui/ui-dialog.js +1 -1
  245. package/dist/define/ui/ui-dialog.js.map +1 -1
  246. package/dist/define/ui/ui-dropdown-list.js +1 -1
  247. package/dist/define/ui/ui-dropdown-list.js.map +1 -1
  248. package/dist/define/ui/ui-icon-button.js +1 -1
  249. package/dist/define/ui/ui-icon-button.js.map +1 -1
  250. package/dist/define/ui/ui-icon.js +1 -1
  251. package/dist/define/ui/ui-icon.js.map +1 -1
  252. package/dist/define/ui/ui-list-item.js +1 -1
  253. package/dist/define/ui/ui-list-item.js.map +1 -1
  254. package/dist/define/ui/ui-list.js +1 -1
  255. package/dist/define/ui/ui-list.js.map +1 -1
  256. package/dist/define/ui/ui-listbox.js +1 -1
  257. package/dist/define/ui/ui-listbox.js.map +1 -1
  258. package/dist/define/ui/ui-progress.js +1 -1
  259. package/dist/define/ui/ui-progress.js.map +1 -1
  260. package/dist/define/ui/ui-segmented-button-set.js +1 -1
  261. package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
  262. package/dist/define/ui/ui-segmented-button.js +1 -1
  263. package/dist/define/ui/ui-segmented-button.js.map +1 -1
  264. package/dist/define/ui/ui-snackbar.js +1 -1
  265. package/dist/define/ui/ui-snackbar.js.map +1 -1
  266. package/dist/define/ui/ui-tab.js +1 -1
  267. package/dist/define/ui/ui-tab.js.map +1 -1
  268. package/dist/define/ui/ui-tabs.js +1 -1
  269. package/dist/define/ui/ui-tabs.js.map +1 -1
  270. package/dist/directives/data-attr.js +0 -1
  271. package/dist/directives/data-attr.js.map +1 -1
  272. package/dist/elements/ApiElement.js +0 -7
  273. package/dist/elements/ApiElement.js.map +1 -1
  274. package/dist/elements/amf/ApiAnnotationDocument.element.js +0 -2
  275. package/dist/elements/amf/ApiAnnotationDocument.element.js.map +1 -1
  276. package/dist/elements/amf/ApiAuthorizationEditor.element.js +0 -32
  277. package/dist/elements/amf/ApiAuthorizationEditor.element.js.map +1 -1
  278. package/dist/elements/amf/ApiDocumentation.element.js +0 -91
  279. package/dist/elements/amf/ApiDocumentation.element.js.map +1 -1
  280. package/dist/elements/amf/ApiDocumentationBase.js +0 -9
  281. package/dist/elements/amf/ApiDocumentationBase.js.map +1 -1
  282. package/dist/elements/amf/ApiDocumentationDocument.element.js +0 -1
  283. package/dist/elements/amf/ApiDocumentationDocument.element.js.map +1 -1
  284. package/dist/elements/amf/ApiNavigation.element.js +0 -97
  285. package/dist/elements/amf/ApiNavigation.element.js.map +1 -1
  286. package/dist/elements/amf/ApiOperationDocument.element.js +0 -76
  287. package/dist/elements/amf/ApiOperationDocument.element.js.map +1 -1
  288. package/dist/elements/amf/ApiParameterDocument.element.js +0 -3
  289. package/dist/elements/amf/ApiParameterDocument.element.js.map +1 -1
  290. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js +0 -1
  291. package/dist/elements/amf/ApiParametrizedSecurityScheme.element.js.map +1 -1
  292. package/dist/elements/amf/ApiPayloadDocument.element.js +0 -1
  293. package/dist/elements/amf/ApiPayloadDocument.element.js.map +1 -1
  294. package/dist/elements/amf/ApiRequest.element.js +0 -78
  295. package/dist/elements/amf/ApiRequest.element.js.map +1 -1
  296. package/dist/elements/amf/ApiRequestDocument.element.js +0 -38
  297. package/dist/elements/amf/ApiRequestDocument.element.js.map +1 -1
  298. package/dist/elements/amf/ApiRequestEditor.element.js +0 -118
  299. package/dist/elements/amf/ApiRequestEditor.element.js.map +1 -1
  300. package/dist/elements/amf/ApiResourceDocument.element.js +0 -75
  301. package/dist/elements/amf/ApiResourceDocument.element.js.map +1 -1
  302. package/dist/elements/amf/ApiResponseDocument.element.js +0 -17
  303. package/dist/elements/amf/ApiResponseDocument.element.js.map +1 -1
  304. package/dist/elements/amf/ApiSchemaDocument.element.js +0 -28
  305. package/dist/elements/amf/ApiSchemaDocument.element.js.map +1 -1
  306. package/dist/elements/amf/ApiSecurityDocument.element.js +0 -28
  307. package/dist/elements/amf/ApiSecurityDocument.element.js.map +1 -1
  308. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js +0 -1
  309. package/dist/elements/amf/ApiSecurityRequirementDocument.element.js.map +1 -1
  310. package/dist/elements/amf/ApiServerPicker.element.js +2 -65
  311. package/dist/elements/amf/ApiServerPicker.element.js.map +1 -1
  312. package/dist/elements/amf/ApiSummary.element.js +0 -26
  313. package/dist/elements/amf/ApiSummary.element.js.map +1 -1
  314. package/dist/elements/amf/authorization/AmfApiKey.js +0 -5
  315. package/dist/elements/amf/authorization/AmfApiKey.js.map +1 -1
  316. package/dist/elements/amf/authorization/AmfBasic.js +0 -4
  317. package/dist/elements/amf/authorization/AmfBasic.js.map +1 -1
  318. package/dist/elements/amf/authorization/AmfBearer.js +0 -4
  319. package/dist/elements/amf/authorization/AmfBearer.js.map +1 -1
  320. package/dist/elements/amf/authorization/AmfOauth2.js +0 -13
  321. package/dist/elements/amf/authorization/AmfOauth2.js.map +1 -1
  322. package/dist/elements/amf/authorization/AmfOidc.js +0 -4
  323. package/dist/elements/amf/authorization/AmfOidc.js.map +1 -1
  324. package/dist/elements/amf/authorization/AmfPassThrough.js +0 -6
  325. package/dist/elements/amf/authorization/AmfPassThrough.js.map +1 -1
  326. package/dist/elements/amf/authorization/AmfRamlCustom.js +0 -6
  327. package/dist/elements/amf/authorization/AmfRamlCustom.js.map +1 -1
  328. package/dist/elements/authorization/OAuth2Authorize.js +0 -14
  329. package/dist/elements/authorization/OAuth2Authorize.js.map +1 -1
  330. package/dist/elements/authorization/OidcAuthorize.js +0 -14
  331. package/dist/elements/authorization/OidcAuthorize.js.map +1 -1
  332. package/dist/elements/authorization/ui/ApiKeyAuthorization.js +0 -2
  333. package/dist/elements/authorization/ui/ApiKeyAuthorization.js.map +1 -1
  334. package/dist/elements/authorization/ui/Authorization.js +18 -32
  335. package/dist/elements/authorization/ui/Authorization.js.map +1 -1
  336. package/dist/elements/authorization/ui/CcAuthorization.js +1 -3
  337. package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
  338. package/dist/elements/authorization/ui/OAuth2Authorization.js +21 -50
  339. package/dist/elements/authorization/ui/OAuth2Authorization.js.map +1 -1
  340. package/dist/elements/authorization/ui/OidcAuthorization.js +4 -6
  341. package/dist/elements/authorization/ui/OidcAuthorization.js.map +1 -1
  342. package/dist/elements/code/HttpSnippets.js +9 -8
  343. package/dist/elements/code/HttpSnippets.js.map +1 -1
  344. package/dist/elements/dialog/ConfirmDelete.js +0 -12
  345. package/dist/elements/dialog/ConfirmDelete.js.map +1 -1
  346. package/dist/elements/dialog/Rename.js +0 -6
  347. package/dist/elements/dialog/Rename.js.map +1 -1
  348. package/dist/elements/environment/EnvironmentEditor.js +8 -11
  349. package/dist/elements/environment/EnvironmentEditor.js.map +1 -1
  350. package/dist/elements/environment/ServerEditor.js +7 -45
  351. package/dist/elements/environment/ServerEditor.js.map +1 -1
  352. package/dist/elements/environment/VariablesEditor.js +7 -12
  353. package/dist/elements/environment/VariablesEditor.js.map +1 -1
  354. package/dist/elements/files/ShareFile.js +19 -57
  355. package/dist/elements/files/ShareFile.js.map +1 -1
  356. package/dist/elements/har/HarViewer.js +6 -7
  357. package/dist/elements/har/HarViewer.js.map +1 -1
  358. package/dist/elements/highlight/MarkedHighlight.js +4 -56
  359. package/dist/elements/highlight/MarkedHighlight.js.map +1 -1
  360. package/dist/elements/highlight/PrismHighlight.js +9 -18
  361. package/dist/elements/highlight/PrismHighlight.js.map +1 -1
  362. package/dist/elements/highlight/PrismHighlighter.js +4 -6
  363. package/dist/elements/highlight/PrismHighlighter.js.map +1 -1
  364. package/dist/elements/http/BodyEditor.js +21 -33
  365. package/dist/elements/http/BodyEditor.js.map +1 -1
  366. package/dist/elements/http/BodyMultipartEditor.js +17 -18
  367. package/dist/elements/http/BodyMultipartEditor.js.map +1 -1
  368. package/dist/elements/http/BodyTextEditor.js +2 -15
  369. package/dist/elements/http/BodyTextEditor.js.map +1 -1
  370. package/dist/elements/http/BodyUrlEncodedEditor.js +20 -21
  371. package/dist/elements/http/BodyUrlEncodedEditor.js.map +1 -1
  372. package/dist/elements/http/HeadersForm.js +16 -17
  373. package/dist/elements/http/HeadersForm.js.map +1 -1
  374. package/dist/elements/http/HttpAssertions.js +8 -6
  375. package/dist/elements/http/HttpAssertions.js.map +1 -1
  376. package/dist/elements/http/LogBody.js +10 -21
  377. package/dist/elements/http/LogBody.js.map +1 -1
  378. package/dist/elements/http/LogHeaders.js +4 -23
  379. package/dist/elements/http/LogHeaders.js.map +1 -1
  380. package/dist/elements/http/LogTimings.js +11 -13
  381. package/dist/elements/http/LogTimings.js.map +1 -1
  382. package/dist/elements/http/RequestConfigElement.js +7 -4
  383. package/dist/elements/http/RequestConfigElement.js.map +1 -1
  384. package/dist/elements/http/RequestEditor.js +54 -88
  385. package/dist/elements/http/RequestEditor.js.map +1 -1
  386. package/dist/elements/http/RequestLog.js +9 -14
  387. package/dist/elements/http/RequestLog.js.map +1 -1
  388. package/dist/elements/http/UrlInput.js +15 -25
  389. package/dist/elements/http/UrlInput.js.map +1 -1
  390. package/dist/elements/http/UrlParamsForm.js +16 -13
  391. package/dist/elements/http/UrlParamsForm.js.map +1 -1
  392. package/dist/elements/layout/LayoutManager.js +16 -24
  393. package/dist/elements/layout/LayoutManager.js.map +1 -1
  394. package/dist/elements/layout/LayoutPanelElement.js +17 -23
  395. package/dist/elements/layout/LayoutPanelElement.js.map +1 -1
  396. package/dist/elements/layout/SplitItem.js +4 -12
  397. package/dist/elements/layout/SplitItem.js.map +1 -1
  398. package/dist/elements/layout/SplitLayout.js +18 -24
  399. package/dist/elements/layout/SplitLayout.js.map +1 -1
  400. package/dist/elements/layout/SplitPanel.js +10 -16
  401. package/dist/elements/layout/SplitPanel.js.map +1 -1
  402. package/dist/elements/layout/SplitView.js +17 -26
  403. package/dist/elements/layout/SplitView.js.map +1 -1
  404. package/dist/elements/navigation/AppNavigationElement.js +8 -47
  405. package/dist/elements/navigation/AppNavigationElement.js.map +1 -1
  406. package/dist/elements/navigation/AppNavigationItemElement.js +19 -24
  407. package/dist/elements/navigation/AppNavigationItemElement.js.map +1 -1
  408. package/dist/elements/project/HttpProjectRequest.js +0 -38
  409. package/dist/elements/project/HttpProjectRequest.js.map +1 -1
  410. package/dist/elements/project/HttpProjectRequestHistory.js +9 -35
  411. package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
  412. package/dist/elements/project/ProjectNavigation.js +0 -4
  413. package/dist/elements/project/ProjectNavigation.js.map +1 -1
  414. package/dist/elements/project/ProjectRunReport.js +4 -15
  415. package/dist/elements/project/ProjectRunReport.js.map +1 -1
  416. package/dist/elements/project/ProjectRunner.js +2 -47
  417. package/dist/elements/project/ProjectRunner.js.map +1 -1
  418. package/dist/elements/schema-design/AssociationFormElement.js +0 -13
  419. package/dist/elements/schema-design/AssociationFormElement.js.map +1 -1
  420. package/dist/elements/schema-design/DataEntityEditorElement.js +0 -22
  421. package/dist/elements/schema-design/DataEntityEditorElement.js.map +1 -1
  422. package/dist/elements/schema-design/DataModelVisualizationElement.js +0 -16
  423. package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
  424. package/dist/elements/schema-design/DataSchemaDocument.js +0 -36
  425. package/dist/elements/schema-design/DataSchemaDocument.js.map +1 -1
  426. package/dist/elements/schema-design/EntityFormElement.js +0 -18
  427. package/dist/elements/schema-design/EntityFormElement.js.map +1 -1
  428. package/dist/elements/schema-design/PropertyFormElement.js +0 -12
  429. package/dist/elements/schema-design/PropertyFormElement.js.map +1 -1
  430. package/dist/elements/schema-design/SchemaDesignNavigation.js +0 -9
  431. package/dist/elements/schema-design/SchemaDesignNavigation.js.map +1 -1
  432. package/dist/elements/schema-design/SchemaNamespaceSelector.js +0 -9
  433. package/dist/elements/schema-design/SchemaNamespaceSelector.js.map +1 -1
  434. package/dist/elements/user/UserAvatarElement.js +0 -9
  435. package/dist/elements/user/UserAvatarElement.js.map +1 -1
  436. package/dist/events/http-client/models/CertificatesEvents.js +2 -2
  437. package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
  438. package/dist/http-client/idb/Base.js +5 -10
  439. package/dist/http-client/idb/Base.js.map +1 -1
  440. package/dist/http-client/idb/LegacyMockedStore.js +0 -1
  441. package/dist/http-client/idb/LegacyMockedStore.js.map +1 -1
  442. package/dist/http-client/idb/MockedStore.js +3 -1
  443. package/dist/http-client/idb/MockedStore.js.map +1 -1
  444. package/dist/http-client/store/DataImportProcessor.js +0 -3
  445. package/dist/http-client/store/DataImportProcessor.js.map +1 -1
  446. package/dist/http-client/store/HttpClientIdbDatabase.js +8 -7
  447. package/dist/http-client/store/HttpClientIdbDatabase.js.map +1 -1
  448. package/dist/http-client/store/IdbThread.js +23 -20
  449. package/dist/http-client/store/IdbThread.js.map +1 -1
  450. package/dist/http-client/store/idb/IdbProjectUi.js +4 -1
  451. package/dist/http-client/store/idb/IdbProjectUi.js.map +1 -1
  452. package/dist/http-client/store/idb/IdbStore.js +0 -2
  453. package/dist/http-client/store/idb/IdbStore.js.map +1 -1
  454. package/dist/http-client/store/idb/IdbUrlHistory.js +4 -1
  455. package/dist/http-client/store/idb/IdbUrlHistory.js.map +1 -1
  456. package/dist/http-client/store/idb/IdbWsHistory.js +4 -1
  457. package/dist/http-client/store/idb/IdbWsHistory.js.map +1 -1
  458. package/dist/lib/chart/HttpHistoryChart.js +7 -8
  459. package/dist/lib/chart/HttpHistoryChart.js.map +1 -1
  460. package/dist/mixins/FileDropMixin.js +0 -1
  461. package/dist/mixins/FileDropMixin.js.map +1 -1
  462. package/dist/mixins/RenderableMixin.js +11 -15
  463. package/dist/mixins/RenderableMixin.js.map +1 -1
  464. package/dist/pages/ApplicationScreen.js +34 -55
  465. package/dist/pages/ApplicationScreen.js.map +1 -1
  466. package/dist/pages/api-client/ApiClient.screen.js +11 -20
  467. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  468. package/dist/pages/api-client/Authenticate.screen.js +4 -6
  469. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  470. package/dist/pages/api-client/StoreConfig.screen.js +21 -37
  471. package/dist/pages/api-client/StoreConfig.screen.js.map +1 -1
  472. package/dist/pages/api-client/Telemetry.screen.js +1 -2
  473. package/dist/pages/api-client/Telemetry.screen.js.map +1 -1
  474. package/dist/pages/api-client/pages/Files.page.js +6 -27
  475. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  476. package/dist/pages/api-client/pages/Settings.page.js +2 -4
  477. package/dist/pages/api-client/pages/Settings.page.js.map +1 -1
  478. package/dist/pages/api-client/pages/Trash.page.js +2 -13
  479. package/dist/pages/api-client/pages/Trash.page.js.map +1 -1
  480. package/dist/pages/demo/DemoPage.d.ts.map +1 -1
  481. package/dist/pages/demo/DemoPage.js +25 -24
  482. package/dist/pages/demo/DemoPage.js.map +1 -1
  483. package/dist/pages/http-project/HttpProject.screen.js +25 -35
  484. package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
  485. package/dist/pages/schema-design/SchemaDesigner.screen.js +14 -27
  486. package/dist/pages/schema-design/SchemaDesigner.screen.js.map +1 -1
  487. package/dist/store/HttpStore.js +0 -3
  488. package/dist/store/HttpStore.js.map +1 -1
  489. package/dist/store/UserCache.js +5 -5
  490. package/dist/store/UserCache.js.map +1 -1
  491. package/dist/ui/UiElement.js +4 -5
  492. package/dist/ui/UiElement.js.map +1 -1
  493. package/dist/ui/button/SegmentedButton.js +9 -11
  494. package/dist/ui/button/SegmentedButton.js.map +1 -1
  495. package/dist/ui/button/SegmentedButtonsSet.js +6 -7
  496. package/dist/ui/button/SegmentedButtonsSet.js.map +1 -1
  497. package/dist/ui/button/UiButton.js +17 -39
  498. package/dist/ui/button/UiButton.js.map +1 -1
  499. package/dist/ui/button/UiIconButton.js +9 -35
  500. package/dist/ui/button/UiIconButton.js.map +1 -1
  501. package/dist/ui/chip/UiChip.js +9 -49
  502. package/dist/ui/chip/UiChip.js.map +1 -1
  503. package/dist/ui/collapse/UiCollapse.js +15 -20
  504. package/dist/ui/collapse/UiCollapse.js.map +1 -1
  505. package/dist/ui/controllers/ActionController.js +143 -144
  506. package/dist/ui/controllers/ActionController.js.map +1 -1
  507. package/dist/ui/controllers/RadioSelectionController.js +0 -1
  508. package/dist/ui/controllers/RadioSelectionController.js.map +1 -1
  509. package/dist/ui/date/DateTime.js +3 -3
  510. package/dist/ui/date/DateTime.js.map +1 -1
  511. package/dist/ui/dialog/UiDialog.d.ts +1 -1
  512. package/dist/ui/dialog/UiDialog.d.ts.map +1 -1
  513. package/dist/ui/dialog/UiDialog.js +19 -41
  514. package/dist/ui/dialog/UiDialog.js.map +1 -1
  515. package/dist/ui/effects/ripple.js +20 -18
  516. package/dist/ui/effects/ripple.js.map +1 -1
  517. package/dist/ui/effects/rippleDirective.js +6 -7
  518. package/dist/ui/effects/rippleDirective.js.map +1 -1
  519. package/dist/ui/icons/UiIcon.js +4 -3
  520. package/dist/ui/icons/UiIcon.js.map +1 -1
  521. package/dist/ui/input/CheckboxElement.js +12 -10
  522. package/dist/ui/input/CheckboxElement.js.map +1 -1
  523. package/dist/ui/input/CheckedElement.js +2 -13
  524. package/dist/ui/input/CheckedElement.js.map +1 -1
  525. package/dist/ui/input/Input.js +169 -234
  526. package/dist/ui/input/Input.js.map +1 -1
  527. package/dist/ui/input/RadioElement.js +13 -11
  528. package/dist/ui/input/RadioElement.js.map +1 -1
  529. package/dist/ui/input/SwitchElement.js +0 -18
  530. package/dist/ui/input/SwitchElement.js.map +1 -1
  531. package/dist/ui/input/TextAreaElement.js +0 -15
  532. package/dist/ui/input/TextAreaElement.js.map +1 -1
  533. package/dist/ui/list/DividerElement.js +5 -10
  534. package/dist/ui/list/DividerElement.js.map +1 -1
  535. package/dist/ui/list/UiDropdownList.js +7 -48
  536. package/dist/ui/list/UiDropdownList.js.map +1 -1
  537. package/dist/ui/list/UiList.js +3 -15
  538. package/dist/ui/list/UiList.js.map +1 -1
  539. package/dist/ui/list/UiListItem.js +4 -17
  540. package/dist/ui/list/UiListItem.js.map +1 -1
  541. package/dist/ui/list/UiListbox.js +0 -1
  542. package/dist/ui/list/UiListbox.js.map +1 -1
  543. package/dist/ui/notification/SnackNotifications.js +1 -2
  544. package/dist/ui/notification/SnackNotifications.js.map +1 -1
  545. package/dist/ui/notification/Snackbar.js +27 -51
  546. package/dist/ui/notification/Snackbar.js.map +1 -1
  547. package/dist/ui/progress/Range.js +24 -23
  548. package/dist/ui/progress/Range.js.map +1 -1
  549. package/dist/ui/progress/UiProgress.js +0 -11
  550. package/dist/ui/progress/UiProgress.js.map +1 -1
  551. package/dist/ui/table/DataTable.js +7 -12
  552. package/dist/ui/table/DataTable.js.map +1 -1
  553. package/dist/ui/tabs/UiTab.js +24 -25
  554. package/dist/ui/tabs/UiTab.js.map +1 -1
  555. package/dist/ui/tabs/UiTabs.js +21 -35
  556. package/dist/ui/tabs/UiTabs.js.map +1 -1
  557. package/dist/visualization/elements/VizWorkspaceElement.js +12 -21
  558. package/dist/visualization/elements/VizWorkspaceElement.js.map +1 -1
  559. package/dist/visualization/lib/AssociationAnchors.js +16 -28
  560. package/dist/visualization/lib/AssociationAnchors.js.map +1 -1
  561. package/dist/visualization/lib/Point.js +0 -2
  562. package/dist/visualization/lib/Point.js.map +1 -1
  563. package/dist/visualization/lib/SelectionManager.js +10 -11
  564. package/dist/visualization/lib/SelectionManager.js.map +1 -1
  565. package/dist/visualization/lib/WorkspaceAlignment.js +0 -1
  566. package/dist/visualization/lib/WorkspaceAlignment.js.map +1 -1
  567. package/dist/visualization/lib/WorkspaceDebugging.js +5 -8
  568. package/dist/visualization/lib/WorkspaceDebugging.js.map +1 -1
  569. package/dist/visualization/lib/WorkspaceEdges.js +17 -19
  570. package/dist/visualization/lib/WorkspaceEdges.js.map +1 -1
  571. package/dist/visualization/lib/WorkspaceGestures.js +0 -3
  572. package/dist/visualization/lib/WorkspaceGestures.js.map +1 -1
  573. package/dist/visualization/lib/WorkspaceSizing.js +4 -6
  574. package/dist/visualization/lib/WorkspaceSizing.js.map +1 -1
  575. package/dist/visualization/lib/lines/RectilinearLine.js +8 -34
  576. package/dist/visualization/lib/lines/RectilinearLine.js.map +1 -1
  577. package/dist/visualization/lib/tips/RectilinearTip.js +0 -1
  578. package/dist/visualization/lib/tips/RectilinearTip.js.map +1 -1
  579. package/dist/visualization/lib/tips/TipArtist.js +0 -3
  580. package/dist/visualization/lib/tips/TipArtist.js.map +1 -1
  581. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js +3 -5
  582. package/dist/visualization/plugin/dnd/DragAndDropPlugin.js.map +1 -1
  583. package/dist/visualization/plugin/group-selection/GroupSelection.js +19 -19
  584. package/dist/visualization/plugin/group-selection/GroupSelection.js.map +1 -1
  585. package/dist/visualization/plugin/positioning/WorkspaceLayout.js +21 -38
  586. package/dist/visualization/plugin/positioning/WorkspaceLayout.js.map +1 -1
  587. package/package.json +3 -2
  588. package/src/pages/demo/DemoPage.ts +12 -11
  589. package/src/ui/dialog/UiDialog.ts +6 -4
  590. package/test/ui/dialog/UiDialog.test.ts +236 -0
  591. package/tsconfig.json +2 -2
  592. package/demo/themes/default.css +0 -0
  593. package/demo/themes/m3/theme.dark.css +0 -40
  594. package/demo/themes/m3/theme.light.css +0 -40
  595. package/demo/themes/m3/tokens.css +0 -291
@@ -38,42 +38,6 @@ export default class StoreConfigScreen extends ApplicationScreen {
38
38
  { pattern: '*', method: 'telemetryRoute' },
39
39
  ];
40
40
  }
41
- /**
42
- * The selected store configuration
43
- */
44
- selected;
45
- /**
46
- * Whether the current environment is a default environment
47
- */
48
- isDefault = false;
49
- /**
50
- * Flag set when the screen is requesting the list of environments.
51
- */
52
- loadingEnvironments = false;
53
- /**
54
- * The list of application environments.
55
- */
56
- config;
57
- /**
58
- * The selected store type.
59
- */
60
- storeType;
61
- /**
62
- * Whether the dialog with the help message is opened.
63
- */
64
- infoDialogOpened = false;
65
- /**
66
- * A network store validation error, if any.
67
- */
68
- validationError;
69
- /**
70
- * Whether the application is performing the store validation.
71
- */
72
- validating = false;
73
- /**
74
- * Init reason to pass with the create event.
75
- */
76
- initReason = 'add';
77
41
  /**
78
42
  * The list of environments to render.
79
43
  */
@@ -85,7 +49,6 @@ export default class StoreConfigScreen extends ApplicationScreen {
85
49
  }
86
50
  return envs;
87
51
  }
88
- firstRunInternal = false;
89
52
  get firstRun() {
90
53
  return this.firstRunInternal;
91
54
  }
@@ -104,6 +67,27 @@ export default class StoreConfigScreen extends ApplicationScreen {
104
67
  }
105
68
  constructor(init) {
106
69
  super(init);
70
+ /**
71
+ * Whether the current environment is a default environment
72
+ */
73
+ this.isDefault = false;
74
+ /**
75
+ * Flag set when the screen is requesting the list of environments.
76
+ */
77
+ this.loadingEnvironments = false;
78
+ /**
79
+ * Whether the dialog with the help message is opened.
80
+ */
81
+ this.infoDialogOpened = false;
82
+ /**
83
+ * Whether the application is performing the store validation.
84
+ */
85
+ this.validating = false;
86
+ /**
87
+ * Init reason to pass with the create event.
88
+ */
89
+ this.initReason = 'add';
90
+ this.firstRunInternal = false;
107
91
  }
108
92
  async initialize() {
109
93
  if (!await this.isPlatformSupported()) {
@@ -1 +1 @@
1
- {"version":3,"file":"StoreConfig.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/StoreConfig.screen.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, CSSResult, nothing } from 'lit';\nimport { Events as CoreEvents } from '@api-client/core/build/browser.js';\nimport { reactive } from '../../lib/decorators.js';\nimport { navigate } from '../../lib/route.js';\nimport { IConfigEnvironment, IEnvConfig, IConfigInit, DataSourceType, ConfigInitReason, ConfigBroadcast } from '../../lib/config/Config.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport styles from './StoreConfig.styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport colorStyles from '../../styles/m3/colors.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport { IRoute, IRouteResult } from '../../mixins/RouteMixin.js';\nimport type { AddConfigEnvironmentInit } from '../../bindings/base/ConfigurationBindings.js';\nimport { UiDialogClosingReason } from '../../ui/dialog/UiDialog.js';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport RadioElement from '../../ui/input/RadioElement.js';\nimport Input from '../../ui/input/Input.js';\nimport '@github/relative-time-element';\nimport '../../define/dialog/rename-dialog.js';\nimport '../../define/dialog/confirm-delete-dialog.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-progress.js';\nimport '../../define/ui/ui-dialog.js';\nimport '../../define/ui/ui-radio.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/app-navigation-item.js';\n\nexport default class StoreConfigScreen extends ApplicationScreen {\n override async storeChanged(): Promise<void> {\n // ...\n }\n\n static get styles(): CSSResult[] {\n return [globalStyles, typography, colorStyles, dialogStyles, styles, surfaceStyles];\n }\n\n static get routes(): IRoute[] {\n return [\n { pattern: '/start', method: 'startRoute', fallback: true, name: 'Store welcome', title: 'Store Configuration Welcome' },\n { pattern: '/store/(?<key>.*)', method: 'storeRoute', name: 'Store configuration', title: 'Store configuration' },\n { pattern: '/new', method: 'newRoute', name: 'New store configuration', title: 'New store configuration' },\n { pattern: '*', method: 'telemetryRoute' },\n ];\n }\n\n /**\n * The selected store configuration\n */\n @reactive() protected selected?: string;\n\n /**\n * Whether the current environment is a default environment\n */\n @reactive() protected isDefault = false;\n\n /**\n * Flag set when the screen is requesting the list of environments.\n */\n @reactive() protected loadingEnvironments = false;\n\n /**\n * The list of application environments.\n */\n @reactive() protected config?: IEnvConfig;\n\n /**\n * The selected store type.\n */\n @reactive() storeType?: DataSourceType;\n\n /**\n * Whether the dialog with the help message is opened.\n */\n @reactive() infoDialogOpened = false;\n\n /**\n * A network store validation error, if any.\n */\n @reactive() validationError?: string;\n\n /**\n * Whether the application is performing the store validation.\n */\n @reactive() validating = false;\n\n /**\n * Init reason to pass with the create event.\n */\n initReason: ConfigInitReason = 'add';\n\n /**\n * The list of environments to render.\n */\n get environments(): IConfigEnvironment[] {\n const { config } = this;\n const envs = config?.environments;\n if (!envs) {\n return [];\n }\n return envs;\n }\n\n private firstRunInternal = false;\n\n get firstRun(): boolean {\n return this.firstRunInternal;\n }\n\n set firstRun(value: boolean) {\n if (this.firstRunInternal === value) {\n return;\n }\n this.firstRunInternal = value;\n if (value) {\n document.body.classList.add('first-run');\n } else {\n document.body.classList.remove('first-run');\n }\n this.render();\n }\n\n constructor(init: ApplicationInit) {\n super(init);\n }\n\n override async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n\n await this.bindings.store.initialize();\n await this.bindings.store.initializeStore();\n await this.bindings.config.initialize();\n\n await this.initializeConfig();\n \n try {\n await this.initializeStore(false);\n } catch (e) {\n // ...\n }\n await this.listEnvironments();\n this.setupFirstRun();\n \n const url = new URL(window.location.href);\n if (url.searchParams.has('init-reason')) {\n this.initReason = url.searchParams.get('init-reason') as ConfigInitReason;\n } else {\n this.initReason = 'add';\n }\n\n this.initializeRouting();\n this.initialized = true;\n }\n\n setupFirstRun(): void {\n const { environments } = this;\n this.firstRun = environments.length === 0;\n }\n\n async listEnvironments(): Promise<void> {\n this.loadingEnvironments = true;\n this.config = undefined;\n try {\n this.config = await this.bindings.config.environment.list();\n } catch (e) {\n const err = e as Error;\n CoreEvents.Telemetry.exception(err.message, true);\n this.reportCriticalError('Unable to load the list of environments.');\n } finally {\n this.loadingEnvironments = false;\n }\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n this.selected = undefined;\n this.env = undefined;\n this.isDefault = false;\n }\n\n protected startRoute(): void {\n this.resetRoute();\n this.page = 'start';\n }\n\n protected storeRoute(info: IRouteResult): void {\n if (!info.params || !info.params.key) {\n throw new Error(`Invalid route configuration. Missing parameters.`);\n }\n this.resetRoute();\n const key = info.params.key as string;\n this.page = 'store';\n this.selected = key;\n const { config } = this;\n if (config && config.environments) {\n const env = config.environments.find(i => i.key === key);\n this.env = env;\n this.isDefault = !!env && env.key === config.current;\n }\n }\n\n protected newRoute(): void {\n this.resetRoute();\n this.page = 'new';\n }\n\n protected telemetryRoute(info: IRouteResult): void {\n CoreEvents.Telemetry.view(info.route.name || info.route.pattern || '/');\n }\n\n protected handleSourceSelected(e: Event): void {\n const radio = e.target as RadioElement;\n this.storeType = radio.value as DataSourceType;\n }\n\n protected handleOpenHelp(e: Event): void {\n e.preventDefault();\n this.infoDialogOpened = true;\n }\n\n protected handleDialogClose(): void {\n this.infoDialogOpened = false;\n }\n\n protected handleContinue(): void {\n const info = this.createInit();\n if (!info) {\n return;\n }\n this.validateInput(info);\n }\n\n protected handleCancel(): void {\n window.history.back();\n }\n\n protected createInit(): IConfigInit | undefined {\n if (!this.storeType) {\n return undefined;\n }\n const isNetwork = this.storeType === 'network-store';\n let location: string | undefined;\n if (isNetwork) {\n const input = document.querySelector('.store-url') as Input;\n if (!input.checkValidity()) {\n return undefined;\n }\n location = input.value.trim();\n if (!location) {\n return undefined;\n }\n if (location.endsWith('/')) {\n location = location.substring(0, location.length - 1);\n }\n }\n const info: IConfigInit = {\n source: this.storeType,\n location,\n reason: this.initReason as ConfigInitReason,\n };\n return info;\n }\n\n protected async validateInput(init: IConfigInit): Promise<void> {\n if (init.source === 'network-store') {\n this.validating = true;\n const error = await this.validateNetworkStore(init.location as string);\n this.validating = false;\n if (error) {\n this.validationError = error;\n return;\n }\n }\n await this.storeEnvironment(init);\n }\n\n protected async storeEnvironment(init: IConfigInit): Promise<void> {\n const { config } = this;\n const envs = config?.environments;\n const hasEnvironments = !!envs && !!envs.length;\n if (!hasEnvironments) {\n // eslint-disable-next-line no-param-reassign\n init.asDefault = true;\n }\n await this.bindings.store.environment.init(init);\n }\n\n protected async validateNetworkStore(baseUri: string): Promise<string | undefined> {\n try {\n const info = await this.bindings.store.environment.readStoreInfo(baseUri);\n if (!info) {\n throw new Error(`Unable to connect.`);\n }\n } catch (e) {\n return (e as Error).message;\n }\n return undefined;\n }\n\n protected override handleConfigBroadcast(e: MessageEvent): void {\n const event = e.data as ConfigBroadcast;\n const { path } = event;\n if (path === 'environment.setDefault') {\n this.handleDefaultEnvironmentSet(event.env as IConfigEnvironment);\n } else if (path === 'environment.add') {\n this.handleEnvironmentAdd(event.env as IConfigEnvironment, event.init as AddConfigEnvironmentInit);\n } else if (path === 'environment.remove') {\n this.handleEnvironmentRemoved(event.id as string);\n } else if (path === 'environment.update') {\n this.handleEnvironmentUpdated(event.env as IConfigEnvironment);\n }\n }\n\n protected handleEnvironmentUpdated(env: IConfigEnvironment): void {\n const { config } = this;\n if (!env || !config) {\n return;\n }\n if (!config.environments) {\n config.environments = [];\n }\n const index = config.environments.findIndex(i => i.key === env.key);\n if (index >= 0) {\n config.environments[index] = env;\n } else {\n config.environments.push(env);\n }\n if (this.env && this.env.key === env.key) {\n this.env = env;\n }\n this.render();\n }\n\n protected handleEnvironmentRemoved(id: string): void {\n const { config } = this;\n if (!id || !config) {\n return;\n }\n if (!config.environments) {\n return;\n }\n const index = config.environments.findIndex(i => i.key === id);\n if (index >= 0) {\n config.environments.splice(index, 1);\n this.render();\n }\n if (this.selected === id) {\n navigate('start');\n }\n this.setupFirstRun();\n }\n\n protected override handleDefaultEnvironmentSet(env: IConfigEnvironment): void {\n const { config } = this;\n if (!env || !config) {\n return;\n }\n this.revalidateCurrent(env.key);\n }\n\n protected override handleEnvironmentAdd(env: IConfigEnvironment, init: AddConfigEnvironmentInit = {}): void {\n const { config } = this;\n if (!config) {\n return;\n }\n if (!config.environments) {\n config.environments = [];\n }\n config.environments.push(env);\n if (init.asDefault) {\n this.revalidateCurrent(env.key);\n }\n if (['new', 'start'].includes(this.page as string)) {\n navigate('store', env.key);\n } else {\n this.render();\n }\n this.setupFirstRun();\n }\n\n protected revalidateCurrent(id: string): void {\n const { config } = this;\n if (!config) {\n throw new Error(`Config is not set.`);\n }\n config.current = id;\n if (this.env) {\n this.isDefault = this.env.key === id;\n }\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n switch (option) {\n case 'rename': this.renameEnvironment(); break;\n case 'make-default': this.makeEnvironmentDefault(); break;\n case 'delete': this.deleteEnvironment(); break;\n case 'authenticate': this.authenticateEnvironment(); break;\n default:\n }\n }\n\n protected renameEnvironment(): void {\n const { env } = this;\n if (!env) {\n throw new Error(`Environment not set`);\n }\n const dialog = document.createElement('rename-dialog');\n dialog.name = env.name;\n dialog.modal = true;\n dialog.open = true;\n document.body.appendChild(dialog);\n dialog.addEventListener('close', (ev: Event) => {\n document.body.removeChild(dialog);\n const event = ev as CustomEvent<UiDialogClosingReason>;\n const { cancelled, value } = event.detail;\n if (!cancelled && value) {\n this.bindings.config.environment.update({ ...env, name: value as string });\n }\n });\n }\n\n protected deleteEnvironment(): void {\n const { env } = this;\n if (!env) {\n throw new Error(`Environment not set`);\n }\n const dialog = document.createElement('confirm-delete-dialog');\n dialog.open = true;\n dialog.modal = true;\n const message = document.createElement('span');\n message.textContent = 'Are you sure you want to delete this store configuration?';\n dialog.appendChild(message);\n document.body.appendChild(dialog);\n dialog.addEventListener('close', (ev: Event) => {\n document.body.removeChild(dialog);\n const event = ev as CustomEvent<UiDialogClosingReason>;\n const { cancelled } = event.detail;\n if (!cancelled) {\n this.bindings.config.environment.remove(env.key);\n }\n });\n }\n\n protected async makeEnvironmentDefault(): Promise<void> {\n const { selected } = this;\n if (!selected) {\n return;\n }\n await this.bindings.config.environment.setDefault(selected);\n }\n\n protected async authenticateEnvironment(): Promise<void> {\n const { env } = this;\n if (!env) {\n return;\n }\n await this.bindings.store.auth.authenticate({\n force: true, \n updateEnvironment: true,\n env, \n });\n }\n\n protected handleAddNewEnvironment(): void {\n navigate('new');\n }\n\n protected storeNavHandler(e: Event): void {\n const target = e.target as HTMLElement;\n const { key } = target.dataset;\n if (!key) {\n return;\n }\n navigate('store', key)\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n if (this.firstRun) {\n return this.renderFirstRun();\n }\n return html`\n ${this.headerTemplate()}\n ${this.navigationTemplate()}\n ${this.mainTemplate()}\n ${this.renderHelpDialog()}\n `;\n }\n\n protected renderFirstRun(): TemplateResult {\n return html`\n ${this.renderFirstRunHeader()}\n <main class=\"surface1\">\n ${this.addNewTemplate()}\n </main>\n ${this.renderHelpDialog()}\n `;\n }\n\n protected renderFirstRunHeader(): TemplateResult {\n return html`\n <header class=\"start-page-header\">\n <h1 class=\"headline-medium first-run\">Welcome to API Client</h1>\n </header>\n `;\n }\n\n protected override headerTemplate(): TemplateResult {\n return html`\n <header class=\"start-page-header\">\n <h1 class=\"title-large\">Store configuration</h1>\n </header>\n `;\n }\n\n protected override navigationTemplate(): TemplateResult {\n const { config } = this;\n const envs = config?.environments;\n const hasEnvironments = !!envs && !!envs.length;\n return html`\n <nav aria-label=\"existing stores\">\n <ui-button title=\"Opens a form to create a new environment\" @click=\"${this.handleAddNewEnvironment}\">\n <ui-icon icon=\"add\" slot=\"icon\"></ui-icon>\n Add new\n </ui-button>\n ${hasEnvironments ? this.navigationConfigTemplate(envs) : nothing}\n </nav>\n `;\n }\n\n protected navigationConfigTemplate(envs: IConfigEnvironment[]): TemplateResult {\n return html`\n <ol class=\"nav-list\">\n ${envs.map(i => this.navigationItemTemplate(i))}\n </ol>\n `;\n }\n\n protected navigationItemTemplate(item: IConfigEnvironment): TemplateResult {\n const { selected, config } = this;\n const isDefault = !!config && item.key === config.current;\n const name = item.name || 'Unnamed configuration';\n // const needsAuth = item.source === 'network-store' && !item.authenticated;\n return html`\n <li>\n <app-navigation-item data-key=\"${item.key}\" .selected=${selected === item.key} @click=\"${this.storeNavHandler}\">\n ${isDefault ? html`<ui-icon icon=\"taskAlt\" slot=\"icon\" title=\"Default configuration\">` : ''}\n ${name}\n </app-navigation-item>\n </li>\n `;\n }\n\n protected renderAddButton(): TemplateResult {\n return html`<ui-button \n type=\"tonal\"\n class=\"add-button\" \n title=\"Opens a form to create a new environment\"\n @click=\"${this.handleAddNewEnvironment}\"\n >Add new</ui-button>`;\n }\n\n protected override mainTemplate(): TemplateResult {\n let template: TemplateResult;\n switch (this.page) {\n case 'store': template = this.storeTemplate(); break;\n case 'new': template = this.addNewTemplate(); break;\n default:\n template = this.startTemplate(); break;\n }\n return html`\n <main class=\"surface1\">\n ${this.renderProgress()}\n ${template}\n </main>\n `;\n }\n\n protected startTemplate(): TemplateResult {\n const { config } = this;\n if (!config || !config.environments || !config.environments.length) {\n return html`\n <p class=\"body-large\">It looks like you have no stores configured.</p>\n `;\n }\n return html`\n <p class=\"body-large\">Store configuration allows you to manage connections to different API stores.</p>\n `;\n }\n\n protected storeTemplate(): TemplateResult {\n const { config, env } = this;\n if (!config || !env) {\n return html`Invalid state, config not ready.`;\n }\n const isDefault = env.key === config.current;\n const isLocal = env.source === 'local-store';\n return html`\n <section>\n <div class=\"title-area\">\n <h2 class=\"title-medium text-selectable\">${env.name || 'Unnamed configuration'}</h2>\n ${this.environmentOptionsTemplate()}\n </div>\n <dl class=\"body-medium\">\n <dt>Key:</dt>\n <dd class=\"text-selectable\">${env.key}</dd>\n\n <dt>URI</dt>\n <dd class=\"text-selectable\">${env.location}</dd>\n\n <dt>Source</dt>\n <dd class=\"text-selectable\">${isLocal ? 'Local store' : 'Network store'}</dd>\n\n <dt>Default environment</dt>\n <dd>${isDefault ? 'Yes' : 'No'}</dd>\n\n ${isLocal ? '' : this.storeSessionInfo(env)}\n </dl>\n </section>\n `;\n }\n\n protected storeSessionInfo(env: IConfigEnvironment): TemplateResult {\n const { tokenExpires } = env;\n const time = tokenExpires ? new Date(tokenExpires) : undefined;\n return html`\n <dt>Authenticated</dt>\n <dd>${env.authenticated ? 'Yes' : 'No'}</dd>\n\n <dt>Token expires</dt>\n <dd>${time ? html`<relative-time datetime=\"${time.toISOString()}\"></relative-time>` : 'Unknown'}</dd>\n `;\n }\n\n protected environmentOptionsTemplate(): TemplateResult {\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleOption}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-icon-button aria-label=\"Press to select available options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"rename\" image=\"icon\" title=\"Renames this environment\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"rename\"></ui-icon>\n Rename\n </ui-list-item>\n <ui-list-item role=\"menuitem\" data-option=\"make-default\" image=\"icon\" title=\"Marks this environment as default\" ?disabled=\"${this.isDefault}\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"checkBox\"></ui-icon>\n Make default\n </ui-list-item>\n <ui-list-item role=\"menuitem\" data-option=\"authenticate\" image=\"icon\" title=\"Authenticate the environment\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"key\"></ui-icon>\n Authenticate\n </ui-list-item>\n <ui-list-item role=\"menuitem\" data-option=\"delete\" image=\"icon\" title=\"Deletes the environment\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Delete\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected addNewTemplate(): TemplateResult {\n return html`\n <h2 class=\"title-medium\">Configure data store</h2>\n <form class=\"form\">\n ${this.renderIntro()}\n ${this.renderStoreType()}\n ${this.renderStoreUrlInput()}\n ${this.renderProgress()}\n ${this.renderValidationError()}\n </form>\n ${this.renderActions()}\n `;\n }\n\n renderIntro(): TemplateResult {\n return html`\n <div class=\"body-medium\">\n <p>\n Select the type of the store the application will use. For a single user we recommend the <i>Local store</i> option.\n </p>\n <a href=\"#\" @click=\"${this.handleOpenHelp}\">Help me decide.</a>\n </div>\n `;\n }\n\n renderStoreType(): TemplateResult {\n return html`\n <div class=\"data-source\">\n <div>\n <label class=\"label-medium\">\n <ui-radio name=\"source\" value=\"local-store\" .checked=\"${this.storeType === 'local-store'}\" @change=\"${this.handleSourceSelected}\"></ui-radio>\n Local store\n </label>\n </div>\n <div>\n <label class=\"label-medium\">\n <ui-radio name=\"source\" value=\"network-store\" .checked=\"${this.storeType === 'network-store'}\" @change=\"${this.handleSourceSelected}\"></ui-radio>\n Network store\n </label>\n </div>\n </div>\n `;\n }\n\n renderStoreUrlInput(): TemplateResult | string {\n if (this.storeType !== 'network-store') {\n return '';\n }\n return html`\n <div class=\"store-url-input\">\n <ui-text-field\n class=\"store-url\"\n type=\"url\"\n name=\"location\"\n required\n invalidText=\"The entered URL is invalid. Please, enter the address of the data store.\"\n supportingText=\"Enter the address to the store\"\n label=\"Store address\"\n ></ui-text-field>\n </div>\n `;\n }\n\n renderActions(): TemplateResult {\n return html`\n <div class=\"actions\">\n <ui-button\n type=\"text\"\n @click=\"${this.handleCancel}\"\n >Cancel</ui-button>\n <ui-button \n type=\"filled\"\n ?disabled=\"${!this.storeType}\" \n @click=\"${this.handleContinue}\"\n >Continue</ui-button>\n </div>\n `;\n }\n\n renderHelpDialog(): TemplateResult {\n return html`\n <ui-dialog \n ?open=\"${this.infoDialogOpened}\" \n @close=\"${this.handleDialogClose}\" \n class=\"help-dialog\"\n >\n <ui-icon slot=\"icon\" icon=\"help\"></ui-icon>\n \n <span slot=\"title\">Selecting Data Source</span>\n \n <section>\n <div class=\"label-large\">Local Store</div>\n <p class=\"body-large\">\n This will install a service on your machine that serves data to the API Client suite. \n You can access your data only on this device.\n </p>\n <div class=\"label-large\">Network Store</div>\n <p class=\"body-large\">\n Allows you to connect to a store that is in your local network or over internet. \n You will need the store address to continue.\n </p>\n </section>\n\n <ui-button slot=\"button\" value=\"confirm\" type=\"text\">close</ui-button>\n </ui-dialog>\n `;\n }\n\n renderValidationError(): TemplateResult | string {\n const { validationError } = this;\n if (!validationError) {\n return '';\n }\n return html`\n <p class=\"error on-error-text validation-error\">\n ${this.validationError}<br/>\n Please, verify the store URI and try again.\n </p>\n `;\n }\n\n renderProgress(): TemplateResult | string {\n const { validating } = this;\n if (!validating) {\n return '';\n }\n return html`\n <ui-progress indeterminate></ui-progress>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"StoreConfig.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/StoreConfig.screen.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, CSSResult, nothing } from 'lit';\nimport { Events as CoreEvents } from '@api-client/core/build/browser.js';\nimport { reactive } from '../../lib/decorators.js';\nimport { navigate } from '../../lib/route.js';\nimport { IConfigEnvironment, IEnvConfig, IConfigInit, DataSourceType, ConfigInitReason, ConfigBroadcast } from '../../lib/config/Config.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport styles from './StoreConfig.styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport colorStyles from '../../styles/m3/colors.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport { IRoute, IRouteResult } from '../../mixins/RouteMixin.js';\nimport type { AddConfigEnvironmentInit } from '../../bindings/base/ConfigurationBindings.js';\nimport { UiDialogClosingReason } from '../../ui/dialog/UiDialog.js';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport RadioElement from '../../ui/input/RadioElement.js';\nimport Input from '../../ui/input/Input.js';\nimport '@github/relative-time-element';\nimport '../../define/dialog/rename-dialog.js';\nimport '../../define/dialog/confirm-delete-dialog.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-list.js';\nimport '../../define/ui/ui-list-item.js';\nimport '../../define/ui/ui-progress.js';\nimport '../../define/ui/ui-dialog.js';\nimport '../../define/ui/ui-radio.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/app-navigation-item.js';\n\nexport default class StoreConfigScreen extends ApplicationScreen {\n override async storeChanged(): Promise<void> {\n // ...\n }\n\n static get styles(): CSSResult[] {\n return [globalStyles, typography, colorStyles, dialogStyles, styles, surfaceStyles];\n }\n\n static get routes(): IRoute[] {\n return [\n { pattern: '/start', method: 'startRoute', fallback: true, name: 'Store welcome', title: 'Store Configuration Welcome' },\n { pattern: '/store/(?<key>.*)', method: 'storeRoute', name: 'Store configuration', title: 'Store configuration' },\n { pattern: '/new', method: 'newRoute', name: 'New store configuration', title: 'New store configuration' },\n { pattern: '*', method: 'telemetryRoute' },\n ];\n }\n\n /**\n * The selected store configuration\n */\n @reactive() protected selected?: string;\n\n /**\n * Whether the current environment is a default environment\n */\n @reactive() protected isDefault = false;\n\n /**\n * Flag set when the screen is requesting the list of environments.\n */\n @reactive() protected loadingEnvironments = false;\n\n /**\n * The list of application environments.\n */\n @reactive() protected config?: IEnvConfig;\n\n /**\n * The selected store type.\n */\n @reactive() storeType?: DataSourceType;\n\n /**\n * Whether the dialog with the help message is opened.\n */\n @reactive() infoDialogOpened = false;\n\n /**\n * A network store validation error, if any.\n */\n @reactive() validationError?: string;\n\n /**\n * Whether the application is performing the store validation.\n */\n @reactive() validating = false;\n\n /**\n * Init reason to pass with the create event.\n */\n initReason: ConfigInitReason = 'add';\n\n /**\n * The list of environments to render.\n */\n get environments(): IConfigEnvironment[] {\n const { config } = this;\n const envs = config?.environments;\n if (!envs) {\n return [];\n }\n return envs;\n }\n\n private firstRunInternal = false;\n\n get firstRun(): boolean {\n return this.firstRunInternal;\n }\n\n set firstRun(value: boolean) {\n if (this.firstRunInternal === value) {\n return;\n }\n this.firstRunInternal = value;\n if (value) {\n document.body.classList.add('first-run');\n } else {\n document.body.classList.remove('first-run');\n }\n this.render();\n }\n\n constructor(init: ApplicationInit) {\n super(init);\n }\n\n override async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n\n await this.bindings.store.initialize();\n await this.bindings.store.initializeStore();\n await this.bindings.config.initialize();\n\n await this.initializeConfig();\n \n try {\n await this.initializeStore(false);\n } catch (e) {\n // ...\n }\n await this.listEnvironments();\n this.setupFirstRun();\n \n const url = new URL(window.location.href);\n if (url.searchParams.has('init-reason')) {\n this.initReason = url.searchParams.get('init-reason') as ConfigInitReason;\n } else {\n this.initReason = 'add';\n }\n\n this.initializeRouting();\n this.initialized = true;\n }\n\n setupFirstRun(): void {\n const { environments } = this;\n this.firstRun = environments.length === 0;\n }\n\n async listEnvironments(): Promise<void> {\n this.loadingEnvironments = true;\n this.config = undefined;\n try {\n this.config = await this.bindings.config.environment.list();\n } catch (e) {\n const err = e as Error;\n CoreEvents.Telemetry.exception(err.message, true);\n this.reportCriticalError('Unable to load the list of environments.');\n } finally {\n this.loadingEnvironments = false;\n }\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n this.selected = undefined;\n this.env = undefined;\n this.isDefault = false;\n }\n\n protected startRoute(): void {\n this.resetRoute();\n this.page = 'start';\n }\n\n protected storeRoute(info: IRouteResult): void {\n if (!info.params || !info.params.key) {\n throw new Error(`Invalid route configuration. Missing parameters.`);\n }\n this.resetRoute();\n const key = info.params.key as string;\n this.page = 'store';\n this.selected = key;\n const { config } = this;\n if (config && config.environments) {\n const env = config.environments.find(i => i.key === key);\n this.env = env;\n this.isDefault = !!env && env.key === config.current;\n }\n }\n\n protected newRoute(): void {\n this.resetRoute();\n this.page = 'new';\n }\n\n protected telemetryRoute(info: IRouteResult): void {\n CoreEvents.Telemetry.view(info.route.name || info.route.pattern || '/');\n }\n\n protected handleSourceSelected(e: Event): void {\n const radio = e.target as RadioElement;\n this.storeType = radio.value as DataSourceType;\n }\n\n protected handleOpenHelp(e: Event): void {\n e.preventDefault();\n this.infoDialogOpened = true;\n }\n\n protected handleDialogClose(): void {\n this.infoDialogOpened = false;\n }\n\n protected handleContinue(): void {\n const info = this.createInit();\n if (!info) {\n return;\n }\n this.validateInput(info);\n }\n\n protected handleCancel(): void {\n window.history.back();\n }\n\n protected createInit(): IConfigInit | undefined {\n if (!this.storeType) {\n return undefined;\n }\n const isNetwork = this.storeType === 'network-store';\n let location: string | undefined;\n if (isNetwork) {\n const input = document.querySelector('.store-url') as Input;\n if (!input.checkValidity()) {\n return undefined;\n }\n location = input.value.trim();\n if (!location) {\n return undefined;\n }\n if (location.endsWith('/')) {\n location = location.substring(0, location.length - 1);\n }\n }\n const info: IConfigInit = {\n source: this.storeType,\n location,\n reason: this.initReason as ConfigInitReason,\n };\n return info;\n }\n\n protected async validateInput(init: IConfigInit): Promise<void> {\n if (init.source === 'network-store') {\n this.validating = true;\n const error = await this.validateNetworkStore(init.location as string);\n this.validating = false;\n if (error) {\n this.validationError = error;\n return;\n }\n }\n await this.storeEnvironment(init);\n }\n\n protected async storeEnvironment(init: IConfigInit): Promise<void> {\n const { config } = this;\n const envs = config?.environments;\n const hasEnvironments = !!envs && !!envs.length;\n if (!hasEnvironments) {\n // eslint-disable-next-line no-param-reassign\n init.asDefault = true;\n }\n await this.bindings.store.environment.init(init);\n }\n\n protected async validateNetworkStore(baseUri: string): Promise<string | undefined> {\n try {\n const info = await this.bindings.store.environment.readStoreInfo(baseUri);\n if (!info) {\n throw new Error(`Unable to connect.`);\n }\n } catch (e) {\n return (e as Error).message;\n }\n return undefined;\n }\n\n protected override handleConfigBroadcast(e: MessageEvent): void {\n const event = e.data as ConfigBroadcast;\n const { path } = event;\n if (path === 'environment.setDefault') {\n this.handleDefaultEnvironmentSet(event.env as IConfigEnvironment);\n } else if (path === 'environment.add') {\n this.handleEnvironmentAdd(event.env as IConfigEnvironment, event.init as AddConfigEnvironmentInit);\n } else if (path === 'environment.remove') {\n this.handleEnvironmentRemoved(event.id as string);\n } else if (path === 'environment.update') {\n this.handleEnvironmentUpdated(event.env as IConfigEnvironment);\n }\n }\n\n protected handleEnvironmentUpdated(env: IConfigEnvironment): void {\n const { config } = this;\n if (!env || !config) {\n return;\n }\n if (!config.environments) {\n config.environments = [];\n }\n const index = config.environments.findIndex(i => i.key === env.key);\n if (index >= 0) {\n config.environments[index] = env;\n } else {\n config.environments.push(env);\n }\n if (this.env && this.env.key === env.key) {\n this.env = env;\n }\n this.render();\n }\n\n protected handleEnvironmentRemoved(id: string): void {\n const { config } = this;\n if (!id || !config) {\n return;\n }\n if (!config.environments) {\n return;\n }\n const index = config.environments.findIndex(i => i.key === id);\n if (index >= 0) {\n config.environments.splice(index, 1);\n this.render();\n }\n if (this.selected === id) {\n navigate('start');\n }\n this.setupFirstRun();\n }\n\n protected override handleDefaultEnvironmentSet(env: IConfigEnvironment): void {\n const { config } = this;\n if (!env || !config) {\n return;\n }\n this.revalidateCurrent(env.key);\n }\n\n protected override handleEnvironmentAdd(env: IConfigEnvironment, init: AddConfigEnvironmentInit = {}): void {\n const { config } = this;\n if (!config) {\n return;\n }\n if (!config.environments) {\n config.environments = [];\n }\n config.environments.push(env);\n if (init.asDefault) {\n this.revalidateCurrent(env.key);\n }\n if (['new', 'start'].includes(this.page as string)) {\n navigate('store', env.key);\n } else {\n this.render();\n }\n this.setupFirstRun();\n }\n\n protected revalidateCurrent(id: string): void {\n const { config } = this;\n if (!config) {\n throw new Error(`Config is not set.`);\n }\n config.current = id;\n if (this.env) {\n this.isDefault = this.env.key === id;\n }\n }\n\n protected handleOption(e: CustomEvent): void {\n const element = e.detail.item as HTMLElement;\n const { option } = element.dataset;\n if (!option) {\n return;\n }\n switch (option) {\n case 'rename': this.renameEnvironment(); break;\n case 'make-default': this.makeEnvironmentDefault(); break;\n case 'delete': this.deleteEnvironment(); break;\n case 'authenticate': this.authenticateEnvironment(); break;\n default:\n }\n }\n\n protected renameEnvironment(): void {\n const { env } = this;\n if (!env) {\n throw new Error(`Environment not set`);\n }\n const dialog = document.createElement('rename-dialog');\n dialog.name = env.name;\n dialog.modal = true;\n dialog.open = true;\n document.body.appendChild(dialog);\n dialog.addEventListener('close', (ev: Event) => {\n document.body.removeChild(dialog);\n const event = ev as CustomEvent<UiDialogClosingReason>;\n const { cancelled, value } = event.detail;\n if (!cancelled && value) {\n this.bindings.config.environment.update({ ...env, name: value as string });\n }\n });\n }\n\n protected deleteEnvironment(): void {\n const { env } = this;\n if (!env) {\n throw new Error(`Environment not set`);\n }\n const dialog = document.createElement('confirm-delete-dialog');\n dialog.open = true;\n dialog.modal = true;\n const message = document.createElement('span');\n message.textContent = 'Are you sure you want to delete this store configuration?';\n dialog.appendChild(message);\n document.body.appendChild(dialog);\n dialog.addEventListener('close', (ev: Event) => {\n document.body.removeChild(dialog);\n const event = ev as CustomEvent<UiDialogClosingReason>;\n const { cancelled } = event.detail;\n if (!cancelled) {\n this.bindings.config.environment.remove(env.key);\n }\n });\n }\n\n protected async makeEnvironmentDefault(): Promise<void> {\n const { selected } = this;\n if (!selected) {\n return;\n }\n await this.bindings.config.environment.setDefault(selected);\n }\n\n protected async authenticateEnvironment(): Promise<void> {\n const { env } = this;\n if (!env) {\n return;\n }\n await this.bindings.store.auth.authenticate({\n force: true, \n updateEnvironment: true,\n env, \n });\n }\n\n protected handleAddNewEnvironment(): void {\n navigate('new');\n }\n\n protected storeNavHandler(e: Event): void {\n const target = e.target as HTMLElement;\n const { key } = target.dataset;\n if (!key) {\n return;\n }\n navigate('store', key)\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n if (this.firstRun) {\n return this.renderFirstRun();\n }\n return html`\n ${this.headerTemplate()}\n ${this.navigationTemplate()}\n ${this.mainTemplate()}\n ${this.renderHelpDialog()}\n `;\n }\n\n protected renderFirstRun(): TemplateResult {\n return html`\n ${this.renderFirstRunHeader()}\n <main class=\"surface1\">\n ${this.addNewTemplate()}\n </main>\n ${this.renderHelpDialog()}\n `;\n }\n\n protected renderFirstRunHeader(): TemplateResult {\n return html`\n <header class=\"start-page-header\">\n <h1 class=\"headline-medium first-run\">Welcome to API Client</h1>\n </header>\n `;\n }\n\n protected override headerTemplate(): TemplateResult {\n return html`\n <header class=\"start-page-header\">\n <h1 class=\"title-large\">Store configuration</h1>\n </header>\n `;\n }\n\n protected override navigationTemplate(): TemplateResult {\n const { config } = this;\n const envs = config?.environments;\n const hasEnvironments = !!envs && !!envs.length;\n return html`\n <nav aria-label=\"existing stores\">\n <ui-button title=\"Opens a form to create a new environment\" @click=\"${this.handleAddNewEnvironment}\">\n <ui-icon icon=\"add\" slot=\"icon\"></ui-icon>\n Add new\n </ui-button>\n ${hasEnvironments ? this.navigationConfigTemplate(envs) : nothing}\n </nav>\n `;\n }\n\n protected navigationConfigTemplate(envs: IConfigEnvironment[]): TemplateResult {\n return html`\n <ol class=\"nav-list\">\n ${envs.map(i => this.navigationItemTemplate(i))}\n </ol>\n `;\n }\n\n protected navigationItemTemplate(item: IConfigEnvironment): TemplateResult {\n const { selected, config } = this;\n const isDefault = !!config && item.key === config.current;\n const name = item.name || 'Unnamed configuration';\n // const needsAuth = item.source === 'network-store' && !item.authenticated;\n return html`\n <li>\n <app-navigation-item data-key=\"${item.key}\" .selected=${selected === item.key} @click=\"${this.storeNavHandler}\">\n ${isDefault ? html`<ui-icon icon=\"taskAlt\" slot=\"icon\" title=\"Default configuration\">` : ''}\n ${name}\n </app-navigation-item>\n </li>\n `;\n }\n\n protected renderAddButton(): TemplateResult {\n return html`<ui-button \n type=\"tonal\"\n class=\"add-button\" \n title=\"Opens a form to create a new environment\"\n @click=\"${this.handleAddNewEnvironment}\"\n >Add new</ui-button>`;\n }\n\n protected override mainTemplate(): TemplateResult {\n let template: TemplateResult;\n switch (this.page) {\n case 'store': template = this.storeTemplate(); break;\n case 'new': template = this.addNewTemplate(); break;\n default:\n template = this.startTemplate(); break;\n }\n return html`\n <main class=\"surface1\">\n ${this.renderProgress()}\n ${template}\n </main>\n `;\n }\n\n protected startTemplate(): TemplateResult {\n const { config } = this;\n if (!config || !config.environments || !config.environments.length) {\n return html`\n <p class=\"body-large\">It looks like you have no stores configured.</p>\n `;\n }\n return html`\n <p class=\"body-large\">Store configuration allows you to manage connections to different API stores.</p>\n `;\n }\n\n protected storeTemplate(): TemplateResult {\n const { config, env } = this;\n if (!config || !env) {\n return html`Invalid state, config not ready.`;\n }\n const isDefault = env.key === config.current;\n const isLocal = env.source === 'local-store';\n return html`\n <section>\n <div class=\"title-area\">\n <h2 class=\"title-medium text-selectable\">${env.name || 'Unnamed configuration'}</h2>\n ${this.environmentOptionsTemplate()}\n </div>\n <dl class=\"body-medium\">\n <dt>Key:</dt>\n <dd class=\"text-selectable\">${env.key}</dd>\n\n <dt>URI</dt>\n <dd class=\"text-selectable\">${env.location}</dd>\n\n <dt>Source</dt>\n <dd class=\"text-selectable\">${isLocal ? 'Local store' : 'Network store'}</dd>\n\n <dt>Default environment</dt>\n <dd>${isDefault ? 'Yes' : 'No'}</dd>\n\n ${isLocal ? '' : this.storeSessionInfo(env)}\n </dl>\n </section>\n `;\n }\n\n protected storeSessionInfo(env: IConfigEnvironment): TemplateResult {\n const { tokenExpires } = env;\n const time = tokenExpires ? new Date(tokenExpires) : undefined;\n return html`\n <dt>Authenticated</dt>\n <dd>${env.authenticated ? 'Yes' : 'No'}</dd>\n\n <dt>Token expires</dt>\n <dd>${time ? html`<relative-time datetime=\"${time.toISOString()}\"></relative-time>` : 'Unknown'}</dd>\n `;\n }\n\n protected environmentOptionsTemplate(): TemplateResult {\n return html`\n <ui-dropdown-list\n verticalAlign=\"top\"\n @select=\"${this.handleOption}\"\n class=\"environment-dropdown\"\n closeOnOutsideClick\n >\n <ui-icon-button aria-label=\"Press to select available options\"><ui-icon icon=\"moreVert\" role=\"presentation\"></ui-icon></ui-icon-button>\n <ui-list slot=\"dropdown\" role=\"menu\">\n <ui-list-item role=\"menuitem\" data-option=\"rename\" image=\"icon\" title=\"Renames this environment\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"rename\"></ui-icon>\n Rename\n </ui-list-item>\n <ui-list-item role=\"menuitem\" data-option=\"make-default\" image=\"icon\" title=\"Marks this environment as default\" ?disabled=\"${this.isDefault}\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"checkBox\"></ui-icon>\n Make default\n </ui-list-item>\n <ui-list-item role=\"menuitem\" data-option=\"authenticate\" image=\"icon\" title=\"Authenticate the environment\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"key\"></ui-icon>\n Authenticate\n </ui-list-item>\n <ui-list-item role=\"menuitem\" data-option=\"delete\" image=\"icon\" title=\"Deletes the environment\">\n <ui-icon role=\"presentation\" slot=\"start\" icon=\"deleteOutline\"></ui-icon>\n Delete\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected addNewTemplate(): TemplateResult {\n return html`\n <h2 class=\"title-medium\">Configure data store</h2>\n <form class=\"form\">\n ${this.renderIntro()}\n ${this.renderStoreType()}\n ${this.renderStoreUrlInput()}\n ${this.renderProgress()}\n ${this.renderValidationError()}\n </form>\n ${this.renderActions()}\n `;\n }\n\n renderIntro(): TemplateResult {\n return html`\n <div class=\"body-medium\">\n <p>\n Select the type of the store the application will use. For a single user we recommend the <i>Local store</i> option.\n </p>\n <a href=\"#\" @click=\"${this.handleOpenHelp}\">Help me decide.</a>\n </div>\n `;\n }\n\n renderStoreType(): TemplateResult {\n return html`\n <div class=\"data-source\">\n <div>\n <label class=\"label-medium\">\n <ui-radio name=\"source\" value=\"local-store\" .checked=\"${this.storeType === 'local-store'}\" @change=\"${this.handleSourceSelected}\"></ui-radio>\n Local store\n </label>\n </div>\n <div>\n <label class=\"label-medium\">\n <ui-radio name=\"source\" value=\"network-store\" .checked=\"${this.storeType === 'network-store'}\" @change=\"${this.handleSourceSelected}\"></ui-radio>\n Network store\n </label>\n </div>\n </div>\n `;\n }\n\n renderStoreUrlInput(): TemplateResult | string {\n if (this.storeType !== 'network-store') {\n return '';\n }\n return html`\n <div class=\"store-url-input\">\n <ui-text-field\n class=\"store-url\"\n type=\"url\"\n name=\"location\"\n required\n invalidText=\"The entered URL is invalid. Please, enter the address of the data store.\"\n supportingText=\"Enter the address to the store\"\n label=\"Store address\"\n ></ui-text-field>\n </div>\n `;\n }\n\n renderActions(): TemplateResult {\n return html`\n <div class=\"actions\">\n <ui-button\n type=\"text\"\n @click=\"${this.handleCancel}\"\n >Cancel</ui-button>\n <ui-button \n type=\"filled\"\n ?disabled=\"${!this.storeType}\" \n @click=\"${this.handleContinue}\"\n >Continue</ui-button>\n </div>\n `;\n }\n\n renderHelpDialog(): TemplateResult {\n return html`\n <ui-dialog \n ?open=\"${this.infoDialogOpened}\" \n @close=\"${this.handleDialogClose}\" \n class=\"help-dialog\"\n >\n <ui-icon slot=\"icon\" icon=\"help\"></ui-icon>\n \n <span slot=\"title\">Selecting Data Source</span>\n \n <section>\n <div class=\"label-large\">Local Store</div>\n <p class=\"body-large\">\n This will install a service on your machine that serves data to the API Client suite. \n You can access your data only on this device.\n </p>\n <div class=\"label-large\">Network Store</div>\n <p class=\"body-large\">\n Allows you to connect to a store that is in your local network or over internet. \n You will need the store address to continue.\n </p>\n </section>\n\n <ui-button slot=\"button\" value=\"confirm\" type=\"text\">close</ui-button>\n </ui-dialog>\n `;\n }\n\n renderValidationError(): TemplateResult | string {\n const { validationError } = this;\n if (!validationError) {\n return '';\n }\n return html`\n <p class=\"error on-error-text validation-error\">\n ${this.validationError}<br/>\n Please, verify the store URI and try again.\n </p>\n `;\n }\n\n renderProgress(): TemplateResult | string {\n const { validating } = this;\n if (!validating) {\n return '';\n }\n return html`\n <ui-progress indeterminate></ui-progress>\n `;\n }\n}\n"]}
@@ -21,10 +21,9 @@ export default class TelemetryScreen extends ApplicationScreen {
21
21
  static get styles() {
22
22
  return [styles, layout, typography, surfaceStyles];
23
23
  }
24
- sharingLevel = 'noting';
25
- config;
26
24
  constructor(init) {
27
25
  super(init);
26
+ this.sharingLevel = 'noting';
28
27
  this.config = init.config;
29
28
  }
30
29
  async initialize() {
@@ -1 +1 @@
1
- {"version":3,"file":"Telemetry.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/Telemetry.screen.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, CSSResult } from 'lit';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport styles from './Telemetry.styles.js';\nimport layout from '../../styles/global-styles.js';\nimport { reactive } from '../../lib/decorators.js';\nimport { ITelemetryConfig, TelemetryLevel } from '../../lib/config/Config.js';\nimport { ConfigurationBindings } from '../../bindings/base/ConfigurationBindings.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport RadioElement from '../../ui/input/RadioElement.js';\nimport '../../define/ui/ui-radio.js';\nimport '../../define/ui/ui-button.js';\n\n/**\n * A screen presented to the user during the first-run to consent to \n * analytical data gathering.\n * \n */\nexport default class TelemetryScreen extends ApplicationScreen {\n async storeChanged(): Promise<void> {\n // ....\n }\n\n static get styles(): CSSResult[] {\n return [styles, layout, typography, surfaceStyles];\n }\n\n @reactive() sharingLevel: TelemetryLevel = 'noting';\n\n config: ConfigurationBindings;\n\n constructor(init: ApplicationInit) {\n super(init);\n this.config = init.config;\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n await this.config.initialize();\n try {\n const config = await this.config.telemetry.read();\n this.sharingLevel = config.level;\n } catch (e) {\n // ...\n }\n this.initialized = true;\n }\n\n protected handleLevelSelection(e: Event): void {\n const button = e.target as RadioElement;\n if (!button.checked) {\n return;\n }\n this.sharingLevel = button.value as TelemetryLevel;\n }\n\n protected handleConfirm(): void {\n this.saveLevel(this.sharingLevel);\n }\n \n async saveLevel(sharingLevel: TelemetryLevel): Promise<void> {\n const config: ITelemetryConfig = {\n level: sharingLevel,\n };\n await this.config.telemetry.set(config);\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n return html`\n <main class=\"config-init\">\n <div class=\"form-container\">\n <form class=\"form surface2\">\n ${this.renderTitle()}\n ${this.renderIntro()}\n ${this.renderSharingLevel()}\n ${this.infoTemplate()}\n </form>\n </div>\n ${this.actionsTemplate()}\n </main>\n `;\n }\n\n renderTitle(): TemplateResult {\n return html`<h1 class=\"headline-large\">Data sharing</h1>`;\n }\n\n renderIntro(): TemplateResult {\n return html`\n <div class=\"body-large\">\n We value your privacy and by default the application does not share any data. \n We kindly ask you to allow sending analytics data so we can measure the use of the application.\n </div>\n `;\n }\n\n renderSharingLevel(): TemplateResult {\n const { sharingLevel } = this;\n return html`\n <div class=\"sharing-level\">\n <div>\n <ui-radio id=\"nothing\" name=\"level\" value=\"nothing\" ?checked=\"${sharingLevel === 'noting'}\" aria-labelledby=\"nothing-label\" @change=\"${this.handleLevelSelection}\"></ui-radio>\n <label for=\"nothing\" id=\"nothing-label\" title=\"No analytics data will be send to the analytics server.\" class=\"label-large\">No analytics</label>\n </div>\n\n <div>\n <ui-radio id=\"crash\" name=\"level\" value=\"crash\" ?checked=\"${sharingLevel === 'crash'}\" aria-labelledby=\"crash-label\" @change=\"${this.handleLevelSelection}\"></ui-radio>\n <label for=\"crash\" id=\"crash-label\" title=\"Only application crashes and some critical errors are reported.\" class=\"label-large\">Crash reports and errors</label>\n </div>\n\n <div>\n <ui-radio id=\"all\" name=\"level\" value=\"all\" ?checked=\"${sharingLevel === 'all'}\" aria-labelledby=\"all-label\" @change=\"${this.handleLevelSelection}\"></ui-radio>\n <label for=\"all\" id=\"all-label\" title=\"Crashers, errors, and usage is reported.\" class=\"label-large\">Application usage</label>\n </div>\n </div>\n `;\n }\n\n actionsTemplate(): TemplateResult {\n return html`\n <div class=\"actions\">\n <ui-button \n type=\"filled\" \n ?disabled=\"${!this.sharingLevel}\" \n @click=\"${this.handleConfirm}\"\n >Confirm</ui-button>\n </div>\n `;\n }\n\n infoTemplate(): TemplateResult {\n return html`\n <p class=\"body-medium\">Mind that application usage helps us understand how the application is used and make product decisions. Data sharing does not include personal information and it is not used to track you over the internet.</p>\n <p class=\"body-medium\">You can read our privacy policy <a href=\"#\">here</a>.</p>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"Telemetry.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/Telemetry.screen.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable class-methods-use-this */\nimport { html, TemplateResult, CSSResult } from 'lit';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport styles from './Telemetry.styles.js';\nimport layout from '../../styles/global-styles.js';\nimport { reactive } from '../../lib/decorators.js';\nimport { ITelemetryConfig, TelemetryLevel } from '../../lib/config/Config.js';\nimport { ConfigurationBindings } from '../../bindings/base/ConfigurationBindings.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport RadioElement from '../../ui/input/RadioElement.js';\nimport '../../define/ui/ui-radio.js';\nimport '../../define/ui/ui-button.js';\n\n/**\n * A screen presented to the user during the first-run to consent to \n * analytical data gathering.\n * \n */\nexport default class TelemetryScreen extends ApplicationScreen {\n async storeChanged(): Promise<void> {\n // ....\n }\n\n static get styles(): CSSResult[] {\n return [styles, layout, typography, surfaceStyles];\n }\n\n @reactive() sharingLevel: TelemetryLevel = 'noting';\n\n config: ConfigurationBindings;\n\n constructor(init: ApplicationInit) {\n super(init);\n this.config = init.config;\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n await this.config.initialize();\n try {\n const config = await this.config.telemetry.read();\n this.sharingLevel = config.level;\n } catch (e) {\n // ...\n }\n this.initialized = true;\n }\n\n protected handleLevelSelection(e: Event): void {\n const button = e.target as RadioElement;\n if (!button.checked) {\n return;\n }\n this.sharingLevel = button.value as TelemetryLevel;\n }\n\n protected handleConfirm(): void {\n this.saveLevel(this.sharingLevel);\n }\n \n async saveLevel(sharingLevel: TelemetryLevel): Promise<void> {\n const config: ITelemetryConfig = {\n level: sharingLevel,\n };\n await this.config.telemetry.set(config);\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n return html`\n <main class=\"config-init\">\n <div class=\"form-container\">\n <form class=\"form surface2\">\n ${this.renderTitle()}\n ${this.renderIntro()}\n ${this.renderSharingLevel()}\n ${this.infoTemplate()}\n </form>\n </div>\n ${this.actionsTemplate()}\n </main>\n `;\n }\n\n renderTitle(): TemplateResult {\n return html`<h1 class=\"headline-large\">Data sharing</h1>`;\n }\n\n renderIntro(): TemplateResult {\n return html`\n <div class=\"body-large\">\n We value your privacy and by default the application does not share any data. \n We kindly ask you to allow sending analytics data so we can measure the use of the application.\n </div>\n `;\n }\n\n renderSharingLevel(): TemplateResult {\n const { sharingLevel } = this;\n return html`\n <div class=\"sharing-level\">\n <div>\n <ui-radio id=\"nothing\" name=\"level\" value=\"nothing\" ?checked=\"${sharingLevel === 'noting'}\" aria-labelledby=\"nothing-label\" @change=\"${this.handleLevelSelection}\"></ui-radio>\n <label for=\"nothing\" id=\"nothing-label\" title=\"No analytics data will be send to the analytics server.\" class=\"label-large\">No analytics</label>\n </div>\n\n <div>\n <ui-radio id=\"crash\" name=\"level\" value=\"crash\" ?checked=\"${sharingLevel === 'crash'}\" aria-labelledby=\"crash-label\" @change=\"${this.handleLevelSelection}\"></ui-radio>\n <label for=\"crash\" id=\"crash-label\" title=\"Only application crashes and some critical errors are reported.\" class=\"label-large\">Crash reports and errors</label>\n </div>\n\n <div>\n <ui-radio id=\"all\" name=\"level\" value=\"all\" ?checked=\"${sharingLevel === 'all'}\" aria-labelledby=\"all-label\" @change=\"${this.handleLevelSelection}\"></ui-radio>\n <label for=\"all\" id=\"all-label\" title=\"Crashers, errors, and usage is reported.\" class=\"label-large\">Application usage</label>\n </div>\n </div>\n `;\n }\n\n actionsTemplate(): TemplateResult {\n return html`\n <div class=\"actions\">\n <ui-button \n type=\"filled\" \n ?disabled=\"${!this.sharingLevel}\" \n @click=\"${this.handleConfirm}\"\n >Confirm</ui-button>\n </div>\n `;\n }\n\n infoTemplate(): TemplateResult {\n return html`\n <p class=\"body-medium\">Mind that application usage helps us understand how the application is used and make product decisions. Data sharing does not include personal information and it is not used to track you over the internet.</p>\n <p class=\"body-medium\">You can read our privacy policy <a href=\"#\">here</a>.</p>\n `;\n }\n}\n"]}
@@ -33,35 +33,14 @@ var ImportState;
33
33
  * A class that specializes in rendering the list of files in HTTP Client.
34
34
  */
35
35
  export class FilesPage {
36
- screen;
37
- /**
38
- * The list of files to render.
39
- * Do not overwrite this property or when you must then update the DataTable's `items` as well.
40
- */
41
- files = [];
42
- /**
43
- * The pagination cursor for files.
44
- * As long there's a cursor, there are more files to request.
45
- */
46
- cursor;
47
- /**
48
- * The key of the currently rendered folder.
49
- */
50
- folder;
51
- breadcrumbs;
52
- dt = new DataTable(() => this.files, { ariaLabel: 'Your files', active: true, selection: 'single' });
53
- importProcessor;
54
- importState;
55
- /**
56
- * Whether the UI is reading files
57
- */
58
- readingFiles;
59
- /**
60
- * A selected in the table item.
61
- */
62
- selectedItem;
63
36
  constructor(screen) {
64
37
  this.screen = screen;
38
+ /**
39
+ * The list of files to render.
40
+ * Do not overwrite this property or when you must then update the DataTable's `items` as well.
41
+ */
42
+ this.files = [];
43
+ this.dt = new DataTable(() => this.files, { ariaLabel: 'Your files', active: true, selection: 'single' });
65
44
  this.createProjectHandler = this.createProjectHandler.bind(this);
66
45
  this.createFolderHandler = this.createFolderHandler.bind(this);
67
46
  this.createSelectHandler = this.createSelectHandler.bind(this);