@progress/kendo-react-data-tools 9.0.0-develop.2 → 9.0.0-develop.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 (41) hide show
  1. package/README.md +27 -27
  2. package/columnmenu/ColumnMenu.js +1 -1
  3. package/columnmenu/ColumnMenu.mjs +83 -98
  4. package/columnmenu/ColumnMenuFilterForm.mjs +2 -22
  5. package/columnmenu/ColumnMenuFilterLogic.mjs +8 -2
  6. package/columnmenu/ColumnMenuFilters.mjs +5 -8
  7. package/columnmenu/ColumnMenuOperators.mjs +1 -3
  8. package/dist/cdn/js/kendo-react-datatools.js +1 -1
  9. package/drag/DragClue.mjs +8 -1
  10. package/filter/Expression.mjs +21 -4
  11. package/filter/Filter.mjs +6 -5
  12. package/filter/Group.mjs +43 -25
  13. package/filter/filters/BooleanFilter.mjs +4 -1
  14. package/filter/filters/EnumFilter.mjs +4 -1
  15. package/filter/filters/NumericFilter.mjs +4 -1
  16. package/filter/filters/TextFilter.mjs +3 -1
  17. package/filteringCells/BooleanFilter.js +1 -1
  18. package/filteringCells/BooleanFilter.mjs +9 -9
  19. package/header/HeaderRow.js +1 -1
  20. package/header/HeaderRow.mjs +20 -18
  21. package/header/utils/index.js +1 -1
  22. package/header/utils/index.mjs +55 -57
  23. package/index.d.mts +14 -69
  24. package/index.d.ts +14 -69
  25. package/navigation/TableKeyboardNavigation.js +1 -1
  26. package/navigation/TableKeyboardNavigation.mjs +25 -13
  27. package/navigation/TableKeyboardNavigationContext.mjs +3 -1
  28. package/navigation/utils.mjs +2 -8
  29. package/package-metadata.mjs +1 -1
  30. package/package.json +9 -9
  31. package/pager/Pager.js +1 -1
  32. package/pager/Pager.mjs +216 -238
  33. package/pager/PagerInput.js +1 -1
  34. package/pager/PagerInput.mjs +25 -29
  35. package/pager/PagerNumericButtons.js +1 -1
  36. package/pager/PagerNumericButtons.mjs +68 -95
  37. package/pager/PagerPageSizes.js +1 -1
  38. package/pager/PagerPageSizes.mjs +24 -29
  39. package/pager/utils.js +8 -0
  40. package/pager/utils.mjs +31 -0
  41. package/selection/TableSelection.mjs +17 -20
