@sankhyalabs/ezui 5.20.4 → 5.21.0-dev.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -5
- package/dist/cjs/{CSSVarsUtils-b136a156.js → CSSVarsUtils-10c9d5b4.js} +13 -0
- package/dist/cjs/ez-actions-button.cjs.entry.js +2 -2
- package/dist/cjs/ez-alert-list.cjs.entry.js +121 -49
- package/dist/cjs/ez-alert.cjs.entry.js +1 -1
- package/dist/cjs/ez-application.cjs.entry.js +1 -1
- package/dist/cjs/ez-badge.cjs.entry.js +1 -1
- package/dist/cjs/ez-breadcrumb.cjs.entry.js +1 -1
- package/dist/cjs/ez-button.cjs.entry.js +1 -1
- package/dist/cjs/ez-calendar.cjs.entry.js +1 -1
- package/dist/cjs/ez-card-item_3.cjs.entry.js +183 -0
- package/dist/cjs/ez-check.cjs.entry.js +2 -2
- package/dist/cjs/ez-chip.cjs.entry.js +1 -1
- package/dist/cjs/ez-collapsible-box.cjs.entry.js +1 -1
- package/dist/cjs/ez-combo-box.cjs.entry.js +20 -163
- package/dist/cjs/ez-date-input.cjs.entry.js +2 -2
- package/dist/cjs/ez-date-time-input.cjs.entry.js +2 -2
- package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
- package/dist/cjs/ez-dropdown.cjs.entry.js +10 -4
- package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
- package/dist/cjs/ez-form-view.cjs.entry.js +35 -16
- package/dist/cjs/ez-form.cjs.entry.js +1 -1
- package/dist/cjs/ez-grid.cjs.entry.js +132 -58
- package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
- package/dist/cjs/ez-icon.cjs.entry.js +2 -2
- package/dist/cjs/ez-list.cjs.entry.js +1 -1
- package/dist/cjs/ez-loading-bar.cjs.entry.js +1 -1
- package/dist/cjs/ez-modal-container.cjs.entry.js +6 -1
- package/dist/cjs/ez-modal.cjs.entry.js +1 -1
- package/dist/cjs/ez-multi-selection-list.cjs.entry.js +1 -1
- package/dist/cjs/ez-number-input.cjs.entry.js +2 -2
- package/dist/cjs/ez-popover.cjs.entry.js +1 -1
- package/dist/cjs/ez-popup.cjs.entry.js +9 -2
- package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
- package/dist/cjs/ez-scroller_3.cjs.entry.js +19 -5
- package/dist/cjs/ez-search.cjs.entry.js +622 -33
- package/dist/cjs/ez-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/ez-split-button.cjs.entry.js +166 -0
- package/dist/cjs/ez-split-item.cjs.entry.js +21 -3
- package/dist/cjs/ez-split-panel.cjs.entry.js +68 -14
- package/dist/cjs/ez-tabselector.cjs.entry.js +1 -1
- package/dist/cjs/ez-text-area.cjs.entry.js +1 -1
- package/dist/cjs/ez-text-edit.cjs.entry.js +1 -1
- package/dist/cjs/ez-text-input.cjs.entry.js +1 -1
- package/dist/cjs/ez-time-input.cjs.entry.js +2 -2
- package/dist/cjs/ez-toast.cjs.entry.js +1 -1
- package/dist/cjs/ez-upload.cjs.entry.js +1 -1
- package/dist/cjs/ez-view-stack.cjs.entry.js +1 -1
- package/dist/cjs/ezui.cjs.js +2 -2
- package/dist/cjs/filter-column.cjs.entry.js +17 -6
- package/dist/cjs/{index-1064511f.js → index-a7b0c73d.js} +12 -10
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/collection/collection-manifest.json +4 -3
- package/dist/collection/components/ez-alert-list/ez-alert-list.css +16 -2
- package/dist/collection/components/ez-alert-list/ez-alert-list.js +127 -48
- package/dist/collection/components/ez-card-item/ez-card-item.css +52 -3
- package/dist/collection/components/ez-card-item/ez-card-item.js +22 -3
- package/dist/collection/components/ez-check/ez-check.css +1 -0
- package/dist/collection/components/ez-collapsible-box/ez-collapsible-box.css +1 -0
- package/dist/collection/components/ez-combo-box/ez-combo-box.js +19 -179
- package/dist/collection/components/ez-dropdown/ez-dropdown.js +32 -3
- package/dist/collection/components/ez-form-view/ez-form-view.css +17 -1
- package/dist/collection/components/ez-form-view/ez-form-view.js +22 -5
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/CheckBox.tpl.js +1 -1
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/ComboBox.tpl.js +1 -1
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/DateInput.tpl.js +3 -3
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/FileInput.tpl.js +4 -2
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/NumberInput.tpl.js +1 -1
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/SearchInput.tpl.js +1 -1
- package/dist/collection/components/ez-form-view/fieldbuilder/templates/TextInput.tpl.js +1 -1
- package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +8 -11
- package/dist/collection/components/ez-grid/controller/ag-grid/DataSource.js +3 -4
- package/dist/collection/components/ez-grid/controller/ag-grid/DataSourceInterceptor.js +21 -0
- package/dist/collection/components/ez-grid/controller/ag-grid/components/EzGridCustomHeader.js +1 -3
- package/dist/collection/components/ez-grid/ez-grid.css +25 -1
- package/dist/collection/components/ez-grid/ez-grid.js +103 -33
- package/dist/collection/components/ez-grid/subcomponents/filter-column.js +16 -5
- package/dist/collection/components/ez-icon/ez-icon.css +119 -117
- package/dist/collection/components/ez-modal-container/ez-modal-container.js +5 -0
- package/dist/collection/components/ez-popup/ez-popup.css +2 -5
- package/dist/collection/components/ez-popup/ez-popup.js +23 -2
- package/dist/collection/components/ez-search/ez-search.css +331 -0
- package/dist/collection/components/ez-search/ez-search.js +698 -55
- package/dist/collection/components/ez-split-button/ez-split-button.css +229 -0
- package/dist/collection/components/ez-split-button/ez-split-button.js +455 -0
- package/dist/collection/components/ez-split-button/test/dropdownItems.js +42 -0
- package/dist/collection/components/ez-split-panel/ez-split-panel.css +6 -7
- package/dist/collection/components/ez-split-panel/ez-split-panel.js +103 -15
- package/dist/collection/components/ez-split-panel/structure/item/ez-split-item.css +59 -12
- package/dist/collection/components/ez-split-panel/structure/item/ez-split-item.js +82 -2
- package/dist/collection/components/ez-tree/ez-tree.css +26 -0
- package/dist/collection/components/ez-tree/interfaces/ITreeItemBadge.js +1 -0
- package/dist/collection/components/ez-tree/subcomponents/TreeItem.js +15 -2
- package/dist/collection/utils/CSSVarsUtils.js +13 -0
- package/dist/collection/utils/form/test/DataBinder.test.js +9 -0
- package/dist/custom-elements/index.d.ts +6 -0
- package/dist/custom-elements/index.js +1252 -359
- package/dist/esm/{CSSVarsUtils-a97cfa29.js → CSSVarsUtils-71ce76be.js} +13 -0
- package/dist/esm/ez-actions-button.entry.js +2 -2
- package/dist/esm/ez-alert-list.entry.js +121 -49
- package/dist/esm/ez-alert.entry.js +1 -1
- package/dist/esm/ez-application.entry.js +1 -1
- package/dist/esm/ez-badge.entry.js +1 -1
- package/dist/esm/ez-breadcrumb.entry.js +1 -1
- package/dist/esm/ez-button.entry.js +1 -1
- package/dist/esm/ez-calendar.entry.js +1 -1
- package/dist/esm/ez-card-item_3.entry.js +177 -0
- package/dist/esm/ez-check.entry.js +2 -2
- package/dist/esm/ez-chip.entry.js +1 -1
- package/dist/esm/ez-collapsible-box.entry.js +1 -1
- package/dist/esm/ez-combo-box.entry.js +21 -164
- package/dist/esm/ez-date-input.entry.js +2 -2
- package/dist/esm/ez-date-time-input.entry.js +2 -2
- package/dist/esm/ez-dialog.entry.js +1 -1
- package/dist/esm/ez-dropdown.entry.js +10 -4
- package/dist/esm/ez-file-item.entry.js +1 -1
- package/dist/esm/ez-form-view.entry.js +35 -16
- package/dist/esm/ez-form.entry.js +1 -1
- package/dist/esm/ez-grid.entry.js +133 -59
- package/dist/esm/ez-guide-navigator.entry.js +1 -1
- package/dist/esm/ez-icon.entry.js +2 -2
- package/dist/esm/ez-list.entry.js +1 -1
- package/dist/esm/ez-loading-bar.entry.js +1 -1
- package/dist/esm/ez-modal-container.entry.js +6 -1
- package/dist/esm/ez-modal.entry.js +1 -1
- package/dist/esm/ez-multi-selection-list.entry.js +1 -1
- package/dist/esm/ez-number-input.entry.js +2 -2
- package/dist/esm/ez-popover.entry.js +1 -1
- package/dist/esm/ez-popup.entry.js +10 -3
- package/dist/esm/ez-radio-button.entry.js +1 -1
- package/dist/esm/ez-scroller_3.entry.js +19 -5
- package/dist/esm/ez-search.entry.js +623 -34
- package/dist/esm/ez-skeleton.entry.js +1 -1
- package/dist/esm/ez-split-button.entry.js +162 -0
- package/dist/esm/ez-split-item.entry.js +21 -3
- package/dist/esm/ez-split-panel.entry.js +68 -14
- package/dist/esm/ez-tabselector.entry.js +1 -1
- package/dist/esm/ez-text-area.entry.js +1 -1
- package/dist/esm/ez-text-edit.entry.js +1 -1
- package/dist/esm/ez-text-input.entry.js +1 -1
- package/dist/esm/ez-time-input.entry.js +2 -2
- package/dist/esm/ez-toast.entry.js +1 -1
- package/dist/esm/ez-upload.entry.js +1 -1
- package/dist/esm/ez-view-stack.entry.js +1 -1
- package/dist/esm/ezui.js +3 -3
- package/dist/esm/filter-column.entry.js +17 -6
- package/dist/esm/{index-296b8458.js → index-baa5e267.js} +12 -10
- package/dist/esm/loader.js +3 -3
- package/dist/ezui/ezui.esm.js +1 -1
- package/dist/ezui/{p-5cef0264.entry.js → p-0306dff7.entry.js} +1 -1
- package/dist/ezui/{p-871c1a07.entry.js → p-0447d17c.entry.js} +1 -1
- package/dist/ezui/p-072e6347.entry.js +1 -0
- package/dist/ezui/{p-f4208819.entry.js → p-17be134a.entry.js} +1 -1
- package/dist/ezui/{p-cd19a6f8.entry.js → p-1e7a8633.entry.js} +1 -1
- package/dist/ezui/{p-60ba28ea.entry.js → p-1f50fa05.entry.js} +1 -1
- package/dist/ezui/{p-245a44ed.entry.js → p-20ec22c0.entry.js} +1 -1
- package/dist/ezui/{p-e318d280.js → p-23a36bb6.js} +1 -1
- package/dist/ezui/{p-8252d9b5.entry.js → p-2a1a0e04.entry.js} +1 -1
- package/dist/ezui/p-3faa2b46.entry.js +1 -0
- package/dist/ezui/{p-9b347f04.entry.js → p-44caad9a.entry.js} +1 -1
- package/dist/ezui/{p-7319c253.entry.js → p-49456b34.entry.js} +1 -1
- package/dist/ezui/{p-ccb4ccd9.entry.js → p-555c9018.entry.js} +1 -1
- package/dist/ezui/{p-52dd8b4c.entry.js → p-5bd5e68f.entry.js} +1 -1
- package/dist/ezui/{p-62304715.entry.js → p-5e1d036e.entry.js} +1 -1
- package/dist/ezui/{p-7525e604.entry.js → p-5ed81457.entry.js} +1 -1
- package/dist/ezui/p-5ef056ce.entry.js +1 -0
- package/dist/ezui/p-637f69f2.entry.js +1 -0
- package/dist/ezui/{p-c49dbf23.entry.js → p-650e4b6d.entry.js} +1 -1
- package/dist/ezui/{p-f55d75e7.entry.js → p-6e429cff.entry.js} +1 -1
- package/dist/ezui/p-701231f0.entry.js +1 -0
- package/dist/ezui/{p-0b902469.entry.js → p-77a4bd35.entry.js} +1 -1
- package/dist/ezui/{p-81cd05c8.entry.js → p-784fe207.entry.js} +1 -1
- package/dist/ezui/p-7af81663.entry.js +1 -0
- package/dist/ezui/p-7bc07c31.entry.js +1 -0
- package/dist/ezui/{p-5d6f2550.entry.js → p-85c8baae.entry.js} +1 -1
- package/dist/ezui/{p-d3b5228e.entry.js → p-8defa6d3.entry.js} +1 -1
- package/dist/ezui/{p-fbca293f.entry.js → p-8df1ca33.entry.js} +1 -1
- package/dist/ezui/{p-391de0e4.entry.js → p-9050d2cd.entry.js} +1 -1
- package/dist/ezui/p-91f626d3.entry.js +1 -0
- package/dist/ezui/{p-3e7cc8a4.entry.js → p-99ead599.entry.js} +1 -1
- package/dist/ezui/p-9aefaa52.entry.js +1 -0
- package/dist/ezui/{p-7eb3e1a5.js → p-9e11fc7b.js} +1 -1
- package/dist/ezui/{p-b11f035c.entry.js → p-9f5fa3f9.entry.js} +1 -1
- package/dist/ezui/p-a1ec32ef.entry.js +1 -0
- package/dist/ezui/{p-2da09f70.entry.js → p-a80b1287.entry.js} +1 -1
- package/dist/ezui/{p-d20ed286.entry.js → p-af2ecb1b.entry.js} +1 -1
- package/dist/ezui/{p-e8f88361.entry.js → p-af95cd16.entry.js} +1 -1
- package/dist/ezui/{p-32b4163f.entry.js → p-b041333c.entry.js} +1 -1
- package/dist/ezui/{p-545b5b2f.entry.js → p-b44741b0.entry.js} +2 -2
- package/dist/ezui/{p-12526044.entry.js → p-b567fa8c.entry.js} +1 -1
- package/dist/ezui/p-bae3d0aa.entry.js +1 -0
- package/dist/ezui/{p-fb21d72f.entry.js → p-bae4e180.entry.js} +1 -1
- package/dist/ezui/p-baf80b13.entry.js +1 -0
- package/dist/ezui/p-bc2f844e.entry.js +1 -0
- package/dist/ezui/p-bf79aaa1.entry.js +1 -0
- package/dist/ezui/{p-83885b21.entry.js → p-cc2dc4f4.entry.js} +1 -1
- package/dist/ezui/p-db77a984.entry.js +1 -0
- package/dist/ezui/{p-028f264f.entry.js → p-e85c48d7.entry.js} +1 -1
- package/dist/types/components/ez-alert-list/ez-alert-list.d.ts +38 -4
- package/dist/types/components/ez-card-item/ez-card-item.d.ts +4 -0
- package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +1 -15
- package/dist/types/components/ez-dropdown/ez-dropdown.d.ts +5 -0
- package/dist/types/components/ez-form-view/ez-form-view.d.ts +3 -0
- package/dist/types/components/ez-grid/controller/ag-grid/DataSourceInterceptor.d.ts +8 -0
- package/dist/types/components/ez-grid/controller/ag-grid/components/EzGridCustomHeader.d.ts +1 -1
- package/dist/types/components/ez-grid/ez-grid.d.ts +17 -2
- package/dist/types/components/ez-grid/subcomponents/filter-column.d.ts +4 -1
- package/dist/types/components/ez-guide-navigator/interfaces/IGuideItem.d.ts +0 -1
- package/dist/types/components/ez-modal-container/ez-modal-container.d.ts +1 -0
- package/dist/types/components/ez-popup/ez-popup.d.ts +7 -1
- package/dist/types/components/ez-search/ez-search.d.ts +101 -10
- package/dist/types/components/ez-split-button/ez-split-button.d.ts +92 -0
- package/dist/types/components/ez-split-button/test/dropdownItems.d.ts +2 -0
- package/dist/types/components/ez-split-panel/ez-split-panel.d.ts +29 -0
- package/dist/types/components/ez-split-panel/structure/item/ez-split-item.d.ts +27 -0
- package/dist/types/components/ez-tree/interfaces/ITreeItem.d.ts +3 -1
- package/dist/types/components/ez-tree/interfaces/ITreeItemBadge.d.ts +6 -0
- package/dist/types/components/ez-tree/subcomponents/TreeItem.d.ts +0 -1
- package/dist/types/components.d.ts +188 -15
- package/dist/types/utils/CSSVarsUtils.d.ts +1 -0
- package/dist/types/utils/form/test/DataBinder.test.d.ts +1 -0
- package/dist/types/utils/interfaces/AbstractFieldMetadata.d.ts +2 -1
- package/dist/types/utils/interfaces/IAction.d.ts +1 -1
- package/package.json +13 -5
- package/react/components.d.ts +1 -0
- package/react/components.js +1 -0
- package/react/components.js.map +1 -1
- package/dist/cjs/ez-card-item.cjs.entry.js +0 -52
- package/dist/cjs/ez-filter-input_2.cjs.entry.js +0 -137
- package/dist/collection/components/ez-grid/controller/ag-grid/AgGridUtils.js +0 -8
- package/dist/esm/ez-card-item.entry.js +0 -48
- package/dist/esm/ez-filter-input_2.entry.js +0 -132
- package/dist/ezui/p-47afb974.entry.js +0 -1
- package/dist/ezui/p-59bcb27c.entry.js +0 -1
- package/dist/ezui/p-74049254.entry.js +0 -1
- package/dist/ezui/p-76d16a24.entry.js +0 -1
- package/dist/ezui/p-7fd54841.entry.js +0 -1
- package/dist/ezui/p-87e85160.entry.js +0 -1
- package/dist/ezui/p-95426f93.entry.js +0 -1
- package/dist/ezui/p-99692afa.entry.js +0 -1
- package/dist/ezui/p-a01068e1.entry.js +0 -1
- package/dist/ezui/p-a42fe2ce.entry.js +0 -1
- package/dist/ezui/p-af285e68.entry.js +0 -1
- package/dist/ezui/p-b6867f19.entry.js +0 -1
- package/dist/ezui/p-d51aa09b.entry.js +0 -1
- package/dist/ezui/p-d81917fd.entry.js +0 -1
- package/dist/ezui/p-f8653522.entry.js +0 -1
- package/dist/types/components/ez-grid/controller/ag-grid/AgGridUtils.d.ts +0 -1
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
export const dropdownItems = [
|
|
2
|
+
{
|
|
3
|
+
id: "1",
|
|
4
|
+
label: "label1",
|
|
5
|
+
type: 'item',
|
|
6
|
+
iconName: "iconName1",
|
|
7
|
+
subAction: {
|
|
8
|
+
id: "1",
|
|
9
|
+
label: "subActionLabel1",
|
|
10
|
+
type: "primary"
|
|
11
|
+
},
|
|
12
|
+
group: "group"
|
|
13
|
+
}, {
|
|
14
|
+
id: "2",
|
|
15
|
+
label: "label2",
|
|
16
|
+
type: 'item',
|
|
17
|
+
iconName: "iconName2",
|
|
18
|
+
subAction: null,
|
|
19
|
+
group: null,
|
|
20
|
+
}, {
|
|
21
|
+
id: "3",
|
|
22
|
+
label: "label3",
|
|
23
|
+
type: 'item',
|
|
24
|
+
iconName: "iconName3",
|
|
25
|
+
subAction: null,
|
|
26
|
+
group: null,
|
|
27
|
+
}, {
|
|
28
|
+
id: "",
|
|
29
|
+
label: "",
|
|
30
|
+
type: 'divider',
|
|
31
|
+
iconName: "",
|
|
32
|
+
subAction: null,
|
|
33
|
+
group: null,
|
|
34
|
+
}, {
|
|
35
|
+
id: "4",
|
|
36
|
+
label: "label4",
|
|
37
|
+
type: 'item',
|
|
38
|
+
iconName: "iconName4",
|
|
39
|
+
subAction: null,
|
|
40
|
+
group: null,
|
|
41
|
+
}
|
|
42
|
+
];
|
|
@@ -1,14 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StringUtils } from '@sankhyalabs/core';
|
|
2
|
+
import { Host, h } from '@stencil/core';
|
|
2
3
|
import Split from 'split-grid';
|
|
3
|
-
import { StringUtils } from "@sankhyalabs/core";
|
|
4
4
|
export class SplitPanel {
|
|
5
5
|
constructor() {
|
|
6
6
|
this._items = [];
|
|
7
|
+
this._buildInProgress = false;
|
|
7
8
|
this.direction = 'column';
|
|
9
|
+
this.anchorToExpand = false;
|
|
8
10
|
}
|
|
9
|
-
|
|
11
|
+
rebuildLayout() {
|
|
12
|
+
Array.from(this._element.querySelectorAll(".ez-split-gutter")).reverse().forEach(el => {
|
|
13
|
+
el.remove();
|
|
14
|
+
});
|
|
15
|
+
Array.from(this._element.getElementsByTagName("EzSplitPanel")).reverse().forEach(el => {
|
|
16
|
+
el['rebuildLayout']();
|
|
17
|
+
});
|
|
18
|
+
this.buildItems();
|
|
19
|
+
this.initSplit();
|
|
20
|
+
}
|
|
21
|
+
buildItems() {
|
|
10
22
|
this._panelID = StringUtils.generateUUID();
|
|
11
23
|
this._element.dataset.panelId = this._panelID;
|
|
24
|
+
this._element.dataset.uniqueId = "EzSplitPanel";
|
|
12
25
|
let itemsElements = Array.from(this._element.children);
|
|
13
26
|
this._items = itemsElements.filter(child => { var _a; return ((_a = child.tagName) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === 'EZ-SPLIT-ITEM'; });
|
|
14
27
|
let trackCount = 1;
|
|
@@ -19,7 +32,30 @@ export class SplitPanel {
|
|
|
19
32
|
}
|
|
20
33
|
trackCount += 2;
|
|
21
34
|
});
|
|
35
|
+
}
|
|
36
|
+
componentDidLoad() {
|
|
37
|
+
this.buildItems();
|
|
22
38
|
this.initSplit();
|
|
39
|
+
this._mutationObserver = new MutationObserver((mutationsList) => {
|
|
40
|
+
for (const mutation of mutationsList) {
|
|
41
|
+
if (mutation.type === 'childList' && this._buildInProgress === false) {
|
|
42
|
+
this._buildInProgress = true;
|
|
43
|
+
window.requestAnimationFrame(() => {
|
|
44
|
+
this.rebuildLayout();
|
|
45
|
+
});
|
|
46
|
+
window.requestAnimationFrame(() => this._buildInProgress = false);
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// Configure o observer para observar mudanças nos filhos
|
|
52
|
+
this._mutationObserver.observe(this._element, { childList: true, subtree: false });
|
|
53
|
+
}
|
|
54
|
+
disconnectedCallback() {
|
|
55
|
+
//disconect o _mutationObserver
|
|
56
|
+
if (this._mutationObserver != undefined) {
|
|
57
|
+
this._mutationObserver.disconnect();
|
|
58
|
+
}
|
|
23
59
|
}
|
|
24
60
|
initSplit() {
|
|
25
61
|
if (!this._items.length) {
|
|
@@ -31,7 +67,7 @@ export class SplitPanel {
|
|
|
31
67
|
getGutters() {
|
|
32
68
|
const gutters = {
|
|
33
69
|
columnGutters: [],
|
|
34
|
-
rowGutters: []
|
|
70
|
+
rowGutters: [],
|
|
35
71
|
};
|
|
36
72
|
if (!this._items.length) {
|
|
37
73
|
return gutters;
|
|
@@ -41,19 +77,19 @@ export class SplitPanel {
|
|
|
41
77
|
if (index == this._items.length - 1)
|
|
42
78
|
return;
|
|
43
79
|
let gutterTrack = item.dataset.trackNumber;
|
|
44
|
-
if (index ===
|
|
80
|
+
if (index === this._items.length - 1) {
|
|
45
81
|
gutterTrack = this._items.length.toString();
|
|
46
82
|
}
|
|
47
83
|
gutters[proToChange].push({
|
|
48
84
|
track: Number(gutterTrack),
|
|
49
|
-
element: this._element.querySelector(`ez-split-panel[data-panel-id="${this._panelID}"] > [data-item-track="${item.dataset.trackNumber}"]`)
|
|
85
|
+
element: this._element.querySelector(`ez-split-panel[data-panel-id="${this._panelID}"] > [data-item-track="${item.dataset.trackNumber}"]`),
|
|
50
86
|
});
|
|
51
87
|
});
|
|
52
88
|
return gutters;
|
|
53
89
|
}
|
|
54
90
|
addItemGutter(item) {
|
|
55
91
|
const gutter = document.createElement('div');
|
|
56
|
-
gutter.classList.add(
|
|
92
|
+
gutter.classList.add('ez-split-gutter');
|
|
57
93
|
gutter.classList.add(this.direction);
|
|
58
94
|
gutter.dataset.itemTrack = `${item.dataset.trackNumber}`;
|
|
59
95
|
gutter.dataset.trackNumber = (Number(item.dataset.trackNumber) + 1).toString();
|
|
@@ -61,29 +97,47 @@ export class SplitPanel {
|
|
|
61
97
|
}
|
|
62
98
|
getElementStyle() {
|
|
63
99
|
const style = {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
100
|
+
display: 'grid',
|
|
101
|
+
height: '100%',
|
|
102
|
+
width: '100%',
|
|
103
|
+
position: this.anchorToExpand ? 'relative' : 'unset',
|
|
67
104
|
};
|
|
68
105
|
return style;
|
|
69
106
|
}
|
|
107
|
+
calcFreeSpacePercentage() {
|
|
108
|
+
const inUseSpacePercentage = this._items.reduce((accumulator, currentValue) => {
|
|
109
|
+
var _a;
|
|
110
|
+
return accumulator + (((_a = currentValue.size) === null || _a === void 0 ? void 0 : _a.includes('%')) ? Number(currentValue.size.replace("%", "")) : 0);
|
|
111
|
+
}, 0);
|
|
112
|
+
const itemsWithoutSizeAmount = this._items.filter((item) => item.size === undefined).length;
|
|
113
|
+
if (!itemsWithoutSizeAmount || !inUseSpacePercentage) {
|
|
114
|
+
return null;
|
|
115
|
+
}
|
|
116
|
+
const freeSpacePercentage = ((100 - inUseSpacePercentage) / itemsWithoutSizeAmount);
|
|
117
|
+
return freeSpacePercentage;
|
|
118
|
+
}
|
|
70
119
|
getGridTemplate() {
|
|
71
120
|
let template = '';
|
|
72
|
-
this.
|
|
121
|
+
const freeSpacePercentage = this.calcFreeSpacePercentage();
|
|
122
|
+
this._items.forEach((col, index) => {
|
|
123
|
+
let size = col.size || '1fr';
|
|
124
|
+
if (!col.size && freeSpacePercentage) {
|
|
125
|
+
size = `${freeSpacePercentage}%`;
|
|
126
|
+
}
|
|
73
127
|
if (index === this._items.length - 1) {
|
|
74
|
-
template += `
|
|
128
|
+
template += ` ${size}`;
|
|
75
129
|
return;
|
|
76
130
|
}
|
|
77
131
|
if (index === 0) {
|
|
78
|
-
template +=
|
|
132
|
+
template += `${size} 5px`;
|
|
79
133
|
return;
|
|
80
134
|
}
|
|
81
|
-
template += `
|
|
135
|
+
template += ` ${size} 5px`;
|
|
82
136
|
});
|
|
83
137
|
return template;
|
|
84
138
|
}
|
|
85
139
|
render() {
|
|
86
|
-
return
|
|
140
|
+
return h(Host, { style: this.getElementStyle() });
|
|
87
141
|
}
|
|
88
142
|
static get is() { return "ez-split-panel"; }
|
|
89
143
|
static get originalStyleUrls() {
|
|
@@ -115,6 +169,40 @@ export class SplitPanel {
|
|
|
115
169
|
"attribute": "direction",
|
|
116
170
|
"reflect": false,
|
|
117
171
|
"defaultValue": "'column'"
|
|
172
|
+
},
|
|
173
|
+
"anchorToExpand": {
|
|
174
|
+
"type": "boolean",
|
|
175
|
+
"mutable": false,
|
|
176
|
+
"complexType": {
|
|
177
|
+
"original": "boolean",
|
|
178
|
+
"resolved": "boolean",
|
|
179
|
+
"references": {}
|
|
180
|
+
},
|
|
181
|
+
"required": false,
|
|
182
|
+
"optional": false,
|
|
183
|
+
"docs": {
|
|
184
|
+
"tags": [],
|
|
185
|
+
"text": "Respons\u00E1vel por definir o painel que limita o tamanho do item expandido."
|
|
186
|
+
},
|
|
187
|
+
"attribute": "anchor-to-expand",
|
|
188
|
+
"reflect": false,
|
|
189
|
+
"defaultValue": "false"
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
}
|
|
193
|
+
static get methods() {
|
|
194
|
+
return {
|
|
195
|
+
"rebuildLayout": {
|
|
196
|
+
"complexType": {
|
|
197
|
+
"signature": "() => Promise<void>",
|
|
198
|
+
"parameters": [],
|
|
199
|
+
"references": {},
|
|
200
|
+
"return": "Promise<void>"
|
|
201
|
+
},
|
|
202
|
+
"docs": {
|
|
203
|
+
"text": "",
|
|
204
|
+
"tags": []
|
|
205
|
+
}
|
|
118
206
|
}
|
|
119
207
|
};
|
|
120
208
|
}
|
|
@@ -1,12 +1,59 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
1
|
+
.box_split-item {
|
|
2
|
+
background-color: var(--background--xlight);
|
|
3
|
+
width: 100%;
|
|
4
|
+
height: 100%;
|
|
5
|
+
border-radius: var(--border--radius-medium);
|
|
6
|
+
box-shadow: var(--shadow);
|
|
7
|
+
flex-direction: column;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
display: flex;
|
|
10
|
+
padding: var(--space--nano);
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
.box_split-item > .ez-split-item--content {
|
|
14
|
+
overflow: auto;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.expanded__item {
|
|
18
|
+
position: absolute;
|
|
19
|
+
z-index: var(--more-visible);
|
|
20
|
+
top: 0;
|
|
21
|
+
left: 0;
|
|
22
|
+
width: 100%;
|
|
23
|
+
height: 100%;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.ez-split-item--header {
|
|
27
|
+
display: flex;
|
|
28
|
+
align-items: center;
|
|
29
|
+
justify-content: space-between;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.ez-split-item--header-title {
|
|
33
|
+
flex: 1;
|
|
34
|
+
white-space: nowrap;
|
|
35
|
+
overflow: hidden;
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
.ez-split-item--header-title h3 {
|
|
39
|
+
white-space: nowrap;
|
|
40
|
+
overflow: hidden;
|
|
41
|
+
text-overflow: ellipsis;
|
|
42
|
+
display: block;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.ez-split-item--header-buttons {
|
|
46
|
+
display: flex;
|
|
47
|
+
align-items: center;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.ez-split-item--content {
|
|
51
|
+
display: block;
|
|
52
|
+
height: 100%;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
h3.ez-margin--small {
|
|
56
|
+
margin-left: var(--space--small);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
|
|
@@ -1,7 +1,23 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Host, h } from '@stencil/core';
|
|
2
|
+
import { CSSVarsUtils } from '../../../../utils';
|
|
2
3
|
export class SplitItem {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.label = undefined;
|
|
6
|
+
this.enableExpand = true;
|
|
7
|
+
this._expanded = false;
|
|
8
|
+
this.size = undefined;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Alterna a visibilidade do painel.
|
|
12
|
+
*/
|
|
13
|
+
toggleExpandItem() {
|
|
14
|
+
this._expanded = !this._expanded;
|
|
15
|
+
}
|
|
16
|
+
componentDidLoad() {
|
|
17
|
+
CSSVarsUtils.applyVarsGrid(this._element, this._slot.children[0]);
|
|
18
|
+
}
|
|
3
19
|
render() {
|
|
4
|
-
return (h(Host, { class:
|
|
20
|
+
return (h(Host, { class: `box_split-item ${this._expanded ? 'expanded__item' : ''}`, ref: el => (this._element = el) }, h("div", { class: "ez-split-item--header" }, h("slot", { name: "leftButtons" }), h("div", { class: "ez-split-item--header-title" }, this.label && (h("h3", { class: "ez-text ez-text--primary ez-title ez-title--small ez-margin--small", title: this.label }, this.label))), h("div", { class: "ez-split-item--header-buttons" }, h("slot", { name: "rightButtons" }), this.enableExpand && (h("ez-button", { size: "small", mode: "icon", iconName: "expand", class: 'ez-button--tertiary', onClick: () => this.toggleExpandItem(), title: this._expanded ? 'Resumir' : 'Expandir' })))), h("div", { class: "ez-split-item--content grid_height-0", ref: el => (this._slot = el) }, h("slot", null))));
|
|
5
21
|
}
|
|
6
22
|
static get is() { return "ez-split-item"; }
|
|
7
23
|
static get originalStyleUrls() {
|
|
@@ -14,4 +30,68 @@ export class SplitItem {
|
|
|
14
30
|
"$": ["ez-split-item.css"]
|
|
15
31
|
};
|
|
16
32
|
}
|
|
33
|
+
static get properties() {
|
|
34
|
+
return {
|
|
35
|
+
"label": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"mutable": false,
|
|
38
|
+
"complexType": {
|
|
39
|
+
"original": "string",
|
|
40
|
+
"resolved": "string",
|
|
41
|
+
"references": {}
|
|
42
|
+
},
|
|
43
|
+
"required": false,
|
|
44
|
+
"optional": false,
|
|
45
|
+
"docs": {
|
|
46
|
+
"tags": [],
|
|
47
|
+
"text": "Define um t\u00EDtulo para o painel."
|
|
48
|
+
},
|
|
49
|
+
"attribute": "label",
|
|
50
|
+
"reflect": false
|
|
51
|
+
},
|
|
52
|
+
"enableExpand": {
|
|
53
|
+
"type": "boolean",
|
|
54
|
+
"mutable": false,
|
|
55
|
+
"complexType": {
|
|
56
|
+
"original": "boolean",
|
|
57
|
+
"resolved": "boolean",
|
|
58
|
+
"references": {}
|
|
59
|
+
},
|
|
60
|
+
"required": false,
|
|
61
|
+
"optional": false,
|
|
62
|
+
"docs": {
|
|
63
|
+
"tags": [],
|
|
64
|
+
"text": "Define se o item pode ser expandido"
|
|
65
|
+
},
|
|
66
|
+
"attribute": "enable-expand",
|
|
67
|
+
"reflect": true,
|
|
68
|
+
"defaultValue": "true"
|
|
69
|
+
},
|
|
70
|
+
"size": {
|
|
71
|
+
"type": "string",
|
|
72
|
+
"mutable": false,
|
|
73
|
+
"complexType": {
|
|
74
|
+
"original": "string",
|
|
75
|
+
"resolved": "string",
|
|
76
|
+
"references": {}
|
|
77
|
+
},
|
|
78
|
+
"required": false,
|
|
79
|
+
"optional": true,
|
|
80
|
+
"docs": {
|
|
81
|
+
"tags": [{
|
|
82
|
+
"name": "values",
|
|
83
|
+
"text": "'%', 'fr'"
|
|
84
|
+
}],
|
|
85
|
+
"text": "Define o tamanho inicial do painel."
|
|
86
|
+
},
|
|
87
|
+
"attribute": "size",
|
|
88
|
+
"reflect": false
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
static get states() {
|
|
93
|
+
return {
|
|
94
|
+
"_expanded": {}
|
|
95
|
+
};
|
|
96
|
+
}
|
|
17
97
|
}
|
|
@@ -24,6 +24,8 @@
|
|
|
24
24
|
--ez-tree--selected--color: var(--color--primary, #008561);
|
|
25
25
|
/*@doc Define a cor da fonte e do ícone quando desabilitado.*/
|
|
26
26
|
--ez-tree--disabled--color: var(--text--disable, #AFB6C0);
|
|
27
|
+
/*@doc Usado em fontes com peso maior (bold)*/
|
|
28
|
+
--ez-tree--font-weight--bold: var(--text-weight--large, 600);
|
|
27
29
|
|
|
28
30
|
/* Item */
|
|
29
31
|
/*@doc Define a altura de cada item.*/
|
|
@@ -47,6 +49,18 @@
|
|
|
47
49
|
/*@doc Define o espaçamento interno do ícone.*/
|
|
48
50
|
--ez-tree__item-icon-box--padding: var(--ez-tree__tree-item--padding);
|
|
49
51
|
|
|
52
|
+
/* Badge ícone - Cores */
|
|
53
|
+
/*@doc Cor de ícone de badge padrão.*/
|
|
54
|
+
--ez-tree__badge--icon-color--default: var(--title--primary, #2B3A54);
|
|
55
|
+
/*@doc Cor de ícone de badge de erro.*/
|
|
56
|
+
--ez-tree__badge--icon-color--error: var(--color--error, #da4453);
|
|
57
|
+
/*@doc Cor de ícone de badge sucesso.*/
|
|
58
|
+
--ez-tree__badge--icon-color--success: var(--color-alert--success-800, #157a00);
|
|
59
|
+
/*@doc Cor de ícone de badge de aviso.*/
|
|
60
|
+
--ez-tree__badge--icon-color--warning: var(--color--warning, #f2d410);
|
|
61
|
+
/*@doc Cor de ícone de badge desabilitado.*/
|
|
62
|
+
--ez-tree__badge--icon-color--disabled: var(--text--disable, #AFB6C0);
|
|
63
|
+
|
|
50
64
|
/*private*/
|
|
51
65
|
display: flex;
|
|
52
66
|
flex-direction: column;
|
|
@@ -85,6 +99,14 @@ ul.first-level {
|
|
|
85
99
|
--ez-icon--color: white;
|
|
86
100
|
}
|
|
87
101
|
|
|
102
|
+
.tree-item-badge-text{
|
|
103
|
+
/*public*/
|
|
104
|
+
font-family: var(--ez-tree--font-family);
|
|
105
|
+
font-size: var(--ez-tree--font-size);
|
|
106
|
+
font-weight: var(--ez-tree--font-weight);
|
|
107
|
+
color: var(--ez-tree--color);
|
|
108
|
+
}
|
|
109
|
+
|
|
88
110
|
.tree-item-badge.error{
|
|
89
111
|
background: var(--color--error);
|
|
90
112
|
}
|
|
@@ -180,6 +202,10 @@ ul.first-level {
|
|
|
180
202
|
color: var(--ez-tree--color);
|
|
181
203
|
}
|
|
182
204
|
|
|
205
|
+
.item-label--bold {
|
|
206
|
+
font-weight: var(--ez-tree--font-weight--bold);
|
|
207
|
+
}
|
|
208
|
+
|
|
183
209
|
.tree-item[selected] .item-label {
|
|
184
210
|
/*public*/
|
|
185
211
|
color: var(--ez-tree--selected--color);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -14,11 +14,24 @@ export const TreeItem = (props) => {
|
|
|
14
14
|
if (available) {
|
|
15
15
|
itemsList.push(treeItem);
|
|
16
16
|
}
|
|
17
|
-
return (h("ul", { class: level === 1 ? "first-level" : undefined }, h("li", Object.assign({ title: tooltipResolver(treeItem, !disabled, level), class: `tree-item ${treeItem.id !== selectedId ?
|
|
17
|
+
return (h("ul", { class: level === 1 ? "first-level" : undefined }, h("li", Object.assign({ title: tooltipResolver(treeItem, !disabled, level), class: `tree-item ${treeItem.id !== selectedId ? "tree-item-error" : ""}`, onClick: () => available && itemClick(treeItem) }, {
|
|
18
18
|
disabled,
|
|
19
19
|
selected: treeItem.id === selectedId,
|
|
20
20
|
[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME]: ElementIDUtils.getInternalIDInfo(`ezTreeItem_${treeItem.id}`)
|
|
21
21
|
}), h("div", { class: "item-label-container" }, h("div", { class: "item-icon-box" }, expandable &&
|
|
22
|
-
h("ez-icon", { id: treeItem.id, class: "item-icon", size: "small", iconName: iconResolver(treeItem, expanded, level), onClick: () => available && iconClick(treeItem) })), h("label", { class:
|
|
22
|
+
h("ez-icon", { id: treeItem.id, class: "item-icon", size: "small", iconName: iconResolver(treeItem, expanded, level), onClick: () => available && iconClick(treeItem) })), h("label", { class: `item-label ${treeItem.bold ? "item-label--bold" : ""}` }, treeItem.label)), getBadgeElement(treeItem.id, treeItem.badge, treeItem.id === selectedId)), expanded
|
|
23
23
|
&& node.getChildren().map(child => h(TreeItem, { selectedId: selectedId, node: child, itemClick: itemClick, iconClick: iconClick, level: level + 1, iconResolver: iconResolver, tooltipResolver: tooltipResolver, itemsList: itemsList }))));
|
|
24
24
|
};
|
|
25
|
+
function getBadgeElement(itemId, badge, isSelectedItem) {
|
|
26
|
+
if (badge == undefined) {
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
if (typeof badge === "string") {
|
|
30
|
+
return h("div", { class: `tree-item-badge ${isSelectedItem ? null : badge}` }, badge === "error" &&
|
|
31
|
+
h("ez-icon", { id: `${itemId}-badge-error`, class: "tree-item-badge-error-icon", size: "x-small", style: { color: 'white' }, iconName: "alert-circle" }));
|
|
32
|
+
}
|
|
33
|
+
if (badge.type === "text") {
|
|
34
|
+
return h("div", { id: `${itemId}-badge-text`, class: "tree-item-badge-text" }, badge.text);
|
|
35
|
+
}
|
|
36
|
+
return h("div", null, h("ez-icon", { id: `${itemId}-badge-icon`, class: "tree-item-badge-icon", style: { "--ez-icon--color": `var(--ez-tree__badge--icon-color--${badge.iconColor || "default"})` }, iconName: badge.iconName }));
|
|
37
|
+
}
|
|
@@ -64,6 +64,19 @@ export default class CSSVarsUtils {
|
|
|
64
64
|
});
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
|
+
static applyVarsGrid(host, child) {
|
|
68
|
+
if (child) {
|
|
69
|
+
[
|
|
70
|
+
"--ez-grid--min-height",
|
|
71
|
+
"--snk-grid-min-height",
|
|
72
|
+
].forEach(prop => {
|
|
73
|
+
const propValue = getComputedStyle(host).getPropertyValue(prop);
|
|
74
|
+
if (propValue !== null && propValue !== undefined) {
|
|
75
|
+
child.style.setProperty(prop, propValue);
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
67
80
|
static applyIfExists(host, element, varName) {
|
|
68
81
|
const prop = getComputedStyle(host).getPropertyValue(varName);
|
|
69
82
|
if (prop) {
|
|
@@ -224,6 +224,12 @@ export const EzSkeleton: {
|
|
|
224
224
|
new (): EzSkeleton;
|
|
225
225
|
};
|
|
226
226
|
|
|
227
|
+
interface EzSplitButton extends Components.EzSplitButton, HTMLElement {}
|
|
228
|
+
export const EzSplitButton: {
|
|
229
|
+
prototype: EzSplitButton;
|
|
230
|
+
new (): EzSplitButton;
|
|
231
|
+
};
|
|
232
|
+
|
|
227
233
|
interface EzSplitItem extends Components.EzSplitItem, HTMLElement {}
|
|
228
234
|
export const EzSplitItem: {
|
|
229
235
|
prototype: EzSplitItem;
|