@omegagrid/bucket 0.10.0 → 0.10.2
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/package.json +6 -6
- package/dist/constants.d.ts +0 -54
- package/dist/constants.d.ts.map +0 -1
- package/dist/constants.js +0 -12
- package/dist/constants.js.map +0 -1
- package/dist/index.d.ts +0 -3
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -3
- package/dist/index.js.map +0 -1
- package/dist/options.d.ts +0 -12
- package/dist/options.d.ts.map +0 -1
- package/dist/options.js +0 -16
- package/dist/options.js.map +0 -1
- package/dist/types.d.ts +0 -87
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -2
- package/dist/types.js.map +0 -1
- package/dist/ui/bucket.alerts.d.ts +0 -17
- package/dist/ui/bucket.alerts.d.ts.map +0 -1
- package/dist/ui/bucket.alerts.js +0 -47
- package/dist/ui/bucket.alerts.js.map +0 -1
- package/dist/ui/bucket.components.d.ts +0 -24
- package/dist/ui/bucket.components.d.ts.map +0 -1
- package/dist/ui/bucket.components.js +0 -111
- package/dist/ui/bucket.components.js.map +0 -1
- package/dist/ui/bucket.d.ts +0 -83
- package/dist/ui/bucket.d.ts.map +0 -1
- package/dist/ui/bucket.dialogs.d.ts +0 -11
- package/dist/ui/bucket.dialogs.d.ts.map +0 -1
- package/dist/ui/bucket.dialogs.js +0 -46
- package/dist/ui/bucket.dialogs.js.map +0 -1
- package/dist/ui/bucket.js +0 -372
- package/dist/ui/bucket.js.map +0 -1
- package/dist/ui/bucket.sidebars.d.ts +0 -15
- package/dist/ui/bucket.sidebars.d.ts.map +0 -1
- package/dist/ui/bucket.sidebars.js +0 -77
- package/dist/ui/bucket.sidebars.js.map +0 -1
- package/dist/ui/bucket.style.d.ts +0 -3
- package/dist/ui/bucket.style.d.ts.map +0 -1
- package/dist/ui/bucket.style.js +0 -90
- package/dist/ui/bucket.style.js.map +0 -1
- package/dist/ui/bucketAlert.d.ts +0 -20
- package/dist/ui/bucketAlert.d.ts.map +0 -1
- package/dist/ui/bucketAlert.js +0 -114
- package/dist/ui/bucketAlert.js.map +0 -1
- package/dist/ui/bucketAlert.style.d.ts +0 -2
- package/dist/ui/bucketAlert.style.d.ts.map +0 -1
- package/dist/ui/bucketAlert.style.js +0 -58
- package/dist/ui/bucketAlert.style.js.map +0 -1
- package/dist/ui/bucketButton.d.ts +0 -12
- package/dist/ui/bucketButton.d.ts.map +0 -1
- package/dist/ui/bucketButton.js +0 -105
- package/dist/ui/bucketButton.js.map +0 -1
- package/dist/ui/commonMenus.d.ts +0 -4
- package/dist/ui/commonMenus.d.ts.map +0 -1
- package/dist/ui/commonMenus.js +0 -7
- package/dist/ui/commonMenus.js.map +0 -1
- package/dist/ui/componentHost.d.ts +0 -19
- package/dist/ui/componentHost.d.ts.map +0 -1
- package/dist/ui/componentHost.js +0 -113
- package/dist/ui/componentHost.js.map +0 -1
- package/dist/ui/index.d.ts +0 -11
- package/dist/ui/index.d.ts.map +0 -1
- package/dist/ui/index.js +0 -11
- package/dist/ui/index.js.map +0 -1
- package/dist/ui/modalSidebar.d.ts +0 -22
- package/dist/ui/modalSidebar.d.ts.map +0 -1
- package/dist/ui/modalSidebar.js +0 -85
- package/dist/ui/modalSidebar.js.map +0 -1
- package/dist/ui/modalSidebar.style.d.ts +0 -3
- package/dist/ui/modalSidebar.style.d.ts.map +0 -1
- package/dist/ui/modalSidebar.style.js +0 -58
- package/dist/ui/modalSidebar.style.js.map +0 -1
- package/dist/ui/path.d.ts +0 -17
- package/dist/ui/path.d.ts.map +0 -1
- package/dist/ui/path.js +0 -97
- package/dist/ui/path.js.map +0 -1
- package/dist/ui/sidebar.d.ts +0 -15
- package/dist/ui/sidebar.d.ts.map +0 -1
- package/dist/ui/sidebar.js +0 -62
- package/dist/ui/sidebar.js.map +0 -1
- package/dist/ui/sidemenu.d.ts +0 -23
- package/dist/ui/sidemenu.d.ts.map +0 -1
- package/dist/ui/sidemenu.js +0 -135
- package/dist/ui/sidemenu.js.map +0 -1
- package/dist/ui/top.d.ts +0 -14
- package/dist/ui/top.d.ts.map +0 -1
- package/dist/ui/top.js +0 -64
- package/dist/ui/top.js.map +0 -1
- package/dist/ui/top.style.d.ts +0 -3
- package/dist/ui/top.style.d.ts.map +0 -1
- package/dist/ui/top.style.js +0 -35
- package/dist/ui/top.style.js.map +0 -1
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { ComponentSlice, dom } from "@omegagrid/core";
|
|
2
|
-
export class BucketDialogs extends ComponentSlice {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
this.items = new Map();
|
|
6
|
-
}
|
|
7
|
-
get bucket() { return this.component; }
|
|
8
|
-
register(id, dialog) {
|
|
9
|
-
this.items.set(id, dialog);
|
|
10
|
-
}
|
|
11
|
-
unregister(id) {
|
|
12
|
-
this.items.delete(id);
|
|
13
|
-
this.bucket.components.unregister(id);
|
|
14
|
-
this.bucket.dispatchStateEvent();
|
|
15
|
-
}
|
|
16
|
-
async open(options) {
|
|
17
|
-
const dialog = dom.createElement('og-dialog', {
|
|
18
|
-
componentId: options.id,
|
|
19
|
-
maximizable: options.maximizable ?? true,
|
|
20
|
-
listeners: [
|
|
21
|
-
['dialog.move', () => this.bucket.dispatchStateEvent()],
|
|
22
|
-
['dialog.resize', () => this.bucket.dispatchStateEvent()],
|
|
23
|
-
['dialog.close', (e) => this.unregister(e.dialog.componentId)]
|
|
24
|
-
]
|
|
25
|
-
});
|
|
26
|
-
dialog.setOptions(options);
|
|
27
|
-
dialog.open(this.bucket);
|
|
28
|
-
dialog.showLoader();
|
|
29
|
-
let component = options.component;
|
|
30
|
-
delete options.component;
|
|
31
|
-
if (!component && options.id) {
|
|
32
|
-
component = await this.bucket.createComponent(options.id);
|
|
33
|
-
this.register(options.id, dialog);
|
|
34
|
-
}
|
|
35
|
-
dialog.hideLoader();
|
|
36
|
-
dialog.component = component;
|
|
37
|
-
// dialog without component id cannot be registered and included in state
|
|
38
|
-
if (options.id) {
|
|
39
|
-
this.register(options.id, dialog);
|
|
40
|
-
this.bucket.dispatchStateEvent();
|
|
41
|
-
}
|
|
42
|
-
// TODO - fix dialog position;
|
|
43
|
-
return dialog;
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
//# sourceMappingURL=bucket.dialogs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.dialogs.js","sourceRoot":"","sources":["../../src/ui/bucket.dialogs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,cAAc,EAAE,GAAG,EAAE,MAAM,iBAAiB,CAAC;AAKnE,MAAM,OAAO,aAAc,SAAQ,cAAsB;IAAzD;;QAEU,UAAK,GAAG,IAAI,GAAG,EAA6B,CAAC;IAiDvD,CAAC;IA/CA,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,SAAS,CAAA,CAAC,CAAC;IAEtC,QAAQ,CAAC,EAAe,EAAE,MAAoB;QAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;IAC5B,CAAC;IAED,UAAU,CAAC,EAAe;QACzB,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QACtB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACtC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAA0B;QACpC,MAAM,MAAM,GAAG,GAAG,CAAC,aAAa,CAAe,WAAW,EAAE;YAC3D,WAAW,EAAE,OAAO,CAAC,EAAE;YACvB,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;YACxC,SAAS,EAAE;gBACV,CAAC,aAAa,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACvD,CAAC,eAAe,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;gBACzD,CAAC,cAAc,EAAE,CAAC,CAAc,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAE,CAAC,CAAC,MAAuB,CAAC,WAAW,CAAC,CAAC;aAC7F;SACD,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzB,MAAM,CAAC,UAAU,EAAE,CAAC;QAEpB,IAAI,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC;QAClC,OAAO,OAAO,CAAC,SAAS,CAAC;QACzB,IAAI,CAAC,SAAS,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YAC9B,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC1D,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,CAAC,UAAU,EAAE,CAAC;QACpB,MAAM,CAAC,SAAS,GAAG,SAAS,CAAC;QAE7B,yEAAyE;QACzE,IAAI,OAAO,CAAC,EAAE,EAAE,CAAC;YAChB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;YAClC,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAClC,CAAC;QAED,8BAA8B;QAE9B,OAAO,MAAM,CAAC;IACf,CAAC;CAED","sourcesContent":["import { ComponentId, ComponentSlice, dom } from \"@omegagrid/core\";\nimport { Bucket } from \"./bucket\";\nimport { BucketDialog, OpenDialogOptions } from \"../types\";\nimport { DialogEvent } from \"@omegagrid/dialog\";\n\nexport class BucketDialogs extends ComponentSlice<Bucket> {\n\n\treadonly items = new Map<ComponentId, BucketDialog>();\n\n\tget bucket() { return this.component }\n\n\tregister(id: ComponentId, dialog: BucketDialog) {\t\n\t\tthis.items.set(id, dialog);\n\t}\n\n\tunregister(id: ComponentId) {\t\n\t\tthis.items.delete(id);\n\t\tthis.bucket.components.unregister(id);\n\t\tthis.bucket.dispatchStateEvent();\n\t}\n\n\tasync open(options: OpenDialogOptions) {\n\t\tconst dialog = dom.createElement<BucketDialog>('og-dialog', {\n\t\t\tcomponentId: options.id,\n\t\t\tmaximizable: options.maximizable ?? true,\n\t\t\tlisteners: [\n\t\t\t\t['dialog.move', () => this.bucket.dispatchStateEvent()],\n\t\t\t\t['dialog.resize', () => this.bucket.dispatchStateEvent()],\n\t\t\t\t['dialog.close', (e: DialogEvent) => this.unregister((e.dialog as BucketDialog).componentId)]\n\t\t\t]\n\t\t});\n\t\tdialog.setOptions(options);\n\t\tdialog.open(this.bucket);\n\t\tdialog.showLoader();\n\n\t\tlet component = options.component;\n\t\tdelete options.component;\n\t\tif (!component && options.id) {\n\t\t\tcomponent = await this.bucket.createComponent(options.id);\n\t\t\tthis.register(options.id, dialog);\n\t\t}\n\n\t\tdialog.hideLoader();\n\t\tdialog.component = component;\n\n\t\t// dialog without component id cannot be registered and included in state\n\t\tif (options.id) {\n\t\t\tthis.register(options.id, dialog);\n\t\t\tthis.bucket.dispatchStateEvent();\n\t\t}\n\n\t\t// TODO - fix dialog position;\n\n\t\treturn dialog;\n\t}\n\n}\n"]}
|
package/dist/ui/bucket.js
DELETED
|
@@ -1,372 +0,0 @@
|
|
|
1
|
-
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
-
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
-
};
|
|
7
|
-
var Bucket_1;
|
|
8
|
-
import { dom, log, OmegaComponent, ShortcutManager } from '@omegagrid/core';
|
|
9
|
-
import { TabSplitContainerModel } from '@omegagrid/tabs';
|
|
10
|
-
import { CommandManager } from '@omegagrid/commands';
|
|
11
|
-
import { html } from 'lit';
|
|
12
|
-
import { customElement, property, query } from 'lit/decorators.js';
|
|
13
|
-
import constants from '../constants';
|
|
14
|
-
import style from './bucket.style';
|
|
15
|
-
import { BucketAlerts } from './bucket.alerts';
|
|
16
|
-
import { initOptions } from '../options';
|
|
17
|
-
import { BucketComponents } from './bucket.components';
|
|
18
|
-
import { BucketSidebars } from './bucket.sidebars';
|
|
19
|
-
import { BucketDialogs } from './bucket.dialogs';
|
|
20
|
-
import { debounce } from 'ts-debounce';
|
|
21
|
-
const DEFAULT_SOURCE = {
|
|
22
|
-
top: { rightItems: [] },
|
|
23
|
-
sidemenu: { items: [], activeIndex: null },
|
|
24
|
-
sidebar: { width: constants.SIDEBAR_WIDTH, collapsed: false },
|
|
25
|
-
editorLayout: { items: [] }
|
|
26
|
-
};
|
|
27
|
-
export class BucketEvent extends Event {
|
|
28
|
-
constructor(type, args) {
|
|
29
|
-
super(`bucket.${type}`, { bubbles: true, composed: true });
|
|
30
|
-
Object.assign(this, args);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
|
|
34
|
-
get activeComponentId() { return this._activeComponentId; }
|
|
35
|
-
get container() {
|
|
36
|
-
if (this._container)
|
|
37
|
-
return this._container;
|
|
38
|
-
this._container = dom.createElement('og-splitcontainer');
|
|
39
|
-
this._container.orientation = 'horizontal';
|
|
40
|
-
this._container.items = [{
|
|
41
|
-
size: this.sourceData.sidebar?.width || constants.SIDEBAR_WIDTH,
|
|
42
|
-
collapsed: this.sourceData.sidebar?.collapsed || false
|
|
43
|
-
}, { size: null }];
|
|
44
|
-
this._container.createComponent = this._createSplitContainerComponent;
|
|
45
|
-
this._container.addEventListener('splitContainer.resize', this._onSplitContainerResize);
|
|
46
|
-
this._container.addEventListener('tab.beforeRemove', this._onTabBeforeRemove);
|
|
47
|
-
this._container.addEventListener('tab.remove', this._onTabRemove);
|
|
48
|
-
this._container.addEventListener('tab.select', this._onTabSelect);
|
|
49
|
-
return this._container;
|
|
50
|
-
}
|
|
51
|
-
get editorContainer() {
|
|
52
|
-
if (this._editorContainer)
|
|
53
|
-
return this._editorContainer;
|
|
54
|
-
this._editorContainer = dom.createElement('og-tabsplitcontainer');
|
|
55
|
-
this._editorContainer.style.height = '100%';
|
|
56
|
-
this._editorContainer.closable = true;
|
|
57
|
-
this._editorContainer.singleActive = true;
|
|
58
|
-
this._editorContainer.createComponent = this.createEditorComponent;
|
|
59
|
-
this._editorContainer.model = new TabSplitContainerModel(this.sourceData.editorLayout);
|
|
60
|
-
this._editorContainer.scrollableTabs = true;
|
|
61
|
-
return this._editorContainer;
|
|
62
|
-
}
|
|
63
|
-
get sidebarHost() {
|
|
64
|
-
if (this._sidebarHost)
|
|
65
|
-
return this._sidebarHost;
|
|
66
|
-
this._sidebarHost = dom.createElement('og-bucket-sidebar');
|
|
67
|
-
this._sidebarHost.bucket = this;
|
|
68
|
-
this._sidebarHost.componentId = this.sidebar1ComponentId;
|
|
69
|
-
return this._sidebarHost;
|
|
70
|
-
}
|
|
71
|
-
constructor() {
|
|
72
|
-
super();
|
|
73
|
-
this.sourceData = DEFAULT_SOURCE;
|
|
74
|
-
this.logger = new log.Logger('Ωbucket');
|
|
75
|
-
this.compact = false;
|
|
76
|
-
this.updateContainerVisibility = debounce(() => {
|
|
77
|
-
let hasTabs = false;
|
|
78
|
-
this.editorContainer.walk((splitContainer, tabContainer) => {
|
|
79
|
-
if (tabContainer.tabs?.items?.length) {
|
|
80
|
-
hasTabs = true;
|
|
81
|
-
return false;
|
|
82
|
-
}
|
|
83
|
-
});
|
|
84
|
-
if (hasTabs)
|
|
85
|
-
dom.showElement(this.editorContainer);
|
|
86
|
-
else
|
|
87
|
-
dom.hideElement(this.editorContainer);
|
|
88
|
-
}, 100);
|
|
89
|
-
this.showOverlay = () => this.overlay.show(this.body);
|
|
90
|
-
this.hideOverlay = () => this.overlay.hide();
|
|
91
|
-
this._onWindowBeforeUnload = (e) => {
|
|
92
|
-
if (!this.components.hasUnsavedComponents)
|
|
93
|
-
return;
|
|
94
|
-
e.preventDefault();
|
|
95
|
-
e.returnValue = '';
|
|
96
|
-
};
|
|
97
|
-
this.createEditorComponent = (id) => {
|
|
98
|
-
const component = dom.createElement('og-bucket-component-host');
|
|
99
|
-
component.componentId = id;
|
|
100
|
-
component.bucket = this;
|
|
101
|
-
return component;
|
|
102
|
-
};
|
|
103
|
-
this._createSplitContainerComponent = (index) => {
|
|
104
|
-
let component;
|
|
105
|
-
if (index == 0) {
|
|
106
|
-
// primary sidebar
|
|
107
|
-
this.logger.info('create primary sidebar');
|
|
108
|
-
return this.sidebarHost;
|
|
109
|
-
}
|
|
110
|
-
else if (index == 1) {
|
|
111
|
-
// editor split container
|
|
112
|
-
this.logger.info('create editor container');
|
|
113
|
-
return this.editorContainer;
|
|
114
|
-
}
|
|
115
|
-
if (!component) {
|
|
116
|
-
component = dom.createElement('div');
|
|
117
|
-
component.innerHTML = 'empty';
|
|
118
|
-
}
|
|
119
|
-
return component;
|
|
120
|
-
};
|
|
121
|
-
this._onSplitContainerResize = () => {
|
|
122
|
-
this.top?.layout();
|
|
123
|
-
this.dispatchStateEvent();
|
|
124
|
-
};
|
|
125
|
-
this._onTabRemove = (e) => {
|
|
126
|
-
this.components.unregister(e.tab.id);
|
|
127
|
-
this.dispatchEvent(new BucketEvent('close', { tab: e.tab, componentId: e.tab.id }));
|
|
128
|
-
this.dispatchStateEvent();
|
|
129
|
-
};
|
|
130
|
-
this._onTabBeforeRemove = (e) => {
|
|
131
|
-
if (this.components.unsavedComponents.has(e.tab.id)) {
|
|
132
|
-
e.preventDefault();
|
|
133
|
-
this.openMenu({ text: 'Discard changes and close tab?', content: 'yes_no' }).then(answer => {
|
|
134
|
-
if (answer?.command?.id == 'Y') {
|
|
135
|
-
this.components.unsavedComponents.delete(e.tab.id);
|
|
136
|
-
e.tabs.removeTab(e.index, true);
|
|
137
|
-
}
|
|
138
|
-
});
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
this._onTabSelect = (e) => {
|
|
142
|
-
if (e.tabs.topLevelComponent == this.editorContainer) {
|
|
143
|
-
this._activeComponentId = e.tab?.id;
|
|
144
|
-
this.dispatchEvent(new BucketEvent('activate', { tab: e.tab, componentId: e.tab?.id }));
|
|
145
|
-
this.dispatchStateEvent();
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
this.render = () => html `
|
|
149
|
-
<og-bucket-top></og-bucket-top>
|
|
150
|
-
|
|
151
|
-
<div class="body">
|
|
152
|
-
<og-overlay></og-overlay>
|
|
153
|
-
|
|
154
|
-
<og-bucket-sidemenu
|
|
155
|
-
@select=${this._onSidemenuSelect}
|
|
156
|
-
.settings=${this.sourceData.sidemenu}>
|
|
157
|
-
</og-bucket-sidemenu>
|
|
158
|
-
|
|
159
|
-
<div class="main"></div>
|
|
160
|
-
</div>
|
|
161
|
-
`;
|
|
162
|
-
this.components = new BucketComponents(this);
|
|
163
|
-
this.sidebars = new BucketSidebars(this);
|
|
164
|
-
this.alerts = new BucketAlerts(this);
|
|
165
|
-
this.dialogs = new BucketDialogs(this);
|
|
166
|
-
this.commands = new CommandManager(this);
|
|
167
|
-
this.shortcuts = new ShortcutManager(this);
|
|
168
|
-
this.options = initOptions();
|
|
169
|
-
this.logger.info('init');
|
|
170
|
-
this.addEventListener('state', (e) => {
|
|
171
|
-
if (e.target == this)
|
|
172
|
-
return;
|
|
173
|
-
e.stopPropagation();
|
|
174
|
-
this.dispatchStateEvent();
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
connectedCallback() {
|
|
178
|
-
super.connectedCallback();
|
|
179
|
-
this.tabIndex = 0;
|
|
180
|
-
this.logger.info('connected');
|
|
181
|
-
window.addEventListener('beforeunload', this._onWindowBeforeUnload);
|
|
182
|
-
}
|
|
183
|
-
disconnectedCallback() {
|
|
184
|
-
window.removeEventListener('beforeunload', this._onWindowBeforeUnload);
|
|
185
|
-
}
|
|
186
|
-
layout() {
|
|
187
|
-
this.container?.layout();
|
|
188
|
-
this.top?.layout();
|
|
189
|
-
}
|
|
190
|
-
setSourceData(sourceData) {
|
|
191
|
-
this.sourceData = sourceData;
|
|
192
|
-
if (sourceData.options) {
|
|
193
|
-
this.options = initOptions(sourceData.options, this.options);
|
|
194
|
-
}
|
|
195
|
-
}
|
|
196
|
-
async updated() {
|
|
197
|
-
const mainContainer = this.compact ? this.editorContainer : this.container;
|
|
198
|
-
if (mainContainer.parentElement != this.main) {
|
|
199
|
-
dom.empty(this.main);
|
|
200
|
-
this.main.appendChild(mainContainer);
|
|
201
|
-
mainContainer.requestUpdate();
|
|
202
|
-
}
|
|
203
|
-
const sidebarComponentId = (this.sourceData.sidemenu.items ?? [])[this.sourceData.sidemenu.activeIndex]?.id;
|
|
204
|
-
if (sidebarComponentId) {
|
|
205
|
-
this.sidebar1ComponentId = sidebarComponentId;
|
|
206
|
-
}
|
|
207
|
-
await this.container?.updateComplete;
|
|
208
|
-
this.layout();
|
|
209
|
-
}
|
|
210
|
-
async open(item) {
|
|
211
|
-
if (this.compact)
|
|
212
|
-
this.hideSidebar();
|
|
213
|
-
dom.showElement(this.editorContainer);
|
|
214
|
-
const component = item.component;
|
|
215
|
-
if (component) {
|
|
216
|
-
item.id = this.components.register(item.id, item.component);
|
|
217
|
-
delete item.component;
|
|
218
|
-
this.editorContainer.open(item);
|
|
219
|
-
return component;
|
|
220
|
-
}
|
|
221
|
-
return new Promise((resolve, reject) => {
|
|
222
|
-
this.components.enqueueComponentResolution(item.id, resolve, reject);
|
|
223
|
-
this.editorContainer.open(item);
|
|
224
|
-
this.dispatchStateEvent();
|
|
225
|
-
});
|
|
226
|
-
}
|
|
227
|
-
async openDialog(options) {
|
|
228
|
-
return await this.dialogs.open(options);
|
|
229
|
-
}
|
|
230
|
-
openMenu(options) {
|
|
231
|
-
return this.commands.open(options);
|
|
232
|
-
}
|
|
233
|
-
openModalSidebar(options) {
|
|
234
|
-
return this.sidebars.openModalSidebar(options);
|
|
235
|
-
}
|
|
236
|
-
async toggleSidebar(open) {
|
|
237
|
-
open ?? (open = this.compact ? this.sidebarHost.parentElement != this.main : this.container.items[0].collapsed);
|
|
238
|
-
if (open)
|
|
239
|
-
this.showSidebar();
|
|
240
|
-
else
|
|
241
|
-
this.hideSidebar();
|
|
242
|
-
}
|
|
243
|
-
async hideSidebar() {
|
|
244
|
-
if (this.compact) {
|
|
245
|
-
if (this.sidebarHost.parentElement == this.main) {
|
|
246
|
-
dom.empty(this.main);
|
|
247
|
-
this.main.appendChild(this.editorContainer);
|
|
248
|
-
}
|
|
249
|
-
}
|
|
250
|
-
else {
|
|
251
|
-
await this.container.collapse(0, true);
|
|
252
|
-
}
|
|
253
|
-
this.layout();
|
|
254
|
-
}
|
|
255
|
-
async showSidebar() {
|
|
256
|
-
if (this.compact) {
|
|
257
|
-
if (this.sidebarHost.parentElement != this.main) {
|
|
258
|
-
dom.empty(this.main);
|
|
259
|
-
this.main.appendChild(this.sidebarHost);
|
|
260
|
-
}
|
|
261
|
-
}
|
|
262
|
-
else {
|
|
263
|
-
await this.container.collapse(0, false);
|
|
264
|
-
}
|
|
265
|
-
this.layout();
|
|
266
|
-
}
|
|
267
|
-
showAlert(options) {
|
|
268
|
-
return this.alerts.addAlert(options);
|
|
269
|
-
}
|
|
270
|
-
getState() {
|
|
271
|
-
const item = this.container?.items[0];
|
|
272
|
-
return {
|
|
273
|
-
sidebar: {
|
|
274
|
-
selectedItem: this.sidebar1ComponentId,
|
|
275
|
-
width: item?.size,
|
|
276
|
-
collapsed: !!item?.collapsed
|
|
277
|
-
},
|
|
278
|
-
layout: this.editorContainer?.model.getSourceData(),
|
|
279
|
-
dialogs: [...Array.from(this.dialogs.items.entries()).map(([id, dialog]) => Object.assign({ id: id }, dialog.getOptions()))],
|
|
280
|
-
components: [...this.components.components].reduce((acc, [id, component]) => {
|
|
281
|
-
if (component.getState) {
|
|
282
|
-
const componentState = component.getState();
|
|
283
|
-
if (componentState)
|
|
284
|
-
acc[id] = componentState;
|
|
285
|
-
}
|
|
286
|
-
return acc;
|
|
287
|
-
}, {})
|
|
288
|
-
};
|
|
289
|
-
}
|
|
290
|
-
async setState(state) {
|
|
291
|
-
this.state = state;
|
|
292
|
-
const selectedIndex = this.sourceData.sidemenu.items.findIndex(item => item.id == state.sidebar.selectedItem);
|
|
293
|
-
if (selectedIndex >= 0) {
|
|
294
|
-
this.sourceData.sidemenu.activeIndex = selectedIndex;
|
|
295
|
-
this.sidebar1ComponentId = state.sidebar.selectedItem;
|
|
296
|
-
}
|
|
297
|
-
this.sourceData.editorLayout = state.layout;
|
|
298
|
-
this._editorContainer = null;
|
|
299
|
-
this.requestUpdate();
|
|
300
|
-
await this.updateComplete;
|
|
301
|
-
this.sidemenu?.requestUpdate();
|
|
302
|
-
this.updateSidebarComponent();
|
|
303
|
-
this.updateMainComponent();
|
|
304
|
-
state.dialogs?.forEach(opt => this.openDialog(opt));
|
|
305
|
-
for (const k in state.components) {
|
|
306
|
-
this.components.setState(k, state.components[k]);
|
|
307
|
-
}
|
|
308
|
-
}
|
|
309
|
-
_onSidemenuSelect(e) {
|
|
310
|
-
const id = (this.sourceData.sidemenu.items ?? [])[e.index]?.id;
|
|
311
|
-
if (id == this.sidebar1ComponentId) {
|
|
312
|
-
this.toggleSidebar();
|
|
313
|
-
}
|
|
314
|
-
else {
|
|
315
|
-
this.toggleSidebar(true);
|
|
316
|
-
this.sidebar1ComponentId = id;
|
|
317
|
-
this.updateSidebarComponent();
|
|
318
|
-
}
|
|
319
|
-
this.dispatchStateEvent();
|
|
320
|
-
}
|
|
321
|
-
updateSidebarComponent() {
|
|
322
|
-
this.sidebarHost.componentId = this.sidebar1ComponentId;
|
|
323
|
-
}
|
|
324
|
-
updateMainComponent() {
|
|
325
|
-
this.container?.updateComponent(1);
|
|
326
|
-
}
|
|
327
|
-
async openSidebarComponent(id) {
|
|
328
|
-
this.sidebar1ComponentId = id.toString();
|
|
329
|
-
this.showSidebar();
|
|
330
|
-
this.updateSidebarComponent();
|
|
331
|
-
this.sidemenu.selectItem(id.toString());
|
|
332
|
-
await this.sidebarHost.updateComplete;
|
|
333
|
-
}
|
|
334
|
-
};
|
|
335
|
-
Bucket.styles = [style];
|
|
336
|
-
Bucket.uniqueId = 0;
|
|
337
|
-
Bucket.getUniqueId = () => ++Bucket_1.uniqueId;
|
|
338
|
-
__decorate([
|
|
339
|
-
query('og-overlay')
|
|
340
|
-
], Bucket.prototype, "overlay", void 0);
|
|
341
|
-
__decorate([
|
|
342
|
-
query('og-bucket-top')
|
|
343
|
-
], Bucket.prototype, "top", void 0);
|
|
344
|
-
__decorate([
|
|
345
|
-
query('og-bucket-sidemenu')
|
|
346
|
-
], Bucket.prototype, "sidemenu", void 0);
|
|
347
|
-
__decorate([
|
|
348
|
-
query('.body')
|
|
349
|
-
], Bucket.prototype, "body", void 0);
|
|
350
|
-
__decorate([
|
|
351
|
-
query('.main')
|
|
352
|
-
], Bucket.prototype, "main", void 0);
|
|
353
|
-
__decorate([
|
|
354
|
-
property({ type: Object })
|
|
355
|
-
], Bucket.prototype, "createComponent", void 0);
|
|
356
|
-
__decorate([
|
|
357
|
-
property({ type: Object })
|
|
358
|
-
], Bucket.prototype, "sourceData", void 0);
|
|
359
|
-
__decorate([
|
|
360
|
-
property({ type: Object })
|
|
361
|
-
], Bucket.prototype, "options", void 0);
|
|
362
|
-
__decorate([
|
|
363
|
-
property({ type: Object })
|
|
364
|
-
], Bucket.prototype, "logger", void 0);
|
|
365
|
-
__decorate([
|
|
366
|
-
property({ type: Boolean })
|
|
367
|
-
], Bucket.prototype, "compact", void 0);
|
|
368
|
-
Bucket = Bucket_1 = __decorate([
|
|
369
|
-
customElement('og-bucket')
|
|
370
|
-
], Bucket);
|
|
371
|
-
export { Bucket };
|
|
372
|
-
//# sourceMappingURL=bucket.js.map
|
package/dist/ui/bucket.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../src/ui/bucket.ts"],"names":[],"mappings":"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","sourcesContent":["import { \n\tdom, Layout, ListSelectEvent, ComponentFactory, SplitContainer, log, \n\tComponentId, Overlay, OmegaComponent, ComponentState, ShortcutManager \n} from '@omegagrid/core';\nimport { TabEvent, TabItem, TabSplitContainer, TabSplitContainerModel } from '@omegagrid/tabs';\nimport { CommandManager, CommandResult, OpenCommandsOptions } from '@omegagrid/commands';\nimport { html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport constants from '../constants';\nimport { BucketAlertOptions, BucketSource, BucketState, ModalSidebarOptions, OpenDialogOptions, OpenTabOptions } from '../types';\nimport { Sidemenu } from './sidemenu';\nimport style from './bucket.style';\nimport { BucketTop } from './top';\nimport { ComponentHost } from './componentHost';\nimport { BucketAlerts } from './bucket.alerts';\nimport { BucketOptions, initOptions } from '../options';\nimport { Sidebar } from './sidebar';\nimport { BucketComponents } from './bucket.components';\nimport { BucketSidebars } from './bucket.sidebars';\nimport { BucketDialogs } from './bucket.dialogs';\nimport { debounce } from 'ts-debounce';\n\nconst DEFAULT_SOURCE: BucketSource = {\n\ttop: {rightItems: []},\n\tsidemenu: {items: [], activeIndex: null},\n\tsidebar: {width: constants.SIDEBAR_WIDTH, collapsed: false},\n\teditorLayout: {items: []}\n};\n\nexport class BucketEvent extends Event {\n\ttab: TabItem;\n\tcomponentId: ComponentId;\n\n\tconstructor(type: string, args?: Partial<BucketEvent>) {\n\t\tsuper(`bucket.${type}`, {bubbles: true, composed: true});\n\t\tObject.assign(this, args);\n\t}\n\n}\n\n@customElement('og-bucket')\nexport class Bucket extends OmegaComponent<BucketState> implements Layout {\n\n\tstatic styles = [style];\n\tstatic uniqueId = 0;\n\tstatic getUniqueId = () => ++Bucket.uniqueId;\n\n\t@query('og-overlay')\n\toverlay: Overlay;\n\n\t@query('og-bucket-top')\n\ttop: BucketTop;\n\n\t@query('og-bucket-sidemenu')\n\tsidemenu: Sidemenu;\n\n\t@query('.body')\n\tbody: HTMLDivElement;\n\n\t@query('.main')\n\tmain: HTMLDivElement;\n\n\t@property({type: Object})\n\tcreateComponent: ComponentFactory;\n\n\t@property({type: Object})\n\tsourceData: BucketSource = DEFAULT_SOURCE;\n\n\t@property({type: Object})\n\toptions: BucketOptions;\n\n\t@property({type: Object})\n\tlogger: log.Logger = new log.Logger('Ωbucket');\n\n\t@property({type: Boolean})\n\tcompact = false;\n\n\tsidebar1ComponentId: string;\n\t\n\treadonly components: BucketComponents;\n\treadonly sidebars: BucketSidebars;\n\treadonly alerts: BucketAlerts;\n\treadonly dialogs: BucketDialogs;\n\treadonly commands: CommandManager;\n\treadonly shortcuts: ShortcutManager;\n\t\n\tprivate _activeComponentId: ComponentId;\n\tget activeComponentId() { return this._activeComponentId }\n\n\tprivate _container: SplitContainer;\n\tget container(): SplitContainer {\n\t\tif (this._container) return this._container;\n\t\tthis._container = dom.createElement<SplitContainer>('og-splitcontainer');\n\t\tthis._container.orientation = 'horizontal';\n\t\tthis._container.items = [{\n\t\t\tsize: this.sourceData.sidebar?.width || constants.SIDEBAR_WIDTH, \n\t\t\tcollapsed: this.sourceData.sidebar?.collapsed || false\n\t\t}, {size: null}];\n\t\tthis._container.createComponent = this._createSplitContainerComponent;\n\t\tthis._container.addEventListener('splitContainer.resize', this._onSplitContainerResize);\n\t\tthis._container.addEventListener('tab.beforeRemove', this._onTabBeforeRemove);\n\t\tthis._container.addEventListener('tab.remove', this._onTabRemove);\n\t\tthis._container.addEventListener('tab.select', this._onTabSelect);\n\t\treturn this._container;\n\t}\n\t\n\tprivate _editorContainer: TabSplitContainer;\n\tget editorContainer(): TabSplitContainer {\n\t\tif (this._editorContainer) return this._editorContainer;\n\t\tthis._editorContainer = dom.createElement<TabSplitContainer>('og-tabsplitcontainer');\n\t\tthis._editorContainer.style.height = '100%';\n\t\tthis._editorContainer.closable = true;\n\t\tthis._editorContainer.singleActive = true;\n\t\tthis._editorContainer.createComponent = this.createEditorComponent;\n\t\tthis._editorContainer.model = new TabSplitContainerModel(this.sourceData.editorLayout);\n\t\tthis._editorContainer.scrollableTabs = true;\n\t\treturn this._editorContainer;\n\t}\n\n\tprivate _sidebarHost: Sidebar;\n\tget sidebarHost() {\n\t\tif (this._sidebarHost) return this._sidebarHost;\n\t\tthis._sidebarHost = dom.createElement<Sidebar>('og-bucket-sidebar');\n\t\tthis._sidebarHost.bucket = this;\n\t\tthis._sidebarHost.componentId = this.sidebar1ComponentId;\n\t\treturn this._sidebarHost;\n\t}\n\n\tupdateContainerVisibility = debounce(() => {\n\t\tlet hasTabs = false;\n\t\tthis.editorContainer.walk((splitContainer, tabContainer) => {\n\t\t\tif (tabContainer.tabs?.items?.length) {\n\t\t\t\thasTabs = true;\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif (hasTabs) dom.showElement(this.editorContainer);\n\t\telse dom.hideElement(this.editorContainer);\n\t}, 100);\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.components = new BucketComponents(this);\n\t\tthis.sidebars = new BucketSidebars(this);\n\t\tthis.alerts = new BucketAlerts(this);\n\t\tthis.dialogs = new BucketDialogs(this);\n\t\tthis.commands = new CommandManager(this);\n\t\tthis.shortcuts = new ShortcutManager(this);\n\n\t\tthis.options = initOptions();\n\t\tthis.logger.info('init');\n\n\t\tthis.addEventListener('state', (e: Event) => {\n\t\t\tif (e.target == this) return;\n\t\t\te.stopPropagation();\n\t\t\tthis.dispatchStateEvent();\n\t\t});\n\t}\n\n\tshowOverlay = () => this.overlay.show(this.body);\n\thideOverlay = () => this.overlay.hide();\n\n\t_onWindowBeforeUnload = (e: BeforeUnloadEvent) => {\n\t\tif (!this.components.hasUnsavedComponents) return;\n\t\te.preventDefault();\n\t\te.returnValue = '';\n\t}\n\t\n\tconnectedCallback() {\n\t\tsuper.connectedCallback();\n\t\tthis.tabIndex = 0;\n\t\tthis.logger.info('connected');\n\t\twindow.addEventListener('beforeunload', this._onWindowBeforeUnload);\n\t}\n\n\tdisconnectedCallback() {\n\t\twindow.removeEventListener('beforeunload', this._onWindowBeforeUnload);\n\t}\n\n\tlayout() {\n\t\tthis.container?.layout();\n\t\tthis.top?.layout();\n\t}\n\n\tsetSourceData(sourceData: BucketSource) {\n\t\tthis.sourceData = sourceData;\n\t\tif (sourceData.options) {\n\t\t\tthis.options = initOptions(sourceData.options, this.options);\n\t\t}\n\t}\n\n\tasync updated() {\n\t\tconst mainContainer = this.compact ? this.editorContainer : this.container;\n\t\tif (mainContainer.parentElement != this.main) {\n\t\t\tdom.empty(this.main);\n\t\t\tthis.main.appendChild(mainContainer);\n\t\t\tmainContainer.requestUpdate();\n\t\t}\n\n\t\tconst sidebarComponentId = (this.sourceData.sidemenu.items ?? [])[this.sourceData.sidemenu.activeIndex]?.id;\n\t\tif (sidebarComponentId) {\n\t\t\tthis.sidebar1ComponentId = sidebarComponentId;\n\t\t}\n\t\t\n\t\tawait this.container?.updateComplete;\n\n\t\tthis.layout();\n\t}\n\n\tasync open(item: OpenTabOptions) {\n\t\tif (this.compact) this.hideSidebar();\n\n\t\tdom.showElement(this.editorContainer);\n\n\t\tconst component = item.component;\n\t\tif (component) {\n\t\t\titem.id = this.components.register(item.id, item.component);\n\t\t\tdelete item.component;\n\t\t\tthis.editorContainer.open(item);\n\t\t\treturn component;\n\t\t}\n\n\t\treturn new Promise<HTMLElement>((resolve, reject) => {\n\t\t\tthis.components.enqueueComponentResolution(item.id, resolve, reject);\n\t\t\tthis.editorContainer.open(item);\n\t\t\tthis.dispatchStateEvent();\n\t\t});\n\t}\n\n\tasync openDialog(options: OpenDialogOptions) {\n\t\treturn await this.dialogs.open(options);\n\t}\n\n\topenMenu(options: OpenCommandsOptions): Promise<CommandResult|null> {\n\t\treturn this.commands.open(options);\n\t}\n\n\topenModalSidebar(options: ModalSidebarOptions) {\n\t\treturn this.sidebars.openModalSidebar(options);\n\t}\n\n\tasync toggleSidebar(open?: boolean) {\n\t\topen ??= this.compact ? this.sidebarHost.parentElement != this.main : this.container.items[0].collapsed;\n\t\tif (open) this.showSidebar();\n\t\telse this.hideSidebar();\n\t}\n\n\tasync hideSidebar() {\n\t\tif (this.compact) {\n\t\t\tif (this.sidebarHost.parentElement == this.main) {\n\t\t\t\tdom.empty(this.main);\n\t\t\t\tthis.main.appendChild(this.editorContainer);\n\t\t\t}\n\t\t} else {\n\t\t\tawait this.container.collapse(0, true);\n\t\t}\n\n\t\tthis.layout();\n\t}\n\n\tasync showSidebar() {\n\t\tif (this.compact) {\n\t\t\tif (this.sidebarHost.parentElement != this.main) {\n\t\t\t\tdom.empty(this.main);\n\t\t\t\tthis.main.appendChild(this.sidebarHost);\n\t\t\t}\n\t\t} else {\n\t\t\tawait this.container.collapse(0, false);\n\t\t}\n\n\t\tthis.layout();\n\t}\n\n\tshowAlert(options: BucketAlertOptions) {\n\t\treturn this.alerts.addAlert(options);\n\t}\n\n\tcreateEditorComponent = (id: ComponentId) => {\n\t\tconst component = dom.createElement<ComponentHost>('og-bucket-component-host');\n\t\tcomponent.componentId = id;\n\t\tcomponent.bucket = this;\n\t\treturn component;\n\t}\n\n\t_createSplitContainerComponent: ComponentFactory = (index: ComponentId) => {\n\t\tlet component: HTMLElement;\n\t\tif (index == 0) {\n\t\t\t// primary sidebar\n\t\t\tthis.logger.info('create primary sidebar');\n\t\t\treturn this.sidebarHost;\n\t\t} else if (index == 1) {\n\t\t\t// editor split container\n\t\t\tthis.logger.info('create editor container');\n\t\t\treturn this.editorContainer;\n\t\t}\n\t\t\n\t\tif (!component) {\n\t\t\tcomponent = dom.createElement<HTMLElement>('div');\n\t\t\tcomponent.innerHTML = 'empty';\n\t\t}\n\n\t\treturn component;\n\t}\n\n\tgetState(): BucketState {\n\t\tconst item = this.container?.items[0];\n\t\treturn {\n\t\t\tsidebar: {\n\t\t\t\tselectedItem: this.sidebar1ComponentId,\n\t\t\t\twidth: item?.size,\n\t\t\t\tcollapsed: !!item?.collapsed\n\t\t\t},\n\t\t\tlayout: this.editorContainer?.model.getSourceData(),\n\t\t\tdialogs: [...Array.from(this.dialogs.items.entries()).map(\n\t\t\t\t([id, dialog]) => Object.assign({id: id}, dialog.getOptions())\n\t\t\t)],\n\t\t\tcomponents: [...this.components.components].reduce((acc, [id, component]) => {\n\t\t\t\tif ((component as OmegaComponent).getState) {\n\t\t\t\t\tconst componentState = (component as OmegaComponent).getState();\n\t\t\t\t\tif (componentState) acc[id] = componentState;\n\t\t\t\t}\n\t\t\t\treturn acc;\n\t\t\t}, {} as Record<ComponentId, ComponentState>)\n\t\t};\n\t}\n\n\tasync setState(state: BucketState) {\n\t\tthis.state = state;\n\t\tconst selectedIndex = this.sourceData.sidemenu.items.findIndex(item => item.id == state.sidebar.selectedItem);\n\t\tif (selectedIndex >= 0) {\n\t\t\tthis.sourceData.sidemenu.activeIndex = selectedIndex;\n\t\t\tthis.sidebar1ComponentId = state.sidebar.selectedItem as string;\t\n\t\t}\n\t\tthis.sourceData.editorLayout = state.layout;\n\t\tthis._editorContainer = null;\n\t\tthis.requestUpdate();\n\t\tawait this.updateComplete;\n\t\tthis.sidemenu?.requestUpdate();\n\t\tthis.updateSidebarComponent();\n\t\tthis.updateMainComponent();\n\t\tstate.dialogs?.forEach(opt => this.openDialog(opt));\n\n\t\tfor (const k in state.components) {\n\t\t\tthis.components.setState(k, state.components[k]); \n\t\t}\n\t}\n\n\t_onSplitContainerResize = () => {\n\t\tthis.top?.layout();\n\t\tthis.dispatchStateEvent();\n\t}\n\n\t_onTabRemove = (e: TabEvent) => {\n\t\tthis.components.unregister(e.tab.id);\n\t\tthis.dispatchEvent(new BucketEvent('close', {tab: e.tab, componentId: e.tab.id}));\n\t\tthis.dispatchStateEvent();\n\t}\n\n\t_onTabBeforeRemove = (e: TabEvent) => {\n\t\tif (this.components.unsavedComponents.has(e.tab.id)) {\n\t\t\te.preventDefault();\n\t\t\tthis.openMenu({text: 'Discard changes and close tab?', content: 'yes_no'}).then(answer => {\n\t\t\t\tif (answer?.command?.id == 'Y') {\n\t\t\t\t\tthis.components.unsavedComponents.delete(e.tab.id);\n\t\t\t\t\te.tabs.removeTab(e.index, true);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t_onTabSelect = (e: TabEvent) => {\n\t\tif (e.tabs.topLevelComponent == this.editorContainer) {\n\t\t\tthis._activeComponentId = e.tab?.id;\n\t\t\tthis.dispatchEvent(new BucketEvent('activate', {tab: e.tab, componentId: e.tab?.id}));\n\t\t\tthis.dispatchStateEvent();\n\t\t}\n\t}\n\n\t_onSidemenuSelect(e: ListSelectEvent) {\n\t\tconst id = (this.sourceData.sidemenu.items ?? [])[e.index]?.id;\n\t\tif (id == this.sidebar1ComponentId) {\n\t\t\tthis.toggleSidebar();\n\t\t} else {\n\t\t\tthis.toggleSidebar(true);\n\t\t\tthis.sidebar1ComponentId = id;\n\t\t\tthis.updateSidebarComponent();\n\t\t}\n\t\tthis.dispatchStateEvent();\n\t}\n\n\tupdateSidebarComponent() {\n\t\tthis.sidebarHost.componentId = this.sidebar1ComponentId;\n\t}\n\n\tupdateMainComponent() {\n\t\tthis.container?.updateComponent(1);\n\t}\n\n\tasync openSidebarComponent(id: ComponentId) {\n\t\tthis.sidebar1ComponentId = id.toString();\n\t\tthis.showSidebar();\n\t\tthis.updateSidebarComponent();\n\t\tthis.sidemenu.selectItem(id.toString());\n\t\tawait this.sidebarHost.updateComplete;\n\t}\n\n\trender = () => html`\n\t\t<og-bucket-top></og-bucket-top>\n\t\t\n\t\t<div class=\"body\">\t\n\t\t\t<og-overlay></og-overlay>\n\t\t\t\n\t\t\t<og-bucket-sidemenu\n\t\t\t\t@select=${this._onSidemenuSelect}\n\t\t\t\t.settings=${this.sourceData.sidemenu}>\n\t\t\t</og-bucket-sidemenu>\n\n\t\t\t<div class=\"main\"></div>\n\t\t</div>\n\t`;\n\n}"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ComponentId, ComponentSlice } from "@omegagrid/core";
|
|
2
|
-
import { Bucket } from "./bucket";
|
|
3
|
-
import { ModalSidebarOptions } from "../types";
|
|
4
|
-
import { ModalSidebar } from "./modalSidebar";
|
|
5
|
-
export declare class BucketSidebars extends ComponentSlice<Bucket> {
|
|
6
|
-
modalSidebars: ModalSidebarOptions[];
|
|
7
|
-
readonly modalSidebarComponents: Map<ComponentId, ModalSidebar>;
|
|
8
|
-
get bucket(): Bucket;
|
|
9
|
-
get components(): import("./bucket.components").BucketComponents;
|
|
10
|
-
createModalSidebarComponent: (options: ModalSidebarOptions) => ModalSidebar;
|
|
11
|
-
updateModalSidebarPositions(): void;
|
|
12
|
-
openModalSidebar(options: ModalSidebarOptions): Promise<HTMLElement>;
|
|
13
|
-
closeModalSidebar(all?: boolean): Promise<void>;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=bucket.sidebars.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.sidebars.d.ts","sourceRoot":"","sources":["../../src/ui/bucket.sidebars.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAO,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,qBAAa,cAAe,SAAQ,cAAc,CAAC,MAAM,CAAC;IAEzD,aAAa,EAAE,mBAAmB,EAAE,CAAM;IAC1C,QAAQ,CAAC,sBAAsB,iCAAwC;IAEvE,IAAI,MAAM,WAA4B;IACtC,IAAI,UAAU,mDAAoC;IAElD,2BAA2B,GAAI,SAAS,mBAAmB,kBAQ1D;IAED,2BAA2B;IA2BrB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB;IAiB7C,iBAAiB,CAAC,GAAG,UAAQ;CAYnC"}
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import { ComponentSlice, dom } from "@omegagrid/core";
|
|
2
|
-
import { Bucket } from "./bucket";
|
|
3
|
-
import constants from "../constants";
|
|
4
|
-
export class BucketSidebars extends ComponentSlice {
|
|
5
|
-
constructor() {
|
|
6
|
-
super(...arguments);
|
|
7
|
-
this.modalSidebars = [];
|
|
8
|
-
this.modalSidebarComponents = new Map();
|
|
9
|
-
this.createModalSidebarComponent = (options) => {
|
|
10
|
-
const component = dom.createElement('og-bucket-modal-sidebar');
|
|
11
|
-
component.className = options.position ?? 'left';
|
|
12
|
-
component.componentId = options.id;
|
|
13
|
-
component.caption = options.caption;
|
|
14
|
-
component.closable = options.closable == null || options.closable;
|
|
15
|
-
component.bucket = this.bucket;
|
|
16
|
-
return component;
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
get bucket() { return this.component; }
|
|
20
|
-
get components() { return this.bucket.components; }
|
|
21
|
-
updateModalSidebarPositions() {
|
|
22
|
-
if (this.modalSidebars.length > 0)
|
|
23
|
-
this.bucket.showOverlay();
|
|
24
|
-
else
|
|
25
|
-
this.bucket.hideOverlay();
|
|
26
|
-
const left = this.bucket.compact
|
|
27
|
-
? this.bucket.sidemenu.offsetWidth
|
|
28
|
-
: (this.bucket.container.containers[0].offsetWidth + this.bucket.sidemenu.offsetWidth);
|
|
29
|
-
const right = 0;
|
|
30
|
-
let lCount = 0, rCount = 0;
|
|
31
|
-
this.modalSidebars.forEach(async (options) => {
|
|
32
|
-
const component = this.modalSidebarComponents.get(options.id);
|
|
33
|
-
const rPos = options.position == 'right';
|
|
34
|
-
const index = rPos ? rCount : lCount;
|
|
35
|
-
if (!component)
|
|
36
|
-
return;
|
|
37
|
-
dom.setZIndex(component, 500 + index);
|
|
38
|
-
dom.setSize(component, { w: options.width || constants.SIDEBAR_WIDTH });
|
|
39
|
-
if (rPos) {
|
|
40
|
-
rCount++;
|
|
41
|
-
dom.setPosition(component, { t: 0, r: right + index * 20, b: 0 });
|
|
42
|
-
}
|
|
43
|
-
else {
|
|
44
|
-
dom.setPosition(component, { t: 0, l: left + index * 20, b: 0 });
|
|
45
|
-
lCount++;
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
async openModalSidebar(options) {
|
|
50
|
-
this.bucket.showOverlay();
|
|
51
|
-
this.modalSidebars.push(options);
|
|
52
|
-
if (options.component) {
|
|
53
|
-
options.id = options.id || `temp-${Bucket.getUniqueId()}`;
|
|
54
|
-
this.components.register(options.id, options.component);
|
|
55
|
-
}
|
|
56
|
-
return new Promise((resolve, reject) => {
|
|
57
|
-
this.components.enqueueComponentResolution(options.id, resolve, reject);
|
|
58
|
-
const component = this.createModalSidebarComponent(options);
|
|
59
|
-
this.modalSidebarComponents.set(options.id, component);
|
|
60
|
-
this.bucket.body.appendChild(component);
|
|
61
|
-
this.updateModalSidebarPositions();
|
|
62
|
-
});
|
|
63
|
-
}
|
|
64
|
-
async closeModalSidebar(all = false) {
|
|
65
|
-
const targetCount = all ? 0 : this.modalSidebars.length - 1;
|
|
66
|
-
while (this.modalSidebars.length > targetCount) {
|
|
67
|
-
const options = this.modalSidebars.pop();
|
|
68
|
-
if (!options)
|
|
69
|
-
continue;
|
|
70
|
-
this.modalSidebarComponents.get(options.id).remove();
|
|
71
|
-
this.modalSidebarComponents.delete(options.id);
|
|
72
|
-
this.components.unregister(options.id);
|
|
73
|
-
}
|
|
74
|
-
this.updateModalSidebarPositions();
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
//# sourceMappingURL=bucket.sidebars.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.sidebars.js","sourceRoot":"","sources":["../../src/ui/bucket.sidebars.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentId, ComponentSlice, dom } from \"@omegagrid/core\";\nimport { Bucket } from \"./bucket\";\nimport { ModalSidebarOptions } from \"../types\";\nimport { ModalSidebar } from \"./modalSidebar\";\nimport constants from \"../constants\";\n\nexport class BucketSidebars extends ComponentSlice<Bucket> {\n\n\tmodalSidebars: ModalSidebarOptions[] = [];\n\treadonly modalSidebarComponents = new Map<ComponentId, ModalSidebar>();\n\n\tget bucket() { return this.component }\n\tget components() { return this.bucket.components }\n\n\tcreateModalSidebarComponent = (options: ModalSidebarOptions) => {\n\t\tconst component = dom.createElement<ModalSidebar>('og-bucket-modal-sidebar');\n\t\tcomponent.className = options.position ?? 'left';\n\t\tcomponent.componentId = options.id;\n\t\tcomponent.caption = options.caption;\n\t\tcomponent.closable = options.closable == null || options.closable;\n\t\tcomponent.bucket = this.bucket;\n\t\treturn component;\n\t}\n\n\tupdateModalSidebarPositions() {\n\t\tif (this.modalSidebars.length > 0) this.bucket.showOverlay();\n\t\telse this.bucket.hideOverlay();\n\t\tconst left = this.bucket.compact \n\t\t\t? this.bucket.sidemenu.offsetWidth\n\t\t\t: (this.bucket.container.containers[0].offsetWidth + this.bucket.sidemenu.offsetWidth);\n\t\tconst right = 0;\n\t\tlet lCount = 0, rCount = 0;\n\t\tthis.modalSidebars.forEach(async (options) => {\n\t\t\tconst component = this.modalSidebarComponents.get(options.id);\n\t\t\tconst rPos = options.position == 'right';\n\t\t\tconst index = rPos ? rCount : lCount;\n\t\t\tif (!component) return;\n\n\t\t\tdom.setZIndex(component, 500 + index);\n\t\t\tdom.setSize(component, {w: options.width || constants.SIDEBAR_WIDTH});\n\n\t\t\tif (rPos) {\n\t\t\t\trCount++;\n\t\t\t\tdom.setPosition(component, {t: 0, r: right + index * 20, b: 0});\n\t\t\t} else {\n\t\t\t\tdom.setPosition(component, {t: 0, l: left + index * 20, b: 0});\n\t\t\t\tlCount++;\n\t\t\t}\n\t\t});\n\t}\n\n\tasync openModalSidebar(options: ModalSidebarOptions) {\n\t\tthis.bucket.showOverlay();\n\t\tthis.modalSidebars.push(options);\n\t\tif (options.component) {\n\t\t\toptions.id = options.id || `temp-${Bucket.getUniqueId()}`;\n\t\t\tthis.components.register(options.id, options.component);\n\t\t}\n\n\t\treturn new Promise<HTMLElement>((resolve, reject) => {\n\t\t\tthis.components.enqueueComponentResolution(options.id, resolve, reject);\n\t\t\tconst component = this.createModalSidebarComponent(options);\n\t\t\tthis.modalSidebarComponents.set(options.id, component);\n\t\t\tthis.bucket.body.appendChild(component);\n\t\t\tthis.updateModalSidebarPositions();\n\t\t});\n\t}\n\t\n\tasync closeModalSidebar(all = false) {\n\t\tconst targetCount = all ? 0 : this.modalSidebars.length - 1;\n\t\twhile (this.modalSidebars.length > targetCount) {\n\t\t\tconst options = this.modalSidebars.pop();\n\t\t\tif (!options) continue;\n\t\t\tthis.modalSidebarComponents.get(options.id).remove();\n\t\t\tthis.modalSidebarComponents.delete(options.id);\n\t\t\tthis.components.unregister(options.id);\n\t\t}\n\t\tthis.updateModalSidebarPositions();\n\t}\n\n}\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bucket.style.d.ts","sourceRoot":"","sources":["../../src/ui/bucket.style.ts"],"names":[],"mappings":";AAGA,wBAsFE"}
|