jsl-ui 9.28.2 → 9.28.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 (67) hide show
  1. package/lib/components/IntervalComponent.js +32 -35
  2. package/lib/components/auto-suggest/AutoSuggestComponent.js +19 -21
  3. package/lib/components/button/ButtonComponent.js +13 -30
  4. package/lib/components/checkbox/CheckBoxComponent.js +22 -39
  5. package/lib/components/date/DateComponent.js +29 -46
  6. package/lib/components/date-range/DateRangeComponent.js +48 -63
  7. package/lib/components/date-time/DateTimeComponent.js +17 -31
  8. package/lib/components/dialog/DialogComponent.js +75 -134
  9. package/lib/components/drop-down/DropDownComponent.js +23 -37
  10. package/lib/components/expander/ExpanderComponent.js +20 -23
  11. package/lib/components/form-field/FormComponent.js +9 -12
  12. package/lib/components/form-field/FormFieldComponent.js +28 -30
  13. package/lib/components/grid/GridComponent.js +46 -52
  14. package/lib/components/input/InputComponent.js +26 -47
  15. package/lib/components/loading/LoadingComponent.js +7 -9
  16. package/lib/components/navigation/NavigationComponent.js +20 -43
  17. package/lib/components/notification/Notification.js +18 -22
  18. package/lib/components/number/NumberComponent.js +28 -46
  19. package/lib/components/overlay/OverlayComponent.js +45 -60
  20. package/lib/components/progress/ProgressComponent.js +15 -17
  21. package/lib/components/ribbon-menu/RibbonMenuComponent.js +9 -20
  22. package/lib/components/select/SelectComponent.js +105 -122
  23. package/lib/components/select/SelectDDAreaComponent.js +108 -122
  24. package/lib/components/slider/nouislider.js +1 -1
  25. package/lib/components/stack-panel/SplitterComponent.js +27 -29
  26. package/lib/components/stack-panel/StackPanelComponent.js +17 -31
  27. package/lib/components/tabs/TabsComponent.js +53 -66
  28. package/lib/components/time/TimeComponent.js +32 -43
  29. package/lib/components/tree-view/TreeViewComponent.js +13 -16
  30. package/lib/components/virtual-render/VirtualRenderComponent.js +30 -44
  31. package/lib/core/culture.js +2 -2
  32. package/lib/core/date.js +68 -72
  33. package/lib/core/helper.js +30 -34
  34. package/lib/core/jq.js +54 -63
  35. package/lib/core/lang.js +24 -28
  36. package/lib/core/numeric.js +35 -39
  37. package/lib/grid/filterDialogs/dateRangeFilter.js +98 -148
  38. package/lib/grid/filterDialogs/excelFilter.js +205 -271
  39. package/lib/grid/plugins/ext.overlay.js +9 -9
  40. package/lib/grid/plugins/slick.cellrangedecorator.js +2 -2
  41. package/lib/grid/plugins/slick.cellrangeselector.js +1 -1
  42. package/lib/grid/plugins/slick.cellselectionmodel.js +8 -8
  43. package/lib/grid/plugins/slick.headerbuttons.js +1 -1
  44. package/lib/grid/plugins/slick.headermenu.js +1 -1
  45. package/lib/grid/plugins/slick.rowmovemanager.js +2 -2
  46. package/lib/grid/plugins/slick.rowselectionmodel.js +1 -1
  47. package/lib/grid/slick.core.js +1 -1
  48. package/lib/grid/slick.creator.js +144 -144
  49. package/lib/grid/slick.dataview.js +127 -138
  50. package/lib/grid/slick.editors.core.js +1 -1
  51. package/lib/grid/slick.editors.date.js +2 -2
  52. package/lib/grid/slick.editors.lookup.js +36 -37
  53. package/lib/grid/slick.editors.nav.js +1 -1
  54. package/lib/grid/slick.formatters.js +26 -26
  55. package/lib/grid/slick.grid.js +163 -166
  56. package/lib/grid/slick.groupitemmetadataprovider.js +4 -4
  57. package/lib/grid/slick.tree.js +91 -103
  58. package/lib/index.js.map +1 -1
  59. package/lib/interaction/eventhandler.js +20 -23
  60. package/lib/interaction/moveable.js +76 -90
  61. package/lib/interaction/resizable.js +58 -72
  62. package/lib/ui/auto.suggest.js +13 -28
  63. package/lib/ui/date.picker/lib/fns.js +1 -5
  64. package/lib/ui/dialog.js +28 -43
  65. package/lib/ui/drop.down.js +4 -4
  66. package/lib/ui/number.input.js +8 -19
  67. package/package.json +1 -1
