@api-client/ui 0.0.11 → 0.0.12

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 (128) hide show
  1. package/.eslintrc +8 -0
  2. package/demo/elements/index.html +3 -0
  3. package/demo/elements/store/file-picker.html +15 -0
  4. package/demo/elements/store/file-picker.ts +134 -0
  5. package/demo/elements/store/index.html +19 -0
  6. package/demo/store/StorePlugin.js +1 -0
  7. package/dist/bindings/base/StoreBindings.d.ts +5 -0
  8. package/dist/bindings/base/StoreBindings.d.ts.map +1 -1
  9. package/dist/bindings/base/StoreBindings.js +15 -1
  10. package/dist/bindings/base/StoreBindings.js.map +1 -1
  11. package/dist/define/store/file-picker.d.ts +9 -0
  12. package/dist/define/store/file-picker.d.ts.map +1 -0
  13. package/dist/define/store/file-picker.js +10 -0
  14. package/dist/define/store/file-picker.js.map +1 -0
  15. package/dist/define/{files → store}/share-file.d.ts +1 -1
  16. package/dist/define/store/share-file.d.ts.map +1 -0
  17. package/dist/define/{files → store}/share-file.js +2 -2
  18. package/dist/define/store/share-file.js.map +1 -0
  19. package/dist/elements/store/FilePicker.element.d.ts +87 -0
  20. package/dist/elements/store/FilePicker.element.d.ts.map +1 -0
  21. package/dist/elements/store/FilePicker.element.js +263 -0
  22. package/dist/elements/store/FilePicker.element.js.map +1 -0
  23. package/dist/elements/store/FilePicker.styles.d.ts +3 -0
  24. package/dist/elements/store/FilePicker.styles.d.ts.map +1 -0
  25. package/dist/elements/store/FilePicker.styles.js +72 -0
  26. package/dist/elements/store/FilePicker.styles.js.map +1 -0
  27. package/dist/elements/store/FilesLib.d.ts +10 -0
  28. package/dist/elements/store/FilesLib.d.ts.map +1 -0
  29. package/dist/elements/store/FilesLib.js +38 -0
  30. package/dist/elements/store/FilesLib.js.map +1 -0
  31. package/dist/elements/{files/ShareFile.d.ts → store/ShareFile.element.d.ts} +1 -1
  32. package/dist/elements/store/ShareFile.element.d.ts.map +1 -0
  33. package/dist/elements/{files/ShareFile.js → store/ShareFile.element.js} +1 -1
  34. package/dist/elements/store/ShareFile.element.js.map +1 -0
  35. package/dist/elements/store/ShareFile.styles.d.ts.map +1 -0
  36. package/dist/elements/{files → store}/ShareFile.styles.js.map +1 -1
  37. package/dist/events/EventTypes.d.ts +1 -0
  38. package/dist/events/EventTypes.d.ts.map +1 -1
  39. package/dist/events/EventTypes.js +1 -0
  40. package/dist/events/EventTypes.js.map +1 -1
  41. package/dist/events/Events.d.ts +1 -0
  42. package/dist/events/Events.d.ts.map +1 -1
  43. package/dist/events/StoreEvents.d.ts +8 -1
  44. package/dist/events/StoreEvents.d.ts.map +1 -1
  45. package/dist/events/StoreEvents.js +19 -0
  46. package/dist/events/StoreEvents.js.map +1 -1
  47. package/dist/pages/ApplicationScreen.d.ts +1 -1
  48. package/dist/pages/ApplicationScreen.d.ts.map +1 -1
  49. package/dist/pages/ApplicationScreen.js +4 -2
  50. package/dist/pages/ApplicationScreen.js.map +1 -1
  51. package/dist/pages/api-client/ApiClient.screen.d.ts +0 -6
  52. package/dist/pages/api-client/ApiClient.screen.d.ts.map +1 -1
  53. package/dist/pages/api-client/ApiClient.screen.js +16 -29
  54. package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
  55. package/dist/pages/api-client/Authenticate.screen.d.ts +1 -1
  56. package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
  57. package/dist/pages/api-client/Authenticate.screen.js +2 -2
  58. package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
  59. package/dist/pages/api-client/pages/Files.page.d.ts +6 -35
  60. package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
  61. package/dist/pages/api-client/pages/Files.page.js +32 -141
  62. package/dist/pages/api-client/pages/Files.page.js.map +1 -1
  63. package/dist/pages/api-client/pages/Shared.page.d.ts +1 -5
  64. package/dist/pages/api-client/pages/Shared.page.d.ts.map +1 -1
  65. package/dist/pages/api-client/pages/Shared.page.js +1 -40
  66. package/dist/pages/api-client/pages/Shared.page.js.map +1 -1
  67. package/dist/pages/demo/DemoPage.d.ts +7 -0
  68. package/dist/pages/demo/DemoPage.d.ts.map +1 -1
  69. package/dist/pages/demo/DemoPage.js +14 -0
  70. package/dist/pages/demo/DemoPage.js.map +1 -1
  71. package/dist/store/FileSystem.d.ts +90 -0
  72. package/dist/store/FileSystem.d.ts.map +1 -0
  73. package/dist/store/FileSystem.js +260 -0
  74. package/dist/store/FileSystem.js.map +1 -0
  75. package/dist/styles/global-styles.d.ts.map +1 -1
  76. package/dist/styles/global-styles.js +7 -0
  77. package/dist/styles/global-styles.js.map +1 -1
  78. package/dist/ui/icons/Icons.d.ts +2 -1
  79. package/dist/ui/icons/Icons.d.ts.map +1 -1
  80. package/dist/ui/icons/Icons.js +1 -0
  81. package/dist/ui/icons/Icons.js.map +1 -1
  82. package/dist/ui/list/UiDropdownList.d.ts +9 -1
  83. package/dist/ui/list/UiDropdownList.d.ts.map +1 -1
  84. package/dist/ui/list/UiDropdownList.js +39 -17
  85. package/dist/ui/list/UiDropdownList.js.map +1 -1
  86. package/dist/ui/list/UiList.d.ts +6 -1
  87. package/dist/ui/list/UiList.d.ts.map +1 -1
  88. package/dist/ui/list/UiList.js +24 -9
  89. package/dist/ui/list/UiList.js.map +1 -1
  90. package/dist/ui/table/DataTable.d.ts +4 -0
  91. package/dist/ui/table/DataTable.d.ts.map +1 -1
  92. package/dist/ui/table/DataTable.js +23 -1
  93. package/dist/ui/table/DataTable.js.map +1 -1
  94. package/package.json +1 -1
  95. package/src/bindings/base/StoreBindings.ts +16 -1
  96. package/src/define/store/file-picker.ts +12 -0
  97. package/src/define/{files → store}/share-file.ts +2 -2
  98. package/src/elements/store/FilePicker.element.ts +297 -0
  99. package/src/elements/store/FilePicker.styles.ts +72 -0
  100. package/src/elements/store/FilesLib.ts +32 -0
  101. package/src/events/EventTypes.ts +1 -0
  102. package/src/events/StoreEvents.ts +21 -1
  103. package/src/pages/ApplicationScreen.ts +5 -3
  104. package/src/pages/api-client/ApiClient.screen.ts +16 -31
  105. package/src/pages/api-client/Authenticate.screen.ts +2 -2
  106. package/src/pages/api-client/pages/Files.page.ts +37 -164
  107. package/src/pages/api-client/pages/Shared.page.ts +2 -40
  108. package/src/pages/demo/DemoPage.ts +17 -0
  109. package/src/store/FileSystem.ts +325 -0
  110. package/src/styles/global-styles.ts +7 -0
  111. package/src/ui/icons/Icons.ts +2 -1
  112. package/src/ui/list/UiDropdownList.ts +44 -17
  113. package/src/ui/list/UiList.ts +26 -10
  114. package/src/ui/table/DataTable.ts +29 -3
  115. package/test/elements/store/FilePicker.test.ts +241 -0
  116. package/test/env.js +3 -0
  117. package/test/helpers/StoreHelper.ts +390 -0
  118. package/tsconfig.eslint.json +3 -1
  119. package/web-test-runner.config.mjs +49 -3
  120. package/dist/define/files/share-file.d.ts.map +0 -1
  121. package/dist/define/files/share-file.js.map +0 -1
  122. package/dist/elements/files/ShareFile.d.ts.map +0 -1
  123. package/dist/elements/files/ShareFile.js.map +0 -1
  124. package/dist/elements/files/ShareFile.styles.d.ts.map +0 -1
  125. /package/dist/elements/{files → store}/ShareFile.styles.d.ts +0 -0
  126. /package/dist/elements/{files → store}/ShareFile.styles.js +0 -0
  127. /package/src/elements/{files/ShareFile.ts → store/ShareFile.element.ts} +0 -0
  128. /package/src/elements/{files → store}/ShareFile.styles.ts +0 -0
@@ -70,7 +70,6 @@ export default class ApiClientScreen extends ApplicationScreen {
70
70
  this.shared = new SharedPage(this);
71
71
  this.trash = new TrashPage(this);
72
72
  this.settings = new SettingsPage(this);
73
- this.filesChannel = new BroadcastChannel(StoreBroadcast.files);
74
73
  this.spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);
75
74
  this.trashChannel = new BroadcastChannel(StoreBroadcast.trash);
76
75
  this.bindings.idb = init.idb;
@@ -99,7 +98,6 @@ export default class ApiClientScreen extends ApplicationScreen {
99
98
  await this.bindings.store.observeTrash();
100
99
  }
101
100
  await this.loadUser();
102
- this.filesChannel.addEventListener('message', this.fileMetaMessageHandler.bind(this));
103
101
  this.spacesChannel.addEventListener('message', this.spacesMessageHandler.bind(this));
