@sankhyalabs/ezui 0.0.0-bugfix-dev-KB-86904.0 → 0.0.0-bugfix-dev-KB-92929.0
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/cjs/_commonjsHelpers-537d719a.js +20 -0
- package/dist/cjs/ez-actions-button.cjs.entry.js +1 -1
- package/dist/cjs/ez-alert-list.cjs.entry.js +1 -1
- package/dist/cjs/ez-alert.cjs.entry.js +1 -1
- package/dist/cjs/ez-application.cjs.entry.js +1 -1
- package/dist/cjs/ez-avatar.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_2.cjs.entry.js +1 -1
- package/dist/cjs/ez-chart.cjs.entry.js +4 -19
- package/dist/cjs/ez-check.cjs.entry.js +1 -1
- 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-list_3.cjs.entry.js +3 -3
- package/dist/cjs/ez-combo-box.cjs.entry.js +6 -3
- package/dist/cjs/ez-date-input.cjs.entry.js +1 -1
- package/dist/cjs/ez-date-time-input.cjs.entry.js +1 -1
- package/dist/cjs/ez-dialog.cjs.entry.js +1 -1
- package/dist/cjs/ez-double-list.cjs.entry.js +115 -54
- package/dist/cjs/ez-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/ez-file-item.cjs.entry.js +1 -1
- package/dist/cjs/{ez-tooltip.cjs.entry.js → ez-filter-input_2.cjs.entry.js} +124 -2
- package/dist/cjs/ez-form-view.cjs.entry.js +1 -1
- package/dist/cjs/ez-form.cjs.entry.js +2 -2
- package/dist/cjs/ez-grid.cjs.entry.js +1390 -4
- package/dist/cjs/ez-guide-navigator.cjs.entry.js +1 -1
- package/dist/cjs/ez-icon.cjs.entry.js +1 -1
- 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 +1 -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 +1 -1
- package/dist/cjs/ez-popover-plus_3.cjs.entry.js +1 -1
- package/dist/cjs/ez-popover.cjs.entry.js +1 -1
- package/dist/cjs/ez-popup.cjs.entry.js +1 -1
- package/dist/cjs/ez-radio-button.cjs.entry.js +1 -1
- package/dist/cjs/ez-scroller_2.cjs.entry.js +1 -1
- package/dist/cjs/ez-search-plus.cjs.entry.js +1 -1
- package/dist/cjs/ez-search-result-list.cjs.entry.js +1 -1
- package/dist/cjs/ez-search.cjs.entry.js +1 -1
- package/dist/cjs/ez-sidebar-navigator.cjs.entry.js +1 -1
- package/dist/cjs/ez-skeleton.cjs.entry.js +1 -1
- package/dist/cjs/ez-sortable-list.cjs.entry.js +3510 -0
- package/dist/cjs/ez-split-button.cjs.entry.js +1 -1
- package/dist/cjs/ez-split-item.cjs.entry.js +1 -1
- package/dist/cjs/ez-split-panel.cjs.entry.js +1 -1
- 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-input.cjs.entry.js +1 -1
- package/dist/cjs/ez-time-input.cjs.entry.js +1 -1
- package/dist/cjs/ez-toast.cjs.entry.js +1 -1
- package/dist/cjs/ez-tree.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 +1 -1
- package/dist/cjs/{index-9e5554cb.js → index-a7b0c73d.js} +6 -9
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/{search-column-1d3c9fa5.js → search-column-27d1f72f.js} +1 -1
- package/dist/collection/collection-manifest.json +1 -0
- package/dist/collection/components/ez-combo-box/ez-combo-box-list/ez-combo-box-list.css +1 -0
- package/dist/collection/components/ez-combo-box/ez-combo-box.js +41 -2
- package/dist/collection/components/ez-double-list/doubleListHelper.js +9 -10
- package/dist/collection/components/ez-double-list/ez-double-list.css +6 -38
- package/dist/collection/components/ez-double-list/ez-double-list.js +168 -50
- package/dist/collection/components/ez-grid/controller/ag-grid/AgGridController.js +24 -1
- package/dist/collection/components/ez-grid/controller/ag-grid/GridEditionManager.js +4 -1
- package/dist/collection/components/ez-grid/ez-grid.js +43 -4
- package/dist/collection/components/ez-grid/interfaces/IGridMode.js +1 -0
- package/dist/collection/components/ez-grid/interfaces/index.js +1 -0
- package/dist/collection/components/ez-sortable-list/ez-sortable-list.css +226 -0
- package/dist/collection/components/ez-sortable-list/ez-sortable-list.js +582 -0
- package/dist/custom-elements/index.d.ts +6 -0
- package/dist/custom-elements/index.js +5031 -75
- package/dist/esm/_commonjsHelpers-9943807e.js +17 -0
- package/dist/esm/ez-actions-button.entry.js +1 -1
- package/dist/esm/ez-alert-list.entry.js +1 -1
- package/dist/esm/ez-alert.entry.js +1 -1
- package/dist/esm/ez-application.entry.js +1 -1
- package/dist/esm/ez-avatar.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_2.entry.js +1 -1
- package/dist/esm/ez-chart.entry.js +2 -17
- package/dist/esm/ez-check.entry.js +1 -1
- 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-list_3.entry.js +3 -3
- package/dist/esm/ez-combo-box.entry.js +6 -3
- package/dist/esm/ez-date-input.entry.js +1 -1
- package/dist/esm/ez-date-time-input.entry.js +1 -1
- package/dist/esm/ez-dialog.entry.js +1 -1
- package/dist/esm/ez-double-list.entry.js +116 -55
- package/dist/esm/ez-dropdown.entry.js +1 -1
- package/dist/esm/ez-file-item.entry.js +1 -1
- package/dist/esm/{ez-tooltip.entry.js → ez-filter-input_2.entry.js} +124 -3
- package/dist/esm/ez-form-view.entry.js +1 -1
- package/dist/esm/ez-form.entry.js +2 -2
- package/dist/esm/ez-grid.entry.js +1390 -4
- package/dist/esm/ez-guide-navigator.entry.js +1 -1
- package/dist/esm/ez-icon.entry.js +1 -1
- 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 +1 -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 +1 -1
- package/dist/esm/ez-popover-plus_3.entry.js +1 -1
- package/dist/esm/ez-popover.entry.js +1 -1
- package/dist/esm/ez-popup.entry.js +1 -1
- package/dist/esm/ez-radio-button.entry.js +1 -1
- package/dist/esm/ez-scroller_2.entry.js +1 -1
- package/dist/esm/ez-search-plus.entry.js +1 -1
- package/dist/esm/ez-search-result-list.entry.js +1 -1
- package/dist/esm/ez-search.entry.js +1 -1
- package/dist/esm/ez-sidebar-navigator.entry.js +1 -1
- package/dist/esm/ez-skeleton.entry.js +1 -1
- package/dist/esm/ez-sortable-list.entry.js +3506 -0
- package/dist/esm/ez-split-button.entry.js +1 -1
- package/dist/esm/ez-split-item.entry.js +1 -1
- package/dist/esm/ez-split-panel.entry.js +1 -1
- package/dist/esm/ez-tabselector.entry.js +1 -1
- package/dist/esm/ez-text-area.entry.js +1 -1
- package/dist/esm/ez-text-input.entry.js +1 -1
- package/dist/esm/ez-time-input.entry.js +1 -1
- package/dist/esm/ez-toast.entry.js +1 -1
- package/dist/esm/ez-tree.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 +1 -1
- package/dist/esm/{index-5a720e56.js → index-baa5e267.js} +7 -9
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{search-column-35f4ad93.js → search-column-e609d513.js} +1 -1
- package/dist/ezui/ezui.esm.js +1 -1
- package/dist/ezui/{p-e6b38ade.entry.js → p-0306dff7.entry.js} +1 -1
- package/dist/ezui/{p-6b2cc9b8.entry.js → p-07894c4a.entry.js} +1 -1
- package/dist/ezui/{p-91ccae0c.entry.js → p-09de35a2.entry.js} +1 -1
- package/dist/ezui/{p-700c1320.entry.js → p-0d9856a4.entry.js} +1 -1
- package/dist/ezui/p-112455b1.js +1 -0
- package/dist/ezui/{p-15d9cd15.entry.js → p-1276ef79.entry.js} +1 -1
- package/dist/ezui/{p-87f5a060.entry.js → p-1bcfd88c.entry.js} +1 -1
- package/dist/ezui/{p-81461d2f.entry.js → p-1e7a8633.entry.js} +1 -1
- package/dist/ezui/{p-ddd0bd61.entry.js → p-1eb34cad.entry.js} +1 -1
- package/dist/ezui/{p-6b51c9cc.entry.js → p-1f50fa05.entry.js} +1 -1
- package/dist/ezui/{p-e4c7eb39.js → p-23a36bb6.js} +2 -2
- package/dist/ezui/{p-4e66eaeb.entry.js → p-26685c50.entry.js} +1 -1
- package/dist/ezui/{p-06f1b8e4.entry.js → p-288631d1.entry.js} +1 -1
- package/dist/ezui/{p-2d10bb18.entry.js → p-2b42abbb.entry.js} +1 -1
- package/dist/ezui/{p-1fefb37a.entry.js → p-2b4df33d.entry.js} +1 -1
- package/dist/ezui/{p-e4ae4ddb.entry.js → p-33326ac5.entry.js} +1 -1
- package/dist/ezui/{p-c8e6204f.entry.js → p-35115d5d.entry.js} +1 -1
- package/dist/ezui/{p-682931aa.entry.js → p-38581954.entry.js} +48 -46
- package/dist/ezui/{p-97d94ef3.entry.js → p-3ba9565c.entry.js} +1 -1
- package/dist/ezui/{p-0378416a.entry.js → p-44caad9a.entry.js} +1 -1
- package/dist/ezui/{p-6b3fddee.entry.js → p-496f7832.entry.js} +1 -1
- package/dist/ezui/{p-769632d5.entry.js → p-4b67138e.entry.js} +1 -1
- package/dist/ezui/{p-90e91173.entry.js → p-4bd6dd6a.entry.js} +1 -1
- package/dist/ezui/{p-4a876b8b.entry.js → p-4d30b703.entry.js} +1 -1
- package/dist/ezui/{p-7567ccdd.entry.js → p-555c9018.entry.js} +1 -1
- package/dist/ezui/{p-e4ead194.entry.js → p-57363cfd.entry.js} +1 -1
- package/dist/ezui/{p-7ec3f335.entry.js → p-58f69d24.entry.js} +1 -1
- package/dist/ezui/p-59561756.entry.js +7 -0
- package/dist/ezui/{p-6fc26622.entry.js → p-5ed81457.entry.js} +1 -1
- package/dist/ezui/p-6369a0cd.entry.js +1 -0
- package/dist/ezui/p-63cb493e.entry.js +1 -0
- package/dist/ezui/{p-b3b3c99a.entry.js → p-69937816.entry.js} +1 -1
- package/dist/ezui/{p-fc194825.entry.js → p-6e429cff.entry.js} +1 -1
- package/dist/ezui/{p-d2290004.entry.js → p-7019f782.entry.js} +1 -1
- package/dist/ezui/{p-11bfeca3.entry.js → p-77a4bd35.entry.js} +1 -1
- package/dist/ezui/p-7ab19270.entry.js +1 -0
- package/dist/ezui/{p-d4d6d5fe.entry.js → p-7eae6986.entry.js} +1 -1
- package/dist/ezui/{p-e195eaad.entry.js → p-7f792043.entry.js} +1 -1
- package/dist/ezui/{p-82fa4b09.entry.js → p-8df1ca33.entry.js} +1 -1
- package/dist/ezui/{p-ed48a632.entry.js → p-9478b13b.entry.js} +1 -1
- package/dist/ezui/{p-ddb22a70.entry.js → p-9567b31a.entry.js} +1 -1
- package/dist/ezui/{p-01b72d7e.entry.js → p-998afb6a.entry.js} +1 -1
- package/dist/ezui/{p-18e71523.entry.js → p-9c5cd3b2.entry.js} +1 -1
- package/dist/ezui/{p-c2b20f78.entry.js → p-9f5fa3f9.entry.js} +1 -1
- package/dist/ezui/{p-90c90351.entry.js → p-a148e994.entry.js} +1 -1
- package/dist/ezui/{p-28987410.entry.js → p-a3bf8cf1.entry.js} +1 -1
- package/dist/ezui/{p-dfca5946.entry.js → p-a80b1287.entry.js} +1 -1
- package/dist/ezui/p-b41cc8ff.entry.js +1 -0
- package/dist/ezui/{p-926a0bde.entry.js → p-bac0f920.entry.js} +1 -1
- package/dist/ezui/p-bc2f844e.entry.js +1 -0
- package/dist/ezui/{p-175154a0.js → p-bff24a7b.js} +1 -1
- package/dist/ezui/{p-92748142.entry.js → p-c0d9c4f8.entry.js} +1 -1
- package/dist/ezui/{p-a11827ca.entry.js → p-cb75eb46.entry.js} +1 -1
- package/dist/ezui/{p-708b196e.entry.js → p-da1b4a38.entry.js} +1 -1
- package/dist/ezui/{p-c7035d65.entry.js → p-dc73e1fe.entry.js} +1 -1
- package/dist/ezui/{p-2f351332.entry.js → p-e06a9886.entry.js} +1 -1
- package/dist/ezui/p-e4528470.entry.js +1 -0
- package/dist/ezui/{p-9e95bfeb.entry.js → p-e6a9041d.entry.js} +1 -1
- package/dist/ezui/{p-000159dc.entry.js → p-e75c7a23.entry.js} +1 -1
- package/dist/ezui/{p-44b39e81.entry.js → p-fa6732f2.entry.js} +1 -1
- package/dist/types/components/ez-combo-box/ez-combo-box.d.ts +8 -0
- package/dist/types/components/ez-double-list/doubleListHelper.d.ts +4 -2
- package/dist/types/components/ez-double-list/ez-double-list.d.ts +60 -24
- package/dist/types/components/ez-grid/controller/ag-grid/AgGridController.d.ts +1 -0
- package/dist/types/components/ez-grid/controller/ag-grid/GridEditionManager.d.ts +1 -0
- package/dist/types/components/ez-grid/ez-grid.d.ts +6 -1
- package/dist/types/components/ez-grid/interfaces/IGridMode.d.ts +1 -0
- package/dist/types/components/ez-grid/interfaces/index.d.ts +1 -0
- package/dist/types/components/ez-sortable-list/ez-sortable-list.d.ts +91 -0
- package/dist/types/components.d.ts +210 -4
- package/package.json +6 -1
- package/react/components.d.ts +1 -0
- package/react/components.js +1 -0
- package/react/components.js.map +1 -1
- package/dist/cjs/ez-filter-input.cjs.entry.js +0 -129
- package/dist/esm/ez-filter-input.entry.js +0 -125
- package/dist/ezui/p-07594da0.entry.js +0 -1
- package/dist/ezui/p-2069c78a.entry.js +0 -1
- package/dist/ezui/p-6ec40dec.entry.js +0 -1
- package/dist/ezui/p-cf33bc48.entry.js +0 -1
- package/dist/ezui/p-da66838e.entry.js +0 -1
- package/dist/ezui/p-dd7d305a.entry.js +0 -1
- package/dist/ezui/p-ea053063.entry.js +0 -1
|
@@ -33,7 +33,9 @@ export class EzComboBox {
|
|
|
33
33
|
this.listOptionsPosition = undefined;
|
|
34
34
|
this.isTextSearch = false;
|
|
35
35
|
this.autoFocus = false;
|
|
36
|
+
this.preventAutoFocus = false;
|
|
36
37
|
this.alternativePlaceholder = undefined;
|
|
38
|
+
this.textEmptyOption = "Selecione um item";
|
|
37
39
|
}
|
|
38
40
|
observeErrorMessage() {
|
|
39
41
|
var _a;
|
|
@@ -158,7 +160,7 @@ export class EzComboBox {
|
|
|
158
160
|
opts = opts.filter(opt => opt.label.toLocaleUpperCase().indexOf(upperCriteria) > -1);
|
|
159
161
|
}
|
|
160
162
|
if (this.hasToAddEmptyoption(opts)) {
|
|
161
|
-
opts = [{ value: undefined, label:
|
|
163
|
+
opts = [{ value: undefined, label: this.textEmptyOption }].concat(opts);
|
|
162
164
|
}
|
|
163
165
|
this._visibleOptions = opts;
|
|
164
166
|
this._maxWidthValue = this.getMaxWidthValue();
|
|
@@ -203,7 +205,8 @@ export class EzComboBox {
|
|
|
203
205
|
this._preSelection = indexValue === -1 ? 0 : indexValue;
|
|
204
206
|
if (!!this._resizeObserver)
|
|
205
207
|
this._resizeObserver.observe(this._textInput);
|
|
206
|
-
|
|
208
|
+
if (!this.preventAutoFocus)
|
|
209
|
+
await this.setFocus();
|
|
207
210
|
}
|
|
208
211
|
hideOptions() {
|
|
209
212
|
var _a;
|
|
@@ -794,6 +797,24 @@ export class EzComboBox {
|
|
|
794
797
|
"reflect": false,
|
|
795
798
|
"defaultValue": "false"
|
|
796
799
|
},
|
|
800
|
+
"preventAutoFocus": {
|
|
801
|
+
"type": "boolean",
|
|
802
|
+
"mutable": false,
|
|
803
|
+
"complexType": {
|
|
804
|
+
"original": "boolean",
|
|
805
|
+
"resolved": "boolean",
|
|
806
|
+
"references": {}
|
|
807
|
+
},
|
|
808
|
+
"required": false,
|
|
809
|
+
"optional": false,
|
|
810
|
+
"docs": {
|
|
811
|
+
"tags": [],
|
|
812
|
+
"text": "Se true, impede que o campo de texto receba foco automaticamente ao abrir as op\u00E7\u00F5es."
|
|
813
|
+
},
|
|
814
|
+
"attribute": "prevent-auto-focus",
|
|
815
|
+
"reflect": false,
|
|
816
|
+
"defaultValue": "false"
|
|
817
|
+
},
|
|
797
818
|
"alternativePlaceholder": {
|
|
798
819
|
"type": "string",
|
|
799
820
|
"mutable": false,
|
|
@@ -810,6 +831,24 @@ export class EzComboBox {
|
|
|
810
831
|
},
|
|
811
832
|
"attribute": "alternative-placeholder",
|
|
812
833
|
"reflect": true
|
|
834
|
+
},
|
|
835
|
+
"textEmptyOption": {
|
|
836
|
+
"type": "string",
|
|
837
|
+
"mutable": false,
|
|
838
|
+
"complexType": {
|
|
839
|
+
"original": "string",
|
|
840
|
+
"resolved": "string",
|
|
841
|
+
"references": {}
|
|
842
|
+
},
|
|
843
|
+
"required": false,
|
|
844
|
+
"optional": false,
|
|
845
|
+
"docs": {
|
|
846
|
+
"tags": [],
|
|
847
|
+
"text": "Texto a ser apresentado na op\u00E7\u00E3o de valor nulo."
|
|
848
|
+
},
|
|
849
|
+
"attribute": "text-empty-option",
|
|
850
|
+
"reflect": false,
|
|
851
|
+
"defaultValue": "\"Selecione um item\""
|
|
813
852
|
}
|
|
814
853
|
};
|
|
815
854
|
}
|
|
@@ -55,21 +55,20 @@ export function transferAll({ from, to, selectedFrom, selectedTo }) {
|
|
|
55
55
|
from = [];
|
|
56
56
|
return { from, to, selectedFrom, selectedTo };
|
|
57
57
|
}
|
|
58
|
-
export function transferItems({ from, to, selectedFrom, selectedTo }) {
|
|
58
|
+
export function transferItems({ from, to, selectedFrom, selectedTo, insertIndex = to.length, }) {
|
|
59
59
|
if (!from.length)
|
|
60
60
|
return { from, to, selectedFrom, selectedTo };
|
|
61
61
|
const itemsToTransfer = getItemsToTransfer(to, selectedFrom, from);
|
|
62
62
|
if (!itemsToTransfer.length)
|
|
63
63
|
return { from, to, selectedFrom, selectedTo };
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
return { from, to, selectedFrom, selectedTo };
|
|
64
|
+
let updatedTo = to.map(i => setItemSelection(i, false));
|
|
65
|
+
updatedTo.splice(insertIndex, 0, ...itemsToTransfer.map(i => setItemSelection(i, true)));
|
|
66
|
+
return {
|
|
67
|
+
from: from.filter(item => !selectedFrom.includes(item.id)),
|
|
68
|
+
to: updatedTo,
|
|
69
|
+
selectedFrom: [],
|
|
70
|
+
selectedTo: [...selectedFrom],
|
|
71
|
+
};
|
|
73
72
|
}
|
|
74
73
|
function getItemsToTransfer(to, selectedFrom, from) {
|
|
75
74
|
const toListIds = to.map(item => item.id);
|
|
@@ -4,52 +4,20 @@
|
|
|
4
4
|
gap: 8px;
|
|
5
5
|
align-items: center;
|
|
6
6
|
font-family: var(--font-pattern, "Roboto");
|
|
7
|
+
width: 100%;
|
|
7
8
|
}
|
|
8
9
|
|
|
9
|
-
.group {
|
|
10
|
-
display: flex;
|
|
11
|
-
justify-content: space-between;
|
|
12
|
-
gap: 10px;
|
|
13
|
-
flex-direction: column;
|
|
14
|
-
border: var(--border--small) var(--color--strokes);
|
|
15
|
-
border-radius: var(--border--radius-medium);
|
|
16
|
-
width: 350px;
|
|
17
|
-
height: 400px;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.group__header {
|
|
21
|
-
background: var(--background--body);
|
|
22
|
-
padding: 10px;
|
|
23
|
-
border-radius: var(--border--radius-medium) var(--border--radius-medium) 0 0;
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
.group__label {
|
|
27
|
-
font-weight: var(--text-weight--large);
|
|
28
|
-
font-size: var(--text--medium);
|
|
29
|
-
color: var(--title--primary);
|
|
30
|
-
margin-bottom: 10px;
|
|
31
|
-
display: block;
|
|
32
|
-
}
|
|
33
10
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
font-size: var(--text--medium);
|
|
39
|
-
color: var(--text--secondary);
|
|
40
|
-
border-radius: 0 0 var(--border--radius-medium) var(--border--radius-medium);
|
|
11
|
+
@media screen and (max-width: 1366px){
|
|
12
|
+
.group {
|
|
13
|
+
height: 350px;
|
|
14
|
+
}
|
|
41
15
|
}
|
|
42
16
|
|
|
43
|
-
.empty-message{
|
|
44
|
-
font-weight: var(--text-weight--medium);
|
|
45
|
-
font-size: var(--text--medium);
|
|
46
|
-
color: var(--text--secondary);
|
|
47
|
-
text-align: center;
|
|
48
|
-
margin: auto;
|
|
49
|
-
}
|
|
50
17
|
|
|
51
18
|
.list__container {
|
|
52
19
|
height: 100%;
|
|
20
|
+
width: 100%;
|
|
53
21
|
min-height: 150px;
|
|
54
22
|
overflow: auto;
|
|
55
23
|
display: flex;
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { h, Host } from '@stencil/core';
|
|
2
2
|
import { moveItems, transferAll, transferItems } from './doubleListHelper';
|
|
3
|
-
import {
|
|
3
|
+
import { ObjectUtils } from '@sankhyalabs/core';
|
|
4
4
|
import { isContinuousSequence } from '../ez-list/ezListHelper';
|
|
5
|
-
import { EzScrollDirection } from '../ez-scroller/EzScrollDirection';
|
|
6
5
|
export class EzDoubleList {
|
|
7
6
|
constructor() {
|
|
8
7
|
this.LEFT_LIST_ID = 'LEFT-LIST-ID';
|
|
9
8
|
this.RIGHT_LIST_ID = 'RIGHT-LIST-ID';
|
|
10
|
-
this.LEFT_FILTER_ID = 'LEFT-FILTER-ID';
|
|
11
|
-
this.RIGHT_FILTER_ID = 'RIGHT-FILTER-ID';
|
|
12
9
|
this.leftList = [];
|
|
13
10
|
this.leftTitle = undefined;
|
|
14
11
|
this.rightList = [];
|
|
@@ -16,7 +13,10 @@ export class EzDoubleList {
|
|
|
16
13
|
this.entityLabelPlural = 'itens';
|
|
17
14
|
this.leftListLabel = 'disponíveis';
|
|
18
15
|
this.rightListLabel = 'selecionados';
|
|
16
|
+
this.useOnlyRightList = false;
|
|
19
17
|
this.rightTitle = undefined;
|
|
18
|
+
this.emptyMessage = undefined;
|
|
19
|
+
this.slotsListBuilder = undefined;
|
|
20
20
|
this.leftFilteredList = [];
|
|
21
21
|
this.rightFilteredList = [];
|
|
22
22
|
this.selectedLeftList = [];
|
|
@@ -38,23 +38,31 @@ export class EzDoubleList {
|
|
|
38
38
|
return;
|
|
39
39
|
this.ezRightListChanged.emit(newValue);
|
|
40
40
|
}
|
|
41
|
-
handleFilterChangeLeft(value) {
|
|
42
|
-
this.leftFilteredList = ArrayUtils.applyStringFilter(value, this.leftList, true, 'label');
|
|
43
|
-
this.isFilteringLeft = this.leftFilteredList.length !== this.leftList.length;
|
|
44
|
-
}
|
|
45
|
-
handleFilterChangeRight(value) {
|
|
46
|
-
this.rightFilteredList = ArrayUtils.applyStringFilter(value, this.rightList, true, 'label');
|
|
47
|
-
this.isFilteringRight = this.rightFilteredList.length !== this.rightList.length;
|
|
48
|
-
}
|
|
49
41
|
async handleChangeLeft({ detail }) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
42
|
+
if (!detail.to.getAttribute('id') || detail.to.getAttribute('id') !== this.RIGHT_LIST_ID) {
|
|
43
|
+
this.leftList = [...this.reorderArray(detail.dataSource, detail.selectItens, detail.newIndex)];
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
detail.selectItens = detail.selectItens.filter(id => this.rightList.every(item => item.id !== id));
|
|
47
|
+
this.leftList = [...detail.dataSource];
|
|
48
|
+
this.selectedLeftList = [...detail.selectItens];
|
|
49
|
+
this.transferToRight(detail === null || detail === void 0 ? void 0 : detail.newIndex);
|
|
53
50
|
}
|
|
54
51
|
async handleChangeRight({ detail }) {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
if (!detail.to.getAttribute('id') || detail.to.getAttribute('id') !== this.LEFT_LIST_ID) {
|
|
53
|
+
this.rightList = [...this.reorderArray(detail.dataSource, detail.selectItens, detail.newIndex)];
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
detail.selectItens = detail.selectItens.filter(id => this.leftList.every(item => item.id !== id));
|
|
57
|
+
this.rightList = [...detail.dataSource];
|
|
58
|
+
this.selectedRightList = [...detail.selectItens];
|
|
59
|
+
this.transferToLeft(detail === null || detail === void 0 ? void 0 : detail.newIndex);
|
|
60
|
+
}
|
|
61
|
+
reorderArray(allItems, itemIdsToMove, insertIndex) {
|
|
62
|
+
const filteredItems = allItems.filter(i => !itemIdsToMove.includes(i.id));
|
|
63
|
+
const itemsToMove = allItems.filter(i => itemIdsToMove.includes(i.id));
|
|
64
|
+
filteredItems.splice(insertIndex, 0, ...itemsToMove);
|
|
65
|
+
return filteredItems;
|
|
58
66
|
}
|
|
59
67
|
enableTransferAllToRight() {
|
|
60
68
|
return this.leftList.length > 0;
|
|
@@ -88,33 +96,43 @@ export class EzDoubleList {
|
|
|
88
96
|
getRightSelectedItemsIndex() {
|
|
89
97
|
return this.selectedRightList.map(id => this.rightList.findIndex(original => original.id === id));
|
|
90
98
|
}
|
|
91
|
-
transferToRight() {
|
|
92
|
-
const { from, to, selectedFrom, selectedTo } = transferItems(this.buildTransferToRightConfig());
|
|
93
|
-
|
|
99
|
+
transferToRight(insertIndex) {
|
|
100
|
+
const { from, to, selectedFrom, selectedTo } = transferItems(Object.assign(Object.assign({}, this.buildTransferToRightConfig()), { insertIndex: insertIndex !== null && insertIndex !== void 0 ? insertIndex : 0 }));
|
|
101
|
+
//Eh preciso limpar a lista antes de atualiza-la por conta de um bug no ciclo de vida do sortable.js
|
|
102
|
+
this.leftList = [];
|
|
103
|
+
requestAnimationFrame(() => this.leftList = [...from]);
|
|
94
104
|
this.rightList = [...to];
|
|
95
105
|
this.selectedLeftList = [...selectedFrom];
|
|
96
106
|
this.selectedRightList = [...selectedTo];
|
|
97
107
|
}
|
|
98
|
-
transferToLeft() {
|
|
99
|
-
const { from, to, selectedFrom, selectedTo } = transferItems(this.buildTransferToLeftConfig());
|
|
100
|
-
|
|
108
|
+
transferToLeft(insertIndex) {
|
|
109
|
+
const { from, to, selectedFrom, selectedTo } = transferItems(Object.assign(Object.assign({}, this.buildTransferToLeftConfig()), { insertIndex: insertIndex !== null && insertIndex !== void 0 ? insertIndex : 0 }));
|
|
110
|
+
//Eh preciso limpar a lista antes de atualiza-la por conta de um bug no ciclo de vida do sortable.js
|
|
111
|
+
this.rightList = [];
|
|
112
|
+
requestAnimationFrame(() => this.rightList = [...from]);
|
|
101
113
|
this.leftList = [...to];
|
|
102
114
|
this.selectedRightList = [...selectedFrom];
|
|
103
115
|
this.selectedLeftList = [...selectedTo];
|
|
104
116
|
}
|
|
105
|
-
handleTransferAllToRight() {
|
|
117
|
+
async handleTransferAllToRight() {
|
|
106
118
|
const { from, to, selectedFrom, selectedTo } = transferAll(this.buildTransferToRightConfig());
|
|
107
119
|
this.leftList = [...from];
|
|
108
120
|
this.rightList = [...to];
|
|
109
121
|
this.selectedLeftList = [...selectedFrom];
|
|
110
122
|
this.selectedRightList = [...selectedTo];
|
|
123
|
+
requestAnimationFrame(async () => {
|
|
124
|
+
await this.clearSelectionAll();
|
|
125
|
+
});
|
|
111
126
|
}
|
|
112
|
-
handleTransferAllToLeft() {
|
|
127
|
+
async handleTransferAllToLeft() {
|
|
113
128
|
const { from, to, selectedFrom, selectedTo } = transferAll(this.buildTransferToLeftConfig());
|
|
114
129
|
this.rightList = [...from];
|
|
115
130
|
this.leftList = [...to];
|
|
116
131
|
this.selectedRightList = [...selectedFrom];
|
|
117
132
|
this.selectedLeftList = [...selectedTo];
|
|
133
|
+
requestAnimationFrame(async () => {
|
|
134
|
+
await this.clearSelectionAll();
|
|
135
|
+
});
|
|
118
136
|
}
|
|
119
137
|
buildTransferToRightConfig() {
|
|
120
138
|
return {
|
|
@@ -157,33 +175,77 @@ export class EzDoubleList {
|
|
|
157
175
|
const itemsToMove = this.rightList.filter(item => this.selectedRightList.includes(item.id));
|
|
158
176
|
return { itemsToKeep, itemsToMove };
|
|
159
177
|
}
|
|
160
|
-
handleTransferToRight() {
|
|
178
|
+
async handleTransferToRight() {
|
|
161
179
|
this.transferToRight();
|
|
162
180
|
this.leftFilteredList = [];
|
|
163
|
-
this.
|
|
181
|
+
await this.leftEzListInstance.clearSelection();
|
|
164
182
|
}
|
|
165
|
-
handleTransferToLeft() {
|
|
183
|
+
async handleTransferToLeft() {
|
|
166
184
|
this.transferToLeft();
|
|
167
185
|
this.rightFilteredList = [];
|
|
168
|
-
this.
|
|
186
|
+
await this.rightEzListInstance.clearSelection();
|
|
169
187
|
}
|
|
170
|
-
|
|
171
|
-
|
|
188
|
+
async clearSelectionAll() {
|
|
189
|
+
await this.rightEzListInstance.clearSelection();
|
|
190
|
+
await this.leftEzListInstance.clearSelection();
|
|
172
191
|
}
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
}
|
|
177
|
-
return (h("ez-scroller", { direction: EzScrollDirection.VERTICAL, activeShadow: true }, h("ez-list", { ref: (ref) => this.leftEzListInstance = ref, id: this.LEFT_LIST_ID, hoverFeedback: true, dataSource: this.isFilteringLeft ? this.leftFilteredList : this.leftList, ezDraggable: !this.isFilteringLeft, enableMultipleSelection: true, onEzChange: this.handleChangeLeft.bind(this), ezSelectable: true, onEzSelectMultipleItems: this.handleSelectLeftItem.bind(this), onEzDoubleClick: this.handleTransferToRight.bind(this) })));
|
|
192
|
+
handleChooseLeft() {
|
|
193
|
+
requestAnimationFrame(async () => {
|
|
194
|
+
await this.rightEzListInstance.clearSelection();
|
|
195
|
+
});
|
|
178
196
|
}
|
|
179
|
-
|
|
180
|
-
if (
|
|
181
|
-
return
|
|
182
|
-
|
|
183
|
-
|
|
197
|
+
handleChooseRight() {
|
|
198
|
+
if (this.useOnlyRightList)
|
|
199
|
+
return;
|
|
200
|
+
requestAnimationFrame(async () => {
|
|
201
|
+
await this.leftEzListInstance.clearSelection();
|
|
202
|
+
});
|
|
203
|
+
}
|
|
204
|
+
renderList(props) {
|
|
205
|
+
const { idSortableList, list, isFiltering, filteredList, emptyMessage, slotConfig, callbacks, title } = props;
|
|
206
|
+
return (h("ez-sortable-list", { ref: callbacks === null || callbacks === void 0 ? void 0 : callbacks.setRef, title: title, idSortableList: idSortableList, emptyMessage: emptyMessage, class: "ez-size-height--full", dataSource: isFiltering ? filteredList : list, hoverFeedback: true, enableMultipleSelection: true, removeItensMoved: true, entityLabel: this.entityLabel, entityLabelPlural: this.entityLabelPlural, itemRightSlotBuilder: slotConfig === null || slotConfig === void 0 ? void 0 : slotConfig.itemRightSlotBuilder, itemLeftSlotBuilder: slotConfig === null || slotConfig === void 0 ? void 0 : slotConfig.itemLeftSlotBuilder, onItemsReordered: callbacks === null || callbacks === void 0 ? void 0 : callbacks.onChange.bind(this), onEzSelectItens: callbacks === null || callbacks === void 0 ? void 0 : callbacks.onSelect.bind(this), onEzDoubleClick: callbacks === null || callbacks === void 0 ? void 0 : callbacks.onDoubleClick.bind(this), onEzChoose: callbacks === null || callbacks === void 0 ? void 0 : callbacks.onChoose.bind(this) }));
|
|
184
207
|
}
|
|
185
208
|
render() {
|
|
186
|
-
|
|
209
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
210
|
+
return (h(Host, null, !this.useOnlyRightList &&
|
|
211
|
+
h("div", { class: "list__container" }, this.leftList && this.renderList({
|
|
212
|
+
idSortableList: this.LEFT_LIST_ID,
|
|
213
|
+
list: this.leftList,
|
|
214
|
+
title: this.leftTitle,
|
|
215
|
+
isFiltering: this.isFilteringLeft,
|
|
216
|
+
filteredList: this.leftFilteredList,
|
|
217
|
+
emptyMessage: !!((_a = this.emptyMessage) === null || _a === void 0 ? void 0 : _a.LEFT_LIST) ? this.emptyMessage.LEFT_LIST : `Nenhum ${this.entityLabel} disponível`,
|
|
218
|
+
slotConfig: {
|
|
219
|
+
itemRightSlotBuilder: (_c = (_b = this.slotsListBuilder) === null || _b === void 0 ? void 0 : _b.LEFT_LIST) === null || _c === void 0 ? void 0 : _c.itemRightSlotBuilder,
|
|
220
|
+
itemLeftSlotBuilder: (_e = (_d = this.slotsListBuilder) === null || _d === void 0 ? void 0 : _d.LEFT_LIST) === null || _e === void 0 ? void 0 : _e.itemLeftSlotBuilder,
|
|
221
|
+
},
|
|
222
|
+
callbacks: {
|
|
223
|
+
setRef: (ref) => this.leftEzListInstance = ref,
|
|
224
|
+
onChange: (evt) => this.handleChangeLeft(evt),
|
|
225
|
+
onSelect: this.handleSelectLeftItem.bind(this),
|
|
226
|
+
onDoubleClick: this.handleTransferToRight.bind(this),
|
|
227
|
+
onChoose: this.handleChooseLeft.bind(this),
|
|
228
|
+
},
|
|
229
|
+
})), !this.useOnlyRightList &&
|
|
230
|
+
h("div", { class: 'actions__column' }, h("ez-button", { mode: "icon", iconName: "dual-chevron-right", enabled: this.enableTransferAllToRight(), title: `Mover todos para ${this.rightListLabel}`, size: "small", onClick: this.handleTransferAllToRight.bind(this) }), h("ez-button", { mode: "icon", iconName: "chevron-right", enabled: this.enableTransferToRight(), title: `Mover para ${this.rightListLabel}`, size: "small", onClick: this.handleTransferToRight.bind(this) }), h("ez-button", { mode: "icon", iconName: "chevron-left", enabled: this.enableTransferToLeft(), title: `Mover para ${this.leftListLabel}`, size: "small", onClick: this.handleTransferToLeft.bind(this) }), h("ez-button", { mode: "icon", iconName: "dual-chevron-left", enabled: this.enableTransferAllToLeft(), title: `Mover todos para ${this.leftListLabel}`, size: "small", onClick: this.handleTransferAllToLeft.bind(this) })), h("div", { class: "list__container" }, this.rightList && this.renderList({
|
|
231
|
+
idSortableList: this.RIGHT_LIST_ID,
|
|
232
|
+
list: this.rightList,
|
|
233
|
+
title: this.rightTitle,
|
|
234
|
+
isFiltering: this.isFilteringRight,
|
|
235
|
+
filteredList: this.rightFilteredList,
|
|
236
|
+
emptyMessage: !!((_f = this.emptyMessage) === null || _f === void 0 ? void 0 : _f.RIGHT_LIST) ? this.emptyMessage.RIGHT_LIST : `Nenhum ${this.entityLabel} selecionado`,
|
|
237
|
+
slotConfig: {
|
|
238
|
+
itemRightSlotBuilder: (_h = (_g = this.slotsListBuilder) === null || _g === void 0 ? void 0 : _g.RIGHT_LIST) === null || _h === void 0 ? void 0 : _h.itemRightSlotBuilder,
|
|
239
|
+
itemLeftSlotBuilder: (_k = (_j = this.slotsListBuilder) === null || _j === void 0 ? void 0 : _j.RIGHT_LIST) === null || _k === void 0 ? void 0 : _k.itemLeftSlotBuilder,
|
|
240
|
+
},
|
|
241
|
+
callbacks: {
|
|
242
|
+
setRef: (ref) => this.rightEzListInstance = ref,
|
|
243
|
+
onChange: (evt) => this.handleChangeRight(evt),
|
|
244
|
+
onSelect: this.handleSelectRightItem.bind(this),
|
|
245
|
+
onDoubleClick: this.handleTransferToLeft.bind(this),
|
|
246
|
+
onChoose: this.handleChooseRight.bind(this),
|
|
247
|
+
},
|
|
248
|
+
})), h("div", { class: 'actions__column' }, h("ez-button", { mode: "icon", iconName: "dual-chevron-up", enabled: this.enableMoveUp(true), title: "Mover para primeira posi\u00E7\u00E3o", size: "small", onClick: this.handleMoveToTop.bind(this) }), h("ez-button", { mode: "icon", iconName: "chevron-up", enabled: this.enableMoveUp(), title: "Mover para cima", size: "small", onClick: this.handleMoveUp.bind(this) }), h("ez-button", { mode: "icon", iconName: "chevron-down", enabled: this.enableMoveDown(), title: "Mover para baixo", size: "small", onClick: this.handleMoveDown.bind(this) }), h("ez-button", { mode: "icon", iconName: "dual-chevron-down", enabled: this.enableMoveDown(true), title: "Mover para \u00FAltima posi\u00E7\u00E3o", size: "small", onClick: this.handleMoveToBottom.bind(this) }))));
|
|
187
249
|
}
|
|
188
250
|
static get is() { return "ez-double-list"; }
|
|
189
251
|
static get encapsulation() { return "scoped"; }
|
|
@@ -208,7 +270,7 @@ export class EzDoubleList {
|
|
|
208
270
|
"references": {
|
|
209
271
|
"ListItem": {
|
|
210
272
|
"location": "import",
|
|
211
|
-
"path": "../ez-list/ez-list"
|
|
273
|
+
"path": "../ez-sortable-list/ez-sortable-list"
|
|
212
274
|
}
|
|
213
275
|
}
|
|
214
276
|
},
|
|
@@ -246,7 +308,7 @@ export class EzDoubleList {
|
|
|
246
308
|
"references": {
|
|
247
309
|
"ListItem": {
|
|
248
310
|
"location": "import",
|
|
249
|
-
"path": "../ez-list/ez-list"
|
|
311
|
+
"path": "../ez-sortable-list/ez-sortable-list"
|
|
250
312
|
}
|
|
251
313
|
}
|
|
252
314
|
},
|
|
@@ -288,7 +350,7 @@ export class EzDoubleList {
|
|
|
288
350
|
"optional": false,
|
|
289
351
|
"docs": {
|
|
290
352
|
"tags": [],
|
|
291
|
-
"text": "Varia\u00E7\u00E3o
|
|
353
|
+
"text": "Varia\u00E7\u00E3o plural do nome da entidade listada.\nExemplo: \"Campos\", \"Itens\", \"Empresas\"."
|
|
292
354
|
},
|
|
293
355
|
"attribute": "entity-label-plural",
|
|
294
356
|
"reflect": false,
|
|
@@ -330,6 +392,24 @@ export class EzDoubleList {
|
|
|
330
392
|
"reflect": false,
|
|
331
393
|
"defaultValue": "'selecionados'"
|
|
332
394
|
},
|
|
395
|
+
"useOnlyRightList": {
|
|
396
|
+
"type": "boolean",
|
|
397
|
+
"mutable": false,
|
|
398
|
+
"complexType": {
|
|
399
|
+
"original": "boolean",
|
|
400
|
+
"resolved": "boolean",
|
|
401
|
+
"references": {}
|
|
402
|
+
},
|
|
403
|
+
"required": false,
|
|
404
|
+
"optional": false,
|
|
405
|
+
"docs": {
|
|
406
|
+
"tags": [],
|
|
407
|
+
"text": "Define se ir\u00E1 exibir apenas a lista da direita."
|
|
408
|
+
},
|
|
409
|
+
"attribute": "use-only-right-list",
|
|
410
|
+
"reflect": false,
|
|
411
|
+
"defaultValue": "false"
|
|
412
|
+
},
|
|
333
413
|
"rightTitle": {
|
|
334
414
|
"type": "string",
|
|
335
415
|
"mutable": false,
|
|
@@ -346,6 +426,44 @@ export class EzDoubleList {
|
|
|
346
426
|
},
|
|
347
427
|
"attribute": "right-title",
|
|
348
428
|
"reflect": false
|
|
429
|
+
},
|
|
430
|
+
"emptyMessage": {
|
|
431
|
+
"type": "unknown",
|
|
432
|
+
"mutable": false,
|
|
433
|
+
"complexType": {
|
|
434
|
+
"original": "EmptyMessage",
|
|
435
|
+
"resolved": "EmptyMessage",
|
|
436
|
+
"references": {
|
|
437
|
+
"EmptyMessage": {
|
|
438
|
+
"location": "local"
|
|
439
|
+
}
|
|
440
|
+
}
|
|
441
|
+
},
|
|
442
|
+
"required": false,
|
|
443
|
+
"optional": false,
|
|
444
|
+
"docs": {
|
|
445
|
+
"tags": [],
|
|
446
|
+
"text": "Objeto que define as mensagens a serem exibidas quando a lista est\u00E1 vazia\nExemplo:\n{\nLEFT_LIST?: \"Lista lado esquerdo vazia.\",\nRIGHT_LIST?: \"Lista lado direito vazia.\";\n}"
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
"slotsListBuilder": {
|
|
450
|
+
"type": "unknown",
|
|
451
|
+
"mutable": true,
|
|
452
|
+
"complexType": {
|
|
453
|
+
"original": "DoubleListSlots",
|
|
454
|
+
"resolved": "DoubleListSlots",
|
|
455
|
+
"references": {
|
|
456
|
+
"DoubleListSlots": {
|
|
457
|
+
"location": "local"
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
},
|
|
461
|
+
"required": false,
|
|
462
|
+
"optional": false,
|
|
463
|
+
"docs": {
|
|
464
|
+
"tags": [],
|
|
465
|
+
"text": "Objeto que define os m\u00E9todos de constru\u00E7\u00E3o dos elementos visuais para os itens de cada lista.\n\nEste objeto permite configurar dinamicamente os elementos HTML que ser\u00E3o exibidos ao lado\nesquerdo e direito dos itens em ambas as listas (`LEFT_LIST` e `RIGHT_LIST`)."
|
|
466
|
+
}
|
|
349
467
|
}
|
|
350
468
|
};
|
|
351
469
|
}
|
|
@@ -368,7 +486,7 @@ export class EzDoubleList {
|
|
|
368
486
|
"composed": true,
|
|
369
487
|
"docs": {
|
|
370
488
|
"tags": [],
|
|
371
|
-
"text": ""
|
|
489
|
+
"text": "Emitido ao realizar uma altera\u00E7\u00E3o na lista esquerda do componente."
|
|
372
490
|
},
|
|
373
491
|
"complexType": {
|
|
374
492
|
"original": "Array<ListItem>",
|
|
@@ -379,7 +497,7 @@ export class EzDoubleList {
|
|
|
379
497
|
},
|
|
380
498
|
"ListItem": {
|
|
381
499
|
"location": "import",
|
|
382
|
-
"path": "../ez-list/ez-list"
|
|
500
|
+
"path": "../ez-sortable-list/ez-sortable-list"
|
|
383
501
|
}
|
|
384
502
|
}
|
|
385
503
|
}
|
|
@@ -391,7 +509,7 @@ export class EzDoubleList {
|
|
|
391
509
|
"composed": true,
|
|
392
510
|
"docs": {
|
|
393
511
|
"tags": [],
|
|
394
|
-
"text": ""
|
|
512
|
+
"text": "Emitido ao realizar uma altera\u00E7\u00E3o na lista direita do componente."
|
|
395
513
|
},
|
|
396
514
|
"complexType": {
|
|
397
515
|
"original": "Array<ListItem>",
|
|
@@ -402,7 +520,7 @@ export class EzDoubleList {
|
|
|
402
520
|
},
|
|
403
521
|
"ListItem": {
|
|
404
522
|
"location": "import",
|
|
405
|
-
"path": "../ez-list/ez-list"
|
|
523
|
+
"path": "../ez-sortable-list/ez-sortable-list"
|
|
406
524
|
}
|
|
407
525
|
}
|
|
408
526
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ApplicationContext, DataType, LockManager, LockManagerOperation, MaskFormatter, NumberUtils, SortMode, StringUtils, UserInterface, } from '@sankhyalabs/core';
|
|
2
|
-
import { Grid } from "@ag-grid-community/core";
|
|
2
|
+
import { Grid, } from "@ag-grid-community/core";
|
|
3
3
|
import { LicenseManager } from '@ag-grid-enterprise/core';
|
|
4
4
|
import DataSource from './DataSource';
|
|
5
5
|
import { EzGridCustomHeader } from './components/EzGridCustomHeader';
|
|
@@ -14,6 +14,7 @@ import { RangeSelectionModule } from '@ag-grid-enterprise/range-selection';
|
|
|
14
14
|
import { ServerSideRowModelModule } from '@ag-grid-enterprise/server-side-row-model';
|
|
15
15
|
import { ClipboardModule } from '@ag-grid-enterprise/clipboard';
|
|
16
16
|
import { MenuModule } from '@ag-grid-enterprise/menu';
|
|
17
|
+
import DOMPurify from 'dompurify';
|
|
17
18
|
export default class AgGridController {
|
|
18
19
|
configFilterColumn(filterColumn) {
|
|
19
20
|
this._filterColumn = filterColumn;
|
|
@@ -959,6 +960,10 @@ export default class AgGridController {
|
|
|
959
960
|
if (params.value instanceof Promise) {
|
|
960
961
|
return "Carregando...";
|
|
961
962
|
}
|
|
963
|
+
if (source.userInterface === UserInterface.HTML) {
|
|
964
|
+
this.setHTMLRender(params, source);
|
|
965
|
+
return "";
|
|
966
|
+
}
|
|
962
967
|
const customFormatter = this._customFormatters.get(source.name);
|
|
963
968
|
if (customFormatter) {
|
|
964
969
|
const formattedValue = customFormatter.format(params.value, source, params.data.__record__id__);
|
|
@@ -975,6 +980,24 @@ export default class AgGridController {
|
|
|
975
980
|
editable: !((_e = source.props) === null || _e === void 0 ? void 0 : _e.has(PRESENTATION_FROM_COL_PROP_NAME))
|
|
976
981
|
});
|
|
977
982
|
}
|
|
983
|
+
setHTMLRender(params, source) {
|
|
984
|
+
const htmlSanitized = DOMPurify.sanitize(params.value);
|
|
985
|
+
params.colDef.cellRenderer = (cellParams) => {
|
|
986
|
+
if (cellParams.node.rowIndex === params.node.rowIndex) {
|
|
987
|
+
const element = document.createElement('span');
|
|
988
|
+
element.innerHTML = htmlSanitized;
|
|
989
|
+
return element.firstChild;
|
|
990
|
+
}
|
|
991
|
+
return cellParams.value;
|
|
992
|
+
};
|
|
993
|
+
params.colDef.cellStyle = (cellParams) => {
|
|
994
|
+
const defaultStyle = this.getStyleByColumn(source);
|
|
995
|
+
if (cellParams.node.rowIndex === params.node.rowIndex) {
|
|
996
|
+
return Object.assign(defaultStyle, { padding: 0 });
|
|
997
|
+
}
|
|
998
|
+
return defaultStyle;
|
|
999
|
+
};
|
|
1000
|
+
}
|
|
978
1001
|
setCustomFormatters(customFormatters) {
|
|
979
1002
|
this._customFormatters = customFormatters;
|
|
980
1003
|
}
|
|
@@ -345,11 +345,14 @@ export default class GridEditionManager {
|
|
|
345
345
|
}
|
|
346
346
|
isColEditable(fieldName) {
|
|
347
347
|
const fieldDefinition = this._dataUnit.getField(fieldName);
|
|
348
|
-
if (fieldDefinition) {
|
|
348
|
+
if (fieldDefinition && !this.isTypeFile(fieldDefinition)) {
|
|
349
349
|
return !fieldDefinition.readOnly;
|
|
350
350
|
}
|
|
351
351
|
return false;
|
|
352
352
|
}
|
|
353
|
+
isTypeFile(file) {
|
|
354
|
+
return file.userInterface === UserInterface.FILE;
|
|
355
|
+
}
|
|
353
356
|
isSecondClick(cellClicked) {
|
|
354
357
|
if (!this._lastCellClicked) {
|
|
355
358
|
return false;
|