@progress/kendo-react-listview 8.2.0-develop.30 → 8.2.0-develop.32

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/ListView.js CHANGED
@@ -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 D=require("react"),u=require("@progress/kendo-react-common"),I=require("./package-metadata.js");function S(n){const s=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(n){for(const r in n)if(r!=="default"){const l=Object.getOwnPropertyDescriptor(n,r);Object.defineProperty(s,r,l.get?l:{enumerable:!0,get:()=>n[r]})}}return s.default=n,Object.freeze(s)}const e=S(D),k=e.forwardRef((n,s)=>{u.validatePackage(I.packageMetadata);const{data:r=[],item:l,footer:d,header:f,className:y,style:E,onScroll:m}=n,v=e.useRef(null),p=e.useRef(null),g=e.useCallback(()=>({onScroll:m,props:n,context:{},state:{},refs:{}}),[]);e.useImperativeHandle(p,g),e.useImperativeHandle(s,()=>p.current);const N=e.useCallback(a=>u.dispatchEvent(m,a,g(),void 0),[]),w=(a,t,o)=>{o.preventDefault(),t.focusNext(a)},b=(a,t,o)=>{o.preventDefault(),t.focusPrevious(a)},i=e.useMemo(()=>new u.Navigation({root:v,selectors:[".k-listview-item"],keyboardEvents:{keydown:{ArrowDown:w,ArrowRight:w,ArrowUp:b,ArrowLeft:b,Home:(a,t,o)=>{o.preventDefault();const c=t.first;c&&t.focusElement(c,a)},End:(a,t,o)=>{o.preventDefault();const c=t.last;c&&t.focusElement(c,a)}}},tabIndex:0,focusClass:"k-focus"}),[]),R=e.useCallback(i.triggerKeyboardEvent.bind(i),[]);return e.useEffect(()=>(i.initializeRovingTab(),()=>i.removeFocusListener()),[]),e.createElement("div",{className:u.classNames("k-listview",y),style:E,onKeyDown:R},f?e.createElement(f,null):null,e.createElement("div",{role:"list",className:"k-listview-content",onScroll:N,ref:v},l&&r.map((a,t)=>e.createElement(l,{dataItem:a,index:t,key:t}))),d?e.createElement(d,null):null)});k.displayName="KendoReactListView";exports.ListView=k;
8
+ "use client";"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const R=require("react"),d=require("@progress/kendo-react-common"),I=require("./package-metadata.js");function h(a){const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(a){for(const l in a)if(l!=="default"){const c=Object.getOwnPropertyDescriptor(a,l);Object.defineProperty(r,l,c.get?c:{enumerable:!0,get:()=>a[l]})}}return r.default=a,Object.freeze(r)}const s=h(R),o="k-focus",y=s.forwardRef((a,r)=>{d.validatePackage(I.packageMetadata);const{data:l=[],item:c,footer:f,header:m,className:L,style:C,onScroll:v,navigatable:b}=a,p=s.useRef(null),w=s.useRef(null),g=s.useCallback(()=>({onScroll:v,props:a,context:{},state:{},refs:{}}),[]);s.useImperativeHandle(w,g),s.useImperativeHandle(r,()=>w.current);const S=s.useCallback(e=>d.dispatchEvent(v,e,g(),void 0),[]),k=(e,t,n)=>{n.preventDefault(),t.focusNext(e),t.next(e).classList.add(o),t.previous(e).classList.remove(o)},E=(e,t,n)=>{n.preventDefault(),t.focusPrevious(e),t.next(e).classList.remove(o),t.previous(e).classList.add(o)},i=s.useMemo(()=>new d.Navigation({root:p,selectors:[".k-listview-item"],rovingTabIndex:!0,keyboardEvents:{keydown:{ArrowDown:k,ArrowRight:k,ArrowUp:E,ArrowLeft:E,Home:(e,t,n)=>{n.preventDefault();const u=t.first;u&&t.focusElement(u,e)},End:(e,t,n)=>{n.preventDefault();const u=t.last;u&&t.focusElement(u,e)},Tab:(e,t,n)=>{t.removeFocusClass(e)}}},tabIndex:0,focusClass:o}),[]),D=s.useCallback(i.triggerKeyboardEvent.bind(i),[]),N=s.useCallback(e=>{e.nativeEvent.target.classList.add(o),i.elements.forEach(t=>{t!==e.nativeEvent.target&&t.classList.remove(o)})},[]);return s.useEffect(()=>{if(b)return i.initializeRovingTab(),()=>i.removeFocusListener()},[]),s.createElement("div",{className:d.classNames("k-listview",L),style:C,onKeyDown:e=>b&&D(e),onClick:N},m?s.createElement(m,null):null,s.createElement("div",{role:"list",className:"k-listview-content",onScroll:S,ref:p},c&&l.map((e,t)=>s.createElement(c,{dataItem:e,index:t,key:t}))),f?s.createElement(f,null):null)});y.displayName="KendoReactListView";exports.ListView=y;
package/ListView.mjs CHANGED
@@ -6,75 +6,87 @@
6
6
  *-------------------------------------------------------------------------------------------