@@ -1,156 +1,106 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- var __generator = (this && this.__generator) || function (thisArg, body) {
11
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
12
- return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
13
- function verb(n) { return function (v) { return step([n, v]); }; }
14
- function step(op) {
15
- if (f) throw new TypeError("Generator is already executing.");
16
- while (g && (g = 0, op[0] && (_ = 0)), _) try {
17
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
18
- if (y = 0, t) op = [op[0] & 2, t.value];
19
- switch (op[0]) {
20
- case 0: case 1: t = op; break;
21
- case 4: _.label++; return { value: op[1], done: false };
22
- case 5: _.label++; y = op[1]; op = [0]; continue;
23
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
24
- default:
25
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29
- if (t[2]) _.ops.pop();
30
- _.trys.pop(); continue;
31
- }
32
- op = body.call(thisArg, _);
33
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35
- }
36
- };
37
1
  import { UILang } from "../../core/lang";
38
2
  import { Dialog } from "../../ui/dialog";
39
3
  import { JSLRender } from "jsl-render";
40
4
  import { DateRangeComponent } from "../../components/date-range/DateRangeComponent";
41
- var DateRangeFilter = /** @class */ (function () {
42
- function DateRangeFilter(grid) {
5
+ export class DateRangeFilter {
6
+ constructor(grid) {
43
7
  this.grid = grid;
44
8
  }
45
- DateRangeFilter.prototype.show = function (col) {
46
- return __awaiter(this, void 0, void 0, function () {
47
- var minVal, maxVal, filters, currentFilters, mode, idx, l, v, filterOptions, values, oldminMaxValues, _i, currentFilters_1, f, dlg, dlgBody, dateRangeComp, dlgObj, dlgOkButton, dlgCancelButton, dlgClearButton;
48
- var _this = this;
49
- return __generator(this, function (_a) {
50
- switch (_a.label) {
51
- case 0:
52
- filters = this.grid.getFilters();
53
- currentFilters = filters.filter(function (f) { return f.columnId === col.id; });
54
- mode = this.grid.getOptions().mode;
55
- if (!(mode === "client")) return [3 /*break*/, 1];
56
- // remove any filters for this column
57
- if (currentFilters.length > 0) {
58
- this.grid.clearFilter(col.id);
59
- }
60
- for (idx = 0, l = this.grid.getDataLength(); idx < l; idx++) {
61
- v = this.grid.getDataItemValueForColumn(this.grid.getDataItem(idx), col);
62
- if (minVal == null || v < minVal) {
63
- minVal = v;
64
- }
65
- if (maxVal == null || v > maxVal) {
66
- maxVal = v;
67
- }
68
- }
69
- return [3 /*break*/, 3];
70
- case 1:
71
- filterOptions = this.grid.getOptions().getFilterValues;
72
- if (filterOptions == null) {
73
- throw new Error("getFilterValues option has to be set when filter mode = server");
74
- }
75
- return [4 /*yield*/, filterOptions(col)];
76
- case 2:
77
- values = _a.sent();
78
- // TODO: check if correct type of object was returned
79
- minVal = values[0];
80
- maxVal = values[1];
81
- _a.label = 3;
82
- case 3:
83
- oldminMaxValues = [minVal, maxVal];
84
- if (currentFilters.length > 0) {
85
- for (_i = 0, currentFilters_1 = currentFilters; _i < currentFilters_1.length; _i++) {
86
- f = currentFilters_1[_i];
87
- if (f._checkedValues) {
88
- oldminMaxValues = f._checkedValues;
89
- }
90
- if (mode === "client") {
91
- filters.push(f);
92
- }
93
- }
94
- if (mode === "client") {
95
- this.grid.refreshFilters();
96
- }
97
- }
98
- dlg = document.createElement("div");
99
- dlg.classList.add("jsl-dialog-overlay");
100
- dlg.innerHTML = '<div class="jsl-dialog" style="width:50vw;min-height:50vh;"><div class="dlg-header">' + UILang.grid.Filter + '</div><div class="dlg-body" style="max-height:calc(100vh - 7.5rem)"></div>' +
101
- '<div class="dlg-footer">' +
102
- '<button class="jsl-button ok-button">' + UILang.core.Ok + "</button>" +
103
- (currentFilters.length > 0 ? ('<button class="jsl-button clear-button">' + UILang.grid.ClearFilter + '</button>') : "") +
104
- '<button class="jsl-button close-button">' + UILang.core.Cancel + "</button>" +
105
- "</div></div>";
106
- dlgBody = dlg.querySelector(".dlg-body");
107
- dateRangeComp = new DateRangeComponent({
108
- min: minVal, max: maxVal,
109
- minValue: oldminMaxValues[0], maxValue: oldminMaxValues[1],
110
- increment: "days"
111
- });
112
- new JSLRender(dlgBody, false).render(dateRangeComp);
113
- // const id = helper.newDomGuid();
114
- document.body.appendChild(dlg);
115
- dlgObj = Dialog(dlg, {
116
- autoOpen: true, onClose: function () {
117
- dlg.innerHTML = "";
118
- dlg.parentElement.removeChild(dlg);
119
- }
120
- });
121
- dlgOkButton = dlg.querySelector(".dlg-footer .ok-button");
122
- dlgOkButton.addEventListener("click", function (evt) {
123
- var min = dateRangeComp.getMin();
124
- var max = dateRangeComp.getMax();
125
- _this.grid.clearFilter(col.id, true);
126
- if (min.getDate() !== minVal.getDate() || min.getFullYear() !== minVal.getFullYear() || max.getDate() !== maxVal.getDate() || max.getFullYear() !== maxVal.getFullYear()) {
127
- var filterObject = {
128
- field: col.field, columnId: col.id, match: mode === "server" ? function () { return true; } : function (item, field) {
129
- return _this.grid.getDataItemValueForColumn(item, col) >= min && _this.grid.getDataItemValueForColumn(item, col) <= max;
130
- }
131
- };
132
- filterObject._checkedValues = [min, max];
133
- _this.grid.addFilter(filterObject, true);
134
- }
135
- _this.grid.refreshFilters();
136
- dlgObj.close();
137
- });
138
- dlgCancelButton = dlg.querySelector(".dlg-footer .close-button");
139
- dlgCancelButton.addEventListener("click", function (evt) {
140
- dlgObj.close();
141
- });
142
- dlgClearButton = dlg.querySelector(".dlg-footer .clear-button");
143
- if (dlgClearButton != null) {
144
- dlgClearButton.addEventListener("click", function (evt) {
145
- _this.grid.clearFilter(col.id);
146
- dlgObj.close();
147
- });
148
- }
149
- return [2 /*return*/];
9
+ async show(col) {
10
+ let minVal;
11
+ let maxVal;
12
+ const filters = this.grid.getFilters();
13
+ const currentFilters = filters.filter((f) => f.columnId === col.id);
14
+ const mode = this.grid.getOptions().mode;
15
+ if (mode === "client") {
16
+ // remove any filters for this column
17
+ if (currentFilters.length > 0) {
18
+ this.grid.clearFilter(col.id);
19
+ }
20
+ for (let idx = 0, l = this.grid.getDataLength(); idx < l; idx++) {
21
+ const v = this.grid.getDataItemValueForColumn(this.grid.getDataItem(idx), col);
22
+ if (minVal == null || v < minVal) {
23
+ minVal = v;
150
24
  }
151
- });
25
+ if (maxVal == null || v > maxVal) {
26
+ maxVal = v;
27
+ }
28
+ }
29
+ }
30
+ else {
31
+ const filterOptions = this.grid.getOptions().getFilterValues;
32
+ if (filterOptions == null) {
33
+ throw new Error("getFilterValues option has to be set when filter mode = server");
34
+ }
35
+ const values = await filterOptions(col);
36
+ // TODO: check if correct type of object was returned
37
+ minVal = values[0];
38
+ maxVal = values[1];
39
+ }
40
+ let oldminMaxValues = [minVal, maxVal];
41
+ if (currentFilters.length > 0) {
42
+ for (const f of currentFilters) {
43
+ if (f._checkedValues) {
44
+ oldminMaxValues = f._checkedValues;
45
+ }
46
+ if (mode === "client") {
47
+ filters.push(f);
48
+ }
49
+ }
50
+ if (mode === "client") {
51
+ this.grid.refreshFilters();
52
+ }
53
+ }
54
+ const dlg = document.createElement("div");
55
+ dlg.classList.add("jsl-dialog-overlay");
56
+ dlg.innerHTML = '<div class="jsl-dialog" style="width:50vw;min-height:50vh;"><div class="dlg-header">' + UILang.grid.Filter + '</div><div class="dlg-body" style="max-height:calc(100vh - 7.5rem)"></div>' +
57
+ '<div class="dlg-footer">' +
58
+ '<button class="jsl-button ok-button">' + UILang.core.Ok + "</button>" +
59
+ (currentFilters.length > 0 ? ('<button class="jsl-button clear-button">' + UILang.grid.ClearFilter + '</button>') : "") +
60
+ '<button class="jsl-button close-button">' + UILang.core.Cancel + "</button>" +
61
+ "</div></div>";
62
+ const dlgBody = dlg.querySelector(".dlg-body");
63
+ const dateRangeComp = new DateRangeComponent({
64
+ min: minVal, max: maxVal,
65
+ minValue: oldminMaxValues[0], maxValue: oldminMaxValues[1],
66
+ increment: "days"
152
67
  });
153
- };
154
- return DateRangeFilter;
155
- }());
156
- export { DateRangeFilter };
68
+ new JSLRender(dlgBody, false).render(dateRangeComp);
69
+ // const id = helper.newDomGuid();
70
+ document.body.appendChild(dlg);
71
+ const dlgObj = Dialog(dlg, {
72
+ autoOpen: true, onClose: () => {
73
+ dlg.innerHTML = "";
74
+ dlg.parentElement.removeChild(dlg);
75
+ }
76
+ });
77
+ const dlgOkButton = dlg.querySelector(".dlg-footer .ok-button");
78
+ dlgOkButton.addEventListener("click", (evt) => {
79
+ const min = dateRangeComp.getMin();
80
+ const max = dateRangeComp.getMax();
81
+ this.grid.clearFilter(col.id, true);
82
+ if (min.getDate() !== minVal.getDate() || min.getFullYear() !== minVal.getFullYear() || max.getDate() !== maxVal.getDate() || max.getFullYear() !== maxVal.getFullYear()) {
83
+ const filterObject = {
84
+ field: col.field, columnId: col.id, match: mode === "server" ? () => true : (item, field) => {
85
+ return this.grid.getDataItemValueForColumn(item, col) >= min && this.grid.getDataItemValueForColumn(item, col) <= max;
86
+ }
87
+ };
88
+ filterObject._checkedValues = [min, max];
89
+ this.grid.addFilter(filterObject, true);
90
+ }
91
+ this.grid.refreshFilters();
92
+ dlgObj.close();
93
+ });
94
+ const dlgCancelButton = dlg.querySelector(".dlg-footer .close-button");
95
+ dlgCancelButton.addEventListener("click", (evt) => {
96
+ dlgObj.close();
97
+ });
98
+ const dlgClearButton = dlg.querySelector(".dlg-footer .clear-button");
99
+ if (dlgClearButton != null) {
100
+ dlgClearButton.addEventListener("click", (evt) => {
101
+ this.grid.clearFilter(col.id);
102
+ dlgObj.close();
103
+ });
104
+ }
105
+ }
106
+ }