@@ -6,101 +6,74 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as n from "react";
10
- import { classNames as f, kendoThemeMaps as E } from "@progress/kendo-react-common";
11
- import { Button as M } from "@progress/kendo-react-buttons";
12
- import { pagerMobileSelect as i, messages as l, pagerPage as p, pagerMoreButtonLabel as d } from "../messages/index.mjs";
13
- import { provideLocalizationService as z } from "@progress/kendo-react-intl";
14
- const k = "...";
15
- class I extends n.Component {
16
- constructor() {
17
- super(...arguments), this.handlePageChange = (e, s) => {
18
- e.preventDefault(), this.props.pageChange(s, e);
19
- }, this.handleSelectPageChange = (e) => {
20
- e.preventDefault(), this.props.pageChange(e.target.value, e);
21
- };
9
+ import * as t from "react";
10
+ import { classNames as C, kendoThemeMaps as A } from "@progress/kendo-react-common";
11
+ import { Button as y } from "@progress/kendo-react-buttons";
12
+ import { pagerMobileSelect as F, pagerPage as R, pagerMoreButtonLabel as T } from "../messages/index.mjs";
13
+ import { useLocalization as $ } from "@progress/kendo-react-intl";
14
+ import { getL10NMessage as d, translateMessage as g } from "./utils.mjs";
15
+ const P = "...", K = (n) => {
16
+ const i = $(), { messagesMap: c, size: r, totalPages: p, type: b, navigatable: k } = n, D = d(F, c), E = d(R, c), N = d(T, c), f = g(i, N), M = (e, l) => {
17
+ e.preventDefault(), n.pageChange(l, e);
18
+ }, x = (e) => {
19
+ e.preventDefault(), n.pageChange(e.target.value, e);
20
+ }, h = (e, l) => /* @__PURE__ */ t.createElement(
21
+ y,
22
+ {
23
+ fillMode: "flat",
24
+ themeColor: "primary",
25
+ size: r,
26
+ rounded: null,
27
+ role: "button",
28
+ "aria-label": l,
29
+ onClick: (I) => M(I, e),
30
+ tabIndex: k ? -1 : void 0
31
+ },
32
+ P
33
+ ), v = (e) => /* @__PURE__ */ t.createElement("option", { value: e }, P);
34
+ let o = 1;
35
+ const a = n.currentPage, m = n.buttonCount;
36
+ if (a > m) {
37
+ const e = a % m;
38
+ o = e === 0 ? a - m + 1 : a - e + 1;
22
39
  }
23
- render() {
24
- const e = z(this), { messagesMap: s, size: a, totalPages: g, currentPage: r, type: c, navigatable: v } = this.props, u = s ? s(i) : { messageKey: i, defaultMessage: l[i] }, m = s ? s(p) : { messageKey: p, defaultMessage: l[p] }, h = s ? s(d) : { messageKey: d, defaultMessage: l[d] }, b = e.toLanguageString(h.messageKey, h.defaultMessage), C = this.start > 1 && this.renderDots(this.start - 1, b), y = this.end < g && this.renderDots(this.end + 1, b), D = this.start > 1 && this.renderOptionDots(this.start - 1), P = this.end < g && this.renderOptionDots(this.end + 1), o = [];
25
- for (let t = this.start; t <= this.end; t++)
26
- o.push(t);
27
- const S = o.map((t) => /* @__PURE__ */ n.createElement(
28
- M,
29
- {
30
- className: f({ "k-selected": r === t }),
31
- key: t,
32
- fillMode: "flat",
33
- themeColor: "primary",
34
- size: a,
35
- rounded: null,
36
- role: "button",
37
- "aria-label": e.toLanguageString(m.messageKey, m.defaultMessage) + " " + t,
38
- "aria-current": r === t ? !0 : void 0,
39
- onClick: (x) => this.handlePageChange(x, t),
40
- tabIndex: v ? -1 : void 0
41
- },
42
- t
43
- )), L = o.map((t) => /* @__PURE__ */ n.createElement("option", { key: t }, t));
44
- return /* @__PURE__ */ n.createElement(n.Fragment, null, /* @__PURE__ */ n.createElement(
45
- "select",
46
- {
47
- style: { width: "5em", margin: "0px 1em", display: "inline-flex" },
48
- className: f(
49
- "k-picker k-dropdown-list k-dropdown k-rounded-md k-picker-solid",
50
- {
51
- [`k-picker-${E.sizeMap[a] || a}`]: a,
52
- "k-hidden": c !== "dropdown"
53
- }
54
- ),
55
- "aria-label": e.toLanguageString(u.messageKey, u.defaultMessage),
56
- value: r,
57
- onChange: (t) => this.handleSelectPageChange(t)
58
- },
59
- D,
60
- L,
61
- P
62
- ), /* @__PURE__ */ n.createElement(
63
- "div",
64
- {
65
- className: "k-pager-numbers",
66
- style: { display: c === "numbers" ? "" : "none" }
67
- },
68
- C,
69
- S,
70
- y
71
- ));
72
- }
73
- get end() {
74
- return Math.min(this.start + this.props.buttonCount - 1, this.props.totalPages);
75
- }
76
- get start() {
77
- const e = this.props.currentPage, s = this.props.buttonCount;
78
- if (e > s) {
79
- const a = e % s;
80
- return a === 0 ? e - s + 1 : e - a + 1;
81
- }
82
- return 1;
83
- }
84
- renderDots(e, s) {
85
- return /* @__PURE__ */ n.createElement(
86
- M,
87
- {
88
- fillMode: "flat",
89
- themeColor: "primary",
90
- size: this.props.size,
91
- rounded: null,
92
- role: "button",
93
- "aria-label": s,
94
- onClick: (a) => this.handlePageChange(a, e),
95
- tabIndex: this.props.navigatable ? -1 : void 0
96
- },
97
- k
98
- );
99
- }
100
- renderOptionDots(e) {
101
- return /* @__PURE__ */ n.createElement("option", { value: e }, k);
102
- }
103
- }
40
+ const s = Math.min(o + n.buttonCount - 1, n.totalPages), L = o > 1 && h(o - 1, f), w = s < p && h(s + 1, f), z = o > 1 && v(o - 1), B = s < p && v(s + 1), u = [];
41
+ for (let e = o; e <= s; e++)
42
+ u.push(e);
43
+ const O = u.map((e) => /* @__PURE__ */ t.createElement(
44
+ y,
45
+ {
46
+ className: C({ "k-selected": a === e }),
47
+ key: e,
48
+ fillMode: "flat",
49
+ themeColor: "primary",
50
+ size: r,
51
+ rounded: null,
52
+ role: "button",
53
+ "aria-label": g(i, E) + " " + e,
54
+ "aria-current": a === e ? !0 : void 0,
55
+ onClick: (l) => M(l, e),
56
+ tabIndex: k ? -1 : void 0
57
+ },
58
+ e
59
+ )), S = u.map((e) => /* @__PURE__ */ t.createElement("option", { key: e }, e));
60
+ return /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(
61
+ "select",
62
+ {
63
+ style: { width: "5em", margin: "0px 1em", display: "inline-flex" },
64
+ className: C("k-picker k-dropdown-list k-dropdown k-rounded-md k-picker-solid", {
65
+ [`k-picker-${A.sizeMap[r] || r}`]: r,
66
+ "k-hidden": b !== "dropdown"
67
+ }),
68
+ "aria-label": g(i, D),
69
+ value: a,
70
+ onChange: (e) => x(e)
71
+ },
72
+ z,
73
+ S,
74
+ B
75
+ ), /* @__PURE__ */ t.createElement("div", { className: "k-pager-numbers", style: { display: b === "numbers" ? "" : "none" } }, L, O, w));
76
+ };
104
77
  export {
105
- I as PagerNumericButtons
78
+ K as PagerNumericButtons
106
79
  };
