@progress/kendo-vue-dateinputs 8.0.3-develop.2 → 8.0.3-develop.3
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/PopupSettings.d.ts +21 -0
- package/calendar/components/Calendar.d.ts +206 -0
- package/calendar/components/CalendarCell.d.ts +70 -0
- package/calendar/components/CalendarHeaderTitle.d.ts +35 -0
- package/calendar/components/CalendarWeekCell.d.ts +35 -0
- package/calendar/components/Header.d.ts +175 -0
- package/calendar/components/View.d.ts +204 -0
- package/calendar/components/ViewList.d.ts +226 -0
- package/calendar/components/interfaces/CalendarComputed.d.ts +17 -0
- package/calendar/components/interfaces/CalendarData.d.ts +17 -0
- package/calendar/components/interfaces/CalendarEventArguments.d.ts +63 -0
- package/calendar/components/interfaces/CalendarMethods.d.ts +40 -0
- package/calendar/components/interfaces/CalendarProps.d.ts +66 -0
- package/calendar/components/interfaces/CalendarState.d.ts +32 -0
- package/calendar/models/ActiveView.d.ts +11 -0
- package/calendar/models/CalendarMode.d.ts +16 -0
- package/calendar/models/CalendarSettings.d.ts +84 -0
- package/calendar/models/CalendarViewEnum.d.ts +16 -0
- package/calendar/models/CellContext.d.ts +26 -0
- package/calendar/models/NavigationAction.d.ts +22 -0
- package/calendar/models/SelectionRange.d.ts +24 -0
- package/calendar/models/SelectionRangeEnd.d.ts +11 -0
- package/calendar/models/ViewService.d.ts +32 -0
- package/calendar/models/main.d.ts +17 -0
- package/calendar/services/BusViewService.d.ts +28 -0
- package/calendar/services/CenturyViewService.d.ts +32 -0
- package/calendar/services/DOMService.d.ts +36 -0
- package/calendar/services/DecadeViewService.d.ts +34 -0
- package/calendar/services/MonthViewService.d.ts +40 -0
- package/calendar/services/NavigationService.d.ts +20 -0
- package/calendar/services/WeekNamesService.d.ts +16 -0
- package/calendar/services/YearViewService.d.ts +38 -0
- package/calendar/services/main.d.ts +16 -0
- package/calendar/utils/main.d.ts +33 -0
- package/common/PickerWrap.d.ts +23 -0
- package/dateinput/DateInput.d.ts +260 -0
- package/dateinput/DateInput.mjs +3 -3
- package/dateinput/interfaces/DateInputBlurEvent.d.ts +16 -0
- package/dateinput/interfaces/DateInputComputed.d.ts +15 -0
- package/dateinput/interfaces/DateInputData.d.ts +18 -0
- package/dateinput/interfaces/DateInputEventArguments.d.ts +17 -0
- package/dateinput/interfaces/DateInputFocusEvent.d.ts +16 -0
- package/dateinput/interfaces/DateInputMethods.d.ts +37 -0
- package/dateinput/interfaces/DateInputProps.d.ts +38 -0
- package/dateinput/interfaces/DateInputState.d.ts +16 -0
- package/dateinput/models/DateInputSettings.d.ts +160 -0
- package/dateinput/models/format-placeholder.d.ts +46 -0
- package/dateinput/models/incremental-steps.d.ts +18 -0
- package/dateinput/models/kendo-date.d.ts +60 -0
- package/dateinput/models/main.d.ts +14 -0
- package/dateinput/models/mask.d.ts +14 -0
- package/dateinput/models/selection.d.ts +14 -0
- package/dateinput/utils.d.ts +37 -0
- package/datepicker/DatePicker.d.ts +280 -0
- package/datepicker/DatePicker.js +1 -1
- package/datepicker/DatePicker.mjs +11 -10
- package/datepicker/ToggleButton.d.ts +151 -0
- package/datepicker/interfaces/DatePickerComputed.d.ts +15 -0
- package/datepicker/interfaces/DatePickerData.d.ts +15 -0
- package/datepicker/interfaces/DatePickerEventArguments.d.ts +29 -0
- package/datepicker/interfaces/DatePickerFocusBlurEvents.d.ts +25 -0
- package/datepicker/interfaces/DatePickerMethods.d.ts +34 -0
- package/datepicker/interfaces/DatePickerProps.d.ts +53 -0
- package/datepicker/interfaces/DatePickerState.d.ts +23 -0
- package/datepicker/models/DatePickerSettings.d.ts +157 -0
- package/datepicker/models/main.d.ts +9 -0
- package/daterangepicker/DateRangePicker.d.ts +315 -0
- package/daterangepicker/interfaces/DateRangePickerFocusBlurEvents.d.ts +25 -0
- package/daterangepicker/models/DateRangePickerCalendarSettings.d.ts +13 -0
- package/daterangepicker/models/DateRangePickerDateInputSettings.d.ts +13 -0
- package/daterangepicker/models/DateRangePickerPopupSettings.d.ts +13 -0
- package/daterangepicker/models/DateRangePickerSettings.d.ts +162 -0
- package/daterangepicker/models/main.d.ts +12 -0
- package/datetimepicker/DateTimePicker.d.ts +380 -0
- package/datetimepicker/DateTimePicker.js +1 -1
- package/datetimepicker/DateTimePicker.mjs +17 -16
- package/datetimepicker/DateTimeSelector.d.ts +188 -0
- package/datetimepicker/interfaces/DateTimePickerFocusBlurEvents.d.ts +25 -0
- package/datetimepicker/models/DateTimePickerSettings.d.ts +199 -0
- package/datetimepicker/models/main.d.ts +9 -0
- package/defaults.d.ts +27 -0
- package/dist/cdn/js/kendo-vue-dateinputs.js +1 -1
- package/index.d.mts +30 -3477
- package/index.d.ts +30 -3477
- package/messages/main.d.ts +117 -0
- package/package-metadata.d.ts +12 -0
- package/package-metadata.js +1 -1
- package/package-metadata.mjs +2 -2
- package/package.json +16 -10
- package/timepicker/TimeList.d.ts +129 -0
- package/timepicker/TimePart.d.ts +177 -0
- package/timepicker/TimePart.js +1 -1
- package/timepicker/TimePart.mjs +2 -2
- package/timepicker/TimePicker.d.ts +369 -0
- package/timepicker/TimePicker.js +1 -1
- package/timepicker/TimePicker.mjs +1 -0
- package/timepicker/TimeSelector.d.ts +185 -0
- package/timepicker/interfaces/TimePickerFocusBlurEvents.d.ts +25 -0
- package/timepicker/models/IncrementalSteps.d.ts +15 -0
- package/timepicker/models/ListItem.d.ts +14 -0
- package/timepicker/models/ListService.d.ts +22 -0
- package/timepicker/models/ListServiceSettings.d.ts +19 -0
- package/timepicker/models/TimePart.d.ts +17 -0
- package/timepicker/models/TimePickerSettings.d.ts +180 -0
- package/timepicker/models/main.d.ts +14 -0
- package/timepicker/services/DOMService.d.ts +17 -0
- package/timepicker/services/DayPeriodService.d.ts +54 -0
- package/timepicker/services/HoursService.d.ts +40 -0
- package/timepicker/services/MinutesService.d.ts +39 -0
- package/timepicker/services/SecondsService.d.ts +39 -0
- package/timepicker/services/main.d.ts +13 -0
- package/timepicker/utils.d.ts +63 -0
- package/utils.d.ts +77 -0
- package/utils.mjs +1 -1
- package/virtualization/Virtualization.d.ts +186 -0
- package/virtualization/Virtualization.js +1 -1
- package/virtualization/Virtualization.mjs +2 -2
- package/virtualization/services/RowHeightService.d.ts +25 -0
- package/virtualization/services/ScrollerService.d.ts +56 -0
- package/virtualization/services/main.d.ts +10 -0
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { ScrollAction, PageAction } from './services/main';
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export interface ScrollActionArguments {
|
|
13
|
+
index: number;
|
|
14
|
+
target: HTMLDivElement | null;
|
|
15
|
+
scrollAction?: ScrollAction;
|
|
16
|
+
pageAction?: PageAction;
|
|
17
|
+
animationInProgress: boolean;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* @hidden
|
|
21
|
+
*/
|
|
22
|
+
export declare enum ScrollDirection {
|
|
23
|
+
Backward = 0,
|
|
24
|
+
Forward = 1
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* @hidden
|
|
28
|
+
*/
|
|
29
|
+
export type Direction = 'horizontal' | 'vertical';
|
|
30
|
+
/**
|
|
31
|
+
* @hidden
|
|
32
|
+
*/
|
|
33
|
+
export interface VirtualizationComputed {
|
|
34
|
+
[key: string]: any;
|
|
35
|
+
element: HTMLDivElement | null;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* @hidden
|
|
39
|
+
*/
|
|
40
|
+
export interface VirtualizationProps {
|
|
41
|
+
bottomOffset: number;
|
|
42
|
+
direction?: String;
|
|
43
|
+
forceScroll?: boolean;
|
|
44
|
+
itemHeight?: number;
|
|
45
|
+
itemWidth?: number;
|
|
46
|
+
maxScrollDifference?: number;
|
|
47
|
+
scrollOffsetSize?: number;
|
|
48
|
+
scrollDuration?: number;
|
|
49
|
+
skip: number;
|
|
50
|
+
tabIndex?: number;
|
|
51
|
+
take: number;
|
|
52
|
+
topOffset: number;
|
|
53
|
+
total: number;
|
|
54
|
+
role?: string;
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* @hidden
|
|
58
|
+
*/
|
|
59
|
+
declare const Virtualization: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
60
|
+
bottomOffset: {
|
|
61
|
+
type: NumberConstructor;
|
|
62
|
+
required: true;
|
|
63
|
+
};
|
|
64
|
+
direction: {
|
|
65
|
+
type: StringConstructor;
|
|
66
|
+
default: () => string;
|
|
67
|
+
};
|
|
68
|
+
forceScroll: {
|
|
69
|
+
type: BooleanConstructor;
|
|
70
|
+
default: boolean;
|
|
71
|
+
};
|
|
72
|
+
itemHeight: NumberConstructor;
|
|
73
|
+
itemWidth: NumberConstructor;
|
|
74
|
+
maxScrollDifference: {
|
|
75
|
+
type: NumberConstructor;
|
|
76
|
+
default: number;
|
|
77
|
+
};
|
|
78
|
+
scrollDuration: {
|
|
79
|
+
type: NumberConstructor;
|
|
80
|
+
default: number;
|
|
81
|
+
};
|
|
82
|
+
scrollOffsetSize: {
|
|
83
|
+
type: NumberConstructor;
|
|
84
|
+
default: number;
|
|
85
|
+
};
|
|
86
|
+
skip: {
|
|
87
|
+
type: NumberConstructor;
|
|
88
|
+
required: true;
|
|
89
|
+
};
|
|
90
|
+
tabIndex: NumberConstructor;
|
|
91
|
+
take: {
|
|
92
|
+
type: NumberConstructor;
|
|
93
|
+
required: true;
|
|
94
|
+
};
|
|
95
|
+
topOffset: {
|
|
96
|
+
type: NumberConstructor;
|
|
97
|
+
required: true;
|
|
98
|
+
};
|
|
99
|
+
total: {
|
|
100
|
+
type: NumberConstructor;
|
|
101
|
+
required: true;
|
|
102
|
+
};
|
|
103
|
+
role: StringConstructor;
|
|
104
|
+
}>, {}, {}, {
|
|
105
|
+
element(): HTMLDivElement | null;
|
|
106
|
+
}, {
|
|
107
|
+
containerOffsetSize(): number;
|
|
108
|
+
containerScrollSize(): number;
|
|
109
|
+
containerScrollPosition(): number;
|
|
110
|
+
activeIndex(): number;
|
|
111
|
+
itemIndex(offset: number): number;
|
|
112
|
+
itemOffset(index: number): number;
|
|
113
|
+
isIndexVisible(index: number): boolean;
|
|
114
|
+
isListScrolled(index: number): boolean;
|
|
115
|
+
scrollTo(value: number): void;
|
|
116
|
+
scrollToIndex(index: number): void;
|
|
117
|
+
animateToIndex(index: number): void;
|
|
118
|
+
scrollToBottom(): void;
|
|
119
|
+
scrollStep(start: number, end: number): number;
|
|
120
|
+
scrollRange(indexOffset: number, direction: ScrollDirection): any;
|
|
121
|
+
containerMaxScroll(): number;
|
|
122
|
+
getContainerScrollDirection(indexOffset: number): ScrollDirection;
|
|
123
|
+
initServices(newProps?: any): void;
|
|
124
|
+
getContainerProperty(propertyName: string): number;
|
|
125
|
+
handleScroll(event: any): void;
|
|
126
|
+
handleScrollAction(action: ScrollAction): void;
|
|
127
|
+
handlePageAction(action: PageAction): void;
|
|
128
|
+
}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
129
|
+
scroll: (event: any) => true;
|
|
130
|
+
scrollaction: (event: any) => true;
|
|
131
|
+
}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
132
|
+
bottomOffset: {
|
|
133
|
+
type: NumberConstructor;
|
|
134
|
+
required: true;
|
|
135
|
+
};
|
|
136
|
+
direction: {
|
|
137
|
+
type: StringConstructor;
|
|
138
|
+
default: () => string;
|
|
139
|
+
};
|
|
140
|
+
forceScroll: {
|
|
141
|
+
type: BooleanConstructor;
|
|
142
|
+
default: boolean;
|
|
143
|
+
};
|
|
144
|
+
itemHeight: NumberConstructor;
|
|
145
|
+
itemWidth: NumberConstructor;
|
|
146
|
+
maxScrollDifference: {
|
|
147
|
+
type: NumberConstructor;
|
|
148
|
+
default: number;
|
|
149
|
+
};
|
|
150
|
+
scrollDuration: {
|
|
151
|
+
type: NumberConstructor;
|
|
152
|
+
default: number;
|
|
153
|
+
};
|
|
154
|
+
scrollOffsetSize: {
|
|
155
|
+
type: NumberConstructor;
|
|
156
|
+
default: number;
|
|
157
|
+
};
|
|
158
|
+
skip: {
|
|
159
|
+
type: NumberConstructor;
|
|
160
|
+
required: true;
|
|
161
|
+
};
|
|
162
|
+
tabIndex: NumberConstructor;
|
|
163
|
+
take: {
|
|
164
|
+
type: NumberConstructor;
|
|
165
|
+
required: true;
|
|
166
|
+
};
|
|
167
|
+
topOffset: {
|
|
168
|
+
type: NumberConstructor;
|
|
169
|
+
required: true;
|
|
170
|
+
};
|
|
171
|
+
total: {
|
|
172
|
+
type: NumberConstructor;
|
|
173
|
+
required: true;
|
|
174
|
+
};
|
|
175
|
+
role: StringConstructor;
|
|
176
|
+
}>> & Readonly<{
|
|
177
|
+
onScroll?: (event: any) => any;
|
|
178
|
+
onScrollaction?: (event: any) => any;
|
|
179
|
+
}>, {
|
|
180
|
+
direction: string;
|
|
181
|
+
forceScroll: boolean;
|
|
182
|
+
maxScrollDifference: number;
|
|
183
|
+
scrollDuration: number;
|
|
184
|
+
scrollOffsetSize: number;
|
|
185
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
186
|
+
export { Virtualization };
|
|
@@ -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 strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),h=require("@progress/kendo-vue-common"),S=require("./services/RowHeightService.js"),m=require("./services/ScrollerService.js");let s=function(t){return t[t.Backward=0]="Backward",t[t.Forward=1]="Forward",t}({});const g=(t,e,r)=>Math.min(Math.abs(e-t),r),w=17,v={[s.Forward]:t=>e=>e+t,[s.Backward]:t=>e=>e-t},H={[s.Forward]:t=>e=>Math.min(e,t),[s.Backward]:t=>e=>Math.max(e,t)},$={[s.Forward]:t=>e=>e<t,[s.Backward]:t=>e=>e>t},b=a.defineComponent({name:"Virtualization",emits:{scroll:t=>!0,scrollaction:t=>!0},props:{bottomOffset:{type:Number,required:!0},direction:{type:String,default:function(){return"vertical"}},forceScroll:{type:Boolean,default:!1},itemHeight:Number,itemWidth:Number,maxScrollDifference:{type:Number,default:100},scrollDuration:{type:Number,default:100},scrollOffsetSize:{type:Number,default:0},skip:{type:Number,required:!0},tabIndex:Number,take:{type:Number,required:!0},topOffset:{type:Number,required:!0},total:{type:Number,required:!0},role:String},created(){this.animationInProgress=!1,this.lastTotal=void 0,this.scrollerService=new m.ScrollerService(this.handleScrollAction,this.handlePageAction)},mounted(){this.scrollContainer=this.$refs.scrollContainer},computed:{element(){return this.scrollContainer}},methods:{containerOffsetSize(){return this.getContainerProperty(this.$props.direction==="vertical"?"offsetHeight":"offsetWidth")},containerScrollSize(){return this.getContainerProperty(this.$props.direction==="vertical"?"scrollHeight":"scrollWidth")},containerScrollPosition(){return this.getContainerProperty(this.$props.direction==="vertical"?"scrollTop":"scrollLeft")},activeIndex(){return this.itemIndex(Math.ceil(this.containerScrollPosition()))},itemIndex(t){return this.rowHeightService?this.rowHeightService.index(t):0},itemOffset(t){return this.rowHeightService?this.rowHeightService.offset(t):0},isIndexVisible(t){if(!this.rowHeightService)return!1;const e=this.containerScrollPosition(),r=e+this.containerOffsetSize(),i=this.rowHeightService.offset(t),o=i+this.rowHeightService.height(t);return i>=e&&o<=r},isListScrolled(t){return this.rowHeightService?this.containerScrollPosition()!==this.rowHeightService.offset(t):!1},scrollTo(t){const e=this.$props.direction==="vertical"?"scrollTop":"scrollLeft";this.scrollContainer&&(this.scrollContainer[e]=t)},scrollToIndex(t){this.rowHeightService&&(this.animationInProgress=!1,this.scrollTo(this.rowHeightService.offset(t)))},animateToIndex(t){if(!this.rowHeightService||!window)return;window.cancelAnimationFrame(this.cancelAnimation);const e=this.rowHeightService.offset(t),r=this.getContainerScrollDirection(e);let{start:i,end:o}=this.scrollRange(e,r);if(i===o)return;const l=this.scrollStep(i,o),n=v[r](l),d=H[r](o),f=$[r](n(o)),p=u=>{this.animationInProgress=!0;const c=n(u);this.scrollTo(d(c)),f(c)?this.cancelAnimation=window.requestAnimationFrame(()=>{p(c)}):this.animationInProgress=!1};this.cancelAnimation=window.requestAnimationFrame(()=>{p(i)})},scrollToBottom(){this.rowHeightService&&this.scrollTo(this.rowHeightService.totalHeight()+this.$props.bottomOffset)},scrollStep(t,e){const r=this.$props.scrollDuration;return Math.abs(e-t)/(r/w)},scrollRange(t,e){const r=this.containerScrollPosition();if(parseInt(`${t}`,10)===parseInt(`${r}`,10))return{start:t,end:t};const i=this.containerMaxScroll(),o=e===s.Backward?1:-1,l=g(r,t,this.$props.maxScrollDifference),n=Math.min(t,i);return{start:Math.min(Math.max(n+o*l,0),i),end:n}},containerMaxScroll(){return this.containerScrollSize()-this.containerOffsetSize()},getContainerScrollDirection(t){return t<this.containerScrollPosition()?s.Backward:s.Forward},initServices(t){const e=t||this.$props,r=e.direction==="vertical"?e.itemHeight:e.itemWidth;r!==void 0&&(this.rowHeightService=new S.RowHeightService(e.total,r,0),this.scrollerService.create(this.rowHeightService,e.skip,e.take,e.total,e.topOffset,this.$props.scrollOffsetSize,this.$props.direction))},getContainerProperty(t){return this.scrollContainer?this.scrollContainer[t]:0},handleScroll(t){if(!this.scrollContainer||!this.rowHeightService)return;const e=t.target;this.scrollerService.onScroll({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,offsetHeight:e.offsetHeight,offsetWidth:e.offsetWidth});const i={index:this.rowHeightService.index(this.containerScrollPosition()-this.$props.topOffset),target:e,scrollAction:this.scrollAction,pageAction:this.pageAction,animationInProgress:this.animationInProgress};this.$emit("scrollaction",i),this.scrollAction=void 0,this.pageAction=void 0},handleScrollAction(t){this.scrollAction=t},handlePageAction(t){this.pageAction=t}},render(){const t=h.getDefaultSlots(this);(this.lastTotal!==this.$props.total||this.lastDirection!==this.$props.direction||this.lastTake!==this.$props.take)&&(this.initServices(),this.lastTotal=this.$props.total,this.lastDirection=this.$props.direction,this.lastTake=this.$props.take);const e=`${(this.rowHeightService?this.rowHeightService.totalHeight():0)+this.$props.bottomOffset}`,r=this.$props.direction==="vertical"?{height:`${e}px`}:{width:`${e}px`},i=h.classNames("k-content k-scrollable",{"k-scrollable-horizontal":this.$props.direction==="horizontal"}),o=h.classNames("k-scrollable-placeholder",{"k-scrollable-horizontal-placeholder":this.$props.direction==="horizontal"});return a.createVNode("div",{ref:"scrollContainer",onScroll:this.handleScroll,class:i,tabindex:this.$props.tabIndex,role:this.$props.role},[t,a.createVNode("div",{style:r,class:o},null)])}});exports.ScrollDirection=s;exports.Virtualization=b;
|
|
8
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("vue"),h=require("@progress/kendo-vue-common"),S=require("./services/RowHeightService.js"),m=require("./services/ScrollerService.js");let s=(function(t){return t[t.Backward=0]="Backward",t[t.Forward=1]="Forward",t})({});const g=(t,e,r)=>Math.min(Math.abs(e-t),r),w=17,v={[s.Forward]:t=>e=>e+t,[s.Backward]:t=>e=>e-t},H={[s.Forward]:t=>e=>Math.min(e,t),[s.Backward]:t=>e=>Math.max(e,t)},$={[s.Forward]:t=>e=>e<t,[s.Backward]:t=>e=>e>t},b=a.defineComponent({name:"Virtualization",emits:{scroll:t=>!0,scrollaction:t=>!0},props:{bottomOffset:{type:Number,required:!0},direction:{type:String,default:function(){return"vertical"}},forceScroll:{type:Boolean,default:!1},itemHeight:Number,itemWidth:Number,maxScrollDifference:{type:Number,default:100},scrollDuration:{type:Number,default:100},scrollOffsetSize:{type:Number,default:0},skip:{type:Number,required:!0},tabIndex:Number,take:{type:Number,required:!0},topOffset:{type:Number,required:!0},total:{type:Number,required:!0},role:String},created(){this.animationInProgress=!1,this.lastTotal=void 0,this.scrollerService=new m.ScrollerService(this.handleScrollAction,this.handlePageAction)},mounted(){this.scrollContainer=this.$refs.scrollContainer},computed:{element(){return this.scrollContainer}},methods:{containerOffsetSize(){return this.getContainerProperty(this.$props.direction==="vertical"?"offsetHeight":"offsetWidth")},containerScrollSize(){return this.getContainerProperty(this.$props.direction==="vertical"?"scrollHeight":"scrollWidth")},containerScrollPosition(){return this.getContainerProperty(this.$props.direction==="vertical"?"scrollTop":"scrollLeft")},activeIndex(){return this.itemIndex(Math.ceil(this.containerScrollPosition()))},itemIndex(t){return this.rowHeightService?this.rowHeightService.index(t):0},itemOffset(t){return this.rowHeightService?this.rowHeightService.offset(t):0},isIndexVisible(t){if(!this.rowHeightService)return!1;const e=this.containerScrollPosition(),r=e+this.containerOffsetSize(),i=this.rowHeightService.offset(t),o=i+this.rowHeightService.height(t);return i>=e&&o<=r},isListScrolled(t){return this.rowHeightService?this.containerScrollPosition()!==this.rowHeightService.offset(t):!1},scrollTo(t){const e=this.$props.direction==="vertical"?"scrollTop":"scrollLeft";this.scrollContainer&&(this.scrollContainer[e]=t)},scrollToIndex(t){this.rowHeightService&&(this.animationInProgress=!1,this.scrollTo(this.rowHeightService.offset(t)))},animateToIndex(t){if(!this.rowHeightService||!window)return;window.cancelAnimationFrame(this.cancelAnimation);const e=this.rowHeightService.offset(t),r=this.getContainerScrollDirection(e);let{start:i,end:o}=this.scrollRange(e,r);if(i===o)return;const l=this.scrollStep(i,o),n=v[r](l),d=H[r](o),f=$[r](n(o)),p=u=>{this.animationInProgress=!0;const c=n(u);this.scrollTo(d(c)),f(c)?this.cancelAnimation=window.requestAnimationFrame(()=>{p(c)}):this.animationInProgress=!1};this.cancelAnimation=window.requestAnimationFrame(()=>{p(i)})},scrollToBottom(){this.rowHeightService&&this.scrollTo(this.rowHeightService.totalHeight()+this.$props.bottomOffset)},scrollStep(t,e){const r=this.$props.scrollDuration;return Math.abs(e-t)/(r/w)},scrollRange(t,e){const r=this.containerScrollPosition();if(parseInt(`${t}`,10)===parseInt(`${r}`,10))return{start:t,end:t};const i=this.containerMaxScroll(),o=e===s.Backward?1:-1,l=g(r,t,this.$props.maxScrollDifference),n=Math.min(t,i);return{start:Math.min(Math.max(n+o*l,0),i),end:n}},containerMaxScroll(){return this.containerScrollSize()-this.containerOffsetSize()},getContainerScrollDirection(t){return t<this.containerScrollPosition()?s.Backward:s.Forward},initServices(t){const e=t||this.$props,r=e.direction==="vertical"?e.itemHeight:e.itemWidth;r!==void 0&&(this.rowHeightService=new S.RowHeightService(e.total,r,0),this.scrollerService.create(this.rowHeightService,e.skip,e.take,e.total,e.topOffset,this.$props.scrollOffsetSize,this.$props.direction))},getContainerProperty(t){return this.scrollContainer?this.scrollContainer[t]:0},handleScroll(t){if(!this.scrollContainer||!this.rowHeightService)return;const e=t.target;this.scrollerService.onScroll({scrollLeft:e.scrollLeft,scrollTop:e.scrollTop,offsetHeight:e.offsetHeight,offsetWidth:e.offsetWidth});const i={index:this.rowHeightService.index(this.containerScrollPosition()-this.$props.topOffset),target:e,scrollAction:this.scrollAction,pageAction:this.pageAction,animationInProgress:this.animationInProgress};this.$emit("scrollaction",i),this.scrollAction=void 0,this.pageAction=void 0},handleScrollAction(t){this.scrollAction=t},handlePageAction(t){this.pageAction=t}},render(){const t=h.getDefaultSlots(this);(this.lastTotal!==this.$props.total||this.lastDirection!==this.$props.direction||this.lastTake!==this.$props.take)&&(this.initServices(),this.lastTotal=this.$props.total,this.lastDirection=this.$props.direction,this.lastTake=this.$props.take);const e=`${(this.rowHeightService?this.rowHeightService.totalHeight():0)+this.$props.bottomOffset}`,r=this.$props.direction==="vertical"?{height:`${e}px`}:{width:`${e}px`},i=h.classNames("k-content k-scrollable",{"k-scrollable-horizontal":this.$props.direction==="horizontal"}),o=h.classNames("k-scrollable-placeholder",{"k-scrollable-horizontal-placeholder":this.$props.direction==="horizontal"});return a.createVNode("div",{ref:"scrollContainer",onScroll:this.handleScroll,class:i,tabindex:this.$props.tabIndex,role:this.$props.role},[t,a.createVNode("div",{style:r,class:o},null)])}});exports.ScrollDirection=s;exports.Virtualization=b;
|
|
@@ -9,9 +9,9 @@ import { defineComponent as m, createVNode as p } from "vue";
|
|
|
9
9
|
import { getDefaultSlots as S, classNames as d } from "@progress/kendo-vue-common";
|
|
10
10
|
import { RowHeightService as g } from "./services/RowHeightService.mjs";
|
|
11
11
|
import { ScrollerService as w } from "./services/ScrollerService.mjs";
|
|
12
|
-
let s = /* @__PURE__ */ function(t) {
|
|
12
|
+
let s = /* @__PURE__ */ (function(t) {
|
|
13
13
|
return t[t.Backward = 0] = "Backward", t[t.Forward = 1] = "Forward", t;
|
|
14
|
-
}({});
|
|
14
|
+
})({});
|
|
15
15
|
const v = (t, e, r) => Math.min(Math.abs(e - t), r), H = 17, $ = {
|
|
16
16
|
[s.Forward]: (t) => (e) => e + t,
|
|
17
17
|
[s.Backward]: (t) => (e) => e - t
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* @hidden
|
|
10
|
+
*/
|
|
11
|
+
export declare class RowHeightService {
|
|
12
|
+
private total;
|
|
13
|
+
private rowHeight;
|
|
14
|
+
private detailRowHeight;
|
|
15
|
+
private offsets;
|
|
16
|
+
private heights;
|
|
17
|
+
constructor(total: number, rowHeight: number, detailRowHeight: number);
|
|
18
|
+
height(rowIndex: number): number;
|
|
19
|
+
expandDetail(rowIndex: number): void;
|
|
20
|
+
collapseDetail(rowIndex: number): void;
|
|
21
|
+
index(position: number): number;
|
|
22
|
+
offset(rowIndex: number): number;
|
|
23
|
+
totalHeight(): number;
|
|
24
|
+
private updateRowHeight;
|
|
25
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { RowHeightService } from './RowHeightService';
|
|
9
|
+
/**
|
|
10
|
+
* @hidden
|
|
11
|
+
*/
|
|
12
|
+
export declare class ScrollAction {
|
|
13
|
+
offset: number;
|
|
14
|
+
constructor(offset: number);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* @hidden
|
|
18
|
+
*/
|
|
19
|
+
export declare class PageAction {
|
|
20
|
+
skip: number;
|
|
21
|
+
constructor(skip: number);
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* @hidden
|
|
25
|
+
*/
|
|
26
|
+
export type ScrollElement = {
|
|
27
|
+
offsetHeight: number;
|
|
28
|
+
offsetWidth: number;
|
|
29
|
+
scrollLeft: number;
|
|
30
|
+
scrollTop: number;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* @hidden
|
|
34
|
+
*/
|
|
35
|
+
export type Action = ScrollAction | PageAction;
|
|
36
|
+
/**
|
|
37
|
+
* @hidden
|
|
38
|
+
*/
|
|
39
|
+
export declare class ScrollerService {
|
|
40
|
+
private onScrollAction;
|
|
41
|
+
private onPageAction;
|
|
42
|
+
private direction;
|
|
43
|
+
private firstLoaded;
|
|
44
|
+
private lastLoaded;
|
|
45
|
+
private lastScrollTop;
|
|
46
|
+
private take;
|
|
47
|
+
private total;
|
|
48
|
+
private rowHeightService;
|
|
49
|
+
private bottomOffset;
|
|
50
|
+
private topOffset;
|
|
51
|
+
constructor(onScrollAction: (action: ScrollAction) => void, onPageAction: (action: PageAction) => void);
|
|
52
|
+
create(rowHeightService: RowHeightService, skip: number, take: number, total: number, topOffset?: number, bottomOffset?: number, direction?: 'horizontal' | 'vertical'): void;
|
|
53
|
+
onScroll({ scrollLeft, scrollTop, offsetHeight, offsetWidth }: ScrollElement): void;
|
|
54
|
+
rowOffset(index: number): number;
|
|
55
|
+
private rowsForHeight;
|
|
56
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
*-------------------------------------------------------------------------------------------
|
|
4
|
+
* Copyright © 2026 Progress Software Corporation. All rights reserved.
|
|
5
|
+
* Licensed under commercial license. See LICENSE.md in the package root for more information
|
|
6
|
+
*-------------------------------------------------------------------------------------------
|
|
7
|
+
*/
|
|
8
|
+
import { RowHeightService } from './RowHeightService';
|
|
9
|
+
import { PageAction, ScrollAction, ScrollElement, ScrollerService } from './ScrollerService';
|
|
10
|
+
export { PageAction, type ScrollElement, RowHeightService, ScrollAction, ScrollerService };
|