@api-client/ui 0.0.11 → 0.0.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc +8 -0
- package/demo/elements/authorization/cc.ts +56 -27
- 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/store/StorePlugin.js +1 -0
- package/dist/bindings/base/FileBindings.d.ts +4 -0
- package/dist/bindings/base/FileBindings.d.ts.map +1 -1
- package/dist/bindings/base/FileBindings.js +21 -1
- package/dist/bindings/base/FileBindings.js.map +1 -1
- package/dist/bindings/base/StoreBindings.d.ts +6 -17
- package/dist/bindings/base/StoreBindings.d.ts.map +1 -1
- package/dist/bindings/base/StoreBindings.js +15 -60
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/bindings/web/WebFileBindings.js +1 -1
- package/dist/bindings/web/WebFileBindings.js.map +1 -1
- package/dist/define/http/certificate-add.d.ts +9 -0
- package/dist/define/http/certificate-add.d.ts.map +1 -0
- package/dist/define/http/certificate-add.js +10 -0
- package/dist/define/http/certificate-add.js.map +1 -0
- 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/define/ui/ui-segmented-button-set.d.ts +1 -1
- package/dist/define/ui/ui-segmented-button-set.d.ts.map +1 -1
- package/dist/define/ui/ui-segmented-button-set.js.map +1 -1
- package/dist/elements/authorization/ui/CC.styles.d.ts.map +1 -1
- package/dist/elements/authorization/ui/CC.styles.js +4 -9
- package/dist/elements/authorization/ui/CC.styles.js.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.d.ts +14 -29
- package/dist/elements/authorization/ui/CcAuthorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.js +67 -158
- package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/dist/elements/http/CertificateAdd.element.d.ts +91 -0
- package/dist/elements/http/CertificateAdd.element.d.ts.map +1 -0
- package/dist/elements/http/CertificateAdd.element.js +389 -0
- package/dist/elements/http/CertificateAdd.element.js.map +1 -0
- package/dist/elements/http/CertificateAdd.styles.d.ts +3 -0
- package/dist/elements/http/CertificateAdd.styles.d.ts.map +1 -0
- package/dist/elements/http/CertificateAdd.styles.js +61 -0
- package/dist/elements/http/CertificateAdd.styles.js.map +1 -0
- package/dist/elements/project/ProjectRunReport.d.ts +2 -1
- package/dist/elements/project/ProjectRunReport.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunReport.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 +73 -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 +7 -7
- package/dist/events/EventTypes.d.ts.map +1 -1
- package/dist/events/EventTypes.js +8 -7
- package/dist/events/EventTypes.js.map +1 -1
- package/dist/events/Events.d.ts +7 -1
- package/dist/events/Events.d.ts.map +1 -1
- package/dist/events/Events.js +2 -0
- package/dist/events/Events.js.map +1 -1
- package/dist/events/FilesystemEvents.d.ts +8 -0
- package/dist/events/FilesystemEvents.d.ts.map +1 -0
- package/dist/events/FilesystemEvents.js +59 -0
- package/dist/events/FilesystemEvents.js.map +1 -0
- package/dist/events/HttpClientEvents.d.ts +0 -2
- package/dist/events/HttpClientEvents.d.ts.map +1 -1
- package/dist/events/HttpClientEvents.js +0 -2
- package/dist/events/HttpClientEvents.js.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/http-client/idb/Arc18DataUpgrade.d.ts +0 -8
- package/dist/http-client/idb/Arc18DataUpgrade.d.ts.map +1 -1
- package/dist/http-client/idb/Arc18DataUpgrade.js +11 -206
- package/dist/http-client/idb/Arc18DataUpgrade.js.map +1 -1
- package/dist/http-client/store/StoreBroadcast.d.ts +0 -5
- package/dist/http-client/store/StoreBroadcast.d.ts.map +1 -1
- package/dist/http-client/store/StoreBroadcast.js +0 -7
- package/dist/http-client/store/StoreBroadcast.js.map +1 -1
- package/dist/lib/files/FileUtils.d.ts +9 -0
- package/dist/lib/files/FileUtils.d.ts.map +1 -0
- package/dist/lib/files/FileUtils.js +13 -0
- package/dist/lib/files/FileUtils.js.map +1 -0
- package/dist/mixins/RouteMixin.d.ts +4 -0
- package/dist/mixins/RouteMixin.d.ts.map +1 -1
- package/dist/mixins/RouteMixin.js +1 -0
- package/dist/mixins/RouteMixin.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 +4 -6
- package/dist/pages/api-client/ApiClient.screen.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.screen.js +39 -31
- package/dist/pages/api-client/ApiClient.screen.js.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.d.ts.map +1 -1
- package/dist/pages/api-client/ApiClient.styles.js +0 -12
- package/dist/pages/api-client/ApiClient.styles.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 +45 -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/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/button/SegmentedButtonsSet.d.ts +14 -0
- package/dist/ui/button/SegmentedButtonsSet.d.ts.map +1 -1
- package/dist/ui/button/SegmentedButtonsSet.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/notification/SnackNotifications.d.ts +1 -0
- package/dist/ui/notification/SnackNotifications.d.ts.map +1 -1
- package/dist/ui/notification/SnackNotifications.js +7 -0
- package/dist/ui/notification/SnackNotifications.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 +1 -1
- package/src/bindings/base/FileBindings.ts +25 -1
- package/src/bindings/base/StoreBindings.ts +16 -73
- package/src/bindings/web/WebFileBindings.ts +1 -1
- package/src/define/http/certificate-add.ts +12 -0
- package/src/define/store/file-picker.ts +12 -0
- package/src/define/{files → store}/share-file.ts +2 -2
- package/src/define/ui/ui-segmented-button-set.ts +1 -1
- package/src/elements/authorization/ui/CC.styles.ts +4 -9
- package/src/elements/authorization/ui/CcAuthorization.ts +67 -167
- package/src/elements/http/CertificateAdd.element.ts +443 -0
- package/src/elements/http/CertificateAdd.styles.ts +61 -0
- package/src/elements/project/ProjectRunReport.ts +2 -1
- package/src/elements/store/FilePicker.element.ts +297 -0
- package/src/elements/store/FilePicker.styles.ts +73 -0
- package/src/elements/store/FilesLib.ts +32 -0
- package/src/events/EventTypes.ts +8 -7
- package/src/events/Events.ts +2 -0
- package/src/events/FilesystemEvents.ts +63 -0
- package/src/events/HttpClientEvents.ts +0 -2
- package/src/events/StoreEvents.ts +21 -1
- package/src/http-client/idb/Arc18DataUpgrade.ts +84 -84
- package/src/http-client/store/StoreBroadcast.ts +0 -8
- package/src/lib/files/FileUtils.ts +12 -0
- package/src/mixins/RouteMixin.ts +8 -1
- package/src/pages/ApplicationScreen.ts +5 -3
- package/src/pages/api-client/ApiClient.screen.ts +42 -33
- package/src/pages/api-client/ApiClient.styles.ts +0 -12
- package/src/pages/api-client/Authenticate.screen.ts +2 -2
- package/src/pages/api-client/pages/Files.page.ts +48 -164
- package/src/pages/api-client/pages/Shared.page.ts +2 -40
- package/src/pages/demo/DemoPage.ts +17 -0
- package/src/store/FileSystem.ts +325 -0
- package/src/styles/global-styles.ts +7 -0
- package/src/ui/button/SegmentedButtonsSet.ts +16 -1
- 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/notification/SnackNotifications.ts +8 -0
- package/src/ui/table/DataTable.ts +29 -3
- package/test/elements/http/BodyFormdataEditorElement.test.ts +458 -454
- package/test/elements/http/BodyMultipartEditorElement.test.ts +609 -605
- package/test/elements/http/BodyRawEditorElement.test.ts +60 -56
- package/test/elements/http/CertificateAdd.test.ts +430 -0
- package/test/elements/store/FilePicker.test.ts +241 -0
- package/test/env.js +3 -0
- package/test/events/EventTypes.test.ts +0 -22
- package/test/helpers/StoreHelper.ts +390 -0
- package/test/helpers/UiMock.ts +19 -2
- package/tsconfig.eslint.json +3 -1
- package/web-test-runner.config.mjs +50 -3
- package/dist/define/files/share-file.d.ts.map +0 -1
- package/dist/define/files/share-file.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/events/http-client/models/CertificatesEvents.d.ts +0 -12
- package/dist/events/http-client/models/CertificatesEvents.d.ts.map +0 -1
- package/dist/events/http-client/models/CertificatesEvents.js +0 -18
- package/dist/events/http-client/models/CertificatesEvents.js.map +0 -1
- package/dist/http-client/idb/AuthDataModel.d.ts +0 -60
- package/dist/http-client/idb/AuthDataModel.d.ts.map +0 -1
- package/dist/http-client/idb/AuthDataModel.js +0 -150
- package/dist/http-client/idb/AuthDataModel.js.map +0 -1
- package/dist/http-client/idb/HostsModel.d.ts +0 -25
- package/dist/http-client/idb/HostsModel.d.ts.map +0 -1
- package/dist/http-client/idb/HostsModel.js +0 -82
- package/dist/http-client/idb/HostsModel.js.map +0 -1
- package/dist/http-client/idb/LegacyMockedStore.d.ts +0 -214
- package/dist/http-client/idb/LegacyMockedStore.d.ts.map +0 -1
- package/dist/http-client/idb/LegacyMockedStore.js +0 -486
- package/dist/http-client/idb/LegacyMockedStore.js.map +0 -1
- package/src/events/http-client/models/CertificatesEvents.ts +0 -23
- package/src/http-client/idb/AuthDataModel.ts +0 -175
- package/src/http-client/idb/HostsModel.ts +0 -125
- package/src/http-client/idb/LegacyMockedStore.ts +0 -544
- package/test/apic-ui.test.ts +0 -31
- /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
package/.eslintrc
CHANGED
|
@@ -53,6 +53,10 @@
|
|
|
53
53
|
],
|
|
54
54
|
"rules": {
|
|
55
55
|
"class-methods-use-this": "off"
|
|
56
|
+
},
|
|
57
|
+
"env": {
|
|
58
|
+
"node": false,
|
|
59
|
+
"browser": true
|
|
56
60
|
}
|
|
57
61
|
},
|
|
58
62
|
{
|
|
@@ -61,6 +65,10 @@
|
|
|
61
65
|
],
|
|
62
66
|
"rules": {
|
|
63
67
|
"class-methods-use-this": "off"
|
|
68
|
+
},
|
|
69
|
+
"env": {
|
|
70
|
+
"node": false,
|
|
71
|
+
"browser": true
|
|
64
72
|
}
|
|
65
73
|
},
|
|
66
74
|
{
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { html, TemplateResult } from 'lit';
|
|
2
|
-
import { IRequestAuthorization, RequestAuthorization, ProjectMock } from '@api-client/core/build/browser.js';
|
|
2
|
+
import { IRequestAuthorization, RequestAuthorization, ProjectMock, ISpace, CertificateFile } from '@api-client/core/build/browser.js';
|
|
3
3
|
import { reactive } from '../../../src/lib/decorators.js';
|
|
4
4
|
import { DemoPage } from '../../../src/pages/demo/DemoPage.js';
|
|
5
5
|
import { Authorization } from '../../../src/elements/authorization/ui/Authorization.js';
|
|
6
|
-
import {
|
|
6
|
+
import { WebStoreBindings } from '../../../src/bindings/web/WebStoreBindings.js';
|
|
7
|
+
import { WebConfigurationBindings } from '../../../src/bindings/web/WebConfigurationBindings.js';
|
|
8
|
+
import AppInfo from '../../../src/pages/api-client/AppInfo.js';
|
|
7
9
|
import '../../../src/define/authorization/cc-authorization.js';
|
|
8
10
|
|
|
9
|
-
const
|
|
11
|
+
const configUri = new URL('/demo/lib/io/AppConfig.ts', import.meta.url).toString();
|
|
10
12
|
|
|
11
13
|
const STORE_KEY = 'demo.authorization.editor.cc';
|
|
12
14
|
|
|
@@ -15,12 +17,16 @@ class ComponentDemoPage extends DemoPage {
|
|
|
15
17
|
|
|
16
18
|
@reactive() authorization: IRequestAuthorization;
|
|
17
19
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
mock = new ProjectMock();
|
|
20
|
+
mocking = new ProjectMock();
|
|
21
21
|
|
|
22
22
|
@reactive() initialized = false;
|
|
23
23
|
|
|
24
|
+
store = new WebStoreBindings(AppInfo, `http://localhost:8550/v1`);
|
|
25
|
+
|
|
26
|
+
config = new WebConfigurationBindings(AppInfo, configUri);
|
|
27
|
+
|
|
28
|
+
space?: ISpace;
|
|
29
|
+
|
|
24
30
|
constructor() {
|
|
25
31
|
super();
|
|
26
32
|
this.store.space = 'demo-space';
|
|
@@ -30,13 +36,41 @@ class ComponentDemoPage extends DemoPage {
|
|
|
30
36
|
const auth = RequestAuthorization.fromTypedConfig('client certificate', {}, false);
|
|
31
37
|
this.authorization = auth.toJSON();
|
|
32
38
|
}
|
|
33
|
-
|
|
34
|
-
this.init();
|
|
35
39
|
}
|
|
36
40
|
|
|
37
|
-
async
|
|
41
|
+
async initialize(): Promise<void> {
|
|
42
|
+
await this.config.initialize();
|
|
38
43
|
await this.store.initialize();
|
|
44
|
+
const env = await this.config.environment.read();
|
|
45
|
+
await this.store.global.set(env);
|
|
46
|
+
this.authenticated = await this.store.auth.isAuthenticated();
|
|
47
|
+
if (!this.authenticated) {
|
|
48
|
+
this.initialized = true;
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
await this.afterAuth();
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
protected async afterAuth(): Promise<void> {
|
|
55
|
+
const spacesResult = await this.store.spaces.list();
|
|
56
|
+
const { items } = spacesResult;
|
|
57
|
+
const [space] = items;
|
|
58
|
+
if (!space) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
this.space = space;
|
|
62
|
+
this.store.space = space.key;
|
|
63
|
+
await this.store.observeFiles();
|
|
39
64
|
this.initialized = true;
|
|
65
|
+
this.render();
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
async handleAuthenticate(): Promise<void> {
|
|
69
|
+
const { store } = this;
|
|
70
|
+
await store.auth.authenticate({ updateEnvironment: true });
|
|
71
|
+
this.authenticated = true;
|
|
72
|
+
this.initialized = false;
|
|
73
|
+
await this.afterAuth();
|
|
40
74
|
}
|
|
41
75
|
|
|
42
76
|
restoreAuth(): void {
|
|
@@ -64,21 +98,15 @@ class ComponentDemoPage extends DemoPage {
|
|
|
64
98
|
console.log('Requested to delete.');
|
|
65
99
|
}
|
|
66
100
|
|
|
67
|
-
|
|
68
|
-
this
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
this.
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
const values = this.mock.certificates.certificates(100);
|
|
77
|
-
await Promise.all(values.map(i => this.store.certificateAdd(i, '')));
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
async clearCertificates(): Promise<void> {
|
|
81
|
-
await this.store.certificateEmpty('');
|
|
101
|
+
async handleCertificateAdd(): Promise<void> {
|
|
102
|
+
const { space, store } = this;
|
|
103
|
+
if (!space) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
const cert = this.mocking.certificates.certificate();
|
|
107
|
+
const file = CertificateFile.fromCertificate(cert, space.key).toJSON();
|
|
108
|
+
await store.files.add(file);
|
|
109
|
+
await store.media.add(file.key, cert, 'application/json');
|
|
82
110
|
}
|
|
83
111
|
|
|
84
112
|
contentTemplate(): TemplateResult {
|
|
@@ -97,13 +125,14 @@ class ComponentDemoPage extends DemoPage {
|
|
|
97
125
|
<section class="demo-section">
|
|
98
126
|
<h2 class="title-large">Data configuration</h2>
|
|
99
127
|
<div class="demo-row">
|
|
100
|
-
<ui-button type="outlined" @click="${this.
|
|
101
|
-
<ui-button type="outlined" @click="${this.handleClearCertificates}">Clear certificates</ui-button>
|
|
128
|
+
<ui-button type="outlined" @click="${this.handleCertificateAdd}">Add a certificate</ui-button>
|
|
102
129
|
</div>
|
|
103
130
|
</section>
|
|
104
131
|
|
|
105
132
|
<section class="demo-section">
|
|
106
133
|
<cc-authorization
|
|
134
|
+
canDelete
|
|
135
|
+
canToggle
|
|
107
136
|
.authorization="${this.authorization}"
|
|
108
137
|
@change="${this.handleChange}"
|
|
109
138
|
@delete="${this.handleDelete}"
|
|
@@ -114,4 +143,4 @@ class ComponentDemoPage extends DemoPage {
|
|
|
114
143
|
}
|
|
115
144
|
|
|
116
145
|
const instance = new ComponentDemoPage();
|
|
117
|
-
instance.
|
|
146
|
+
instance.initialize();
|
package/demo/elements/index.html
CHANGED
|
@@ -41,6 +41,9 @@
|
|
|
41
41
|
|
|
42
42
|
<dt><a href="authorization/index.html">Authorization element</a></dt>
|
|
43
43
|
<dd>Elements to define HTTP authorization.</dd>
|
|
44
|
+
|
|
45
|
+
<dt><a href="store/index.html">Net store UI</a></dt>
|
|
46
|
+
<dd>UIs related to the net-store library.</dd>
|
|
44
47
|
</dl>
|
|
45
48
|
</nav>
|
|
46
49
|
</main>
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en-GB">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, minimum-scale=1, initial-scale=1, user-scalable=yes">
|
|
6
|
+
<title>File picker</title>
|
|
7
|
+
<link href="../../../src/styles/m3/tokens.css" rel="stylesheet" type="text/css" />
|
|
8
|
+
<link href="../../../src/styles/m3/theme.css" rel="stylesheet" type="text/css" />
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div id="app"></div>
|
|
12
|
+
|
|
13
|
+
<script type="module" src="./file-picker.ts"></script>
|
|
14
|
+
</body>
|
|
15
|
+
</html>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-unused-vars */
|
|
2
|
+
import { html, TemplateResult } from 'lit';
|
|
3
|
+
import { CertificateFile, Folder, HttpProject, ISpace, Project, ProjectMock } from '@api-client/core/build/browser.js';
|
|
4
|
+
import { DemoPage } from '../../../src/pages/demo/DemoPage.js';
|
|
5
|
+
import { WebStoreBindings } from '../../../src/bindings/web/WebStoreBindings.js';
|
|
6
|
+
import { WebConfigurationBindings } from '../../../src/bindings/web/WebConfigurationBindings.js';
|
|
7
|
+
import AppInfo from '../../../src/pages/api-client/AppInfo.js';
|
|
8
|
+
import type { FilePickerClosingReason } from '../../../src/elements/store/FilePicker.element.js';
|
|
9
|
+
import { reactive } from '../../../src/lib/decorators.js';
|
|
10
|
+
import '../../../src/define/store/file-picker.js';
|
|
11
|
+
import '../../../src/define/ui/ui-button.js';
|
|
12
|
+
import '../../../src/define/ui/ui-dropdown-list.js';
|
|
13
|
+
|
|
14
|
+
const configUri = new URL('/demo/lib/io/AppConfig.ts', import.meta.url).toString();
|
|
15
|
+
|
|
16
|
+
class ComponentDemoPage extends DemoPage {
|
|
17
|
+
componentName = 'File picker';
|
|
18
|
+
|
|
19
|
+
@reactive() initialized = false;
|
|
20
|
+
|
|
21
|
+
store = new WebStoreBindings(AppInfo, `http://localhost:8550/v1`);
|
|
22
|
+
|
|
23
|
+
config = new WebConfigurationBindings(AppInfo, configUri);
|
|
24
|
+
|
|
25
|
+
mocking = new ProjectMock();
|
|
26
|
+
|
|
27
|
+
space?: ISpace;
|
|
28
|
+
|
|
29
|
+
async initialize(): Promise<void> {
|
|
30
|
+
await this.config.initialize();
|
|
31
|
+
await this.store.initialize();
|
|
32
|
+
const env = await this.config.environment.read();
|
|
33
|
+
await this.store.global.set(env);
|
|
34
|
+
this.authenticated = await this.store.auth.isAuthenticated();
|
|
35
|
+
if (!this.authenticated) {
|
|
36
|
+
this.initialized = true;
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
await this.afterAuth();
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
protected async afterAuth(): Promise<void> {
|
|
43
|
+
const spacesResult = await this.store.spaces.list();
|
|
44
|
+
const { items } = spacesResult;
|
|
45
|
+
const [space] = items;
|
|
46
|
+
if (!space) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
this.space = space;
|
|
50
|
+
this.store.space = space.key;
|
|
51
|
+
await this.store.observeFiles();
|
|
52
|
+
this.initialized = true;
|
|
53
|
+
this.render();
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
protected handleClose(e: CustomEvent<FilePickerClosingReason>): void {
|
|
57
|
+
const { canceled, file } = e.detail;
|
|
58
|
+
if (canceled) {
|
|
59
|
+
console.log('Dialog was canceled');
|
|
60
|
+
} else {
|
|
61
|
+
console.log('Selected file', file);
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
async handleAuthenticate(): Promise<void> {
|
|
66
|
+
const { store } = this;
|
|
67
|
+
await store.auth.authenticate({ updateEnvironment: true });
|
|
68
|
+
this.authenticated = true;
|
|
69
|
+
this.initialized = false;
|
|
70
|
+
await this.afterAuth();
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
async handleFolderAdd(): Promise<void> {
|
|
74
|
+
const { space, store } = this;
|
|
75
|
+
if (!space) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const instance = Folder.fromName(this.mocking.lorem.word(), space.key).toJSON();
|
|
79
|
+
await store.files.add(instance);
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
async handleProjectAdd(): Promise<void> {
|
|
83
|
+
const { space, store } = this;
|
|
84
|
+
if (!space) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const project = HttpProject.fromName(this.mocking.lorem.word()).toJSON();
|
|
88
|
+
const file = Project.fromProject(project, space.key).toJSON();
|
|
89
|
+
await store.files.add(file);
|
|
90
|
+
await store.media.add(file.key, project, 'application/json');
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
async handleCertificateAdd(): Promise<void> {
|
|
94
|
+
const { space, store } = this;
|
|
95
|
+
if (!space) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
const cert = this.mocking.certificates.certificate();
|
|
99
|
+
const file = CertificateFile.fromCertificate(cert, space.key).toJSON();
|
|
100
|
+
await store.files.add(file);
|
|
101
|
+
await store.media.add(file.key, cert, 'application/json');
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
contentTemplate(): TemplateResult {
|
|
105
|
+
if (!this.initialized) {
|
|
106
|
+
return html`<p>Loading demo page...</p>`;
|
|
107
|
+
}
|
|
108
|
+
if (!this.authenticated) {
|
|
109
|
+
return this.authenticateTemplate();
|
|
110
|
+
}
|
|
111
|
+
return html`
|
|
112
|
+
<a href="../">Back</a>
|
|
113
|
+
|
|
114
|
+
<section class="demo-section">
|
|
115
|
+
<h2 class="header-medium">In a drop down</h2>
|
|
116
|
+
<ui-dropdown-list>
|
|
117
|
+
<ui-button class="dropdown-trigger">Select a file</ui-button>
|
|
118
|
+
<file-picker slot="dropdown" @close="${this.handleClose}"></file-picker>
|
|
119
|
+
</ui-dropdown-list>
|
|
120
|
+
|
|
121
|
+
<h2 class="header-medium">Plain element</h2>
|
|
122
|
+
<file-picker @close="${this.handleClose}"></file-picker>
|
|
123
|
+
|
|
124
|
+
<h2 class="header-medium">Data control</h2>
|
|
125
|
+
<ui-button @click="${this.handleProjectAdd}">Add a project</ui-button>
|
|
126
|
+
<ui-button @click="${this.handleCertificateAdd}">Add a certificate</ui-button>
|
|
127
|
+
<ui-button @click="${this.handleFolderAdd}">Add a folder</ui-button>
|
|
128
|
+
</section>
|
|
129
|
+
`;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
const instance = new ComponentDemoPage();
|
|
134
|
+
instance.initialize();
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<!doctype html>
|
|
2
|
+
<html lang="en-GB">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="utf-8">
|
|
5
|
+
<title>API Client Store</title>
|
|
6
|
+
</head>
|
|
7
|
+
<body>
|
|
8
|
+
<main>
|
|
9
|
+
<h1>The UI library for the store entities</h1>
|
|
10
|
+
<a href="../">Back</a>
|
|
11
|
+
<nav>
|
|
12
|
+
<dl>
|
|
13
|
+
<dt><a href="file-picker.html">File picker</a></dt>
|
|
14
|
+
<dd>Renders a dialog with the store file list.</dd>
|
|
15
|
+
</dl>
|
|
16
|
+
</nav>
|
|
17
|
+
</main>
|
|
18
|
+
</body>
|
|
19
|
+
</html>
|
|
@@ -130,6 +130,10 @@ export interface FileWriteOptions extends ReadWriteOptions {
|
|
|
130
130
|
*/
|
|
131
131
|
export declare abstract class FileBindings extends PlatformBindings {
|
|
132
132
|
initialize(): Promise<void>;
|
|
133
|
+
protected handleRequestSaveFile(e: Event): void;
|
|
134
|
+
protected handleRequestOpenFile(e: Event): void;
|
|
135
|
+
protected handleWriteFile(e: Event): void;
|
|
136
|
+
protected handleReadFile(e: Event): void;
|
|
133
137
|
/**
|
|
134
138
|
* Opens a dialog to pick a file to save.
|
|
135
139
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileBindings.d.ts","sourceRoot":"","sources":["../../../src/bindings/base/FileBindings.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"FileBindings.d.ts","sourceRoot":"","sources":["../../../src/bindings/base/FileBindings.ts"],"names":[],"mappings":";;AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,MAAM,WAAW,WAAW;IAC1B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;;;;;;;;;;OAYG;IACH,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;CAClC;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAExB;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;OAEG;IACH,OAAO,CAAC,EAAE,WAAW,EAAE,CAAC;IAExB;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,OAAO,CAAC;IAElB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,UAAU,gBAAgB;IACxB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAgB,SAAQ,gBAAgB;IACvD;;;;OAIG;IACH,UAAU,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAClC;AAED,MAAM,WAAW,gBAAiB,SAAQ,gBAAgB;IACxD;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,8BAAsB,YAAa,SAAQ,gBAAgB;IACnD,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAOjC,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAK/C,SAAS,CAAC,qBAAqB,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAK/C,SAAS,CAAC,eAAe,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAKzC,SAAS,CAAC,cAAc,CAAC,CAAC,EAAE,KAAK,GAAG,IAAI;IAKxC;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAEnF;;;;OAIG;IACH,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAEnF;;;;;OAKG;IACH,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAEzH;;;;OAIG;IACH,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC;IAE/F;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAC9C"}
|
|
@@ -1,10 +1,30 @@
|
|
|
1
|
+
import { EventTypes } from '../../events/EventTypes.js';
|
|
1
2
|
import { PlatformBindings } from './PlatformBindings.js';
|
|
2
3
|
/**
|
|
3
4
|
* The base class for file access bindings.
|
|
4
5
|
*/
|
|
5
6
|
export class FileBindings extends PlatformBindings {
|
|
6
7
|
async initialize() {
|
|
7
|
-
|
|
8
|
+
window.addEventListener(EventTypes.Filesystem.requestSaveFile, this.handleRequestSaveFile.bind(this));
|
|
9
|
+
window.addEventListener(EventTypes.Filesystem.requestOpenFile, this.handleRequestOpenFile.bind(this));
|
|
10
|
+
window.addEventListener(EventTypes.Filesystem.writeFile, this.handleWriteFile.bind(this));
|
|
11
|
+
window.addEventListener(EventTypes.Filesystem.readFile, this.handleReadFile.bind(this));
|
|
12
|
+
}
|
|
13
|
+
handleRequestSaveFile(e) {
|
|
14
|
+
const event = e;
|
|
15
|
+
event.detail.result = this.saveFileDialog(event.detail.options);
|
|
16
|
+
}
|
|
17
|
+
handleRequestOpenFile(e) {
|
|
18
|
+
const event = e;
|
|
19
|
+
event.detail.result = this.openFileDialog(event.detail.options);
|
|
20
|
+
}
|
|
21
|
+
handleWriteFile(e) {
|
|
22
|
+
const event = e;
|
|
23
|
+
event.detail.result = this.writeFile(event.detail.path, event.detail.contents, event.detail.options);
|
|
24
|
+
}
|
|
25
|
+
handleReadFile(e) {
|
|
26
|
+
const event = e;
|
|
27
|
+
event.detail.result = this.readFile(event.detail.path, event.detail.options);
|
|
8
28
|
}
|
|
9
29
|
}
|
|
10
30
|
//# sourceMappingURL=FileBindings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/FileBindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA6IzD;;GAEG;AACH,MAAM,OAAgB,YAAa,SAAQ,gBAAgB;IACzD,KAAK,CAAC,UAAU;QACd,GAAG;
|
|
1
|
+
{"version":3,"file":"FileBindings.js","sourceRoot":"","sources":["../../../src/bindings/base/FileBindings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AA6IzD;;GAEG;AACH,MAAM,OAAgB,YAAa,SAAQ,gBAAgB;IACzD,KAAK,CAAC,UAAU;QACd,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,eAAe,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,SAAS,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC1F,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1F,CAAC;IAES,qBAAqB,CAAC,CAAQ;QACtC,MAAM,KAAK,GAAG,CAA2F,CAAC;QAC1G,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAES,qBAAqB,CAAC,CAAQ;QACtC,MAAM,KAAK,GAAG,CAA2F,CAAC;QAC1G,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAClE,CAAC;IAES,eAAe,CAAC,CAAQ;QAChC,MAAM,KAAK,GAAG,CAAsI,CAAC;QACrJ,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvG,CAAC;IAES,cAAc,CAAC,CAAQ;QAC/B,MAAM,KAAK,GAAG,CAA6G,CAAC;QAC5H,KAAK,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC/E,CAAC;CAsCF","sourcesContent":["import { EventTypes } from '../../events/EventTypes.js';\nimport { PlatformBindings } from './PlatformBindings.js';\n// import { EventTypes } from '../../events/EventTypes.js';\n\nexport interface IFileFilter {\n /**\n * An optional description of the category of files types allowed.\n * \n * @platform web\n * @platform electron\n */\n description?: string;\n /**\n * An Object with the keys set to the MIME type and the values an Array of file extensions.\n * \n * ```\n * \"description\": \"Images\",\n * \"accept\": {\n * 'image/*': ['.png', '.gif', '.jpeg', '.jpg']\n * }\n * ```\n * \n * @platform web\n * @platform electron\n */\n accept: Record<string, string[]>;\n}\n\nexport interface ISaveFileDialogInit {\n /**\n * Only when the platform supports it.\n * The dialog title. Cannot be displayed on some _Linux_ desktop environments.\n */\n title?: string;\n /**\n * Only when the platform supports it.\n * Absolute directory path, absolute file path, or file name to use by default.\n */\n defaultPath?: string;\n\n /**\n * The list of file filters to apply to the dialog.\n */\n filters?: IFileFilter[];\n\n /**\n * Default false. By default the picker should include an option to not apply any file type filters. \n * Setting this option to true means that option is not available.\n * \n * @platform web\n */\n excludeAcceptAllOption?: boolean;\n}\n\nexport interface ISaveFileDialogResult {\n /**\n * Whether or not the dialog was canceled.\n */\n canceled: boolean;\n\n /**\n * If the dialog is canceled, this will be `undefined`.\n * \n * In **electron** this is the path to the selected file.\n * In the **web** platform this is autogenerated id to the file handle\n * the app should use with the further communication.\n */\n filePath?: string;\n}\n\nexport interface IOpenFileDialogInit {\n /**\n * Only when the platform supports it.\n * The dialog title. Cannot be displayed on some _Linux_ desktop environments.\n */\n title?: string;\n /**\n * Only when the platform supports it.\n * Absolute directory path, absolute file path, or file name to use by default.\n */\n defaultPath?: string;\n /**\n * The list of file filters to apply to the dialog.\n */\n filters?: IFileFilter[];\n\n /**\n * Default false. By default the picker should include an option to not apply any file type filters. \n * Setting this option to true means that option is not available.\n * \n * @platform web\n */\n excludeAcceptAllOption?: boolean;\n\n /**\n * When set to true multiple files may be selected.\n * @platform web\n */\n multiple?: boolean;\n}\n\nexport interface IOpenFileDialogResult {\n /**\n * Whether or not the dialog was canceled.\n */\n canceled: boolean;\n\n /**\n * If the dialog is cancelled this will be an empty array.\n * \n * In **electron** this is an array of file paths chosen by the user.\n * In the **web** platform this is autogenerated list of ids to the file handles\n * the app should use with the further communication.\n */\n filePath?: string[];\n}\n\ninterface ReadWriteOptions {\n /**\n * Whether the `path` will no longer be used.\n * This is relevant for the `web` environment when the bindings keep a reference to a file entry.\n * This should always be set to true when the read/write operation is done only once.\n */\n dispose?: boolean;\n}\n\nexport interface FileReadOptions extends ReadWriteOptions {\n /**\n * The type of the return value. It can be either a buffer (ArrayBuffer in the web or Buffer in Node) or a string.\n * \n * @default string\n */\n returnType?: 'buffer' | 'string';\n}\n\nexport interface FileWriteOptions extends ReadWriteOptions {\n /**\n * File encoding.\n */\n encoding?: 'utf8';\n}\n\n/**\n * The base class for file access bindings.\n */\nexport abstract class FileBindings extends PlatformBindings {\n async initialize(): Promise<void> {\n window.addEventListener(EventTypes.Filesystem.requestSaveFile, this.handleRequestSaveFile.bind(this));\n window.addEventListener(EventTypes.Filesystem.requestOpenFile, this.handleRequestOpenFile.bind(this));\n window.addEventListener(EventTypes.Filesystem.writeFile, this.handleWriteFile.bind(this));\n window.addEventListener(EventTypes.Filesystem.readFile, this.handleReadFile.bind(this));\n }\n\n protected handleRequestSaveFile(e: Event): void {\n const event = e as CustomEvent<{ options?: ISaveFileDialogInit, result: Promise<ISaveFileDialogResult> }>;\n event.detail.result = this.saveFileDialog(event.detail.options);\n }\n\n protected handleRequestOpenFile(e: Event): void {\n const event = e as CustomEvent<{ options?: IOpenFileDialogInit, result: Promise<IOpenFileDialogResult> }>;\n event.detail.result = this.openFileDialog(event.detail.options);\n }\n\n protected handleWriteFile(e: Event): void {\n const event = e as CustomEvent<{ path: string, contents: BufferSource | Blob | string | Buffer, options?: FileWriteOptions, result: Promise<void> }>;\n event.detail.result = this.writeFile(event.detail.path, event.detail.contents, event.detail.options);\n }\n\n protected handleReadFile(e: Event): void {\n const event = e as CustomEvent<{ path: string, options?: FileReadOptions, result: Promise<Buffer | ArrayBuffer | string> }>;\n event.detail.result = this.readFile(event.detail.path, event.detail.options);\n }\n\n /**\n * Opens a dialog to pick a file to save.\n * \n * @param opts The dialog configuration.\n */\n abstract saveFileDialog(opts?: ISaveFileDialogInit): Promise<ISaveFileDialogResult>;\n\n /**\n * Opens a dialog to pick a file for reading.\n * \n * @param opts The dialog configuration.\n */\n abstract openFileDialog(opts?: IOpenFileDialogInit): Promise<IOpenFileDialogResult>;\n\n /**\n * Writes contents to the file.\n * \n * @param path The path returned by the `saveFileDialog()`.\n * @param contents The contents to write to the file.\n */\n abstract writeFile(path: string, contents: BufferSource | Blob | string | Buffer, opts?: FileWriteOptions): Promise<void>;\n\n /**\n * Reads file data.\n * @param path The path returned by the `openFileDialog()`.\n * @param returnType The type of the return value. It can be either a buffer (ArrayBuffer in the web or Buffer in Node) or a string.\n */\n abstract readFile(path: string, opts?: FileReadOptions): Promise<Buffer | ArrayBuffer | string>;\n\n /**\n * Disposes of previously created path with the `saveFileDialog()` or `openFileDialog()`.\n * This is mandatory to call when during reading or writing to a file the `dispose` option is not set to true, after the file is no longer in use.\n * \n * @param path The previously created path.\n */\n abstract dispose(path: string): Promise<void>;\n}\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { IBackendInfo, ContextListOptions, ContextListResult, IFile, IFileCreateOptions, AccessOperation, IUser, IAccessPatchInfo, IPatchInfo, IPatchRevision, IApplication, ListFileKind, IBulkOperationResult, ContextChangeRecord, ContextDeleteRecord, IProjectExecution, IProjectExecutionListOptions, ISpace, PermissionRole,
|
|
1
|
+
import { IBackendInfo, ContextListOptions, ContextListResult, IFile, IFileCreateOptions, AccessOperation, IUser, IAccessPatchInfo, IPatchInfo, IPatchRevision, IApplication, ListFileKind, IBulkOperationResult, ContextChangeRecord, ContextDeleteRecord, IProjectExecution, IProjectExecutionListOptions, ISpace, PermissionRole, ContextSpaceListOptions, IRevision, TrashEntry, TrashEntryCreate, ContextDeleteBulkEvent, FileAddOptions, FileBreadcrumb } from '@api-client/core/build/browser.js';
|
|
2
2
|
import { Patch } from '@api-client/json';
|
|
3
3
|
import { PlatformBindings } from './PlatformBindings.js';
|
|
4
4
|
import { IConfigEnvironment, IConfigInit } from '../../lib/config/Config.js';
|
|
@@ -72,7 +72,7 @@ export declare abstract class StoreBindings extends PlatformBindings {
|
|
|
72
72
|
trashChannel: BroadcastChannel;
|
|
73
73
|
historyChannel: BroadcastChannel;
|
|
74
74
|
projectExeChannel: BroadcastChannel;
|
|
75
|
-
|
|
75
|
+
initialized: boolean;
|
|
76
76
|
initializeStore(): Promise<void>;
|
|
77
77
|
initialize(): Promise<void>;
|
|
78
78
|
abstract environment: EnvironmentSettings;
|
|
@@ -141,6 +141,10 @@ export declare abstract class StoreBindings extends PlatformBindings {
|
|
|
141
141
|
key: string;
|
|
142
142
|
result: Promise<ContextListResult<IUser>>;
|
|
143
143
|
}>): void;
|
|
144
|
+
protected handleFileBreadcrumbs(event: CustomEvent<{
|
|
145
|
+
key: string;
|
|
146
|
+
result: Promise<ContextListResult<FileBreadcrumb>>;
|
|
147
|
+
}>): void;
|
|
144
148
|
protected handlerMe(input: Event): void;
|
|
145
149
|
protected handleUsersList(input: Event): void;
|
|
146
150
|
protected handleUserRead(input: Event): void;
|
|
@@ -241,15 +245,6 @@ export declare abstract class StoreBindings extends PlatformBindings {
|
|
|
241
245
|
removeUser: (space: string, otherUserKey: string) => Promise<void>;
|
|
242
246
|
patchUsers: (space: string, value: IAccessPatchInfo) => Promise<void>;
|
|
243
247
|
};
|
|
244
|
-
certificates: {
|
|
245
|
-
add: (value: HttpCertificate, space: string) => Promise<ContextChangeRecord<HttpCertificate>>;
|
|
246
|
-
addBulk: (values: HttpCertificate[], space: string) => Promise<IBulkOperationResult<ContextChangeRecord<HttpCertificate>>>;
|
|
247
|
-
read: (key: string) => Promise<HttpCertificate>;
|
|
248
|
-
list: (options?: ContextSpaceListOptions) => Promise<ContextListResult<HttpCertificate>>;
|
|
249
|
-
delete: (key: string) => Promise<ContextDeleteRecord>;
|
|
250
|
-
deleteBulk: (keys: string[]) => Promise<IBulkOperationResult<ContextDeleteRecord>>;
|
|
251
|
-
empty: (space: string) => Promise<void>;
|
|
252
|
-
};
|
|
253
248
|
trash: {
|
|
254
249
|
add: (entry: TrashEntryCreate, space: string) => Promise<ContextChangeRecord<TrashEntry>>;
|
|
255
250
|
list: (options: ContextSpaceListOptions) => Promise<ContextListResult<TrashEntry>>;
|
|
@@ -284,12 +279,6 @@ export declare abstract class StoreBindings extends PlatformBindings {
|
|
|
284
279
|
me: () => Promise<IUser>;
|
|
285
280
|
read: (key: string) => Promise<IUser>;
|
|
286
281
|
};
|
|
287
|
-
protected handleCertificateList(event: Event): void;
|
|
288
|
-
protected handleCertificateRead(event: Event): void;
|
|
289
|
-
protected handleCertificateDelete(event: Event): void;
|
|
290
|
-
protected handleCertificateInsert(event: Event): void;
|
|
291
|
-
observeCertificates(): Promise<void>;
|
|
292
|
-
unobserveCertificates(): Promise<void>;
|
|
293
282
|
observeSpaces(): Promise<void>;
|
|
294
283
|
unobserveSpaces(): Promise<void>;
|
|
295
284
|
observeFiles(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StoreBindings.d.ts","sourceRoot":"","sources":["../../../src/bindings/base/StoreBindings.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,YAAY,EAAyC,kBAAkB,EAAE,iBAAiB,EAAE,KAAK,EACjG,kBAAkB,EAAE,eAAe,EAAE,KAAK,EACrB,gBAAgB,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EACf,YAAY,EAC5E,oBAAoB,EAAE,mBAAmB,EAEzC,mBAAmB,EACnB,iBAAiB,EACjB,4BAA4B,EAC5B,MAAM,EAGN,cAAc,EACd,
|
|
1
|
+
{"version":3,"file":"StoreBindings.d.ts","sourceRoot":"","sources":["../../../src/bindings/base/StoreBindings.ts"],"names":[],"mappings":"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"}
|