@api-client/ui 0.0.8 → 0.0.10
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/dist/bindings/base/StoreBindings.d.ts +1 -10
- package/dist/bindings/base/StoreBindings.d.ts.map +1 -1
- package/dist/bindings/base/StoreBindings.js +7 -98
- package/dist/bindings/base/StoreBindings.js.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.d.ts +5 -3
- package/dist/elements/authorization/ui/CcAuthorization.d.ts.map +1 -1
- package/dist/elements/authorization/ui/CcAuthorization.js +21 -16
- package/dist/elements/authorization/ui/CcAuthorization.js.map +1 -1
- package/dist/elements/project/HttpProjectRequest.d.ts +6 -0
- package/dist/elements/project/HttpProjectRequest.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequest.js +29 -4
- package/dist/elements/project/HttpProjectRequest.js.map +1 -1
- package/dist/elements/project/HttpProjectRequestHistory.d.ts +5 -3
- package/dist/elements/project/HttpProjectRequestHistory.d.ts.map +1 -1
- package/dist/elements/project/HttpProjectRequestHistory.js +53 -42
- package/dist/elements/project/HttpProjectRequestHistory.js.map +1 -1
- package/dist/elements/project/ProjectRunner.d.ts +11 -3
- package/dist/elements/project/ProjectRunner.d.ts.map +1 -1
- package/dist/elements/project/ProjectRunner.js +60 -20
- package/dist/elements/project/ProjectRunner.js.map +1 -1
- package/dist/elements/schema-design/DataModelVisualizationElement.d.ts.map +1 -1
- package/dist/elements/schema-design/DataModelVisualizationElement.js +18 -1
- package/dist/elements/schema-design/DataModelVisualizationElement.js.map +1 -1
- package/dist/events/EventTypes.d.ts +7 -23
- package/dist/events/EventTypes.d.ts.map +1 -1
- package/dist/events/EventTypes.js +7 -23
- package/dist/events/EventTypes.js.map +1 -1
- package/dist/events/Events.d.ts +0 -8
- package/dist/events/Events.d.ts.map +1 -1
- package/dist/events/StoreEvents.d.ts +1 -9
- package/dist/events/StoreEvents.d.ts.map +1 -1
- package/dist/events/StoreEvents.js +1 -21
- package/dist/events/StoreEvents.js.map +1 -1
- package/dist/events/http-client/models/CertificatesEvents.d.ts +1 -18
- package/dist/events/http-client/models/CertificatesEvents.d.ts.map +1 -1
- package/dist/events/http-client/models/CertificatesEvents.js +2 -24
- package/dist/events/http-client/models/CertificatesEvents.js.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.d.ts +7 -0
- package/dist/pages/http-project/HttpProject.screen.d.ts.map +1 -1
- package/dist/pages/http-project/HttpProject.screen.js +11 -1
- package/dist/pages/http-project/HttpProject.screen.js.map +1 -1
- package/dist/pages/http-project/HttpProject.styles.d.ts.map +1 -1
- package/dist/pages/http-project/HttpProject.styles.js +2 -1
- package/dist/pages/http-project/HttpProject.styles.js.map +1 -1
- package/package.json +1 -1
- package/src/bindings/base/StoreBindings.ts +7 -101
- package/src/elements/authorization/ui/CcAuthorization.ts +24 -19
- package/src/elements/project/HttpProjectRequest.ts +33 -4
- package/src/elements/project/HttpProjectRequestHistory.ts +58 -48
- package/src/elements/project/ProjectRunner.ts +69 -22
- package/src/elements/schema-design/DataModelVisualizationElement.ts +18 -1
- package/src/events/EventTypes.ts +7 -23
- package/src/events/StoreEvents.ts +1 -23
- package/src/events/http-client/models/CertificatesEvents.ts +1 -29
- package/src/pages/http-project/HttpProject.screen.ts +12 -1
- package/src/pages/http-project/HttpProject.styles.ts +2 -1
- package/test/events/EventTypes.test.ts +22 -60
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContextListResult, ContextSpaceListOptions, HttpCertificate } from '@api-client/core/build/browser.js';
|
|
2
2
|
export declare class CertificatesEvents {
|
|
3
3
|
/**
|
|
4
4
|
* Dispatches an event to list the client certificates data.
|
|
@@ -8,22 +8,5 @@ export declare class CertificatesEvents {
|
|
|
8
8
|
* @returns The list result.
|
|
9
9
|
*/
|
|
10
10
|
static list(opts: ContextSpaceListOptions, target?: EventTarget): Promise<ContextListResult<HttpCertificate> | undefined>;
|
|
11
|
-
static State: {
|
|
12
|
-
new (): {};
|
|
13
|
-
/**
|
|
14
|
-
* Dispatches an event after a client certificate was updated
|
|
15
|
-
*
|
|
16
|
-
* @param record Change record
|
|
17
|
-
* @param target A node on which to dispatch the event.
|
|
18
|
-
*/
|
|
19
|
-
update(record: ContextChangeRecord<HttpCertificate>, target?: EventTarget): void;
|
|
20
|
-
/**
|
|
21
|
-
* Dispatches an event after a client certificate was deleted
|
|
22
|
-
*
|
|
23
|
-
* @param record Certificate delete record.
|
|
24
|
-
* @param target A node on which to dispatch the event.
|
|
25
|
-
*/
|
|
26
|
-
delete(record: ContextDeleteRecord, target?: EventTarget): void;
|
|
27
|
-
};
|
|
28
11
|
}
|
|
29
12
|
//# sourceMappingURL=CertificatesEvents.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CertificatesEvents.d.ts","sourceRoot":"","sources":["../../../../src/events/http-client/models/CertificatesEvents.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"CertificatesEvents.d.ts","sourceRoot":"","sources":["../../../../src/events/http-client/models/CertificatesEvents.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,iBAAiB,EACjB,uBAAuB,EACvB,eAAe,EAChB,MAAM,mCAAmC,CAAC;AAG3C,qBAAa,kBAAkB;IAC7B;;;;;;OAMG;WACU,IAAI,CAAC,IAAI,EAAE,uBAAuB,EAAE,MAAM,GAAE,WAAoB,GAAG,OAAO,CAAC,iBAAiB,CAAC,eAAe,CAAC,GAAG,SAAS,CAAC;CAKxI"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* eslint-disable max-classes-per-file */
|
|
2
|
-
import { ContextListEvent
|
|
2
|
+
import { ContextListEvent } from '@api-client/core/build/browser.js';
|
|
3
3
|
import { EventTypes } from '../../EventTypes.js';
|
|
4
4
|
export class CertificatesEvents {
|
|
5
5
|
/**
|
|
@@ -10,31 +10,9 @@ export class CertificatesEvents {
|
|
|
10
10
|
* @returns The list result.
|
|
11
11
|
*/
|
|
12
12
|
static async list(opts, target = window) {
|
|
13
|
-
const e = new ContextListEvent(EventTypes.
|
|
13
|
+
const e = new ContextListEvent(EventTypes.Store.Certificate.list, opts);
|
|
14
14
|
target.dispatchEvent(e);
|
|
15
15
|
return e.detail.result;
|
|
16
16
|
}
|
|
17
|
-
static { this.State = class {
|
|
18
|
-
/**
|
|
19
|
-
* Dispatches an event after a client certificate was updated
|
|
20
|
-
*
|
|
21
|
-
* @param record Change record
|
|
22
|
-
* @param target A node on which to dispatch the event.
|
|
23
|
-
*/
|
|
24
|
-
static update(record, target = window) {
|
|
25
|
-
const e = new ContextStateUpdateEvent(EventTypes.HttpClient.Model.Certificate.State.update, record);
|
|
26
|
-
target.dispatchEvent(e);
|
|
27
|
-
}
|
|
28
|
-
/**
|
|
29
|
-
* Dispatches an event after a client certificate was deleted
|
|
30
|
-
*
|
|
31
|
-
* @param record Certificate delete record.
|
|
32
|
-
* @param target A node on which to dispatch the event.
|
|
33
|
-
*/
|
|
34
|
-
static delete(record, target = window) {
|
|
35
|
-
const e = new ContextStateDeleteEvent(EventTypes.HttpClient.Model.Certificate.State.delete, record);
|
|
36
|
-
target.dispatchEvent(e);
|
|
37
|
-
}
|
|
38
|
-
}; }
|
|
39
17
|
}
|
|
40
18
|
//# sourceMappingURL=CertificatesEvents.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CertificatesEvents.js","sourceRoot":"","sources":["../../../../src/events/http-client/models/CertificatesEvents.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,
|
|
1
|
+
{"version":3,"file":"CertificatesEvents.js","sourceRoot":"","sources":["../../../../src/events/http-client/models/CertificatesEvents.ts"],"names":[],"mappings":"AAAA,yCAAyC;AACzC,OAAO,EACL,gBAAgB,EAIjB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,OAAO,kBAAkB;IAC7B;;;;;;OAMG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAA6B,EAAE,SAAsB,MAAM;QAC3E,MAAM,CAAC,GAAG,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACxE,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACxB,OAAO,CAAC,CAAC,MAAM,CAAC,MAAiE,CAAC;IACpF,CAAC;CACF","sourcesContent":["/* eslint-disable max-classes-per-file */\nimport { \n ContextListEvent, \n ContextListResult, \n ContextSpaceListOptions, \n HttpCertificate \n} from '@api-client/core/build/browser.js';\nimport { EventTypes } from '../../EventTypes.js';\n\nexport class CertificatesEvents {\n /**\n * Dispatches an event to list the client certificates data.\n *\n * @param target A node on which to dispatch the event.\n * @param opts Query options.\n * @returns The list result.\n */\n static async list(opts: ContextSpaceListOptions, target: EventTarget = window): Promise<ContextListResult<HttpCertificate> | undefined> {\n const e = new ContextListEvent(EventTypes.Store.Certificate.list, opts);\n target.dispatchEvent(e);\n return e.detail.result as Promise<ContextListResult<HttpCertificate> | undefined>;\n }\n}\n"]}
|
|
@@ -55,6 +55,13 @@ export default class HttpProjectScreen extends ApplicationScreen {
|
|
|
55
55
|
*/
|
|
56
56
|
layoutStoreKey: string;
|
|
57
57
|
protected uiMap: Map<string, IRequestUiMeta>;
|
|
58
|
+
/**
|
|
59
|
+
* A list of shared execution variables.
|
|
60
|
+
* These are set by the core execution logic and distributed to the UI elements
|
|
61
|
+
* that make HTTP request. These elements can freely change the sate and send it
|
|
62
|
+
* to the execution.
|
|
63
|
+
*/
|
|
64
|
+
sharedVariables: Record<string, string>;
|
|
58
65
|
constructor(bindings: HttpClientProjectBindings);
|
|
59
66
|
initialize(): Promise<void>;
|
|
60
67
|
storeChanged(): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProject.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.screen.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAQ,cAAc,EAAE,MAAM,KAAK,CAAC;AACtD,OAAO,EACK,WAAW,EAAE,YAAY,EAAE,YAAY,EACjD,cAAc,EAC0C,YAAY,EACpE,cAAc,EAEd,cAAc,EAEf,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAS,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAU5D,OAAO,wBAAwB,MAAM,6CAA6C,CAAC;AAEnF,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAInE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,oCAAoC,CAAC;AAE/D,OAAO,EAAE,yBAAyB,EAAc,MAAM,YAAY,CAAC;AAInE,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,iDAAiD,CAAC;AACzD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,2DAA2D,CAAC;AACnE,OAAO,gDAAgD,CAAC;AACxD,OAAO,6CAA6C,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAAiB;IAC9D,MAAM,KAAK,MAAM,IAAI,SAAS,EAAE,CAE/B;IAED,MAAM,KAAK,MAAM,IAAI,MAAM,EAAE,CAK5B;IAED,YAAY,mBAA8C;IAE1D,SAAS,CAAC,UAAU,SAAM;IAE1B;;OAEG;IACH,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,SAAS,CAAC,IAAI,SAAM;IAEpB;;OAEG;IACH,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,SAAS,CAAC,eAAe,CAAC,EAAE,OAAO,CAAC;IAEpC,SAAS,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAE5B,SAAS,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAE1B;;;OAGG;IACH,SAAS,CAAC,cAAc,yBAAgC;IAExD;;;;OAIG;IACH,SAAS,CAAC,WAAW,8BAAqC;IAE1D,OAAO,CAAC,EAAE,WAAW,CAAC;IAEO,GAAG,CAAC,EAAE,wBAAwB,CAAC;IAE5D,SAAS,CAAC,MAAM,cAIb;IAEH,SAAS,CAAC,IAAI,EAAE,qBAAqB,CAAC;IAEtC;;OAEG;IACH,cAAc,SAAM;IAEpB,SAAS,CAAC,KAAK,8BAAqC;
|
|
1
|
+
{"version":3,"file":"HttpProject.screen.d.ts","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.screen.ts"],"names":[],"mappings":"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"}
|
|
@@ -77,6 +77,13 @@ export default class HttpProjectScreen extends ApplicationScreen {
|
|
|
77
77
|
*/
|
|
78
78
|
this.layoutStoreKey = '';
|
|
79
79
|
this.uiMap = new Map();
|
|
80
|
+
/**
|
|
81
|
+
* A list of shared execution variables.
|
|
82
|
+
* These are set by the core execution logic and distributed to the UI elements
|
|
83
|
+
* that make HTTP request. These elements can freely change the sate and send it
|
|
84
|
+
* to the execution.
|
|
85
|
+
*/
|
|
86
|
+
this.sharedVariables = {};
|
|
80
87
|
this.environmentSchemas = new Map();
|
|
81
88
|
this.bindings.idb = bindings.idb;
|
|
82
89
|
this.bindings.proxy = bindings.proxy;
|
|
@@ -111,6 +118,7 @@ export default class HttpProjectScreen extends ApplicationScreen {
|
|
|
111
118
|
await this.setupProject(this.key);
|
|
112
119
|
await this.bindings.store.observeFile(this.key, 'media');
|
|
113
120
|
await this.bindings.store.observeHistory();
|
|
121
|
+
await this.bindings.store.observeProjectExecutions();
|
|
114
122
|
this.layoutStoreKey = `http-client.http-project.state.layout.${this.key}`;
|
|
115
123
|
const state = await this.restoreLayout();
|
|
116
124
|
this.layout.initialize(state);
|
|
@@ -711,6 +719,7 @@ export default class HttpProjectScreen extends ApplicationScreen {
|
|
|
711
719
|
<div class="request-container surface1" ?hidden="${!visible}" data-key="${key}">
|
|
712
720
|
<div class="scrollable">
|
|
713
721
|
<http-project-request
|
|
722
|
+
.sharedVariables="${this.sharedVariables}"
|
|
714
723
|
data-key="${key}"
|
|
715
724
|
key="${key}"
|
|
716
725
|
.project="${project}"
|
|
@@ -759,9 +768,10 @@ export default class HttpProjectScreen extends ApplicationScreen {
|
|
|
759
768
|
const { key, parent } = item;
|
|
760
769
|
const config = item.value;
|
|
761
770
|
return html `
|
|
762
|
-
<div class="
|
|
771
|
+
<div class="project-runner-content surface1" ?hidden="${!visible}" data-key="${key}">
|
|
763
772
|
<div class="scrollable">
|
|
764
773
|
<project-runner
|
|
774
|
+
.sharedVariables="${this.sharedVariables}"
|
|
765
775
|
.project="${this.project}"
|
|
766
776
|
.appInfo="${AppInfo}"
|
|
767
777
|
.folder="${parent}"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProject.screen.js","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.screen.ts"],"names":[],"mappings":"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","sourcesContent":["import { CSSResult, html, TemplateResult } from \"lit\";\nimport { \n ApiError, HttpProject, IApplication, IHttpProject, IPatchInfo, \n IPatchRevision, Events as CoreEvents, HttpProjectKind, \n ProjectFolderKind, ProjectRequestKind, EnvironmentKind, IEnvironment, \n IRequestUiMeta, \n IProjectRunnerOptions,\n BroadcastEvent,\n FilePatchBroadcastEvent\n} from \"@api-client/core/build/browser.js\";\nimport { JsonPatch, Patch } from \"@api-client/json\";\nimport { IRoute } from \"../../mixins/RouteMixin.js\";\nimport { ApplicationScreen } from \"../ApplicationScreen.js\";\nimport pageStyles from './HttpProject.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { navigate } from \"../../lib/route.js\";\nimport { randomString } from \"../../lib/Random.js\";\nimport ProjectNavigationElement from \"../../elements/project/ProjectNavigation.js\";\nimport { query } from \"../../lib/decorators.js\";\nimport { HttpClientContextMenu } from \"./HttpClientContextMenu.js\";\nimport AppInfo from './AppInfo.js';\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport HttpProjectRequest from \"../../elements/project/HttpProjectRequest.js\";\nimport { ISplitLayout, SplitLayout } from \"../../elements/layout/SplitLayout.js\";\nimport { SplitItem } from \"../../elements/layout/SplitItem.js\";\nimport { LayoutType } from \"../../elements/layout/type.js\";\nimport { HttpClientProjectBindings, RunnerKind } from \"./types.js\";\nimport { ProxyBindings } from \"../../bindings/base/ProxyBindings.js\";\nimport { IconType } from \"../../ui/icons/Icons.js\";\nimport ProjectRunner from \"../../elements/project/ProjectRunner.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http-project/project-navigation.js';\nimport '../../define/http-project/http-project-request.js';\nimport '../../define/http-project/http-project-request-history.js';\nimport '../../define/environment/environment-editor.js';\nimport '../../define/http-project/project-runner.js';\n\n/**\n * Application screen that renders an HTTP project in the HTTP Client supporting local IDB store.\n */\nexport default class HttpProjectScreen extends ApplicationScreen {\n static get styles(): CSSResult[] {\n return [globalStyles, pageStyles, typography, dialogStyles, surfaceStyles];\n }\n\n static get routes(): IRoute[] {\n return [\n { pattern: '/default', method: 'defaultRoute', fallback: true, name: 'HTTP Client home', title: 'HTTP Client home' },\n { pattern: '/404', method: 'e404Route', name: 'Not found', title: 'Not found' }\n ];\n }\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n protected _workspace = '';\n\n /**\n * The key of the workspace that has the project.\n */\n get workspace(): string {\n return this._workspace;\n }\n\n protected _key = '';\n\n /**\n * The schema file key.\n */\n get key(): string {\n return this._key;\n }\n\n protected updatingProject?: boolean;\n\n protected isDirty?: boolean;\n\n protected schema?: string;\n\n /**\n * Own patches sent to the server.\n * These are removed after the sever event is received.\n */\n protected pendingPatches = new Map<string, JsonPatch>();\n\n /**\n * The list of patches made by the current user and received from the server since the beginning of this session\n * or page reload.\n * This is to used to recognize own patches so it won't process a patch that is already applied to the project.\n */\n protected livePatches = new Map<string, IPatchRevision>();\n\n project?: HttpProject;\n\n @query('project-navigation') nav?: ProjectNavigationElement;\n\n protected layout = new SplitLayout({\n dragTypes: ['text/kind', 'text/key'],\n constrain: true,\n stateCallback: this.handlerLayoutStore.bind(this),\n });\n\n protected menu: HttpClientContextMenu;\n\n /**\n * The key where the layout state is stored.\n */\n layoutStoreKey = '';\n\n protected uiMap = new Map<string, IRequestUiMeta>();\n\n constructor(bindings: HttpClientProjectBindings) {\n super(bindings);\n\n this.bindings.idb = bindings.idb;\n this.bindings.proxy = bindings.proxy;\n this.bindings.navigation = bindings.navigation;\n\n this.menu = new HttpClientContextMenu();\n this.menu.connect();\n this.contextMenuMutationCallback = this.contextMenuMutationCallback.bind(this);\n this.menu.store.set('callback', this.contextMenuMutationCallback);\n this.menu.store.set('layout', this.layout);\n this.menu.store.set('page', this);\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n try {\n this.setupWorkspaceParameters();\n } catch (e) {\n this.reportCriticalError((e as Error).message);\n return;\n }\n await this.bindings.navigation.initialize();\n await this.bindings.idb.initialize();\n await this.bindings.store.initialize();\n await this.bindings.proxy.initialize();\n await this.bindings.config.initialize();\n await this.initializeConfig();\n await this.initializeStore();\n this.bindings.store.space = this.workspace;\n (this.bindings.proxy as ProxyBindings).space = this.workspace;\n\n await this.setupProject(this.key);\n\n await this.bindings.store.observeFile(this.key, 'media');\n await this.bindings.store.observeHistory();\n\n this.layoutStoreKey = `http-client.http-project.state.layout.${this.key}`;\n const state = await this.restoreLayout();\n this.layout.initialize(state);\n await this.loadRequestUiMeta();\n this.mediaChannel.addEventListener('message', this.mediaMessageHandler.bind(this));\n this.initializeRouting();\n this.initialized = true;\n this.layout.addEventListener('change', this.renderHandler.bind(this));\n this.layout.addEventListener('nameitem', this.nameLayoutItemHandler.bind(this));\n window.addEventListener(EventTypes.HttpProject.changed, () => this.contextMenuMutationCallback());\n window.addEventListener(EventTypes.HttpProject.State.nameChanged, this.handleProjectNameChange.bind(this));\n window.addEventListener(EventTypes.Http.Request.rename, this.handleRenameRequest.bind(this) as EventListener);\n }\n\n async storeChanged(): Promise<void> {\n this.reportCriticalError('You are no longer connected to the data store. Editing is disabled.');\n }\n\n protected setupWorkspaceParameters(): void {\n const url = new URL(window.location.href);\n const key = url.searchParams.get('key');\n const space = url.searchParams.get('space');\n if (key) {\n this._key = key;\n } else {\n throw new Error(`The project key is not set. Go back to the start page.`);\n }\n if (space) {\n this._workspace = space;\n } else {\n throw new Error(`The space key is not set. Go back to the start page.`);\n }\n }\n\n protected async setupProject(key: string): Promise<void> {\n try {\n const media = await this.readProjectFile(key);\n this.schema = JSON.stringify(media);\n this.project = new HttpProject(media);\n this.menu.store.set('project', this.project);\n } catch (e) {\n const cause = e as ApiError;\n if (cause.code === 404) {\n navigate('404');\n }\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n }\n }\n\n async readProjectFile(key: string): Promise<IHttpProject> {\n const media = await this.bindings.store.media.read(key) as IHttpProject;\n return media;\n }\n\n async storePatch(key: string, id: string, value: JsonPatch, app: IApplication): Promise<void> {\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n await this.bindings.store.media.patch(key, info);\n }\n\n /**\n * A handler for the broadcast channel message which informs about changes to files media.\n */\n protected mediaMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n if (event.space !== this.workspace) {\n return;\n }\n this.processChangeFileEvent(event);\n }\n\n /**\n * Apples changes to the Project file.\n * @param event The backend event received from the store.\n */\n protected processChangeFileEvent(event: BroadcastEvent): void {\n const { schema, project } = this;\n if (!schema || !project || this.key !== event.key || event.kind !== HttpProjectKind) {\n return;\n }\n if (event.operation === 'patch') {\n this.processFilePatch((event as FilePatchBroadcastEvent).data as IPatchRevision);\n }\n }\n\n /**\n * Logic run when a patch operation is reported from the backend.\n * @param rev The revision info from the backend event\n */\n protected processFilePatch(rev: IPatchRevision): void {\n const { schema, project } = this;\n if (!schema || !project) {\n return;\n }\n const iData = JSON.parse(schema);\n const { id } = rev;\n const ownPatch = this.pendingPatches.get(id);\n if (ownPatch) {\n this.livePatches.set(id, rev);\n this.pendingPatches.delete(id);\n // we still need to propagate changes to the requests.\n this.applyRequestPatches(rev.patch);\n return;\n }\n const result = Patch.apply(iData, rev.patch);\n this.schema = JSON.stringify(result.doc);\n project.new(result.doc as IHttpProject);\n this.render();\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.applyRequestPatches(rev.patch);\n }\n\n protected applyRequestPatches(patch: JsonPatch): void {\n const { project } = this;\n if (!project) {\n return;\n }\n patch.forEach((info) => {\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n const panels = document.querySelectorAll(`http-project-request`);\n Array.from(panels).forEach(p => p.applyPatch(info));\n return;\n }\n\n if (!info.path.startsWith('/definitions/requests/')) {\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.replace('/definitions/requests/', '').split('/');\n const index = Number(parts[0]);\n if (Number.isNaN(index)) {\n return;\n }\n const r = project.definitions.requests[index];\n if (!r) {\n return;\n }\n const panel = document.querySelector(`http-project-request[data-key=\"${r.key}\"]`) as HttpProjectRequest | null;\n if (panel) {\n panel.applyPatch(info);\n }\n });\n }\n\n /**\n * A reference to this function is passed to the context menu\n * and it is called when a project mutates.\n */\n protected contextMenuMutationCallback(): void {\n this.render();\n this.nav?.requestUpdate();\n this.updateProject();\n }\n\n protected handleProjectNameChange(e: Event): void {\n const { key } = (e as CustomEvent).detail;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n }\n\n protected handleRenameRequest(e: CustomEvent): void {\n const { key, name } = e.detail;\n if (!key || !name) {\n return;\n }\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n return;\n }\n request.info.name = name;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.updateProject();\n }\n\n /**\n * Triggers a save action on one of the workspace items.\n * \n * What happens next depends on the type of the item.\n * \n * Note, this is used by the context menu to handle the \"save\" action.\n * \n * @param key The key of the item to trigger the save action on.\n */\n triggerSave(key: string): void {\n // eslint-disable-next-line no-console\n console.log('trigger save', key);\n \n // const item = this.workspace.items.find(i => i.key === key);\n // if (!item) {\n // return;\n // }\n // switch (item.kind) {\n // case EnvironmentKind: this._triggerEnvironmentSave(item); break;\n // default:\n // }\n }\n\n protected openStart(): void {\n Events.Navigation.App.runHttpClient({ space: this.workspace });\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n }\n\n protected defaultRoute(): void {\n this.resetRoute();\n this.page = 'default';\n }\n\n protected e404Route(): void {\n this.resetRoute();\n this.page = '404';\n }\n\n /**\n * The main function to call when updating the project in the store.\n * It takes care of the concurrent updates, patch building, and IO.\n */\n async updateProject(): Promise<void> {\n if (this.updatingProject) {\n this.isDirty = true;\n return;\n }\n\n const { schema, project } = this;\n if (!project || !schema) {\n // eslint-disable-next-line no-console\n console.warn(`Trying to update the project but none is set.`);\n return;\n }\n const newSchema = project.toJSON();\n const diff = Patch.diff(JSON.parse(schema), newSchema);\n if (!diff.length) {\n // eslint-disable-next-line no-console\n console.warn(`Expected to detect changes to the project schema.`);\n return;\n }\n this.updatingProject = true;\n // gives 2.092279e+13 permutations.\n const id = randomString(16);\n this.pendingPatches.set(id, diff);\n try {\n await this.storePatch(project.key, id, diff, AppInfo);\n this.schema = JSON.stringify(newSchema);\n } catch (e) {\n const cause = e as Error;\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n } finally {\n this.updatingProject = false;\n if (this.isDirty) {\n this.updateProject();\n }\n }\n }\n\n /**\n * An event handler that renders the view on request.\n */\n protected renderHandler(): void {\n this.render();\n }\n\n protected nameLayoutItemHandler(event: Event): void {\n const item = (event as CustomEvent).detail as SplitItem;\n if (item.kind === ProjectFolderKind) {\n const folder = this.project?.findFolder(item.key);\n if (folder && folder.info.name) {\n item.label = folder.info.name;\n } else {\n item.label = 'Folder';\n }\n item.icon = 'folder';\n } else if (item.kind === ProjectRequestKind) {\n const request = this.project?.findRequest(item.key);\n if (request && request.info.name && request.info.name !== 'http://') {\n item.label = request.info.name;\n } else if (request && request.expects.url) {\n item.label = request.expects.url;\n } else {\n item.label = 'HTTP request';\n }\n item.icon = 'request';\n } else if (item.kind === EnvironmentKind) {\n const env = this.project?.findEnvironment(item.key);\n if (env && env.info.name) {\n item.label = env.info.name;\n } else {\n item.label = 'Environment';\n }\n item.icon = 'environment';\n }\n }\n\n protected requestChangeHandler(e: Event): void {\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleRequestUiChange(e: Event): void {\n const editor = e.target as HttpProjectRequest;\n const { ui, key } = editor;\n if (!ui || !key) {\n return;\n }\n this.uiMap.set(key, ui);\n Events.HttpProject.Ui.HttpRequest.set(this.key, key, ui);\n }\n\n protected async loadRequestUiMeta(): Promise<void> {\n const ids: string[] = [];\n for (const [key, value] of this.layout.definitions) {\n if (value.type === LayoutType.item) {\n const item = value.value as SplitItem;\n if (item.kind === ProjectRequestKind) {\n ids.push(key);\n }\n }\n }\n if (!ids.length) {\n return;\n }\n const result = await Events.HttpProject.Ui.HttpRequest.getBulk(this.key, ids);\n result?.items.forEach((item, index) => {\n if (!item) {\n return;\n }\n this.uiMap.set(ids[index], item);\n });\n }\n\n protected environmentChangeHandler(e: Event): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n const schema = this.environmentSchemas.get(key);\n if (!schema) {\n return;\n }\n const environment = project.definitions.environments.find(i => i.key === key);\n if (environment) {\n environment.new(schema);\n } else {\n project.addEnvironment(schema);\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleNavigationOpen(event: Event): void {\n const e = event as CustomEvent;\n const key = e.detail.key as string;\n const kind = e.detail.kind as string;\n if (!key || !kind) {\n return;\n }\n const { layout } = this;\n const panel = layout.findPanel(key);\n if (panel) {\n panel.selected = key;\n layout.updateView(panel.key);\n this.render();\n return;\n }\n switch (kind) {\n // case ProjectFolderKind: this._openProjectFolder(key, pid as string); break;\n case ProjectRequestKind: this.openProjectRequest(key); break;\n case EnvironmentKind: this.openProjectEnvironment(key); break;\n default:\n }\n }\n\n async openProjectRequest(key: string): Promise<void> {\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.reportCriticalError(`The request was not found in the project.`);\n return;\n }\n const ui = await Events.HttpProject.Ui.HttpRequest.get(project.key, key);\n if (ui) {\n this.uiMap.set(key, ui);\n } else {\n this.uiMap.set(key, {});\n }\n const parent = request.getParent();\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: ProjectRequestKind,\n key,\n label: request.info.renderLabel,\n icon: 'request',\n parent: parentKey,\n });\n }\n\n openProjectEnvironment(key: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const environment = project.findEnvironment(key);\n if (!environment) {\n this.reportCriticalError(`The environment was not found in the project.`);\n return;\n }\n const parent = project.findParent(environment.key);\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: EnvironmentKind,\n key,\n label: environment.info.renderLabel,\n icon: 'environment',\n parent: parentKey,\n });\n }\n\n /**\n * Opens a new tab (or focuses on an existing tab) with a Project runner.\n * @param parentFolder The key of the parent folder to open the runner for.\n */\n openRunner(parentFolder?: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const keyInfo: string[] = ['runner'];\n let label: string;\n let icon: IconType;\n if (parentFolder) {\n keyInfo.push('folder');\n keyInfo.push(parentFolder);\n const folder = project.findFolder(parentFolder);\n if (!folder) {\n this.reportCriticalError(`The folder was not found in the project.`);\n return;\n }\n label = `Runner: ${folder.info.renderLabel}`;\n icon = 'folder';\n } else {\n keyInfo.push('project');\n keyInfo.push(project.key);\n label = `Runner: project`;\n icon = 'project';\n }\n const key = keyInfo.join('|');\n this.layout.addItem({\n kind: RunnerKind,\n key,\n label,\n icon,\n parent: parentFolder,\n });\n }\n\n protected async handlerLayoutStore(state: ISplitLayout): Promise<void> {\n const { layoutStoreKey } = this;\n try {\n await Events.Config.Local.set(layoutStoreKey, state);\n } catch(_) {\n // ...\n }\n }\n\n protected async restoreLayout(): Promise<ISplitLayout | undefined> {\n try {\n const data = await Events.Config.Local.get(this.layoutStoreKey) as ISplitLayout | undefined;\n if (data) {\n return data;\n }\n } catch (e) {\n // \n }\n return undefined;\n }\n\n protected handleRunnerChange(e: Event): void {\n const target = e.target as ProjectRunner;\n const { config } = target;\n const { key } = target.dataset;\n if (!config || !key) {\n return;\n }\n const item = this.layout.findItem(key);\n if (!item) {\n return;\n }\n item.value = config;\n this.layout.scheduleStore();\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n return html`\n ${this.navigationTemplate()}\n ${this.mainTemplate()}\n `;\n }\n\n // protected headerTemplate(): TemplateResult {\n // const { project } = this;\n // const projectTitle = project && project.info && project.info.name;\n // const title = projectTitle || 'HTTP Project';\n // return html`\n // <header class=\"start-page-header\">\n // <h1 class=\"title-large\">${title}</h1>\n\n // <div class=\"project-global-actions\">\n // <ui-button type=\"outlined\" class=\"toolbar-action\">\n // <ui-icon icon=\"playArrow\"></ui-icon> Run\n // </ui-button>\n // </div>\n // </header>\n // `;\n // }\n\n protected e404Template(): TemplateResult {\n return html`\n <main>\n <div class=\"full-error\">\n <h2 class=\"headline-large\">Not found</h2>\n <p class=\"body-large\">\n The project you are trying to open does not exist or was removed.\n </p>\n <ui-button type=\"filled\" @click=\"${this.openStart}\">Back to start</ui-button>\n </div>\n </main>`;\n }\n\n protected override navigationTemplate(): TemplateResult {\n return html`\n <project-navigation .project=\"${this.project}\" @select=\"${this.handleNavigationOpen}\" class=\"nav\"></project-navigation>\n `;\n }\n\n protected override mainTemplate(): TemplateResult {\n const { page } = this;\n if (page === '404') {\n return this.e404Template();\n }\n return html`<main>\n <div class=\"content\">\n ${this.renderLayout()}\n </div>\n </main>`;\n }\n\n protected renderLayout(): TemplateResult[] {\n const { layout } = this;\n if (layout.isEmpty()) {\n return [this.renderEmptyLayout()];\n }\n return layout.render(this.renderItem.bind(this));\n }\n\n protected renderEmptyLayout(): TemplateResult {\n return html`\n <div class=\"empty-layout surface1\">\n <p class=\"headline-small\">Open an item from the navigation.</p>\n </div>\n `;\n }\n\n protected renderItem(item: SplitItem, visible: boolean): TemplateResult {\n switch (item.kind) {\n case EnvironmentKind: return this.renderEnvironment(item, visible);\n case ProjectRequestKind: return this.renderProjectRequest(item, visible);\n case RunnerKind: return this.renderProjectRunner(item, visible);\n default: return html`<p ?hidden=\"${!visible}\" data-key=\"${item.key}\" >Unsupported object: ${item.kind}</p>`;\n }\n }\n\n protected renderProjectRequest(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n const { project, uiMap } = this;\n const request = project && project.findRequest(key);\n if (!request) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The request is no longer in the project.</p>\n `;\n }\n const ui = (uiMap.get(item.key) || {}) as IRequestUiMeta;\n return html`\n <div class=\"request-container surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <http-project-request \n data-key=\"${key}\" \n key=\"${key}\" \n .project=\"${project}\" \n .appInfo=\"${AppInfo}\"\n .ui=\"${ui}\"\n useNetStore\n @change=\"${this.requestChangeHandler}\"\n @uichange=\"${this.handleRequestUiChange}\"\n ></http-project-request>\n \n <div class=\"response-wrapper surface2\">\n <http-project-request-history \n .project=\"${this.project && this.project.key}\" \n .request=\"${key}\"\n ></http-project-request-history>\n </div>\n </div>\n </div>\n `;\n }\n\n protected environmentSchemas = new Map<string, IEnvironment>();\n\n protected renderEnvironment(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n let schema = this.environmentSchemas.get(key);\n if (!schema) {\n const { project } = this;\n const env = project && project.findEnvironment(key);\n if (env) {\n schema = env.toJSON();\n this.environmentSchemas.set(key, schema);\n }\n }\n if (!schema) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The environment is no longer in the project.</p>\n `;\n }\n return html`\n <div class=\"environment-editor-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <environment-editor .environment=\"${schema}\" data-key=\"${key}\" @change=\"${this.environmentChangeHandler}\"></environment-editor>\n </div>\n </div>\n `;\n }\n\n protected renderProjectRunner(item: SplitItem, visible: boolean): TemplateResult {\n const { key, parent } = item;\n const config = item.value as IProjectRunnerOptions | undefined;\n \n return html`\n <div class=\"environment-editor-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <project-runner\n .project=\"${this.project}\" \n .appInfo=\"${AppInfo}\"\n .folder=\"${parent}\"\n .config=\"${config}\"\n data-key=\"${key}\"\n @change=\"${this.handleRunnerChange}\"\n ></project-runner>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"HttpProject.screen.js","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.screen.ts"],"names":[],"mappings":";AAAA,OAAO,EAAa,IAAI,EAAkB,MAAM,KAAK,CAAC;AACtD,OAAO,EACK,WAAW,EACL,MAAM,IAAI,UAAU,EAAE,eAAe,EACrD,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAKvD,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAa,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,UAAU,MAAM,yBAAyB,CAAC;AACjD,OAAO,YAAY,MAAM,+BAA+B,CAAC;AACzD,OAAO,UAAU,MAAM,sCAAsC,CAAC;AAC9D,OAAO,YAAY,MAAM,kCAAkC,CAAC;AAC5D,OAAO,aAAa,MAAM,mCAAmC,CAAC;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,2CAA2C,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACnE,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAExD,OAAO,EAAgB,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAEjF,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAA6B,UAAU,EAAE,MAAM,YAAY,CAAC;AAInE,OAAO,8BAA8B,CAAC;AACtC,OAAO,4BAA4B,CAAC;AACpC,OAAO,iDAAiD,CAAC;AACzD,OAAO,mDAAmD,CAAC;AAC3D,OAAO,2DAA2D,CAAC;AACnE,OAAO,gDAAgD,CAAC;AACxD,OAAO,6CAA6C,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAkB,SAAQ,iBAAiB;IAC9D,MAAM,KAAK,MAAM;QACf,OAAO,CAAC,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,YAAY,EAAE,aAAa,CAAC,CAAC;IAC7E,CAAC;IAED,MAAM,KAAK,MAAM;QACf,OAAO;YACL,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,kBAAkB,EAAE;YACpH,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE;SAChF,CAAC;IACJ,CAAC;IAMD;;OAEG;IACH,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAID;;OAEG;IACH,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAgDD,YAAY,QAAmC;QAC7C,KAAK,CAAC,QAAQ,CAAC,CAAC;QAnElB,iBAAY,GAAG,IAAI,gBAAgB,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAEhD,eAAU,GAAG,EAAE,CAAC;QAShB,SAAI,GAAG,EAAE,CAAC;QAepB;;;WAGG;QACO,mBAAc,GAAG,IAAI,GAAG,EAAqB,CAAC;QAExD;;;;WAIG;QACO,gBAAW,GAAG,IAAI,GAAG,EAA0B,CAAC;QAMhD,WAAM,GAAG,IAAI,WAAW,CAAC;YACjC,SAAS,EAAE,CAAC,WAAW,EAAE,UAAU,CAAC;YACpC,SAAS,EAAE,IAAI;YACf,aAAa,EAAE,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC;SAClD,CAAC,CAAC;QAIH;;WAEG;QACH,mBAAc,GAAG,EAAE,CAAC;QAEV,UAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;QAEpD;;;;;WAKG;QACH,oBAAe,GAA2B,EAAE,CAAC;QAirBnC,uBAAkB,GAAG,IAAI,GAAG,EAAwB,CAAC;QA5qB7D,IAAI,CAAC,QAAQ,CAAC,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,QAAQ,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;QACrC,IAAI,CAAC,QAAQ,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QAE/C,IAAI,CAAC,IAAI,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;QACpB,IAAI,CAAC,2BAA2B,GAAG,IAAI,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC/E,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,CAAC,MAAM,IAAI,CAAC,mBAAmB,EAAE,EAAE;YACrC,OAAO;SACR;QACD,IAAI;YACF,IAAI,CAAC,wBAAwB,EAAE,CAAC;SACjC;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,CAAC,mBAAmB,CAAE,CAAW,CAAC,OAAO,CAAC,CAAC;YAC/C,OAAO;SACR;QACD,MAAM,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC5C,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC;QACrC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QACvC,MAAM,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,IAAI,CAAC,gBAAgB,EAAE,CAAC;QAC9B,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAC7B,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAC1C,IAAI,CAAC,QAAQ,CAAC,KAAuB,CAAC,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC;QAE9D,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAElC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC;QAC3C,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC;QAErD,IAAI,CAAC,cAAc,GAAG,yCAAyC,IAAI,CAAC,GAAG,EAAE,CAAC;QAC1E,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QACzC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC9B,MAAM,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/B,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACnF,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QACtE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAChF,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,2BAA2B,EAAE,CAAC,CAAC;QAClG,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3G,MAAM,CAAC,gBAAgB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,IAAI,CAAkB,CAAC,CAAC;IAChH,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,IAAI,CAAC,mBAAmB,CAAC,qEAAqE,CAAC,CAAC;IAClG,CAAC;IAES,wBAAwB;QAChC,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,GAAG,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,MAAM,KAAK,GAAG,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5C,IAAI,GAAG,EAAE;YACP,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;SACjB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,wDAAwD,CAAC,CAAC;SAC3E;QACD,IAAI,KAAK,EAAE;YACT,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;SACzB;aAAM;YACL,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;SACzE;IACH,CAAC;IAES,KAAK,CAAC,YAAY,CAAC,GAAW;QACtC,IAAI;YACF,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACpC,IAAI,CAAC,OAAO,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;SAC9C;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,KAAK,GAAG,CAAa,CAAC;YAC5B,IAAI,KAAK,CAAC,IAAI,KAAK,GAAG,EAAE;gBACtB,QAAQ,CAAC,KAAK,CAAC,CAAC;aACjB;YACD,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACzC;IACH,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,GAAW;QAC/B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAiB,CAAC;QACxE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,GAAW,EAAE,EAAU,EAAE,KAAgB,EAAE,GAAiB;QAC3E,MAAM,IAAI,GAAe;YACvB,GAAG,EAAE,GAAG,CAAC,IAAI;YACb,UAAU,EAAE,GAAG,CAAC,OAAO;YACvB,KAAK,EAAE,KAAK;YACZ,EAAE;SACH,CAAC;QACF,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACnD,CAAC;IAED;;OAEG;IACO,mBAAmB,CAAC,CAAe;QAC3C,MAAM,KAAK,GAAG,CAAC,CAAC,IAAsB,CAAC;QACvC,IAAI,KAAK,CAAC,KAAK,KAAK,IAAI,CAAC,SAAS,EAAE;YAClC,OAAO;SACR;QACD,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED;;;OAGG;IACO,sBAAsB,CAAC,KAAqB;QACpD,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,KAAK,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,EAAE;YACnF,OAAO;SACR;QACD,IAAI,KAAK,CAAC,SAAS,KAAK,OAAO,EAAE;YAC/B,IAAI,CAAC,gBAAgB,CAAE,KAAiC,CAAC,IAAsB,CAAC,CAAC;SAClF;IACH,CAAC;IAED;;;OAGG;IACO,gBAAgB,CAAC,GAAmB;QAC5C,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE;YACvB,OAAO;SACR;QACD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACjC,MAAM,EAAE,EAAE,EAAE,GAAG,GAAG,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC7C,IAAI,QAAQ,EAAE;YACZ,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;YAC9B,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;YAC/B,sDAAsD;YACtD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YACpC,OAAO;SACR;QACD,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,EAAE,GAAG,CAAC,KAAK,CAAC,CAAC;QAC7C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,GAAmB,CAAC,CAAC;QACxC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,aAAa,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACtC,CAAC;IAES,mBAAmB,CAAC,KAAgB;QAC5C,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,2BAA2B,CAAC,EAAE;gBACrD,wBAAwB;gBACxB,MAAM,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,CAAC;gBACjE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;gBACpD,OAAO;aACR;YAED,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,wBAAwB,CAAC,EAAE;gBACnD,OAAO;aACR;YACD,kCAAkC;YAClC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,wBAAwB,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACzE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;gBACvB,OAAO;aACR;YACD,MAAM,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9C,IAAI,CAAC,CAAC,EAAE;gBACN,OAAO;aACR;YACD,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,kCAAkC,CAAC,CAAC,GAAG,IAAI,CAA8B,CAAC;YAC/G,IAAI,KAAK,EAAE;gBACT,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;aACxB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACO,2BAA2B;QACnC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAES,uBAAuB,CAAC,CAAQ;QACxC,MAAM,EAAE,GAAG,EAAE,GAAI,CAAiB,CAAC,MAAM,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,aAAa,EAAE,CAAC;SACrB;IACH,CAAC;IAES,mBAAmB,CAAC,CAAc;QAC1C,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,OAAO,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,GAAG,EAAE;YACP,GAAG,CAAC,aAAa,EAAE,CAAC;SACrB;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAED;;;;;;;;OAQG;IACH,WAAW,CAAC,GAAW;QACrB,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;QAEjC,8DAA8D;QAC9D,eAAe;QACf,YAAY;QACZ,IAAI;QACJ,uBAAuB;QACvB,qEAAqE;QACrE,aAAa;QACb,IAAI;IACN,CAAC;IAES,SAAS;QACjB,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;IACjE,CAAC;IAES,UAAU;QAClB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAES,YAAY;QACpB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa;QACjB,IAAI,IAAI,CAAC,eAAe,EAAE;YACxB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,OAAO;SACR;QAED,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,EAAE;YACvB,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,+CAA+C,CAAC,CAAC;YAC9D,OAAO;SACR;QACD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAChB,sCAAsC;YACtC,OAAO,CAAC,IAAI,CAAC,mDAAmD,CAAC,CAAC;YAClE,OAAO;SACR;QACD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,mCAAmC;QACnC,MAAM,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAClC,IAAI;YACF,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACtD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;SACzC;QAAC,OAAO,CAAC,EAAE;YACV,MAAM,KAAK,GAAG,CAAU,CAAC;YACzB,UAAU,CAAC,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACpD,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;SACzC;gBAAS;YACR,IAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAC7B,IAAI,IAAI,CAAC,OAAO,EAAE;gBAChB,IAAI,CAAC,aAAa,EAAE,CAAC;aACtB;SACF;IACH,CAAC;IAED;;OAEG;IACO,aAAa;QACrB,IAAI,CAAC,MAAM,EAAE,CAAC;IAChB,CAAC;IAES,qBAAqB,CAAC,KAAY;QAC1C,MAAM,IAAI,GAAI,KAAqB,CAAC,MAAmB,CAAC;QACxD,IAAI,IAAI,CAAC,IAAI,KAAK,iBAAiB,EAAE;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAClD,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE;gBAC9B,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;aAC/B;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,QAAQ,CAAC;aACvB;YACD,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;SACtB;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;YAC3C,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE;gBACnE,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC;aAChC;iBAAM,IAAI,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;gBACzC,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC;aAClC;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,cAAc,CAAC;aAC7B;YACD,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;SACvB;aAAM,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE;YACxC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,EAAE,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE;gBACxB,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC;aAC5B;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;aAC5B;YACD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;SAC3B;IACH,CAAC;IAES,oBAAoB,CAAC,CAAQ;QACrC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAqB,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAa,CAAC;QACvC,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAES,qBAAqB,CAAC,CAAQ;QACtC,MAAM,MAAM,GAAG,CAAC,CAAC,MAA4B,CAAC;QAC9C,MAAM,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC;QAC3B,IAAI,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE;YACf,OAAO;SACR;QACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxB,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC3D,CAAC;IAES,KAAK,CAAC,iBAAiB;QAC/B,MAAM,GAAG,GAAa,EAAE,CAAC;QACzB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE;YAClD,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,IAAI,EAAE;gBAClC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAkB,CAAC;gBACtC,IAAI,IAAI,CAAC,IAAI,KAAK,kBAAkB,EAAE;oBACpC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;iBACf;aACF;SACF;QACD,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;YACf,OAAO;SACR;QACD,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QAC9E,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,CAAC,IAAI,EAAE;gBACT,OAAO;aACR;YACD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QACnC,CAAC,CAAC,CAAC;IACL,CAAC;IAES,wBAAwB,CAAC,CAAQ;QACzC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,IAAI,GAAG,CAAC,CAAC,MAAqB,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAa,CAAC;QACvC,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;SACR;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAChD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO;SACR;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC;QAC9E,IAAI,WAAW,EAAE;YACf,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;SACzB;aAAM;YACL,OAAO,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAChC;QACD,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC,aAAa,EAAE,CAAC;IACvB,CAAC;IAES,oBAAoB,CAAC,KAAY;QACzC,MAAM,CAAC,GAAG,KAAoB,CAAC;QAC/B,MAAM,GAAG,GAAG,CAAC,CAAC,MAAM,CAAC,GAAa,CAAC;QACnC,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,IAAc,CAAC;QACrC,IAAI,CAAC,GAAG,IAAI,CAAC,IAAI,EAAE;YACjB,OAAO;SACR;QACD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACpC,IAAI,KAAK,EAAE;YACT,KAAK,CAAC,QAAQ,GAAG,GAAG,CAAC;YACrB,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,OAAO;SACR;QACD,QAAQ,IAAI,EAAE;YACZ,8EAA8E;YAC9E,KAAK,kBAAkB;gBAAE,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC;gBAAC,MAAM;YAC7D,KAAK,eAAe;gBAAE,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC;gBAAC,MAAM;YAC9D,QAAQ;SACT;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,GAAW;QAClC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACzC,IAAI,CAAC,OAAO,EAAE;YACZ,IAAI,CAAC,mBAAmB,CAAC,2CAA2C,CAAC,CAAC;YACtE,OAAO;SACR;QACD,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;QACzE,IAAI,EAAE,EAAE;YACN,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACzB;aAAM;YACL,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;SACzB;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,kBAAkB;YACxB,GAAG;YACH,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,WAAW;YAC/B,IAAI,EAAE,SAAS;YACf,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAED,sBAAsB,CAAC,GAAW;QAChC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,CAAC,WAAW,EAAE;YAChB,IAAI,CAAC,mBAAmB,CAAC,+CAA+C,CAAC,CAAC;YAC1E,OAAO;SACR;QACD,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,GAAG,CAAC;QAC/D,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,eAAe;YACrB,GAAG;YACH,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,WAAW;YACnC,IAAI,EAAE,aAAa;YACnB,MAAM,EAAE,SAAS;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,YAAqB;QAC9B,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;QACzB,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO;SACR;QACD,MAAM,OAAO,GAAa,CAAC,QAAQ,CAAC,CAAC;QACrC,IAAI,KAAa,CAAC;QAClB,IAAI,IAAc,CAAC;QACnB,IAAI,YAAY,EAAE;YAChB,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;YAChD,IAAI,CAAC,MAAM,EAAE;gBACX,IAAI,CAAC,mBAAmB,CAAC,0CAA0C,CAAC,CAAC;gBACrE,OAAO;aACR;YACD,KAAK,GAAG,WAAW,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YAC7C,IAAI,GAAG,QAAQ,CAAC;SACjB;aAAM;YACL,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC1B,KAAK,GAAG,iBAAiB,CAAC;YAC1B,IAAI,GAAG,SAAS,CAAC;SAClB;QACD,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAClB,IAAI,EAAE,UAAU;YAChB,GAAG;YACH,KAAK;YACL,IAAI;YACJ,MAAM,EAAE,YAAY;SACrB,CAAC,CAAC;IACL,CAAC;IAES,KAAK,CAAC,kBAAkB,CAAC,KAAmB;QACpD,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;QAChC,IAAI;YACF,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;SACtD;QAAC,OAAM,CAAC,EAAE;YACT,MAAM;SACP;IACH,CAAC;IAES,KAAK,CAAC,aAAa;QAC3B,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAA6B,CAAC;YAC5F,IAAI,IAAI,EAAE;gBACR,OAAO,IAAI,CAAC;aACb;SACF;QAAC,OAAO,CAAC,EAAE;YACV,GAAG;SACJ;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAES,kBAAkB,CAAC,CAAQ;QACnC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAuB,CAAC;QACzC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;QAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE;YACnB,OAAO;SACR;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,EAAE;YACT,OAAO;SACR;QACD,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAEQ,YAAY;QACnB,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,WAAW,EAAE;YAChB,OAAO,KAAK,CAAC,YAAY,EAAE,CAAC;SAC7B;QACD,OAAO,IAAI,CAAA;QACP,IAAI,CAAC,kBAAkB,EAAE;QACzB,IAAI,CAAC,YAAY,EAAE;KACtB,CAAC;IACJ,CAAC;IAED,+CAA+C;IAC/C,8BAA8B;IAC9B,uEAAuE;IACvE,kDAAkD;IAClD,iBAAiB;IACjB,uCAAuC;IACvC,4CAA4C;IAE5C,2CAA2C;IAC3C,2DAA2D;IAC3D,mDAAmD;IACnD,qBAAqB;IACrB,aAAa;IACb,cAAc;IACd,OAAO;IACP,IAAI;IAEM,YAAY;QACpB,OAAO,IAAI,CAAA;;;;;;;2CAO4B,IAAI,CAAC,SAAS;;YAE7C,CAAC;IACX,CAAC;IAEkB,kBAAkB;QACnC,OAAO,IAAI,CAAA;oCACqB,IAAI,CAAC,OAAO,cAAc,IAAI,CAAC,oBAAoB;KAClF,CAAC;IACJ,CAAC;IAEkB,YAAY;QAC7B,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,KAAK,KAAK,EAAE;YAClB,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;SAC5B;QACD,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,YAAY,EAAE;;YAEjB,CAAC;IACX,CAAC;IAES,YAAY;QACpB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACxB,IAAI,MAAM,CAAC,OAAO,EAAE,EAAE;YACpB,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;SACnC;QACD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACnD,CAAC;IAES,iBAAiB;QACzB,OAAO,IAAI,CAAA;;;;KAIV,CAAC;IACJ,CAAC;IAES,UAAU,CAAC,IAAe,EAAE,OAAgB;QACpD,QAAQ,IAAI,CAAC,IAAI,EAAE;YACjB,KAAK,eAAe,CAAC,CAAC,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnE,KAAK,kBAAkB,CAAC,CAAC,OAAO,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACzE,KAAK,UAAU,CAAC,CAAC,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC,OAAO,IAAI,CAAA,eAAe,CAAC,OAAO,eAAe,IAAI,CAAC,GAAG,0BAA0B,IAAI,CAAC,IAAI,MAAM,CAAC;SAC7G;IACH,CAAC;IAES,oBAAoB,CAAC,IAAe,EAAE,OAAgB;QAC9D,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAChC,MAAM,OAAO,GAAG,OAAO,IAAI,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACpD,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,IAAI,CAAA;oBACG,CAAC,OAAO,eAAe,GAAG;OACvC,CAAC;SACH;QACD,MAAM,EAAE,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAmB,CAAC;QACzD,OAAO,IAAI,CAAA;uDACwC,CAAC,OAAO,eAAe,GAAG;;;8BAGnD,IAAI,CAAC,eAAe;sBAC5B,GAAG;iBACR,GAAG;sBACE,OAAO;sBACP,OAAO;iBACZ,EAAE;;qBAEE,IAAI,CAAC,oBAAoB;uBACvB,IAAI,CAAC,qBAAqB;;;;;wBAKzB,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG;wBAChC,GAAG;;;;;KAKtB,CAAC;IACJ,CAAC;IAIS,iBAAiB,CAAC,IAAe,EAAE,OAAgB;QAC3D,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,IAAI,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC9C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;YACzB,MAAM,GAAG,GAAG,OAAO,IAAI,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;YACpD,IAAI,GAAG,EAAE;gBACP,MAAM,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC;gBACtB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;aAC1C;SACF;QACD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,IAAI,CAAA;oBACG,CAAC,OAAO,eAAe,GAAG;OACvC,CAAC;SACH;QACD,OAAO,IAAI,CAAA;gEACiD,CAAC,OAAO,eAAe,GAAG;;4CAE9C,MAAM,gBAAgB,GAAG,cAAc,IAAI,CAAC,wBAAwB;;;KAG3G,CAAC;IACJ,CAAC;IAES,mBAAmB,CAAC,IAAe,EAAE,OAAgB;QAC7D,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,KAA0C,CAAC;QAE/D,OAAO,IAAI,CAAA;4DAC6C,CAAC,OAAO,eAAe,GAAG;;;8BAGxD,IAAI,CAAC,eAAe;sBAC5B,IAAI,CAAC,OAAO;sBACZ,OAAO;qBACR,MAAM;qBACN,MAAM;sBACL,GAAG;qBACJ,IAAI,CAAC,kBAAkB;;;;KAIvC,CAAC;IACJ,CAAC;CACF;AAvvB8B;IAA5B,KAAK,CAAC,oBAAoB,CAAC;8CAAgC","sourcesContent":["import { CSSResult, html, TemplateResult } from \"lit\";\nimport { \n ApiError, HttpProject, IApplication, IHttpProject, IPatchInfo, \n IPatchRevision, Events as CoreEvents, HttpProjectKind, \n ProjectFolderKind, ProjectRequestKind, EnvironmentKind, IEnvironment, \n IRequestUiMeta, \n IProjectRunnerOptions,\n BroadcastEvent,\n FilePatchBroadcastEvent\n} from \"@api-client/core/build/browser.js\";\nimport { JsonPatch, Patch } from \"@api-client/json\";\nimport { IRoute } from \"../../mixins/RouteMixin.js\";\nimport { ApplicationScreen } from \"../ApplicationScreen.js\";\nimport pageStyles from './HttpProject.styles.js';\nimport globalStyles from '../../styles/global-styles.js';\nimport typography from '../../styles/m3/typography.module.js';\nimport dialogStyles from '../../styles/m3/dialog.module.js';\nimport surfaceStyles from '../../styles/m3/surface.module.js';\nimport { StoreBroadcast } from \"../../http-client/store/StoreBroadcast.js\";\nimport { Events } from \"../../events/Events.js\";\nimport { navigate } from \"../../lib/route.js\";\nimport { randomString } from \"../../lib/Random.js\";\nimport ProjectNavigationElement from \"../../elements/project/ProjectNavigation.js\";\nimport { query } from \"../../lib/decorators.js\";\nimport { HttpClientContextMenu } from \"./HttpClientContextMenu.js\";\nimport AppInfo from './AppInfo.js';\nimport { EventTypes } from \"../../events/EventTypes.js\";\nimport HttpProjectRequest from \"../../elements/project/HttpProjectRequest.js\";\nimport { ISplitLayout, SplitLayout } from \"../../elements/layout/SplitLayout.js\";\nimport { SplitItem } from \"../../elements/layout/SplitItem.js\";\nimport { LayoutType } from \"../../elements/layout/type.js\";\nimport { HttpClientProjectBindings, RunnerKind } from \"./types.js\";\nimport { ProxyBindings } from \"../../bindings/base/ProxyBindings.js\";\nimport { IconType } from \"../../ui/icons/Icons.js\";\nimport ProjectRunner from \"../../elements/project/ProjectRunner.js\";\nimport '../../define/ui/ui-button.js';\nimport '../../define/ui/ui-icon.js';\nimport '../../define/http-project/project-navigation.js';\nimport '../../define/http-project/http-project-request.js';\nimport '../../define/http-project/http-project-request-history.js';\nimport '../../define/environment/environment-editor.js';\nimport '../../define/http-project/project-runner.js';\n\n/**\n * Application screen that renders an HTTP project in the HTTP Client supporting local IDB store.\n */\nexport default class HttpProjectScreen extends ApplicationScreen {\n static get styles(): CSSResult[] {\n return [globalStyles, pageStyles, typography, dialogStyles, surfaceStyles];\n }\n\n static get routes(): IRoute[] {\n return [\n { pattern: '/default', method: 'defaultRoute', fallback: true, name: 'HTTP Client home', title: 'HTTP Client home' },\n { pattern: '/404', method: 'e404Route', name: 'Not found', title: 'Not found' }\n ];\n }\n\n mediaChannel = new BroadcastChannel(StoreBroadcast.media);\n\n protected _workspace = '';\n\n /**\n * The key of the workspace that has the project.\n */\n get workspace(): string {\n return this._workspace;\n }\n\n protected _key = '';\n\n /**\n * The schema file key.\n */\n get key(): string {\n return this._key;\n }\n\n protected updatingProject?: boolean;\n\n protected isDirty?: boolean;\n\n protected schema?: string;\n\n /**\n * Own patches sent to the server.\n * These are removed after the sever event is received.\n */\n protected pendingPatches = new Map<string, JsonPatch>();\n\n /**\n * The list of patches made by the current user and received from the server since the beginning of this session\n * or page reload.\n * This is to used to recognize own patches so it won't process a patch that is already applied to the project.\n */\n protected livePatches = new Map<string, IPatchRevision>();\n\n project?: HttpProject;\n\n @query('project-navigation') nav?: ProjectNavigationElement;\n\n protected layout = new SplitLayout({\n dragTypes: ['text/kind', 'text/key'],\n constrain: true,\n stateCallback: this.handlerLayoutStore.bind(this),\n });\n\n protected menu: HttpClientContextMenu;\n\n /**\n * The key where the layout state is stored.\n */\n layoutStoreKey = '';\n\n protected uiMap = new Map<string, IRequestUiMeta>();\n\n /**\n * A list of shared execution variables.\n * These are set by the core execution logic and distributed to the UI elements\n * that make HTTP request. These elements can freely change the sate and send it \n * to the execution.\n */\n sharedVariables: Record<string, string> = {};\n\n constructor(bindings: HttpClientProjectBindings) {\n super(bindings);\n\n this.bindings.idb = bindings.idb;\n this.bindings.proxy = bindings.proxy;\n this.bindings.navigation = bindings.navigation;\n\n this.menu = new HttpClientContextMenu();\n this.menu.connect();\n this.contextMenuMutationCallback = this.contextMenuMutationCallback.bind(this);\n this.menu.store.set('callback', this.contextMenuMutationCallback);\n this.menu.store.set('layout', this.layout);\n this.menu.store.set('page', this);\n }\n\n async initialize(): Promise<void> {\n if (!await this.isPlatformSupported()) {\n return;\n }\n try {\n this.setupWorkspaceParameters();\n } catch (e) {\n this.reportCriticalError((e as Error).message);\n return;\n }\n await this.bindings.navigation.initialize();\n await this.bindings.idb.initialize();\n await this.bindings.store.initialize();\n await this.bindings.proxy.initialize();\n await this.bindings.config.initialize();\n await this.initializeConfig();\n await this.initializeStore();\n this.bindings.store.space = this.workspace;\n (this.bindings.proxy as ProxyBindings).space = this.workspace;\n\n await this.setupProject(this.key);\n\n await this.bindings.store.observeFile(this.key, 'media');\n await this.bindings.store.observeHistory();\n await this.bindings.store.observeProjectExecutions();\n\n this.layoutStoreKey = `http-client.http-project.state.layout.${this.key}`;\n const state = await this.restoreLayout();\n this.layout.initialize(state);\n await this.loadRequestUiMeta();\n this.mediaChannel.addEventListener('message', this.mediaMessageHandler.bind(this));\n this.initializeRouting();\n this.initialized = true;\n this.layout.addEventListener('change', this.renderHandler.bind(this));\n this.layout.addEventListener('nameitem', this.nameLayoutItemHandler.bind(this));\n window.addEventListener(EventTypes.HttpProject.changed, () => this.contextMenuMutationCallback());\n window.addEventListener(EventTypes.HttpProject.State.nameChanged, this.handleProjectNameChange.bind(this));\n window.addEventListener(EventTypes.Http.Request.rename, this.handleRenameRequest.bind(this) as EventListener);\n }\n\n async storeChanged(): Promise<void> {\n this.reportCriticalError('You are no longer connected to the data store. Editing is disabled.');\n }\n\n protected setupWorkspaceParameters(): void {\n const url = new URL(window.location.href);\n const key = url.searchParams.get('key');\n const space = url.searchParams.get('space');\n if (key) {\n this._key = key;\n } else {\n throw new Error(`The project key is not set. Go back to the start page.`);\n }\n if (space) {\n this._workspace = space;\n } else {\n throw new Error(`The space key is not set. Go back to the start page.`);\n }\n }\n\n protected async setupProject(key: string): Promise<void> {\n try {\n const media = await this.readProjectFile(key);\n this.schema = JSON.stringify(media);\n this.project = new HttpProject(media);\n this.menu.store.set('project', this.project);\n } catch (e) {\n const cause = e as ApiError;\n if (cause.code === 404) {\n navigate('404');\n }\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n }\n }\n\n async readProjectFile(key: string): Promise<IHttpProject> {\n const media = await this.bindings.store.media.read(key) as IHttpProject;\n return media;\n }\n\n async storePatch(key: string, id: string, value: JsonPatch, app: IApplication): Promise<void> {\n const info: IPatchInfo = {\n app: app.code,\n appVersion: app.version,\n patch: value,\n id,\n };\n await this.bindings.store.media.patch(key, info);\n }\n\n /**\n * A handler for the broadcast channel message which informs about changes to files media.\n */\n protected mediaMessageHandler(e: MessageEvent): void {\n const event = e.data as BroadcastEvent;\n if (event.space !== this.workspace) {\n return;\n }\n this.processChangeFileEvent(event);\n }\n\n /**\n * Apples changes to the Project file.\n * @param event The backend event received from the store.\n */\n protected processChangeFileEvent(event: BroadcastEvent): void {\n const { schema, project } = this;\n if (!schema || !project || this.key !== event.key || event.kind !== HttpProjectKind) {\n return;\n }\n if (event.operation === 'patch') {\n this.processFilePatch((event as FilePatchBroadcastEvent).data as IPatchRevision);\n }\n }\n\n /**\n * Logic run when a patch operation is reported from the backend.\n * @param rev The revision info from the backend event\n */\n protected processFilePatch(rev: IPatchRevision): void {\n const { schema, project } = this;\n if (!schema || !project) {\n return;\n }\n const iData = JSON.parse(schema);\n const { id } = rev;\n const ownPatch = this.pendingPatches.get(id);\n if (ownPatch) {\n this.livePatches.set(id, rev);\n this.pendingPatches.delete(id);\n // we still need to propagate changes to the requests.\n this.applyRequestPatches(rev.patch);\n return;\n }\n const result = Patch.apply(iData, rev.patch);\n this.schema = JSON.stringify(result.doc);\n project.new(result.doc as IHttpProject);\n this.render();\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.applyRequestPatches(rev.patch);\n }\n\n protected applyRequestPatches(patch: JsonPatch): void {\n const { project } = this;\n if (!project) {\n return;\n }\n patch.forEach((info) => {\n if (info.path.startsWith('/definitions/environments')) {\n // environments changed.\n const panels = document.querySelectorAll(`http-project-request`);\n Array.from(panels).forEach(p => p.applyPatch(info));\n return;\n }\n\n if (!info.path.startsWith('/definitions/requests/')) {\n return;\n }\n // \"/definitions/requests/\\d+/...\"\n const parts = info.path.replace('/definitions/requests/', '').split('/');\n const index = Number(parts[0]);\n if (Number.isNaN(index)) {\n return;\n }\n const r = project.definitions.requests[index];\n if (!r) {\n return;\n }\n const panel = document.querySelector(`http-project-request[data-key=\"${r.key}\"]`) as HttpProjectRequest | null;\n if (panel) {\n panel.applyPatch(info);\n }\n });\n }\n\n /**\n * A reference to this function is passed to the context menu\n * and it is called when a project mutates.\n */\n protected contextMenuMutationCallback(): void {\n this.render();\n this.nav?.requestUpdate();\n this.updateProject();\n }\n\n protected handleProjectNameChange(e: Event): void {\n const { key } = (e as CustomEvent).detail;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n }\n\n protected handleRenameRequest(e: CustomEvent): void {\n const { key, name } = e.detail;\n if (!key || !name) {\n return;\n }\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n return;\n }\n request.info.name = name;\n this.layout.requestNameUpdate(key);\n const { nav } = this;\n if (nav) {\n nav.requestUpdate();\n }\n this.updateProject();\n }\n\n /**\n * Triggers a save action on one of the workspace items.\n * \n * What happens next depends on the type of the item.\n * \n * Note, this is used by the context menu to handle the \"save\" action.\n * \n * @param key The key of the item to trigger the save action on.\n */\n triggerSave(key: string): void {\n // eslint-disable-next-line no-console\n console.log('trigger save', key);\n \n // const item = this.workspace.items.find(i => i.key === key);\n // if (!item) {\n // return;\n // }\n // switch (item.kind) {\n // case EnvironmentKind: this._triggerEnvironmentSave(item); break;\n // default:\n // }\n }\n\n protected openStart(): void {\n Events.Navigation.App.runHttpClient({ space: this.workspace });\n }\n\n protected resetRoute(): void {\n this.page = undefined;\n }\n\n protected defaultRoute(): void {\n this.resetRoute();\n this.page = 'default';\n }\n\n protected e404Route(): void {\n this.resetRoute();\n this.page = '404';\n }\n\n /**\n * The main function to call when updating the project in the store.\n * It takes care of the concurrent updates, patch building, and IO.\n */\n async updateProject(): Promise<void> {\n if (this.updatingProject) {\n this.isDirty = true;\n return;\n }\n\n const { schema, project } = this;\n if (!project || !schema) {\n // eslint-disable-next-line no-console\n console.warn(`Trying to update the project but none is set.`);\n return;\n }\n const newSchema = project.toJSON();\n const diff = Patch.diff(JSON.parse(schema), newSchema);\n if (!diff.length) {\n // eslint-disable-next-line no-console\n console.warn(`Expected to detect changes to the project schema.`);\n return;\n }\n this.updatingProject = true;\n // gives 2.092279e+13 permutations.\n const id = randomString(16);\n this.pendingPatches.set(id, diff);\n try {\n await this.storePatch(project.key, id, diff, AppInfo);\n this.schema = JSON.stringify(newSchema);\n } catch (e) {\n const cause = e as Error;\n CoreEvents.Telemetry.exception(cause.message, true);\n this.reportCriticalError(cause.message);\n } finally {\n this.updatingProject = false;\n if (this.isDirty) {\n this.updateProject();\n }\n }\n }\n\n /**\n * An event handler that renders the view on request.\n */\n protected renderHandler(): void {\n this.render();\n }\n\n protected nameLayoutItemHandler(event: Event): void {\n const item = (event as CustomEvent).detail as SplitItem;\n if (item.kind === ProjectFolderKind) {\n const folder = this.project?.findFolder(item.key);\n if (folder && folder.info.name) {\n item.label = folder.info.name;\n } else {\n item.label = 'Folder';\n }\n item.icon = 'folder';\n } else if (item.kind === ProjectRequestKind) {\n const request = this.project?.findRequest(item.key);\n if (request && request.info.name && request.info.name !== 'http://') {\n item.label = request.info.name;\n } else if (request && request.expects.url) {\n item.label = request.expects.url;\n } else {\n item.label = 'HTTP request';\n }\n item.icon = 'request';\n } else if (item.kind === EnvironmentKind) {\n const env = this.project?.findEnvironment(item.key);\n if (env && env.info.name) {\n item.label = env.info.name;\n } else {\n item.label = 'Environment';\n }\n item.icon = 'environment';\n }\n }\n\n protected requestChangeHandler(e: Event): void {\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleRequestUiChange(e: Event): void {\n const editor = e.target as HttpProjectRequest;\n const { ui, key } = editor;\n if (!ui || !key) {\n return;\n }\n this.uiMap.set(key, ui);\n Events.HttpProject.Ui.HttpRequest.set(this.key, key, ui);\n }\n\n protected async loadRequestUiMeta(): Promise<void> {\n const ids: string[] = [];\n for (const [key, value] of this.layout.definitions) {\n if (value.type === LayoutType.item) {\n const item = value.value as SplitItem;\n if (item.kind === ProjectRequestKind) {\n ids.push(key);\n }\n }\n }\n if (!ids.length) {\n return;\n }\n const result = await Events.HttpProject.Ui.HttpRequest.getBulk(this.key, ids);\n result?.items.forEach((item, index) => {\n if (!item) {\n return;\n }\n this.uiMap.set(ids[index], item);\n });\n }\n\n protected environmentChangeHandler(e: Event): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const node = e.target as HTMLElement;\n const key = node.dataset.key as string;\n if (!key) {\n return;\n }\n const schema = this.environmentSchemas.get(key);\n if (!schema) {\n return;\n }\n const environment = project.definitions.environments.find(i => i.key === key);\n if (environment) {\n environment.new(schema);\n } else {\n project.addEnvironment(schema);\n }\n this.layout.requestNameUpdate(key);\n this.updateProject();\n }\n\n protected handleNavigationOpen(event: Event): void {\n const e = event as CustomEvent;\n const key = e.detail.key as string;\n const kind = e.detail.kind as string;\n if (!key || !kind) {\n return;\n }\n const { layout } = this;\n const panel = layout.findPanel(key);\n if (panel) {\n panel.selected = key;\n layout.updateView(panel.key);\n this.render();\n return;\n }\n switch (kind) {\n // case ProjectFolderKind: this._openProjectFolder(key, pid as string); break;\n case ProjectRequestKind: this.openProjectRequest(key); break;\n case EnvironmentKind: this.openProjectEnvironment(key); break;\n default:\n }\n }\n\n async openProjectRequest(key: string): Promise<void> {\n const { project } = this;\n if (!project) {\n return;\n }\n const request = project.findRequest(key);\n if (!request) {\n this.reportCriticalError(`The request was not found in the project.`);\n return;\n }\n const ui = await Events.HttpProject.Ui.HttpRequest.get(project.key, key);\n if (ui) {\n this.uiMap.set(key, ui);\n } else {\n this.uiMap.set(key, {});\n }\n const parent = request.getParent();\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: ProjectRequestKind,\n key,\n label: request.info.renderLabel,\n icon: 'request',\n parent: parentKey,\n });\n }\n\n openProjectEnvironment(key: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const environment = project.findEnvironment(key);\n if (!environment) {\n this.reportCriticalError(`The environment was not found in the project.`);\n return;\n }\n const parent = project.findParent(environment.key);\n const parentKey = parent === project ? undefined : parent?.key;\n this.layout.addItem({\n kind: EnvironmentKind,\n key,\n label: environment.info.renderLabel,\n icon: 'environment',\n parent: parentKey,\n });\n }\n\n /**\n * Opens a new tab (or focuses on an existing tab) with a Project runner.\n * @param parentFolder The key of the parent folder to open the runner for.\n */\n openRunner(parentFolder?: string): void {\n const { project } = this;\n if (!project) {\n return;\n }\n const keyInfo: string[] = ['runner'];\n let label: string;\n let icon: IconType;\n if (parentFolder) {\n keyInfo.push('folder');\n keyInfo.push(parentFolder);\n const folder = project.findFolder(parentFolder);\n if (!folder) {\n this.reportCriticalError(`The folder was not found in the project.`);\n return;\n }\n label = `Runner: ${folder.info.renderLabel}`;\n icon = 'folder';\n } else {\n keyInfo.push('project');\n keyInfo.push(project.key);\n label = `Runner: project`;\n icon = 'project';\n }\n const key = keyInfo.join('|');\n this.layout.addItem({\n kind: RunnerKind,\n key,\n label,\n icon,\n parent: parentFolder,\n });\n }\n\n protected async handlerLayoutStore(state: ISplitLayout): Promise<void> {\n const { layoutStoreKey } = this;\n try {\n await Events.Config.Local.set(layoutStoreKey, state);\n } catch(_) {\n // ...\n }\n }\n\n protected async restoreLayout(): Promise<ISplitLayout | undefined> {\n try {\n const data = await Events.Config.Local.get(this.layoutStoreKey) as ISplitLayout | undefined;\n if (data) {\n return data;\n }\n } catch (e) {\n // \n }\n return undefined;\n }\n\n protected handleRunnerChange(e: Event): void {\n const target = e.target as ProjectRunner;\n const { config } = target;\n const { key } = target.dataset;\n if (!config || !key) {\n return;\n }\n const item = this.layout.findItem(key);\n if (!item) {\n return;\n }\n item.value = config;\n this.layout.scheduleStore();\n }\n\n override pageTemplate(): TemplateResult {\n const { initialized } = this;\n if (!initialized) {\n return super.pageTemplate();\n }\n return html`\n ${this.navigationTemplate()}\n ${this.mainTemplate()}\n `;\n }\n\n // protected headerTemplate(): TemplateResult {\n // const { project } = this;\n // const projectTitle = project && project.info && project.info.name;\n // const title = projectTitle || 'HTTP Project';\n // return html`\n // <header class=\"start-page-header\">\n // <h1 class=\"title-large\">${title}</h1>\n\n // <div class=\"project-global-actions\">\n // <ui-button type=\"outlined\" class=\"toolbar-action\">\n // <ui-icon icon=\"playArrow\"></ui-icon> Run\n // </ui-button>\n // </div>\n // </header>\n // `;\n // }\n\n protected e404Template(): TemplateResult {\n return html`\n <main>\n <div class=\"full-error\">\n <h2 class=\"headline-large\">Not found</h2>\n <p class=\"body-large\">\n The project you are trying to open does not exist or was removed.\n </p>\n <ui-button type=\"filled\" @click=\"${this.openStart}\">Back to start</ui-button>\n </div>\n </main>`;\n }\n\n protected override navigationTemplate(): TemplateResult {\n return html`\n <project-navigation .project=\"${this.project}\" @select=\"${this.handleNavigationOpen}\" class=\"nav\"></project-navigation>\n `;\n }\n\n protected override mainTemplate(): TemplateResult {\n const { page } = this;\n if (page === '404') {\n return this.e404Template();\n }\n return html`<main>\n <div class=\"content\">\n ${this.renderLayout()}\n </div>\n </main>`;\n }\n\n protected renderLayout(): TemplateResult[] {\n const { layout } = this;\n if (layout.isEmpty()) {\n return [this.renderEmptyLayout()];\n }\n return layout.render(this.renderItem.bind(this));\n }\n\n protected renderEmptyLayout(): TemplateResult {\n return html`\n <div class=\"empty-layout surface1\">\n <p class=\"headline-small\">Open an item from the navigation.</p>\n </div>\n `;\n }\n\n protected renderItem(item: SplitItem, visible: boolean): TemplateResult {\n switch (item.kind) {\n case EnvironmentKind: return this.renderEnvironment(item, visible);\n case ProjectRequestKind: return this.renderProjectRequest(item, visible);\n case RunnerKind: return this.renderProjectRunner(item, visible);\n default: return html`<p ?hidden=\"${!visible}\" data-key=\"${item.key}\" >Unsupported object: ${item.kind}</p>`;\n }\n }\n\n protected renderProjectRequest(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n const { project, uiMap } = this;\n const request = project && project.findRequest(key);\n if (!request) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The request is no longer in the project.</p>\n `;\n }\n const ui = (uiMap.get(item.key) || {}) as IRequestUiMeta;\n return html`\n <div class=\"request-container surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <http-project-request \n .sharedVariables=\"${this.sharedVariables}\"\n data-key=\"${key}\" \n key=\"${key}\" \n .project=\"${project}\" \n .appInfo=\"${AppInfo}\"\n .ui=\"${ui}\"\n useNetStore\n @change=\"${this.requestChangeHandler}\"\n @uichange=\"${this.handleRequestUiChange}\"\n ></http-project-request>\n \n <div class=\"response-wrapper surface2\">\n <http-project-request-history \n .project=\"${this.project && this.project.key}\" \n .request=\"${key}\"\n ></http-project-request-history>\n </div>\n </div>\n </div>\n `;\n }\n\n protected environmentSchemas = new Map<string, IEnvironment>();\n\n protected renderEnvironment(item: SplitItem, visible: boolean): TemplateResult {\n const { key } = item;\n let schema = this.environmentSchemas.get(key);\n if (!schema) {\n const { project } = this;\n const env = project && project.findEnvironment(key);\n if (env) {\n schema = env.toJSON();\n this.environmentSchemas.set(key, schema);\n }\n }\n if (!schema) {\n return html`\n <p ?hidden=\"${!visible}\" data-key=\"${key}\" class=\"missing-data\">The environment is no longer in the project.</p>\n `;\n }\n return html`\n <div class=\"environment-editor-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <environment-editor .environment=\"${schema}\" data-key=\"${key}\" @change=\"${this.environmentChangeHandler}\"></environment-editor>\n </div>\n </div>\n `;\n }\n\n protected renderProjectRunner(item: SplitItem, visible: boolean): TemplateResult {\n const { key, parent } = item;\n const config = item.value as IProjectRunnerOptions | undefined;\n \n return html`\n <div class=\"project-runner-content surface1\" ?hidden=\"${!visible}\" data-key=\"${key}\">\n <div class=\"scrollable\">\n <project-runner\n .sharedVariables=\"${this.sharedVariables}\"\n .project=\"${this.project}\" \n .appInfo=\"${AppInfo}\"\n .folder=\"${parent}\"\n .config=\"${config}\"\n data-key=\"${key}\"\n @change=\"${this.handleRunnerChange}\"\n ></project-runner>\n </div>\n </div>\n `;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProject.styles.d.ts","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.styles.ts"],"names":[],"mappings":";AAEA,
|
|
1
|
+
{"version":3,"file":"HttpProject.styles.d.ts","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.styles.ts"],"names":[],"mappings":";AAEA,wBA0FE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HttpProject.styles.js","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA
|
|
1
|
+
{"version":3,"file":"HttpProject.styles.js","sourceRoot":"","sources":["../../../src/pages/http-project/HttpProject.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA0FjB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport default css`\n#app {\n display: grid;\n grid-template:\n \"nav content\" 100vh / minmax(360px, 2fr) 10fr;\n}\n\n.nav {\n grid-area: nav;\n padding: 12px;\n}\n\nmain {\n grid-area: content; \n background-color: var(--md-sys-color-surface);\n border-radius: var(--md-sys-shape-corner-medium);\n color: var(--md-sys-color-on-primary-container);\n\n overflow: hidden;\n display: flex;\n}\n\nmain .content {\n padding: 12px;\n position: relative;\n z-index: 0;\n border-radius: inherit;\n\n flex: 1;\n display: flex;\n flex-direction: column;\n\n overflow: hidden;\n}\n\nsplit-view {\n flex: 1;\n overflow: hidden;\n}\n\n/* main .content::before {\n content: '';\n background-color: var(--md-sys-color-primary);\n opacity: .05;\n position: absolute;\n inset: 0;\n border-radius: inherit;\n} */\n\n/* main .content > * {\n position: relative;\n z-index: 1;\n} */\n\n.request-container,\n.environment-editor-content,\n.project-runner-content {\n border-radius: 0 0 12px 12px;\n overflow: hidden;\n padding: 12px;\n display: flex;\n}\n\n.scrollable {\n overflow: auto;\n flex: 1 1 0%;\n}\n\n.response-wrapper {\n margin-top: 20px;\n border-radius: 12px;\n}\n\n.response-wrapper http-project-request-history {\n padding: 8px;\n box-sizing: border-box;\n}\n\n.empty-layout {\n border-radius: 12px;\n padding: 12px;\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 1;\n}\n\ncontextual-menu {\n min-width: 240px;\n}\n`;\n"]}
|
package/package.json
CHANGED
|
@@ -34,12 +34,6 @@ import {
|
|
|
34
34
|
BroadcastEvent,
|
|
35
35
|
BackendErrorEvent,
|
|
36
36
|
BroadcastFileData,
|
|
37
|
-
HistoryDeletedBroadcastEvent,
|
|
38
|
-
HistoryCreatedBroadcastEvent,
|
|
39
|
-
ProjectExecutionCreatedBroadcastEvent,
|
|
40
|
-
ProjectExecutionDeleteBroadcastEvent,
|
|
41
|
-
DeletedBroadcastEvent,
|
|
42
|
-
BroadcastCreatedEvent,
|
|
43
37
|
} from '@api-client/core/build/browser.js';
|
|
44
38
|
import { Patch } from '@api-client/json';
|
|
45
39
|
import { PlatformBindings } from './PlatformBindings.js';
|
|
@@ -190,10 +184,10 @@ export abstract class StoreBindings extends PlatformBindings {
|
|
|
190
184
|
target.addEventListener(EventTypes.Store.ProjectRuns.clearParent, this.handleProjectExecutionClearFolder.bind(this) as EventListener);
|
|
191
185
|
|
|
192
186
|
// certificates
|
|
193
|
-
target.addEventListener(EventTypes.
|
|
194
|
-
target.addEventListener(EventTypes.
|
|
195
|
-
target.addEventListener(EventTypes.
|
|
196
|
-
target.addEventListener(EventTypes.
|
|
187
|
+
target.addEventListener(EventTypes.Store.Certificate.list, this.handleCertificateList.bind(this) as EventListener);
|
|
188
|
+
target.addEventListener(EventTypes.Store.Certificate.read, this.handleCertificateRead.bind(this) as EventListener);
|
|
189
|
+
target.addEventListener(EventTypes.Store.Certificate.delete, this.handleCertificateDelete.bind(this) as EventListener);
|
|
190
|
+
target.addEventListener(EventTypes.Store.Certificate.insert, this.handleCertificateInsert.bind(this) as EventListener);
|
|
197
191
|
}
|
|
198
192
|
|
|
199
193
|
abstract environment: EnvironmentSettings;
|
|
@@ -831,6 +825,9 @@ export abstract class StoreBindings extends PlatformBindings {
|
|
|
831
825
|
// TODO: Report an error somehow
|
|
832
826
|
throw new Error(event.cause);
|
|
833
827
|
}
|
|
828
|
+
if (event.space && event.space !== this.space) {
|
|
829
|
+
return;
|
|
830
|
+
}
|
|
834
831
|
if (event.path === RouteBuilder.spaces()) {
|
|
835
832
|
this.spacesChannel.postMessage(event);
|
|
836
833
|
} else if (event.path === RouteBuilder.files()) {
|
|
@@ -845,105 +842,14 @@ export abstract class StoreBindings extends PlatformBindings {
|
|
|
845
842
|
} else if (event.path === RouteBuilder.trash()) {
|
|
846
843
|
this.trashChannel.postMessage(event);
|
|
847
844
|
} else if (event.path === RouteBuilder.history()) {
|
|
848
|
-
this.handleHistoryBroadcast(event);
|
|
849
845
|
this.historyChannel.postMessage(event);
|
|
850
846
|
} else if (event.path === RouteBuilder.projectExecutions()) {
|
|
851
|
-
this.handleProjectRunBroadcast(event);
|
|
852
847
|
this.projectExeChannel.postMessage(event);
|
|
853
848
|
} else if (event.path === RouteBuilder.certificates()) {
|
|
854
|
-
this.handleCertificateBroadcast(event);
|
|
855
849
|
this.certificatesChannel.postMessage(event);
|
|
856
850
|
} else {
|
|
857
851
|
// eslint-disable-next-line no-console
|
|
858
852
|
console.warn(`Broadcast path not handled`, event.path, event)
|
|
859
853
|
}
|
|
860
854
|
}
|
|
861
|
-
|
|
862
|
-
protected handleHistoryBroadcast(event: BroadcastEvent): void {
|
|
863
|
-
if (event.space !== this.space) {
|
|
864
|
-
return;
|
|
865
|
-
}
|
|
866
|
-
switch (event.operation) {
|
|
867
|
-
case 'created': this.handleHistoryCreated(event as HistoryCreatedBroadcastEvent); break;
|
|
868
|
-
case 'deleted': this.handleHistoryDeleted(event as HistoryDeletedBroadcastEvent); break;
|
|
869
|
-
default:
|
|
870
|
-
}
|
|
871
|
-
}
|
|
872
|
-
|
|
873
|
-
protected handleHistoryCreated(event: HistoryCreatedBroadcastEvent): void {
|
|
874
|
-
const item = event.data as IHttpHistory;
|
|
875
|
-
Events.Store.History.State.create({
|
|
876
|
-
key: event.key,
|
|
877
|
-
item,
|
|
878
|
-
kind: item.kind,
|
|
879
|
-
parent: event.request,
|
|
880
|
-
space: event.space,
|
|
881
|
-
});
|
|
882
|
-
}
|
|
883
|
-
|
|
884
|
-
protected handleHistoryDeleted(event: HistoryDeletedBroadcastEvent): void {
|
|
885
|
-
Events.Store.History.State.delete({
|
|
886
|
-
key: event.key,
|
|
887
|
-
kind: event.kind,
|
|
888
|
-
parent: event.request,
|
|
889
|
-
});
|
|
890
|
-
}
|
|
891
|
-
|
|
892
|
-
protected handleProjectRunBroadcast(event: BroadcastEvent): void {
|
|
893
|
-
if (event.space !== this.space) {
|
|
894
|
-
return;
|
|
895
|
-
}
|
|
896
|
-
switch (event.operation) {
|
|
897
|
-
case 'created': this.handleProjectRunCreated(event as ProjectExecutionCreatedBroadcastEvent); break;
|
|
898
|
-
case 'deleted': this.handleProjectRunDeleted(event as ProjectExecutionDeleteBroadcastEvent); break;
|
|
899
|
-
default:
|
|
900
|
-
}
|
|
901
|
-
}
|
|
902
|
-
|
|
903
|
-
protected handleProjectRunCreated(event: ProjectExecutionCreatedBroadcastEvent): void {
|
|
904
|
-
const item = event.data as IProjectExecution;
|
|
905
|
-
Events.Store.ProjectRuns.State.create({
|
|
906
|
-
key: event.key,
|
|
907
|
-
item,
|
|
908
|
-
kind: item.kind,
|
|
909
|
-
parent: event.project,
|
|
910
|
-
space: event.space,
|
|
911
|
-
});
|
|
912
|
-
}
|
|
913
|
-
|
|
914
|
-
protected handleProjectRunDeleted(event: ProjectExecutionDeleteBroadcastEvent): void {
|
|
915
|
-
Events.Store.ProjectRuns.State.delete({
|
|
916
|
-
key: event.key,
|
|
917
|
-
kind: event.kind,
|
|
918
|
-
parent: event.project,
|
|
919
|
-
});
|
|
920
|
-
}
|
|
921
|
-
|
|
922
|
-
protected handleCertificateBroadcast(event: BroadcastEvent): void {
|
|
923
|
-
if (event.space !== this.space) {
|
|
924
|
-
return;
|
|
925
|
-
}
|
|
926
|
-
switch (event.operation) {
|
|
927
|
-
case 'created': this.handleCertificateCreated((event as BroadcastCreatedEvent).data as ICertificate); break;
|
|
928
|
-
case 'deleted': this.handleCertificateDeleted(event as DeletedBroadcastEvent); break;
|
|
929
|
-
default:
|
|
930
|
-
}
|
|
931
|
-
}
|
|
932
|
-
|
|
933
|
-
protected handleCertificateCreated(item: ICertificate): void {
|
|
934
|
-
Events.HttpClient.Model.Certificate.State.update({
|
|
935
|
-
key: item.key,
|
|
936
|
-
kind: item.kind,
|
|
937
|
-
item,
|
|
938
|
-
parent: this.space,
|
|
939
|
-
});
|
|
940
|
-
}
|
|
941
|
-
|
|
942
|
-
protected handleCertificateDeleted(event: DeletedBroadcastEvent): void {
|
|
943
|
-
Events.HttpClient.Model.Certificate.State.delete({
|
|
944
|
-
key: event.key,
|
|
945
|
-
kind: event.kind,
|
|
946
|
-
parent: this.space,
|
|
947
|
-
});
|
|
948
|
-
}
|
|
949
855
|
}
|