104
102
  this.trashChannel.addEventListener('message', this.trashMessageHandler.bind(this));
105
103
  this.initializeRouting();
@@ -108,8 +106,8 @@ export default class ApiClientScreen extends ApplicationScreen {
108
106
  reset() {
109
107
  this.spaces = [];
110
108
  this.spacesCursor = undefined;
111
- this.files.resetList();
112
- this.shared.resetList();
109
+ this.files.fs.resetList();
110
+ this.shared.fs.resetList();
113
111
  this.trash.resetList();
114
112
  }
115
113
  async storeChanged() {
@@ -205,18 +203,18 @@ export default class ApiClientScreen extends ApplicationScreen {
205
203
  }
206
204
  this.bindings.store.space = this.selectedSpace;
207
205
  this.render();
208
- this.files.resetList();
209
- this.shared.resetList();
206
+ this.files.fs.resetList();
207
+ this.shared.fs.resetList();
210
208
  this.trash.resetList();
211
209
  if (this.page === 'files') {
212
- this.files.readFiles();
210
+ this.files.fs.debounceQuery();
213
211
  navigate('files'); // remove any folder info
214
212
  }
215
213
  else if (this.page === 'trash') {
216
214
  this.trash.readFiles();
217
215
  }
218
216
  else if (this.page === 'shared') {
219
- this.shared.readFiles();
217
+ this.shared.fs.debounceQuery();
220
218
  }
221
219
  this.storeLastSpaceKey(this.selectedSpace);
222
220
  }
@@ -234,17 +232,6 @@ export default class ApiClientScreen extends ApplicationScreen {
234
232
  this.spaces = items;
235
233
  this.spacesCursor = cursor;
236
234
  }
237
- /**
238
- * A handler for the broadcast channel message which informs about changes to files meta.
239
- * The function distributes changes between pages
240
- */
241
- fileMetaMessageHandler(e) {
242
- const event = e.data;
243
- if (event.space === this.selectedSpace) {
244
- this.files.handleFileEvent(event);
245
- }
246
- this.shared.handleFileEvent(event);
247
- }
248
235
  trashMessageHandler(e) {
249
236
  const event = e.data;
250
237
  if (event.space !== this.selectedSpace) {
@@ -296,26 +283,26 @@ export default class ApiClientScreen extends ApplicationScreen {
296
283
  this.resetRoute();
297
284
  this.page = 'files';
298
285
  const folder = info.params && info.params.key;
299
- const folderChanged = this.files.folder !== folder;
286
+ const folderChanged = this.files.fs.parent !== folder;
300
287
  if (folderChanged) {
301
- this.files.folder = folder;
302
- this.files.resetList();
288
+ this.files.fs.parent = folder;
289
+ this.files.fs.resetList();
303
290
  }
304
- if (!this.files.files.length || folderChanged) {
305
- this.files.readFiles();
291
+ if (!this.files.fs.files.length || folderChanged) {
292
+ this.files.fs.debounceQuery();
306
293
  }
307
294
  }
308
295
  sharedRoute(info) {
309
296
  this.resetRoute();
310
297
  this.page = 'shared';
311
298
  const folder = info.params && info.params.key;
312
- const folderChanged = this.shared.folder !== folder;
299
+ const folderChanged = this.shared.fs.parent !== folder;
313
300
  if (folderChanged) {
314
- this.shared.folder = folder;
315
- this.shared.resetList();
301
+ this.shared.fs.parent = folder;
302
+ this.shared.fs.resetList();
316
303
  }
317
- if (!this.shared.files.length || folderChanged) {
318
- this.shared.readFiles();
304
+ if (!this.shared.fs.files.length || folderChanged) {
305
+ this.shared.fs.debounceQuery();
319
306
  }
320
307
  }
321
308
  trashRoute() {
@@ -1 +1 @@
1
- {"version":3,"file":"ApiClient.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/ApiClient.screen.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\nimport { html, TemplateResult, CSSResult, nothing } from 'lit';\nimport { BroadcastCreatedEvent, BroadcastEvent, IFile, ISpace, uuidV4 } from '@api-client/core/build/browser.js';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport { IRoute, IRouteResult } from '../../mixins/RouteMixin.js';\nimport pageStyles from './ApiClient.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport { navigate } from '../../lib/route.js';\nimport { reactive } from '../../lib/decorators.js';\nimport { DataTable } from '../../ui/table/DataTable.js';\nimport Input from '../../ui/input/Input.js';\nimport { FilesPage } from './pages/Files.page.js';\nimport { SharedPage } from './pages/Shared.page.js';\nimport { TrashPage } from './pages/Trash.page.js';\nimport { SettingsPage } from './pages/Settings.page.js';\nimport { HttpClientStoreBindings } from '../../bindings/base/HttpClientStoreBindings.js';\nimport { StoreBroadcast } from '../../http-client/store/StoreBroadcast.js';\nimport { NavigationBindings } from '../../bindings/base/NavigationBindings.js';\nimport { FileBindings } from '../../bindings/base/FileBindings.js';\nimport AppInfo from './AppInfo.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/app-navigation-item.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-divider.js';\n\nexport interface PageInit extends ApplicationInit {\n idb: HttpClientStoreBindings;\n navigation: NavigationBindings;\n files: FileBindings;\n}\n\n/**\n * API Client is the entry point to the suite.\n * It renders the list of user files, allows to configure a connection to a store,\n * open user files in the corresponding application, or open\n * an independent application.\n */\nexport default class ApiClientScreen extends ApplicationScreen {\n static get routes(): IRoute[] {\n return [\n { pattern: '/files/(?<key>.*)', method: 'filesRoute', fallback: true, name: 'Files', title: 'Your files' },\n { pattern: '/shared', method: 'sharedRoute', name: 'Shared', title: 'Shared with you' },\n { pattern: '/shared/(?<key>.*)', method: 'sharedRoute', name: 'Shares', title: 'Shared with you' },\n { pattern: '/trash', method: 'trashRoute', name: 'Trash', title: 'Trash' },\n { pattern: '/settings', method: 'settingsRoute', name: 'Settings', title: 'Settings' },\n ];\n }\n\n static get styles(): CSSResult[] {\n return [globalStyles, pageStyles, typography, dialogStyles, DataTable.styles];\n }\n\n /**\n * Whether the current user has spaces defined in the store.\n * When not, it runs the start screen configuring workspaces.\n */\n get hasSpaces(): boolean {\n const { spaces } = this;\n return !!spaces && !!spaces.length;\n }\n\n /**\n * @The list of user spaces.\n */\n protected spaces: ISpace[] = [];\n\n /**\n * The pagination cursor for workspaces.\n * As long there's a cursor, there are more spaces to request.\n */\n protected spacesCursor?: string;\n\n /**\n * The currently selected space.\n */\n @reactive() selectedSpace?: string;\n\n /**\n * The definition of the selected space.\n */\n get currentSpace(): ISpace | undefined {\n const { spaces, selectedSpace } = this;\n if (!spaces || !selectedSpace) {\n return undefined;\n }\n return spaces.find(i => i.key === selectedSpace);\n }\n\n protected files = new FilesPage(this);\n\n protected shared = new SharedPage(this);\n\n protected trash = new TrashPage(this);\n\n protected settings = new SettingsPage(this);\n\n filesChannel = new BroadcastChannel(StoreBroadcast.files);\n\n spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);\n\n trashChannel = new BroadcastChannel(StoreBroadcast.trash);\n\n constructor(init: PageInit) {\n super(init);\n this.bindings.idb = init.idb;\n this.bindings.navigation = init.navigation;\n this.bindings.files = init.files;\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n await this.bindings.config.initialize();\n await this.initializeConfig();\n await this.bindings.navigation.initialize();\n await this.initializeStore();\n const key = await this.readSpaceKey();\n if (key) {\n this.bindings.store.space = key;\n }\n await this.bindings.idb.initialize();\n await this.bindings.store.initialize();\n await this.bindings.files.initialize();\n\n await this.setupWorkspace(key);\n\n await this.bindings.store.observeSpaces();\n if (key) {\n await this.bindings.store.observeFiles();\n await this.bindings.store.observeTrash();\n }\n await this.loadUser();\n this.filesChannel.addEventListener('message', this.fileMetaMessageHandler.bind(this));\n this.spacesChannel.addEventListener('message', this.spacesMessageHandler.bind(this));\n this.trashChannel.addEventListener('message', this.trashMessageHandler.bind(this));\n this.initializeRouting();\n this.initialized = true;\n }\n\n reset(): void {\n this.spaces = [];\n this.spacesCursor = undefined;\n this.files.resetList();\n this.shared.resetList();\n this.trash.resetList();\n }\n\n override async storeChanged(): Promise<void> {\n this.page = undefined;\n this.initialized = false;\n await this.bindings.store.closeEventsSocket();\n this.reset();\n this.bindings.store.space = '';\n await this.initializeStore();\n const spaceKey = await this.readLastSpaceKey();\n if (spaceKey) {\n this.bindings.store.space = spaceKey;\n }\n if (!this.authenticated) {\n return;\n }\n try {\n await this.setupWorkspace(spaceKey);\n await this.bindings.store.observeSpaces();\n if (spaceKey) {\n await this.bindings.store.observeFiles();\n await this.bindings.store.observeTrash();\n }\n this.files.refresh();\n this.initialized = true;\n } catch (_) {\n // ...\n }\n }\n\n protected async setupWorkspace(key?: string): Promise<void> {\n await this.readSpaces();\n this.selectWorkspace(key);\n }\n\n protected async readSpaceKey(): Promise<string | undefined> {\n const url = new URL(window.location.href);\n const key = url.searchParams.get('space');\n if (key) {\n return key;\n }\n return this.readLastSpaceKey();\n }\n\n protected async createLastSpaceStoreKey(): Promise<string | undefined> {\n try {\n const env = await this.bindings.store.global.get();\n return `http-client.latest.space.${env.key}`;\n } catch (_) {\n return undefined;\n }\n }\n\n protected async readLastSpaceKey(): Promise<string | undefined> {\n const key = await this.createLastSpaceStoreKey();\n if (!key) {\n return undefined;\n }\n const value = await this.bindings.config.local.get(key);\n return value as string || undefined;\n }\n\n protected async deleteLastSpaceKey(): Promise<void> {\n const key = await this.createLastSpaceStoreKey();\n if (!key) {\n return;\n }\n await this.bindings.config.local.delete(key);\n }\n\n protected async storeLastSpaceKey(spaceKey: string): Promise<void> {\n const key = await this.createLastSpaceStoreKey();\n if (!key) {\n return;\n }\n await this.bindings.config.local.set(key, spaceKey);\n }\n\n selectWorkspace(key?: string): void {\n const { spaces } = this;\n if (!spaces.length) {\n this.selectedSpace = key;\n this.render();\n return;\n }\n if (key) {\n // check whether the key is in the spaces.\n const has = this.spaces.find(i => i.key === key);\n if (has) {\n this.selectedSpace = key;\n } else {\n this.selectedSpace = this.spaces[0].key;\n }\n } else {\n this.selectedSpace = this.spaces[0].key;\n }\n\n this.bindings.store.space = this.selectedSpace;\n\n this.render();\n this.files.resetList();\n this.shared.resetList();\n this.trash.resetList();\n if (this.page === 'files') {\n this.files.readFiles();\n navigate('files'); // remove any folder info\n } else if (this.page === 'trash') {\n this.trash.readFiles();\n } else if (this.page === 'shared') {\n this.shared.readFiles();\n }\n this.storeLastSpaceKey(this.selectedSpace);\n }\n\n async resetStoreObservers(): Promise<void> {\n await this.bindings.store.unobserveFiles();\n await this.bindings.store.unobserveTrash();\n if (this.selectedSpace) {\n await this.bindings.store.observeFiles();\n await this.bindings.store.observeTrash();\n }\n }\n\n protected async readSpaces(): Promise<void> {\n const spaces = await this.bindings.store.spaces.list({ limit: 100 });\n const { items, cursor } = spaces;\n this.spaces = items;\n this.spacesCursor = cursor;\n }\n\n /**\n * A handler for the broadcast channel message which informs about changes to files meta.\n * The function distributes changes between pages\n */\n protected fileMetaMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n if (event.space === this.selectedSpace) {\n this.files.handleFileEvent(event);\n }\n this.shared.handleFileEvent(event);\n }\n\n protected trashMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n if (event.space !== this.selectedSpace) {\n return;\n }\n this.trash.handleFileEvent(event);\n }\n\n protected spacesMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n switch (event.operation) {\n case 'created': this.handleSpaceCreated((event as BroadcastCreatedEvent).data as ISpace); break;\n case 'deleted': this.handleSpaceDeleted(event.key as string); break;\n default:\n }\n }\n\n handleSpaceCreated(space: ISpace): void {\n if (!this.spaces) {\n this.spaces = [];\n }\n this.spaces.push(space);\n this.selectWorkspace(space.key);\n this.resetStoreObservers();\n this.render();\n }\n\n handleSpaceDeleted(key: string): void {\n if (!this.spaces) {\n this.spaces = [];\n }\n const index = this.spaces.findIndex(i => i.key === key);\n if (index === -1) {\n return;\n }\n this.spaces.splice(index, 1);\n this.render();\n if (this.selectedSpace === key) {\n this.deleteLastSpaceKey();\n }\n this.selectWorkspace();\n this.resetStoreObservers();\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n }\n\n protected filesRoute(info: IRouteResult): void {\n this.resetRoute();\n this.page = 'files';\n const folder = info.params && info.params.key as string | undefined;\n const folderChanged = this.files.folder !== folder;\n if (folderChanged) {\n this.files.folder = folder;\n this.files.resetList();\n }\n if (!this.files.files.length || folderChanged) {\n this.files.readFiles();\n }\n }\n\n protected sharedRoute(info: IRouteResult): void {\n this.resetRoute();\n this.page = 'shared';\n const folder = info.params && info.params.key as string | undefined;\n const folderChanged = this.shared.folder !== folder;\n if (folderChanged) {\n this.shared.folder = folder;\n this.shared.resetList();\n }\n if (!this.shared.files.length || folderChanged) {\n this.shared.readFiles();\n }\n }\n\n protected trashRoute(): void {\n this.resetRoute();\n this.page = 'trash';\n if (!this.trash.files.length) {\n this.trash.readFiles();\n }\n }\n\n protected settingsRoute(): void {\n this.resetRoute();\n this.page = 'settings';\n }\n\n protected mainNavHandler(e: Event): void {\n const target = e.target as HTMLElement;\n const { page } = target.dataset;\n if (!page) {\n return;\n }\n navigate(page);\n }\n\n protected workspaceCreateFormHandler(e: SubmitEvent): void {\n e.preventDefault();\n const form = e.target as HTMLFormElement;\n const input = form.querySelector('ui-text-field');\n if (!input) {\n return;\n }\n const { value } = input;\n this.addWorkspace(value);\n }\n\n protected async addWorkspace(name: string): Promise<void> {\n await this.bindings.store.spaces.add(name);\n }\n\n protected async deleteSpace(key: string): Promise<void> {\n this.freezeApp();\n await this.bindings.store.spaces.delete(key);\n this.unfreezeApp();\n }\n\n protected workspaceSelectHandler(e: CustomEvent): void {\n const item = e.detail.item as HTMLElement;\n const { key, action } = item.dataset;\n if (action === 'add') {\n this.openNewWorkspaceDialog();\n } else if (action === 'delete') {\n this.openDeleteWorkspaceDialog();\n } else if (key) {\n this.selectWorkspace(key);\n this.resetStoreObservers();\n }\n }\n\n openNewWorkspaceDialog(): void {\n this.openDialog('createWorkspaceDialog');\n }\n\n openDeleteWorkspaceDialog(): void {\n this.openDialog('deleteWorkspaceDialog');\n }\n\n cancelCreateWorkspaceDialog(): void {\n this.closeDialog('createWorkspaceDialog');\n }\n\n cancelDeleteWorkspaceDialog(): void {\n this.closeDialog('deleteWorkspaceDialog');\n }\n\n protected createWorkspaceHandler(e: SubmitEvent): void {\n const form = e.target as HTMLFormElement;\n const input = form.querySelector('ui-text-field');\n if (!input) {\n return;\n }\n const { submitter } = e;\n if (!submitter) {\n return;\n }\n const button = submitter as HTMLButtonElement; // or equivalent\n if (button.value !== 'submit') {\n return;\n }\n const { value } = input;\n input.value = '';\n this.addWorkspace(value);\n }\n\n protected async deleteWorkspaceHandler(): Promise<void> {\n this.cancelDeleteWorkspaceDialog();\n const { selectedSpace } = this;\n if (!selectedSpace) {\n return;\n }\n this.deleteSpace(selectedSpace);\n }\n\n closeDialog(id: string): void {\n const dialog = document.querySelector(`#${id}`) as HTMLDialogElement | null;\n if (!dialog) {\n return;\n }\n dialog.close();\n }\n\n openDialog(id: string, modal = true): void {\n const dialog = document.querySelector(`#${id}`) as HTMLDialogElement | null;\n if (!dialog) {\n return;\n }\n if (modal) {\n dialog.showModal();\n } else {\n dialog.show();\n }\n }\n\n freezeApp(): void {\n document.querySelector('#app')?.classList.add('inactive');\n }\n\n unfreezeApp(): void {\n document.querySelector('#app')?.classList.remove('inactive');\n }\n\n submitOnEnter(e: KeyboardEvent): void {\n // || (!e.ctrlKey && !e.metaKey)\n if (!['Enter', 'NumEnter'].includes(e.code)) {\n return;\n }\n const input = e.target as Input;\n const { form } = input;\n if (!form) {\n return;\n }\n const button = form.querySelector('[submit]') as HTMLElement | null;\n if (button) {\n button.click();\n } else {\n form.submit();\n }\n }\n\n async renameFile(file: IFile, name: string): Promise<void> {\n if (!name) {\n return;\n }\n await this.bindings.store.files.patch(file.key, {\n app: AppInfo.code,\n appVersion: AppInfo.version,\n id: uuidV4(),\n patch: [\n {\n op: 'replace',\n path: '/info/name',\n value: name,\n }\n ],\n });\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized, hasSpaces } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n if (!hasSpaces) {\n return this.spacesSetupTemplate();\n }\n return html`\n ${this.navigationTemplate()}\n ${this.headerTemplate()}\n ${this.mainTemplate()}\n `;\n }\n\n protected override navigationTemplate(): TemplateResult {\n const { page, isSingleUser } = this;\n return html`\n <nav aria-label=\"Main\">\n <h1 class=\"title-small nav-title\">HTTP Client</h1>\n <ol class=\"nav-list\">\n <li>\n <app-navigation-item data-page=\"files\" .selected=${page === 'files'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"collectionsBookmark\" slot=\"icon\"></ui-icon>\n Files\n </app-navigation-item>\n </li>\n ${isSingleUser ? nothing : html`\n <li>\n <app-navigation-item data-page=\"shared\" .selected=${page === 'shared'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"folderShared\" slot=\"icon\"></ui-icon>\n Shared with me\n </app-navigation-item>\n </li>\n `}\n <li>\n <app-navigation-item data-page=\"trash\" .selected=${page === 'trash'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"deleteFile\" slot=\"icon\"></ui-icon>\n Trash\n </app-navigation-item>\n </li>\n <li>\n <app-navigation-item data-page=\"settings\" .selected=${page === 'settings'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"settings\" slot=\"icon\"></ui-icon>\n Settings\n </app-navigation-item>\n </li>\n </ol>\n </nav>\n `;\n }\n\n protected override headerTemplate(): TemplateResult {\n const space = this.currentSpace;\n if (!space) {\n // this should not happen since we render different view in this scenario.\n return html`<header></header>`;\n }\n return html`\n <header>\n <div class=\"search-box\">\n <ui-icon class=\"search-icon\" icon=\"search\"></ui-icon>\n <input type=\"text\" aria-label=\"Search\" placeholder=\"Search\"/>\n </div>\n ${this.renderWorkspaceSelector(space)}\n </header>\n `;\n }\n\n protected renderWorkspaceSelector(space: ISpace): TemplateResult {\n const { spaces } = this;\n return html`\n <ui-dropdown-list class=\"spaced-right workspace-dropdown\" horizontalAlign=\"right\" @select=\"${this.workspaceSelectHandler}\">\n <div class=\"workspace-selector\" role=\"button\">\n <div class=\"surface\">\n <div class=\"content\">\n <div class=\"body\">\n <span class=\"workspace-label label-small\">Workspace</span>\n <span class=\"workspace-selected body-large\">${space.info.name || 'Unnamed space'}</span>\n </div>\n <div class=\"icon\">\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </div>\n </div>\n </div>\n </div>\n\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${spaces.map(s => html`<ui-list-item role=\"menuitem\" data-key=\"${s.key}\">${s.info.name}</ui-list-item>`)}\n <ui-divider role=\"presentation\"></ui-divider>\n <ui-list-item image=\"icon\" role=\"menuitem\" data-action=\"add\">\n <ui-icon icon=\"add\" slot=\"start\"></ui-icon>\n Add new\n </ui-list-item>\n <ui-list-item image=\"icon\" role=\"menuitem\" data-action=\"delete\">\n <ui-icon icon=\"deleteFile\" slot=\"start\"></ui-icon>\n Delete workspace\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected override mainTemplate(): TemplateResult {\n return html`\n <main class=\"body-medium\">\n <div class=\"content\">\n ${this.renderPage()}\n </div>\n </main>\n ${this.renderCreateWorkspaceDialog()}\n ${this.renderDeleteWorkspaceDialog()}\n `;\n }\n\n protected renderPage(): TemplateResult {\n const { page =\"files\" } = this;\n switch (page) {\n case 'files': return this.files.render();\n case 'shared': return this.shared.render();\n case 'trash': return this.trash.render();\n case 'settings': return this.settings.render();\n default: return this.render404();\n }\n }\n\n protected renderModelsPage(): TemplateResult {\n return html`\n <section aria-label=\"Data models\">\n <div class=\"section-header\">\n <h2 class=\"headline-small\">Data Models</h2>\n <ui-button class=\"right\" type=\"outlined\">\n <ui-icon icon=\"add\" slot=\"icon\"></ui-icon>\n New\n </ui-button>\n <ui-icon-button><ui-icon icon=\"moreVert\"></ui-icon></ui-icon-button>\n </div>\n </section>`;\n }\n\n protected render404(): TemplateResult {\n return html`404`;\n }\n\n protected spacesSetupTemplate(): TemplateResult {\n return html`\n <section class=\"full-page-alert\">\n <h1 class=\"display-large\">Let's get you started</h1>\n <div class=\"workspace-dialog-info\">\n <p class=\"body-large\">\n The application uses <b>workspaces</b> to organize your work. You can switch context by changing selected workspace.\n Each workspace has an independent files list.\n </p>\n <form action=\"#\" @submit=\"${this.workspaceCreateFormHandler}\">\n <h2 class=\"title-medium\">Create your first workspace</h2>\n <div class=\"workspace-intro-form\">\n <ui-text-field class=\"input\" label=\"Workspace name\" name=\"name\" value=\"Default\" required invalidText=\"Workspace name is required\"></ui-text-field>\n <ui-button type=\"filled\" value=\"submit\" submit>Create</ui-button>\n </div>\n </form>\n </div>\n </section>\n `;\n }\n\n protected renderCreateWorkspaceDialog(): TemplateResult {\n return html`\n <dialog id=\"createWorkspaceDialog\">\n <form method=\"dialog\" @submit=\"${this.createWorkspaceHandler}\">\n <h3>New Workspace</h3>\n <div>\n <p class=\"body-medium\">Enter name for the workspace</p>\n <ui-text-field class=\"input\" label=\"Workspace name\" name=\"name\" required invalidText=\"Workspace name is required\" @keydown=\"${this.submitOnEnter}\"></ui-text-field>\n </div>\n <div class=\"dialog-buttons\">\n <ui-button type=\"text\" value=\"cancel\" @click=\"${this.cancelCreateWorkspaceDialog}\">Cancel</ui-button>\n <ui-button type=\"text\" value=\"submit\" submit>Create</ui-button>\n </div>\n </form>\n </dialog>\n `;\n }\n\n protected renderDeleteWorkspaceDialog(): TemplateResult {\n const { currentSpace } = this;\n const name = currentSpace && currentSpace.info.name || 'unnamed';\n return html`\n <dialog id=\"deleteWorkspaceDialog\" class=\"warning\">\n <h3>Delete Workspace?</h3>\n <div>\n <p class=\"body-medium\">\n This will permanently delete all workspace <b>${name}</b>.\n The following data will be lost forever:\n </p>\n <ui-divider></ui-divider>\n <ul>\n <li>Files (projects, data models</li>\n <li>Trashed files</li>\n </ul>\n <ui-divider></ui-divider>\n </div>\n <div class=\"dialog-buttons\">\n <ui-button type=\"text\" value=\"cancel\" @click=\"${this.cancelDeleteWorkspaceDialog}\">Cancel</ui-button>\n <ui-button type=\"text\" value=\"delete\" @click=\"${this.deleteWorkspaceHandler}\">Delete</ui-button>\n </div>\n </dialog>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"ApiClient.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/ApiClient.screen.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\nimport { html, TemplateResult, CSSResult, nothing } from 'lit';\nimport { BroadcastCreatedEvent, BroadcastEvent, IFile, ISpace, uuidV4 } from '@api-client/core/build/browser.js';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport { IRoute, IRouteResult } from '../../mixins/RouteMixin.js';\nimport pageStyles from './ApiClient.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport { navigate } from '../../lib/route.js';\nimport { reactive } from '../../lib/decorators.js';\nimport { DataTable } from '../../ui/table/DataTable.js';\nimport Input from '../../ui/input/Input.js';\nimport { FilesPage } from './pages/Files.page.js';\nimport { SharedPage } from './pages/Shared.page.js';\nimport { TrashPage } from './pages/Trash.page.js';\nimport { SettingsPage } from './pages/Settings.page.js';\nimport { HttpClientStoreBindings } from '../../bindings/base/HttpClientStoreBindings.js';\nimport { StoreBroadcast } from '../../http-client/store/StoreBroadcast.js';\nimport { NavigationBindings } from '../../bindings/base/NavigationBindings.js';\nimport { FileBindings } from '../../bindings/base/FileBindings.js';\nimport AppInfo from './AppInfo.js';\nimport '../../define/ui/ui-button.js';\nimport '../../define/app-navigation-item.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/ui/ui-icon-button.js';\nimport '../../define/ui/ui-text-field.js';\nimport '../../define/ui/ui-dropdown-list.js';\nimport '../../define/ui/ui-divider.js';\n\nexport interface PageInit extends ApplicationInit {\n idb: HttpClientStoreBindings;\n navigation: NavigationBindings;\n files: FileBindings;\n}\n\n/**\n * API Client is the entry point to the suite.\n * It renders the list of user files, allows to configure a connection to a store,\n * open user files in the corresponding application, or open\n * an independent application.\n */\nexport default class ApiClientScreen extends ApplicationScreen {\n static get routes(): IRoute[] {\n return [\n { pattern: '/files/(?<key>.*)', method: 'filesRoute', fallback: true, name: 'Files', title: 'Your files' },\n { pattern: '/shared', method: 'sharedRoute', name: 'Shared', title: 'Shared with you' },\n { pattern: '/shared/(?<key>.*)', method: 'sharedRoute', name: 'Shares', title: 'Shared with you' },\n { pattern: '/trash', method: 'trashRoute', name: 'Trash', title: 'Trash' },\n { pattern: '/settings', method: 'settingsRoute', name: 'Settings', title: 'Settings' },\n ];\n }\n\n static get styles(): CSSResult[] {\n return [globalStyles, pageStyles, typography, dialogStyles, DataTable.styles];\n }\n\n /**\n * Whether the current user has spaces defined in the store.\n * When not, it runs the start screen configuring workspaces.\n */\n get hasSpaces(): boolean {\n const { spaces } = this;\n return !!spaces && !!spaces.length;\n }\n\n /**\n * @The list of user spaces.\n */\n protected spaces: ISpace[] = [];\n\n /**\n * The pagination cursor for workspaces.\n * As long there's a cursor, there are more spaces to request.\n */\n protected spacesCursor?: string;\n\n /**\n * The currently selected space.\n */\n @reactive() selectedSpace?: string;\n\n /**\n * The definition of the selected space.\n */\n get currentSpace(): ISpace | undefined {\n const { spaces, selectedSpace } = this;\n if (!spaces || !selectedSpace) {\n return undefined;\n }\n return spaces.find(i => i.key === selectedSpace);\n }\n\n protected files = new FilesPage(this);\n\n protected shared = new SharedPage(this);\n\n protected trash = new TrashPage(this);\n\n protected settings = new SettingsPage(this);\n\n spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);\n\n trashChannel = new BroadcastChannel(StoreBroadcast.trash);\n\n constructor(init: PageInit) {\n super(init);\n this.bindings.idb = init.idb;\n this.bindings.navigation = init.navigation;\n this.bindings.files = init.files;\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n await this.bindings.config.initialize();\n await this.initializeConfig();\n await this.bindings.navigation.initialize();\n await this.initializeStore();\n const key = await this.readSpaceKey();\n if (key) {\n this.bindings.store.space = key;\n }\n await this.bindings.idb.initialize();\n await this.bindings.store.initialize();\n await this.bindings.files.initialize();\n\n await this.setupWorkspace(key);\n\n await this.bindings.store.observeSpaces();\n if (key) {\n await this.bindings.store.observeFiles();\n await this.bindings.store.observeTrash();\n }\n await this.loadUser();\n this.spacesChannel.addEventListener('message', this.spacesMessageHandler.bind(this));\n this.trashChannel.addEventListener('message', this.trashMessageHandler.bind(this));\n this.initializeRouting();\n this.initialized = true;\n }\n\n reset(): void {\n this.spaces = [];\n this.spacesCursor = undefined;\n this.files.fs.resetList();\n this.shared.fs.resetList();\n this.trash.resetList();\n }\n\n override async storeChanged(): Promise<void> {\n this.page = undefined;\n this.initialized = false;\n await this.bindings.store.closeEventsSocket();\n this.reset();\n this.bindings.store.space = '';\n await this.initializeStore();\n const spaceKey = await this.readLastSpaceKey();\n if (spaceKey) {\n this.bindings.store.space = spaceKey;\n }\n if (!this.authenticated) {\n return;\n }\n try {\n await this.setupWorkspace(spaceKey);\n await this.bindings.store.observeSpaces();\n if (spaceKey) {\n await this.bindings.store.observeFiles();\n await this.bindings.store.observeTrash();\n }\n this.files.refresh();\n this.initialized = true;\n } catch (_) {\n // ...\n }\n }\n\n protected async setupWorkspace(key?: string): Promise<void> {\n await this.readSpaces();\n this.selectWorkspace(key);\n }\n\n protected async readSpaceKey(): Promise<string | undefined> {\n const url = new URL(window.location.href);\n const key = url.searchParams.get('space');\n if (key) {\n return key;\n }\n return this.readLastSpaceKey();\n }\n\n protected async createLastSpaceStoreKey(): Promise<string | undefined> {\n try {\n const env = await this.bindings.store.global.get();\n return `http-client.latest.space.${env.key}`;\n } catch (_) {\n return undefined;\n }\n }\n\n protected async readLastSpaceKey(): Promise<string | undefined> {\n const key = await this.createLastSpaceStoreKey();\n if (!key) {\n return undefined;\n }\n const value = await this.bindings.config.local.get(key);\n return value as string || undefined;\n }\n\n protected async deleteLastSpaceKey(): Promise<void> {\n const key = await this.createLastSpaceStoreKey();\n if (!key) {\n return;\n }\n await this.bindings.config.local.delete(key);\n }\n\n protected async storeLastSpaceKey(spaceKey: string): Promise<void> {\n const key = await this.createLastSpaceStoreKey();\n if (!key) {\n return;\n }\n await this.bindings.config.local.set(key, spaceKey);\n }\n\n selectWorkspace(key?: string): void {\n const { spaces } = this;\n if (!spaces.length) {\n this.selectedSpace = key;\n this.render();\n return;\n }\n if (key) {\n // check whether the key is in the spaces.\n const has = this.spaces.find(i => i.key === key);\n if (has) {\n this.selectedSpace = key;\n } else {\n this.selectedSpace = this.spaces[0].key;\n }\n } else {\n this.selectedSpace = this.spaces[0].key;\n }\n\n this.bindings.store.space = this.selectedSpace;\n\n this.render();\n this.files.fs.resetList();\n this.shared.fs.resetList();\n this.trash.resetList();\n if (this.page === 'files') {\n this.files.fs.debounceQuery();\n navigate('files'); // remove any folder info\n } else if (this.page === 'trash') {\n this.trash.readFiles();\n } else if (this.page === 'shared') {\n this.shared.fs.debounceQuery();\n }\n this.storeLastSpaceKey(this.selectedSpace);\n }\n\n async resetStoreObservers(): Promise<void> {\n await this.bindings.store.unobserveFiles();\n await this.bindings.store.unobserveTrash();\n if (this.selectedSpace) {\n await this.bindings.store.observeFiles();\n await this.bindings.store.observeTrash();\n }\n }\n\n protected async readSpaces(): Promise<void> {\n const spaces = await this.bindings.store.spaces.list({ limit: 100 });\n const { items, cursor } = spaces;\n this.spaces = items;\n this.spacesCursor = cursor;\n }\n\n protected trashMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n if (event.space !== this.selectedSpace) {\n return;\n }\n this.trash.handleFileEvent(event);\n }\n\n protected spacesMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n switch (event.operation) {\n case 'created': this.handleSpaceCreated((event as BroadcastCreatedEvent).data as ISpace); break;\n case 'deleted': this.handleSpaceDeleted(event.key as string); break;\n default:\n }\n }\n\n handleSpaceCreated(space: ISpace): void {\n if (!this.spaces) {\n this.spaces = [];\n }\n this.spaces.push(space);\n this.selectWorkspace(space.key);\n this.resetStoreObservers();\n this.render();\n }\n\n handleSpaceDeleted(key: string): void {\n if (!this.spaces) {\n this.spaces = [];\n }\n const index = this.spaces.findIndex(i => i.key === key);\n if (index === -1) {\n return;\n }\n this.spaces.splice(index, 1);\n this.render();\n if (this.selectedSpace === key) {\n this.deleteLastSpaceKey();\n }\n this.selectWorkspace();\n this.resetStoreObservers();\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n }\n\n protected filesRoute(info: IRouteResult): void {\n this.resetRoute();\n this.page = 'files';\n const folder = info.params && info.params.key as string | undefined;\n const folderChanged = this.files.fs.parent !== folder;\n if (folderChanged) {\n this.files.fs.parent = folder;\n this.files.fs.resetList();\n }\n if (!this.files.fs.files.length || folderChanged) {\n this.files.fs.debounceQuery();\n }\n }\n\n protected sharedRoute(info: IRouteResult): void {\n this.resetRoute();\n this.page = 'shared';\n const folder = info.params && info.params.key as string | undefined;\n const folderChanged = this.shared.fs.parent !== folder;\n if (folderChanged) {\n this.shared.fs.parent = folder;\n this.shared.fs.resetList();\n }\n if (!this.shared.fs.files.length || folderChanged) {\n this.shared.fs.debounceQuery();\n }\n }\n\n protected trashRoute(): void {\n this.resetRoute();\n this.page = 'trash';\n if (!this.trash.files.length) {\n this.trash.readFiles();\n }\n }\n\n protected settingsRoute(): void {\n this.resetRoute();\n this.page = 'settings';\n }\n\n protected mainNavHandler(e: Event): void {\n const target = e.target as HTMLElement;\n const { page } = target.dataset;\n if (!page) {\n return;\n }\n navigate(page);\n }\n\n protected workspaceCreateFormHandler(e: SubmitEvent): void {\n e.preventDefault();\n const form = e.target as HTMLFormElement;\n const input = form.querySelector('ui-text-field');\n if (!input) {\n return;\n }\n const { value } = input;\n this.addWorkspace(value);\n }\n\n protected async addWorkspace(name: string): Promise<void> {\n await this.bindings.store.spaces.add(name);\n }\n\n protected async deleteSpace(key: string): Promise<void> {\n this.freezeApp();\n await this.bindings.store.spaces.delete(key);\n this.unfreezeApp();\n }\n\n protected workspaceSelectHandler(e: CustomEvent): void {\n const item = e.detail.item as HTMLElement;\n const { key, action } = item.dataset;\n if (action === 'add') {\n this.openNewWorkspaceDialog();\n } else if (action === 'delete') {\n this.openDeleteWorkspaceDialog();\n } else if (key) {\n this.selectWorkspace(key);\n this.resetStoreObservers();\n }\n }\n\n openNewWorkspaceDialog(): void {\n this.openDialog('createWorkspaceDialog');\n }\n\n openDeleteWorkspaceDialog(): void {\n this.openDialog('deleteWorkspaceDialog');\n }\n\n cancelCreateWorkspaceDialog(): void {\n this.closeDialog('createWorkspaceDialog');\n }\n\n cancelDeleteWorkspaceDialog(): void {\n this.closeDialog('deleteWorkspaceDialog');\n }\n\n protected createWorkspaceHandler(e: SubmitEvent): void {\n const form = e.target as HTMLFormElement;\n const input = form.querySelector('ui-text-field');\n if (!input) {\n return;\n }\n const { submitter } = e;\n if (!submitter) {\n return;\n }\n const button = submitter as HTMLButtonElement; // or equivalent\n if (button.value !== 'submit') {\n return;\n }\n const { value } = input;\n input.value = '';\n this.addWorkspace(value);\n }\n\n protected async deleteWorkspaceHandler(): Promise<void> {\n this.cancelDeleteWorkspaceDialog();\n const { selectedSpace } = this;\n if (!selectedSpace) {\n return;\n }\n this.deleteSpace(selectedSpace);\n }\n\n closeDialog(id: string): void {\n const dialog = document.querySelector(`#${id}`) as HTMLDialogElement | null;\n if (!dialog) {\n return;\n }\n dialog.close();\n }\n\n openDialog(id: string, modal = true): void {\n const dialog = document.querySelector(`#${id}`) as HTMLDialogElement | null;\n if (!dialog) {\n return;\n }\n if (modal) {\n dialog.showModal();\n } else {\n dialog.show();\n }\n }\n\n freezeApp(): void {\n document.querySelector('#app')?.classList.add('inactive');\n }\n\n unfreezeApp(): void {\n document.querySelector('#app')?.classList.remove('inactive');\n }\n\n submitOnEnter(e: KeyboardEvent): void {\n // || (!e.ctrlKey && !e.metaKey)\n if (!['Enter', 'NumEnter'].includes(e.code)) {\n return;\n }\n const input = e.target as Input;\n const { form } = input;\n if (!form) {\n return;\n }\n const button = form.querySelector('[submit]') as HTMLElement | null;\n if (button) {\n button.click();\n } else {\n form.submit();\n }\n }\n\n async renameFile(file: IFile, name: string): Promise<void> {\n if (!name) {\n return;\n }\n await this.bindings.store.files.patch(file.key, {\n app: AppInfo.code,\n appVersion: AppInfo.version,\n id: uuidV4(),\n patch: [\n {\n op: 'replace',\n path: '/info/name',\n value: name,\n }\n ],\n });\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized, hasSpaces } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n if (!hasSpaces) {\n return this.spacesSetupTemplate();\n }\n return html`\n ${this.navigationTemplate()}\n ${this.headerTemplate()}\n ${this.mainTemplate()}\n `;\n }\n\n protected override navigationTemplate(): TemplateResult {\n const { page, isSingleUser } = this;\n return html`\n <nav aria-label=\"Main\">\n <h1 class=\"title-small nav-title\">HTTP Client</h1>\n <ol class=\"nav-list\">\n <li>\n <app-navigation-item data-page=\"files\" .selected=${page === 'files'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"collectionsBookmark\" slot=\"icon\"></ui-icon>\n Files\n </app-navigation-item>\n </li>\n ${isSingleUser ? nothing : html`\n <li>\n <app-navigation-item data-page=\"shared\" .selected=${page === 'shared'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"folderShared\" slot=\"icon\"></ui-icon>\n Shared with me\n </app-navigation-item>\n </li>\n `}\n <li>\n <app-navigation-item data-page=\"trash\" .selected=${page === 'trash'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"deleteFile\" slot=\"icon\"></ui-icon>\n Trash\n </app-navigation-item>\n </li>\n <li>\n <app-navigation-item data-page=\"settings\" .selected=${page === 'settings'} @click=\"${this.mainNavHandler}\">\n <ui-icon icon=\"settings\" slot=\"icon\"></ui-icon>\n Settings\n </app-navigation-item>\n </li>\n </ol>\n </nav>\n `;\n }\n\n protected override headerTemplate(): TemplateResult {\n const space = this.currentSpace;\n if (!space) {\n // this should not happen since we render different view in this scenario.\n return html`<header></header>`;\n }\n return html`\n <header>\n <div class=\"search-box\">\n <ui-icon class=\"search-icon\" icon=\"search\"></ui-icon>\n <input type=\"text\" aria-label=\"Search\" placeholder=\"Search\"/>\n </div>\n ${this.renderWorkspaceSelector(space)}\n </header>\n `;\n }\n\n protected renderWorkspaceSelector(space: ISpace): TemplateResult {\n const { spaces } = this;\n return html`\n <ui-dropdown-list class=\"spaced-right workspace-dropdown\" horizontalAlign=\"right\" @select=\"${this.workspaceSelectHandler}\">\n <div class=\"workspace-selector\" role=\"button\">\n <div class=\"surface\">\n <div class=\"content\">\n <div class=\"body\">\n <span class=\"workspace-label label-small\">Workspace</span>\n <span class=\"workspace-selected body-large\">${space.info.name || 'Unnamed space'}</span>\n </div>\n <div class=\"icon\">\n <ui-icon icon=\"arrowDropDown\"></ui-icon>\n </div>\n </div>\n </div>\n </div>\n\n <ui-list slot=\"dropdown\" role=\"menu\">\n ${spaces.map(s => html`<ui-list-item role=\"menuitem\" data-key=\"${s.key}\">${s.info.name}</ui-list-item>`)}\n <ui-divider role=\"presentation\"></ui-divider>\n <ui-list-item image=\"icon\" role=\"menuitem\" data-action=\"add\">\n <ui-icon icon=\"add\" slot=\"start\"></ui-icon>\n Add new\n </ui-list-item>\n <ui-list-item image=\"icon\" role=\"menuitem\" data-action=\"delete\">\n <ui-icon icon=\"deleteFile\" slot=\"start\"></ui-icon>\n Delete workspace\n </ui-list-item>\n </ui-list>\n </ui-dropdown-list>\n `;\n }\n\n protected override mainTemplate(): TemplateResult {\n return html`\n <main class=\"body-medium\">\n <div class=\"content\">\n ${this.renderPage()}\n </div>\n </main>\n ${this.renderCreateWorkspaceDialog()}\n ${this.renderDeleteWorkspaceDialog()}\n `;\n }\n\n protected renderPage(): TemplateResult {\n const { page =\"files\" } = this;\n switch (page) {\n case 'files': return this.files.render();\n case 'shared': return this.shared.render();\n case 'trash': return this.trash.render();\n case 'settings': return this.settings.render();\n default: return this.render404();\n }\n }\n\n protected renderModelsPage(): TemplateResult {\n return html`\n <section aria-label=\"Data models\">\n <div class=\"section-header\">\n <h2 class=\"headline-small\">Data Models</h2>\n <ui-button class=\"right\" type=\"outlined\">\n <ui-icon icon=\"add\" slot=\"icon\"></ui-icon>\n New\n </ui-button>\n <ui-icon-button><ui-icon icon=\"moreVert\"></ui-icon></ui-icon-button>\n </div>\n </section>`;\n }\n\n protected render404(): TemplateResult {\n return html`404`;\n }\n\n protected spacesSetupTemplate(): TemplateResult {\n return html`\n <section class=\"full-page-alert\">\n <h1 class=\"display-large\">Let's get you started</h1>\n <div class=\"workspace-dialog-info\">\n <p class=\"body-large\">\n The application uses <b>workspaces</b> to organize your work. You can switch context by changing selected workspace.\n Each workspace has an independent files list.\n </p>\n <form action=\"#\" @submit=\"${this.workspaceCreateFormHandler}\">\n <h2 class=\"title-medium\">Create your first workspace</h2>\n <div class=\"workspace-intro-form\">\n <ui-text-field class=\"input\" label=\"Workspace name\" name=\"name\" value=\"Default\" required invalidText=\"Workspace name is required\"></ui-text-field>\n <ui-button type=\"filled\" value=\"submit\" submit>Create</ui-button>\n </div>\n </form>\n </div>\n </section>\n `;\n }\n\n protected renderCreateWorkspaceDialog(): TemplateResult {\n return html`\n <dialog id=\"createWorkspaceDialog\">\n <form method=\"dialog\" @submit=\"${this.createWorkspaceHandler}\">\n <h3>New Workspace</h3>\n <div>\n <p class=\"body-medium\">Enter name for the workspace</p>\n <ui-text-field class=\"input\" label=\"Workspace name\" name=\"name\" required invalidText=\"Workspace name is required\" @keydown=\"${this.submitOnEnter}\"></ui-text-field>\n </div>\n <div class=\"dialog-buttons\">\n <ui-button type=\"text\" value=\"cancel\" @click=\"${this.cancelCreateWorkspaceDialog}\">Cancel</ui-button>\n <ui-button type=\"text\" value=\"submit\" submit>Create</ui-button>\n </div>\n </form>\n </dialog>\n `;\n }\n\n protected renderDeleteWorkspaceDialog(): TemplateResult {\n const { currentSpace } = this;\n const name = currentSpace && currentSpace.info.name || 'unnamed';\n return html`\n <dialog id=\"deleteWorkspaceDialog\" class=\"warning\">\n <h3>Delete Workspace?</h3>\n <div>\n <p class=\"body-medium\">\n This will permanently delete all workspace <b>${name}</b>.\n The following data will be lost forever:\n </p>\n <ui-divider></ui-divider>\n <ul>\n <li>Files (projects, data models</li>\n <li>Trashed files</li>\n </ul>\n <ui-divider></ui-divider>\n </div>\n <div class=\"dialog-buttons\">\n <ui-button type=\"text\" value=\"cancel\" @click=\"${this.cancelDeleteWorkspaceDialog}\">Cancel</ui-button>\n <ui-button type=\"text\" value=\"delete\" @click=\"${this.deleteWorkspaceHandler}\">Delete</ui-button>\n </div>\n </dialog>\n `;\n }\n}\n"]}
@@ -20,7 +20,7 @@ export default class AuthenticateScreen extends ApplicationScreen {
20
20
  constructor(init: ApplicationInit);
21
21
  initialize(): Promise<void>;
22
22
  readEnvironment(): Promise<IConfigEnvironment | undefined>;
23
- protected handleAuthenticate(): void;
23
+ protected handleAuth(): Promise<void>;
24
24
  protected handleBack(): void;
25
25
  protected authenticate(env: IConfigEnvironment): Promise<void>;
26
26
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Authenticate.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,iBAAiB;IAChD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,KAAK,MAAM,IAAI,SAAS,EAAE,CAE/B;IAEW,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEtC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;OAEG;IACS,cAAc,UAAS;IAEnC,cAAc,UAAS;gBAEX,IAAI,EAAE,eAAe;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAUhE,SAAS,CAAC,kBAAkB,IAAI,IAAI;IASpC,SAAS,CAAC,UAAU,IAAI,IAAI;cAIZ,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpE;;;OAGG;IACM,YAAY,IAAI,cAAc;IAUvC,iBAAiB,IAAI,cAAc;IASnC,eAAe,IAAI,cAAc;IAQjC,WAAW,IAAI,cAAc;IAI7B,kBAAkB,IAAI,cAAc;IAQpC,cAAc,IAAI,cAAc;IAWhC,YAAY,IAAI,cAAc;IAM9B,gBAAgB,IAAI,cAAc,GAAG,MAAM;CAS5C"}
1
+ {"version":3,"file":"Authenticate.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,cAAc,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAO7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAGhE,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,iBAAiB;IAChD,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5C,MAAM,KAAK,MAAM,IAAI,SAAS,EAAE,CAE/B;IAEW,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAEtC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IAEjC;;OAEG;IACS,cAAc,UAAS;IAEnC,cAAc,UAAS;gBAEX,IAAI,EAAE,eAAe;IAI3B,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAgB3B,eAAe,IAAI,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;cAUhD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAS3C,SAAS,CAAC,UAAU,IAAI,IAAI;cAIZ,YAAY,CAAC,GAAG,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBpE;;;OAGG;IACM,YAAY,IAAI,cAAc;IAUvC,iBAAiB,IAAI,cAAc;IASnC,eAAe,IAAI,cAAc;IAQjC,WAAW,IAAI,cAAc;IAI7B,kBAAkB,IAAI,cAAc;IAQpC,cAAc,IAAI,cAAc;IAWhC,YAAY,IAAI,cAAc;IAM9B,gBAAgB,IAAI,cAAc,GAAG,MAAM;CAS5C"}
@@ -56,7 +56,7 @@ export default class AuthenticateScreen extends ApplicationScreen {
56
56
  }
57
57
  return env;
58
58
  }
59
- handleAuthenticate() {
59
+ async handleAuth() {
60
60
  const { environment } = this;
61
61
  if (!environment) {
62
62
  this.environmentError = 'Environment information not found. Go back to the previous page.';
@@ -130,7 +130,7 @@ export default class AuthenticateScreen extends ApplicationScreen {
130
130
  <div class="action">
131
131
  <ui-button
132
132
  type="filled"
133
- @click="${this.handleAuthenticate}"
133
+ @click="${this.handleAuth}"
134
134
  >Authenticate</ui-button>
135
135
  </div>
136
136
  `;
@@ -1 +1 @@
1
- {"version":3,"file":"Authenticate.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAA6B,MAAM,KAAK,CAAC;AACtD,OAAO,EAAmB,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,MAAM,MAAM,0BAA0B,CAAC;AAC9C,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,UAAU,MAAM,sCAAsC,CAAC;AAC9D,OAAO,MAAM,MAAM,kCAAkC,CAAC;AACtD,OAAO,MAAM,MAAM,kCAAkC,CAAC;AAGtD,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,gCAAgC,CAAC;AACxC,OAAO,8BAA8B,CAAC;AAEtC;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAmB,SAAQ,iBAAiB;IACtD,KAAK,CAAC,YAAY;QACzB,MAAM;IACR,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5D,CAAC;IAaD,YAAY,IAAqB;QAC/B,KAAK,CAAC,IAAI,CAAC,CAAC;QARd;;WAEG;QACS,mBAAc,GAAG,KAAK,CAAC;QAEnC,mBAAc,GAAG,KAAK,CAAC;IAIvB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI;YACF,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;YACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;YACxC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;YACzC,IAAI,GAAG,EAAE;gBACP,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC;aACxB;iBAAM;gBACL,IAAI,CAAC,gBAAgB,GAAG,kEAAkE,CAAC;aAC5F;SACF;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,gBAAgB,GAAI,CAAW,CAAC,OAAO,CAAC;SAC9C;IACH,CAAC;IAED,KAAK,CAAC,eAAe;QACnB,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,WAAW,CAAmC,CAAC;QAClH,IAAI,CAAC,GAAG,EAAE;YACR,GAAG,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;SACrD;aAAM;YACL,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;SAC5B;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAES,kBAAkB;QAC1B,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,gBAAgB,GAAG,kEAAkE,CAAC;YAC3F,OAAO;SACR;QACD,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;IACjC,CAAC;IAES,UAAU;QAClB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,GAAuB;QAClD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,IAAkC,CAAC;QACvC,IAAI;YACF,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1C,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;SACtE;gBAAS;YACR,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;SAC7B;QACD,IAAI,IAAI,EAAE;YACR,IAAI,IAAI,CAAC,cAAc,EAAE;gBACvB,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrE,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,eAAe,WAAW,CAAC,CAAC;aAC1E;iBAAM;gBACL,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;aACpD;SACF;IACH,CAAC;IAED;;;OAGG;IACM,YAAY;QACnB,OAAO,IAAI,CAAA;;QAEP,IAAI,CAAC,WAAW,EAAE;QAClB,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,eAAe,EAAE;;KAE5E,CAAC;IACJ,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAA;8DAC+C,IAAI,CAAC,gBAAgB;;yCAE1C,IAAI,CAAC,UAAU;;KAEnD,CAAC;IACJ,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAA;MACT,IAAI,CAAC,cAAc,EAAE;MACrB,IAAI,CAAC,YAAY,EAAE;MACnB,IAAI,CAAC,gBAAgB,EAAE;KACxB,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAA,qDAAqD,CAAC;IACnE,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;IAED,cAAc;QACZ,OAAO,IAAI,CAAA;;;;kBAIG,IAAI,CAAC,kBAAkB;;;KAGpC,CAAC;IACJ,CAAC;IAED,YAAY;QACV,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;IAED,gBAAgB;QACd,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI,CAAC,cAAc,EAAE;YACnB,OAAO,EAAE,CAAC;SACX;QACD,OAAO,IAAI,CAAA;;KAEV,CAAC;IACJ,CAAC;CACF;AA9Ia;IAAX,QAAQ,EAAE;4DAA2B;AAO1B;IAAX,QAAQ,EAAE;0DAAwB","sourcesContent":["import { html, TemplateResult, CSSResult } from 'lit';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport { reactive } from '../../lib/decorators.js';\nimport styles from './Authenticate.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport colors from '../../styles/m3/colors.module.js';\nimport dialog from '../../styles/m3/dialog.module.js';\nimport { IConfigEnvironment } from '../../lib/config/Config.js';\nimport { ISessionInitInfo } from '../../store/HttpStore.js';\nimport { EnvironmentsKey } from '../../bindings/base/ConfigurationBindings.js';\nimport '../../define/ui/ui-progress.js';\nimport '../../define/ui/ui-button.js';\n\n/**\n * When the user is redirected here it means that the user provided a configuration\n * that requires user authentication.\n */\nexport default class AuthenticateScreen extends ApplicationScreen {\n override async storeChanged(): Promise<void> {\n // ...\n }\n\n static get styles(): CSSResult[] {\n return [styles, globalStyles, typography, colors, dialog];\n }\n\n @reactive() environmentError?: string;\n\n environment?: IConfigEnvironment;\n\n /**\n * Whether the application is performing the store validation.\n */\n @reactive() authenticating = false;\n\n isSessionStore = false;\n\n constructor(init: ApplicationInit) {\n super(init);\n }\n\n async initialize(): Promise<void> {\n try {\n await this.bindings.store.initialize();\n await this.bindings.store.initializeStore();\n await this.bindings.config.initialize();\n const env = await this.readEnvironment();\n if (env) {\n this.environment = env;\n } else {\n this.environmentError = 'Environment information not found. Go back to the previous page.';\n }\n } catch (e) {\n this.environmentError = (e as Error).message;\n }\n }\n\n async readEnvironment(): Promise<IConfigEnvironment | undefined> {\n let env = await this.bindings.config.session.get(`${EnvironmentsKey}.creating`) as IConfigEnvironment | undefined;\n if (!env) {\n env = await this.bindings.config.environment.read();\n } else {\n this.isSessionStore = true;\n }\n return env;\n }\n\n protected handleAuthenticate(): void {\n const { environment } = this;\n if (!environment) {\n this.environmentError = 'Environment information not found. Go back to the previous page.';\n return;\n }\n this.authenticate(environment);\n }\n\n protected handleBack(): void {\n window.history.back();\n }\n\n protected async authenticate(env: IConfigEnvironment): Promise<void> {\n this.authenticating = true;\n let info: ISessionInitInfo | undefined;\n try {\n await this.bindings.store.global.set(env);\n info = await this.bindings.store.auth.authenticate({ force: false });\n } finally {\n this.authenticating = false;\n }\n if (info) {\n if (this.isSessionStore) {\n await this.bindings.config.environment.add(env, { asDefault: true });\n await this.bindings.config.session.delete(`${EnvironmentsKey}.creating`);\n } else {\n await this.bindings.config.environment.update(env);\n }\n }\n }\n\n /**\n * This to be used by the child classes to render page template.\n * @returns Application page template\n */\n override pageTemplate(): TemplateResult {\n return html`\n <main class=\"config-init\">\n ${this.renderTitle()}\n ${this.renderIntroMessage()}\n ${this.environmentError ? this.initErrorTemplate() : this.contentTemplate()}\n </main>\n `;\n }\n\n initErrorTemplate(): TemplateResult {\n return html`\n <p class=\"general-error error on-error-text body-large\">${this.environmentError}</p>\n <div class=\"action\">\n <ui-button type=\"filled\" @click=\"${this.handleBack}\">Back</ui-button>\n </div>\n `;\n }\n\n contentTemplate(): TemplateResult {\n return html`\n ${this.actionTemplate()}\n ${this.infoTemplate()}\n ${this.progressTemplate()}\n `;\n }\n\n renderTitle(): TemplateResult {\n return html`<h1 class=\"display-large\">Store authentication</h1>`;\n }\n\n renderIntroMessage(): TemplateResult {\n return html`\n <div class=\"description body-medium\">\n <p id=\"authenticationMessage\">The network store requires authentication.</p>\n </div>\n `;\n }\n\n actionTemplate(): TemplateResult {\n return html`\n <div class=\"action\">\n <ui-button \n type=\"filled\"\n @click=\"${this.handleAuthenticate}\"\n >Authenticate</ui-button>\n </div>\n `;\n }\n\n infoTemplate(): TemplateResult {\n return html`\n <p class=\"description body-medium\" id=\"authenticationMessage\">This will open a new tab with the authentication options.</p>\n `;\n }\n\n progressTemplate(): TemplateResult | string {\n const { authenticating } = this;\n if (!authenticating) {\n return '';\n }\n return html`\n <ui-progress indeterminate></ui-progress>\n `;\n }\n}\n"]}
1
+ {"version":3,"file":"Authenticate.screen.js","sourceRoot":"","sources":["../../../src/pages/api-client/Authenticate.screen.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, TemplateResult, CSSResult } from 'lit';\nimport { ApplicationInit, ApplicationScreen } from '../ApplicationScreen.js';\nimport { reactive } from '../../lib/decorators.js';\nimport styles from './Authenticate.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport colors from '../../styles/m3/colors.module.js';\nimport dialog from '../../styles/m3/dialog.module.js';\nimport { IConfigEnvironment } from '../../lib/config/Config.js';\nimport { ISessionInitInfo } from '../../store/HttpStore.js';\nimport { EnvironmentsKey } from '../../bindings/base/ConfigurationBindings.js';\nimport '../../define/ui/ui-progress.js';\nimport '../../define/ui/ui-button.js';\n\n/**\n * When the user is redirected here it means that the user provided a configuration\n * that requires user authentication.\n */\nexport default class AuthenticateScreen extends ApplicationScreen {\n override async storeChanged(): Promise<void> {\n // ...\n }\n\n static get styles(): CSSResult[] {\n return [styles, globalStyles, typography, colors, dialog];\n }\n\n @reactive() environmentError?: string;\n\n environment?: IConfigEnvironment;\n\n /**\n * Whether the application is performing the store validation.\n */\n @reactive() authenticating = false;\n\n isSessionStore = false;\n\n constructor(init: ApplicationInit) {\n super(init);\n }\n\n async initialize(): Promise<void> {\n try {\n await this.bindings.store.initialize();\n await this.bindings.store.initializeStore();\n await this.bindings.config.initialize();\n const env = await this.readEnvironment();\n if (env) {\n this.environment = env;\n } else {\n this.environmentError = 'Environment information not found. Go back to the previous page.';\n }\n } catch (e) {\n this.environmentError = (e as Error).message;\n }\n }\n\n async readEnvironment(): Promise<IConfigEnvironment | undefined> {\n let env = await this.bindings.config.session.get(`${EnvironmentsKey}.creating`) as IConfigEnvironment | undefined;\n if (!env) {\n env = await this.bindings.config.environment.read();\n } else {\n this.isSessionStore = true;\n }\n return env;\n }\n\n protected async handleAuth(): Promise<void> {\n const { environment } = this;\n if (!environment) {\n this.environmentError = 'Environment information not found. Go back to the previous page.';\n return;\n }\n this.authenticate(environment);\n }\n\n protected handleBack(): void {\n window.history.back();\n }\n\n protected async authenticate(env: IConfigEnvironment): Promise<void> {\n this.authenticating = true;\n let info: ISessionInitInfo | undefined;\n try {\n await this.bindings.store.global.set(env);\n info = await this.bindings.store.auth.authenticate({ force: false });\n } finally {\n this.authenticating = false;\n }\n if (info) {\n if (this.isSessionStore) {\n await this.bindings.config.environment.add(env, { asDefault: true });\n await this.bindings.config.session.delete(`${EnvironmentsKey}.creating`);\n } else {\n await this.bindings.config.environment.update(env);\n }\n }\n }\n\n /**\n * This to be used by the child classes to render page template.\n * @returns Application page template\n */\n override pageTemplate(): TemplateResult {\n return html`\n <main class=\"config-init\">\n ${this.renderTitle()}\n ${this.renderIntroMessage()}\n ${this.environmentError ? this.initErrorTemplate() : this.contentTemplate()}\n </main>\n `;\n }\n\n initErrorTemplate(): TemplateResult {\n return html`\n <p class=\"general-error error on-error-text body-large\">${this.environmentError}</p>\n <div class=\"action\">\n <ui-button type=\"filled\" @click=\"${this.handleBack}\">Back</ui-button>\n </div>\n `;\n }\n\n contentTemplate(): TemplateResult {\n return html`\n ${this.actionTemplate()}\n ${this.infoTemplate()}\n ${this.progressTemplate()}\n `;\n }\n\n renderTitle(): TemplateResult {\n return html`<h1 class=\"display-large\">Store authentication</h1>`;\n }\n\n renderIntroMessage(): TemplateResult {\n return html`\n <div class=\"description body-medium\">\n <p id=\"authenticationMessage\">The network store requires authentication.</p>\n </div>\n `;\n }\n\n actionTemplate(): TemplateResult {\n return html`\n <div class=\"action\">\n <ui-button \n type=\"filled\"\n @click=\"${this.handleAuth}\"\n >Authenticate</ui-button>\n </div>\n `;\n }\n\n infoTemplate(): TemplateResult {\n return html`\n <p class=\"description body-medium\" id=\"authenticationMessage\">This will open a new tab with the authentication options.</p>\n `;\n }\n\n progressTemplate(): TemplateResult | string {\n const { authenticating } = this;\n if (!authenticating) {\n return '';\n }\n return html`\n <ui-progress indeterminate></ui-progress>\n `;\n }\n}\n"]}
@@ -1,8 +1,9 @@
1
- import { IFile, FileBreadcrumb, ContextSpaceListOptions, BroadcastEvent, DeletedBroadcastEvent, FilePatchBroadcastEvent, ContextListResult, ICapabilities } from "@api-client/core/build/browser.js";
1
+ import { IFile, ICapabilities } from "@api-client/core/build/browser.js";
2
2
  import { nothing, TemplateResult } from "lit";
3
3
  import type ApiClientScreen from "../ApiClient.screen.js";
4
4
  import { DataTable } from "../../../ui/table/DataTable.js";
5
5
  import { DataImportProcessor } from "../../../http-client/store/DataImportProcessor.js";
6
+ import { FileSystem } from "../../../store/FileSystem.js";
6
7
  import '@github/relative-time-element';
7
8
  import '../../../define/ui/ui-list.js';
8
9
  import '../../../define/ui/ui-list-item.js';
@@ -13,7 +14,7 @@ import '../../../define/ui/ui-button.js';
13
14
  import '../../../define/ui/ui-divider.js';
14
15
  import '../../../define/ui/ui-text-field.js';
15
16
  import '../../../define/dialog/rename-dialog.js';
16
- import '../../../define/files/share-file.js';
17
+ import '../../../define/store/share-file.js';
17
18
  declare enum ImportState {
18
19
  Analyzing = 0,
19
20
  Analyzed = 1,
@@ -26,48 +27,17 @@ declare enum ImportState {
26
27
  */
27
28
  export declare class FilesPage {
28
29
  protected screen: ApiClientScreen;
29
- /**
30
- * The list of files to render.
31
- * Do not overwrite this property or when you must then update the DataTable's `items` as well.
32
- */
33
- files: IFile[];
34
- /**
35
- * The pagination cursor for files.
36
- * As long there's a cursor, there are more files to request.
37
- */
38
- cursor?: string;
39
- /**
40
- * The key of the currently rendered folder.
41
- */
42
- folder?: string;
43
- breadcrumbs?: FileBreadcrumb[];
30
+ fs: FileSystem;
44
31
  dt: DataTable<IFile>;
45
32
  importProcessor?: DataImportProcessor;
46
33
  importState?: ImportState;
47
- /**
48
- * Whether the UI is reading files
49
- */
50
- readingFiles?: boolean;
51
34
  /**
52
35
  * A selected in the table item.
53
36
  */
54
37
  selectedItem?: string;
38
+ errorMessage?: string;
55
39
  constructor(screen: ApiClientScreen);
56
40
  refresh(): Promise<void>;
57
- resetList(): void;
58
- readFiles(): Promise<void>;
59
- protected listFiles(opts: ContextSpaceListOptions): Promise<ContextListResult<IFile>>;
60
- /**
61
- * Sorts files on the list.
62
- *
63
- * Folders are always on top.
64
- */
65
- filesSortFunction(a: IFile, b: IFile): number;
66
- handleFileEvent(event: BroadcastEvent): void;
67
- handleFileCreated(file: IFile): void;
68
- handleFileDeleted(event: DeletedBroadcastEvent): void;
69
- removeFileFromList(key: string): void;
70
- handleFilePatch(event: FilePatchBroadcastEvent): void;
71
41
  protected cancelCreateProjectDialog(): void;
72
42
  protected cancelCreateFolderDialog(): void;
73
43
  protected cancelImportDialog(): void;
@@ -88,6 +58,7 @@ export declare class FilesPage {
88
58
  protected itemActivateHandler(item: IFile): void;
89
59
  protected handleTableRender(): void;
90
60
  protected handleTableSelect(item: string | string[]): void;
61
+ protected handleTableScrollEnd(): void;
91
62
  openProject(key: string): void;
92
63
  openDataSchema(key: string): void;
93
64
  openFolder(folder: IFile): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"Files.page.d.ts","sourceRoot":"","sources":["../../../../src/pages/api-client/pages/Files.page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Files.page.d.ts","sourceRoot":"","sources":["../../../../src/pages/api-client/pages/Files.page.ts"],"names":[],"mappings":"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"}