@omegagrid/bucket 0.6.74 → 0.6.75

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.
@@ -17,7 +17,6 @@ export declare class BucketEvent extends Event {
17
17
  constructor(type: string, args?: Partial<BucketEvent>);
18
18
  }
19
19
  export declare class Bucket extends OmegaComponent<BucketState> implements Layout {
20
- #private;
21
20
  static styles: import("lit").CSSResult[];
22
21
  static uniqueId: number;
23
22
  static getUniqueId: () => number;
@@ -25,12 +24,13 @@ export declare class Bucket extends OmegaComponent<BucketState> implements Layou
25
24
  menu: CommandWindow;
26
25
  top: BucketTop;
27
26
  sidemenu: Sidemenu;
28
- container: SplitContainer;
29
27
  body: HTMLDivElement;
28
+ main: HTMLDivElement;
30
29
  createComponent: ComponentFactory;
31
30
  sourceData: BucketSource;
32
31
  options: BucketOptions;
33
32
  logger: log.Logger;
33
+ compact: boolean;
34
34
  sidebar1ComponentId: string;
35
35
  readonly components: BucketComponents;
36
36
  readonly sidebars: BucketSidebars;
@@ -38,8 +38,12 @@ export declare class Bucket extends OmegaComponent<BucketState> implements Layou
38
38
  readonly dialogs: BucketDialogs;
39
39
  private _activeComponentId;
40
40
  get activeComponentId(): ComponentId;
41
+ private _container;
42
+ get container(): SplitContainer;
41
43
  private _editorContainer;
42
44
  get editorContainer(): TabSplitContainer;
45
+ private _sidebarHost;
46
+ get sidebarHost(): Sidebar;
43
47
  updateContainerVisibility: {
44
48
  (this: unknown, ...args: [] & any[]): Promise<void>;
45
49
  cancel: (reason?: any) => void;
@@ -52,7 +56,7 @@ export declare class Bucket extends OmegaComponent<BucketState> implements Layou
52
56
  disconnectedCallback(): void;
53
57
  layout(): void;
54
58
  setSourceData(sourceData: BucketSource): void;
55
- firstUpdated(): Promise<void>;
59
+ updated(): Promise<void>;
56
60
  open(item: TabItem): Promise<HTMLElement>;
57
61
  openDialog(options: OpenDialogOptions): Promise<import("../types").BucketDialog>;
58
62
  openMenu(options: BucketMenuOptions): Promise<Command | null>;
@@ -62,7 +66,6 @@ export declare class Bucket extends OmegaComponent<BucketState> implements Layou
62
66
  showSidebar(): Promise<void>;
63
67
  showAlert(options: BucketAlertOptions): Promise<void>;
64
68
  createEditorComponent: (id: ComponentId) => ComponentHost;
65
- getSidebarHost(): Sidebar;
66
69
  _createSplitContainerComponent: ComponentFactory;
67
70
  getState(): BucketState;
68
71
  setState(state: BucketState): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/ui/bucket.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bucket.d.ts","sourceRoot":"","sources":["../../src/ui/bucket.ts"],"names":[],"mappings":"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"}
package/dist/ui/bucket.js CHANGED
@@ -4,18 +4,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
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
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
8
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
9
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
10
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
11
- };
12
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
13
- if (kind === "m") throw new TypeError("Private method is not writable");
14
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
15
- if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
16
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
17
- };
18
- var _Bucket_sidebarHost;
19
7
  var Bucket_1;
20
8
  import { dom, log, OmegaComponent } from '@omegagrid/core';
21
9
  import { TabSplitContainerModel } from '@omegagrid/tabs';
@@ -27,7 +15,6 @@ import style from './bucket.style';
27
15
  import { commonMenus } from './commonMenus';
28
16
  import { BucketAlerts } from './bucket.alerts';
29
17
  import { initOptions } from '../options';
30
- import { guard } from 'lit/directives/guard.js';
31
18
  import { BucketComponents } from './bucket.components';
32
19
  import { BucketSidebars } from './bucket.sidebars';
33
20
  import { BucketDialogs } from './bucket.dialogs';
@@ -45,6 +32,22 @@ export class BucketEvent extends Event {
45
32
  }
46
33
  let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
47
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: constants.SIDEBAR_WIDTH },
42
+ { size: null }
43
+ ];
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
+ }
48
51
  get editorContainer() {
49
52
  if (this._editorContainer)
50
53
  return this._editorContainer;
@@ -56,10 +59,19 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
56
59
  this._editorContainer.model = new TabSplitContainerModel(this.sourceData.editorLayout);
57
60
  return this._editorContainer;
58
61
  }
