@omegagrid/bucket 0.6.99 → 0.6.100

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/options.d.ts CHANGED
@@ -1,10 +1,12 @@
1
- import { CommonOptions } from "@omegagrid/core";
1
+ import { CommonOptions, ComponentId } from "@omegagrid/core";
2
+ import { PathSegments } from "./types";
2
3
  export type AlertsOptions = {
3
4
  maxItems: number;
4
5
  timeout: number;
5
6
  };
6
7
  export type BucketOptions = {
7
- alerts: AlertsOptions;
8
+ alerts?: AlertsOptions;
9
+ pathResolver?: (id: ComponentId) => PathSegments;
8
10
  } & CommonOptions;
9
11
  export declare function initOptions(options?: Partial<BucketOptions>, origOptions?: BucketOptions): BucketOptions;
10
12
  //# sourceMappingURL=options.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEnE,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,EAAE,aAAa,CAAC;CACtB,GAAG,aAAa,CAAA;AAUjB,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,WAAW,GAAE,aAAoB,GAAG,aAAa,CAO9G"}
1
+ {"version":3,"file":"options.d.ts","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,aAAa,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,MAAM,MAAM,aAAa,GAAG;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CAChB,CAAA;AAED,MAAM,MAAM,aAAa,GAAG;IAC3B,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,YAAY,CAAC,EAAE,CAAC,EAAE,EAAE,WAAW,KAAK,YAAY,CAAA;CAChD,GAAG,aAAa,CAAA;AAUjB,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,EAAE,WAAW,GAAE,aAAoB,GAAG,aAAa,CAO9G"}
@@ -1 +1 @@
1
- {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAiB,MAAM,iBAAiB,CAAC;AAWnE,MAAM,eAAe,GAAkB;IACtC,MAAM,EAAE;QACP,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,IAAI;KACb;CACD,CAAA;AAGD,MAAM,UAAU,WAAW,CAAC,OAAgC,EAAE,cAA6B,IAAI;IAC9F,OAAO;QACN,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC;QAC1C,GAAG,eAAe;QAClB,GAAG,WAAW;QACd,GAAG,OAAO;KACV,CAAC;AACH,CAAC","sourcesContent":["import { initCommonOptions, CommonOptions } from \"@omegagrid/core\";\n\nexport type AlertsOptions = {\n\tmaxItems: number,\n\ttimeout: number,\n}\n\nexport type BucketOptions = {\n\talerts: AlertsOptions,\n} & CommonOptions\n\nconst DEFAULT_OPTIONS: BucketOptions = {\n\talerts: {\n\t\tmaxItems: 5,\n\t\ttimeout: 5000,\n\t},\n}\n\n\nexport function initOptions(options?: Partial<BucketOptions>, origOptions: BucketOptions = null): BucketOptions {\n\treturn {\n\t\t...initCommonOptions(options, origOptions),\n\t\t...DEFAULT_OPTIONS,\n\t\t...origOptions,\n\t\t...options,\n\t};\n}"]}
1
+ {"version":3,"file":"options.js","sourceRoot":"","sources":["../src/options.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA8B,MAAM,iBAAiB,CAAC;AAahF,MAAM,eAAe,GAAkB;IACtC,MAAM,EAAE;QACP,QAAQ,EAAE,CAAC;QACX,OAAO,EAAE,IAAI;KACb;CACD,CAAA;AAGD,MAAM,UAAU,WAAW,CAAC,OAAgC,EAAE,cAA6B,IAAI;IAC9F,OAAO;QACN,GAAG,iBAAiB,CAAC,OAAO,EAAE,WAAW,CAAC;QAC1C,GAAG,eAAe;QAClB,GAAG,WAAW;QACd,GAAG,OAAO;KACV,CAAC;AACH,CAAC","sourcesContent":["import { initCommonOptions, CommonOptions, ComponentId } from \"@omegagrid/core\";\nimport { PathSegments } from \"./types\";\n\nexport type AlertsOptions = {\n\tmaxItems: number,\n\ttimeout: number,\n}\n\nexport type BucketOptions = {\n\talerts?: AlertsOptions,\n\tpathResolver?: (id: ComponentId) => PathSegments\n} & CommonOptions\n\nconst DEFAULT_OPTIONS: BucketOptions = {\n\talerts: {\n\t\tmaxItems: 5,\n\t\ttimeout: 5000,\n\t},\n}\n\n\nexport function initOptions(options?: Partial<BucketOptions>, origOptions: BucketOptions = null): BucketOptions {\n\treturn {\n\t\t...initCommonOptions(options, origOptions),\n\t\t...DEFAULT_OPTIONS,\n\t\t...origOptions,\n\t\t...options,\n\t};\n}"]}
package/dist/types.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  import { Commands } from "@omegagrid/commands";
2
2
  import { ComponentId, ComponentState, HorizontalPosition, IconSpec } from "@omegagrid/core";
3
3
  import { Dialog } from "@omegagrid/dialog";
4
- import { TabSplitContainerSource } from "@omegagrid/tabs";
4
+ import { TabItem, TabSplitContainerSource } from "@omegagrid/tabs";
5
5
  import { CommonMenu } from "./ui";
6
6
  import { DialogOptions } from "@omegagrid/dialog";
7
7
  import { TemplateResult } from "lit";
8
+ import { BucketOptions } from "./options";
8
9
  export type SidemenuItem = {
9
10
  id: string;
10
11
  icon: string;
@@ -27,6 +28,13 @@ export type ModalSidebarOptions = {
27
28
  position?: HorizontalPosition;
28
29
  };
29
30
  export type ComponentOptions = Record<string, unknown>;
31
+ export type PathSegment = {
32
+ id: string;
33
+ label?: string;
34
+ icon?: string;
35
+ clickable?: boolean;
36
+ };
37
+ export type PathSegments = (PathSegment | string)[];
30
38
  export type ComponentUpdateOptions = {
31
39
  id?: ComponentId;
32
40
  title?: string;
@@ -41,6 +49,7 @@ export type BucketSource = {
41
49
  top?: TopSettings;
42
50
  sidemenu?: SidemenuSettings;
43
51
  editorLayout?: TabSplitContainerSource;
52
+ options?: BucketOptions;
44
53
  };
45
54
  export type BucketMenuOptions = {
46
55
  text?: string;
@@ -62,6 +71,7 @@ export type BucketState = {
62
71
  export type OpenDialogOptions = DialogOptions & {
63
72
  id?: ComponentId;
64
73
  };
74
+ export type OpenTabOptions = TabItem & {};
65
75
  export type BucketAlertType = 'danger' | 'warning' | 'info' | 'success';
66
76
  export type BucketAlertOptions = {
67
77
  title?: string | TemplateResult<1>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC5F,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,OAAO,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAI;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC9B,KAAK,EAAE,YAAY,EAAE,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;CACrB,CAAA;AAED,MAAM,MAAM,mBAAmB,GAAG;IACjC,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,SAAS,CAAC,EAAE,WAAW,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,kBAAkB,CAAA;CAC7B,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEvD,MAAM,MAAM,WAAW,GAAG;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,CAAC,WAAW,GAAC,MAAM,CAAC,EAAE,CAAC;AAElD,MAAM,MAAM,sBAAsB,GAAG;IACpC,EAAE,CAAC,EAAE,WAAW,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAA;CACd,CAAA;AAED,MAAM,MAAM,OAAO,GAAI;IACtB,EAAE,EAAE,WAAW,CAAA;CACf,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACzB,UAAU,EAAE,OAAO,EAAE,CAAA;CACrB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IAC1B,GAAG,CAAC,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,YAAY,CAAC,EAAE,uBAAuB,CAAC;IACvC,OAAO,CAAC,EAAE,aAAa,CAAC;CACxB,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,UAAU,GAAC,QAAQ,CAAA;CAC5B,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG;IAAC,WAAW,EAAE,WAAW,CAAA;CAAC,CAAC;AAE/D,MAAM,MAAM,WAAW,GAAG;IACzB,OAAO,CAAC,EAAE;QACT,YAAY,CAAC,EAAE,WAAW,CAAA;QAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,SAAS,CAAC,EAAE,OAAO,CAAA;KACnB,CAAC;IACF,MAAM,CAAC,EAAE,uBAAuB,CAAC;IACjC,OAAO,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAA;CAChD,CAAA;AAED,MAAM,MAAM,iBAAiB,GAAG,aAAa,GAAG;IAAC,EAAE,CAAC,EAAE,WAAW,CAAA;CAAC,CAAA;AAElE,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,EAEtC,CAAA;AAED,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAC,SAAS,GAAC,MAAM,GAAC,SAAS,CAAC;AAElE,MAAM,MAAM,kBAAkB,GAAG;IAChC,KAAK,CAAC,EAAE,MAAM,GAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAC,QAAQ,CAAC;IACvB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAA;CAChB,CAAC"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Commands } from \"@omegagrid/commands\";\nimport { ComponentId, ComponentState, HorizontalPosition, IconSpec } from \"@omegagrid/core\";\nimport { Dialog } from \"@omegagrid/dialog\";\nimport { TabSplitContainerSource } from \"@omegagrid/tabs\";\nimport { CommonMenu } from \"./ui\";\nimport { DialogOptions } from \"@omegagrid/dialog\";\nimport { TemplateResult } from \"lit\";\n\nexport type SidemenuItem = {\n\tid: string,\n\ticon: string,\n\tstatusIcon?: string,\n\tstatusColor?: string,\n\ttext?: string,\n\ttooltip?: string,\n\tcolor?: string\n}\n\nexport type SidemenuSettings = {\n\titems: SidemenuItem[];\n\tactiveIndex?: number;\n}\n\nexport type ModalSidebarOptions = {\n\tid?: ComponentId,\n\tcomponent?: HTMLElement,\n\twidth?: number,\n\tcaption?: string,\n\tclosable?: boolean,\n\tposition?: HorizontalPosition\n}\n\nexport type ComponentOptions = Record<string, unknown>;\n\nexport type ComponentUpdateOptions = {\n\tid?: ComponentId,\n\ttitle?: string\n}\n\nexport type TopItem = {\n\tid: ComponentId\n}\n\nexport type TopSettings = {\n\trightItems: TopItem[]\n}\n\nexport type BucketSource = {\n\ttop?: TopSettings,\n\tsidemenu?: SidemenuSettings,\n\teditorLayout?: TabSplitContainerSource\n}\n\nexport type BucketMenuOptions = {\n\ttext?: string,\n\tcontent: CommonMenu|Commands\n}\n\nexport type BucketDialog = Dialog & {componentId: ComponentId};\n\nexport type BucketState = {\n\tsidebar?: {\n\t\tselectedItem?: ComponentId\n\t\twidth?: number,\n\t\tcollapsed?: boolean\n\t},\n\tlayout?: TabSplitContainerSource,\n\tdialogs?: OpenDialogOptions[],\n\tcomponents?: Record<ComponentId, ComponentState>\n}\n\nexport type OpenDialogOptions = DialogOptions & {id?: ComponentId}\n\nexport type BucketAlertType = 'danger'|'warning'|'info'|'success';\n\nexport type BucketAlertOptions = {\n\ttitle?: string|TemplateResult<1>,\n\ticon?: string|IconSpec,\n\ttype?: BucketAlertType,\n\tcontent?: string|TemplateResult<1>,\n\ttimeout?: number\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import { Commands } from \"@omegagrid/commands\";\nimport { ComponentId, ComponentState, HorizontalPosition, IconSpec } from \"@omegagrid/core\";\nimport { Dialog } from \"@omegagrid/dialog\";\nimport { TabItem, TabSplitContainerSource } from \"@omegagrid/tabs\";\nimport { CommonMenu } from \"./ui\";\nimport { DialogOptions } from \"@omegagrid/dialog\";\nimport { TemplateResult } from \"lit\";\nimport { BucketOptions } from \"./options\";\n\nexport type SidemenuItem = {\n\tid: string,\n\ticon: string,\n\tstatusIcon?: string,\n\tstatusColor?: string,\n\ttext?: string,\n\ttooltip?: string,\n\tcolor?: string\n}\n\nexport type SidemenuSettings = {\n\titems: SidemenuItem[];\n\tactiveIndex?: number;\n}\n\nexport type ModalSidebarOptions = {\n\tid?: ComponentId,\n\tcomponent?: HTMLElement,\n\twidth?: number,\n\tcaption?: string,\n\tclosable?: boolean,\n\tposition?: HorizontalPosition\n}\n\nexport type ComponentOptions = Record<string, unknown>;\n\nexport type PathSegment = {\n\tid: string,\n\tlabel?: string,\n\ticon?: string,\n\tclickable?: boolean,\n}\n\nexport type PathSegments = (PathSegment|string)[];\n\nexport type ComponentUpdateOptions = {\n\tid?: ComponentId,\n\ttitle?: string\n}\n\nexport type TopItem = {\n\tid: ComponentId\n}\n\nexport type TopSettings = {\n\trightItems: TopItem[]\n}\n\nexport type BucketSource = {\n\ttop?: TopSettings,\n\tsidemenu?: SidemenuSettings,\n\teditorLayout?: TabSplitContainerSource,\n\toptions?: BucketOptions,\n}\n\nexport type BucketMenuOptions = {\n\ttext?: string,\n\tcontent: CommonMenu|Commands\n}\n\nexport type BucketDialog = Dialog & {componentId: ComponentId};\n\nexport type BucketState = {\n\tsidebar?: {\n\t\tselectedItem?: ComponentId\n\t\twidth?: number,\n\t\tcollapsed?: boolean\n\t},\n\tlayout?: TabSplitContainerSource,\n\tdialogs?: OpenDialogOptions[],\n\tcomponents?: Record<ComponentId, ComponentState>\n}\n\nexport type OpenDialogOptions = DialogOptions & {id?: ComponentId}\n\nexport type OpenTabOptions = TabItem & {\n\t// path?: PathSegments,\n}\n\nexport type BucketAlertType = 'danger'|'warning'|'info'|'success';\n\nexport type BucketAlertOptions = {\n\ttitle?: string|TemplateResult<1>,\n\ticon?: string|IconSpec,\n\ttype?: BucketAlertType,\n\tcontent?: string|TemplateResult<1>,\n\ttimeout?: number\n};\n"]}
@@ -1,7 +1,7 @@
1
1
  import { Layout, ListSelectEvent, ComponentFactory, SplitContainer, log, ComponentId, Overlay, OmegaComponent } from '@omegagrid/core';
2
2
  import { TabEvent, TabItem, TabSplitContainer } from '@omegagrid/tabs';
3
3
  import { CommandWindow, Command } from '@omegagrid/commands';
4
- import { BucketAlertOptions, BucketMenuOptions, BucketSource, BucketState, ModalSidebarOptions, OpenDialogOptions } from '../types';
4
+ import { BucketAlertOptions, BucketMenuOptions, BucketSource, BucketState, ModalSidebarOptions, OpenDialogOptions, OpenTabOptions } from '../types';
5
5
  import { Sidemenu } from './sidemenu';
6
6
  import { BucketTop } from './top';
7
7
  import { ComponentHost } from './componentHost';
@@ -57,7 +57,7 @@ export declare class Bucket extends OmegaComponent<BucketState> implements Layou
57
57
  layout(): void;
58
58
  setSourceData(sourceData: BucketSource): void;
59
59
  updated(): Promise<void>;
60
- open(item: TabItem): Promise<HTMLElement>;
60
+ open(item: OpenTabOptions): Promise<HTMLElement>;
61
61
  openDialog(options: OpenDialogOptions): Promise<import("../types").BucketDialog>;
62
62
  openMenu(options: BucketMenuOptions): Promise<Command | null>;
63
63
  openModalSidebar(options: ModalSidebarOptions): Promise<HTMLElement>;
@@ -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
@@ -186,6 +186,9 @@ let Bucket = Bucket_1 = class Bucket extends OmegaComponent {
186
186
  }
187
187
  setSourceData(sourceData) {
188
188
  this.sourceData = sourceData;
189
+ if (sourceData.options) {
190
+ this.options = initOptions(sourceData.options, this.options);
191
+ }
189
192
  }
190
193
  async updated() {
191
194
  const mainContainer = this.compact ? this.editorContainer : this.container;
@@ -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 { 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\tif (this.compact) this.hideSidebar();\n\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
+ {"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, OpenTabOptions } 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\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\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,16 +1,17 @@
1
- import { ComponentId, Layout } from '@omegagrid/core';
2
- import { LitElement } from 'lit';
1
+ import { ComponentId, Layout, OmegaComponent } from '@omegagrid/core';
3
2
  import { Bucket } from './bucket';
4
- export declare class ComponentHost extends LitElement implements Layout {
5
- static styles: import("lit").CSSResult;
3
+ export declare class ComponentHost extends OmegaComponent implements Layout {
4
+ static styles: import("lit").CSSResultGroup[];
6
5
  bucket: Bucket;
7
6
  componentId: ComponentId;
8
- host: HTMLDivElement;
7
+ body: HTMLDivElement;
9
8
  private component;
10
9
  private isEdited;
11
10
  layout(): void;
12
11
  _onEdit: () => void;
13
12
  _onSave: () => void;
14
13
  updated(props: Map<PropertyKey, unknown>): Promise<void>;
14
+ get path(): import("..").PathSegments;
15
+ render: () => import("lit-html").TemplateResult<1>;
15
16
  }
16
17
  //# sourceMappingURL=componentHost.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"componentHost.d.ts","sourceRoot":"","sources":["../../src/ui/componentHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAO,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAO,MAAM,KAAK,CAAC;AAEtC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBACa,aAAc,SAAQ,UAAW,YAAW,MAAM;IAE9D,MAAM,CAAC,MAAM,0BASX;IAGF,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,WAAW,CAAC;IAGzB,IAAI,EAAE,cAAc,CAAC;IAErB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAS;IAEzB,MAAM;IAMN,OAAO,aAQN;IAED,OAAO,aAQN;IAEK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;CAa9C"}
1
+ {"version":3,"file":"componentHost.d.ts","sourceRoot":"","sources":["../../src/ui/componentHost.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAO,MAAM,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAG3E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBACa,aAAc,SAAQ,cAAe,YAAW,MAAM;IAElE,MAAM,CAAC,MAAM,iCAgBV;IAGH,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,WAAW,CAAC;IAGzB,IAAI,EAAE,cAAc,CAAC;IAErB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAS;IAEzB,MAAM;IAMN,OAAO,aAQN;IAED,OAAO,aAQN;IAEK,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAY9C,IAAI,IAAI,8BAGP;IAED,MAAM,6CAQJ;CAEF"}
@@ -4,10 +4,10 @@ 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
- import { dom } from '@omegagrid/core';
8
- import { LitElement, css } from 'lit';
7
+ import { dom, OmegaComponent } from '@omegagrid/core';
8
+ import { css, html } from 'lit';
9
9
  import { customElement, property, query } from 'lit/decorators.js';
10
- let ComponentHost = class ComponentHost extends LitElement {
10
+ let ComponentHost = class ComponentHost extends OmegaComponent {
11
11
  constructor() {
12
12
  super(...arguments);
13
13
  this.isEdited = false;
@@ -33,6 +33,15 @@ let ComponentHost = class ComponentHost extends LitElement {
33
33
  this.bucket.editorContainer.updateTabs();
34
34
  this.bucket.components.unsavedComponents.delete(this.componentId);
35
35
  };
36
+ this.render = () => html `
37
+ ${this.path.length > 0 ? html `
38
+ <div class="head">
39
+ <og-bucket-path .path="${this.path}">
40
+ </og-bucket-path>
41
+ </div>
42
+ ` : ''}
43
+ <div class="body"></div>
44
+ `;
36
45
  }
37
46
  layout() {
38
47
  if (this.component?.layout) {
@@ -41,27 +50,38 @@ let ComponentHost = class ComponentHost extends LitElement {
41
50
  }
42
51
  async updated(props) {
43
52
  if (props.has('componentId') && this.componentId) {
44
- const component = await this.bucket.components.get(this.componentId);
45
- this.component = component;
46
- dom.empty(this.shadowRoot);
47
- this.shadowRoot.appendChild(component);
48
- component.removeEventListener('edit', this._onEdit);
49
- component.addEventListener('edit', this._onEdit);
50
- component.removeEventListener('save', this._onSave);
51
- component.addEventListener('save', this._onSave);
53
+ this.component = await this.bucket.components.get(this.componentId);
54
+ dom.empty(this.body);
55
+ this.body.appendChild(this.component);
56
+ this.component.removeEventListener('edit', this._onEdit);
57
+ this.component.addEventListener('edit', this._onEdit);
58
+ this.component.removeEventListener('save', this._onSave);
59
+ this.component.addEventListener('save', this._onSave);
52
60
  }
53
61
  }
62
+ get path() {
63
+ if (!this.bucket.options.pathResolver)
64
+ return [];
65
+ return this.bucket.options.pathResolver(this.componentId);
66
+ }
54
67
  };
55
- ComponentHost.styles = css `
68
+ ComponentHost.styles = [OmegaComponent.styles, css `
56
69
  :host {
57
- display: block;
70
+ display: flex;
71
+ flex-direction: column;
58
72
  height: 100%;
59
73
  }
60
74
 
61
- * {
62
- box-sizing: border-box;
75
+ .head {
76
+ flex: 0 0 15px;
77
+ line-height: 15px;
63
78
  }
64
- `;
79
+
80
+ .body {
81
+ height: 100%;
82
+ flex: 1;
83
+ }
84
+ `];
65
85
  __decorate([
66
86
  property({ type: Object })
67
87
  ], ComponentHost.prototype, "bucket", void 0);
@@ -69,8 +89,8 @@ __decorate([
69
89
  property({ type: String })
70
90
  ], ComponentHost.prototype, "componentId", void 0);
71
91
  __decorate([
72
- query('#host')
73
- ], ComponentHost.prototype, "host", void 0);
92
+ query('.body')
93
+ ], ComponentHost.prototype, "body", void 0);
74
94
  ComponentHost = __decorate([
75
95
  customElement('og-bucket-component-host')
76
96
  ], ComponentHost);
@@ -1 +1 @@
1
- {"version":3,"file":"componentHost.js","sourceRoot":"","sources":["../../src/ui/componentHost.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentId, dom, Layout } from '@omegagrid/core';\nimport { LitElement, css } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { Bucket } from './bucket';\n\n@customElement('og-bucket-component-host')\nexport class ComponentHost extends LitElement implements Layout {\n\n\tstatic styles = css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\theight: 100%;\n\t\t}\n\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\tbucket: Bucket;\n\n\t@property({type: String})\n\tcomponentId: ComponentId;\n\n\t@query('#host')\n\thost: HTMLDivElement;\n\n\tprivate component: HTMLElement;\n\tprivate isEdited = false;\n\n\tlayout() {\n\t\tif ((this.component as Layout)?.layout) {\n\t\t\t(this.component as Layout).layout();\n\t\t}\n\t}\n\n\t_onEdit = () => {\t\n\t\tif (this.isEdited) return;\n\t\tthis.bucket.editorContainer.model.walk(tab => {\n\t\t\tif (tab.id == this.componentId) tab.unsaved = true;\n\t\t});\n\t\tthis.isEdited = true;\n\t\tthis.bucket.editorContainer.updateTabs();\n\t\tthis.bucket.components.unsavedComponents.add(this.componentId);\n\t}\n\n\t_onSave = () => {\n\t\tif (!this.isEdited) return;\n\t\tthis.bucket.editorContainer.model.walk(tab => {\n\t\t\tif (tab.id == this.componentId) tab.unsaved = false;\n\t\t});\n\t\tthis.isEdited = false;\n\t\tthis.bucket.editorContainer.updateTabs();\n\t\tthis.bucket.components.unsavedComponents.delete(this.componentId);\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('componentId') && this.componentId) {\n\t\t\tconst component = await this.bucket.components.get(this.componentId);\n\t\t\tthis.component = component;\n\t\t\tdom.empty(this.shadowRoot);\n\t\t\tthis.shadowRoot.appendChild(component);\n\t\t\tcomponent.removeEventListener('edit', this._onEdit);\n\t\t\tcomponent.addEventListener('edit', this._onEdit);\n\t\t\tcomponent.removeEventListener('save', this._onSave);\n\t\t\tcomponent.addEventListener('save', this._onSave);\n\t\t}\n\t}\n\n}"]}
1
+ {"version":3,"file":"componentHost.js","sourceRoot":"","sources":["../../src/ui/componentHost.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentId, dom, Layout, OmegaComponent } from '@omegagrid/core';\nimport { css, html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { Bucket } from './bucket';\n\n@customElement('og-bucket-component-host')\nexport class ComponentHost extends OmegaComponent implements Layout {\n\n\tstatic styles = [OmegaComponent.styles, css`\n\t\t:host {\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: column;\n\t\t\theight: 100%;\n\t\t}\n\n\t\t.head {\n\t\t\tflex: 0 0 15px;\n\t\t\tline-height: 15px;\n\t\t}\n\n\t\t.body {\n\t\t\theight: 100%;\n\t\t\tflex: 1;\n\t\t}\n\t`];\n\n\t@property({type: Object})\n\tbucket: Bucket;\n\n\t@property({type: String})\n\tcomponentId: ComponentId;\n\n\t@query('.body')\n\tbody: HTMLDivElement;\n\n\tprivate component: HTMLElement;\n\tprivate isEdited = false;\n\n\tlayout() {\n\t\tif ((this.component as Layout)?.layout) {\n\t\t\t(this.component as Layout).layout();\n\t\t}\n\t}\n\n\t_onEdit = () => {\t\n\t\tif (this.isEdited) return;\n\t\tthis.bucket.editorContainer.model.walk(tab => {\n\t\t\tif (tab.id == this.componentId) tab.unsaved = true;\n\t\t});\n\t\tthis.isEdited = true;\n\t\tthis.bucket.editorContainer.updateTabs();\n\t\tthis.bucket.components.unsavedComponents.add(this.componentId);\n\t}\n\n\t_onSave = () => {\n\t\tif (!this.isEdited) return;\n\t\tthis.bucket.editorContainer.model.walk(tab => {\n\t\t\tif (tab.id == this.componentId) tab.unsaved = false;\n\t\t});\n\t\tthis.isEdited = false;\n\t\tthis.bucket.editorContainer.updateTabs();\n\t\tthis.bucket.components.unsavedComponents.delete(this.componentId);\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('componentId') && this.componentId) {\n\t\t\tthis.component = await this.bucket.components.get(this.componentId);\n\t\t\tdom.empty(this.body);\n\t\t\tthis.body.appendChild(this.component);\n\t\t\tthis.component.removeEventListener('edit', this._onEdit);\n\t\t\tthis.component.addEventListener('edit', this._onEdit);\n\t\t\tthis.component.removeEventListener('save', this._onSave);\n\t\t\tthis.component.addEventListener('save', this._onSave);\n\t\t}\n\t}\n\n\tget path() {\n\t\tif (!this.bucket.options.pathResolver) return [];\n\t\treturn this.bucket.options.pathResolver(this.componentId);\n\t}\n\n\trender = () => html`\n\t\t${this.path.length > 0 ? html`\n\t\t\t<div class=\"head\">\n\t\t\t\t<og-bucket-path .path=\"${this.path}\">\n\t\t\t\t</og-bucket-path>\n\t\t\t</div>\n\t\t` : ''}\n\t\t<div class=\"body\"></div>\n\t`;\n\n}"]}
@@ -7,4 +7,5 @@ export * from './bucketButton';
7
7
  export * from './componentHost';
8
8
  export * from './modalSidebar';
9
9
  export * from './commonMenus';
10
+ export * from './path';
10
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC"}
package/dist/ui/index.js CHANGED
@@ -7,4 +7,5 @@ export * from './bucketButton';
7
7
  export * from './componentHost';
8
8
  export * from './modalSidebar';
9
9
  export * from './commonMenus';
10
+ export * from './path';
10
11
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC","sourcesContent":["export * from './bucket';\nexport * from './bucketAlert';\nexport * from './sidebar';\nexport * from './sidemenu';\nexport * from './top';\nexport * from './bucketButton';\nexport * from './componentHost';\nexport * from './modalSidebar';\nexport * from './commonMenus';"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ui/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,eAAe,CAAC;AAC9B,cAAc,WAAW,CAAC;AAC1B,cAAc,YAAY,CAAC;AAC3B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC","sourcesContent":["export * from './bucket';\nexport * from './bucketAlert';\nexport * from './sidebar';\nexport * from './sidemenu';\nexport * from './top';\nexport * from './bucketButton';\nexport * from './componentHost';\nexport * from './modalSidebar';\nexport * from './commonMenus';\nexport * from './path';\n"]}
@@ -0,0 +1,17 @@
1
+ import { OmegaComponent } from '@omegagrid/core';
2
+ import { PathSegment, PathSegments } from '../types';
3
+ export declare class BucketPathEvent extends Event {
4
+ readonly path: PathSegment[];
5
+ readonly index: number;
6
+ get segment(): PathSegment;
7
+ constructor(type: string, args?: Partial<BucketPathEvent>);
8
+ }
9
+ export declare class BucketPath extends OmegaComponent {
10
+ static styles: import("lit").CSSResultGroup[];
11
+ path: PathSegments;
12
+ clickable: boolean;
13
+ willUpdate(): void;
14
+ _onClick: (e: PointerEvent) => void;
15
+ render: () => Iterable<unknown>;
16
+ }
17
+ //# sourceMappingURL=path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.d.ts","sourceRoot":"","sources":["../../src/ui/path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAS,MAAM,iBAAiB,CAAC;AAGxD,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAIrD,qBAAa,eAAgB,SAAQ,KAAK;IACzC,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,CAAC;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,IAAI,OAAO,gBAAmC;gBAElC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC;CAIzD;AAED,qBACa,UAAW,SAAQ,cAAc;IAE7C,MAAM,CAAC,MAAM,iCAoBV;IAGH,IAAI,EAAE,YAAY,CAAC;IAGnB,SAAS,UAAS;IAElB,UAAU;IAcV,QAAQ,MAAO,YAAY,UAS1B;IAED,MAAM,0BAIsC;CAE5C"}
@@ -0,0 +1,86 @@
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
+ import { OmegaComponent, utils } from '@omegagrid/core';
8
+ import { css, html } from 'lit';
9
+ import { customElement, property } from 'lit/decorators.js';
10
+ import { join } from 'lit/directives/join.js';
11
+ import { map } from 'lit/directives/map.js';
12
+ export class BucketPathEvent extends Event {
13
+ get segment() { return this.path[this.index]; }
14
+ constructor(type, args) {
15
+ super(`path.${type}`, { bubbles: true, composed: true });
16
+ if (args)
17
+ Object.assign(this, args);
18
+ }
19
+ }
20
+ let BucketPath = class BucketPath extends OmegaComponent {
21
+ constructor() {
22
+ super(...arguments);
23
+ this.clickable = false;
24
+ this._onClick = (e) => {
25
+ const target = e.currentTarget;
26
+ const id = target.dataset.id;
27
+ if (id) {
28
+ this.dispatchEvent(new BucketPathEvent('click', {
29
+ path: this.path,
30
+ index: this.path.findIndex(seg => seg.id === id)
31
+ }));
32
+ }
33
+ };
34
+ this.render = () => join(map(this.path, segment => segment.clickable ? html `
35
+ <a @click="${this._onClick}" data-id="${segment.id}">${segment.label}</a>
36
+ ` : html `
37
+ <span data-id="${segment.id}">${segment.label}</span>
38
+ `), html `<span class="separator">/</span>`);
39
+ }
40
+ willUpdate() {
41
+ this.path = this.path?.map(segment => {
42
+ let seg;
43
+ if (utils.isObject(segment)) {
44
+ seg = segment;
45
+ }
46
+ else {
47
+ seg = { id: segment };
48
+ }
49
+ seg.label ?? (seg.label = seg.id);
50
+ seg.clickable ?? (seg.clickable = this.clickable);
51
+ return seg;
52
+ });
53
+ }
54
+ };
55
+ BucketPath.styles = [OmegaComponent.styles, css `
56
+ :host {
57
+ font-size: 10px;
58
+ white-space: nowrap;
59
+ display: flex;
60
+ flex-direction: row;
61
+ align-items: center;
62
+ gap: 2px;
63
+ padding: 0 2px;
64
+ background-color: var(--og-background-color);
65
+ }
66
+
67
+ a {
68
+ color: var(--og-accent-color);
69
+ cursor: pointer;
70
+ }
71
+
72
+ a:hover {
73
+ text-decoration: underline;
74
+ }
75
+ `];
76
+ __decorate([
77
+ property({ type: Array })
78
+ ], BucketPath.prototype, "path", void 0);
79
+ __decorate([
80
+ property({ type: Boolean })
81
+ ], BucketPath.prototype, "clickable", void 0);
82
+ BucketPath = __decorate([
83
+ customElement('og-bucket-path')
84
+ ], BucketPath);
85
+ export { BucketPath };
86
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/ui/path.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE5D,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAC;AAC9C,OAAO,EAAE,GAAG,EAAE,MAAM,uBAAuB,CAAC;AAE5C,MAAM,OAAO,eAAgB,SAAQ,KAAK;IAGzC,IAAI,OAAO,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA,CAAC,CAAC;IAE9C,YAAY,IAAY,EAAE,IAA+B;QACxD,KAAK,CAAC,QAAQ,IAAI,EAAE,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC;QACvD,IAAI,IAAI;YAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACrC,CAAC;CACD;AAGM,IAAM,UAAU,GAAhB,MAAM,UAAW,SAAQ,cAAc;IAAvC;;QA4BN,cAAS,GAAG,KAAK,CAAC;QAgBlB,aAAQ,GAAG,CAAC,CAAe,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,CAAC,CAAC,aAA4B,CAAC;YAC9C,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,IAAI,EAAE,EAAE,CAAC;gBACR,IAAI,CAAC,aAAa,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE;oBAC/C,IAAI,EAAE,IAAI,CAAC,IAAqB;oBAChC,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAE,GAAmB,CAAC,EAAE,KAAK,EAAE,CAAC;iBACjE,CAAC,CAAC,CAAC;YACL,CAAC;QACF,CAAC,CAAA;QAED,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAqB,EAAE,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAA;eACzE,IAAI,CAAC,QAAQ,cAAc,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK;EACpE,CAAC,CAAC,CAAC,IAAI,CAAA;mBACU,OAAO,CAAC,EAAE,KAAK,OAAO,CAAC,KAAK;EAC7C,CAAC,EAAE,IAAI,CAAA,kCAAkC,CAAC,CAAC;IAE7C,CAAC;IA/BA,UAAU;QACT,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,OAAO,CAAC,EAAE;YACpC,IAAI,GAAgB,CAAC;YACrB,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC7B,GAAG,GAAG,OAAsB,CAAC;YAC9B,CAAC;iBAAM,CAAC;gBACP,GAAG,GAAG,EAAC,EAAE,EAAE,OAAiB,EAAC,CAAC;YAC/B,CAAC;YACD,GAAG,CAAC,KAAK,KAAT,GAAG,CAAC,KAAK,GAAK,GAAG,CAAC,EAAE,EAAC;YACrB,GAAG,CAAC,SAAS,KAAb,GAAG,CAAC,SAAS,GAAK,IAAI,CAAC,SAAS,EAAC;YACjC,OAAO,GAAG,CAAC;QACZ,CAAC,CAAkB,CAAC;IACrB,CAAC;;AAxCM,iBAAM,GAAG,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;EAoB1C,CAAC,AApBW,CAoBV;AAGH;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,KAAK,EAAC,CAAC;wCACL;AAGnB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;6CACR;AA5BN,UAAU;IADtB,aAAa,CAAC,gBAAgB,CAAC;GACnB,UAAU,CA6DtB","sourcesContent":["import { OmegaComponent, utils } from '@omegagrid/core';\nimport { css, html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport { PathSegment, PathSegments } from '../types';\nimport { join } from 'lit/directives/join.js';\nimport { map } from 'lit/directives/map.js';\n\nexport class BucketPathEvent extends Event {\n\treadonly path: PathSegment[];\n\treadonly index: number;\n\tget segment() { return this.path[this.index] }\n\n\tconstructor(type: string, args?: Partial<BucketPathEvent>) {\n\t\tsuper(`path.${type}`, {bubbles: true, composed: true});\n\t\tif (args) Object.assign(this, args);\n\t}\n}\n\n@customElement('og-bucket-path')\nexport class BucketPath extends OmegaComponent {\n\n\tstatic styles = [OmegaComponent.styles, css`\n\t\t:host {\n\t\t\tfont-size: 10px;\n\t\t\twhite-space: nowrap;\n\t\t\tdisplay: flex;\n\t\t\tflex-direction: row;\n\t\t\talign-items: center;\n\t\t\tgap: 2px;\n\t\t\tpadding: 0 2px;\n\t\t\tbackground-color: var(--og-background-color);\n\t\t}\n\n\t\ta {\n\t\t\tcolor: var(--og-accent-color);\n\t\t\tcursor: pointer;\n\t\t}\n\n\t\ta:hover {\n\t\t\ttext-decoration: underline;\n\t\t}\n\t`];\n\n\t@property({type: Array})\n\tpath: PathSegments;\n\n\t@property({type: Boolean})\n\tclickable = false;\n\n\twillUpdate() {\n\t\tthis.path = this.path?.map(segment => {\n\t\t\tlet seg: PathSegment;\n\t\t\tif (utils.isObject(segment)) {\n\t\t\t\tseg = segment as PathSegment;\n\t\t\t} else {\n\t\t\t\tseg = {id: segment as string};\n\t\t\t}\n\t\t\tseg.label ??= seg.id;\n\t\t\tseg.clickable ??= this.clickable;\n\t\t\treturn seg;\n\t\t}) as PathSegment[];\n\t}\n\n\t_onClick = (e: PointerEvent) => {\n\t\tconst target = e.currentTarget as HTMLElement;\n\t\tconst id = target.dataset.id;\n\t\tif (id) {\n\t\t\tthis.dispatchEvent(new BucketPathEvent('click', {\n\t\t\t\tpath: this.path as PathSegment[],\n\t\t\t\tindex: this.path.findIndex(seg => (seg as PathSegment).id === id)\n\t\t\t}));\n\t\t}\n\t}\n\n\trender = () => join(map(this.path as PathSegment[], segment => segment.clickable ? html`\n\t\t<a @click=\"${this._onClick}\" data-id=\"${segment.id}\">${segment.label}</a>\n\t` : html`\n\t\t<span data-id=\"${segment.id}\">${segment.label}</span>\n\t`), html`<span class=\"separator\">/</span>`);\n\n}"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@omegagrid/bucket",
3
- "version": "0.6.99",
3
+ "version": "0.6.100",
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.99",
32
- "@omegagrid/core": "^0.6.99",
33
- "@omegagrid/dialog": "^0.6.99",
34
- "@omegagrid/tabs": "^0.6.99",
31
+ "@omegagrid/commands": "^0.6.100",
32
+ "@omegagrid/core": "^0.6.100",
33
+ "@omegagrid/dialog": "^0.6.100",
34
+ "@omegagrid/tabs": "^0.6.100",
35
35
  "@riovir/wc-fontawesome": "^0.1.9",
36
36
  "lit": "^3.1.1",
37
37
  "ts-debounce": "^4.0.0"