@omegagrid/bucket 0.10.2 → 0.10.4

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.
Files changed (93) hide show
  1. package/dist/constants.d.ts +54 -0
  2. package/dist/constants.d.ts.map +1 -0
  3. package/dist/constants.js +12 -0
  4. package/dist/constants.js.map +1 -0
  5. package/dist/index.d.ts +3 -0
  6. package/dist/index.d.ts.map +1 -0
  7. package/dist/index.js +3 -0
  8. package/dist/index.js.map +1 -0
  9. package/dist/options.d.ts +12 -0
  10. package/dist/options.d.ts.map +1 -0
  11. package/dist/options.js +16 -0
  12. package/dist/options.js.map +1 -0
  13. package/dist/types.d.ts +87 -0
  14. package/dist/types.d.ts.map +1 -0
  15. package/dist/types.js +2 -0
  16. package/dist/types.js.map +1 -0
  17. package/dist/ui/bucket.alerts.d.ts +17 -0
  18. package/dist/ui/bucket.alerts.d.ts.map +1 -0
  19. package/dist/ui/bucket.alerts.js +47 -0
  20. package/dist/ui/bucket.alerts.js.map +1 -0
  21. package/dist/ui/bucket.components.d.ts +24 -0
  22. package/dist/ui/bucket.components.d.ts.map +1 -0
  23. package/dist/ui/bucket.components.js +111 -0
  24. package/dist/ui/bucket.components.js.map +1 -0
  25. package/dist/ui/bucket.d.ts +83 -0
  26. package/dist/ui/bucket.d.ts.map +1 -0
  27. package/dist/ui/bucket.dialogs.d.ts +11 -0
  28. package/dist/ui/bucket.dialogs.d.ts.map +1 -0
  29. package/dist/ui/bucket.dialogs.js +46 -0
  30. package/dist/ui/bucket.dialogs.js.map +1 -0
  31. package/dist/ui/bucket.js +372 -0
  32. package/dist/ui/bucket.js.map +1 -0
  33. package/dist/ui/bucket.sidebars.d.ts +15 -0
  34. package/dist/ui/bucket.sidebars.d.ts.map +1 -0
  35. package/dist/ui/bucket.sidebars.js +77 -0
  36. package/dist/ui/bucket.sidebars.js.map +1 -0
  37. package/dist/ui/bucket.style.d.ts +3 -0
  38. package/dist/ui/bucket.style.d.ts.map +1 -0
  39. package/dist/ui/bucket.style.js +90 -0
  40. package/dist/ui/bucket.style.js.map +1 -0
  41. package/dist/ui/bucketAlert.d.ts +20 -0
  42. package/dist/ui/bucketAlert.d.ts.map +1 -0
  43. package/dist/ui/bucketAlert.js +114 -0
  44. package/dist/ui/bucketAlert.js.map +1 -0
  45. package/dist/ui/bucketAlert.style.d.ts +2 -0
  46. package/dist/ui/bucketAlert.style.d.ts.map +1 -0
  47. package/dist/ui/bucketAlert.style.js +58 -0
  48. package/dist/ui/bucketAlert.style.js.map +1 -0
  49. package/dist/ui/bucketButton.d.ts +12 -0
  50. package/dist/ui/bucketButton.d.ts.map +1 -0
  51. package/dist/ui/bucketButton.js +105 -0
  52. package/dist/ui/bucketButton.js.map +1 -0
  53. package/dist/ui/commonMenus.d.ts +4 -0
  54. package/dist/ui/commonMenus.d.ts.map +1 -0
  55. package/dist/ui/commonMenus.js +7 -0
  56. package/dist/ui/commonMenus.js.map +1 -0
  57. package/dist/ui/componentHost.d.ts +19 -0
  58. package/dist/ui/componentHost.d.ts.map +1 -0
  59. package/dist/ui/componentHost.js +119 -0
  60. package/dist/ui/componentHost.js.map +1 -0
  61. package/dist/ui/index.d.ts +11 -0
  62. package/dist/ui/index.d.ts.map +1 -0
  63. package/dist/ui/index.js +11 -0
  64. package/dist/ui/index.js.map +1 -0
  65. package/dist/ui/modalSidebar.d.ts +22 -0
  66. package/dist/ui/modalSidebar.d.ts.map +1 -0
  67. package/dist/ui/modalSidebar.js +85 -0
  68. package/dist/ui/modalSidebar.js.map +1 -0
  69. package/dist/ui/modalSidebar.style.d.ts +3 -0
  70. package/dist/ui/modalSidebar.style.d.ts.map +1 -0
  71. package/dist/ui/modalSidebar.style.js +58 -0
  72. package/dist/ui/modalSidebar.style.js.map +1 -0
  73. package/dist/ui/path.d.ts +17 -0
  74. package/dist/ui/path.d.ts.map +1 -0
  75. package/dist/ui/path.js +97 -0
  76. package/dist/ui/path.js.map +1 -0
  77. package/dist/ui/sidebar.d.ts +15 -0
  78. package/dist/ui/sidebar.d.ts.map +1 -0
  79. package/dist/ui/sidebar.js +62 -0
  80. package/dist/ui/sidebar.js.map +1 -0
  81. package/dist/ui/sidemenu.d.ts +23 -0
  82. package/dist/ui/sidemenu.d.ts.map +1 -0
  83. package/dist/ui/sidemenu.js +135 -0
  84. package/dist/ui/sidemenu.js.map +1 -0
  85. package/dist/ui/top.d.ts +14 -0
  86. package/dist/ui/top.d.ts.map +1 -0
  87. package/dist/ui/top.js +64 -0
  88. package/dist/ui/top.js.map +1 -0
  89. package/dist/ui/top.style.d.ts +3 -0
  90. package/dist/ui/top.style.d.ts.map +1 -0
  91. package/dist/ui/top.style.js +35 -0
  92. package/dist/ui/top.style.js.map +1 -0
  93. package/package.json +6 -6