@@ -5,4 +5,4 @@
5
5
  * Licensed under commercial license. See LICENSE.md in the package root for more information
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
- "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("react"),o=require("@progress/kendo-react-intl"),a=require("../messages/index.js"),P=require("@progress/kendo-react-dropdowns");function S(t){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const s in t)if(s!=="default"){const r=Object.getOwnPropertyDescriptor(t,s);Object.defineProperty(e,s,r.get?r:{enumerable:!0,get:()=>t[s]})}}return e.default=t,Object.freeze(e)}const n=S(f);class p extends n.Component{constructor(){super(...arguments),this.pageSizeChange=e=>{this.props.pageChange&&this.props.pageChange({skip:0,take:parseInt(e.target.value,10)},e)}}render(){const{value:e,pageSizes:s,pageSize:r,messagesMap:i,size:u,navigatable:d}=this.props,g=s.slice();e===void 0&&g.filter(m=>m===r).length===0&&g.unshift(r);const c=i?i(a.pagerItemPerPage):{messageKey:a.pagerItemPerPage,defaultMessage:a.messages[a.pagerItemPerPage]},l=i?i(a.pagerPageSizeAriaLabel):{messageKey:a.pagerPageSizeAriaLabel,defaultMessage:a.messages[a.pagerPageSizeAriaLabel]};return n.createElement("span",{className:"k-pager-sizes"},n.createElement(P.DropDownList,{value:e!==void 0?e:r,data:g,onChange:this.pageSizeChange,ariaLabel:o.provideLocalizationService(this).toLanguageString(l.messageKey,l.defaultMessage),size:u,tabIndex:d?-1:void 0}),n.createElement("span",null,o.provideLocalizationService(this).toLanguageString(c.messageKey,c.defaultMessage)))}}o.registerForLocalization(p);exports.PagerPageSizes=p;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react"),z=require("@progress/kendo-react-intl"),l=require("../messages/index.js"),P=require("@progress/kendo-react-dropdowns"),r=require("./utils.js");function S(e){const t=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(e){for(const a in e)if(a!=="default"){const n=Object.getOwnPropertyDescriptor(e,a);Object.defineProperty(t,a,n.get?n:{enumerable:!0,get:()=>e[a]})}}return t.default=e,Object.freeze(t)}const o=S(m),v=e=>{const{value:t,pageSizes:a,pageSize:n,messagesMap:c,size:u,navigatable:p}=e,i=a.slice(),g=z.useLocalization();t===void 0&&i.filter(s=>s===n).length===0&&i.unshift(n);const d=r.getL10NMessage(l.pagerItemPerPage,c),f=r.getL10NMessage(l.pagerPageSizeAriaLabel,c),b=s=>{e.pageChange&&e.pageChange({skip:0,take:parseInt(s.target.value,10)},s)};return o.createElement("span",{className:"k-pager-sizes"},o.createElement(P.DropDownList,{value:t!==void 0?t:n,data:i,onChange:b,ariaLabel:r.translateMessage(g,f),size:u,tabIndex:p?-1:void 0}),o.createElement("span",null,r.translateMessage(g,d)))};exports.PagerPageSizes=v;
@@ -6,34 +6,29 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as s from "react";
10
- import { provideLocalizationService as p, registerForLocalization as d } from "@progress/kendo-react-intl";
11
- import { pagerItemPerPage as g, messages as l, pagerPageSizeAriaLabel as r } from "../messages/index.mjs";
12
- import { DropDownList as f } from "@progress/kendo-react-dropdowns";
13
- class z extends s.Component {
14
- constructor() {
15
- super(...arguments), this.pageSizeChange = (e) => {
16
- this.props.pageChange && this.props.pageChange({ skip: 0, take: parseInt(e.target.value, 10) }, e);
17
- };
18
- }
19
- render() {
20
- const { value: e, pageSizes: m, pageSize: t, messagesMap: a, size: c, navigatable: u } = this.props, i = m.slice();
21
- e === void 0 && i.filter((h) => h === t).length === 0 && i.unshift(t);
22
- const n = a ? a(g) : { messageKey: g, defaultMessage: l[g] }, o = a ? a(r) : { messageKey: r, defaultMessage: l[r] };
23
- return /* @__PURE__ */ s.createElement("span", { className: "k-pager-sizes" }, /* @__PURE__ */ s.createElement(
24
- f,
25
- {
26
- value: e !== void 0 ? e : t,
27
- data: i,
28
- onChange: this.pageSizeChange,
29
- ariaLabel: p(this).toLanguageString(o.messageKey, o.defaultMessage),
30
- size: c,
31
- tabIndex: u ? -1 : void 0
32
- }
33
- ), /* @__PURE__ */ s.createElement("span", null, p(this).toLanguageString(n.messageKey, n.defaultMessage)));
34
- }
35
- }
36
- d(z);
9
+ import * as n from "react";
10
+ import { useLocalization as v } from "@progress/kendo-react-intl";
11
+ import { pagerItemPerPage as P, pagerPageSizeAriaLabel as h } from "../messages/index.mjs";
12
+ import { DropDownList as S } from "@progress/kendo-react-dropdowns";
13
+ import { getL10NMessage as r, translateMessage as l } from "./utils.mjs";
14
+ const C = (a) => {
15
+ const { value: t, pageSizes: c, pageSize: s, messagesMap: g, size: m, navigatable: p } = a, i = c.slice(), o = v();
16
+ t === void 0 && i.filter((e) => e === s).length === 0 && i.unshift(s);
17
+ const z = r(P, g), f = r(h, g), u = (e) => {
18
+ a.pageChange && a.pageChange({ skip: 0, take: parseInt(e.target.value, 10) }, e);
19
+ };
20
+ return /* @__PURE__ */ n.createElement("span", { className: "k-pager-sizes" }, /* @__PURE__ */ n.createElement(
21
+ S,
22
+ {
23
+ value: t !== void 0 ? t : s,
24
+ data: i,
25
+ onChange: u,
26
+ ariaLabel: l(o, f),
27
+ size: m,
28
+ tabIndex: p ? -1 : void 0
29
+ }
30
+ ), /* @__PURE__ */ n.createElement("span", null, l(o, z)));
31
+ };
37
32
  export {
38
- z as PagerPageSizes
33
+ C as PagerPageSizes
39
34
  };