62
+ get sidebarHost() {
63
+ if (this._sidebarHost)
64
+ return this._sidebarHost;
65
+ this._sidebarHost = dom.createElement('og-bucket-sidebar');
66
+ this._sidebarHost.bucket = this;
67
+ this._sidebarHost.componentId = this.sidebar1ComponentId;
68
+ return this._sidebarHost;
69
+ }
59
70
  constructor() {
60
71
  super();
61
72
  this.sourceData = DEFAULT_SOURCE;
62
73
  this.logger = new log.Logger('Ωbucket');
74
+ this.compact = false;
63
75
  this.updateContainerVisibility = debounce(() => {
64
76
  let hasTabs = false;
65
77
  this.editorContainer.walk((splitContainer, tabContainer) => {
@@ -87,13 +99,12 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
87
99
  component.bucket = this;
88
100
  return component;
89
101
  };
90
- _Bucket_sidebarHost.set(this, void 0);
91
102
  this._createSplitContainerComponent = (index) => {
92
103
  let component;
93
104
  if (index == 0) {
94
105
  // primary sidebar
95
106
  this.logger.info('create primary sidebar');
96
- return this.getSidebarHost();
107
+ return this.sidebarHost;
97
108
  }
98
109
  else if (index == 1) {
99
110
  // editor split container
@@ -135,9 +146,9 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
135
146
  };
136
147
  this.render = () => html `
137
148
  <og-bucket-top></og-bucket-top>
138
- <og-commands id="commandMenu" .target="${this}"></og-commands>
149
+ <og-commands .target="${this}"></og-commands>
139
150
 
140
- <div id="body">
151
+ <div class="body">
141
152
  <og-overlay></og-overlay>
142
153
 
143
154
  <og-bucket-sidemenu
@@ -145,20 +156,7 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
145
156
  .settings=${this.sourceData.sidemenu}>
146
157
  </og-bucket-sidemenu>
147
158
 
148
- ${guard([], () => html `
149
- <og-splitcontainer
150
- orientation="horizontal"
151
- @splitContainer.resize=${this._onSplitContainerResize}
152
- @tab.beforeRemove=${this._onTabBeforeRemove}
153
- @tab.remove=${this._onTabRemove}
154
- @tab.select=${this._onTabSelect}
155
- .items="${[
156
- { size: constants.SIDEBAR_WIDTH },
157
- { size: null }
158
- ]}"
159
- .createComponent="${this._createSplitContainerComponent}">
160
- </og-splitcontainer>
161
- `)}
159
+ <div class="main"></div>
162
160
  </div>
163
161
  `;
164
162
  this.components = new BucketComponents(this);
@@ -189,11 +187,19 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
189
187
  setSourceData(sourceData) {
190
188
  this.sourceData = sourceData;
191
189
  }
192
- async firstUpdated() {
190
+ async updated() {
191
+ const mainContainer = this.compact ? this.editorContainer : this.container;
192
+ if (mainContainer.parentElement != this.main) {
193
+ dom.empty(this.main);
194
+ this.main.appendChild(mainContainer);
195
+ mainContainer.requestUpdate();
196
+ }
193
197
  const sidebarComponentId = (this.sourceData.sidemenu.items ?? [])[this.sourceData.sidemenu.activeIndex]?.id;
194
198
  if (sidebarComponentId) {
195
199
  this.sidebar1ComponentId = sidebarComponentId;
196
200
  }
201
+ await this.container?.updateComplete;
202
+ this.layout();
197
203
  }
198
204
  async open(item) {
199
205
  dom.showElement(this.editorContainer);
@@ -234,28 +240,39 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
234
240
  return this.sidebars.openModalSidebar(options);
235
241
  }
236
242
  async toggleSidebar(open) {
237
- await this.container.collapse(0, open ? false : !this.container.items[0].collapsed);
238
- this.layout();
243
+ open ?? (open = this.compact ? this.sidebarHost.parentElement != this.main : this.container.items[0].collapsed);
244
+ if (open)
245
+ this.showSidebar();
246
+ else
247
+ this.hideSidebar();
239
248
  }
240
249
  async hideSidebar() {
241
- await this.container.collapse(0, true);
250
+ if (this.compact) {
251
+ if (this.sidebarHost.parentElement == this.main) {
252
+ dom.empty(this.main);
253
+ this.main.appendChild(this.editorContainer);
254
+ }
255
+ }
256
+ else {
257
+ await this.container.collapse(0, true);
258
+ }
242
259
  this.layout();
243
260
  }
244
261
  async showSidebar() {
245
- await this.container.collapse(0, false);
262
+ if (this.compact) {
263
+ if (this.sidebarHost.parentElement != this.main) {
264
+ dom.empty(this.main);
265
+ this.main.appendChild(this.sidebarHost);
266
+ }
267
+ }
268
+ else {
269
+ await this.container.collapse(0, false);
270
+ }
246
271
  this.layout();
247
272
  }
248
273
  showAlert(options) {
249
274
  return this.alerts.addAlert(options);
250
275
  }
251
- getSidebarHost() {
252
- if (__classPrivateFieldGet(this, _Bucket_sidebarHost, "f"))
253
- return __classPrivateFieldGet(this, _Bucket_sidebarHost, "f");
254
- __classPrivateFieldSet(this, _Bucket_sidebarHost, dom.createElement('og-bucket-sidebar'), "f");
255
- __classPrivateFieldGet(this, _Bucket_sidebarHost, "f").bucket = this;
256
- __classPrivateFieldGet(this, _Bucket_sidebarHost, "f").componentId = this.sidebar1ComponentId;
257
- return __classPrivateFieldGet(this, _Bucket_sidebarHost, "f");
258
- }
259
276
  getState() {
260
277
  const item = this.container?.items[0];
261
278
  return {
@@ -308,13 +325,12 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
308
325
  this.dispatchStateEvent();
309
326
  }
310
327
  updateSidebarComponent() {
311
- this.getSidebarHost().componentId = this.sidebar1ComponentId;
328
+ this.sidebarHost.componentId = this.sidebar1ComponentId;
312
329
  }
313
330
  updateMainComponent() {
314
331
  this.container?.updateComponent(1);
315
332
  }
316
333
  };
317
- _Bucket_sidebarHost = new WeakMap();
318
334
  Bucket.styles = [style];
319
335
  Bucket.uniqueId = 0;
320
336
  Bucket.getUniqueId = () => ++Bucket_1.uniqueId;
@@ -322,7 +338,7 @@ __decorate([
322
338
  query('og-overlay')
323
339
  ], Bucket.prototype, "overlay", void 0);
324
340
  __decorate([
325
- query('#commandMenu')
341
+ query('og-commands')
326
342
  ], Bucket.prototype, "menu", void 0);
327
343
  __decorate([
328
344
  query('og-bucket-top')
@@ -331,11 +347,11 @@ __decorate([
331
347
  query('og-bucket-sidemenu')
332
348
  ], Bucket.prototype, "sidemenu", void 0);
333
349
  __decorate([
334
- query('og-splitcontainer')
335
- ], Bucket.prototype, "container", void 0);
336
- __decorate([
337
- query('#body')
350
+ query('.body')
338
351
  ], Bucket.prototype, "body", void 0);
352
+ __decorate([
353
+ query('.main')
354
+ ], Bucket.prototype, "main", void 0);
339
355
  __decorate([
340
356
  property({ type: Object })
341
357
  ], Bucket.prototype, "createComponent", void 0);
@@ -348,6 +364,9 @@ __decorate([
348
364
  __decorate([
349
365
  property({ type: Object })
350
366
  ], Bucket.prototype, "logger", void 0);
367
+ __decorate([
368
+ property({ type: Boolean })
369
+ ], Bucket.prototype, "compact", void 0);
351
370
  Bucket = Bucket_1 = __decorate([
352
371
  customElement('og-bucket')
353
372
  ], Bucket);
@@ -1 +1 @@
1
- {"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../src/ui/bucket.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, Layout, ListSelectEvent, ComponentFactory, SplitContainer, log, ComponentId, Overlay, OmegaComponent, ComponentState } from '@omegagrid/core';\nimport { TabEvent, TabItem, TabSplitContainer, TabSplitContainerModel } from '@omegagrid/tabs';\nimport { CommandWindow, CommandEvent, Command, Commands } from '@omegagrid/commands';\nimport { html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport constants from '../constants';\nimport { BucketAlertOptions, BucketMenuOptions, BucketSource, BucketState, ModalSidebarOptions, OpenDialogOptions } from '../types';\nimport { Sidemenu } from './sidemenu';\nimport style from './bucket.style';\nimport { BucketTop } from './top';\nimport { ComponentHost } from './componentHost';\nimport { commonMenus } from './commonMenus';\nimport { BucketAlerts } from './bucket.alerts';\nimport { BucketOptions, initOptions } from '../options';\nimport { guard } from 'lit/directives/guard.js';\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\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('#commandMenu')\n\tmenu: CommandWindow;\n\n\t@query('og-bucket-top')\n\ttop: BucketTop;\n\n\t@query('og-bucket-sidemenu')\n\tsidemenu: Sidemenu;\n\n\t@query('og-splitcontainer')\n\tcontainer: SplitContainer;\n\n\t@query('#body')\n\tbody: 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\tsidebar1ComponentId: string;\n\t\n\treadonly components: BucketComponents;\n\treadonly sidebars: BucketSidebars;\n\treadonly alerts: BucketAlerts;\n\treadonly dialogs: BucketDialogs;\n\t\n\tprivate _activeComponentId: ComponentId;\n\tget activeComponentId() { return this._activeComponentId }\n\t\n\tprivate _editorContainer: TabSplitContainer;\n\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\treturn this._editorContainer;\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\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\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.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}\n\n\tasync firstUpdated() {\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}\n\n\tasync open(item: TabItem) {\n\t\tdom.showElement(this.editorContainer);\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\tasync openMenu(options: BucketMenuOptions): Promise<Command|null> {\n\t\tthis.logger.info('open menu');\n\t\tlet resolveCallback: (command: Command|null) => void;\n\t\tconst onClose = () => {\n\t\t\tthis.menu.removeEventListener('command.exec', onExec);\n\t\t\tthis.menu.removeEventListener('command.close', onClose);\n\t\t\tresolveCallback(new Command({id: null}));\n\t\t}\n\t\tconst onExec = (e: CommandEvent) => {\n\t\t\tthis.menu.removeEventListener('command.exec', onExec);\n\t\t\tthis.menu.removeEventListener('command.close', onClose);\n\t\t\tresolveCallback(e.command);\n\t\t}\n\n\t\treturn new Promise(resolve => {\n\t\t\tresolveCallback = resolve;\n\t\t\tthis.menu.addEventListener('command.exec', onExec);\n\t\t\tthis.menu.addEventListener('command.close', onClose);\n\t\t\tthis.menu.text = options.text;\n\t\t\tthis.menu.open();\n\t\t\tthis.menu.commands = options.content instanceof Commands\n\t\t\t\t? options.content\n\t\t\t\t: new Commands(commonMenus[options.content]);\n\t\t});\n\t}\n\n\topenModalSidebar(options: ModalSidebarOptions) {\n\t\treturn this.sidebars.openModalSidebar(options);\n\t}\n\n\tasync toggleSidebar(open?: boolean) {\n\t\tawait this.container.collapse(0, open ? false : !this.container.items[0].collapsed);\n\t\tthis.layout();\n\t}\n\n\tasync hideSidebar() {\n\t\tawait this.container.collapse(0, true);\n\t\tthis.layout();\n\t}\n\n\tasync showSidebar() {\n\t\tawait this.container.collapse(0, false);\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#sidebarHost: Sidebar;\n\tgetSidebarHost() {\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\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.getSidebarHost();\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.items].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?.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.getSidebarHost().componentId = this.sidebar1ComponentId;\n\t}\n\n\tupdateMainComponent() {\n\t\tthis.container?.updateComponent(1);\n\t}\n\n\trender = () => html`\n\t\t<og-bucket-top></og-bucket-top>\n\t\t<og-commands id=\"commandMenu\" .target=\"${this}\"></og-commands>\n\t\t\n\t\t<div id=\"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${guard([], () => html`\n\t\t\t\t<og-splitcontainer\n\t\t\t\t\torientation=\"horizontal\"\n\t\t\t\t\t@splitContainer.resize=${this._onSplitContainerResize}\n\t\t\t\t\t@tab.beforeRemove=${this._onTabBeforeRemove}\n\t\t\t\t\t@tab.remove=${this._onTabRemove}\n\t\t\t\t\t@tab.select=${this._onTabSelect}\n\t\t\t\t\t.items=\"${[\n\t\t\t\t\t\t{size: constants.SIDEBAR_WIDTH},\n\t\t\t\t\t\t{size: null}\n\t\t\t\t\t]}\"\n\t\t\t\t\t.createComponent=\"${this._createSplitContainerComponent}\">\n\t\t\t\t</og-splitcontainer>\n\t\t\t`)}\n\t\t</div>\n\t`;\n\n}"]}
1
+ {"version":3,"file":"bucket.js","sourceRoot":"","sources":["../../src/ui/bucket.ts"],"names":[],"mappings":"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","sourcesContent":["import { dom, Layout, ListSelectEvent, ComponentFactory, SplitContainer, log, ComponentId, Overlay, OmegaComponent, ComponentState } from '@omegagrid/core';\nimport { TabEvent, TabItem, TabSplitContainer, TabSplitContainerModel } from '@omegagrid/tabs';\nimport { CommandWindow, CommandEvent, Command, Commands } from '@omegagrid/commands';\nimport { html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport constants from '../constants';\nimport { BucketAlertOptions, BucketMenuOptions, BucketSource, BucketState, ModalSidebarOptions, OpenDialogOptions } from '../types';\nimport { Sidemenu } from './sidemenu';\nimport style from './bucket.style';\nimport { BucketTop } from './top';\nimport { ComponentHost } from './componentHost';\nimport { commonMenus } from './commonMenus';\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\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-commands')\n\tmenu: CommandWindow;\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\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\t{size: constants.SIDEBAR_WIDTH},\n\t\t\t{size: null}\n\t\t];\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\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\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\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.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}\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: TabItem) {\n\t\tdom.showElement(this.editorContainer);\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\tasync openMenu(options: BucketMenuOptions): Promise<Command|null> {\n\t\tthis.logger.info('open menu');\n\t\tlet resolveCallback: (command: Command|null) => void;\n\t\tconst onClose = () => {\n\t\t\tthis.menu.removeEventListener('command.exec', onExec);\n\t\t\tthis.menu.removeEventListener('command.close', onClose);\n\t\t\tresolveCallback(new Command({id: null}));\n\t\t}\n\t\tconst onExec = (e: CommandEvent) => {\n\t\t\tthis.menu.removeEventListener('command.exec', onExec);\n\t\t\tthis.menu.removeEventListener('command.close', onClose);\n\t\t\tresolveCallback(e.command);\n\t\t}\n\n\t\treturn new Promise(resolve => {\n\t\t\tresolveCallback = resolve;\n\t\t\tthis.menu.addEventListener('command.exec', onExec);\n\t\t\tthis.menu.addEventListener('command.close', onClose);\n\t\t\tthis.menu.text = options.text;\n\t\t\tthis.menu.open();\n\t\t\tthis.menu.commands = options.content instanceof Commands\n\t\t\t\t? options.content\n\t\t\t\t: new Commands(commonMenus[options.content]);\n\t\t});\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.items].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?.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\trender = () => html`\n\t\t<og-bucket-top></og-bucket-top>\n\t\t<og-commands .target=\"${this}\"></og-commands>\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 +1 @@
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,YAAa,mBAAmB,kBAQ1D;IAED,2BAA2B;IAyBrB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB;IAiB7C,iBAAiB,CAAC,GAAG,UAAQ;CAYnC"}
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,YAAa,mBAAmB,kBAQ1D;IAED,2BAA2B;IA2BrB,gBAAgB,CAAC,OAAO,EAAE,mBAAmB;IAiB7C,iBAAiB,CAAC,GAAG,UAAQ;CAYnC"}
@@ -23,7 +23,9 @@ export class BucketSidebars extends ComponentSlice {
23
23
  this.bucket.showOverlay();
24
24
  else
25
25
  this.bucket.hideOverlay();
26
- const left = this.bucket.container.containers[0].offsetWidth + this.bucket.sidemenu.offsetWidth;
26
+ const left = this.bucket.compact
27
+ ? this.bucket.sidemenu.offsetWidth
28
+ : (this.bucket.container.containers[0].offsetWidth + this.bucket.sidemenu.offsetWidth);
27
29
  const right = 0;
28
30
  let lCount = 0, rCount = 0;
29
31
  this.modalSidebars.forEach(async (options) => {
@@ -1 +1 @@
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.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
+ {"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 +1 @@
1
- {"version":3,"file":"bucket.style.d.ts","sourceRoot":"","sources":["../../src/ui/bucket.style.ts"],"names":[],"mappings":";AAGA,wBA2EE"}
1
+ {"version":3,"file":"bucket.style.d.ts","sourceRoot":"","sources":["../../src/ui/bucket.style.ts"],"names":[],"mappings":";AAGA,wBAsFE"}
@@ -24,7 +24,7 @@ export default css `
24
24
  border-bottom: 1px solid var(--og-bucket-border-color);
25
25
  }
26
26
 
27
- #body {
27
+ .body {
28
28
  flex: 1;
29
29
  height: 100%;
30
30
  display: flex;
@@ -40,8 +40,19 @@ export default css `
40
40
  border-right: 1px solid var(--og-bucket-border-color);
41
41
  }
42
42
 
43
- og-splitcontainer {
43
+ og-bucket-sidebar {
44
+ height: 100%;
45
+ }
46
+
47
+ .main {
44
48
  flex: 1;
49
+ height: 100%;
50
+ overflow: hidden;
51
+ position: relative;
52
+ }
53
+
54
+ .main > og-splitcontainer, .main > og-tabsplitcontainer {
55
+ height: 100%;
45
56
  }
46
57
 
47
58
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"bucket.style.js","sourceRoot":"","sources":["../../src/ui/bucket.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;gBAkBF,SAAS,CAAC,UAAU;;;;;;;;;;;;;;;;eAgBrB,SAAS,CAAC,cAAc;;;;;;;;;;;;;WAa5B,SAAS,CAAC,aAAa;;;;;;;UAOxB,SAAS,CAAC,cAAc;;;;;UAKxB,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,cAAc;;;;;UAKlD,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,aAAa;;;;;;;;;;;CAW3D,CAAC","sourcesContent":["import { css } from \"lit\";\nimport constants from \"../constants\";\n\nexport default css`\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tposition: relative;\n\t\tuser-select: none;\n\t\theight: 100%;\n\t\tcolor: var(--og-text-color);\n\t\tbackground-color: var(--og-background-color);\n\t\tfont-family: var(--og-font-family);\n\t}\n\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\tog-bucket-top {\n\t\tflex: 0 0;\n\t\tmin-height: ${constants.TOP_HEIGHT}px;\n\t\tbackground-color: red;\n\t\tbackground: var(--og-bucket-top-background-color);\n\t\tborder-bottom: 1px solid var(--og-bucket-border-color);\n\t}\n\n\t#body {\n\t\tflex: 1;\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\t\tflex-direction: row;\n\t\tposition: relative;\n\t}\n\n\tog-bucket-sidemenu {\n\t\tmin-width: ${constants.SIDEMENU_WIDTH}px;\n\t\tflex: 0;\n\t\tbackground: var(--og-bucket-left-background-color);\n\t\tborder-right: 1px solid var(--og-bucket-border-color);\n\t}\n\n\tog-splitcontainer {\n\t\tflex: 1;\n\t}\n\n\t/*\n\tog-bucket-sidebar {\n\t\tposition: absolute;\n\t\twidth: ${constants.SIDEBAR_WIDTH}px;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\tbackground: var(--og-bucket-center-background-color);\n\t}\n\n\tog-bucket-sidebar.sidebar-1 {\n\t\tleft: ${constants.SIDEMENU_WIDTH}px;\n\t}\n\n\tog-bucket-sidebar.sidebar-2 {\n\t\tdisplay: none;\n\t\tleft: ${constants.SIDEBAR_WIDTH + constants.SIDEMENU_WIDTH}px;\n\t}\n\n\tog-bucket-editorlayout {\n\t\tposition: absolute;\n\t\tleft: ${constants.SIDEMENU_WIDTH + constants.SIDEBAR_WIDTH}px;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t}\n\n\tog-sizer {\n\t\tz-index: 1000;\n\t}\n\t*/\n\t\n`;"]}
1
+ {"version":3,"file":"bucket.style.js","sourceRoot":"","sources":["../../src/ui/bucket.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;gBAkBF,SAAS,CAAC,UAAU;;;;;;;;;;;;;;;;eAgBrB,SAAS,CAAC,cAAc;;;;;;;;;;;;;;;;;;;;;;;;WAwB5B,SAAS,CAAC,aAAa;;;;;;;UAOxB,SAAS,CAAC,cAAc;;;;;UAKxB,SAAS,CAAC,aAAa,GAAG,SAAS,CAAC,cAAc;;;;;UAKlD,SAAS,CAAC,cAAc,GAAG,SAAS,CAAC,aAAa;;;;;;;;;;;CAW3D,CAAC","sourcesContent":["import { css } from \"lit\";\nimport constants from \"../constants\";\n\nexport default css`\n\t:host {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\tposition: relative;\n\t\tuser-select: none;\n\t\theight: 100%;\n\t\tcolor: var(--og-text-color);\n\t\tbackground-color: var(--og-background-color);\n\t\tfont-family: var(--og-font-family);\n\t}\n\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\tog-bucket-top {\n\t\tflex: 0 0;\n\t\tmin-height: ${constants.TOP_HEIGHT}px;\n\t\tbackground-color: red;\n\t\tbackground: var(--og-bucket-top-background-color);\n\t\tborder-bottom: 1px solid var(--og-bucket-border-color);\n\t}\n\n\t.body {\n\t\tflex: 1;\n\t\theight: 100%;\n\t\tdisplay: flex;\n\t\toverflow: hidden;\n\t\tflex-direction: row;\n\t\tposition: relative;\n\t}\n\n\tog-bucket-sidemenu {\n\t\tmin-width: ${constants.SIDEMENU_WIDTH}px;\n\t\tflex: 0;\n\t\tbackground: var(--og-bucket-left-background-color);\n\t\tborder-right: 1px solid var(--og-bucket-border-color);\n\t}\n\n\tog-bucket-sidebar {\n\t\theight: 100%;\n\t}\n\n\t.main {\n\t\tflex: 1;\n\t\theight: 100%;\n\t\toverflow: hidden;\n\t\tposition: relative;\n\t}\n\n\t.main > og-splitcontainer, .main > og-tabsplitcontainer {\n\t\theight: 100%;\n\t}\n\n\t/*\n\tog-bucket-sidebar {\n\t\tposition: absolute;\n\t\twidth: ${constants.SIDEBAR_WIDTH}px;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t\tbackground: var(--og-bucket-center-background-color);\n\t}\n\n\tog-bucket-sidebar.sidebar-1 {\n\t\tleft: ${constants.SIDEMENU_WIDTH}px;\n\t}\n\n\tog-bucket-sidebar.sidebar-2 {\n\t\tdisplay: none;\n\t\tleft: ${constants.SIDEBAR_WIDTH + constants.SIDEMENU_WIDTH}px;\n\t}\n\n\tog-bucket-editorlayout {\n\t\tposition: absolute;\n\t\tleft: ${constants.SIDEMENU_WIDTH + constants.SIDEBAR_WIDTH}px;\n\t\tright: 0;\n\t\ttop: 0;\n\t\tbottom: 0;\n\t}\n\n\tog-sizer {\n\t\tz-index: 1000;\n\t}\n\t*/\n\t\n`;"]}
@@ -1 +1 @@
1
- {"version":3,"file":"top.d.ts","sourceRoot":"","sources":["../../src/ui/top.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAO,MAAM,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE9D,qBACa,SAAU,SAAQ,cAAe,YAAW,MAAM;IAE9D,MAAM,CAAC,MAAM,4BAAW;IAExB,IAAI,MAAM,IAAoC,MAAM,CAAE;IAGtD,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAGlC,QAAQ,EAAE,cAAc,CAAC;IAEzB,aAAa,SAAO;IAEd,OAAO;IAgBb,YAAY;IAIZ,MAAM,6CAKJ;IAEF,MAAM;CAQN"}
1
+ {"version":3,"file":"top.d.ts","sourceRoot":"","sources":["../../src/ui/top.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAO,MAAM,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE9D,qBACa,SAAU,SAAQ,cAAe,YAAW,MAAM;IAE9D,MAAM,CAAC,MAAM,4BAAW;IAExB,IAAI,MAAM,IAAoC,MAAM,CAAE;IAGtD,KAAK,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC;IAGlC,QAAQ,EAAE,cAAc,CAAC;IAEzB,aAAa,SAAO;IAEd,OAAO;IAgBb,YAAY;IAIZ,MAAM,6CAOJ;IAEF,MAAM;CAQN"}
package/dist/ui/top.js CHANGED
@@ -14,7 +14,9 @@ let BucketTop = class BucketTop extends OmegaComponent {
14
14
  this.leftItemWidth = 250;
15
15
  this.render = () => html `
16
16
  <div class="item" id="logo" data-component="bucket-logo"></div>
17
- <div class="item" id="left" data-component="bucket-topLeft"></div>
17
+ ${this.bucket?.compact ? '' : html `
18
+ <div class="item" id="left" data-component="bucket-topLeft"></div>
19
+ `}
18
20
  <div class="item" id="center" data-component="bucket-topCenter"></div>
19
21
  <div class="item" id="right" data-component="bucket-topRight"></div>
20
22
  `;
@@ -39,10 +41,12 @@ let BucketTop = class BucketTop extends OmegaComponent {
39
41
  this.layout();
40
42
  }
41
43
  layout() {
42
- if (this.bucket?.container && this.bucket.container.containers[0]) {
43
- if (!this.bucket.container.items[0].collapsed) {
44
- dom.setMinSize(this.leftItem, { w: this.bucket.container.containers[0].offsetWidth });
45
- }
44
+ if (this.bucket?.compact)
45
+ return;
46
+ if (!this.bucket?.container?.containers[0])
47
+ return;
48
+ if (!this.bucket.container.items[0].collapsed && this.leftItem) {
49
+ dom.setMinSize(this.leftItem, { w: this.bucket.container.containers[0].offsetWidth });
46
50
  }
47
51
  }
48
52
  };
@@ -1 +1 @@
1
- {"version":3,"file":"top.js","sourceRoot":"","sources":["../../src/ui/top.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAU,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGvD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,cAAc;IAAtC;;QAYN,kBAAa,GAAG,GAAG,CAAC;QAsBpB,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;;;;EAKlB,CAAC;IAUH,CAAC;IA7CA,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,eAAyB,CAAA,CAAC,CAAC;IAUtD,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3E,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,OAAO;YAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,YAAY;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IASD,MAAM;QACL,IAAI,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC;YACnE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;gBAC/C,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAC,CAAC,CAAC;YACrF,CAAC;QACF,CAAC;IACF,CAAC;;AA7CM,gBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAKxB;IADC,QAAQ,CAAC,OAAO,CAAC;wCACgB;AAGlC;IADC,KAAK,CAAC,OAAO,CAAC;2CACU;AAVb,SAAS;IADrB,aAAa,CAAC,eAAe,CAAC;GAClB,SAAS,CAiDrB","sourcesContent":["import { html } from 'lit';\nimport { customElement, query, queryAll } from 'lit/decorators.js';\nimport style from './top.style';\nimport { Bucket } from './bucket';\nimport { dom, Layout, OmegaComponent } from '@omegagrid/core';\n\n@customElement('og-bucket-top')\nexport class BucketTop extends OmegaComponent implements Layout {\n\n\tstatic styles = [style];\n\n\tget bucket() { return this.parentComponent as Bucket }\n\n\t@queryAll('.item')\n\titems: NodeListOf<HTMLDivElement>;\n\n\t@query('#left')\n\tleftItem: HTMLDivElement;\n\n\tleftItemWidth = 250;\n\n\tasync updated() {\n\t\tif (!this.bucket) return;\n\n\t\tlet visible = false;\n\t\tfor (const item of this.items) {\n\t\t\tconst component = await this.bucket.components.get(item.dataset.component);\n\t\t\tdom.empty(item);\n\t\t\tif (component) {\n\t\t\t\titem.appendChild(component);\n\t\t\t\tvisible = true;\n\t\t\t}\n\t\t}\n\n\t\tif (!visible) dom.hideElement(this);\n\t}\n\n\tfirstUpdated() {\n\t\tthis.layout();\n\t}\n\n\trender = () => html`\n\t\t<div class=\"item\" id=\"logo\" data-component=\"bucket-logo\"></div>\n\t\t<div class=\"item\" id=\"left\" data-component=\"bucket-topLeft\"></div>\n\t\t<div class=\"item\" id=\"center\" data-component=\"bucket-topCenter\"></div>\n\t\t<div class=\"item\" id=\"right\" data-component=\"bucket-topRight\"></div>\n\t`;\n\n\tlayout() {\n\t\tif (this.bucket?.container && this.bucket.container.containers[0]) {\n\t\t\tif (!this.bucket.container.items[0].collapsed) {\n\t\t\t\tdom.setMinSize(this.leftItem, {w: this.bucket.container.containers[0].offsetWidth});\n\t\t\t}\n\t\t}\n\t}\n\n}"]}
1
+ {"version":3,"file":"top.js","sourceRoot":"","sources":["../../src/ui/top.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,MAAM,aAAa,CAAC;AAEhC,OAAO,EAAE,GAAG,EAAU,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGvD,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,cAAc;IAAtC;;QAYN,kBAAa,GAAG,GAAG,CAAC;QAsBpB,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;IAEhB,IAAI,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;;GAEjC;;;EAGD,CAAC;IAUH,CAAC;IA/CA,IAAI,MAAM,KAAK,OAAO,IAAI,CAAC,eAAyB,CAAA,CAAC,CAAC;IAUtD,KAAK,CAAC,OAAO;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3E,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAChB,IAAI,SAAS,EAAE,CAAC;gBACf,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;gBAC5B,OAAO,GAAG,IAAI,CAAC;YAChB,CAAC;QACF,CAAC;QAED,IAAI,CAAC,OAAO;YAAE,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,YAAY;QACX,IAAI,CAAC,MAAM,EAAE,CAAC;IACf,CAAC;IAWD,MAAM;QACL,IAAI,IAAI,CAAC,MAAM,EAAE,OAAO;YAAE,OAAO;QACjC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC;YAAE,OAAO;QACnD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChE,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,WAAW,EAAC,CAAC,CAAC;QACrF,CAAC;IACF,CAAC;;AA/CM,gBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAKxB;IADC,QAAQ,CAAC,OAAO,CAAC;wCACgB;AAGlC;IADC,KAAK,CAAC,OAAO,CAAC;2CACU;AAVb,SAAS;IADrB,aAAa,CAAC,eAAe,CAAC;GAClB,SAAS,CAmDrB","sourcesContent":["import { html } from 'lit';\nimport { customElement, query, queryAll } from 'lit/decorators.js';\nimport style from './top.style';\nimport { Bucket } from './bucket';\nimport { dom, Layout, OmegaComponent } from '@omegagrid/core';\n\n@customElement('og-bucket-top')\nexport class BucketTop extends OmegaComponent implements Layout {\n\n\tstatic styles = [style];\n\n\tget bucket() { return this.parentComponent as Bucket }\n\n\t@queryAll('.item')\n\titems: NodeListOf<HTMLDivElement>;\n\n\t@query('#left')\n\tleftItem: HTMLDivElement;\n\n\tleftItemWidth = 250;\n\n\tasync updated() {\n\t\tif (!this.bucket) return;\n\n\t\tlet visible = false;\n\t\tfor (const item of this.items) {\n\t\t\tconst component = await this.bucket.components.get(item.dataset.component);\n\t\t\tdom.empty(item);\n\t\t\tif (component) {\n\t\t\t\titem.appendChild(component);\n\t\t\t\tvisible = true;\n\t\t\t}\n\t\t}\n\n\t\tif (!visible) dom.hideElement(this);\n\t}\n\n\tfirstUpdated() {\n\t\tthis.layout();\n\t}\n\n\trender = () => html`\n\t\t<div class=\"item\" id=\"logo\" data-component=\"bucket-logo\"></div>\n\t\t${this.bucket?.compact ? '' : html`\n\t\t\t<div class=\"item\" id=\"left\" data-component=\"bucket-topLeft\"></div>\n\t\t`}\n\t\t<div class=\"item\" id=\"center\" data-component=\"bucket-topCenter\"></div>\n\t\t<div class=\"item\" id=\"right\" data-component=\"bucket-topRight\"></div>\n\t`;\n\n\tlayout() {\n\t\tif (this.bucket?.compact) return;\n\t\tif (!this.bucket?.container?.containers[0]) return;\n\t\tif (!this.bucket.container.items[0].collapsed && this.leftItem) {\n\t\t\tdom.setMinSize(this.leftItem, {w: this.bucket.container.containers[0].offsetWidth});\n\t\t}\n\t}\n\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/bucket",
3
- "version": "0.6.74",
3
+ "version": "0.6.75",
4
4
  "license": "UNLICENSED",
5
5
  "description": "Application layout component",
6
6
  "main": "./dist/index.js",
@@ -28,10 +28,10 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@fortawesome/fontawesome-svg-core": "6.4.2",
31
- "@omegagrid/commands": "^0.6.74",
32
- "@omegagrid/core": "^0.6.74",
33
- "@omegagrid/dialog": "^0.6.74",
34
- "@omegagrid/tabs": "^0.6.74",
31
+ "@omegagrid/commands": "^0.6.75",
32
+ "@omegagrid/core": "^0.6.75",
33
+ "@omegagrid/dialog": "^0.6.75",
34
+ "@omegagrid/tabs": "^0.6.75",
35
35
  "@riovir/wc-fontawesome": "^0.1.9",
36
36
  "lit": "^3.1.1",
37
37
  "ts-debounce": "^4.0.0"