@@ -0,0 +1,85 @@
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 { dom } from '@omegagrid/core';
8
+ import { LitElement, html } from 'lit';
9
+ import { customElement, property, query } from 'lit/decorators.js';
10
+ import style from './modalSidebar.style';
11
+ let ModalSidebar = class ModalSidebar extends LitElement {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.closable = false;
15
+ // _onSave = () => {
16
+ // if (!this.isEdited) return;
17
+ // this.bucket.editorContainer.model.walk(tab => {
18
+ // if (tab.id == this.componentId) tab.unsaved = false;
19
+ // });
20
+ // this.isEdited = false;
21
+ // this.bucket.editorContainer.updateTabs();
22
+ // }
23
+ this.showLoader = () => this.overlay.show(this);
24
+ this.hideLoader = () => this.overlay.hide();
25
+ this._onClose = () => {
26
+ this.close();
27
+ };
28
+ this.render = () => html `
29
+ <div class="header">
30
+ <div class="title">${this.caption}</div>
31
+ ${this.closable ? html `<div class="close" @click="${() => this.close()}">&times</div>` : ``}
32
+ </div>
33
+ <div class="body"></div>
34
+ <og-overlay defaultLoader></og-overlay>
35
+ `;
36
+ }
37
+ // private isEdited = false;
38
+ layout() {
39
+ this.component?.layout();
40
+ }
41
+ disconnectedCallback() {
42
+ this.component?.removeEventListener('close', this._onClose);
43
+ }
44
+ async updated(props) {
45
+ if (props.has('componentId') && this.componentId) {
46
+ this.showLoader();
47
+ const component = await this.bucket.components.get(this.componentId);
48
+ this.component = component;
49
+ dom.empty(this.body);
50
+ this.body.appendChild(component);
51
+ // component.removeEventListener('save', this._onSave);
52
+ // component.addEventListener('save', this._onSave);
53
+ component.addEventListener('close', this._onClose, { once: true });
54
+ component.focus();
55
+ this.hideLoader();
56
+ }
57
+ }
58
+ close() {
59
+ this.bucket.sidebars.closeModalSidebar();
60
+ }
61
+ };
62
+ ModalSidebar.styles = [style];
63
+ __decorate([
64
+ property({ type: String })
65
+ ], ModalSidebar.prototype, "caption", void 0);
66
+ __decorate([
67
+ property({ type: Boolean })
68
+ ], ModalSidebar.prototype, "closable", void 0);
69
+ __decorate([
70
+ property({ type: Object })
71
+ ], ModalSidebar.prototype, "bucket", void 0);
72
+ __decorate([
73
+ property({ type: String })
74
+ ], ModalSidebar.prototype, "componentId", void 0);
75
+ __decorate([
76
+ query('.body')
77
+ ], ModalSidebar.prototype, "body", void 0);
78
+ __decorate([
79
+ query('og-overlay')
80
+ ], ModalSidebar.prototype, "overlay", void 0);
81
+ ModalSidebar = __decorate([
82
+ customElement('og-bucket-modal-sidebar')
83
+ ], ModalSidebar);
84
+ export { ModalSidebar };
85
+ //# sourceMappingURL=modalSidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modalSidebar.js","sourceRoot":"","sources":["../../src/ui/modalSidebar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAe,GAAG,EAAmB,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,KAAK,MAAM,sBAAsB,CAAC;AAGlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,UAAU;IAArC;;QAQN,aAAQ,GAAG,KAAK,CAAC;QAqBjB,oBAAoB;QACpB,+BAA+B;QAC/B,mDAAmD;QACnD,yDAAyD;QACzD,OAAO;QACP,0BAA0B;QAC1B,6CAA6C;QAC7C,IAAI;QAEJ,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC3C,eAAU,GAAG,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAEvC,aAAQ,GAAG,GAAG,EAAE;YACf,IAAI,CAAC,KAAK,EAAE,CAAC;QACd,CAAC,CAAA;QAyBD,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;;wBAEI,IAAI,CAAC,OAAO;KAC/B,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAA,8BAA8B,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE;;;;EAI5F,CAAC;IAEH,CAAC;IAtDA,4BAA4B;IAE5B,MAAM;QACJ,IAAI,CAAC,SAAoB,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC;IAkBD,oBAAoB;QACnB,IAAI,CAAC,SAAS,EAAE,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgC;QAC7C,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YAClD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;YAC3B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;YACjC,uDAAuD;YACvD,oDAAoD;YACpD,SAAS,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAC,IAAI,EAAE,IAAI,EAAC,CAAC,CAAC;YACjE,SAAS,CAAC,KAAK,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,EAAE,CAAC;QACnB,CAAC;IACF,CAAC;IAED,KAAK;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;IAC1C,CAAC;;AAhEM,mBAAM,GAAG,CAAC,KAAK,CAAC,AAAV,CAAW;AAGxB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;6CACT;AAGhB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;8CACT;AAGjB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACV;AAGf;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;iDACA;AAGzB;IADC,KAAK,CAAC,OAAO,CAAC;0CACM;AAGrB;IADC,KAAK,CAAC,YAAY,CAAC;6CACH;AApBL,YAAY;IADxB,aAAa,CAAC,yBAAyB,CAAC;GAC5B,YAAY,CA6ExB","sourcesContent":["import { ComponentId, dom, Layout, Overlay } from '@omegagrid/core';\nimport { LitElement, html } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { Bucket } from './bucket';\nimport style from './modalSidebar.style';\n\n@customElement('og-bucket-modal-sidebar')\nexport class ModalSidebar extends LitElement implements Layout {\n\n\tstatic styles = [style];\n\n\t@property({type: String})\n\tcaption: string;\n\n\t@property({type: Boolean})\n\tclosable = false;\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\t@query('og-overlay')\n\toverlay: Overlay;\n\n\tprivate component: HTMLElement;\n\t// private isEdited = false;\n\n\tlayout() {\n\t\t(this.component as Layout)?.layout();\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// }\n\n\tshowLoader = () => this.overlay.show(this);\n\thideLoader = () => this.overlay.hide();\n\n\t_onClose = () => {\n\t\tthis.close();\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis.component?.removeEventListener('close', this._onClose);\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (props.has('componentId') && this.componentId) {\n\t\t\tthis.showLoader();\n\t\t\tconst component = await this.bucket.components.get(this.componentId);\n\t\t\tthis.component = component;\n\t\t\tdom.empty(this.body);\n\t\t\tthis.body.appendChild(component);\n\t\t\t// component.removeEventListener('save', this._onSave);\n\t\t\t// component.addEventListener('save', this._onSave);\n\t\t\tcomponent.addEventListener('close', this._onClose, {once: true});\n\t\t\tcomponent.focus();\n\t\t\tthis.hideLoader();\n\t\t}\n\t}\n\n\tclose() {\n\t\tthis.bucket.sidebars.closeModalSidebar();\n\t}\n\n\trender = () => html`\n\t\t<div class=\"header\">\n\t\t\t<div class=\"title\">${this.caption}</div>\n\t\t\t${this.closable ? html`<div class=\"close\" @click=\"${() => this.close()}\">&times</div>` : ``}\n\t\t</div>\n\t\t<div class=\"body\"></div>\n\t\t<og-overlay defaultLoader></og-overlay>\n\t`;\n\n}"]}
@@ -0,0 +1,3 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
3
+ //# sourceMappingURL=modalSidebar.style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modalSidebar.style.d.ts","sourceRoot":"","sources":["../../src/ui/modalSidebar.style.ts"],"names":[],"mappings":";AAGA,wBAsDE"}
@@ -0,0 +1,58 @@
1
+ import { css } from 'lit';
2
+ import constants from '../constants';
3
+ export default css `
4
+ :host {
5
+ display: flex;
6
+ position: relative;
7
+ flex-direction: column;
8
+ background-color: var(--og-bucket-sidebar-background-color);
9
+ box-shadow: 8px 8px 4px -3px var(--og-dialog-shadow);
10
+ }
11
+
12
+ :host(.right) {
13
+ box-shadow: -8px 8px 4px -3px var(--og-dialog-shadow);
14
+ }
15
+
16
+ * {
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ .header {
21
+ display: flex;
22
+ min-height: ${constants.SIDEBAR_HEADER_HEIGHT}px;
23
+ line-height: ${constants.SIDEBAR_HEADER_HEIGHT}px;
24
+ padding: 0 10px;
25
+ flex: 0;
26
+ }
27
+
28
+ .title {
29
+ font-size: var(--og-font-size);
30
+ overflow: hidden;
31
+ white-space: nowrap;
32
+ text-overflow: ellipsis;
33
+ flex: 1;
34
+ }
35
+
36
+ .close {
37
+ flex: 0;
38
+ margin-top: ${constants.SIDEBAR_HEADER_HEIGHT / 4}px;
39
+ min-width: ${constants.SIDEBAR_HEADER_HEIGHT / 2}px;
40
+ height: ${constants.SIDEBAR_HEADER_HEIGHT / 2}px;
41
+ line-height: ${constants.SIDEBAR_HEADER_HEIGHT / 2}px;
42
+ border-radius: var(--og-base-radius);
43
+ cursor: pointer;
44
+ text-align: center;
45
+ }
46
+
47
+ .close:hover {
48
+ background-color: var(--og-accent-color);
49
+ color: var(--og-text-color-2);
50
+ }
51
+
52
+ .body {
53
+ flex: 1;
54
+ overflow: hidden;
55
+ }
56
+
57
+ `;
58
+ //# sourceMappingURL=modalSidebar.style.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modalSidebar.style.js","sourceRoot":"","sources":["../../src/ui/modalSidebar.style.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC1B,OAAO,SAAS,MAAM,cAAc,CAAC;AAErC,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;;gBAmBF,SAAS,CAAC,qBAAqB;iBAC9B,SAAS,CAAC,qBAAqB;;;;;;;;;;;;;;;gBAehC,SAAS,CAAC,qBAAqB,GAAG,CAAC;eACpC,SAAS,CAAC,qBAAqB,GAAG,CAAC;YACtC,SAAS,CAAC,qBAAqB,GAAG,CAAC;iBAC9B,SAAS,CAAC,qBAAqB,GAAG,CAAC;;;;;;;;;;;;;;;;CAgBnD,CAAC","sourcesContent":["import { css } from 'lit';\nimport constants from '../constants';\n\nexport default css`\n\t:host {\n\t\tdisplay: flex;\n\t\tposition: relative;\n\t\tflex-direction: column;\n\t\tbackground-color: var(--og-bucket-sidebar-background-color);\n\t\tbox-shadow: 8px 8px 4px -3px var(--og-dialog-shadow);\n\t}\n\n\t:host(.right) {\n\t\tbox-shadow: -8px 8px 4px -3px var(--og-dialog-shadow);\n\t}\n\n\t* {\n\t\tbox-sizing: border-box;\n\t}\n\n\t.header {\n\t\tdisplay: flex;\n\t\tmin-height: ${constants.SIDEBAR_HEADER_HEIGHT}px;\n\t\tline-height: ${constants.SIDEBAR_HEADER_HEIGHT}px;\n\t\tpadding: 0 10px;\n\t\tflex: 0;\n\t}\n\n\t.title {\n\t\tfont-size: var(--og-font-size);\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tflex: 1;\n\t}\n\n\t.close {\n\t\tflex: 0;\n\t\tmargin-top: ${constants.SIDEBAR_HEADER_HEIGHT / 4}px;\n\t\tmin-width: ${constants.SIDEBAR_HEADER_HEIGHT / 2}px;\n\t\theight: ${constants.SIDEBAR_HEADER_HEIGHT / 2}px;\n\t\tline-height: ${constants.SIDEBAR_HEADER_HEIGHT / 2}px;\n\t\tborder-radius: var(--og-base-radius);\n\t\tcursor: pointer;\n\t\ttext-align: center;\n\t}\n\t\n\t.close:hover {\n\t\tbackground-color: var(--og-accent-color);\n\t\tcolor: var(--og-text-color-2);\n\t}\n\n\t.body {\n\t\tflex: 1;\n\t\toverflow: hidden;\n\t}\n\t\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,iCAyBV;IAGH,IAAI,EAAE,YAAY,CAAC;IAGnB,SAAS,UAAS;IAElB,UAAU;IAcV,QAAQ,GAAI,GAAG,YAAY,UAS1B;IAED,MAAM,0BAUsC;CAE5C"}
@@ -0,0 +1,97 @@
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}">
36
+ ${segment.icon ? html `<og-icon .icon="${segment.icon}"></og-icon>` : ''}
37
+ ${segment.label}
38
+ </a>
39
+ ` : html `
40
+ <span data-id="${segment.id}">
41
+ ${segment.icon ? html `<og-icon .icon="${segment.icon}"></og-icon>` : ''}
42
+ ${segment.label}
43
+ </span>
44
+ `), html `<span class="separator">/</span>`);
45
+ }
46
+ willUpdate() {
47
+ this.path = this.path?.map(segment => {
48
+ let seg;
49
+ if (utils.isObject(segment)) {
50
+ seg = segment;
51
+ }
52
+ else {
53
+ seg = { id: segment };
54
+ }
55
+ seg.label ?? (seg.label = seg.id);
56
+ seg.clickable ?? (seg.clickable = this.clickable);
57
+ return seg;
58
+ });
59
+ }
60
+ };
61
+ BucketPath.styles = [OmegaComponent.styles, css `
62
+ :host {
63
+ font-size: 10px;
64
+ white-space: nowrap;
65
+ display: flex;
66
+ flex-direction: row;
67
+ align-items: center;
68
+ gap: 2px;
69
+ padding: 0 2px;
70
+ background-color: var(--og-background-color);
71
+ }
72
+
73
+ a {
74
+ color: var(--og-accent-color);
75
+ cursor: pointer;
76
+ }
77
+
78
+ a:hover {
79
+ text-decoration: underline;
80
+ }
81
+
82
+ og-icon {
83
+ margin-right: -4px;
84
+ display: inline;
85
+ }
86
+ `];
87
+ __decorate([
88
+ property({ type: Array })
89
+ ], BucketPath.prototype, "path", void 0);
90
+ __decorate([
91
+ property({ type: Boolean })
92
+ ], BucketPath.prototype, "clickable", void 0);
93
+ BucketPath = __decorate([
94
+ customElement('og-bucket-path')
95
+ ], BucketPath);
96
+ export { BucketPath };
97
+ //# sourceMappingURL=path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"path.js","sourceRoot":"","sources":["../../src/ui/path.ts"],"names":[],"mappings":"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","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\n\t\tog-icon {\n\t\t\tmargin-right: -4px;\n\t\t\tdisplay: inline;\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}\">\n\t\t\t${segment.icon ? html`<og-icon .icon=\"${segment.icon}\"></og-icon>` : ''}\n\t\t\t${segment.label}\n\t\t</a>\n\t` : html`\n\t\t<span data-id=\"${segment.id}\">\n\t\t\t${segment.icon ? html`<og-icon .icon=\"${segment.icon}\"></og-icon>` : ''}\n\t\t\t${segment.label}\n\t\t</span>\n\t`), html`<span class=\"separator\">/</span>`);\n\n}"]}
@@ -0,0 +1,15 @@
1
+ import { Layout } from '@omegagrid/core';
2
+ import { LitElement } from 'lit';
3
+ import { Bucket } from './bucket';
4
+ export declare class Sidebar extends LitElement implements Layout {
5
+ static styles: import("lit").CSSResult;
6
+ bucket: Bucket;
7
+ componentId: string;
8
+ container: HTMLDivElement;
9
+ private _component;
10
+ loadComponent(id?: string): Promise<void>;
11
+ updated(props: Map<PropertyKey, unknown>): Promise<void>;
12
+ layout(): void;
13
+ render: () => import("lit-html").TemplateResult<1>;
14
+ }
15
+ //# sourceMappingURL=sidebar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.d.ts","sourceRoot":"","sources":["../../src/ui/sidebar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAO,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAE5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBACa,OAAQ,SAAQ,UAAW,YAAW,MAAM;IAExD,MAAM,CAAC,MAAM,0BAcX;IAGF,MAAM,EAAE,MAAM,CAAC;IAGf,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,cAAc,CAAC;IAE1B,OAAO,CAAC,UAAU,CAAc;IAE1B,aAAa,CAAC,EAAE,CAAC,EAAE,MAAM;IAMzB,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC;IAQ9C,MAAM;IAMN,MAAM,6CAA2B;CAEjC"}
@@ -0,0 +1,62 @@
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 { dom } from '@omegagrid/core';
8
+ import { LitElement, html, css } from 'lit';
9
+ import { customElement, property, query } from 'lit/decorators.js';
10
+ let Sidebar = class Sidebar extends LitElement {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.render = () => html `<div></div>`;
14
+ }
15
+ async loadComponent(id) {
16
+ dom.empty(this.container);
17
+ this._component = await this.bucket.components.get(id);
18
+ if (this._component)
19
+ this.container.appendChild(this._component);
20
+ }
21
+ async updated(props) {
22
+ if (!this.bucket)
23
+ return;
24
+ if (props.has('componentId')) {
25
+ this.loadComponent(this.componentId);
26
+ }
27
+ }
28
+ layout() {
29
+ if (this._component?.layout) {
30
+ this._component.layout();
31
+ }
32
+ }
33
+ };
34
+ Sidebar.styles = css `
35
+ :host {
36
+ display: block;
37
+ color: var(--og-text-color);
38
+ background-color: var(--og-background-color);
39
+ }
40
+
41
+ * {
42
+ box-sizing: border-box;
43
+ }
44
+
45
+ div {
46
+ height: 100%;
47
+ }
48
+ `;
49
+ __decorate([
50
+ property({ type: Object })
51
+ ], Sidebar.prototype, "bucket", void 0);
52
+ __decorate([
53
+ property({ type: String })
54
+ ], Sidebar.prototype, "componentId", void 0);
55
+ __decorate([
56
+ query('div')
57
+ ], Sidebar.prototype, "container", void 0);
58
+ Sidebar = __decorate([
59
+ customElement('og-bucket-sidebar')
60
+ ], Sidebar);
61
+ export { Sidebar };
62
+ //# sourceMappingURL=sidebar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidebar.js","sourceRoot":"","sources":["../../src/ui/sidebar.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,GAAG,EAAU,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAI5D,IAAM,OAAO,GAAb,MAAM,OAAQ,SAAQ,UAAU;IAAhC;;QAiDN,WAAM,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA,aAAa,CAAC;IAElC,CAAC;IAtBA,KAAK,CAAC,aAAa,CAAC,EAAW;QAC9B,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACvD,IAAI,IAAI,CAAC,UAAU;YAAE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAClE,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAgC;QAC7C,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAEzB,IAAI,KAAK,CAAC,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACtC,CAAC;IACF,CAAC;IAED,MAAM;QACL,IAAK,IAAI,CAAC,UAAqB,EAAE,MAAM,EAAE,CAAC;YACxC,IAAI,CAAC,UAAqB,CAAC,MAAM,EAAE,CAAC;QACtC,CAAC;IACF,CAAC;;AA7CM,cAAM,GAAG,GAAG,CAAA;;;;;;;;;;;;;;EAclB,AAdY,CAcX;AAGF;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;uCACV;AAGf;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,MAAM,EAAC,CAAC;4CACL;AAGpB;IADC,KAAK,CAAC,KAAK,CAAC;0CACa;AAzBd,OAAO;IADnB,aAAa,CAAC,mBAAmB,CAAC;GACtB,OAAO,CAmDnB","sourcesContent":["import { dom, Layout } from '@omegagrid/core';\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { Bucket } from './bucket';\n\n@customElement('og-bucket-sidebar')\nexport class Sidebar extends LitElement implements Layout {\n\n\tstatic styles = css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t\tcolor: var(--og-text-color);\n\t\t\tbackground-color: var(--og-background-color);\n\t\t}\n\t\t\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\tdiv {\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\t@property({type: Object})\n\tbucket: Bucket;\n\n\t@property({type: String})\n\tcomponentId: string;\n\n\t@query('div')\n\tcontainer: HTMLDivElement;\n\t\n\tprivate _component: HTMLElement;\n\t\n\tasync loadComponent(id?: string) {\n\t\tdom.empty(this.container);\n\t\tthis._component = await this.bucket.components.get(id);\n\t\tif (this._component) this.container.appendChild(this._component);\n\t}\n\n\tasync updated(props: Map<PropertyKey, unknown>) {\n\t\tif (!this.bucket) return;\n\n\t\tif (props.has('componentId')) {\n\t\t\tthis.loadComponent(this.componentId);\n\t\t}\n\t}\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\t\n\trender = () => html`<div></div>`;\n\n}"]}
@@ -0,0 +1,23 @@
1
+ import { List, ListItemElement, Tooltip } from '@omegagrid/core';
2
+ import { LitElement } from 'lit';
3
+ import { SidemenuSettings } from '../types';
4
+ export declare class Sidemenu extends LitElement {
5
+ settings: SidemenuSettings;
6
+ list: List;
7
+ static styles: import("lit").CSSResult;
8
+ private tooltipRef;
9
+ get tooltip(): Tooltip;
10
+ get count(): number;
11
+ private _hideTimer;
12
+ private items;
13
+ selectItem(id: string): void;
14
+ constructor();
15
+ requestHide(): void;
16
+ _onMouseMove: (_e: MouseEvent, elm: ListItemElement) => void;
17
+ updated(): Promise<void>;
18
+ updateActiveIndex(): void;
19
+ firstUpdated(): void;
20
+ _itemRenderer: (div: HTMLDivElement, index: number) => Promise<void>;
21
+ render: () => import("lit-html").TemplateResult<1>;
22
+ }
23
+ //# sourceMappingURL=sidemenu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidemenu.d.ts","sourceRoot":"","sources":["../../src/ui/sidemenu.ts"],"names":[],"mappings":"AACA,OAAO,EAAuB,IAAI,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AACtF,OAAO,EAAE,UAAU,EAAa,MAAM,KAAK,CAAC;AAG5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAqB5C,qBACa,QAAS,SAAQ,UAAU;IAGvC,QAAQ,EAAE,gBAAgB,CAAC;IAG3B,IAAI,EAAE,IAAI,CAAC;IAEX,MAAM,CAAC,MAAM,0BAYX;IAEF,OAAO,CAAC,UAAU,CAAwB;IAC1C,IAAI,OAAO,YAAqC;IAEhD,IAAI,KAAK,WAA+C;IAExD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,KAAK,CASV;IAEH,UAAU,CAAC,EAAE,EAAE,MAAM;;IAkBrB,WAAW;IASX,YAAY,GAAI,IAAI,UAAU,EAAE,KAAK,eAAe,UAQnD;IAEK,OAAO;IAOb,iBAAiB;IAOjB,YAAY;IAIZ,aAAa,GAAU,KAAK,cAAc,EAAE,OAAO,MAAM,mBAIxD;IAED,MAAM,6CAcJ;CAEF"}
@@ -0,0 +1,135 @@
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 constants from '../constants';
8
+ import { ComponentStore, dom } from '@omegagrid/core';
9
+ import { LitElement, html, css } from 'lit';
10
+ import { customElement, property, query } from 'lit/decorators.js';
11
+ import { createRef, ref } from 'lit/directives/ref.js';
12
+ const itemStyle = css `
13
+ .item {
14
+ vertical-align: middle;
15
+ text-align: center;
16
+ border-bottom: 1px solid var(--og-border-color);
17
+ color: var(--og-text-color);
18
+
19
+ }
20
+
21
+ .item, .item.selected {
22
+ background-color: var(--og-background-color) !important;
23
+ }
24
+
25
+ .item.selected og-bucket-button, .item:hover og-bucket-button {
26
+ color: var(--og-text-color-3);
27
+ }
28
+ `;
29
+ let Sidemenu = class Sidemenu extends LitElement {
30
+ get tooltip() { return this.tooltipRef?.value; }
31
+ get count() { return this.settings?.items?.length ?? 0; }
32
+ selectItem(id) {
33
+ const index = this.settings?.items.findIndex(item => item.id === id);
34
+ if (index >= 0) {
35
+ this.list.select(index);
36
+ this.updateActiveIndex();
37
+ }
38
+ }
39
+ constructor() {
40
+ super();
41
+ this.tooltipRef = createRef();
42
+ this.items = new ComponentStore((index) => {
43
+ const item = this.settings?.items[index];
44
+ const b = dom.createElement('og-bucket-button', {
45
+ active: this.settings?.activeIndex === index,
46
+ text: item.text,
47
+ icon: item.icon,
48
+ statusIcon: ['fas', item.statusIcon]
49
+ });
50
+ return b;
51
+ });
52
+ this._onMouseMove = (_e, elm) => {
53
+ const tooltip = this.settings.items[elm.index].tooltip;
54
+ if (tooltip) {
55
+ this.tooltip.querySelector('[slot="body"]').innerText = tooltip;
56
+ this.tooltip.attachTo(elm, 'right');
57
+ }
58
+ else {
59
+ this.tooltip.deatach();
60
+ }
61
+ };
62
+ this._itemRenderer = async (div, index) => {
63
+ const item = await this.items.get(index);
64
+ dom.empty(div);
65
+ div.appendChild(item);
66
+ };
67
+ this.render = () => html `
68
+ <og-list
69
+ .size="${this.count}"
70
+ ?nativeHeight="${true}"
71
+ .customStyle="${itemStyle}"
72
+ sliderSize="6"
73
+ itemHeight="${constants.SIDEMENU_WIDTH}"
74
+ .itemRenderer="${this._itemRenderer}"
75
+ @select="${() => this.updateActiveIndex()}">
76
+ </og-list>
77
+
78
+ <og-tooltip ${ref(this.tooltipRef)} style="max-width: 300px; display: none">
79
+ <div style="padding: 5px" slot="body"></div>
80
+ </og-tooltip>
81
+ `;
82
+ dom.debounceOn(this, 'mousemove', '.item', this._onMouseMove, { wait: 10, noMatchCallback: () => {
83
+ this.tooltip.deatach();
84
+ } });
85
+ dom.on(this, 'mouseout', '.item', () => this.requestHide());
86
+ dom.on(this, 'mouseleave', '.item', () => this.requestHide());
87
+ }
88
+ requestHide() {
89
+ if (this._hideTimer == null) {
90
+ this._hideTimer = window.setTimeout(() => {
91
+ this.tooltip.deatach();
92
+ this._hideTimer = null;
93
+ }, 100);
94
+ }
95
+ }
96
+ async updated() {
97
+ if (this.settings?.activeIndex >= 0) {
98
+ this.list.select(this.settings?.activeIndex);
99
+ this.updateActiveIndex();
100
+ }
101
+ }
102
+ updateActiveIndex() {
103
+ this.settings.activeIndex = this.list.selectedIndex;
104
+ this.items.forEach((item, index) => {
105
+ item.active = index === this.settings.activeIndex;
106
+ });
107
+ }
108
+ firstUpdated() {
109
+ document.body.appendChild(this.tooltip);
110
+ }
111
+ };
112
+ Sidemenu.styles = css `
113
+ :host {
114
+ display: block;
115
+ }
116
+
117
+ * {
118
+ box-sizing: border-box;
119
+ }
120
+
121
+ og-list {
122
+ height: 100%;
123
+ }
124
+ `;
125
+ __decorate([
126
+ property({ type: Object })
127
+ ], Sidemenu.prototype, "settings", void 0);
128
+ __decorate([
129
+ query('og-list')
130
+ ], Sidemenu.prototype, "list", void 0);
131
+ Sidemenu = __decorate([
132
+ customElement('og-bucket-sidemenu')
133
+ ], Sidemenu);
134
+ export { Sidemenu };
135
+ //# sourceMappingURL=sidemenu.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sidemenu.js","sourceRoot":"","sources":["../../src/ui/sidemenu.ts"],"names":[],"mappings":"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","sourcesContent":["import constants from '../constants';\nimport { ComponentStore, dom, List, ListItemElement, Tooltip } from '@omegagrid/core';\nimport { LitElement, html, css } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\nimport { createRef, ref } from 'lit/directives/ref.js';\nimport { SidemenuSettings } from '../types';\nimport { BucketButton } from './bucketButton';\n\nconst itemStyle = css`\n\t.item {\n\t\tvertical-align: middle;\n\t\ttext-align: center;\n\t\tborder-bottom: 1px solid var(--og-border-color);\n\t\tcolor: var(--og-text-color);\n\t\t\n\t}\n\n\t.item, .item.selected {\n\t\tbackground-color: var(--og-background-color) !important;\n\t}\n\n\t.item.selected og-bucket-button, .item:hover og-bucket-button {\n\t\tcolor: var(--og-text-color-3);\n\t}\n`;\n\n@customElement('og-bucket-sidemenu')\nexport class Sidemenu extends LitElement {\n\n\t@property({type: Object})\n\tsettings: SidemenuSettings;\n\n\t@query('og-list')\n\tlist: List;\n\n\tstatic styles = css`\n\t\t:host {\n\t\t\tdisplay: block;\n\t\t}\n\n\t\t* {\n\t\t\tbox-sizing: border-box;\n\t\t}\n\n\t\tog-list {\n\t\t\theight: 100%;\n\t\t}\n\t`;\n\n\tprivate tooltipRef = createRef<Tooltip>();\n\tget tooltip() { return this.tooltipRef?.value; }\n\n\tget count() { return this.settings?.items?.length ?? 0 }\n\n\tprivate _hideTimer: number;\n\tprivate items = new ComponentStore<BucketButton>((index: number) => {\n\t\tconst item = this.settings?.items[index];\n\t\tconst b = dom.createElement<BucketButton>('og-bucket-button', {\n\t\t\tactive: this.settings?.activeIndex === index,\n\t\t\ttext: item.text,\n\t\t\ticon: item.icon,\n\t\t\tstatusIcon: ['fas', item.statusIcon]\n\t\t});\n\t\treturn b\n\t});\n\n\tselectItem(id: string) {\n\t\tconst index = this.settings?.items.findIndex(item => item.id === id);\n\t\tif (index >= 0) {\n\t\t\tthis.list.select(index);\n\t\t\tthis.updateActiveIndex();\n\t\t}\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tdom.debounceOn(this, 'mousemove', '.item', this._onMouseMove, {wait: 10, noMatchCallback: () => {\n\t\t\tthis.tooltip.deatach();\n\t\t}});\n\n\t\tdom.on(this, 'mouseout', '.item', () => this.requestHide());\n\t\tdom.on(this, 'mouseleave', '.item', () => this.requestHide());\n\t}\n\n\trequestHide() {\n\t\tif (this._hideTimer == null) {\n\t\t\tthis._hideTimer = window.setTimeout(() => {\n\t\t\t\tthis.tooltip.deatach();\n\t\t\t\tthis._hideTimer = null;\n\t\t\t}, 100)\n\t\t}\n\t}\n\t\n\t_onMouseMove = (_e: MouseEvent, elm: ListItemElement) => {\n\t\tconst tooltip = this.settings.items[elm.index].tooltip;\n\t\tif (tooltip) {\n\t\t\t(this.tooltip.querySelector('[slot=\"body\"]') as HTMLDivElement).innerText = tooltip;\n\t\t\tthis.tooltip.attachTo(elm, 'right');\n\t\t} else {\n\t\t\tthis.tooltip.deatach();\n\t\t}\n\t}\n\n\tasync updated() {\n\t\tif (this.settings?.activeIndex >= 0) {\n\t\t\tthis.list.select(this.settings?.activeIndex);\n\t\t\tthis.updateActiveIndex();\n\t\t}\n\t}\n\n\tupdateActiveIndex() {\n\t\tthis.settings.activeIndex = this.list.selectedIndex;\n\t\tthis.items.forEach((item, index) => {\n\t\t\titem.active = index === this.settings.activeIndex;\n\t\t});\n\t}\n\n\tfirstUpdated() {\n\t\tdocument.body.appendChild(this.tooltip);\n\t}\n\n\t_itemRenderer = async (div: HTMLDivElement, index: number) => {\n\t\tconst item = await this.items.get(index);\n\t\tdom.empty(div);\n\t\tdiv.appendChild(item);\n\t}\n\n\trender = () => html`\n\t\t<og-list\n\t\t\t.size=\"${this.count}\"\n\t\t\t?nativeHeight=\"${true}\"\n\t\t\t.customStyle=\"${itemStyle}\"\n\t\t\tsliderSize=\"6\"\n\t\t\titemHeight=\"${constants.SIDEMENU_WIDTH}\"\n\t\t\t.itemRenderer=\"${this._itemRenderer}\"\n\t\t\t@select=\"${() => this.updateActiveIndex()}\">\n\t\t</og-list>\n\n\t\t<og-tooltip ${ref(this.tooltipRef)} style=\"max-width: 300px; display: none\">\n\t\t\t<div style=\"padding: 5px\" slot=\"body\"></div>\n\t\t</og-tooltip>\n\t`;\n\n}"]}
@@ -0,0 +1,14 @@
1
+ import { Bucket } from './bucket';
2
+ import { Layout, OmegaComponent } from '@omegagrid/core';
3
+ export declare class BucketTop extends OmegaComponent implements Layout {
4
+ static styles: import("lit").CSSResult[];
5
+ get bucket(): Bucket;
6
+ items: NodeListOf<HTMLDivElement>;
7
+ leftItem: HTMLDivElement;
8
+ leftItemWidth: number;
9
+ updated(): Promise<void>;
10
+ firstUpdated(): void;
11
+ render: () => import("lit-html").TemplateResult<1>;
12
+ layout(): void;
13
+ }
14
+ //# sourceMappingURL=top.d.ts.map
@@ -0,0 +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,6CAOJ;IAEF,MAAM;CAQN"}
package/dist/ui/top.js ADDED
@@ -0,0 +1,64 @@
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 { html } from 'lit';
8
+ import { customElement, query, queryAll } from 'lit/decorators.js';
9
+ import style from './top.style';
10
+ import { dom, OmegaComponent } from '@omegagrid/core';
11
+ let BucketTop = class BucketTop extends OmegaComponent {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.leftItemWidth = 250;
15
+ this.render = () => html `
16
+ <div class="item" id="logo" data-component="bucket-logo"></div>
17
+ ${this.bucket?.compact ? '' : html `
18
+ <div class="item" id="left" data-component="bucket-topLeft"></div>
19
+ `}
20
+ <div class="item" id="center" data-component="bucket-topCenter"></div>
21
+ <div class="item" id="right" data-component="bucket-topRight"></div>
22
+ `;
23
+ }
24
+ get bucket() { return this.parentComponent; }
25
+ async updated() {
26
+ if (!this.bucket)
27
+ return;
28
+ let visible = false;
29
+ for (const item of this.items) {
30
+ const component = await this.bucket.components.get(item.dataset.component);
31
+ dom.empty(item);
32
+ if (component) {
33
+ item.appendChild(component);
34
+ visible = true;
35
+ }
36
+ }
37
+ if (!visible)
38
+ dom.hideElement(this);
39
+ }
40
+ firstUpdated() {
41
+ this.layout();
42
+ }
43
+ layout() {
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 });
50
+ }
51
+ }
52
+ };
53
+ BucketTop.styles = [style];
54
+ __decorate([
55
+ queryAll('.item')
56
+ ], BucketTop.prototype, "items", void 0);
57
+ __decorate([
58
+ query('#left')
59
+ ], BucketTop.prototype, "leftItem", void 0);
60
+ BucketTop = __decorate([
61
+ customElement('og-bucket-top')
62
+ ], BucketTop);
63
+ export { BucketTop };
64
+ //# sourceMappingURL=top.js.map