package/pager/utils.js ADDED
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("@progress/kendo-svg-icons"),i=require("../messages/index.js"),g=(t,s)=>s?s(t):{messageKey:t,defaultMessage:i.messages[t]},d=(t,s)=>t.toLanguageString(s.messageKey,s.defaultMessage),u=(t,s,e)=>{const o=t?"caret-alt-to-right":"caret-alt-to-left",r=t?a.caretAltToRightIcon:a.caretAltToLeftIcon,n="k-pager-nav k-pager-first"+(s===1&&!e?" k-disabled":"");return{rtlClass:o,rtlIcon:r,isDisabledClass:n,isDisabled:s===1?!0:void 0}},b=(t,s,e)=>{const o=t?"caret-alt-right":"caret-alt-left",r=t?a.caretAltRightIcon:a.caretAltLeftIcon,n="k-pager-nav"+(s===1&&!e?" k-disabled":"");return{rtlClass:o,rtlIcon:r,isDisabledClass:n,isDisabled:s===1?!0:void 0}},p=(t,s,e,o)=>{const r=t?"caret-alt-left":"caret-alt-right",n=t?a.caretAltLeftIcon:a.caretAltRightIcon,c="k-pager-nav"+(s>=e&&!o?" k-disabled":""),l=s>=e?!0:void 0;return{rtlClass:r,rtlIcon:n,isDisabledClass:c,isDisabled:l}},f=(t,s,e,o)=>{const r=t?"caret-alt-to-left":"caret-alt-to-right",n=t?a.caretAltToLeftIcon:a.caretAltToRightIcon,c="k-pager-nav k-pager-last"+(s>=e&&!o?" k-disabled":""),l=s>=e?!0:void 0;return{rtlClass:r,rtlIcon:n,isDisabledClass:c,isDisabled:l}};exports.getFirstButtonProps=u;exports.getL10NMessage=g;exports.getLastButtonProps=f;exports.getNextButtonProps=p;exports.getPrevButtonProps=b;exports.translateMessage=d;
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @license
3
+ *-------------------------------------------------------------------------------------------
4
+ * Copyright © 2024 Progress Software Corporation. All rights reserved.
5
+ * Licensed under commercial license. See LICENSE.md in the package root for more information
6
+ *-------------------------------------------------------------------------------------------
7
+ */
8
+ "use client";
9
+ import { caretAltToRightIcon as c, caretAltToLeftIcon as i, caretAltRightIcon as d, caretAltLeftIcon as g } from "@progress/kendo-svg-icons";
10
+ import { messages as u } from "../messages/index.mjs";
11
+ const f = (t, s) => s ? s(t) : { messageKey: t, defaultMessage: u[t] }, D = (t, s) => t.toLanguageString(s.messageKey, s.defaultMessage), m = (t, s, e) => {
12
+ const a = t ? "caret-alt-to-right" : "caret-alt-to-left", o = t ? c : i, r = "k-pager-nav k-pager-first" + (s === 1 && !e ? " k-disabled" : "");
13
+ return { rtlClass: a, rtlIcon: o, isDisabledClass: r, isDisabled: s === 1 ? !0 : void 0 };
14
+ }, v = (t, s, e) => {
15
+ const a = t ? "caret-alt-right" : "caret-alt-left", o = t ? d : g, r = "k-pager-nav" + (s === 1 && !e ? " k-disabled" : "");
16
+ return { rtlClass: a, rtlIcon: o, isDisabledClass: r, isDisabled: s === 1 ? !0 : void 0 };
17
+ }, k = (t, s, e, a) => {
18
+ const o = t ? "caret-alt-left" : "caret-alt-right", r = t ? g : d, n = "k-pager-nav" + (s >= e && !a ? " k-disabled" : ""), l = s >= e ? !0 : void 0;
19
+ return { rtlClass: o, rtlIcon: r, isDisabledClass: n, isDisabled: l };
20
+ }, C = (t, s, e, a) => {
21
+ const o = t ? "caret-alt-to-left" : "caret-alt-to-right", r = t ? i : c, n = "k-pager-nav k-pager-last" + (s >= e && !a ? " k-disabled" : ""), l = s >= e ? !0 : void 0;
22
+ return { rtlClass: o, rtlIcon: r, isDisabledClass: n, isDisabled: l };
23
+ };
24
+ export {
25
+ m as getFirstButtonProps,
26
+ f as getL10NMessage,
27
+ C as getLastButtonProps,
28
+ k as getNextButtonProps,
29
+ v as getPrevButtonProps,
30
+ D as translateMessage
31
+ };
@@ -17,26 +17,23 @@ const ce = (u) => {
17
17
  drag: M,
18
18
  mode: o,
19
19
  cell: X
20
- } = $(u.selectable), r = t.useRef(null), Y = t.useRef(null), d = t.useRef({ clientX: 0, clientY: 0, scrollX: 0, scrollY: 0, pressedElement: null }), [T, f] = t.useState(null), C = t.useRef(), g = t.useRef(!1), y = t.useRef(!1), j = t.useCallback(
21
- (s) => {
22
- const { event: e } = s;
23
- if (y.current = ee(e.originalEvent.target), y.current || !r.current)
24
- return;
25
- C.current = te(r.current.element);
26
- const n = r.current.element && r.current.element.ownerDocument;
27
- if (!n)
28
- return;
29
- const l = n.elementFromPoint(e.clientX, e.clientY);
30
- d.current = {
31
- clientY: e.clientY,
32
- clientX: e.clientX,
33
- scrollX: e.scrollX,
34
- scrollY: e.scrollY,
35
- pressedElement: l
36
- };
37
- },
38
- []
39
- ), z = t.useCallback(
20
+ } = $(u.selectable), r = t.useRef(null), Y = t.useRef(null), d = t.useRef({ clientX: 0, clientY: 0, scrollX: 0, scrollY: 0, pressedElement: null }), [T, f] = t.useState(null), C = t.useRef(), g = t.useRef(!1), y = t.useRef(!1), j = t.useCallback((s) => {
21
+ const { event: e } = s;
22
+ if (y.current = ee(e.originalEvent.target), y.current || !r.current)
23
+ return;
24
+ C.current = te(r.current.element);
25
+ const n = r.current.element && r.current.element.ownerDocument;
26
+ if (!n)
27
+ return;
28
+ const l = n.elementFromPoint(e.clientX, e.clientY);
29
+ d.current = {
30
+ clientY: e.clientY,
31
+ clientX: e.clientX,
32
+ scrollX: e.scrollX,
33
+ scrollY: e.scrollY,
34
+ pressedElement: l
35
+ };
36
+ }, []), z = t.useCallback(
40
37
  (s) => {
41
38
  const { event: e } = s, { clientX: n, clientY: l } = d.current;
42
39
  if (!y.current && !(!M || o === "single") && ((Math.abs(l - e.clientY) > 5 || Math.abs(n - e.clientX) > 5) && (g.current = !0), g.current)) {