@progress/kendo-react-data-tools 7.2.4-develop.3 → 7.3.0-develop.1

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 (184) hide show
  1. package/clipboard/clipboard.service.js +8 -0
  2. package/clipboard/clipboard.service.mjs +27 -0
  3. package/clipboard/common.js +13 -0
  4. package/clipboard/common.mjs +64 -0
  5. package/columnmenu/ColumnMenu.js +8 -0
  6. package/columnmenu/ColumnMenu.mjs +256 -0
  7. package/columnmenu/ColumnMenuFilterForm.js +8 -0
  8. package/columnmenu/ColumnMenuFilterForm.mjs +47 -0
  9. package/columnmenu/ColumnMenuFilterLogic.js +8 -0
  10. package/columnmenu/ColumnMenuFilterLogic.mjs +29 -0
  11. package/columnmenu/ColumnMenuFilters.js +8 -0
  12. package/columnmenu/ColumnMenuFilters.mjs +98 -0
  13. package/columnmenu/ColumnMenuItem.js +8 -0
  14. package/columnmenu/ColumnMenuItem.mjs +26 -0
  15. package/columnmenu/ColumnMenuOperators.js +8 -0
  16. package/columnmenu/ColumnMenuOperators.mjs +109 -0
  17. package/dist/cdn/js/kendo-react-datatools.js +8 -10
  18. package/drag/ColumnDraggable.js +8 -0
  19. package/drag/ColumnDraggable.mjs +40 -0
  20. package/drag/ColumnResize.js +8 -0
  21. package/drag/ColumnResize.mjs +58 -0
  22. package/drag/ColumnResizer.js +8 -0
  23. package/drag/ColumnResizer.mjs +56 -0
  24. package/drag/CommonDragLogic.js +8 -0
  25. package/drag/CommonDragLogic.mjs +89 -0
  26. package/drag/DragClue.js +8 -0
  27. package/drag/DragClue.mjs +52 -0
  28. package/drag/DropClue.js +8 -0
  29. package/drag/DropClue.mjs +43 -0
  30. package/filter/Expression.js +8 -0
  31. package/filter/Expression.mjs +113 -0
  32. package/filter/Filter.js +8 -0
  33. package/filter/Filter.mjs +84 -0
  34. package/filter/Group.js +8 -0
  35. package/filter/Group.mjs +163 -0
  36. package/filter/filters/BooleanFilter.js +8 -0
  37. package/filter/filters/BooleanFilter.mjs +43 -0
  38. package/filter/filters/DateFilter.js +8 -0
  39. package/filter/filters/DateFilter.mjs +43 -0
  40. package/filter/filters/EnumFilter.js +8 -0
  41. package/filter/filters/EnumFilter.mjs +59 -0
  42. package/filter/filters/NumericFilter.js +8 -0
  43. package/filter/filters/NumericFilter.mjs +54 -0
  44. package/filter/filters/TextFilter.js +8 -0
  45. package/filter/filters/TextFilter.mjs +46 -0
  46. package/filter/operators.js +8 -0
  47. package/filter/operators.mjs +114 -0
  48. package/filteringCells/BooleanFilter.js +8 -0
  49. package/filteringCells/BooleanFilter.mjs +49 -0
  50. package/filteringCells/DateFilter.js +8 -0
  51. package/filteringCells/DateFilter.mjs +22 -0
  52. package/filteringCells/FilterComponent.js +8 -0
  53. package/filteringCells/FilterComponent.mjs +81 -0
  54. package/filteringCells/NumericFilter.js +8 -0
  55. package/filteringCells/NumericFilter.mjs +22 -0
  56. package/filteringCells/TextFilter.js +8 -0
  57. package/filteringCells/TextFilter.mjs +22 -0
  58. package/header/ColumnProps.js +8 -0
  59. package/header/ColumnProps.mjs +19 -0
  60. package/header/FilterRow.js +8 -0
  61. package/header/FilterRow.mjs +54 -0
  62. package/header/Header.js +8 -0
  63. package/header/Header.mjs +36 -0
  64. package/header/HeaderCell.js +8 -0
  65. package/header/HeaderCell.mjs +18 -0
  66. package/header/HeaderRow.js +8 -0
  67. package/header/HeaderRow.mjs +132 -0
  68. package/header/HeaderSelectionCell.js +8 -0
  69. package/header/HeaderSelectionCell.mjs +32 -0
  70. package/header/HeaderThElement.js +8 -0
  71. package/header/HeaderThElement.mjs +47 -0
  72. package/header/SortSettings.js +8 -0
  73. package/header/SortSettings.mjs +12 -0
  74. package/header/utils/index.js +8 -0
  75. package/header/utils/index.mjs +130 -0
  76. package/index.d.mts +2398 -5
  77. package/index.d.ts +2398 -32
  78. package/index.js +8 -10
  79. package/index.mjs +152 -2987
  80. package/messages/index.js +8 -0
  81. package/messages/index.mjs +167 -0
  82. package/navigation/TableKeyboardNavigation.js +8 -0
  83. package/navigation/TableKeyboardNavigation.mjs +142 -0
  84. package/navigation/TableKeyboardNavigationContext.js +8 -0
  85. package/navigation/TableKeyboardNavigationContext.mjs +14 -0
  86. package/navigation/constants.js +8 -0
  87. package/navigation/constants.mjs +43 -0
  88. package/navigation/hooks.js +8 -0
  89. package/navigation/hooks.mjs +22 -0
  90. package/navigation/utils.js +8 -0
  91. package/navigation/utils.mjs +107 -0
  92. package/package-metadata.js +8 -0
  93. package/package-metadata.mjs +19 -0
  94. package/package.json +9 -9
  95. package/pager/Pager.js +8 -0
  96. package/pager/Pager.mjs +234 -0
  97. package/pager/PagerInput.js +8 -0
  98. package/pager/PagerInput.mjs +38 -0
  99. package/pager/PagerNumericButtons.js +8 -0
  100. package/pager/PagerNumericButtons.mjs +103 -0
  101. package/pager/PagerPageSizes.js +8 -0
  102. package/pager/PagerPageSizes.mjs +38 -0
  103. package/selection/TableSelection.js +8 -0
  104. package/selection/TableSelection.mjs +123 -0
  105. package/selection/constants.js +8 -0
  106. package/selection/constants.mjs +14 -0
  107. package/selection/utils.js +8 -0
  108. package/selection/utils.mjs +155 -0
  109. package/utils/data-operations.js +8 -0
  110. package/utils/data-operations.mjs +127 -0
  111. package/utils/group-operations.js +8 -0
  112. package/utils/group-operations.mjs +32 -0
  113. package/virtualization/columns.js +8 -0
  114. package/virtualization/columns.mjs +43 -0
  115. package/clipboard/clipboard.service.d.ts +0 -17
  116. package/clipboard/common.d.ts +0 -129
  117. package/columnmenu/ColumnMenu.d.ts +0 -83
  118. package/columnmenu/ColumnMenuFilterForm.d.ts +0 -17
  119. package/columnmenu/ColumnMenuFilterLogic.d.ts +0 -7
  120. package/columnmenu/ColumnMenuFilters.d.ts +0 -23
  121. package/columnmenu/ColumnMenuItem.d.ts +0 -15
  122. package/columnmenu/ColumnMenuOperators.d.ts +0 -69
  123. package/columnmenu/index.d.ts +0 -10
  124. package/drag/ColumnDraggable.d.ts +0 -34
  125. package/drag/ColumnResize.d.ts +0 -36
  126. package/drag/ColumnResizer.d.ts +0 -32
  127. package/drag/CommonDragLogic.d.ts +0 -42
  128. package/drag/DragClue.d.ts +0 -26
  129. package/drag/DropClue.d.ts +0 -23
  130. package/filter/Expression.d.ts +0 -50
  131. package/filter/FieldSettings.d.ts +0 -34
  132. package/filter/Filter.d.ts +0 -83
  133. package/filter/Group.d.ts +0 -58
  134. package/filter/filters/BooleanFilter.d.ts +0 -47
  135. package/filter/filters/DateFilter.d.ts +0 -30
  136. package/filter/filters/EnumFilter.d.ts +0 -47
  137. package/filter/filters/NumericFilter.d.ts +0 -37
  138. package/filter/filters/TextFilter.d.ts +0 -44
  139. package/filter/filters/index.d.ts +0 -9
  140. package/filter/index.d.ts +0 -10
  141. package/filter/operators.d.ts +0 -77
  142. package/filteringCells/BooleanFilter.d.ts +0 -12
  143. package/filteringCells/DateFilter.d.ts +0 -12
  144. package/filteringCells/FilterCellProps.d.ts +0 -39
  145. package/filteringCells/FilterComponent.d.ts +0 -21
  146. package/filteringCells/FilterComponentProps.d.ts +0 -27
  147. package/filteringCells/FilterOperator.d.ts +0 -17
  148. package/filteringCells/NumericFilter.d.ts +0 -12
  149. package/filteringCells/TextFilter.d.ts +0 -12
  150. package/filteringCells/index.d.ts +0 -12
  151. package/header/CellProps.d.ts +0 -72
  152. package/header/ColumnProps.d.ts +0 -157
  153. package/header/FilterRow.d.ts +0 -29
  154. package/header/Header.d.ts +0 -22
  155. package/header/HeaderCell.d.ts +0 -51
  156. package/header/HeaderRow.d.ts +0 -41
  157. package/header/HeaderSelectionCell.d.ts +0 -15
  158. package/header/HeaderThElement.d.ts +0 -26
  159. package/header/SortSettings.d.ts +0 -30
  160. package/header/index.d.ts +0 -14
  161. package/header/utils/index.d.ts +0 -87
  162. package/messages/index.d.ts +0 -394
  163. package/navigation/TableKeyboardNavigation.d.ts +0 -72
  164. package/navigation/TableKeyboardNavigationContext.d.ts +0 -10
  165. package/navigation/TableKeyboardNavigationContextType.d.ts +0 -11
  166. package/navigation/TableKeyboardNavigationStateType.d.ts +0 -14
  167. package/navigation/constants.d.ts +0 -58
  168. package/navigation/hooks.d.ts +0 -16
  169. package/navigation/utils.d.ts +0 -149
  170. package/package-metadata.d.ts +0 -9
  171. package/pager/Pager.d.ts +0 -208
  172. package/pager/PagerInput.d.ts +0 -29
  173. package/pager/PagerNumericButtons.d.ts +0 -32
  174. package/pager/PagerPageSizes.d.ts +0 -30
  175. package/selection/TableSelectableSettings.d.ts +0 -35
  176. package/selection/TableSelection.d.ts +0 -15
  177. package/selection/constants.d.ts +0 -10
  178. package/selection/events.d.ts +0 -98
  179. package/selection/utils.d.ts +0 -70
  180. package/utils/DataItemWrapper.d.ts +0 -14
  181. package/utils/data-operations.d.ts +0 -98
  182. package/utils/group-operations.d.ts +0 -33
  183. package/virtualization/columns.d.ts +0 -19
  184. package/virtualization/index.d.ts +0 -5
