@api-client/ui 0.0.10 → 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.
- package/.eslintrc +16 -1
- package/demo/elements/index.html +3 -0
- package/demo/elements/store/file-picker.html +15 -0
- package/demo/elements/store/file-picker.ts +134 -0
- package/demo/elements/store/index.html +19 -0
- package/demo/index.html +3 -0
- package/demo/layout/index.html +91 -0
- package/demo/layout/index.ts +182 -0
- package/demo/store/StorePlugin.js +1 -0
- package/dist/bindings/base/StoreBindings.d.ts +5 -0
- package/dist/bindings/base/StoreBindings.d.ts.map +1 -1
- package/dist/bindings/base/StoreBindings.js +15 -1
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/define/store/file-picker.d.ts +9 -0
- package/dist/define/store/file-picker.d.ts.map +1 -0
- package/dist/define/store/file-picker.js +10 -0
- package/dist/define/store/file-picker.js.map +1 -0
- package/dist/define/{files → store}/share-file.d.ts +1 -1
- package/dist/define/store/share-file.d.ts.map +1 -0
- package/dist/define/{files → store}/share-file.js +2 -2
- package/dist/define/store/share-file.js.map +1 -0
- package/dist/elements/layout/SplitItem.d.ts +1 -9
- package/dist/elements/layout/SplitItem.d.ts.map +1 -1
- package/dist/elements/layout/SplitItem.js +27 -20
- package/dist/elements/layout/SplitItem.js.map +1 -1
- package/dist/elements/layout/SplitLayout.d.ts +16 -14
- package/dist/elements/layout/SplitLayout.d.ts.map +1 -1
- package/dist/elements/layout/SplitLayout.js +47 -42
- package/dist/elements/layout/SplitLayout.js.map +1 -1
- package/dist/elements/layout/SplitPanel.d.ts +7 -2
- package/dist/elements/layout/SplitPanel.d.ts.map +1 -1
- package/dist/elements/layout/SplitPanel.js +130 -52
- package/dist/elements/layout/SplitPanel.js.map +1 -1
- package/dist/elements/layout/SplitView.d.ts.map +1 -1
- package/dist/elements/layout/SplitView.js +18 -14
- package/dist/elements/layout/SplitView.js.map +1 -1
- package/dist/elements/layout/type.d.ts +3 -3
- package/dist/elements/layout/type.d.ts.map +1 -1
- package/dist/elements/layout/type.js.map +1 -1
- package/dist/elements/store/FilePicker.element.d.ts +87 -0
- package/dist/elements/store/FilePicker.element.d.ts.map +1 -0
- package/dist/elements/store/FilePicker.element.js +263 -0
- package/dist/elements/store/FilePicker.element.js.map +1 -0
- package/dist/elements/store/FilePicker.styles.d.ts +3 -0
- package/dist/elements/store/FilePicker.styles.d.ts.map +1 -0
- package/dist/elements/store/FilePicker.styles.js +72 -0
- package/dist/elements/store/FilePicker.styles.js.map +1 -0
- package/dist/elements/store/FilesLib.d.ts +10 -0
- package/dist/elements/store/FilesLib.d.ts.map +1 -0
- package/dist/elements/store/FilesLib.js +38 -0
- package/dist/elements/store/FilesLib.js.map +1 -0
- package/dist/elements/{files/ShareFile.d.ts → store/ShareFile.element.d.ts} +1 -1
- package/dist/elements/store/ShareFile.element.d.ts.map +1 -0
- package/dist/elements/{files/ShareFile.js → store/ShareFile.element.js} +1 -1
- package/dist/elements/store/ShareFile.element.js.map +1 -0
- package/dist/elements/store/ShareFile.styles.d.ts.map +1 -0
- package/dist/elements/{files → store}/ShareFile.styles.js.map +1 -1
- package/dist/events/EventTypes.d.ts +1 -0
- package/dist/events/EventTypes.d.ts.map +1 -1
- package/dist/events/EventTypes.js +1 -0
- package/dist/events/EventTypes.js.map +1 -1
- package/dist/events/Events.d.ts +1 -0
- package/dist/events/Events.d.ts.map +1 -1
- package/dist/events/StoreEvents.d.ts +8 -1
- package/dist/events/StoreEvents.d.ts.map +1 -1
- package/dist/events/StoreEvents.js +19 -0
- package/dist/events/StoreEvents.js.map +1 -1
- package/dist/pages/ApplicationScreen.d.ts +1 -1
- package/dist/pages/ApplicationScreen.d.ts.map +1 -1
- package/dist/pages/ApplicationScreen.js +4 -2
- package/dist/pages/ApplicationScreen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.d.ts +0 -6
- package/dist/pages/api-client/ApiClient.screen.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +16 -29
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts +1 -1
- package/dist/pages/api-client/Authenticate.screen.d.ts.map +1 -1
- package/dist/pages/api-client/Authenticate.screen.js +2 -2
- package/dist/pages/api-client/Authenticate.screen.js.map +1 -1
- package/dist/pages/api-client/pages/Files.page.d.ts +6 -35
- package/dist/pages/api-client/pages/Files.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Files.page.js +32 -141
- package/dist/pages/api-client/pages/Files.page.js.map +1 -1
- package/dist/pages/api-client/pages/Shared.page.d.ts +1 -5
- package/dist/pages/api-client/pages/Shared.page.d.ts.map +1 -1
- package/dist/pages/api-client/pages/Shared.page.js +1 -40
- package/dist/pages/api-client/pages/Shared.page.js.map +1 -1
- package/dist/pages/demo/DemoPage.d.ts +7 -0
- package/dist/pages/demo/DemoPage.d.ts.map +1 -1
- package/dist/pages/demo/DemoPage.js +14 -0
- package/dist/pages/demo/DemoPage.js.map +1 -1
- package/dist/pages/http-project/HttpClientCommands.d.ts.map +1 -1
- package/dist/pages/http-project/HttpClientCommands.js +28 -12
- package/dist/pages/http-project/HttpClientCommands.js.map +1 -1
- package/dist/store/FileSystem.d.ts +90 -0
- package/dist/store/FileSystem.d.ts.map +1 -0
- package/dist/store/FileSystem.js +260 -0
- package/dist/store/FileSystem.js.map +1 -0
- package/dist/styles/global-styles.d.ts.map +1 -1
- package/dist/styles/global-styles.js +7 -0
- package/dist/styles/global-styles.js.map +1 -1
- package/dist/ui/icons/Icons.d.ts +2 -1
- package/dist/ui/icons/Icons.d.ts.map +1 -1
- package/dist/ui/icons/Icons.js +1 -0
- package/dist/ui/icons/Icons.js.map +1 -1
- package/dist/ui/list/UiDropdownList.d.ts +9 -1
- package/dist/ui/list/UiDropdownList.d.ts.map +1 -1
- package/dist/ui/list/UiDropdownList.js +39 -17
- package/dist/ui/list/UiDropdownList.js.map +1 -1
- package/dist/ui/list/UiList.d.ts +6 -1
- package/dist/ui/list/UiList.d.ts.map +1 -1
- package/dist/ui/list/UiList.js +24 -9
- package/dist/ui/list/UiList.js.map +1 -1
- package/dist/ui/table/DataTable.d.ts +4 -0
- package/dist/ui/table/DataTable.d.ts.map +1 -1
- package/dist/ui/table/DataTable.js +23 -1
- package/dist/ui/table/DataTable.js.map +1 -1
- package/package.json +2 -1
- package/src/bindings/base/StoreBindings.ts +16 -1
- package/src/define/store/file-picker.ts +12 -0
- package/src/define/{files → store}/share-file.ts +2 -2
- package/src/elements/layout/SplitItem.ts +29 -21
- package/src/elements/layout/SplitLayout.ts +53 -43
- package/src/elements/layout/SplitPanel.ts +140 -57
- package/src/elements/layout/SplitView.ts +18 -15
- package/src/elements/layout/type.ts +3 -4
- package/src/elements/store/FilePicker.element.ts +297 -0
- package/src/elements/store/FilePicker.styles.ts +72 -0
- package/src/elements/store/FilesLib.ts +32 -0
- package/src/events/EventTypes.ts +1 -0
- package/src/events/StoreEvents.ts +21 -1
- package/src/pages/ApplicationScreen.ts +5 -3
- package/src/pages/api-client/ApiClient.screen.ts +16 -31
- package/src/pages/api-client/Authenticate.screen.ts +2 -2
- package/src/pages/api-client/pages/Files.page.ts +37 -164
- package/src/pages/api-client/pages/Shared.page.ts +2 -40
- package/src/pages/demo/DemoPage.ts +17 -0
- package/src/pages/http-project/HttpClientCommands.ts +28 -12
- package/src/store/FileSystem.ts +325 -0
- package/src/styles/global-styles.ts +7 -0
- package/src/ui/icons/Icons.ts +2 -1
- package/src/ui/list/UiDropdownList.ts +44 -17
- package/src/ui/list/UiList.ts +26 -10
- package/src/ui/table/DataTable.ts +29 -3
- package/test/elements/layout/SplitItem.test.ts +76 -75
- package/test/elements/layout/SplitLayoutManager.test.ts +70 -69
- package/test/elements/layout/SplitPanel.test.ts +10 -7
- package/test/elements/store/FilePicker.test.ts +241 -0
- package/test/env.js +3 -0
- package/test/helpers/StoreHelper.ts +390 -0
- package/tsconfig.eslint.json +10 -0
- package/web-test-runner.config.mjs +51 -2
- package/dist/define/files/share-file.d.ts.map +0 -1
- package/dist/define/files/share-file.js.map +0 -1
- package/dist/define/layout/layout-panel.d.ts +0 -7
- package/dist/define/layout/layout-panel.d.ts.map +0 -1
- package/dist/define/layout/layout-panel.js +0 -3
- package/dist/define/layout/layout-panel.js.map +0 -1
- package/dist/elements/files/ShareFile.d.ts.map +0 -1
- package/dist/elements/files/ShareFile.js.map +0 -1
- package/dist/elements/files/ShareFile.styles.d.ts.map +0 -1
- package/dist/elements/layout/LayoutManager.d.ts +0 -327
- package/dist/elements/layout/LayoutManager.d.ts.map +0 -1
- package/dist/elements/layout/LayoutManager.js +0 -747
- package/dist/elements/layout/LayoutManager.js.map +0 -1
- package/dist/elements/layout/LayoutPanelElement.d.ts +0 -62
- package/dist/elements/layout/LayoutPanelElement.d.ts.map +0 -1
- package/dist/elements/layout/LayoutPanelElement.js +0 -628
- package/dist/elements/layout/LayoutPanelElement.js.map +0 -1
- package/src/define/layout/layout-panel.ts +0 -9
- package/src/elements/layout/LayoutManager.ts +0 -930
- package/src/elements/layout/LayoutPanelElement.ts +0 -651
- /package/dist/elements/{files → store}/ShareFile.styles.d.ts +0 -0
- /package/dist/elements/{files → store}/ShareFile.styles.js +0 -0
- /package/src/elements/{files/ShareFile.ts → store/ShareFile.element.ts} +0 -0
- /package/src/elements/{files → store}/ShareFile.styles.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/StoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable no-dupe-class-members */\nimport { \n IBackendInfo, ProjectKind, FolderKind, DataFileKind, ContextListOptions, ContextListResult, IFile,\n IFileCreateOptions, AccessOperation, IUser, \n Folder, HttpProject, IAccessPatchInfo, IPatchInfo, IPatchRevision, IApplication, \n IHttpHistory, IHttpHistoryBulkAdd, HistoryListOptions, Project, ListFileKind, DataNamespace, DataFile, \n IBulkOperationResult, ContextChangeRecord,\n ContextDeleteEvent,\n ContextDeleteRecord,\n IProjectExecution,\n IProjectExecutionListOptions,\n ISpace,\n SpaceKind,\n Space,\n PermissionRole,\n HttpCertificate,\n ContextSpaceListOptions,\n IRevision,\n TrashEntry,\n TrashEntryCreate,\n ContextDeleteBulkEvent,\n ICertificate,\n ContextListEvent,\n ContextReadEvent,\n ContextUpdateEvent,\n FileAddOptions,\n FileBreadcrumb,\n IBackendObserveCommand,\n BackendCommandType,\n BackendCommandKind,\n RouteBuilder,\n BroadcastEvent,\n BackendErrorEvent,\n BroadcastFileData,\n} from '@api-client/core/build/browser.js';\nimport { Patch } from '@api-client/json';\nimport { PlatformBindings } from './PlatformBindings.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { IConfigEnvironment, IConfigInit } from '../../lib/config/Config.js';\nimport { ISessionInitInfo, HttpStore } from '../../store/HttpStore.js';\nimport { StoreBroadcast } from '../../http-client/store/StoreBroadcast.js';\n\nexport interface EnvironmentSettings {\n /**\n * Initializes the store configuration from the init data.\n * \n * @param init The init data for the store environment.\n */\n init(init: IConfigInit): Promise<void>;\n\n /**\n * Reads the backend information about the store.\n * \n * @param baseUri Store's base URI.\n */\n readStoreInfo(baseUri: string): Promise<IBackendInfo>;\n}\n\nexport interface StoreAuthenticationInit {\n /**\n * The environment to authenticate. Default to globally set environment.\n */\n env?: IConfigEnvironment; \n /**\n * Whether to update environment in application configuration after authentication.\n */\n updateEnvironment?: boolean;\n /**\n * Whether to force authentication even when the user is already authenticated.\n */\n force?: boolean;\n}\n\ninterface StoreAuthentication {\n /**\n * Checks whether the user is authenticated in the store for the environment\n * @param env Optional environment if different than the global environment\n * @returns True if the user is authenticated in the store.\n */\n isAuthenticated(env?: IConfigEnvironment): Promise<boolean>;\n\n /**\n * Authenticates the global environment with the store.\n * \n * @param updateEnvironment When true it stores the environment data when the session was renewed.\n */\n authenticate(options?: StoreAuthenticationInit): Promise<ISessionInitInfo>;\n\n getToken(): Promise<string | undefined>;\n}\n\n/**\n * The base class for API store bindings.\n */\nexport abstract class StoreBindings extends PlatformBindings {\n /**\n * This is used by the client side (main thread or the renderer process)\n * to define the current space the app is using. \n * This space is used in some APIs instead of adding the space to the events system.\n */\n space = '';\n\n /**\n * The currently used environment for all store calls.\n * This can be changed via the `Events.Global.setEnv()`\n */\n globalEnvironment?: IConfigEnvironment;\n\n /**\n * Initialized with the `globalEnvironment`.\n * The store with initialized SDK for the global environment\n */\n store?: HttpStore;\n\n filesChannel = new BroadcastChannel(StoreBroadcast.files);\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);\n\n trashChannel = new BroadcastChannel(StoreBroadcast.trash);\n\n historyChannel = new BroadcastChannel(StoreBroadcast.history);\n\n projectExeChannel = new BroadcastChannel(StoreBroadcast.projectRuns);\n\n certificatesChannel = new BroadcastChannel(StoreBroadcast.certificates);\n\n async initializeStore(): Promise<void> {\n // ...\n }\n\n async initialize(): Promise<void> {\n const target = document.body;\n\n window.addEventListener(EventTypes.Store.initEnvironment, this.handleInitializeEnvironment.bind(this));\n window.addEventListener(EventTypes.Store.info, this.handleStoreInfo.bind(this));\n window.addEventListener(EventTypes.Store.Global.setEnv, this.setGlobalEnvHandler.bind(this));\n window.addEventListener(EventTypes.Store.Global.getEnv, this.getGlobalEnvHandler.bind(this));\n \n // Auth\n window.addEventListener(EventTypes.Store.Auth.authenticate, this.storeAuthHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.isAuthenticated, this.storeIsAuthenticatedHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.getToken, this.getTokenHandler.bind(this));\n\n // Files\n window.addEventListener(EventTypes.Store.File.list, this.handleFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listShared, this.handleSharedFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.create, this.handleFileCreate.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.createDefault, this.fileCreateDefaultHandler.bind(this));\n window.addEventListener(EventTypes.Store.File.read, this.handleFileRead.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patch, this.handleFilePatch.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.delete, this.handleFileDelete.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patchUsers, this.handleFilePatchUser.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listUsers, this.handleListFileUsers.bind(this) as EventListener);\n\n // User\n window.addEventListener(EventTypes.Store.User.me, this.handlerMe.bind(this));\n window.addEventListener(EventTypes.Store.User.list, this.handleUsersList.bind(this));\n window.addEventListener(EventTypes.Store.User.read, this.handleUserRead.bind(this));\n\n // history\n target.addEventListener(EventTypes.Store.History.create, this.handleHistoryCreate.bind(this));\n target.addEventListener(EventTypes.Store.History.createBulk, this.handleHistoryCreateBulk.bind(this));\n target.addEventListener(EventTypes.Store.History.delete, this.handleHistoryDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.deleteBulk, this.handleHistoryDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.list, this.handleHistoryList.bind(this));\n target.addEventListener(EventTypes.Store.History.read, this.handleHistoryRead.bind(this));\n target.addEventListener(EventTypes.Store.History.clearSpace, this.handleHistoryClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearProject, this.handleHistoryClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearRequest, this.handleHistoryClearRequest.bind(this) as EventListener);\n\n // project runs\n target.addEventListener(EventTypes.Store.ProjectRuns.add, this.handleAddProjectExecution.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.list, this.handleProjectExecutionList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.read, this.handleProjectExecutionRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.delete, this.handleProjectExecutionDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.deleteBulk, this.handleProjectExecutionDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearSpace, this.handleProjectExecutionClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearProject, this.handleProjectExecutionClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearParent, this.handleProjectExecutionClearFolder.bind(this) as EventListener);\n\n // certificates\n target.addEventListener(EventTypes.Store.Certificate.list, this.handleCertificateList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.read, this.handleCertificateRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.delete, this.handleCertificateDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.insert, this.handleCertificateInsert.bind(this) as EventListener);\n }\n\n abstract environment: EnvironmentSettings;\n\n auth: StoreAuthentication = {\n isAuthenticated: async (env?: IConfigEnvironment): Promise<boolean> => {\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store.isAuthenticated(env);\n },\n\n authenticate: async (options: StoreAuthenticationInit = {}): Promise<ISessionInitInfo> => {\n const { env, force, updateEnvironment } = options;\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const result = await store.getStoreSessionToken(undefined, force);\n if (updateEnvironment && result.new) {\n await Events.Config.Environment.update(env || this.globalEnvironment as IConfigEnvironment);\n }\n return result;\n },\n\n /**\n * @returns The current store token or undefined if no store is set.\n */\n getToken: async (): Promise<string | undefined> => {\n const { store } = this;\n return store && store.sdk && store.sdk.token || undefined;\n },\n }\n\n global = {\n /**\n * Sets the store environment to be used globally by the application.\n * This initializes the store with the configuration.\n * \n * Note, this won't initialize the session with the store.\n * \n * @param env The environment to set. Note, it must have the `location` set.\n */\n set: async (env: IConfigEnvironment): Promise<void> => {\n if (!env.location) {\n throw new Error(`The location is required for store environment configuration.`);\n }\n this.globalEnvironment = env;\n const store = new HttpStore(env);\n this.store = store;\n },\n\n get: async (): Promise<IConfigEnvironment> => {\n const { globalEnvironment } = this;\n if (!globalEnvironment) {\n throw new Error(`The current environment is not set.`);\n }\n return globalEnvironment;\n },\n }\n\n protected handleInitializeEnvironment(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n const copy = { ...e.detail };\n e.detail.result = this.environment.init(copy);\n }\n\n protected handleStoreInfo(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.environment.readStoreInfo(e.detail.baseUri);\n }\n\n protected storeAuthHandler(input: Event): void {\n const e = input as CustomEvent<{ options?: StoreAuthenticationInit, result: Promise<ISessionInitInfo> }>;\n e.preventDefault();\n e.detail.result = this.auth.authenticate(e.detail.options);\n }\n\n protected storeIsAuthenticatedHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.isAuthenticated(e.detail.env);\n }\n\n protected setGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.set(e.detail.env);\n }\n\n protected getGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.get();\n }\n\n protected getTokenHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.getToken();\n }\n\n protected handleFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.file.list(space, kinds as ListFileKind[], options);\n }\n\n protected handleSharedFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.shared.list(space, kinds, options);\n }\n\n protected handleFileCreate(event: CustomEvent<{ meta: IFile, media?: unknown, opts?: IFileCreateOptions, result: Promise<ContextChangeRecord<IFile>> }>): void {\n event.preventDefault();\n const { meta, media, opts } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.create(meta, media, this.space, opts);\n } else {\n event.detail.result = this.getStore().sdk.file.createMeta(meta, this.space, opts);\n }\n }\n\n protected fileCreateDefaultHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.createDefaultFile(e.detail.name, e.detail.kind, e.detail.opts);\n }\n\n protected handleFileRead(event: CustomEvent<{ key: string, media: boolean, result: Promise<IFile | unknown> }>): void {\n event.preventDefault();\n const { media, key } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as true);\n } else {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as false);\n }\n }\n\n protected handleFilePatch(event: CustomEvent<{ key: string, id: string, value: Patch.JsonPatch, app: IApplication, media?: boolean, result: Promise<IPatchRevision> }>): void {\n event.preventDefault();\n const { key, id, value, app, media } = event.detail;\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n\n event.detail.result = this.getStore().sdk.file.patch(this.space, key, info, media as false);\n }\n\n protected handleFileDelete(event: CustomEvent<{ key: string, result: Promise<string> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.delete(this.space, event.detail.key);\n }\n\n protected handleFilePatchUser(event: CustomEvent<{ key: string, id: string, value: AccessOperation[], app: IApplication, result: Promise<void> }>): void {\n event.preventDefault();\n const { key, id, value } = event.detail;\n const info: IAccessPatchInfo = {\n patch: value,\n id,\n };\n event.detail.result = this.getStore().sdk.file.patchUsers(this.space, key, info);\n }\n\n protected handleListFileUsers(event: CustomEvent<{ key: string, result: Promise<ContextListResult<IUser>> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.listUsers(this.space, event.detail.key);\n }\n\n\n protected handlerMe(input: Event): void {\n const e = input as CustomEvent<{ result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.me();\n }\n\n protected handleUsersList(input: Event): void {\n const e = input as CustomEvent<{ options?: ContextListOptions, result: Promise<ContextListResult<IUser>> }>;\n e.preventDefault();\n e.detail.result = this.users.list(e.detail.options);\n }\n\n\n protected handleUserRead(input: Event): void {\n const e = input as CustomEvent<{ key: string, result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.read(e.detail.key);\n }\n\n protected handleHistoryCreate(input: Event): void {\n const e = input as CustomEvent<{ history: IHttpHistory, result: Promise<ContextChangeRecord<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.history };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.add(cp);\n }\n\n protected handleHistoryCreateBulk(input: Event): void {\n const e = input as CustomEvent<{ info: IHttpHistoryBulkAdd, result: Promise<IBulkOperationResult<ContextChangeRecord<IHttpHistory>>> }>;\n e.preventDefault();\n const cp = { ...e.detail.info };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.createBulk(cp);\n }\n\n protected handleHistoryDelete(input: Event): void {\n const e = input as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.deleteHistory(e.detail.key);\n }\n\n protected handleHistoryList(input: Event): void {\n const e = input as CustomEvent<{ init: HistoryListOptions, result: Promise<ContextListResult<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.init } as HistoryListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.list(cp);\n }\n\n protected handleHistoryRead(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.getStore().sdk.history.read(e.detail.key);\n }\n\n protected handleHistoryDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.deleteBulk(event.detail.keys);\n }\n\n protected handleHistoryClearSpace(event: CustomEvent<{ result: Promise<void>, space: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearSpace(event.detail.space);\n }\n\n protected handleHistoryClearProject(event: CustomEvent<{ result: Promise<void>, space: string, project: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearProject(event.detail.space, event.detail.project);\n }\n\n protected handleHistoryClearRequest(event: CustomEvent<{ result: Promise<void>, space: string, project: string, request: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearRequest(event.detail.space, event.detail.project, event.detail.request);\n }\n\n async deleteHistory(key: string): Promise<ContextDeleteRecord> {\n await this.getStore().sdk.history.delete(key);\n return {\n key,\n };\n }\n\n protected handleAddProjectExecution(event: CustomEvent<{ item: IProjectExecution, result: Promise<ContextChangeRecord<IProjectExecution>> }>): void {\n event.preventDefault();\n const { item } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.add(this.space, item);\n }\n\n protected handleProjectExecutionRead(event: CustomEvent<{ key: string, result: Promise<IProjectExecution> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.read(key);\n }\n\n protected handleProjectExecutionList(event: CustomEvent<{ options: IProjectExecutionListOptions, result: Promise<ContextListResult<IProjectExecution>> }>): void {\n event.preventDefault();\n const { options } = event.detail;\n const cp = { ...options };\n if (!cp.space) {\n cp.space = this.space;\n }\n event.detail.result = this.getStore().sdk.projectExecution.list(cp);\n }\n\n protected handleProjectExecutionDelete(event: CustomEvent<{ key: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.delete(key);\n }\n\n protected handleProjectExecutionDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n const { keys } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.deleteBulk(keys);\n }\n\n protected handleProjectExecutionClearSpace(event: CustomEvent<{ space: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearSpace(space);\n }\n\n protected handleProjectExecutionClearProject(event: CustomEvent<{ space: string, project: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearProject(space, project);\n }\n\n protected handleProjectExecutionClearFolder(event: CustomEvent<{ space: string, project: string, folder: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project, folder } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearParent(space, project, folder);\n }\n\n /**\n * A logic that creates an empty (default) file from its name and the file kind.\n * \n * @param name The name of the file.\n * @param kind The kind of the file.\n * @param opts Optional create options\n * @returns The key of the created file.\n */\n async createDefaultFile(space: string, name: string, kind: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n switch (kind) {\n case ProjectKind: return this.createDefaultProject(space, name, opts);\n case FolderKind: return this.createDefaultFolder(space, name, opts);\n case DataFileKind: return this.createDefaultDataNamespace(space, name, opts);\n default: \n throw new Error(`Unrecognized file kind: ${kind}`);\n }\n }\n\n /**\n * Creates a default HttpProject from a name\n * \n * @param name The name of the project\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultProject(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = HttpProject.fromName(name);\n const file = Project.fromProject(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default DataNamespace from a name\n * \n * @param name The name of the DataNamespace\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultDataNamespace(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = DataNamespace.fromName(name);\n const file = DataFile.fromDataNamespace(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default Folder from a name\n * \n * @param name The name of the space\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultFolder(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const folder = Folder.fromName(name, space);\n return store.sdk.file.createMeta(folder.toJSON(), space, opts);\n }\n\n getStore(): HttpStore {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store;\n }\n\n spaces = {\n list: (options?: ContextListOptions): Promise<ContextListResult<ISpace>> => this.getStore().sdk.spaces.list(options),\n add: (nameOrObject: string | ISpace): Promise<ContextChangeRecord<ISpace>> => {\n let space: ISpace;\n if (typeof nameOrObject === 'string') {\n space = Space.fromName(nameOrObject).toJSON();\n } else {\n space = nameOrObject as ISpace;\n }\n return this.getStore().sdk.spaces.add(space);\n },\n read: (key: string): Promise<ISpace> => this.getStore().sdk.spaces.read(key),\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.spaces.delete(key);\n return {\n key,\n kind: SpaceKind,\n };\n },\n addUser: (space: string, otherUserKey: string, role: PermissionRole, expires?: number): Promise<void> => this.getStore().sdk.spaces.addUser(this.space || space, otherUserKey, role, expires),\n removeUser: (space: string, otherUserKey: string): Promise<void> => this.getStore().sdk.spaces.removeUser(this.space || space, otherUserKey),\n patchUsers: (space: string, value: IAccessPatchInfo): Promise<void> => this.getStore().sdk.spaces.patchUsers(this.space || space, value),\n }\n\n certificates = {\n add: (value: HttpCertificate, space: string): Promise<ContextChangeRecord<HttpCertificate>> => this.getStore().sdk.certificates.add(value, this.space || space),\n addBulk: (values: HttpCertificate[], space: string): Promise<IBulkOperationResult<ContextChangeRecord<HttpCertificate>>> => this.getStore().sdk.certificates.addBulk(values, this.space || space),\n read: (key: string): Promise<HttpCertificate> => this.getStore().sdk.certificates.read(key),\n list: (options?: ContextSpaceListOptions): Promise<ContextListResult<HttpCertificate>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.certificates.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.certificates.delete(key);\n return {\n key,\n };\n },\n deleteBulk: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.certificates.deleteBulk(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.certificates.empty(this.space || space),\n }\n\n trash = {\n add: (entry: TrashEntryCreate, space: string): Promise<ContextChangeRecord<TrashEntry>> => this.getStore().sdk.trash.add(entry, this.space || space),\n list: (options: ContextSpaceListOptions): Promise<ContextListResult<TrashEntry>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.trash.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.trash.delete(key);\n return { key };\n },\n batchDelete: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.trash.batchDelete(keys),\n restore: (key: string): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.trash.restore(key),\n batchRestore: (keys: string[]): Promise<IBulkOperationResult<ContextChangeRecord<IFile>>> => this.getStore().sdk.trash.batchDelete(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.trash.empty(this.space || space),\n }\n\n revisions = {\n list: (key: string, options: ContextSpaceListOptions): Promise<ContextListResult<IRevision>> => this.getStore().sdk.revisions.list(key, options),\n }\n\n media = {\n add: (key: string, contents: unknown, mime: string): Promise<void> => this.getStore().sdk.file.createMedia(contents, this.space, key, { mime }),\n read: (key: string): Promise<unknown> => this.getStore().sdk.file.read(this.space, key, true),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, true),\n }\n\n files = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.file.list(this.space, kinds, options),\n add: (input: IFile, opts?: FileAddOptions): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.file.createMeta(input, this.space, opts),\n read: (key: string): Promise<IFile> => this.getStore().sdk.file.read(this.space, key, false),\n readBulk: (keys: string[]): Promise<IBulkOperationResult<IFile>> => this.getStore().sdk.file.readBulk(this.space, keys),\n delete: (key: string): Promise<string> => this.getStore().sdk.file.delete(this.space, key),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, false),\n breadcrumbs: (key: string): Promise<ContextListResult<FileBreadcrumb>> => this.getStore().sdk.file.breadcrumbs(this.space, key),\n }\n\n shared = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.shared.list(this.space, kinds, options),\n }\n\n users = {\n list: (options?: ContextListOptions): Promise<ContextListResult<IUser>> => this.getStore().sdk.user.list(options),\n me: (): Promise<IUser> => this.getStore().sdk.user.me(),\n read: (key: string): Promise<IUser> => this.getStore().sdk.user.read(key),\n }\n\n protected handleCertificateList(event: Event): void {\n const e = event as ContextListEvent<ICertificate>;\n e.preventDefault();\n const options: ContextSpaceListOptions = {\n ...e.detail,\n space: this.space,\n }\n e.detail.result = this.certificates.list(options);\n }\n\n protected handleCertificateRead(event: Event): void {\n const e = event as ContextReadEvent<ICertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.read(e.detail.key);\n }\n\n protected handleCertificateDelete(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.certificates.delete(e.detail.key);\n }\n\n protected handleCertificateInsert(event: Event): void {\n const e = event as ContextUpdateEvent<HttpCertificate, HttpCertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.add(e.detail.item, this.space);\n }\n\n async observeCertificates(): Promise<void> {\n await this.observePath(RouteBuilder.certificates());\n }\n\n async unobserveCertificates(): Promise<void> {\n await this.unobservePath(RouteBuilder.certificates());\n }\n\n async observeSpaces(): Promise<void> {\n await this.observePath(RouteBuilder.spaces());\n }\n\n async unobserveSpaces(): Promise<void> {\n await this.unobservePath(RouteBuilder.spaces());\n }\n\n async observeFiles(): Promise<void> {\n await this.observePath(RouteBuilder.files());\n }\n\n async unobserveFiles(): Promise<void> {\n await this.unobservePath(RouteBuilder.files());\n }\n\n async observeFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.observePath(`${path}?alt=${alt}`);\n }\n\n async unobserveFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.unobservePath(`${path}?alt=${alt}`);\n }\n\n async observeHistory(): Promise<void> {\n await this.observePath(RouteBuilder.history());\n }\n\n async unobserveHistory(): Promise<void> {\n await this.unobservePath(RouteBuilder.history());\n }\n\n async observeProjectExecutions(): Promise<void> {\n await this.observePath(RouteBuilder.projectExecutions());\n }\n\n async unobserveProjectExecutions(): Promise<void> {\n await this.unobservePath(RouteBuilder.projectExecutions());\n }\n\n async observeTrash(): Promise<void> {\n await this.observePath(RouteBuilder.trash());\n }\n\n async unobserveTrash(): Promise<void> {\n await this.unobservePath(RouteBuilder.trash());\n }\n\n async sendSocket(ws: WebSocket, command: unknown): Promise<void> {\n ws.send(JSON.stringify(command));\n }\n\n protected async observePath(path: string): Promise<void> {\n const { space } = this;\n const url = new URL(path, 'http://localhost');\n url.searchParams.set('space', space);\n const fullPath = `${url.pathname}${url.search}`\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.observe,\n kind: BackendCommandKind,\n path: fullPath,\n };\n await this.sendSocket(socket, cmd);\n }\n\n protected async unobservePath(path: string): Promise<void> {\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.unobserve,\n kind: BackendCommandKind,\n path,\n };\n await this.sendSocket(socket, cmd);\n }\n\n eventsSocket?: WebSocket;\n\n async getEventsSocket(): Promise<WebSocket> {\n if (!this.eventsSocket) {\n const store = this.getStore();\n const { token } = store.sdk;\n const url = store.sdk.getUrl('/events');\n this.eventsSocket = await store.sdk.ws.createAndConnect(url.toString(), token) as WebSocket;\n this.eventsSocket.addEventListener('message', this.storeEventHandler.bind(this));\n }\n return this.eventsSocket;\n }\n\n async closeEventsSocket(): Promise<void> {\n const { eventsSocket } = this;\n if (!eventsSocket) {\n return;\n }\n this.eventsSocket = undefined;\n eventsSocket.close();\n }\n\n protected storeEventHandler(e: MessageEvent): void {\n const event = JSON.parse(e.data) as BroadcastEvent | BackendErrorEvent;\n if (event.type === 'error') {\n // TODO: Report an error somehow\n throw new Error(event.cause);\n }\n if (event.space && event.space !== this.space) {\n return;\n }\n if (event.path === RouteBuilder.spaces()) {\n this.spacesChannel.postMessage(event);\n } else if (event.path === RouteBuilder.files()) {\n this.filesChannel.postMessage(event);\n } else if (event.path.startsWith(RouteBuilder.files())) {\n const typed = event as BroadcastFileData & BroadcastEvent;\n if (typed.alt === 'media') {\n this.mediaChannel.postMessage(event);\n } else {\n this.filesChannel.postMessage(event);\n }\n } else if (event.path === RouteBuilder.trash()) {\n this.trashChannel.postMessage(event);\n } else if (event.path === RouteBuilder.history()) {\n this.historyChannel.postMessage(event);\n } else if (event.path === RouteBuilder.projectExecutions()) {\n this.projectExeChannel.postMessage(event);\n } else if (event.path === RouteBuilder.certificates()) {\n this.certificatesChannel.postMessage(event);\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Broadcast path not handled`, event.path, event)\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"StoreBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/StoreBindings.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable no-param-reassign */\n/* eslint-disable @typescript-eslint/ban-ts-comment */\n/* eslint-disable no-dupe-class-members */\nimport { \n IBackendInfo, ProjectKind, FolderKind, DataFileKind, ContextListOptions, ContextListResult, IFile,\n IFileCreateOptions, AccessOperation, IUser, \n Folder, HttpProject, IAccessPatchInfo, IPatchInfo, IPatchRevision, IApplication, \n IHttpHistory, IHttpHistoryBulkAdd, HistoryListOptions, Project, ListFileKind, DataNamespace, DataFile, \n IBulkOperationResult, ContextChangeRecord,\n ContextDeleteEvent,\n ContextDeleteRecord,\n IProjectExecution,\n IProjectExecutionListOptions,\n ISpace,\n SpaceKind,\n Space,\n PermissionRole,\n HttpCertificate,\n ContextSpaceListOptions,\n IRevision,\n TrashEntry,\n TrashEntryCreate,\n ContextDeleteBulkEvent,\n ICertificate,\n ContextListEvent,\n ContextReadEvent,\n ContextUpdateEvent,\n FileAddOptions,\n FileBreadcrumb,\n IBackendObserveCommand,\n BackendCommandType,\n BackendCommandKind,\n RouteBuilder,\n BroadcastEvent,\n BackendErrorEvent,\n BroadcastFileData,\n} from '@api-client/core/build/browser.js';\nimport { Patch } from '@api-client/json';\nimport { PlatformBindings } from './PlatformBindings.js';\nimport { Events } from '../../events/Events.js';\nimport { EventTypes } from '../../events/EventTypes.js';\nimport { IConfigEnvironment, IConfigInit } from '../../lib/config/Config.js';\nimport { ISessionInitInfo, HttpStore } from '../../store/HttpStore.js';\nimport { StoreBroadcast } from '../../http-client/store/StoreBroadcast.js';\n\nexport interface EnvironmentSettings {\n /**\n * Initializes the store configuration from the init data.\n * \n * @param init The init data for the store environment.\n */\n init(init: IConfigInit): Promise<void>;\n\n /**\n * Reads the backend information about the store.\n * \n * @param baseUri Store's base URI.\n */\n readStoreInfo(baseUri: string): Promise<IBackendInfo>;\n}\n\nexport interface StoreAuthenticationInit {\n /**\n * The environment to authenticate. Default to globally set environment.\n */\n env?: IConfigEnvironment; \n /**\n * Whether to update environment in application configuration after authentication.\n */\n updateEnvironment?: boolean;\n /**\n * Whether to force authentication even when the user is already authenticated.\n */\n force?: boolean;\n}\n\ninterface StoreAuthentication {\n /**\n * Checks whether the user is authenticated in the store for the environment\n * @param env Optional environment if different than the global environment\n * @returns True if the user is authenticated in the store.\n */\n isAuthenticated(env?: IConfigEnvironment): Promise<boolean>;\n\n /**\n * Authenticates the global environment with the store.\n * \n * @param updateEnvironment When true it stores the environment data when the session was renewed.\n */\n authenticate(options?: StoreAuthenticationInit): Promise<ISessionInitInfo>;\n\n getToken(): Promise<string | undefined>;\n}\n\n/**\n * The base class for API store bindings.\n */\nexport abstract class StoreBindings extends PlatformBindings {\n /**\n * This is used by the client side (main thread or the renderer process)\n * to define the current space the app is using. \n * This space is used in some APIs instead of adding the space to the events system.\n */\n space = '';\n\n /**\n * The currently used environment for all store calls.\n * This can be changed via the `Events.Global.setEnv()`\n */\n globalEnvironment?: IConfigEnvironment;\n\n /**\n * Initialized with the `globalEnvironment`.\n * The store with initialized SDK for the global environment\n */\n store?: HttpStore;\n\n filesChannel = new BroadcastChannel(StoreBroadcast.files);\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n spacesChannel = new BroadcastChannel(StoreBroadcast.spaces);\n\n trashChannel = new BroadcastChannel(StoreBroadcast.trash);\n\n historyChannel = new BroadcastChannel(StoreBroadcast.history);\n\n projectExeChannel = new BroadcastChannel(StoreBroadcast.projectRuns);\n\n certificatesChannel = new BroadcastChannel(StoreBroadcast.certificates);\n\n initialized = false;\n\n async initializeStore(): Promise<void> {\n // ...\n }\n\n async initialize(): Promise<void> {\n if (this.initialized) {\n return;\n }\n this.initialized = true;\n const target = document.body;\n\n window.addEventListener(EventTypes.Store.initEnvironment, this.handleInitializeEnvironment.bind(this));\n window.addEventListener(EventTypes.Store.info, this.handleStoreInfo.bind(this));\n window.addEventListener(EventTypes.Store.Global.setEnv, this.setGlobalEnvHandler.bind(this));\n window.addEventListener(EventTypes.Store.Global.getEnv, this.getGlobalEnvHandler.bind(this));\n \n // Auth\n window.addEventListener(EventTypes.Store.Auth.authenticate, this.storeAuthHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.isAuthenticated, this.storeIsAuthenticatedHandler.bind(this));\n window.addEventListener(EventTypes.Store.Auth.getToken, this.getTokenHandler.bind(this));\n\n // Files\n window.addEventListener(EventTypes.Store.File.list, this.handleFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listShared, this.handleSharedFileList.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.create, this.handleFileCreate.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.createDefault, this.fileCreateDefaultHandler.bind(this));\n window.addEventListener(EventTypes.Store.File.read, this.handleFileRead.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patch, this.handleFilePatch.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.delete, this.handleFileDelete.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.patchUsers, this.handleFilePatchUser.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.listUsers, this.handleListFileUsers.bind(this) as EventListener);\n window.addEventListener(EventTypes.Store.File.breadcrumbs, this.handleFileBreadcrumbs.bind(this) as EventListener);\n\n // User\n window.addEventListener(EventTypes.Store.User.me, this.handlerMe.bind(this));\n window.addEventListener(EventTypes.Store.User.list, this.handleUsersList.bind(this));\n window.addEventListener(EventTypes.Store.User.read, this.handleUserRead.bind(this));\n\n // history\n target.addEventListener(EventTypes.Store.History.create, this.handleHistoryCreate.bind(this));\n target.addEventListener(EventTypes.Store.History.createBulk, this.handleHistoryCreateBulk.bind(this));\n target.addEventListener(EventTypes.Store.History.delete, this.handleHistoryDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.deleteBulk, this.handleHistoryDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.list, this.handleHistoryList.bind(this));\n target.addEventListener(EventTypes.Store.History.read, this.handleHistoryRead.bind(this));\n target.addEventListener(EventTypes.Store.History.clearSpace, this.handleHistoryClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearProject, this.handleHistoryClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.History.clearRequest, this.handleHistoryClearRequest.bind(this) as EventListener);\n\n // project runs\n target.addEventListener(EventTypes.Store.ProjectRuns.add, this.handleAddProjectExecution.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.list, this.handleProjectExecutionList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.read, this.handleProjectExecutionRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.delete, this.handleProjectExecutionDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.deleteBulk, this.handleProjectExecutionDeleteBulk.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearSpace, this.handleProjectExecutionClearSpace.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearProject, this.handleProjectExecutionClearProject.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.ProjectRuns.clearParent, this.handleProjectExecutionClearFolder.bind(this) as EventListener);\n\n // certificates\n target.addEventListener(EventTypes.Store.Certificate.list, this.handleCertificateList.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.read, this.handleCertificateRead.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.delete, this.handleCertificateDelete.bind(this) as EventListener);\n target.addEventListener(EventTypes.Store.Certificate.insert, this.handleCertificateInsert.bind(this) as EventListener);\n }\n\n abstract environment: EnvironmentSettings;\n\n auth: StoreAuthentication = {\n isAuthenticated: async (env?: IConfigEnvironment): Promise<boolean> => {\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store.isAuthenticated(env);\n },\n\n authenticate: async (options: StoreAuthenticationInit = {}): Promise<ISessionInitInfo> => {\n const { env, force, updateEnvironment } = options;\n let { store } = this;\n if (env) {\n store = new HttpStore(env);\n }\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const result = await store.getStoreSessionToken(undefined, force);\n if (updateEnvironment && result.new) {\n await Events.Config.Environment.update(env || this.globalEnvironment as IConfigEnvironment);\n }\n return result;\n },\n\n /**\n * @returns The current store token or undefined if no store is set.\n */\n getToken: async (): Promise<string | undefined> => {\n const { store } = this;\n return store && store.sdk && store.sdk.token || undefined;\n },\n }\n\n global = {\n /**\n * Sets the store environment to be used globally by the application.\n * This initializes the store with the configuration.\n * \n * Note, this won't initialize the session with the store.\n * \n * @param env The environment to set. Note, it must have the `location` set.\n */\n set: async (env: IConfigEnvironment): Promise<void> => {\n if (!env.location) {\n throw new Error(`The location is required for store environment configuration.`);\n }\n this.globalEnvironment = env;\n const store = new HttpStore(env);\n this.store = store;\n },\n\n get: async (): Promise<IConfigEnvironment> => {\n const { globalEnvironment } = this;\n if (!globalEnvironment) {\n throw new Error(`The current environment is not set.`);\n }\n return globalEnvironment;\n },\n }\n\n protected handleInitializeEnvironment(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n const copy = { ...e.detail };\n e.detail.result = this.environment.init(copy);\n }\n\n protected handleStoreInfo(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.environment.readStoreInfo(e.detail.baseUri);\n }\n\n protected storeAuthHandler(input: Event): void {\n const e = input as CustomEvent<{ options?: StoreAuthenticationInit, result: Promise<ISessionInitInfo> }>;\n e.preventDefault();\n e.detail.result = this.auth.authenticate(e.detail.options);\n }\n\n protected storeIsAuthenticatedHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.isAuthenticated(e.detail.env);\n }\n\n protected setGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.set(e.detail.env);\n }\n\n protected getGlobalEnvHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.global.get();\n }\n\n protected getTokenHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.auth.getToken();\n }\n\n protected handleFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.file.list(space, kinds as ListFileKind[], options);\n }\n\n protected handleSharedFileList(event: CustomEvent<{ kinds?: ListFileKind[], options?: ContextListOptions, result: Promise<ContextListResult<IFile>> }>): void {\n event.preventDefault();\n const { kinds, options } = event.detail;\n const { space } = this;\n event.detail.result = this.getStore().sdk.shared.list(space, kinds, options);\n }\n\n protected handleFileCreate(event: CustomEvent<{ meta: IFile, media?: unknown, opts?: IFileCreateOptions, result: Promise<ContextChangeRecord<IFile>> }>): void {\n event.preventDefault();\n const { meta, media, opts } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.create(meta, media, this.space, opts);\n } else {\n event.detail.result = this.getStore().sdk.file.createMeta(meta, this.space, opts);\n }\n }\n\n protected fileCreateDefaultHandler(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.createDefaultFile(e.detail.name, e.detail.kind, e.detail.opts);\n }\n\n protected handleFileRead(event: CustomEvent<{ key: string, media: boolean, result: Promise<IFile | unknown> }>): void {\n event.preventDefault();\n const { media, key } = event.detail;\n if (media) {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as true);\n } else {\n event.detail.result = this.getStore().sdk.file.read(this.space, key, media as false);\n }\n }\n\n protected handleFilePatch(event: CustomEvent<{ key: string, id: string, value: Patch.JsonPatch, app: IApplication, media?: boolean, result: Promise<IPatchRevision> }>): void {\n event.preventDefault();\n const { key, id, value, app, media } = event.detail;\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n\n event.detail.result = this.getStore().sdk.file.patch(this.space, key, info, media as false);\n }\n\n protected handleFileDelete(event: CustomEvent<{ key: string, result: Promise<string> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.delete(this.space, event.detail.key);\n }\n\n protected handleFilePatchUser(event: CustomEvent<{ key: string, id: string, value: AccessOperation[], app: IApplication, result: Promise<void> }>): void {\n event.preventDefault();\n const { key, id, value } = event.detail;\n const info: IAccessPatchInfo = {\n patch: value,\n id,\n };\n event.detail.result = this.getStore().sdk.file.patchUsers(this.space, key, info);\n }\n\n protected handleListFileUsers(event: CustomEvent<{ key: string, result: Promise<ContextListResult<IUser>> }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.file.listUsers(this.space, event.detail.key);\n }\n\n protected handleFileBreadcrumbs(event: CustomEvent<{ key: string, result: Promise<ContextListResult<FileBreadcrumb>> }>): void {\n event.preventDefault();\n event.detail.result = this.files.breadcrumbs(event.detail.key)\n // this.getStore().sdk.file.breadcrumbs(this.space, event.detail.key);\n }\n\n protected handlerMe(input: Event): void {\n const e = input as CustomEvent<{ result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.me();\n }\n\n protected handleUsersList(input: Event): void {\n const e = input as CustomEvent<{ options?: ContextListOptions, result: Promise<ContextListResult<IUser>> }>;\n e.preventDefault();\n e.detail.result = this.users.list(e.detail.options);\n }\n\n\n protected handleUserRead(input: Event): void {\n const e = input as CustomEvent<{ key: string, result: Promise<IUser> }>;\n e.preventDefault();\n e.detail.result = this.users.read(e.detail.key);\n }\n\n protected handleHistoryCreate(input: Event): void {\n const e = input as CustomEvent<{ history: IHttpHistory, result: Promise<ContextChangeRecord<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.history };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.add(cp);\n }\n\n protected handleHistoryCreateBulk(input: Event): void {\n const e = input as CustomEvent<{ info: IHttpHistoryBulkAdd, result: Promise<IBulkOperationResult<ContextChangeRecord<IHttpHistory>>> }>;\n e.preventDefault();\n const cp = { ...e.detail.info };\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.createBulk(cp);\n }\n\n protected handleHistoryDelete(input: Event): void {\n const e = input as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.deleteHistory(e.detail.key);\n }\n\n protected handleHistoryList(input: Event): void {\n const e = input as CustomEvent<{ init: HistoryListOptions, result: Promise<ContextListResult<IHttpHistory>> }>;\n e.preventDefault();\n const cp = { ...e.detail.init } as HistoryListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n e.detail.result = this.getStore().sdk.history.list(cp);\n }\n\n protected handleHistoryRead(input: Event): void {\n const e = input as CustomEvent;\n e.preventDefault();\n e.detail.result = this.getStore().sdk.history.read(e.detail.key);\n }\n\n protected handleHistoryDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.deleteBulk(event.detail.keys);\n }\n\n protected handleHistoryClearSpace(event: CustomEvent<{ result: Promise<void>, space: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearSpace(event.detail.space);\n }\n\n protected handleHistoryClearProject(event: CustomEvent<{ result: Promise<void>, space: string, project: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearProject(event.detail.space, event.detail.project);\n }\n\n protected handleHistoryClearRequest(event: CustomEvent<{ result: Promise<void>, space: string, project: string, request: string }>): void {\n event.preventDefault();\n event.detail.result = this.getStore().sdk.history.clearRequest(event.detail.space, event.detail.project, event.detail.request);\n }\n\n async deleteHistory(key: string): Promise<ContextDeleteRecord> {\n await this.getStore().sdk.history.delete(key);\n return {\n key,\n };\n }\n\n protected handleAddProjectExecution(event: CustomEvent<{ item: IProjectExecution, result: Promise<ContextChangeRecord<IProjectExecution>> }>): void {\n event.preventDefault();\n const { item } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.add(this.space, item);\n }\n\n protected handleProjectExecutionRead(event: CustomEvent<{ key: string, result: Promise<IProjectExecution> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.read(key);\n }\n\n protected handleProjectExecutionList(event: CustomEvent<{ options: IProjectExecutionListOptions, result: Promise<ContextListResult<IProjectExecution>> }>): void {\n event.preventDefault();\n const { options } = event.detail;\n const cp = { ...options };\n if (!cp.space) {\n cp.space = this.space;\n }\n event.detail.result = this.getStore().sdk.projectExecution.list(cp);\n }\n\n protected handleProjectExecutionDelete(event: CustomEvent<{ key: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { key } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.delete(key);\n }\n\n protected handleProjectExecutionDeleteBulk(event: ContextDeleteBulkEvent): void {\n event.preventDefault();\n const { keys } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.deleteBulk(keys);\n }\n\n protected handleProjectExecutionClearSpace(event: CustomEvent<{ space: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearSpace(space);\n }\n\n protected handleProjectExecutionClearProject(event: CustomEvent<{ space: string, project: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearProject(space, project);\n }\n\n protected handleProjectExecutionClearFolder(event: CustomEvent<{ space: string, project: string, folder: string, result: Promise<void> }>): void {\n event.preventDefault();\n const { space, project, folder } = event.detail;\n event.detail.result = this.getStore().sdk.projectExecution.clearParent(space, project, folder);\n }\n\n /**\n * A logic that creates an empty (default) file from its name and the file kind.\n * \n * @param name The name of the file.\n * @param kind The kind of the file.\n * @param opts Optional create options\n * @returns The key of the created file.\n */\n async createDefaultFile(space: string, name: string, kind: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n switch (kind) {\n case ProjectKind: return this.createDefaultProject(space, name, opts);\n case FolderKind: return this.createDefaultFolder(space, name, opts);\n case DataFileKind: return this.createDefaultDataNamespace(space, name, opts);\n default: \n throw new Error(`Unrecognized file kind: ${kind}`);\n }\n }\n\n /**\n * Creates a default HttpProject from a name\n * \n * @param name The name of the project\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultProject(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = HttpProject.fromName(name);\n const file = Project.fromProject(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default DataNamespace from a name\n * \n * @param name The name of the DataNamespace\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultDataNamespace(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const media = DataNamespace.fromName(name);\n const file = DataFile.fromDataNamespace(media, space);\n return store.sdk.file.create(file.toJSON(), media.toJSON(), space, opts);\n }\n\n /**\n * Creates a default Folder from a name\n * \n * @param name The name of the space\n * @param opts Create options.\n * @returns The key of the created file.\n */\n async createDefaultFolder(space: string, name: string, opts?: IFileCreateOptions): Promise<ContextChangeRecord<IFile>> {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n const folder = Folder.fromName(name, space);\n return store.sdk.file.createMeta(folder.toJSON(), space, opts);\n }\n\n getStore(): HttpStore {\n const { store } = this;\n if (!store) {\n throw new Error(`Environment is not set.`);\n }\n return store;\n }\n\n spaces = {\n list: (options?: ContextListOptions): Promise<ContextListResult<ISpace>> => this.getStore().sdk.spaces.list(options),\n add: (nameOrObject: string | ISpace): Promise<ContextChangeRecord<ISpace>> => {\n let space: ISpace;\n if (typeof nameOrObject === 'string') {\n space = Space.fromName(nameOrObject).toJSON();\n } else {\n space = nameOrObject as ISpace;\n }\n return this.getStore().sdk.spaces.add(space);\n },\n read: (key: string): Promise<ISpace> => this.getStore().sdk.spaces.read(key),\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.spaces.delete(key);\n return {\n key,\n kind: SpaceKind,\n };\n },\n addUser: (space: string, otherUserKey: string, role: PermissionRole, expires?: number): Promise<void> => this.getStore().sdk.spaces.addUser(this.space || space, otherUserKey, role, expires),\n removeUser: (space: string, otherUserKey: string): Promise<void> => this.getStore().sdk.spaces.removeUser(this.space || space, otherUserKey),\n patchUsers: (space: string, value: IAccessPatchInfo): Promise<void> => this.getStore().sdk.spaces.patchUsers(this.space || space, value),\n }\n\n certificates = {\n add: (value: HttpCertificate, space: string): Promise<ContextChangeRecord<HttpCertificate>> => this.getStore().sdk.certificates.add(value, this.space || space),\n addBulk: (values: HttpCertificate[], space: string): Promise<IBulkOperationResult<ContextChangeRecord<HttpCertificate>>> => this.getStore().sdk.certificates.addBulk(values, this.space || space),\n read: (key: string): Promise<HttpCertificate> => this.getStore().sdk.certificates.read(key),\n list: (options?: ContextSpaceListOptions): Promise<ContextListResult<HttpCertificate>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.certificates.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.certificates.delete(key);\n return {\n key,\n };\n },\n deleteBulk: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.certificates.deleteBulk(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.certificates.empty(this.space || space),\n }\n\n trash = {\n add: (entry: TrashEntryCreate, space: string): Promise<ContextChangeRecord<TrashEntry>> => this.getStore().sdk.trash.add(entry, this.space || space),\n list: (options: ContextSpaceListOptions): Promise<ContextListResult<TrashEntry>> => {\n const cp = { ...options } as ContextSpaceListOptions;\n if (!cp.space) {\n cp.space = this.space;\n }\n return this.getStore().sdk.trash.list(cp);\n },\n delete: async (key: string): Promise<ContextDeleteRecord> => {\n await this.getStore().sdk.trash.delete(key);\n return { key };\n },\n batchDelete: (keys: string[]): Promise<IBulkOperationResult<ContextDeleteRecord>> => this.getStore().sdk.trash.batchDelete(keys),\n restore: (key: string): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.trash.restore(key),\n batchRestore: (keys: string[]): Promise<IBulkOperationResult<ContextChangeRecord<IFile>>> => this.getStore().sdk.trash.batchDelete(keys),\n empty: (space: string): Promise<void> => this.getStore().sdk.trash.empty(this.space || space),\n }\n\n revisions = {\n list: (key: string, options: ContextSpaceListOptions): Promise<ContextListResult<IRevision>> => this.getStore().sdk.revisions.list(key, options),\n }\n\n media = {\n add: (key: string, contents: unknown, mime: string): Promise<void> => this.getStore().sdk.file.createMedia(contents, this.space, key, { mime }),\n read: (key: string): Promise<unknown> => this.getStore().sdk.file.read(this.space, key, true),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, true),\n }\n\n files = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.file.list(this.space, kinds, options),\n add: (input: IFile, opts?: FileAddOptions): Promise<ContextChangeRecord<IFile>> => this.getStore().sdk.file.createMeta(input, this.space, opts),\n read: (key: string): Promise<IFile> => this.getStore().sdk.file.read(this.space, key, false),\n readBulk: (keys: string[]): Promise<IBulkOperationResult<IFile>> => this.getStore().sdk.file.readBulk(this.space, keys),\n delete: (key: string): Promise<string> => this.getStore().sdk.file.delete(this.space, key),\n patch: (key: string, info: IPatchInfo): Promise<IPatchRevision> => this.getStore().sdk.file.patch(this.space, key, info, false),\n breadcrumbs: (key: string): Promise<ContextListResult<FileBreadcrumb>> => this.getStore().sdk.file.breadcrumbs(this.space, key),\n }\n\n shared = {\n list: (options: ContextListOptions, kinds?: ListFileKind[]): Promise<ContextListResult<IFile>> => this.getStore().sdk.shared.list(this.space, kinds, options),\n }\n\n users = {\n list: (options?: ContextListOptions): Promise<ContextListResult<IUser>> => this.getStore().sdk.user.list(options),\n me: (): Promise<IUser> => this.getStore().sdk.user.me(),\n read: (key: string): Promise<IUser> => this.getStore().sdk.user.read(key),\n }\n\n protected handleCertificateList(event: Event): void {\n const e = event as ContextListEvent<ICertificate>;\n e.preventDefault();\n const options: ContextSpaceListOptions = {\n ...e.detail,\n space: this.space,\n }\n e.detail.result = this.certificates.list(options);\n }\n\n protected handleCertificateRead(event: Event): void {\n const e = event as ContextReadEvent<ICertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.read(e.detail.key);\n }\n\n protected handleCertificateDelete(event: Event): void {\n const e = event as ContextDeleteEvent;\n e.preventDefault();\n e.detail.result = this.certificates.delete(e.detail.key);\n }\n\n protected handleCertificateInsert(event: Event): void {\n const e = event as ContextUpdateEvent<HttpCertificate, HttpCertificate>;\n e.preventDefault();\n e.detail.result = this.certificates.add(e.detail.item, this.space);\n }\n\n async observeCertificates(): Promise<void> {\n await this.observePath(RouteBuilder.certificates());\n }\n\n async unobserveCertificates(): Promise<void> {\n await this.unobservePath(RouteBuilder.certificates());\n }\n\n async observeSpaces(): Promise<void> {\n await this.observePath(RouteBuilder.spaces());\n }\n\n async unobserveSpaces(): Promise<void> {\n await this.unobservePath(RouteBuilder.spaces());\n }\n\n async observeFiles(): Promise<void> {\n await this.observePath(RouteBuilder.files());\n }\n\n async unobserveFiles(): Promise<void> {\n await this.unobservePath(RouteBuilder.files());\n }\n\n async observeFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.observePath(`${path}?alt=${alt}`);\n }\n\n async unobserveFile(key: string, alt: 'media' | 'meta' = 'meta'): Promise<void> {\n const path = RouteBuilder.file(key)\n await this.unobservePath(`${path}?alt=${alt}`);\n }\n\n async observeHistory(): Promise<void> {\n await this.observePath(RouteBuilder.history());\n }\n\n async unobserveHistory(): Promise<void> {\n await this.unobservePath(RouteBuilder.history());\n }\n\n async observeProjectExecutions(): Promise<void> {\n await this.observePath(RouteBuilder.projectExecutions());\n }\n\n async unobserveProjectExecutions(): Promise<void> {\n await this.unobservePath(RouteBuilder.projectExecutions());\n }\n\n async observeTrash(): Promise<void> {\n await this.observePath(RouteBuilder.trash());\n }\n\n async unobserveTrash(): Promise<void> {\n await this.unobservePath(RouteBuilder.trash());\n }\n\n async sendSocket(ws: WebSocket, command: unknown): Promise<void> {\n ws.send(JSON.stringify(command));\n }\n\n protected async observePath(path: string): Promise<void> {\n const { space } = this;\n const url = new URL(path, 'http://localhost');\n url.searchParams.set('space', space);\n const fullPath = `${url.pathname}${url.search}`\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.observe,\n kind: BackendCommandKind,\n path: fullPath,\n };\n await this.sendSocket(socket, cmd);\n }\n\n protected async unobservePath(path: string): Promise<void> {\n const socket = await this.getEventsSocket();\n const cmd: IBackendObserveCommand = {\n cmd: BackendCommandType.unobserve,\n kind: BackendCommandKind,\n path,\n };\n await this.sendSocket(socket, cmd);\n }\n\n eventsSocket?: WebSocket;\n\n async getEventsSocket(): Promise<WebSocket> {\n if (!this.eventsSocket) {\n const store = this.getStore();\n const { token } = store.sdk;\n const url = store.sdk.getUrl('/events');\n this.eventsSocket = await store.sdk.ws.createAndConnect(url.toString(), token) as WebSocket;\n this.eventsSocket.addEventListener('message', this.storeEventHandler.bind(this));\n }\n return this.eventsSocket;\n }\n\n async closeEventsSocket(): Promise<void> {\n const { eventsSocket } = this;\n if (!eventsSocket) {\n return;\n }\n this.eventsSocket = undefined;\n eventsSocket.close();\n }\n\n protected storeEventHandler(e: MessageEvent): void {\n const event = JSON.parse(e.data) as BroadcastEvent | BackendErrorEvent;\n if (event.type === 'error') {\n throw new Error(event.cause);\n }\n if (event.space && event.space !== this.space) {\n // we allow files here to support shared files.\n if (event.path === RouteBuilder.files()) {\n this.filesChannel.postMessage(event);\n }\n return;\n }\n if (event.path === RouteBuilder.spaces()) {\n this.spacesChannel.postMessage(event);\n } else if (event.path === RouteBuilder.files()) {\n this.filesChannel.postMessage(event);\n } else if (event.path.startsWith(RouteBuilder.files())) {\n const typed = event as BroadcastFileData & BroadcastEvent;\n if (typed.alt === 'media') {\n this.mediaChannel.postMessage(event);\n } else {\n this.filesChannel.postMessage(event);\n }\n } else if (event.path === RouteBuilder.trash()) {\n this.trashChannel.postMessage(event);\n } else if (event.path === RouteBuilder.history()) {\n this.historyChannel.postMessage(event);\n } else if (event.path === RouteBuilder.projectExecutions()) {\n this.projectExeChannel.postMessage(event);\n } else if (event.path === RouteBuilder.certificates()) {\n this.certificatesChannel.postMessage(event);\n } else {\n // eslint-disable-next-line no-console\n console.warn(`Broadcast path not handled`, event.path, event)\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-picker.d.ts","sourceRoot":"","sources":["../../../src/define/store/file-picker.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,4CAA4C,CAAC;AAEjE,qBACa,iBAAkB,SAAQ,OAAO;CAC7C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,aAAa,EAAE,OAAO,CAAC;KACxB;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { __decorate } from "tslib";
|
|
2
|
+
import { customElement } from "lit/decorators.js";
|
|
3
|
+
import Element from "../../elements/store/FilePicker.element.js";
|
|
4
|
+
let FilePickerElement = class FilePickerElement extends Element {
|
|
5
|
+
};
|
|
6
|
+
FilePickerElement = __decorate([
|
|
7
|
+
customElement('file-picker')
|
|
8
|
+
], FilePickerElement);
|
|
9
|
+
export { FilePickerElement };
|
|
10
|
+
//# sourceMappingURL=file-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-picker.js","sourceRoot":"","sources":["../../../src/define/store/file-picker.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,4CAA4C,CAAC;AAG1D,IAAM,iBAAiB,GAAvB,MAAM,iBAAkB,SAAQ,OAAO;CAC7C,CAAA;AADY,iBAAiB;IAD7B,aAAa,CAAC,aAAa,CAAC;GAChB,iBAAiB,CAC7B;SADY,iBAAiB","sourcesContent":["import { customElement } from \"lit/decorators.js\";\nimport Element from \"../../elements/store/FilePicker.element.js\";\n\n@customElement('file-picker')\nexport class FilePickerElement extends Element {\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'file-picker': Element;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-file.d.ts","sourceRoot":"","sources":["../../../src/define/store/share-file.ts"],"names":[],"mappings":"AACA,OAAO,OAAO,MAAM,2CAA2C,CAAC;AAIhE,qBACa,gBAAiB,SAAQ,OAAO;IAC3C,OAAgB,MAAM,4BAA0B;CACjD;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,OAAO,CAAC;KACvB;CACF"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { __decorate } from "tslib";
|
|
2
2
|
import { customElement } from 'lit/decorators.js';
|
|
3
|
-
import Element from "../../elements/
|
|
4
|
-
import styles from "../../elements/
|
|
3
|
+
import Element from "../../elements/store/ShareFile.element.js";
|
|
4
|
+
import styles from "../../elements/store/ShareFile.styles.js";
|
|
5
5
|
import dialogStyles from '../../ui/dialog/UiDialog.styles.js';
|
|
6
6
|
let ShareFileElement = class ShareFileElement extends Element {
|
|
7
7
|
static { this.styles = [dialogStyles, styles]; }
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"share-file.js","sourceRoot":"","sources":["../../../src/define/store/share-file.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,OAAO,MAAM,2CAA2C,CAAC;AAChE,OAAO,MAAM,MAAM,0CAA0C,CAAC;AAC9D,OAAO,YAAY,MAAM,oCAAoC,CAAC;AAGvD,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,OAAO;aAC3B,WAAM,GAAG,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;;AADrC,gBAAgB;IAD5B,aAAa,CAAC,YAAY,CAAC;GACf,gBAAgB,CAE5B;SAFY,gBAAgB","sourcesContent":["import { customElement } from 'lit/decorators.js';\nimport Element from \"../../elements/store/ShareFile.element.js\";\nimport styles from \"../../elements/store/ShareFile.styles.js\";\nimport dialogStyles from '../../ui/dialog/UiDialog.styles.js';\n\n@customElement('share-file')\nexport class ShareFileElement extends Element {\n static override styles = [dialogStyles, styles];\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'share-file': Element;\n }\n}\n"]}
|
|
@@ -85,15 +85,7 @@ export declare class SplitItem implements ISplitItem {
|
|
|
85
85
|
/**
|
|
86
86
|
* @returns The parent of the item. Returns undefined when the item was removed from layout.
|
|
87
87
|
*/
|
|
88
|
-
|
|
89
|
-
/**
|
|
90
|
-
* Removes self from the layout
|
|
91
|
-
*/
|
|
92
|
-
remove(): void;
|
|
93
|
-
/**
|
|
94
|
-
* Sets the item active in the parent layout.
|
|
95
|
-
*/
|
|
96
|
-
setSelected(): void;
|
|
88
|
+
getParents(): SplitPanel[];
|
|
97
89
|
/**
|
|
98
90
|
* Updates the label and triggers side effects like layout and view update.
|
|
99
91
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitItem.d.ts","sourceRoot":"","sources":["../../../src/elements/layout/SplitItem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,cAAc,CAAC;AAEvF,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,SAAU,YAAW,UAAU;IA4BvB,OAAO,EAAE,WAAW;IA3BvC,IAAI,SAAM;IAEV,GAAG,SAAM;IAET,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,SAAM;IAEX,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,KAAK,SAAK;IAEV,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;gBACgB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU;IAI3D,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA0C7B,MAAM,IAAI,UAAU;
|
|
1
|
+
{"version":3,"file":"SplitItem.d.ts","sourceRoot":"","sources":["../../../src/elements/layout/SplitItem.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,MAAM,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,KAAK,cAAc,CAAC;AAEvF,MAAM,WAAW,UAAU;IACzB;;;OAGG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;;;;;;OAOG;IACH,GAAG,EAAE,MAAM,CAAC;IACZ;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB;;OAEG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,SAAU,YAAW,UAAU;IA4BvB,OAAO,EAAE,WAAW;IA3BvC,IAAI,SAAM;IAEV,GAAG,SAAM;IAET,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,KAAK,SAAM;IAEX,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,KAAK,SAAK;IAEV,IAAI,CAAC,EAAE,QAAQ,CAAC;IAEhB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;gBACgB,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU;IAI3D,GAAG,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IA0C7B,MAAM,IAAI,UAAU;IA+CpB;;OAEG;IACH,UAAU,IAAI,UAAU,EAAE;IAsB1B;;;;;OAKG;IACH,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,UAAO,GAAG,IAAI;IAW7C,UAAU,IAAI,IAAI;IAKlB,YAAY,IAAI,IAAI;CAGrB"}
|
|
@@ -99,28 +99,35 @@ export class SplitItem {
|
|
|
99
99
|
}
|
|
100
100
|
return result;
|
|
101
101
|
}
|
|
102
|
+
// /**
|
|
103
|
+
// * @returns The parent of the item. Returns undefined when the item was removed from layout.
|
|
104
|
+
// * @deprecated Use `getParents()` instead.
|
|
105
|
+
// */
|
|
106
|
+
// getParent(): SplitPanel | undefined {
|
|
107
|
+
// return this.manager.getParent(this.key);
|
|
108
|
+
// }
|
|
102
109
|
/**
|
|
103
110
|
* @returns The parent of the item. Returns undefined when the item was removed from layout.
|
|
104
111
|
*/
|
|
105
|
-
|
|
106
|
-
return this.manager.
|
|
107
|
-
}
|
|
108
|
-
/**
|
|
109
|
-
* Removes self from the layout
|
|
110
|
-
*/
|
|
111
|
-
remove() {
|
|
112
|
-
this.manager.removeItem(this.key);
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Sets the item active in the parent layout.
|
|
116
|
-
*/
|
|
117
|
-
setSelected() {
|
|
118
|
-
const parent = this.getParent();
|
|
119
|
-
if (parent) {
|
|
120
|
-
parent.selected = this.key;
|
|
121
|
-
this.notifyChange();
|
|
122
|
-
}
|
|
112
|
+
getParents() {
|
|
113
|
+
return this.manager.getParents(this.key);
|
|
123
114
|
}
|
|
115
|
+
// /**
|
|
116
|
+
// * Removes self from the layout. This removes the item from all panels.
|
|
117
|
+
// */
|
|
118
|
+
// remove(): void {
|
|
119
|
+
// this.manager.removeItem(this.key);
|
|
120
|
+
// }
|
|
121
|
+
// /**
|
|
122
|
+
// * Sets the item active in the parent layout.
|
|
123
|
+
// */
|
|
124
|
+
// setSelected(): void {
|
|
125
|
+
// const parent = this.getParent();
|
|
126
|
+
// if (parent) {
|
|
127
|
+
// parent.selected = this.key;
|
|
128
|
+
// this.notifyChange();
|
|
129
|
+
// }
|
|
130
|
+
// }
|
|
124
131
|
/**
|
|
125
132
|
* Updates the label and triggers side effects like layout and view update.
|
|
126
133
|
*
|
|
@@ -138,8 +145,8 @@ export class SplitItem {
|
|
|
138
145
|
}
|
|
139
146
|
}
|
|
140
147
|
updateView() {
|
|
141
|
-
const
|
|
142
|
-
panel
|
|
148
|
+
const panels = this.getParents();
|
|
149
|
+
panels.forEach(panel => panel.updateView());
|
|
143
150
|
}
|
|
144
151
|
notifyChange() {
|
|
145
152
|
this.manager.notifyChange();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SplitItem.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitItem.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"SplitItem.js","sourceRoot":"","sources":["../../../src/elements/layout/SplitItem.ts"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable import/no-cycle */\nimport { TemplateResult } from 'lit';\nimport { IconType } from '../../ui/icons/Icons.js';\nimport { SplitLayout } from './SplitLayout.js';\nimport { SplitPanel } from './SplitPanel.js';\n\nexport type ItemRenderCallback = (item: SplitItem, visible: boolean) => TemplateResult;\n\nexport interface ISplitItem {\n /**\n * The kind of opened item. This is to be used by the application\n * to recognize a kind of item to render. It is transparent to the layout system.\n */\n kind: string;\n /**\n * The key of the opened item. This is to be used by the application to identify \n * the rendered item. It is also used by the manager to identify the item.\n * It has to be unique key across the layout.\n * \n * Note, multiple panels can render the same item, however, they all share \n * the same item's state.\n */\n key: string;\n /**\n * Optional parent information that helps locating this object.\n * This is the item's parent, not related to a layout.\n */\n parent?: string;\n /**\n * The label to render in the layout tab.\n */\n label: string;\n /**\n * Whether the tab is pinned (cannot be closed or moved).\n */\n pinned?: boolean;\n /**\n * The tab index.\n */\n index?: number;\n /**\n * The icon defined in the internal library to render with the tab.\n */\n icon?: IconType;\n /**\n * A tab that is always present in the layout. The user can't close this tab.\n */\n persistent?: boolean;\n /**\n * A property to be used by the screen to indicate the property is being loaded\n * (from a data store, file, etc).\n */\n loading?: boolean;\n /**\n * Indicates the item has been changed and is out of sync with the data store.\n */\n isDirty?: boolean;\n\n /**\n * The layout value. Can be used to pass the object to render to the layout's render function.\n * This must be a serializable object as it will be passed to the `storeCallback`.\n * \n * This also can be used to temporary store unsaved changes to the object and sync the changes \n * on save action.\n */\n value?: unknown;\n}\n\nexport class SplitItem implements ISplitItem {\n kind = '';\n\n key = '';\n\n parent?: string;\n\n label = '';\n\n pinned?: boolean;\n\n index = 0;\n\n icon?: IconType;\n\n persistent?: boolean;\n\n loading?: boolean;\n\n isDirty?: boolean;\n\n value?: unknown;\n\n /**\n * @param manager A reference to the manager.\n * @param id The id of the item in the layout system. This value is never serialized.\n * @param schema A schema to restore the state of the panel.\n */\n constructor(public manager: SplitLayout, schema: ISplitItem) {\n this.new(schema);\n }\n\n new(schema: ISplitItem): void {\n this.kind = schema.kind;\n this.key = schema.key;\n this.label = schema.label;\n if (schema.parent) {\n this.parent = schema.parent;\n } else {\n this.parent = undefined;\n }\n if (schema.icon) {\n this.icon = schema.icon;\n } else {\n this.icon = undefined;\n }\n if (typeof schema.pinned === 'boolean') {\n this.pinned = schema.pinned;\n } else {\n this.pinned = undefined;\n }\n if (typeof schema.persistent === 'boolean') {\n this.persistent = schema.persistent;\n } else {\n this.persistent = undefined;\n }\n if (typeof schema.loading === 'boolean') {\n this.loading = schema.loading;\n } else {\n this.loading = undefined;\n }\n if (typeof schema.isDirty === 'boolean') {\n this.isDirty = schema.isDirty;\n } else {\n this.isDirty = undefined;\n }\n if (typeof schema.index === 'number') {\n this.index = schema.index;\n } else {\n this.index = 0;\n }\n this.value = schema.value;\n }\n\n toJSON(): ISplitItem {\n const result: ISplitItem = {\n key: this.key,\n kind: this.kind,\n label: this.label,\n };\n if (this.parent) {\n result.parent = this.parent;\n }\n if (this.icon) {\n result.icon = this.icon;\n }\n if (typeof this.pinned === 'boolean') {\n result.pinned = this.pinned;\n }\n if (typeof this.persistent === 'boolean') {\n result.persistent = this.persistent;\n }\n if (typeof this.loading === 'boolean') {\n result.loading = this.loading;\n }\n if (typeof this.isDirty === 'boolean') {\n result.isDirty = this.isDirty;\n }\n if (typeof this.index === 'number') {\n result.index = this.index;\n }\n if (this.value) {\n // try toJSON if any\n const typed = this.value as { toJSON: () => unknown };\n if (typeof typed.toJSON === 'function') {\n result.value = typed.toJSON();\n } else {\n result.value = this.value;\n }\n }\n return result;\n }\n\n // /**\n // * @returns The parent of the item. Returns undefined when the item was removed from layout.\n // * @deprecated Use `getParents()` instead.\n // */\n // getParent(): SplitPanel | undefined {\n // return this.manager.getParent(this.key);\n // }\n\n /**\n * @returns The parent of the item. Returns undefined when the item was removed from layout.\n */\n getParents(): SplitPanel[] {\n return this.manager.getParents(this.key);\n }\n\n // /**\n // * Removes self from the layout. This removes the item from all panels.\n // */\n // remove(): void {\n // this.manager.removeItem(this.key);\n // }\n\n // /**\n // * Sets the item active in the parent layout.\n // */\n // setSelected(): void {\n // const parent = this.getParent();\n // if (parent) {\n // parent.selected = this.key;\n // this.notifyChange();\n // }\n // }\n\n /**\n * Updates the label and triggers side effects like layout and view update.\n * \n * @param value The new value of the label. Empty values are ignored.\n * @param trigger Whether to trigger side effects (requesting a view update and notifying change)\n */\n setLabel(value: string, trigger = true): void {\n if (!value || this.label === value) {\n return;\n }\n this.label = value;\n if (trigger) {\n this.updateView();\n this.notifyChange();\n }\n }\n\n updateView(): void {\n const panels = this.getParents();\n panels.forEach(panel => panel.updateView());\n }\n\n notifyChange(): void {\n this.manager.notifyChange();\n }\n}\n"]}
|
|
@@ -2,7 +2,7 @@ import { TemplateResult } from "lit";
|
|
|
2
2
|
import { ISplitItem, SplitItem } from "./SplitItem.js";
|
|
3
3
|
import { ISplitPanel, SplitPanel } from "./SplitPanel.js";
|
|
4
4
|
import SplitView from "./SplitView.js";
|
|
5
|
-
import { IPanelObject, LayoutType,
|
|
5
|
+
import { IPanelObject, LayoutType, SplitItemRenderCallback, SplitLayoutAddOptions, SplitLayoutInit, SplitPanelAddOptions } from "./type.js";
|
|
6
6
|
interface LayoutObject {
|
|
7
7
|
type: LayoutType;
|
|
8
8
|
value: SplitItem | SplitPanel;
|
|
@@ -26,6 +26,10 @@ export interface ISplitLayout {
|
|
|
26
26
|
*/
|
|
27
27
|
active?: string;
|
|
28
28
|
}
|
|
29
|
+
export interface ITabCloseDetail {
|
|
30
|
+
tab: string;
|
|
31
|
+
panel: string;
|
|
32
|
+
}
|
|
29
33
|
/**
|
|
30
34
|
* Split layout manager creates a view where the application can put "items" into
|
|
31
35
|
* and render them inside "panels". The application can create as many panels as needed.
|
|
@@ -144,11 +148,13 @@ export declare class SplitLayout extends EventTarget {
|
|
|
144
148
|
*/
|
|
145
149
|
findView(panelKey: string): SplitView | undefined;
|
|
146
150
|
/**
|
|
147
|
-
* Finds
|
|
148
|
-
*
|
|
149
|
-
*
|
|
151
|
+
* Finds parents an item or another panel is anchored to.
|
|
152
|
+
* An item can have multiple parents. A panel can only have a single parent.
|
|
153
|
+
*
|
|
154
|
+
* @param itemOrPanelKey The key of the panel or an item.
|
|
155
|
+
* @returns THe list of panels the item is added. It can only return up to 1 result when looking for a panel's parent.
|
|
150
156
|
*/
|
|
151
|
-
|
|
157
|
+
getParents(itemOrPanelKey: string): SplitPanel[];
|
|
152
158
|
/**
|
|
153
159
|
* Finds a panel by id.
|
|
154
160
|
*
|
|
@@ -182,7 +188,7 @@ export declare class SplitLayout extends EventTarget {
|
|
|
182
188
|
* Do not call this method from the outside of the layout manager logic.
|
|
183
189
|
* It is a way to communicate a tab was closed.
|
|
184
190
|
*/
|
|
185
|
-
notifyTabClose(itemKey: string): void;
|
|
191
|
+
notifyTabClose(itemKey: string, panel: string): void;
|
|
186
192
|
/**
|
|
187
193
|
* Requests an update on the view element.
|
|
188
194
|
*
|
|
@@ -219,16 +225,12 @@ export declare class SplitLayout extends EventTarget {
|
|
|
219
225
|
*/
|
|
220
226
|
addItem(item: ISplitItem): SplitItem;
|
|
221
227
|
/**
|
|
222
|
-
* Removes an item from layout.
|
|
228
|
+
* Removes an item from the layout. This means removing an item from all panels.
|
|
229
|
+
* If you want to remove an item from a specific panel then find the panel first and then call `removeItem()`.
|
|
230
|
+
*
|
|
223
231
|
* @param key The key of the item to remove.
|
|
224
232
|
*/
|
|
225
233
|
removeItem(key: string): void;
|
|
226
|
-
/**
|
|
227
|
-
* Removes other items relative to the `key` item.
|
|
228
|
-
* @param key The key of the item to perform a relative operation from.
|
|
229
|
-
* @param dir The direction to which close other items. Default to both directions leaving only the `key` item
|
|
230
|
-
*/
|
|
231
|
-
removeRelative(key: string, dir?: SplitCloseDirection): void;
|
|
232
234
|
/**
|
|
233
235
|
* Moves a tab between panels or inside a panel
|
|
234
236
|
*
|
|
@@ -237,7 +239,7 @@ export declare class SplitLayout extends EventTarget {
|
|
|
237
239
|
* @param itemKey The key of the item
|
|
238
240
|
* @param toIndex The index to which add the item. Default as the last.
|
|
239
241
|
*/
|
|
240
|
-
moveItem(fromPanelKey: string, toPanelKey: string, itemKey: string,
|
|
242
|
+
moveItem(fromPanelKey: string, toPanelKey: string, itemKey: string, opts?: SplitLayoutAddOptions): void;
|
|
241
243
|
/**
|
|
242
244
|
* Iterates over panels from the root.
|
|
243
245
|
* This iterates the panels structure in order defined in the `items` array on
|