7
7
  */
8
8
  "use client";
9
- import * as e from "react";
10
- import { validatePackage as y, dispatchEvent as I, Navigation as R, classNames as h } from "@progress/kendo-react-common";
11
- import { packageMetadata as D } from "./package-metadata.mjs";
12
- const H = e.forwardRef((n, p) => {
13
- y(D);
14
- const { data: k = [], item: r, footer: c, header: i, className: E, style: g, onScroll: u } = n, m = e.useRef(null), f = e.useRef(null), d = e.useCallback(() => ({
15
- onScroll: u,
16
- props: n,
9
+ import * as s from "react";
10
+ import { validatePackage as N, dispatchEvent as h, Navigation as x, classNames as D } from "@progress/kendo-react-common";
11
+ import { packageMetadata as R } from "./package-metadata.mjs";
12
+ const o = "k-focus", S = s.forwardRef((r, k) => {
13
+ N(R);
14
+ const { data: b = [], item: i, footer: c, header: u, className: L, style: g, onScroll: m, navigatable: d } = r, v = s.useRef(null), f = s.useRef(null), p = s.useCallback(() => ({
15
+ onScroll: m,
16
+ props: r,
17
17
  context: {},
18
18
  state: {},
19
19
  refs: {}
20
20
  }), []);
21
- e.useImperativeHandle(f, d), e.useImperativeHandle(p, () => f.current);
22
- const b = e.useCallback(
23
- (a) => I(u, a, d(), void 0),
21
+ s.useImperativeHandle(f, p), s.useImperativeHandle(k, () => f.current);
22
+ const C = s.useCallback(
23
+ (e) => h(m, e, p(), void 0),
24
24
  []
25
- ), v = (a, t, s) => {
26
- s.preventDefault(), t.focusNext(a);
27
- }, w = (a, t, s) => {
28
- s.preventDefault(), t.focusPrevious(a);
29
- }, l = e.useMemo(
30
- () => new R({
31
- root: m,
25
+ ), w = (e, t, a) => {
26
+ a.preventDefault(), t.focusNext(e), t.next(e).classList.add(o), t.previous(e).classList.remove(o);
27
+ }, E = (e, t, a) => {
28
+ a.preventDefault(), t.focusPrevious(e), t.next(e).classList.remove(o), t.previous(e).classList.add(o);
29
+ }, l = s.useMemo(
30
+ () => new x({
31
+ root: v,
32
32
  selectors: [".k-listview-item"],
33
+ rovingTabIndex: !0,
33
34
  keyboardEvents: {
34
35
  keydown: {
35
- ArrowDown: v,
36
- ArrowRight: v,
37
- ArrowUp: w,
38
- ArrowLeft: w,
39
- Home: (a, t, s) => {
40
- s.preventDefault();
41
- const o = t.first;
42
- o && t.focusElement(o, a);
36
+ ArrowDown: w,
37
+ ArrowRight: w,
38
+ ArrowUp: E,
39
+ ArrowLeft: E,
40
+ Home: (e, t, a) => {
41
+ a.preventDefault();
42
+ const n = t.first;
43
+ n && t.focusElement(n, e);
43
44
  },
44
- End: (a, t, s) => {
45
- s.preventDefault();
46
- const o = t.last;
47
- o && t.focusElement(o, a);
45
+ End: (e, t, a) => {
46
+ a.preventDefault();
47
+ const n = t.last;
48
+ n && t.focusElement(n, e);
49
+ },
50
+ Tab: (e, t, a) => {
51
+ t.removeFocusClass(e);
48
52
  }
49
53
  }
50
54
  },
51
55
  tabIndex: 0,
52
- focusClass: "k-focus"
56
+ focusClass: o
53
57
  }),
54
58
  []
55
- ), N = e.useCallback(l.triggerKeyboardEvent.bind(l), []);
56
- return e.useEffect(() => (l.initializeRovingTab(), () => l.removeFocusListener()), []), /* @__PURE__ */ e.createElement(
59
+ ), y = s.useCallback(l.triggerKeyboardEvent.bind(l), []), I = s.useCallback((e) => {
60
+ e.nativeEvent.target.classList.add(o), l.elements.forEach((t) => {
61
+ t !== e.nativeEvent.target && t.classList.remove(o);
62
+ });
63
+ }, []);
64
+ return s.useEffect(() => {
65
+ if (d)
66
+ return l.initializeRovingTab(), () => l.removeFocusListener();
67
+ }, []), /* @__PURE__ */ s.createElement(
57
68
  "div",
58
69
  {
59
- className: h("k-listview", E),
70
+ className: D("k-listview", L),
60
71
  style: g,
61
- onKeyDown: N
72
+ onKeyDown: (e) => d && y(e),
73
+ onClick: I
62
74
  },
63
- i ? /* @__PURE__ */ e.createElement(i, null) : null,
64
- /* @__PURE__ */ e.createElement(
75
+ u ? /* @__PURE__ */ s.createElement(u, null) : null,
76
+ /* @__PURE__ */ s.createElement(
65
77
  "div",
66
78
  {
67
79
  role: "list",
68
80
  className: "k-listview-content",
69
- onScroll: b,
70
- ref: m
81
+ onScroll: C,
82
+ ref: v
71
83
  },
72
- r && k.map((a, t) => /* @__PURE__ */ e.createElement(r, { dataItem: a, index: t, key: t }))
84
+ i && b.map((e, t) => /* @__PURE__ */ s.createElement(i, { dataItem: e, index: t, key: t }))
73
85
  ),
74
- c ? /* @__PURE__ */ e.createElement(c, null) : null
86
+ c ? /* @__PURE__ */ s.createElement(c, null) : null
75
87
  );
76
88
  });
77
- H.displayName = "KendoReactListView";
89
+ S.displayName = "KendoReactListView";
78
90
  export {
79
- H as ListView
91
+ S as ListView
80
92
  };
@@ -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
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@progress/kendo-react-common")):"function"==typeof define&&define.amd?define(["exports","react","@progress/kendo-react-common"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactListview={},e.React,e.KendoReactCommon)}(this,(function(e,t,s){"use strict";function r(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(s){if("default"!==s){var r=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,r.get?r:{enumerable:!0,get:function(){return e[s]}})}})),t.default=e,Object.freeze(t)}var a=r(t);const n={name:"@progress/kendo-react-listview",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},l=a.forwardRef(((e,t)=>{s.validatePackage(n);const{data:r=[],item:l,footer:o,header:i,className:c,style:u,onScroll:d}=e,m=a.useRef(null),f=a.useRef(null),p=a.useCallback((()=>({onScroll:d,props:e,context:{},state:{},refs:{}})),[]);a.useImperativeHandle(f,p),a.useImperativeHandle(t,(()=>f.current));const v=a.useCallback((e=>s.dispatchEvent(d,e,p(),void 0)),[]),w=(e,t,s)=>{s.preventDefault(),t.focusNext(e)},y=(e,t,s)=>{s.preventDefault(),t.focusPrevious(e)},E=a.useMemo((()=>new s.Navigation({root:m,selectors:[".k-listview-item"],keyboardEvents:{keydown:{ArrowDown:w,ArrowRight:w,ArrowUp:y,ArrowLeft:y,Home:(e,t,s)=>{s.preventDefault();const r=t.first;r&&t.focusElement(r,e)},End:(e,t,s)=>{s.preventDefault();const r=t.last;r&&t.focusElement(r,e)}}},tabIndex:0,focusClass:"k-focus"})),[]),k=a.useCallback(E.triggerKeyboardEvent.bind(E),[]);return a.useEffect((()=>(E.initializeRovingTab(),()=>E.removeFocusListener())),[]),a.createElement("div",{className:s.classNames("k-listview",c),style:u,onKeyDown:k},i?a.createElement(i,null):null,a.createElement("div",{role:"list",className:"k-listview-content",onScroll:v,ref:m},l&&r.map(((e,t)=>a.createElement(l,{dataItem:e,index:t,key:t})))),o?a.createElement(o,null):null)}));l.displayName="KendoReactListView";e.ListView=l,e.ListViewFooter=e=>a.createElement("div",{className:s.classNames("k-listview-footer",e.className),style:e.style},e.children),e.ListViewHeader=e=>a.createElement("div",{className:s.classNames("k-listview-header",e.className),style:e.style},e.children),e.ListViewItemWrapper=e=>{const{children:t,style:r,className:n}=e;return a.createElement("div",{role:"listitem",style:r,className:s.classNames("k-listview-item",n)},t)}}));
8
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("@progress/kendo-react-common")):"function"==typeof define&&define.amd?define(["exports","react","@progress/kendo-react-common"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).KendoReactListview={},e.React,e.KendoReactCommon)}(this,(function(e,t,s){"use strict";function a(e){var t=Object.create(null);return e&&Object.keys(e).forEach((function(s){if("default"!==s){var a=Object.getOwnPropertyDescriptor(e,s);Object.defineProperty(t,s,a.get?a:{enumerable:!0,get:function(){return e[s]}})}})),t.default=e,Object.freeze(t)}var r=a(t);const n={name:"@progress/kendo-react-listview",productName:"KendoReact",productCodes:["KENDOUIREACT","KENDOUICOMPLETE"],publishDate:0,version:"",licensingDocsUrl:"https://www.telerik.com/kendo-react-ui/components/my-license/"},l="k-focus",o=r.forwardRef(((e,t)=>{s.validatePackage(n);const{data:a=[],item:o,footer:i,header:c,className:d,style:u,onScroll:m,navigatable:f}=e,v=r.useRef(null),p=r.useRef(null),w=r.useCallback((()=>({onScroll:m,props:e,context:{},state:{},refs:{}})),[]);r.useImperativeHandle(p,w),r.useImperativeHandle(t,(()=>p.current));const E=r.useCallback((e=>s.dispatchEvent(m,e,w(),void 0)),[]),b=(e,t,s)=>{s.preventDefault(),t.focusNext(e),t.next(e).classList.add(l),t.previous(e).classList.remove(l)},k=(e,t,s)=>{s.preventDefault(),t.focusPrevious(e),t.next(e).classList.remove(l),t.previous(e).classList.add(l)},y=r.useMemo((()=>new s.Navigation({root:v,selectors:[".k-listview-item"],rovingTabIndex:!0,keyboardEvents:{keydown:{ArrowDown:b,ArrowRight:b,ArrowUp:k,ArrowLeft:k,Home:(e,t,s)=>{s.preventDefault();const a=t.first;a&&t.focusElement(a,e)},End:(e,t,s)=>{s.preventDefault();const a=t.last;a&&t.focusElement(a,e)},Tab:(e,t,s)=>{t.removeFocusClass(e)}}},tabIndex:0,focusClass:l})),[]),g=r.useCallback(y.triggerKeyboardEvent.bind(y),[]),N=r.useCallback((e=>{e.nativeEvent.target.classList.add(l),y.elements.forEach((t=>{t!==e.nativeEvent.target&&t.classList.remove(l)}))}),[]);return r.useEffect((()=>{if(f)return y.initializeRovingTab(),()=>y.removeFocusListener()}),[]),r.createElement("div",{className:s.classNames("k-listview",d),style:u,onKeyDown:e=>f&&g(e),onClick:N},c?r.createElement(c,null):null,r.createElement("div",{role:"list",className:"k-listview-content",onScroll:E,ref:v},o&&a.map(((e,t)=>r.createElement(o,{dataItem:e,index:t,key:t})))),i?r.createElement(i,null):null)}));o.displayName="KendoReactListView";e.ListView=o,e.ListViewFooter=e=>r.createElement("div",{className:s.classNames("k-listview-footer",e.className),style:e.style},e.children),e.ListViewHeader=e=>r.createElement("div",{className:s.classNames("k-listview-header",e.className),style:e.style},e.children),e.ListViewItemWrapper=e=>{const{children:t,style:a,className:n}=e;return r.createElement("div",{role:"listitem",style:a,className:s.classNames("k-listview-item",n)},t)}}));
package/index.d.mts CHANGED
@@ -33,9 +33,7 @@ export declare interface ListViewFooterProps {
33
33
  className?: string;
34
34
  }
35
35
 
36
- /**
37
- * @hidden
38
- */
36
+ /** @hidden */
39
37
  declare interface ListViewHandle {
40
38
  onScroll?: (event: ListViewEvent) => void;
41
39
  props: ListViewProps;
@@ -127,6 +125,11 @@ export declare interface ListViewProps {
127
125
  * Fires when the ListView has been scrolled.
128
126
  */
129
127
  onScroll?: (event: ListViewEvent) => void;
128
+ /**
129
+ * If set to `true`, the user can use dedicated shortcuts to interact with the ListView.
130
+ * By default, navigation is disabled.
131
+ */
132
+ navigatable?: boolean;
130
133
  }
131
134
 
132
135
  export { }
package/index.d.ts CHANGED
@@ -33,9 +33,7 @@ export declare interface ListViewFooterProps {
33
33
  className?: string;
34
34
  }
35
35
 
36
- /**
37
- * @hidden
38
- */
36
+ /** @hidden */
39
37
  declare interface ListViewHandle {
40
38
  onScroll?: (event: ListViewEvent) => void;
41
39
  props: ListViewProps;
@@ -127,6 +125,11 @@ export declare interface ListViewProps {
127
125
  * Fires when the ListView has been scrolled.
128
126
  */
129
127
  onScroll?: (event: ListViewEvent) => void;
128
+ /**
129
+ * If set to `true`, the user can use dedicated shortcuts to interact with the ListView.
130
+ * By default, navigation is disabled.
131
+ */
132
+ navigatable?: boolean;
130
133
  }
131
134
 
132
135
  export { }
@@ -10,7 +10,7 @@ const e = {
10
10
  name: "@progress/kendo-react-listview",
11
11
  productName: "KendoReact",
12
12
  productCodes: ["KENDOUIREACT", "KENDOUICOMPLETE"],
13
- publishDate: 1722491859,
13
+ publishDate: 1722507855,
14
14
  version: "",
15
15
  licensingDocsUrl: "https://www.telerik.com/kendo-react-ui/components/my-license/"
16
16
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@progress/kendo-react-listview",
3
- "version": "8.2.0-develop.30",
3
+ "version": "8.2.0-develop.32",
4
4
  "description": "React ListView enables you to display a custom layout of data items. KendoReact ListView package",
5
5
  "author": "Progress",
6
6
  "license": "SEE LICENSE IN LICENSE.md",
@@ -23,7 +23,7 @@
23
23
  "sideEffects": false,
24
24
  "peerDependencies": {
25
25
  "@progress/kendo-licensing": "^1.3.4",
26
- "@progress/kendo-react-common": "8.2.0-develop.30",
26
+ "@progress/kendo-react-common": "8.2.0-develop.32",
27
27
  "react": "^16.8.2 || ^17.0.0 || ^18.0.0",
28
28
  "react-dom": "^16.8.2 || ^17.0.0 || ^18.0.0"
29
29
  },