package/pager/Pager.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 W=require("react"),r=require("prop-types"),D=require("./PagerNumericButtons.js"),F=require("./PagerInput.js"),$=require("./PagerPageSizes.js"),V=require("@progress/kendo-react-buttons"),e=require("../messages/index.js"),M=require("@progress/kendo-react-intl"),P=require("@progress/kendo-react-common"),l=require("@progress/kendo-svg-icons"),U=require("../package-metadata.js");function G(u){const n=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(u){for(const a in u)if(a!=="default"){const t=Object.getOwnPropertyDescriptor(u,a);Object.defineProperty(n,a,t.get?t:{enumerable:!0,get:()=>u[a]})}}return n.default=u,Object.freeze(n)}const p=G(W),q=600,H=768,v=class v extends p.Component{constructor(n){super(n),this._element=null,this.onPageChange=(a,t)=>{const c={target:this,syntheticEvent:t.syntheticEvent,nativeEvent:t.nativeEvent,targetEvent:t,...a};this.props.onPageChange&&this.props.onPageChange.call(void 0,c)},this.changePage=(a,t)=>{this.props.onPageChange&&a>0&&a<=this.totalPages&&this.props.onPageChange({target:this,skip:(a-1)*this.props.take,take:this.props.take,syntheticEvent:t,nativeEvent:t.nativeEvent,targetEvent:t})},this.onWindowResize=()=>{const a=this.element;if(!a||!this.props.responsive)return;const t=a.offsetWidth;t<q?this.setState({showPagerSizes:!1}):t>=q&&t<H?this.setState({showPagerInfo:!1,showPagerSizes:!0}):this.setState({showPagerInfo:!0,showPagerSizes:!0})},P.validatePackage(U.packageMetadata),this.state={showPagerSizes:!0,showPagerInfo:!0}}get isRtl(){return this.props.dir==="rtl"}get element(){return this._element}componentDidMount(){window.addEventListener("resize",this.onWindowResize),this.onWindowResize()}componentWillUnmount(){window.removeEventListener("resize",this.onWindowResize)}render(){const{showPagerSizes:n,showPagerInfo:a}=this.state,{skip:t,take:c,total:h,pageSizes:m,size:g,responsive:y,messagesMap:s,pageSizeValue:B}=this.props,o=M.provideLocalizationService(this),S=M.provideIntlService(this),i=Math.floor(t/c)+1,x=this.props.type==="numeric"?p.createElement(D.PagerNumericButtons,{type:y&&!n?"dropdown":"numbers",buttonCount:this.props.buttonCount||0,totalPages:this.totalPages,currentPage:i,pageChange:this.changePage,messagesMap:this.props.messagesMap,size:g}):p.createElement(F.PagerInput,{buttonCount:this.props.buttonCount||0,totalPages:this.totalPages,currentPage:i,pageChange:this.changePage,messagesMap:s,size:g}),k=s?s(e.pagerFirstPage):{messageKey:e.pagerFirstPage,defaultMessage:e.messages[e.pagerFirstPage]},b=s?s(e.pagerPreviousPage):{messageKey:e.pagerPreviousPage,defaultMessage:e.messages[e.pagerPreviousPage]},R=s?s(e.pagerNextPage):{messageKey:e.pagerNextPage,defaultMessage:e.messages[e.pagerNextPage]},z=s?s(e.pagerLastPage):{messageKey:e.pagerLastPage,defaultMessage:e.messages[e.pagerLastPage]},I=s?s(e.pagerInfo):{messageKey:e.pagerInfo,defaultMessage:e.messages[e.pagerInfo]},K=s?s(e.pagerAriaKeyshortcuts):{messageKey:e.pagerAriaKeyshortcuts,defaultMessage:e.messages[e.pagerAriaKeyshortcuts]},E=s?s(e.pagerPage):{messageKey:e.pagerPage,defaultMessage:e.messages[e.pagerPage]},L=s?s(e.pagerOf):{messageKey:e.pagerOf,defaultMessage:e.messages[e.pagerOf]},f=s?s(e.pagerTotalPages):{messageKey:e.pagerTotalPages,defaultMessage:e.messages[e.pagerTotalPages]},_=`${o.toLanguageString(E.messageKey,E.defaultMessage)} ${S.format(o.toLanguageString(f.messageKey,f.defaultMessage),[i])} ${o.toLanguageString(L.messageKey,L.defaultMessage)} ${S.format(o.toLanguageString(f.messageKey,f.defaultMessage),[this.totalPages])}`;let w,C,N,O;this.props.previousNext&&(w=this.renderButton(1,"k-pager-nav k-pager-first"+(i===1?" k-disabled":""),o.toLanguageString(k.messageKey,k.defaultMessage),this.isRtl?"caret-alt-to-right":"caret-alt-to-left",this.isRtl?l.caretAltToRightIcon:l.caretAltToLeftIcon,i===1?!0:void 0),C=this.renderButton(i-1,"k-pager-nav"+(i===1?" k-disabled":""),o.toLanguageString(b.messageKey,b.defaultMessage),this.isRtl?"caret-alt-right":"caret-alt-left",this.isRtl?l.caretAltRightIcon:l.caretAltLeftIcon,i===1?!0:void 0),N=this.renderButton(i+1,"k-pager-nav"+(i>=this.totalPages?" k-disabled":""),o.toLanguageString(R.messageKey,R.defaultMessage),this.isRtl?"caret-alt-left":"caret-alt-right",this.isRtl?l.caretAltLeftIcon:l.caretAltRightIcon,i>=this.totalPages?!0:void 0),O=this.renderButton(this.totalPages,"k-pager-nav k-pager-last"+(i>=this.totalPages?" k-disabled":""),o.toLanguageString(z.messageKey,z.defaultMessage),this.isRtl?"caret-alt-to-left":"caret-alt-to-right",this.isRtl?l.caretAltToLeftIcon:l.caretAltToRightIcon,i>=this.totalPages?!0:void 0));const A=m&&p.createElement($.PagerPageSizes,{pageChange:this.onPageChange,pageSize:c,pageSizes:m,value:B,messagesMap:s,size:g}),T=this.props.info&&p.createElement("span",{className:"k-pager-info"},S.format(o.toLanguageString(I.messageKey,I.defaultMessage),[Math.min(t+1,h),Math.min(t+c,h),h]));return p.createElement("div",{className:P.classNames("k-pager",{[`k-pager-${P.kendoThemeMaps.sizeMap[g]||g}`]:g},this.props.className),style:this.props.style,role:"application","aria-roledescription":"pager",dir:this.props.dir,"aria-keyshortcuts":o.toLanguageString(K.messageKey,K.defaultMessage),"aria-label":_,ref:j=>this._element=j},p.createElement("div",{className:P.classNames("k-pager-numbers-wrap")},w,C,x,N,O),y?n&&A:A,y?a&&T:T)}renderButton(n,a,t,c,h,m){return p.createElement(V.Button,{fillMode:"flat",themeColor:"base",size:this.props.size,rounded:null,className:a,icon:c,svgIcon:h,title:t,role:"button","aria-disabled":m,onClick:g=>{g.preventDefault(),this.changePage(n,g)}})}get totalPages(){return Math.ceil((this.props.total||0)/this.props.take)}};v.propTypes={className:r.string,style:r.object,total:r.number.isRequired,skip:r.number.isRequired,take:r.number.isRequired,buttonCount:r.number,info:r.bool,type:r.oneOf(["numeric","input"]),pageSizes:r.arrayOf(r.oneOfType([r.string,r.number])),previousNext:r.bool,onPageChange:r.func,messagesMap:r.func,size:r.oneOf([null,"small","medium","large"]),dir:r.string},v.defaultProps={buttonCount:10,info:!0,type:"numeric",size:"medium"};let d=v;M.registerForIntl(d);M.registerForLocalization(d);exports.Pager=d;
@@ -0,0 +1,234 @@
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 * as g from "react";
10
+ import s from "prop-types";
11
+ import { PagerNumericButtons as X } from "./PagerNumericButtons.mjs";
12
+ import { PagerInput as Y } from "./PagerInput.mjs";
13
+ import { PagerPageSizes as Z } from "./PagerPageSizes.mjs";
14
+ import { Button as ee } from "@progress/kendo-react-buttons";
15
+ import { pagerFirstPage as M, messages as n, pagerPreviousPage as v, pagerNextPage as y, pagerLastPage as S, pagerInfo as k, pagerAriaKeyshortcuts as z, pagerPage as b, pagerOf as R, pagerTotalPages as E } from "../messages/index.mjs";
16
+ import { provideLocalizationService as te, provideIntlService as se, registerForIntl as ae, registerForLocalization as ie } from "@progress/kendo-react-intl";
17
+ import { validatePackage as re, classNames as q, kendoThemeMaps as oe } from "@progress/kendo-react-common";
18
+ import { caretAltToRightIcon as D, caretAltToLeftIcon as F, caretAltRightIcon as V, caretAltLeftIcon as U } from "@progress/kendo-svg-icons";
19
+ import { packageMetadata as ne } from "../package-metadata.mjs";
20
+ const j = 600, ge = 768, f = class f extends g.Component {
21
+ constructor(p) {
22
+ super(p), this._element = null, this.onPageChange = (i, t) => {
23
+ const l = {
24
+ target: this,
25
+ syntheticEvent: t.syntheticEvent,
26
+ nativeEvent: t.nativeEvent,
27
+ targetEvent: t,
28
+ ...i
29
+ };
30
+ this.props.onPageChange && this.props.onPageChange.call(void 0, l);
31
+ }, this.changePage = (i, t) => {
32
+ this.props.onPageChange && i > 0 && i <= this.totalPages && this.props.onPageChange({
33
+ target: this,
34
+ skip: (i - 1) * this.props.take,
35
+ take: this.props.take,
36
+ syntheticEvent: t,
37
+ nativeEvent: t.nativeEvent,
38
+ targetEvent: t
39
+ });
40
+ }, this.onWindowResize = () => {
41
+ const i = this.element;
42
+ if (!i || !this.props.responsive)
43
+ return;
44
+ const t = i.offsetWidth;
45
+ t < j ? this.setState({ showPagerSizes: !1 }) : t >= j && t < ge ? this.setState({ showPagerInfo: !1, showPagerSizes: !0 }) : this.setState({ showPagerInfo: !0, showPagerSizes: !0 });
46
+ }, re(ne), this.state = { showPagerSizes: !0, showPagerInfo: !0 };
47
+ }
48
+ get isRtl() {
49
+ return this.props.dir === "rtl";
50
+ }
51
+ /**
52
+ * Returns the HTML element of the Pager component.
53
+ */
54
+ get element() {
55
+ return this._element;
56
+ }
57
+ /**
58
+ * @hidden
59
+ */
60
+ componentDidMount() {
61
+ window.addEventListener("resize", this.onWindowResize), this.onWindowResize();
62
+ }
63
+ /**
64
+ * @hidden
65
+ */
66
+ componentWillUnmount() {
67
+ window.removeEventListener("resize", this.onWindowResize);
68
+ }
69
+ /**
70
+ * @hidden
71
+ */
72
+ render() {
73
+ const { showPagerSizes: p, showPagerInfo: i } = this.state, { skip: t, take: l, total: h, pageSizes: u, size: o, responsive: d, messagesMap: e, pageSizeValue: G } = this.props, r = te(this), P = se(this), a = Math.floor(t / l) + 1, H = this.props.type === "numeric" ? /* @__PURE__ */ g.createElement(
74
+ X,
75
+ {
76
+ type: d && !p ? "dropdown" : "numbers",
77
+ buttonCount: this.props.buttonCount || 0,
78
+ totalPages: this.totalPages,
79
+ currentPage: a,
80
+ pageChange: this.changePage,
81
+ messagesMap: this.props.messagesMap,
82
+ size: o
83
+ }
84
+ ) : /* @__PURE__ */ g.createElement(
85
+ Y,
86
+ {
87
+ buttonCount: this.props.buttonCount || 0,
88
+ totalPages: this.totalPages,
89
+ currentPage: a,
90
+ pageChange: this.changePage,
91
+ messagesMap: e,
92
+ size: o
93
+ }
94
+ ), K = e ? e(M) : { messageKey: M, defaultMessage: n[M] }, w = e ? e(v) : { messageKey: v, defaultMessage: n[v] }, C = e ? e(y) : { messageKey: y, defaultMessage: n[y] }, L = e ? e(S) : { messageKey: S, defaultMessage: n[S] }, I = e ? e(k) : { messageKey: k, defaultMessage: n[k] }, N = e ? e(z) : { messageKey: z, defaultMessage: n[z] }, A = e ? e(b) : { messageKey: b, defaultMessage: n[b] }, B = e ? e(R) : { messageKey: R, defaultMessage: n[R] }, c = e ? e(E) : { messageKey: E, defaultMessage: n[E] }, J = `${r.toLanguageString(
95
+ A.messageKey,
96
+ A.defaultMessage
97
+ )} ${P.format(
98
+ r.toLanguageString(
99
+ c.messageKey,
100
+ c.defaultMessage
101
+ ),
102
+ [a]
103
+ )} ${r.toLanguageString(
104
+ B.messageKey,
105
+ B.defaultMessage
106
+ )} ${P.format(
107
+ r.toLanguageString(
108
+ c.messageKey,
109
+ c.defaultMessage
110
+ ),
111
+ [this.totalPages]
112
+ )}`;
113
+ let O, T, x, W;
114
+ this.props.previousNext && (O = this.renderButton(
115
+ 1,
116
+ "k-pager-nav k-pager-first" + (a === 1 ? " k-disabled" : ""),
117
+ r.toLanguageString(K.messageKey, K.defaultMessage),
118
+ this.isRtl ? "caret-alt-to-right" : "caret-alt-to-left",
119
+ this.isRtl ? D : F,
120
+ a === 1 ? !0 : void 0
121
+ ), T = this.renderButton(
122
+ a - 1,
123
+ "k-pager-nav" + (a === 1 ? " k-disabled" : ""),
124
+ r.toLanguageString(w.messageKey, w.defaultMessage),
125
+ this.isRtl ? "caret-alt-right" : "caret-alt-left",
126
+ this.isRtl ? V : U,
127
+ a === 1 ? !0 : void 0
128
+ ), x = this.renderButton(
129
+ a + 1,
130
+ "k-pager-nav" + (a >= this.totalPages ? " k-disabled" : ""),
131
+ r.toLanguageString(C.messageKey, C.defaultMessage),
132
+ this.isRtl ? "caret-alt-left" : "caret-alt-right",
133
+ this.isRtl ? U : V,
134
+ a >= this.totalPages ? !0 : void 0
135
+ ), W = this.renderButton(
136
+ this.totalPages,
137
+ "k-pager-nav k-pager-last" + (a >= this.totalPages ? " k-disabled" : ""),
138
+ r.toLanguageString(L.messageKey, L.defaultMessage),
139
+ this.isRtl ? "caret-alt-to-left" : "caret-alt-to-right",
140
+ this.isRtl ? F : D,
141
+ a >= this.totalPages ? !0 : void 0
142
+ ));
143
+ const _ = u && /* @__PURE__ */ g.createElement(
144
+ Z,
145
+ {
146
+ pageChange: this.onPageChange,
147
+ pageSize: l,
148
+ pageSizes: u,
149
+ value: G,
150
+ messagesMap: e,
151
+ size: o
152
+ }
153
+ ), $ = this.props.info && /* @__PURE__ */ g.createElement("span", { className: "k-pager-info" }, P.format(r.toLanguageString(I.messageKey, I.defaultMessage), [
154
+ Math.min(t + 1, h),
155
+ Math.min(t + l, h),
156
+ h
157
+ ]));
158
+ return /* @__PURE__ */ g.createElement(
159
+ "div",
160
+ {
161
+ className: q(
162
+ "k-pager",
163
+ {
164
+ [`k-pager-${oe.sizeMap[o] || o}`]: o
165
+ },
166
+ this.props.className
167
+ ),
168
+ style: this.props.style,
169
+ role: "application",
170
+ "aria-roledescription": "pager",
171
+ dir: this.props.dir,
172
+ "aria-keyshortcuts": r.toLanguageString(N.messageKey, N.defaultMessage),
173
+ "aria-label": J,
174
+ ref: (Q) => this._element = Q
175
+ },
176
+ /* @__PURE__ */ g.createElement("div", { className: q("k-pager-numbers-wrap") }, O, T, H, x, W),
177
+ d ? p && _ : _,
178
+ d ? i && $ : $
179
+ );
180
+ }
181
+ renderButton(p, i, t, l, h, u) {
182
+ return /* @__PURE__ */ g.createElement(
183
+ ee,
184
+ {
185
+ fillMode: "flat",
186
+ themeColor: "base",
187
+ size: this.props.size,
188
+ rounded: null,
189
+ className: i,
190
+ icon: l,
191
+ svgIcon: h,
192
+ title: t,
193
+ role: "button",
194
+ "aria-disabled": u,
195
+ onClick: (o) => {
196
+ o.preventDefault(), this.changePage(p, o);
197
+ }
198
+ }
199
+ );
200
+ }
201
+ get totalPages() {
202
+ return Math.ceil((this.props.total || 0) / this.props.take);
203
+ }
204
+ };
205
+ f.propTypes = {
206
+ className: s.string,
207
+ style: s.object,
208
+ total: s.number.isRequired,
209
+ skip: s.number.isRequired,
210
+ take: s.number.isRequired,
211
+ buttonCount: s.number,
212
+ info: s.bool,
213
+ type: s.oneOf(["numeric", "input"]),
214
+ pageSizes: s.arrayOf(s.oneOfType([
215
+ s.string,
216
+ s.number
217
+ ])),
218
+ previousNext: s.bool,
219
+ onPageChange: s.func,
220
+ messagesMap: s.func,
221
+ size: s.oneOf([null, "small", "medium", "large"]),
222
+ dir: s.string
223
+ }, f.defaultProps = {
224
+ buttonCount: 10,
225
+ info: !0,
226
+ type: "numeric",
227
+ size: "medium"
228
+ };
229
+ let m = f;
230
+ ae(m);
231
+ ie(m);
232
+ export {
233
+ m as Pager
234
+ };
@@ -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 u=require("react"),n=require("@progress/kendo-react-intl"),e=require("../messages/index.js"),c=require("@progress/kendo-react-inputs");function m(t){const a=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(a,s,r.get?r:{enumerable:!0,get:()=>t[s]})}}return a.default=t,Object.freeze(a)}const g=m(u);class l extends g.Component{constructor(){super(...arguments),this.state={page:this.props.currentPage},this.handleOnChange=a=>{this.setState({page:a.target.value}),a.target.value&&this.props.pageChange(a.target.value,a)}}render(){const a=n.provideIntlService(this),s=n.provideLocalizationService(this),r=this.props.messagesMap?this.props.messagesMap(e.pagerPage):{messageKey:e.pagerPage,defaultMessage:e.messages[e.pagerPage]},p=this.props.messagesMap?this.props.messagesMap(e.pagerOf):{messageKey:e.pagerOf,defaultMessage:e.messages[e.pagerOf]},o=this.props.messagesMap?this.props.messagesMap(e.pagerTotalPages):{messageKey:e.pagerTotalPages,defaultMessage:e.messages[e.pagerTotalPages]},i=this.props.messagesMap?this.props.messagesMap(e.pagerTotalPages):{messageKey:e.pagerPageNumberLabel,defaultMessage:e.messages[e.pagerPageNumberLabel]};return g.createElement("span",{className:"k-pager-input"},g.createElement("span",null,s.toLanguageString(r.messageKey,r.defaultMessage)),g.createElement(c.NumericTextBox,{value:this.props.currentPage!==void 0?this.props.currentPage:this.state.page,onChange:this.handleOnChange,min:1,spinners:!1,ariaLabel:s.toLanguageString(i.messageKey,i.defaultMessage)}),g.createElement("span",null,`${s.toLanguageString(p.messageKey,p.defaultMessage)} ${a.format(s.toLanguageString(o.messageKey,o.defaultMessage),[this.props.totalPages])}`))}}n.registerForLocalization(l);exports.PagerInput=l;
@@ -0,0 +1,38 @@
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 * as s from "react";
10
+ import { provideIntlService as u, provideLocalizationService as c, registerForLocalization as h } from "@progress/kendo-react-intl";
11
+ import { pagerPage as r, messages as t, pagerOf as p, pagerTotalPages as g, pagerPageNumberLabel as m } from "../messages/index.mjs";
12
+ import { NumericTextBox as M } from "@progress/kendo-react-inputs";
13
+ class f extends s.Component {
14
+ constructor() {
15
+ super(...arguments), this.state = { page: this.props.currentPage }, this.handleOnChange = (e) => {
16
+ this.setState({ page: e.target.value }), e.target.value && this.props.pageChange(e.target.value, e);
17
+ };
18
+ }
19
+ render() {
20
+ const e = u(this), a = c(this), n = this.props.messagesMap ? this.props.messagesMap(r) : { messageKey: r, defaultMessage: t[r] }, o = this.props.messagesMap ? this.props.messagesMap(p) : { messageKey: p, defaultMessage: t[p] }, i = this.props.messagesMap ? this.props.messagesMap(g) : { messageKey: g, defaultMessage: t[g] }, l = this.props.messagesMap ? this.props.messagesMap(g) : { messageKey: m, defaultMessage: t[m] };
21
+ return /* @__PURE__ */ s.createElement("span", { className: "k-pager-input" }, /* @__PURE__ */ s.createElement("span", null, a.toLanguageString(n.messageKey, n.defaultMessage)), /* @__PURE__ */ s.createElement(
22
+ M,
23
+ {
24
+ value: this.props.currentPage !== void 0 ? this.props.currentPage : this.state.page,
25
+ onChange: this.handleOnChange,
26
+ min: 1,
27
+ spinners: !1,
28
+ ariaLabel: a.toLanguageString(l.messageKey, l.defaultMessage)
29
+ }
30
+ ), /* @__PURE__ */ s.createElement("span", null, `${a.toLanguageString(o.messageKey, o.defaultMessage)} ${e.format(a.toLanguageString(i.messageKey, i.defaultMessage), [
31
+ this.props.totalPages
32
+ ])}`));
33
+ }
34
+ }
35
+ h(f);
36
+ export {
37
+ f as PagerInput
38
+ };
@@ -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 P=require("react"),p=require("@progress/kendo-react-common"),c=require("@progress/kendo-react-buttons"),a=require("../messages/index.js"),k=require("@progress/kendo-react-intl");function C(n){const e=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const t in n)if(t!=="default"){const r=Object.getOwnPropertyDescriptor(n,t);Object.defineProperty(e,t,r.get?r:{enumerable:!0,get:()=>n[t]})}}return e.default=n,Object.freeze(e)}const o=C(P),u="...";class S extends o.Component{constructor(){super(...arguments),this.handlePageChange=(e,t)=>{e.preventDefault(),this.props.pageChange(t,e)},this.handleSelectPageChange=e=>{e.preventDefault(),this.props.pageChange(e.target.value,e)}}render(){const e=k.provideLocalizationService(this),t=this.props.messagesMap?this.props.messagesMap(a.pagerMobileSelect):{messageKey:a.pagerMobileSelect,defaultMessage:a.messages[a.pagerMobileSelect]},r=this.props.messagesMap?this.props.messagesMap(a.pagerPage):{messageKey:a.pagerPage,defaultMessage:a.messages[a.pagerPage]},l=this.props.messagesMap?this.props.messagesMap(a.pagerMoreButtonLabel):{messageKey:a.pagerMoreButtonLabel,defaultMessage:a.messages[a.pagerMoreButtonLabel]},g=e.toLanguageString(l.messageKey,l.defaultMessage),h=this.start>1&&this.renderDots(this.start-1,g),d=this.end<this.props.totalPages&&this.renderDots(this.end+1,g),m=this.start>1&&this.renderOptionDots(this.start-1),b=this.end<this.props.totalPages&&this.renderOptionDots(this.end+1),i=[];for(let s=this.start;s<=this.end;s++)i.push(s);const M=i.map(s=>o.createElement(c.Button,{className:p.classNames({"k-selected":this.props.currentPage===s}),key:s,fillMode:"flat",themeColor:"primary",size:this.props.size,rounded:null,role:"button","aria-label":e.toLanguageString(r.messageKey,r.defaultMessage)+" "+s,"aria-current":this.props.currentPage===s?!0:void 0,onClick:y=>this.handlePageChange(y,s)},s)),f=i.map(s=>o.createElement("option",{key:s},s));return o.createElement(o.Fragment,null,o.createElement("select",{style:{width:"5em",margin:"0px 1em",display:this.props.type==="dropdown"?"inline-flex":"none"},className:p.classNames("k-picker k-dropdown-list k-dropdown k-rounded-md",{[`k-picker-${p.kendoThemeMaps.sizeMap[this.props.size]||this.props.size}`]:this.props.size}),"aria-label":e.toLanguageString(t.messageKey,t.defaultMessage),value:this.props.currentPage,onChange:s=>this.handleSelectPageChange(s)},m,f,b),o.createElement("div",{className:"k-pager-numbers",style:{display:this.props.type==="numbers"?"":"none"}},h,M,d))}get end(){return Math.min(this.start+this.props.buttonCount-1,this.props.totalPages)}get start(){const e=this.props.currentPage,t=this.props.buttonCount;if(e>t){const r=e%t;return r===0?e-t+1:e-r+1}return 1}renderDots(e,t){return o.createElement(c.Button,{fillMode:"flat",themeColor:"primary",size:this.props.size,rounded:null,role:"button","aria-label":t,onClick:r=>this.handlePageChange(r,e)},u)}renderOptionDots(e){return o.createElement("option",{value:e},u)}}exports.PagerNumericButtons=S;
@@ -0,0 +1,103 @@
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 * as r from "react";
10
+ import { classNames as m, kendoThemeMaps as k } from "@progress/kendo-react-common";
11
+ import { Button as u } from "@progress/kendo-react-buttons";
12
+ import { pagerMobileSelect as n, messages as i, pagerPage as p, pagerMoreButtonLabel as l } from "../messages/index.mjs";
13
+ import { provideLocalizationService as v } from "@progress/kendo-react-intl";
14
+ const c = "...";
15
+ class K extends r.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
+ };
22
+ }
23
+ render() {
24
+ const e = v(this), s = this.props.messagesMap ? this.props.messagesMap(n) : { messageKey: n, defaultMessage: i[n] }, a = this.props.messagesMap ? this.props.messagesMap(p) : { messageKey: p, defaultMessage: i[p] }, g = this.props.messagesMap ? this.props.messagesMap(l) : { messageKey: l, defaultMessage: i[l] }, h = e.toLanguageString(g.messageKey, g.defaultMessage), d = this.start > 1 && this.renderDots(this.start - 1, h), M = this.end < this.props.totalPages && this.renderDots(this.end + 1, h), f = this.start > 1 && this.renderOptionDots(this.start - 1), b = this.end < this.props.totalPages && this.renderOptionDots(this.end + 1), o = [];
25
+ for (let t = this.start; t <= this.end; t++)
26
+ o.push(t);
27
+ const y = o.map((t) => /* @__PURE__ */ r.createElement(
28
+ u,
29
+ {
30
+ className: m({ "k-selected": this.props.currentPage === t }),
31
+ key: t,
32
+ fillMode: "flat",
33
+ themeColor: "primary",
34
+ size: this.props.size,
35
+ rounded: null,
36
+ role: "button",
37
+ "aria-label": e.toLanguageString(a.messageKey, a.defaultMessage) + " " + t,
38
+ "aria-current": this.props.currentPage === t ? !0 : void 0,
39
+ onClick: (P) => this.handlePageChange(P, t)
40
+ },
41
+ t
42
+ )), C = o.map((t) => /* @__PURE__ */ r.createElement("option", { key: t }, t));
43
+ return /* @__PURE__ */ r.createElement(r.Fragment, null, /* @__PURE__ */ r.createElement(
44
+ "select",
45
+ {
46
+ style: { width: "5em", margin: "0px 1em", display: this.props.type === "dropdown" ? "inline-flex" : "none" },
47
+ className: m(
48
+ "k-picker k-dropdown-list k-dropdown k-rounded-md",
49
+ {
50
+ [`k-picker-${k.sizeMap[this.props.size] || this.props.size}`]: this.props.size
51
+ }
52
+ ),
53
+ "aria-label": e.toLanguageString(s.messageKey, s.defaultMessage),
54
+ value: this.props.currentPage,
55
+ onChange: (t) => this.handleSelectPageChange(t)
56
+ },
57
+ f,
58
+ C,
59
+ b
60
+ ), /* @__PURE__ */ r.createElement(
61
+ "div",
62
+ {
63
+ className: "k-pager-numbers",
64
+ style: { display: this.props.type === "numbers" ? "" : "none" }
65
+ },
66
+ d,
67
+ y,
68
+ M
69
+ ));
70
+ }
71
+ get end() {
72
+ return Math.min(this.start + this.props.buttonCount - 1, this.props.totalPages);
73
+ }
74
+ get start() {
75
+ const e = this.props.currentPage, s = this.props.buttonCount;
76
+ if (e > s) {
77
+ const a = e % s;
78
+ return a === 0 ? e - s + 1 : e - a + 1;
79
+ }
80
+ return 1;
81
+ }
82
+ renderDots(e, s) {
83
+ return /* @__PURE__ */ r.createElement(
84
+ u,
85
+ {
86
+ fillMode: "flat",
87
+ themeColor: "primary",
88
+ size: this.props.size,
89
+ rounded: null,
90
+ role: "button",
91
+ "aria-label": s,
92
+ onClick: (a) => this.handlePageChange(a, e)
93
+ },
94
+ c
95
+ );
96
+ }
97
+ renderOptionDots(e) {
98
+ return /* @__PURE__ */ r.createElement("option", { value: e }, c);
99
+ }
100
+ }
101
+ export {
102
+ K as PagerNumericButtons
103
+ };
@@ -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 d=require("react"),o=require("@progress/kendo-react-intl"),a=require("../messages/index.js"),m=require("@progress/kendo-react-dropdowns");function f(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=f(d);class l 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}=this.props,g=s.slice();e===void 0&&g.filter(u=>u===r).length===0&&g.unshift(r);const c=i?i(a.pagerItemPerPage):{messageKey:a.pagerItemPerPage,defaultMessage:a.messages[a.pagerItemPerPage]},p=i?i(a.pagerPageSizeAriaLabel):{messageKey:a.pagerPageSizeAriaLabel,defaultMessage:a.messages[a.pagerPageSizeAriaLabel]};return n.createElement("span",{className:"k-pager-sizes"},n.createElement(m.DropDownList,{value:e!==void 0?e:r,data:g,onChange:this.pageSizeChange,ariaLabel:o.provideLocalizationService(this).toLanguageString(p.messageKey,p.defaultMessage),size:this.props.size}),n.createElement("span",null,o.provideLocalizationService(this).toLanguageString(c.messageKey,c.defaultMessage)))}}o.registerForLocalization(l);exports.PagerPageSizes=l;
@@ -0,0 +1,38 @@
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 * as s from "react";
10
+ import { provideLocalizationService as p, registerForLocalization as u } from "@progress/kendo-react-intl";
11
+ import { pagerItemPerPage as r, messages as l, pagerPageSizeAriaLabel as g } from "../messages/index.mjs";
12
+ import { DropDownList as h } from "@progress/kendo-react-dropdowns";
13
+ class f 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 } = this.props, i = m.slice();
21
+ e === void 0 && i.filter((c) => c === t).length === 0 && i.unshift(t);
22
+ const n = a ? a(r) : { messageKey: r, defaultMessage: l[r] }, o = a ? a(g) : { messageKey: g, defaultMessage: l[g] };
23
+ return /* @__PURE__ */ s.createElement("span", { className: "k-pager-sizes" }, /* @__PURE__ */ s.createElement(
24
+ h,
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: this.props.size
31
+ }
32
+ ), /* @__PURE__ */ s.createElement("span", null, p(this).toLanguageString(n.messageKey, n.defaultMessage)));
33
+ }
34
+ }
35
+ u(f);
36
+ export {
37
+ f as PagerPageSizes
38
+ };
@@ -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 z=require("react"),B=require("react-dom"),k=require("@progress/kendo-react-common"),n=require("./utils.js"),V=require("./constants.js");function p(l){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(l){for(const c in l)if(c!=="default"){const y=Object.getOwnPropertyDescriptor(l,c);Object.defineProperty(r,c,y.get?y:{enumerable:!0,get:()=>l[c]})}}return r.default=l,Object.freeze(r)}const t=p(z),G=p(B),J=l=>{var C;const{onRelease:r,childRef:c}=l,{enabled:y,drag:I,mode:d,cell:x}=n.getSelectionOptions(l.selectable),u=t.useRef(null),D=t.useRef(null),R=t.useRef({clientX:0,clientY:0}),[K,E]=t.useState(null),M=t.useRef(),b=t.useRef(!1),v=t.useRef(!1),q=t.useCallback(m=>{const{event:e}=m;v.current=e.originalEvent.target.hasAttribute(V.TABLE_PREVENT_SELECTION_ELEMENT),!(v.current||!u.current)&&(M.current=n.relativeContextElement(u.current.element),R.current={clientY:e.clientY,clientX:e.clientX})},[]),j=t.useCallback(m=>{const{event:e}=m,{clientX:o,clientY:s}=R.current;if(!v.current&&!(!I||d==="single")&&((Math.abs(s-e.clientY)>5||Math.abs(o-e.clientX)>5)&&(b.current=!0),b.current)){const a=n.getOffset(M.current);E({top:Math.min(s,e.clientY)-a.top,left:Math.min(o,e.clientX)-a.left,width:Math.abs(e.clientX-o),height:Math.abs(e.clientY-s)})}},[E,I,d]),F=t.useCallback(m=>{const{event:e}=m,{clientX:o,clientY:s}=R.current;if(v.current||!u.current)return;const a=u.current.element&&u.current.element.ownerDocument;if(a){if(b.current){const f=Math.min(s,e.clientY),h=Math.min(o,e.clientX),T=Math.max(s,e.clientY),g=Math.max(o,e.clientX),i=D.current;if(!i)return;i.style.visibility="hidden";const O=a.elementFromPoint(h,f),P=a.elementFromPoint(g,T);if(i.style.visibility="",!O||!P)return;const S=n.closestTagName(O,"TD"),L=n.closestTagName(S,"TR"),w=n.closestTagName(P,"TD"),A=n.closestTagName(w,"TR"),N=n.getColumnIndex(S),X=n.getRowIndex(L),Y=n.getColumnIndex(w),_=n.getRowIndex(A);N!==void 0&&X!==void 0&&Y!==void 0&&_!==void 0&&r({nativeEvent:e.originalEvent,startRowIndex:X,startColIndex:N,endRowIndex:_,endColIndex:Y,altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,mode:d,cell:x,isDrag:!0})}else{const f=a.elementFromPoint(o,s);if(!f)return;const h=n.closestTagName(f,"TD"),T=n.closestTagName(f,"TR"),g=n.getColumnIndex(h),i=n.getRowIndex(T);h&&T&&i!==void 0&&g!==void 0&&r({nativeEvent:e.originalEvent,startRowIndex:i,startColIndex:g,endRowIndex:i,endColIndex:g,altKey:e.altKey,shiftKey:e.shiftKey,ctrlKey:e.ctrlKey,metaKey:e.metaKey,mode:d,cell:x,isDrag:!1})}E(null),b.current=!1,R.current={clientX:0,clientY:0}}},[E,d,x,r]),H=k.useDocument(D);return y?t.createElement(t.Fragment,null,t.createElement(k.Draggable,{onPress:q,onDrag:j,onRelease:F,ref:u,childRef:c},l.children),K&&G.createPortal(t.createElement("div",{ref:D,style:{...K,position:"fixed"},className:"k-marquee k-marquee-color"}),(C=H())==null?void 0:C.body)):t.cloneElement(t.Children.only(l.children),{ref:c})};exports.TableSelection=J;
@@ -0,0 +1,123 @@
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 * as t from "react";
10
+ import * as V from "react-dom";
11
+ import { useDocument as j, Draggable as z } from "@progress/kendo-react-common";
12
+ import { getSelectionOptions as G, relativeContextElement as J, getOffset as Q, closestTagName as s, getColumnIndex as K, getRowIndex as T } from "./utils.mjs";
13
+ import { TABLE_PREVENT_SELECTION_ELEMENT as U } from "./constants.mjs";
14
+ const ee = (f) => {
15
+ var X;
16
+ const { onRelease: h, childRef: D } = f, {
17
+ enabled: F,
18
+ drag: I,
19
+ mode: i,
20
+ cell: b
21
+ } = G(f.selectable), o = t.useRef(null), x = t.useRef(null), d = t.useRef({ clientX: 0, clientY: 0 }), [M, E] = t.useState(null), C = t.useRef(), g = t.useRef(!1), y = t.useRef(!1), H = t.useCallback(
22
+ (a) => {
23
+ const { event: e } = a;
24
+ y.current = e.originalEvent.target.hasAttribute(U), !(y.current || !o.current) && (C.current = J(o.current.element), d.current = {
25
+ clientY: e.clientY,
26
+ clientX: e.clientX
27
+ });
28
+ },
29
+ []
30
+ ), L = t.useCallback(
31
+ (a) => {
32
+ const { event: e } = a, { clientX: n, clientY: r } = d.current;
33
+ if (!y.current && !(!I || i === "single") && ((Math.abs(r - e.clientY) > 5 || Math.abs(n - e.clientX) > 5) && (g.current = !0), g.current)) {
34
+ const l = Q(C.current);
35
+ E({
36
+ top: Math.min(r, e.clientY) - l.top,
37
+ left: Math.min(n, e.clientX) - l.left,
38
+ width: Math.abs(e.clientX - n),
39
+ height: Math.abs(e.clientY - r)
40
+ });
41
+ }
42
+ },
43
+ [E, I, i]
44
+ ), _ = t.useCallback(
45
+ (a) => {
46
+ const { event: e } = a, { clientX: n, clientY: r } = d.current;
47
+ if (y.current || !o.current)
48
+ return;
49
+ const l = o.current.element && o.current.element.ownerDocument;
50
+ if (l) {
51
+ if (g.current) {
52
+ const m = Math.min(r, e.clientY), R = Math.min(n, e.clientX), v = Math.max(r, e.clientY), u = Math.max(n, e.clientX), c = x.current;
53
+ if (!c)
54
+ return;
55
+ c.style.visibility = "hidden";
56
+ const Y = l.elementFromPoint(R, m), P = l.elementFromPoint(u, v);
57
+ if (c.style.visibility = "", !Y || !P)
58
+ return;
59
+ const w = s(Y, "TD"), A = s(w, "TR"), S = s(P, "TD"), B = s(S, "TR"), k = K(w), p = T(A), N = K(S), O = T(B);
60
+ k !== void 0 && p !== void 0 && N !== void 0 && O !== void 0 && h({
61
+ nativeEvent: e.originalEvent,
62
+ startRowIndex: p,
63
+ startColIndex: k,
64
+ endRowIndex: O,
65
+ endColIndex: N,
66
+ altKey: e.altKey,
67
+ shiftKey: e.shiftKey,
68
+ ctrlKey: e.ctrlKey,
69
+ metaKey: e.metaKey,
70
+ mode: i,
71
+ cell: b,
72
+ isDrag: !0
73
+ });
74
+ } else {
75
+ const m = l.elementFromPoint(n, r);
76
+ if (!m)
77
+ return;
78
+ const R = s(m, "TD"), v = s(m, "TR"), u = K(R), c = T(v);
79
+ R && v && c !== void 0 && u !== void 0 && h({
80
+ nativeEvent: e.originalEvent,
81
+ startRowIndex: c,
82
+ startColIndex: u,
83
+ endRowIndex: c,
84
+ endColIndex: u,
85
+ altKey: e.altKey,
86
+ shiftKey: e.shiftKey,
87
+ ctrlKey: e.ctrlKey,
88
+ metaKey: e.metaKey,
89
+ mode: i,
90
+ cell: b,
91
+ isDrag: !1
92
+ });
93
+ }
94
+ E(null), g.current = !1, d.current = { clientX: 0, clientY: 0 };
95
+ }
96
+ },
97
+ [E, i, b, h]
98
+ ), q = j(x);
99
+ return F ? /* @__PURE__ */ t.createElement(t.Fragment, null, /* @__PURE__ */ t.createElement(
100
+ z,
101
+ {
102
+ onPress: H,
103
+ onDrag: L,
104
+ onRelease: _,
105
+ ref: o,
106
+ childRef: D
107
+ },
108
+ f.children
109
+ ), M && V.createPortal(
110
+ /* @__PURE__ */ t.createElement(
111
+ "div",
112
+ {
113
+ ref: x,
114
+ style: { ...M, position: "fixed" },
115
+ className: "k-marquee k-marquee-color"
116
+ }
117
+ ),
118
+ (X = q()) == null ? void 0 : X.body
119
+ )) : t.cloneElement(t.Children.only(f.children), { ref: D });
120
+ };
121
+ export {
122
+ ee as TableSelection
123
+ };
@@ -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 E="data-grid-row-index",T="data-grid-col-index",_="data-prevent-selection";exports.TABLE_COL_INDEX_ATTRIBUTE=T;exports.TABLE_PREVENT_SELECTION_ELEMENT=_;exports.TABLE_ROW_INDEX_ATTRIBUTE=E;
@@ -0,0 +1,14 @@
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
+ const E = "data-grid-row-index", T = "data-grid-col-index", t = "data-prevent-selection";
10
+ export {
11
+ T as TABLE_COL_INDEX_ATTRIBUTE,
12
+ t as TABLE_PREVENT_SELECTION_ELEMENT,
13
+ E as TABLE_ROW_INDEX_ATTRIBUTE
14
+ };
@@ -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 S=require("@progress/kendo-react-common"),K=require("./constants.js"),M="items",x={},G=(e,t)=>!e||Array.isArray(e)&&e.length===0?[t]:e.findIndex(o=>o===t)>-1?e.filter(o=>o!==t):[...e,t],h=(e,t)=>{let n=e;for(;n;){if(n.tagName===t)return n;if(n.tagName==="TABLE")return null;n=n.parentElement}return null},_=e=>{if(!e)return;const t=e.getAttribute(K.TABLE_ROW_INDEX_ATTRIBUTE);return t?parseInt(t,10):void 0},O=e=>{if(!e)return;const t=e.getAttribute(K.TABLE_COL_INDEX_ATTRIBUTE);return t?parseInt(t,10):void 0},U=e=>{const t=e.subItemsField||M,n=S.getter(e.dataItemKey);return S.mapTree(e.data,t,o=>S.extendDataItem(o,t,{[e.selectedField]:e.selectedState[n(o)]}))},k=e=>{const{event:t,dataItemKey:n,selectedState:o}=e,{syntheticEvent:a,nativeEvent:s,dataItems:g,componentId:l,mode:E,cell:f,selectedField:y}=t,{target:T,ctrlKey:C,metaKey:D,altKey:I,shiftKey:R}=s;if(a.isDefaultPrevented()||s.keyCode!==S.Keys.enter)return o;const p=h(T,"TD"),i=h(T,"TR"),r=O(p),m=_(i);let d={};return p&&i&&m!==void 0&&r!==void 0&&(d=L({selectedState:o,dataItemKey:n,event:{ctrlKey:C,metaKey:D,altKey:I,shiftKey:R,dataItems:g,cell:f,mode:E,selectedField:y,componentId:l,startColIndex:r,endColIndex:r,startRowIndex:m,endRowIndex:m,isDrag:!1,syntheticEvent:a,nativeEvent:s,target:t.target,dataItem:null}})),d},L=e=>{const{event:t,dataItemKey:n,selectedState:o}=e,{dataItems:a,startRowIndex:s,endRowIndex:g,startColIndex:l,endColIndex:E,cell:f,isDrag:y,ctrlKey:T,shiftKey:C,metaKey:D,componentId:I,mode:R,dataItem:p}=t,i=S.getter(n);let r={};const m=p!==null;if(R==="single"){const d=a.slice(s,s+1)[0],u=i(d);x[I]={rowIndex:s,colIndex:l},r[u]=f?[l]:!0}else if(y||!C&&!T&&!D&&!m){y||(x[I]={rowIndex:s,colIndex:l});const d=[];for(let c=l;c<=E;c++)d.push(c);a.slice(s,g+1).forEach(c=>{const v=i(c);r[v]=f?[...d]:!0})}else if(T||D||m){x[I]={rowIndex:s,colIndex:l};const u=a.slice(s,g+1)[0],c=i(u);r={...o},r[c]=f&&!m?G(r[c],l):!r[c]}else if(C){const d=x[I]&&x[I].rowIndex||0,u=x[I]&&x[I].colIndex||0,c=Math.min(d,s,g),v=Math.max(d,s,g),N=Math.min(u,l,E),B=Math.max(u,l,E),A=[];for(let w=N;w<=B;w++)A.push(w);a.slice(c,v+1).forEach(w=>{const F=i(w);r[F]=f?[...A]:!0})}return r},X=S.hasRelativeStackingContext(),b=e=>{if(!e||!X)return null;let t=e.parentElement;for(;t;){if(window.getComputedStyle(t).transform!=="none")return t;t=t.parentElement}},q=e=>{if(e&&e.ownerDocument&&e!==e.ownerDocument.body){const t=e.getBoundingClientRect();return{left:t.left-e.scrollLeft,top:t.top-e.scrollTop}}return{left:0,top:0}},j=e=>{const t=e?typeof e.enabled=="boolean"?e.enabled:!0:!1,n=e?!!e.drag:!1,o=e&&e.mode?e.mode:"multiple",a=!!(e&&e.cell);return{enabled:t,drag:n,mode:o,cell:a}};exports.closestTagName=h;exports.getColumnIndex=O;exports.getOffset=q;exports.getRowIndex=_;exports.getSelectedState=L;exports.getSelectedStateFromKeyDown=k;exports.getSelectionOptions=j;exports.relativeContextElement=b;exports.setSelectedState=U;