directix 1.0.0 → 1.2.0
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/README.md +294 -25
- package/dist/index.cjs +4077 -214
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1627 -54
- package/dist/index.iife.js +4076 -340
- package/dist/index.iife.js.map +1 -1
- package/dist/index.iife.min.js +2 -2
- package/dist/index.mjs +4078 -215
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -11
package/dist/index.d.ts
CHANGED
|
@@ -13,6 +13,32 @@ export declare function addCleanupVue2(el: Element, fn: () => void): void;
|
|
|
13
13
|
*/
|
|
14
14
|
export declare function addCleanupVue3(el: Element, fn: () => void): void;
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Directive binding value type
|
|
18
|
+
*/
|
|
19
|
+
export declare type CapitalcaseBinding = boolean | CapitalcaseOptions;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Capitalcase directive options
|
|
23
|
+
*/
|
|
24
|
+
export declare interface CapitalcaseOptions {
|
|
25
|
+
/**
|
|
26
|
+
* Whether to capitalize each word or just the first word
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
every?: boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Words to keep lowercase (articles, prepositions, etc.)
|
|
32
|
+
* @default ['a', 'an', 'the', 'and', 'but', 'or', 'for', 'nor', 'on', 'at', 'to', 'from', 'by']
|
|
33
|
+
*/
|
|
34
|
+
keepLower?: string[];
|
|
35
|
+
/**
|
|
36
|
+
* Whether to transform on input (for input elements)
|
|
37
|
+
* @default true
|
|
38
|
+
*/
|
|
39
|
+
onInput?: boolean;
|
|
40
|
+
}
|
|
41
|
+
|
|
16
42
|
/**
|
|
17
43
|
* Directive binding value type
|
|
18
44
|
*/
|
|
@@ -63,6 +89,11 @@ export declare interface ClickOutsideOptions {
|
|
|
63
89
|
prevent?: boolean;
|
|
64
90
|
}
|
|
65
91
|
|
|
92
|
+
/**
|
|
93
|
+
* Configure permission directive
|
|
94
|
+
*/
|
|
95
|
+
export declare function configurePermission(config: PermissionConfig): void;
|
|
96
|
+
|
|
66
97
|
/**
|
|
67
98
|
* Directive binding value type
|
|
68
99
|
*/
|
|
@@ -275,6 +306,70 @@ export declare interface DirectiveInstallOptions {
|
|
|
275
306
|
*/
|
|
276
307
|
export declare const Directix: Plugin_2;
|
|
277
308
|
|
|
309
|
+
/**
|
|
310
|
+
* Draggable axis
|
|
311
|
+
*/
|
|
312
|
+
export declare type DraggableAxis = 'x' | 'y' | 'both';
|
|
313
|
+
|
|
314
|
+
/**
|
|
315
|
+
* Directive binding value type
|
|
316
|
+
*/
|
|
317
|
+
export declare type DraggableBinding = boolean | DraggableOptions;
|
|
318
|
+
|
|
319
|
+
/**
|
|
320
|
+
* Draggable directive options
|
|
321
|
+
*/
|
|
322
|
+
export declare interface DraggableOptions {
|
|
323
|
+
/**
|
|
324
|
+
* Drag axis
|
|
325
|
+
* @default 'both'
|
|
326
|
+
*/
|
|
327
|
+
axis?: DraggableAxis;
|
|
328
|
+
/**
|
|
329
|
+
* Constrain to parent element
|
|
330
|
+
* @default false
|
|
331
|
+
*/
|
|
332
|
+
constrain?: boolean;
|
|
333
|
+
/**
|
|
334
|
+
* Boundary element selector or element
|
|
335
|
+
*/
|
|
336
|
+
boundary?: string | HTMLElement | (() => HTMLElement | null);
|
|
337
|
+
/**
|
|
338
|
+
* Handle element selector
|
|
339
|
+
*/
|
|
340
|
+
handle?: string;
|
|
341
|
+
/**
|
|
342
|
+
* Whether dragging is disabled
|
|
343
|
+
* @default false
|
|
344
|
+
*/
|
|
345
|
+
disabled?: boolean;
|
|
346
|
+
/**
|
|
347
|
+
* Grid snapping [x, y]
|
|
348
|
+
*/
|
|
349
|
+
grid?: [number, number];
|
|
350
|
+
/**
|
|
351
|
+
* Start drag callback
|
|
352
|
+
*/
|
|
353
|
+
onStart?: (position: {
|
|
354
|
+
x: number;
|
|
355
|
+
y: number;
|
|
356
|
+
}, event: MouseEvent | TouchEvent) => void;
|
|
357
|
+
/**
|
|
358
|
+
* Drag callback
|
|
359
|
+
*/
|
|
360
|
+
onDrag?: (position: {
|
|
361
|
+
x: number;
|
|
362
|
+
y: number;
|
|
363
|
+
}, event: MouseEvent | TouchEvent) => void;
|
|
364
|
+
/**
|
|
365
|
+
* End drag callback
|
|
366
|
+
*/
|
|
367
|
+
onEnd?: (position: {
|
|
368
|
+
x: number;
|
|
369
|
+
y: number;
|
|
370
|
+
}, event: MouseEvent | TouchEvent) => void;
|
|
371
|
+
}
|
|
372
|
+
|
|
278
373
|
/**
|
|
279
374
|
* Directive binding value type
|
|
280
375
|
*/
|
|
@@ -315,10 +410,201 @@ export declare function generateId(prefix?: string): string;
|
|
|
315
410
|
*/
|
|
316
411
|
export declare function get<T = any>(obj: Record<string, any>, path: string, defaultValue?: T): T;
|
|
317
412
|
|
|
413
|
+
/**
|
|
414
|
+
* Get current configuration
|
|
415
|
+
*/
|
|
416
|
+
export declare function getPermissionConfig(): PermissionConfig | null;
|
|
417
|
+
|
|
318
418
|
/**
|
|
319
419
|
* Get current Vue version
|
|
320
420
|
*/
|
|
321
|
-
export declare function getVueVersion():
|
|
421
|
+
export declare function getVueVersion(): VueVersion;
|
|
422
|
+
|
|
423
|
+
/**
|
|
424
|
+
* Directive binding value type
|
|
425
|
+
*/
|
|
426
|
+
export declare type HoverBinding = HoverHandler | HoverOptions;
|
|
427
|
+
|
|
428
|
+
/**
|
|
429
|
+
* Hover state change handler
|
|
430
|
+
*/
|
|
431
|
+
export declare type HoverHandler = (isHovering: boolean, event: MouseEvent) => void;
|
|
432
|
+
|
|
433
|
+
/**
|
|
434
|
+
* Hover directive options
|
|
435
|
+
*/
|
|
436
|
+
export declare interface HoverOptions {
|
|
437
|
+
/**
|
|
438
|
+
* Callback when hover state changes
|
|
439
|
+
*/
|
|
440
|
+
handler?: HoverHandler;
|
|
441
|
+
/**
|
|
442
|
+
* Callback when mouse enters
|
|
443
|
+
*/
|
|
444
|
+
onEnter?: (event: MouseEvent) => void;
|
|
445
|
+
/**
|
|
446
|
+
* Callback when mouse leaves
|
|
447
|
+
*/
|
|
448
|
+
onLeave?: (event: MouseEvent) => void;
|
|
449
|
+
/**
|
|
450
|
+
* CSS class to add when hovering
|
|
451
|
+
* @default 'v-hover'
|
|
452
|
+
*/
|
|
453
|
+
class?: string;
|
|
454
|
+
/**
|
|
455
|
+
* Whether to disable
|
|
456
|
+
* @default false
|
|
457
|
+
*/
|
|
458
|
+
disabled?: boolean;
|
|
459
|
+
/**
|
|
460
|
+
* Delay in milliseconds before triggering enter
|
|
461
|
+
* @default 0
|
|
462
|
+
*/
|
|
463
|
+
enterDelay?: number;
|
|
464
|
+
/**
|
|
465
|
+
* Delay in milliseconds before triggering leave
|
|
466
|
+
* @default 0
|
|
467
|
+
*/
|
|
468
|
+
leaveDelay?: number;
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
export declare type ImagePreviewBinding = string | ImagePreviewOptions;
|
|
472
|
+
|
|
473
|
+
/**
|
|
474
|
+
* Image preview options
|
|
475
|
+
*/
|
|
476
|
+
export declare interface ImagePreviewOptions {
|
|
477
|
+
/** Image source URL */
|
|
478
|
+
src?: string;
|
|
479
|
+
/** Preview image source URL (higher resolution) */
|
|
480
|
+
previewSrc?: string;
|
|
481
|
+
/** Alt text for accessibility */
|
|
482
|
+
alt?: string;
|
|
483
|
+
/** Whether preview is disabled @default false */
|
|
484
|
+
disabled?: boolean;
|
|
485
|
+
/** Close on click outside @default true */
|
|
486
|
+
closeOnClickOutside?: boolean;
|
|
487
|
+
/** Close on escape key @default true */
|
|
488
|
+
closeOnEsc?: boolean;
|
|
489
|
+
/** Show close button @default true */
|
|
490
|
+
showCloseButton?: boolean;
|
|
491
|
+
/** Z-index of the preview overlay @default 9999 */
|
|
492
|
+
zIndex?: number;
|
|
493
|
+
/** Custom class for the preview overlay */
|
|
494
|
+
class?: string;
|
|
495
|
+
/** Enable pinch zoom on mobile @default true */
|
|
496
|
+
enablePinchZoom?: boolean;
|
|
497
|
+
/** Enable double tap to zoom @default true */
|
|
498
|
+
enableDoubleTap?: boolean;
|
|
499
|
+
/** Enable swipe up to close @default true */
|
|
500
|
+
enableSwipeClose?: boolean;
|
|
501
|
+
/** Show zoom indicator @default true */
|
|
502
|
+
showZoomIndicator?: boolean;
|
|
503
|
+
/** Minimum zoom scale @default 0.5 */
|
|
504
|
+
minScale?: number;
|
|
505
|
+
/** Maximum zoom scale @default 5 */
|
|
506
|
+
maxScale?: number;
|
|
507
|
+
/** Callback when preview opens */
|
|
508
|
+
onOpen?: () => void;
|
|
509
|
+
/** Callback when preview closes */
|
|
510
|
+
onClose?: () => void;
|
|
511
|
+
}
|
|
512
|
+
|
|
513
|
+
/**
|
|
514
|
+
* Directive binding value type
|
|
515
|
+
*/
|
|
516
|
+
export declare type InfiniteScrollBinding = InfiniteScrollHandler | InfiniteScrollOptions;
|
|
517
|
+
|
|
518
|
+
/**
|
|
519
|
+
* Infinite scroll handler
|
|
520
|
+
*/
|
|
521
|
+
export declare type InfiniteScrollHandler = () => void | Promise<void>;
|
|
522
|
+
|
|
523
|
+
/**
|
|
524
|
+
* Infinite scroll directive options
|
|
525
|
+
*/
|
|
526
|
+
export declare interface InfiniteScrollOptions {
|
|
527
|
+
/**
|
|
528
|
+
* Handler to call when scrolling to bottom
|
|
529
|
+
* @required
|
|
530
|
+
*/
|
|
531
|
+
handler: InfiniteScrollHandler;
|
|
532
|
+
/**
|
|
533
|
+
* Distance from bottom to trigger load (in pixels)
|
|
534
|
+
* @default 0
|
|
535
|
+
*/
|
|
536
|
+
distance?: number;
|
|
537
|
+
/**
|
|
538
|
+
* Whether to disable
|
|
539
|
+
* @default false
|
|
540
|
+
*/
|
|
541
|
+
disabled?: boolean;
|
|
542
|
+
/**
|
|
543
|
+
* Whether currently loading
|
|
544
|
+
* @default false
|
|
545
|
+
*/
|
|
546
|
+
loading?: boolean;
|
|
547
|
+
/**
|
|
548
|
+
* Whether to use IntersectionObserver (more efficient)
|
|
549
|
+
* @default true
|
|
550
|
+
*/
|
|
551
|
+
useIntersection?: boolean;
|
|
552
|
+
/**
|
|
553
|
+
* Throttle time in milliseconds
|
|
554
|
+
* @default 200
|
|
555
|
+
*/
|
|
556
|
+
throttle?: number;
|
|
557
|
+
/**
|
|
558
|
+
* Custom scroll container
|
|
559
|
+
*/
|
|
560
|
+
container?: string | Element | null;
|
|
561
|
+
/**
|
|
562
|
+
* Callback when load starts
|
|
563
|
+
*/
|
|
564
|
+
onLoadStart?: () => void;
|
|
565
|
+
/**
|
|
566
|
+
* Callback when load completes
|
|
567
|
+
*/
|
|
568
|
+
onLoadEnd?: () => void;
|
|
569
|
+
/**
|
|
570
|
+
* Callback on error
|
|
571
|
+
*/
|
|
572
|
+
onError?: (error: Error) => void;
|
|
573
|
+
}
|
|
574
|
+
|
|
575
|
+
/**
|
|
576
|
+
* Directive binding value type
|
|
577
|
+
*/
|
|
578
|
+
export declare type IntersectBinding = IntersectHandler | IntersectOptions;
|
|
579
|
+
|
|
580
|
+
/**
|
|
581
|
+
* Intersect event handler
|
|
582
|
+
*/
|
|
583
|
+
export declare type IntersectHandler = (entry: IntersectionObserverEntry, observer: IntersectionObserver) => void;
|
|
584
|
+
|
|
585
|
+
/**
|
|
586
|
+
* Intersect directive options
|
|
587
|
+
*/
|
|
588
|
+
export declare interface IntersectOptions {
|
|
589
|
+
/** Callback when element intersects */
|
|
590
|
+
handler?: IntersectHandler;
|
|
591
|
+
/** Callback when element enters viewport */
|
|
592
|
+
onEnter?: (entry: IntersectionObserverEntry, observer: IntersectionObserver) => void;
|
|
593
|
+
/** Callback when element leaves viewport */
|
|
594
|
+
onLeave?: (entry: IntersectionObserverEntry, observer: IntersectionObserver) => void;
|
|
595
|
+
/** Callback when element changes intersection */
|
|
596
|
+
onChange?: (isIntersecting: boolean, entry: IntersectionObserverEntry) => void;
|
|
597
|
+
/** Root element for intersection @default null (viewport) */
|
|
598
|
+
root?: Element | null;
|
|
599
|
+
/** Margin around the root @default '0px' */
|
|
600
|
+
rootMargin?: string;
|
|
601
|
+
/** Threshold(s) at which to trigger callback @default 0 */
|
|
602
|
+
threshold?: number | number[];
|
|
603
|
+
/** Whether to disable @default false */
|
|
604
|
+
disabled?: boolean;
|
|
605
|
+
/** Whether to trigger only once @default false */
|
|
606
|
+
once?: boolean;
|
|
607
|
+
}
|
|
322
608
|
|
|
323
609
|
/**
|
|
324
610
|
* Check if value is an array
|
|
@@ -371,103 +657,941 @@ export declare const isSSR: () => boolean;
|
|
|
371
657
|
export declare function isString(value: unknown): value is string;
|
|
372
658
|
|
|
373
659
|
/**
|
|
374
|
-
* Check if Vue 2
|
|
375
|
-
*/
|
|
376
|
-
export declare const isVue2: () => boolean;
|
|
377
|
-
|
|
378
|
-
/**
|
|
379
|
-
* Check if Vue 3
|
|
660
|
+
* Check if Vue 2 (includes 2.7)
|
|
380
661
|
*/
|
|
381
|
-
export declare
|
|
662
|
+
export declare function isVue2(): boolean;
|
|
382
663
|
|
|
383
664
|
/**
|
|
384
|
-
*
|
|
385
|
-
* Supports formats: "300" | "300ms" | "1s"
|
|
665
|
+
* Check if Vue 2.7 (has built-in Composition API support)
|
|
386
666
|
*/
|
|
387
|
-
export declare function
|
|
667
|
+
export declare function isVue27(): boolean;
|
|
388
668
|
|
|
389
669
|
/**
|
|
390
|
-
*
|
|
670
|
+
* Check if Vue 3
|
|
391
671
|
*/
|
|
392
|
-
export declare function
|
|
672
|
+
export declare function isVue3(): boolean;
|
|
393
673
|
|
|
394
674
|
/**
|
|
395
|
-
*
|
|
675
|
+
* Directive binding value type
|
|
396
676
|
*/
|
|
397
|
-
export declare
|
|
677
|
+
export declare type LazyBinding = string | LazyOptions;
|
|
398
678
|
|
|
399
679
|
/**
|
|
400
|
-
*
|
|
680
|
+
* Lazy directive options
|
|
401
681
|
*/
|
|
402
|
-
export declare
|
|
682
|
+
export declare interface LazyOptions {
|
|
683
|
+
/**
|
|
684
|
+
* Image source URL
|
|
685
|
+
*/
|
|
686
|
+
src?: string;
|
|
687
|
+
/**
|
|
688
|
+
* Placeholder image URL
|
|
689
|
+
*/
|
|
690
|
+
placeholder?: string;
|
|
691
|
+
/**
|
|
692
|
+
* Error image URL (shown when loading fails)
|
|
693
|
+
*/
|
|
694
|
+
error?: string;
|
|
695
|
+
/**
|
|
696
|
+
* Preload distance in pixels
|
|
697
|
+
* @default 0
|
|
698
|
+
*/
|
|
699
|
+
preload?: number;
|
|
700
|
+
/**
|
|
701
|
+
* Callback when image loads successfully
|
|
702
|
+
*/
|
|
703
|
+
onLoad?: (el: HTMLElement) => void;
|
|
704
|
+
/**
|
|
705
|
+
* Callback when image fails to load
|
|
706
|
+
*/
|
|
707
|
+
onError?: (el: HTMLElement, error: Error) => void;
|
|
708
|
+
/**
|
|
709
|
+
* Number of retry attempts
|
|
710
|
+
* @default 1
|
|
711
|
+
*/
|
|
712
|
+
attempt?: number;
|
|
713
|
+
/**
|
|
714
|
+
* Filter function, return false to skip loading
|
|
715
|
+
*/
|
|
716
|
+
filter?: (src: string) => boolean;
|
|
717
|
+
/**
|
|
718
|
+
* Custom IntersectionObserver
|
|
719
|
+
*/
|
|
720
|
+
observer?: IntersectionObserver;
|
|
721
|
+
/**
|
|
722
|
+
* Whether to disable lazy loading
|
|
723
|
+
* @default false
|
|
724
|
+
*/
|
|
725
|
+
disabled?: boolean;
|
|
726
|
+
}
|
|
403
727
|
|
|
404
728
|
/**
|
|
405
|
-
*
|
|
729
|
+
* Lazy loading state
|
|
406
730
|
*/
|
|
407
|
-
export declare
|
|
731
|
+
export declare type LazyState = 'pending' | 'loading' | 'loaded' | 'error';
|
|
408
732
|
|
|
409
733
|
/**
|
|
410
|
-
*
|
|
734
|
+
* Directive binding value type
|
|
411
735
|
*/
|
|
412
|
-
export declare
|
|
736
|
+
export declare type LoadingBinding = boolean | LoadingOptions;
|
|
413
737
|
|
|
414
738
|
/**
|
|
415
|
-
*
|
|
739
|
+
* Loading directive options
|
|
416
740
|
*/
|
|
417
|
-
export declare
|
|
741
|
+
export declare interface LoadingOptions {
|
|
742
|
+
/**
|
|
743
|
+
* Loading state
|
|
744
|
+
* @default true
|
|
745
|
+
*/
|
|
746
|
+
value?: boolean;
|
|
747
|
+
/**
|
|
748
|
+
* Loading text to display
|
|
749
|
+
*/
|
|
750
|
+
text?: string;
|
|
751
|
+
/**
|
|
752
|
+
* CSS class for loading overlay
|
|
753
|
+
* @default 'v-loading'
|
|
754
|
+
*/
|
|
755
|
+
loadingClass?: string;
|
|
756
|
+
/**
|
|
757
|
+
* CSS class for loading spinner
|
|
758
|
+
* @default 'v-loading__spinner'
|
|
759
|
+
*/
|
|
760
|
+
spinnerClass?: string;
|
|
761
|
+
/**
|
|
762
|
+
* CSS class for loading text
|
|
763
|
+
* @default 'v-loading__text'
|
|
764
|
+
*/
|
|
765
|
+
textClass?: string;
|
|
766
|
+
/**
|
|
767
|
+
* Custom spinner HTML
|
|
768
|
+
*/
|
|
769
|
+
spinner?: string;
|
|
770
|
+
/**
|
|
771
|
+
* Background color
|
|
772
|
+
* @default 'rgba(255, 255, 255, 0.9)'
|
|
773
|
+
*/
|
|
774
|
+
background?: string;
|
|
775
|
+
/**
|
|
776
|
+
* Whether to lock scroll while loading
|
|
777
|
+
* @default false
|
|
778
|
+
*/
|
|
779
|
+
lock?: boolean;
|
|
780
|
+
/**
|
|
781
|
+
* Whether to disable
|
|
782
|
+
* @default false
|
|
783
|
+
*/
|
|
784
|
+
disabled?: boolean;
|
|
785
|
+
}
|
|
418
786
|
|
|
419
787
|
/**
|
|
420
788
|
* Directive binding value type
|
|
421
789
|
*/
|
|
422
|
-
export declare type
|
|
423
|
-
|
|
424
|
-
/**
|
|
425
|
-
* Throttled function type
|
|
426
|
-
*/
|
|
427
|
-
export declare interface ThrottledFunction<T extends (...args: any[]) => any> {
|
|
428
|
-
(...args: Parameters<T>): void;
|
|
429
|
-
cancel: () => void;
|
|
430
|
-
}
|
|
790
|
+
export declare type LongPressBinding = LongPressHandler | LongPressOptions;
|
|
431
791
|
|
|
432
792
|
/**
|
|
433
|
-
*
|
|
793
|
+
* Long press handler
|
|
434
794
|
*/
|
|
435
|
-
export declare
|
|
436
|
-
leading?: boolean;
|
|
437
|
-
trailing?: boolean;
|
|
438
|
-
}): ((...args: Parameters<T>) => void) & {
|
|
439
|
-
cancel: () => void;
|
|
440
|
-
};
|
|
795
|
+
export declare type LongPressHandler = (event: MouseEvent | TouchEvent) => void;
|
|
441
796
|
|
|
442
797
|
/**
|
|
443
|
-
*
|
|
798
|
+
* Long press directive options
|
|
444
799
|
*/
|
|
445
|
-
export declare interface
|
|
800
|
+
export declare interface LongPressOptions {
|
|
446
801
|
/**
|
|
447
|
-
*
|
|
802
|
+
* Callback when long press is triggered
|
|
803
|
+
* @required
|
|
448
804
|
*/
|
|
449
|
-
handler:
|
|
805
|
+
handler: LongPressHandler;
|
|
450
806
|
/**
|
|
451
|
-
*
|
|
452
|
-
* @default
|
|
807
|
+
* Duration in milliseconds to trigger long press
|
|
808
|
+
* @default 500
|
|
453
809
|
*/
|
|
454
|
-
|
|
810
|
+
duration?: number;
|
|
455
811
|
/**
|
|
456
|
-
* Whether to
|
|
457
|
-
* @default
|
|
812
|
+
* Whether to disable
|
|
813
|
+
* @default false
|
|
458
814
|
*/
|
|
459
|
-
|
|
815
|
+
disabled?: boolean;
|
|
460
816
|
/**
|
|
461
|
-
*
|
|
817
|
+
* Maximum movement distance before canceling
|
|
818
|
+
* @default 10
|
|
819
|
+
*/
|
|
820
|
+
distance?: number;
|
|
821
|
+
/**
|
|
822
|
+
* Callback when long press starts (on mousedown/touchstart)
|
|
823
|
+
*/
|
|
824
|
+
onStart?: (event: MouseEvent | TouchEvent) => void;
|
|
825
|
+
/**
|
|
826
|
+
* Callback when long press is canceled
|
|
827
|
+
*/
|
|
828
|
+
onCancel?: (event: MouseEvent | TouchEvent) => void;
|
|
829
|
+
/**
|
|
830
|
+
* Callback on each tick during long press
|
|
831
|
+
*/
|
|
832
|
+
onTick?: (remaining: number) => void;
|
|
833
|
+
/**
|
|
834
|
+
* Interval for onTick callback in milliseconds
|
|
835
|
+
* @default 100
|
|
836
|
+
*/
|
|
837
|
+
tickInterval?: number;
|
|
838
|
+
/**
|
|
839
|
+
* Whether to prevent default behavior
|
|
462
840
|
* @default true
|
|
463
841
|
*/
|
|
464
|
-
|
|
842
|
+
prevent?: boolean;
|
|
843
|
+
/**
|
|
844
|
+
* Whether to stop propagation
|
|
845
|
+
* @default false
|
|
846
|
+
*/
|
|
847
|
+
stop?: boolean;
|
|
465
848
|
}
|
|
466
849
|
|
|
467
850
|
/**
|
|
468
|
-
*
|
|
469
|
-
|
|
470
|
-
|
|
851
|
+
* Directive binding value type
|
|
852
|
+
*/
|
|
853
|
+
export declare type LowercaseBinding = boolean | LowercaseOptions;
|
|
854
|
+
|
|
855
|
+
/**
|
|
856
|
+
* Lowercase directive options
|
|
857
|
+
*/
|
|
858
|
+
export declare interface LowercaseOptions {
|
|
859
|
+
/**
|
|
860
|
+
* Transform only the first character
|
|
861
|
+
* @default false
|
|
862
|
+
*/
|
|
863
|
+
first?: boolean;
|
|
864
|
+
/**
|
|
865
|
+
* Transform on input event (for input elements)
|
|
866
|
+
* @default true
|
|
867
|
+
*/
|
|
868
|
+
onInput?: boolean;
|
|
869
|
+
}
|
|
870
|
+
|
|
871
|
+
export declare type MaskBinding = string | MaskOptions;
|
|
872
|
+
|
|
873
|
+
/**
|
|
874
|
+
* Mask directive options
|
|
875
|
+
*/
|
|
876
|
+
export declare interface MaskOptions {
|
|
877
|
+
/** Mask pattern: # digit, A letter, N alphanumeric, X any, others as literals */
|
|
878
|
+
mask: string;
|
|
879
|
+
/** Placeholder character @default '_' */
|
|
880
|
+
placeholder?: string;
|
|
881
|
+
/** Show mask placeholder on focus @default true */
|
|
882
|
+
showPlaceholder?: boolean;
|
|
883
|
+
/** Show mask on blur @default false */
|
|
884
|
+
showMaskOnBlur?: boolean;
|
|
885
|
+
/** Clear incomplete on blur @default false */
|
|
886
|
+
clearIncomplete?: boolean;
|
|
887
|
+
/** Disable @default false */
|
|
888
|
+
disabled?: boolean;
|
|
889
|
+
/** Callback when value changes */
|
|
890
|
+
onChange?: (value: string, rawValue: string) => void;
|
|
891
|
+
/** Callback when mask is complete */
|
|
892
|
+
onComplete?: (value: string) => void;
|
|
893
|
+
}
|
|
894
|
+
|
|
895
|
+
export declare type MoneyBinding = string | MoneyOptions;
|
|
896
|
+
|
|
897
|
+
/**
|
|
898
|
+
* Money directive options
|
|
899
|
+
*/
|
|
900
|
+
export declare interface MoneyOptions extends NumberFormatOptions {
|
|
901
|
+
/** Currency symbol @default '$' */
|
|
902
|
+
symbol?: string;
|
|
903
|
+
/** Symbol position @default 'before' */
|
|
904
|
+
symbolPosition?: 'before' | 'after';
|
|
905
|
+
}
|
|
906
|
+
|
|
907
|
+
/**
|
|
908
|
+
* Directive binding value type
|
|
909
|
+
*/
|
|
910
|
+
export declare type MutationBinding = MutationHandler | MutationOptions;
|
|
911
|
+
|
|
912
|
+
/**
|
|
913
|
+
* Mutation change handler
|
|
914
|
+
*/
|
|
915
|
+
export declare type MutationHandler = (mutations: MutationRecord[], observer: MutationObserver) => void;
|
|
916
|
+
|
|
917
|
+
/**
|
|
918
|
+
* Mutation directive options
|
|
919
|
+
*/
|
|
920
|
+
export declare interface MutationOptions {
|
|
921
|
+
/**
|
|
922
|
+
* Callback when mutations occur
|
|
923
|
+
* @required
|
|
924
|
+
*/
|
|
925
|
+
handler: MutationHandler;
|
|
926
|
+
/**
|
|
927
|
+
* Whether to observe attribute changes
|
|
928
|
+
* @default false
|
|
929
|
+
*/
|
|
930
|
+
attributes?: boolean;
|
|
931
|
+
/**
|
|
932
|
+
* Specific attributes to observe
|
|
933
|
+
*/
|
|
934
|
+
attributeFilter?: string[];
|
|
935
|
+
/**
|
|
936
|
+
* Whether to observe child node additions/removals
|
|
937
|
+
* @default true
|
|
938
|
+
*/
|
|
939
|
+
childList?: boolean;
|
|
940
|
+
/**
|
|
941
|
+
* Whether to observe all descendants, not just direct children
|
|
942
|
+
* @default false
|
|
943
|
+
*/
|
|
944
|
+
subtree?: boolean;
|
|
945
|
+
/**
|
|
946
|
+
* Whether to observe character data changes
|
|
947
|
+
* @default false
|
|
948
|
+
*/
|
|
949
|
+
characterData?: boolean;
|
|
950
|
+
/**
|
|
951
|
+
* Whether to record old attribute values
|
|
952
|
+
* @default false
|
|
953
|
+
*/
|
|
954
|
+
attributeOldValue?: boolean;
|
|
955
|
+
/**
|
|
956
|
+
* Whether to record old character data
|
|
957
|
+
* @default false
|
|
958
|
+
*/
|
|
959
|
+
characterDataOldValue?: boolean;
|
|
960
|
+
/**
|
|
961
|
+
* Whether to disable
|
|
962
|
+
* @default false
|
|
963
|
+
*/
|
|
964
|
+
disabled?: boolean;
|
|
965
|
+
}
|
|
966
|
+
|
|
967
|
+
export declare type NumberBinding = number | NumberOptions;
|
|
968
|
+
|
|
969
|
+
/**
|
|
970
|
+
* Shared utilities for number and money formatting directives
|
|
971
|
+
*/
|
|
972
|
+
/**
|
|
973
|
+
* Base options shared by number and money formatting
|
|
974
|
+
*/
|
|
975
|
+
declare interface NumberFormatOptions {
|
|
976
|
+
/** Number of decimal places */
|
|
977
|
+
precision?: number;
|
|
978
|
+
/** Thousands separator */
|
|
979
|
+
separator?: string;
|
|
980
|
+
/** Decimal separator */
|
|
981
|
+
decimal?: string;
|
|
982
|
+
/** Whether to allow negative numbers @default true */
|
|
983
|
+
allowNegative?: boolean;
|
|
984
|
+
/** Minimum value */
|
|
985
|
+
min?: number;
|
|
986
|
+
/** Maximum value */
|
|
987
|
+
max?: number;
|
|
988
|
+
}
|
|
989
|
+
|
|
990
|
+
/**
|
|
991
|
+
* Number directive options
|
|
992
|
+
*/
|
|
993
|
+
export declare interface NumberOptions extends NumberFormatOptions {
|
|
994
|
+
/** Prefix string (e.g., '$') */
|
|
995
|
+
prefix?: string;
|
|
996
|
+
/** Suffix string (e.g., '%') */
|
|
997
|
+
suffix?: string;
|
|
998
|
+
}
|
|
999
|
+
|
|
1000
|
+
/**
|
|
1001
|
+
* Parse time argument
|
|
1002
|
+
* Supports formats: "300" | "300ms" | "1s"
|
|
1003
|
+
*/
|
|
1004
|
+
export declare function parseTime(arg?: string): number | null;
|
|
1005
|
+
|
|
1006
|
+
/**
|
|
1007
|
+
* Permission action mode
|
|
1008
|
+
*/
|
|
1009
|
+
export declare type PermissionAction = 'remove' | 'disable' | 'hide';
|
|
1010
|
+
|
|
1011
|
+
/**
|
|
1012
|
+
* Directive binding value type
|
|
1013
|
+
*/
|
|
1014
|
+
export declare type PermissionBinding = string | string[] | PermissionOptions;
|
|
1015
|
+
|
|
1016
|
+
/**
|
|
1017
|
+
* Permission configuration
|
|
1018
|
+
*/
|
|
1019
|
+
export declare interface PermissionConfig {
|
|
1020
|
+
/** Get current user's permissions */
|
|
1021
|
+
getPermissions: () => string[];
|
|
1022
|
+
/** Get current user's roles */
|
|
1023
|
+
getRoles?: () => string[];
|
|
1024
|
+
/** Role to permission mapping */
|
|
1025
|
+
roleMap?: Record<string, string[]>;
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
/**
|
|
1029
|
+
* Permission check mode
|
|
1030
|
+
*/
|
|
1031
|
+
declare type PermissionMode = 'some' | 'every';
|
|
1032
|
+
|
|
1033
|
+
/**
|
|
1034
|
+
* Permission directive options
|
|
1035
|
+
*/
|
|
1036
|
+
export declare interface PermissionOptions {
|
|
1037
|
+
/** Permission value(s) to check */
|
|
1038
|
+
value: string | string[];
|
|
1039
|
+
/** Logic for multiple permissions: 'some' (OR) or 'every' (AND). Default: 'some' */
|
|
1040
|
+
mode?: PermissionMode;
|
|
1041
|
+
/** Action when permission denied. Default: 'remove' */
|
|
1042
|
+
action?: PermissionAction;
|
|
1043
|
+
/** Custom permission check function */
|
|
1044
|
+
check?: (permission: string | string[], mode: PermissionMode) => boolean;
|
|
1045
|
+
/** Callback when permission state changes */
|
|
1046
|
+
onChange?: (hasPermission: boolean) => void;
|
|
1047
|
+
}
|
|
1048
|
+
|
|
1049
|
+
/**
|
|
1050
|
+
* Reset Vue version (useful for testing)
|
|
1051
|
+
*/
|
|
1052
|
+
export declare function resetVueVersion(): void;
|
|
1053
|
+
|
|
1054
|
+
/**
|
|
1055
|
+
* Directive binding value type
|
|
1056
|
+
*/
|
|
1057
|
+
export declare type ResizeBinding = ResizeHandler | ResizeOptions;
|
|
1058
|
+
|
|
1059
|
+
/**
|
|
1060
|
+
* Resize event handler
|
|
1061
|
+
*/
|
|
1062
|
+
export declare type ResizeHandler = (entry: ResizeObserverEntry) => void;
|
|
1063
|
+
|
|
1064
|
+
/**
|
|
1065
|
+
* Resize information
|
|
1066
|
+
*/
|
|
1067
|
+
export declare interface ResizeInfo {
|
|
1068
|
+
/** New width */
|
|
1069
|
+
width: number;
|
|
1070
|
+
/** New height */
|
|
1071
|
+
height: number;
|
|
1072
|
+
/** Content rect */
|
|
1073
|
+
contentRect: DOMRectReadOnly;
|
|
1074
|
+
/** Border box size */
|
|
1075
|
+
borderBoxSize: ReadonlyArray<ResizeObserverSize>;
|
|
1076
|
+
/** Content box size */
|
|
1077
|
+
contentBoxSize: ReadonlyArray<ResizeObserverSize>;
|
|
1078
|
+
/** Device pixel content box size */
|
|
1079
|
+
devicePixelContentBoxSize: ReadonlyArray<ResizeObserverSize>;
|
|
1080
|
+
}
|
|
1081
|
+
|
|
1082
|
+
/**
|
|
1083
|
+
* Resize directive options
|
|
1084
|
+
*/
|
|
1085
|
+
export declare interface ResizeOptions {
|
|
1086
|
+
/**
|
|
1087
|
+
* Resize event handler
|
|
1088
|
+
* @required
|
|
1089
|
+
*/
|
|
1090
|
+
handler: ResizeHandler;
|
|
1091
|
+
/**
|
|
1092
|
+
* Whether to disable
|
|
1093
|
+
* @default false
|
|
1094
|
+
*/
|
|
1095
|
+
disabled?: boolean;
|
|
1096
|
+
/**
|
|
1097
|
+
* Whether to use box model
|
|
1098
|
+
* - 'content-box': size of content area
|
|
1099
|
+
* - 'border-box': size of border box
|
|
1100
|
+
* - 'device-pixel-content-box': size in device pixels
|
|
1101
|
+
* @default 'content-box'
|
|
1102
|
+
*/
|
|
1103
|
+
box?: 'content-box' | 'border-box' | 'device-pixel-content-box';
|
|
1104
|
+
/**
|
|
1105
|
+
* Debounce time in milliseconds
|
|
1106
|
+
* @default 0 (no debounce)
|
|
1107
|
+
*/
|
|
1108
|
+
debounce?: number;
|
|
1109
|
+
/**
|
|
1110
|
+
* Callback for browsers without ResizeObserver (uses object fallback)
|
|
1111
|
+
*/
|
|
1112
|
+
onFallback?: (info: ResizeInfo) => void;
|
|
1113
|
+
}
|
|
1114
|
+
|
|
1115
|
+
/**
|
|
1116
|
+
* Directive binding value type
|
|
1117
|
+
*/
|
|
1118
|
+
export declare type RippleBinding = boolean | string | RippleOptions;
|
|
1119
|
+
|
|
1120
|
+
/**
|
|
1121
|
+
* Ripple directive options
|
|
1122
|
+
*/
|
|
1123
|
+
export declare interface RippleOptions {
|
|
1124
|
+
/**
|
|
1125
|
+
* Ripple color
|
|
1126
|
+
* @default 'currentColor'
|
|
1127
|
+
*/
|
|
1128
|
+
color?: string;
|
|
1129
|
+
/**
|
|
1130
|
+
* Ripple duration in milliseconds
|
|
1131
|
+
* @default 600
|
|
1132
|
+
*/
|
|
1133
|
+
duration?: number;
|
|
1134
|
+
/**
|
|
1135
|
+
* Whether to disable ripple
|
|
1136
|
+
* @default false
|
|
1137
|
+
*/
|
|
1138
|
+
disabled?: boolean;
|
|
1139
|
+
/**
|
|
1140
|
+
* Initial scale of ripple
|
|
1141
|
+
* @default 0
|
|
1142
|
+
*/
|
|
1143
|
+
initialScale?: number;
|
|
1144
|
+
/**
|
|
1145
|
+
* Final scale of ripple
|
|
1146
|
+
* @default 2
|
|
1147
|
+
*/
|
|
1148
|
+
finalScale?: number;
|
|
1149
|
+
}
|
|
1150
|
+
|
|
1151
|
+
/**
|
|
1152
|
+
* Directive binding value type
|
|
1153
|
+
*/
|
|
1154
|
+
export declare type SanitizeBinding = boolean | SanitizeOptions;
|
|
1155
|
+
|
|
1156
|
+
/**
|
|
1157
|
+
* Sanitize handler
|
|
1158
|
+
*/
|
|
1159
|
+
export declare type SanitizeHandler = (value: string) => string;
|
|
1160
|
+
|
|
1161
|
+
/**
|
|
1162
|
+
* Sanitize directive options
|
|
1163
|
+
*/
|
|
1164
|
+
export declare interface SanitizeOptions {
|
|
1165
|
+
/**
|
|
1166
|
+
* Tags to allow (whitelist)
|
|
1167
|
+
* @default []
|
|
1168
|
+
*/
|
|
1169
|
+
allowedTags?: string[];
|
|
1170
|
+
/**
|
|
1171
|
+
* Attributes to allow (whitelist)
|
|
1172
|
+
* @default []
|
|
1173
|
+
*/
|
|
1174
|
+
allowedAttributes?: string[];
|
|
1175
|
+
/**
|
|
1176
|
+
* Whether to allow data URLs
|
|
1177
|
+
* @default false
|
|
1178
|
+
*/
|
|
1179
|
+
allowDataUrls?: boolean;
|
|
1180
|
+
/**
|
|
1181
|
+
* Whether to allow inline styles
|
|
1182
|
+
* @default false
|
|
1183
|
+
*/
|
|
1184
|
+
allowStyles?: boolean;
|
|
1185
|
+
/**
|
|
1186
|
+
* Whether to allow class attribute
|
|
1187
|
+
* @default false
|
|
1188
|
+
*/
|
|
1189
|
+
allowClass?: boolean;
|
|
1190
|
+
/**
|
|
1191
|
+
* Whether to allow id attribute
|
|
1192
|
+
* @default false
|
|
1193
|
+
*/
|
|
1194
|
+
allowId?: boolean;
|
|
1195
|
+
/**
|
|
1196
|
+
* Custom sanitize function
|
|
1197
|
+
*/
|
|
1198
|
+
handler?: SanitizeHandler;
|
|
1199
|
+
/**
|
|
1200
|
+
* Whether to disable
|
|
1201
|
+
* @default false
|
|
1202
|
+
*/
|
|
1203
|
+
disabled?: boolean;
|
|
1204
|
+
/**
|
|
1205
|
+
* Whether to sanitize on update
|
|
1206
|
+
* @default true
|
|
1207
|
+
*/
|
|
1208
|
+
sanitizeOnUpdate?: boolean;
|
|
1209
|
+
}
|
|
1210
|
+
|
|
1211
|
+
/**
|
|
1212
|
+
* Directive binding value type
|
|
1213
|
+
*/
|
|
1214
|
+
export declare type ScrollBinding = ScrollHandler | ScrollOptions_2;
|
|
1215
|
+
|
|
1216
|
+
/**
|
|
1217
|
+
* Scroll event handler
|
|
1218
|
+
*/
|
|
1219
|
+
export declare type ScrollHandler = (event: Event, info: ScrollInfo) => void;
|
|
1220
|
+
|
|
1221
|
+
/**
|
|
1222
|
+
* Scroll information
|
|
1223
|
+
*/
|
|
1224
|
+
export declare interface ScrollInfo {
|
|
1225
|
+
/** Current scroll left position */
|
|
1226
|
+
scrollLeft: number;
|
|
1227
|
+
/** Current scroll top position */
|
|
1228
|
+
scrollTop: number;
|
|
1229
|
+
/** Maximum scroll left */
|
|
1230
|
+
scrollLeftMax: number;
|
|
1231
|
+
/** Maximum scroll top */
|
|
1232
|
+
scrollTopMax: number;
|
|
1233
|
+
/** Horizontal scroll progress (0-1) */
|
|
1234
|
+
progressX: number;
|
|
1235
|
+
/** Vertical scroll progress (0-1) */
|
|
1236
|
+
progressY: number;
|
|
1237
|
+
/** Direction of horizontal scroll (-1: left, 1: right, 0: none) */
|
|
1238
|
+
directionX: -1 | 0 | 1;
|
|
1239
|
+
/** Direction of vertical scroll (-1: up, 1: down, 0: none) */
|
|
1240
|
+
directionY: -1 | 0 | 1;
|
|
1241
|
+
/** Scroll container element or window */
|
|
1242
|
+
container: Element | Window;
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
/**
|
|
1246
|
+
* Scroll directive options
|
|
1247
|
+
*/
|
|
1248
|
+
declare interface ScrollOptions_2 {
|
|
1249
|
+
/**
|
|
1250
|
+
* Scroll event handler
|
|
1251
|
+
* @required
|
|
1252
|
+
*/
|
|
1253
|
+
handler: ScrollHandler;
|
|
1254
|
+
/**
|
|
1255
|
+
* Whether to disable
|
|
1256
|
+
* @default false
|
|
1257
|
+
*/
|
|
1258
|
+
disabled?: boolean;
|
|
1259
|
+
/**
|
|
1260
|
+
* Whether to use passive event listener
|
|
1261
|
+
* @default true
|
|
1262
|
+
*/
|
|
1263
|
+
passive?: boolean;
|
|
1264
|
+
/**
|
|
1265
|
+
* Throttle time in milliseconds
|
|
1266
|
+
* @default 0 (no throttle)
|
|
1267
|
+
*/
|
|
1268
|
+
throttle?: number;
|
|
1269
|
+
/**
|
|
1270
|
+
* Custom scroll container selector or element
|
|
1271
|
+
*/
|
|
1272
|
+
container?: string | Element | Window | null;
|
|
1273
|
+
}
|
|
1274
|
+
export { ScrollOptions_2 as ScrollOptions }
|
|
1275
|
+
|
|
1276
|
+
/**
|
|
1277
|
+
* Set nested property value by path
|
|
1278
|
+
*/
|
|
1279
|
+
export declare function set(obj: Record<string, any>, path: string, value: any): void;
|
|
1280
|
+
|
|
1281
|
+
/**
|
|
1282
|
+
* Set Vue version explicitly (for cases where auto-detection fails)
|
|
1283
|
+
*/
|
|
1284
|
+
export declare function setVueVersion(version: VueVersion): void;
|
|
1285
|
+
|
|
1286
|
+
export declare type StickyBinding = boolean | number | StickyOptions;
|
|
1287
|
+
|
|
1288
|
+
/**
|
|
1289
|
+
* Sticky directive options
|
|
1290
|
+
*/
|
|
1291
|
+
export declare interface StickyOptions {
|
|
1292
|
+
/** Top offset when sticky @default 0 */
|
|
1293
|
+
top?: number | string;
|
|
1294
|
+
/** Bottom offset when sticky */
|
|
1295
|
+
bottom?: number | string;
|
|
1296
|
+
/** Z-index when sticky @default 100 */
|
|
1297
|
+
zIndex?: number;
|
|
1298
|
+
/** CSS class to add when sticky @default 'v-sticky--fixed' */
|
|
1299
|
+
stickyClass?: string;
|
|
1300
|
+
/** Whether to disable @default false */
|
|
1301
|
+
disabled?: boolean;
|
|
1302
|
+
/** Callback when sticky state changes */
|
|
1303
|
+
onChange?: (isSticky: boolean) => void;
|
|
1304
|
+
/** Custom scroll container */
|
|
1305
|
+
container?: string | Element | null;
|
|
1306
|
+
}
|
|
1307
|
+
|
|
1308
|
+
/**
|
|
1309
|
+
* Check if Clipboard API is supported
|
|
1310
|
+
*/
|
|
1311
|
+
export declare const supportsClipboard: () => boolean;
|
|
1312
|
+
|
|
1313
|
+
/**
|
|
1314
|
+
* Check if IntersectionObserver is supported
|
|
1315
|
+
*/
|
|
1316
|
+
export declare const supportsIntersectionObserver: () => boolean;
|
|
1317
|
+
|
|
1318
|
+
/**
|
|
1319
|
+
* Check if MutationObserver is supported
|
|
1320
|
+
*/
|
|
1321
|
+
export declare const supportsMutationObserver: () => boolean;
|
|
1322
|
+
|
|
1323
|
+
/**
|
|
1324
|
+
* Check if passive event listening is supported
|
|
1325
|
+
*/
|
|
1326
|
+
export declare const supportsPassive: () => boolean;
|
|
1327
|
+
|
|
1328
|
+
/**
|
|
1329
|
+
* Check if ResizeObserver is supported
|
|
1330
|
+
*/
|
|
1331
|
+
export declare const supportsResizeObserver: () => boolean;
|
|
1332
|
+
|
|
1333
|
+
/**
|
|
1334
|
+
* Swipe direction
|
|
1335
|
+
*/
|
|
1336
|
+
export declare type SwipeDirection = 'left' | 'right' | 'up' | 'down';
|
|
1337
|
+
|
|
1338
|
+
/**
|
|
1339
|
+
* Directive binding value type
|
|
1340
|
+
*/
|
|
1341
|
+
export declare type ThrottleBinding<T extends (...args: any[]) => any = any> = T | ThrottleOptions<T>;
|
|
1342
|
+
|
|
1343
|
+
/**
|
|
1344
|
+
* Throttled function type
|
|
1345
|
+
*/
|
|
1346
|
+
export declare interface ThrottledFunction<T extends (...args: any[]) => any> {
|
|
1347
|
+
(...args: Parameters<T>): void;
|
|
1348
|
+
cancel: () => void;
|
|
1349
|
+
}
|
|
1350
|
+
|
|
1351
|
+
/**
|
|
1352
|
+
* Throttle function
|
|
1353
|
+
*/
|
|
1354
|
+
export declare function throttleFn<T extends (...args: any[]) => any>(func: T, wait?: number, options?: {
|
|
1355
|
+
leading?: boolean;
|
|
1356
|
+
trailing?: boolean;
|
|
1357
|
+
}): ((...args: Parameters<T>) => void) & {
|
|
1358
|
+
cancel: () => void;
|
|
1359
|
+
};
|
|
1360
|
+
|
|
1361
|
+
/**
|
|
1362
|
+
* Throttle directive options
|
|
1363
|
+
*/
|
|
1364
|
+
export declare interface ThrottleOptions<T extends (...args: any[]) => any = any> {
|
|
1365
|
+
/**
|
|
1366
|
+
* Function to throttle
|
|
1367
|
+
*/
|
|
1368
|
+
handler: T;
|
|
1369
|
+
/**
|
|
1370
|
+
* Delay time in milliseconds
|
|
1371
|
+
* @default 300
|
|
1372
|
+
*/
|
|
1373
|
+
wait?: number;
|
|
1374
|
+
/**
|
|
1375
|
+
* Whether to invoke immediately before delay starts
|
|
1376
|
+
* @default true
|
|
1377
|
+
*/
|
|
1378
|
+
leading?: boolean;
|
|
1379
|
+
/**
|
|
1380
|
+
* Whether to invoke after delay ends
|
|
1381
|
+
* @default true
|
|
1382
|
+
*/
|
|
1383
|
+
trailing?: boolean;
|
|
1384
|
+
}
|
|
1385
|
+
|
|
1386
|
+
export declare type TooltipBinding = string | TooltipOptions;
|
|
1387
|
+
|
|
1388
|
+
/**
|
|
1389
|
+
* Tooltip directive options
|
|
1390
|
+
*/
|
|
1391
|
+
export declare interface TooltipOptions {
|
|
1392
|
+
/** Tooltip content */
|
|
1393
|
+
content: string;
|
|
1394
|
+
/** Tooltip placement @default 'top' */
|
|
1395
|
+
placement?: TooltipPlacement;
|
|
1396
|
+
/** Trigger type @default 'hover' */
|
|
1397
|
+
trigger?: TooltipTrigger;
|
|
1398
|
+
/** Show delay in milliseconds @default 0 */
|
|
1399
|
+
delay?: number;
|
|
1400
|
+
/** Hide delay in milliseconds @default 0 */
|
|
1401
|
+
hideDelay?: number;
|
|
1402
|
+
/** Offset from the element in pixels @default 8 */
|
|
1403
|
+
offset?: number;
|
|
1404
|
+
/** Custom class for the tooltip */
|
|
1405
|
+
class?: string;
|
|
1406
|
+
/** Whether to show arrow @default true */
|
|
1407
|
+
arrow?: boolean;
|
|
1408
|
+
/** Whether the tooltip is disabled @default false */
|
|
1409
|
+
disabled?: boolean;
|
|
1410
|
+
/** Maximum width of the tooltip */
|
|
1411
|
+
maxWidth?: number | string;
|
|
1412
|
+
/** Z-index of the tooltip @default 9999 */
|
|
1413
|
+
zIndex?: number;
|
|
1414
|
+
/** Callback when tooltip is shown */
|
|
1415
|
+
onShow?: () => void;
|
|
1416
|
+
/** Callback when tooltip is hidden */
|
|
1417
|
+
onHide?: () => void;
|
|
1418
|
+
}
|
|
1419
|
+
|
|
1420
|
+
/**
|
|
1421
|
+
* Tooltip placement
|
|
1422
|
+
*/
|
|
1423
|
+
export declare type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
|
|
1424
|
+
|
|
1425
|
+
/**
|
|
1426
|
+
* Tooltip trigger
|
|
1427
|
+
*/
|
|
1428
|
+
export declare type TooltipTrigger = 'hover' | 'click' | 'focus' | 'manual';
|
|
1429
|
+
|
|
1430
|
+
/**
|
|
1431
|
+
* Touch gesture options
|
|
1432
|
+
*/
|
|
1433
|
+
export declare interface TouchOptions {
|
|
1434
|
+
/** Minimum swipe distance in pixels @default 30 */
|
|
1435
|
+
swipeThreshold?: number;
|
|
1436
|
+
/** Maximum time for a swipe in milliseconds @default 500 */
|
|
1437
|
+
swipeTimeout?: number;
|
|
1438
|
+
/** Minimum pinch scale change @default 0.1 */
|
|
1439
|
+
pinchThreshold?: number;
|
|
1440
|
+
/** Enable swipe detection @default true */
|
|
1441
|
+
enableSwipe?: boolean;
|
|
1442
|
+
/** Enable pinch detection @default true */
|
|
1443
|
+
enablePinch?: boolean;
|
|
1444
|
+
/** Enable rotate detection @default true */
|
|
1445
|
+
enableRotate?: boolean;
|
|
1446
|
+
/** Enable tap detection @default true */
|
|
1447
|
+
enableTap?: boolean;
|
|
1448
|
+
/** Maximum time for a tap in milliseconds @default 250 */
|
|
1449
|
+
tapTimeout?: number;
|
|
1450
|
+
/** Maximum movement for a tap in pixels @default 10 */
|
|
1451
|
+
tapThreshold?: number;
|
|
1452
|
+
/** Enable long press detection @default true */
|
|
1453
|
+
enableLongPress?: boolean;
|
|
1454
|
+
/** Long press timeout in milliseconds @default 500 */
|
|
1455
|
+
longPressTimeout?: number;
|
|
1456
|
+
/** Enable mouse event simulation for desktop @default true */
|
|
1457
|
+
enableMouse?: boolean;
|
|
1458
|
+
onSwipe?: (direction: SwipeDirection, event: TouchEvent | MouseEvent) => void;
|
|
1459
|
+
onSwipeLeft?: (event: TouchEvent | MouseEvent) => void;
|
|
1460
|
+
onSwipeRight?: (event: TouchEvent | MouseEvent) => void;
|
|
1461
|
+
onSwipeUp?: (event: TouchEvent | MouseEvent) => void;
|
|
1462
|
+
onSwipeDown?: (event: TouchEvent | MouseEvent) => void;
|
|
1463
|
+
onPinch?: (scale: number, event: TouchEvent) => void;
|
|
1464
|
+
onRotate?: (angle: number, event: TouchEvent) => void;
|
|
1465
|
+
onTap?: (event: TouchEvent | MouseEvent) => void;
|
|
1466
|
+
onLongPress?: (event: TouchEvent | MouseEvent) => void;
|
|
1467
|
+
onTouchStart?: (event: TouchEvent | MouseEvent) => void;
|
|
1468
|
+
onTouchMove?: (event: TouchEvent | MouseEvent) => void;
|
|
1469
|
+
onTouchEnd?: (event: TouchEvent | MouseEvent) => void;
|
|
1470
|
+
}
|
|
1471
|
+
|
|
1472
|
+
/**
|
|
1473
|
+
* Directive binding value type
|
|
1474
|
+
*/
|
|
1475
|
+
export declare type TrimBinding = boolean | TrimPosition | TrimOptions;
|
|
1476
|
+
|
|
1477
|
+
/**
|
|
1478
|
+
* Trim directive options
|
|
1479
|
+
*/
|
|
1480
|
+
export declare interface TrimOptions {
|
|
1481
|
+
/**
|
|
1482
|
+
* Trim position
|
|
1483
|
+
* @default 'both'
|
|
1484
|
+
*/
|
|
1485
|
+
position?: TrimPosition;
|
|
1486
|
+
/**
|
|
1487
|
+
* Whether to trim on input (for input elements)
|
|
1488
|
+
* @default true
|
|
1489
|
+
*/
|
|
1490
|
+
onInput?: boolean;
|
|
1491
|
+
/**
|
|
1492
|
+
* Whether to trim on blur
|
|
1493
|
+
* @default true
|
|
1494
|
+
*/
|
|
1495
|
+
onBlur?: boolean;
|
|
1496
|
+
/**
|
|
1497
|
+
* Custom characters to trim (in addition to whitespace)
|
|
1498
|
+
*/
|
|
1499
|
+
chars?: string;
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
/**
|
|
1503
|
+
* Trim position
|
|
1504
|
+
*/
|
|
1505
|
+
export declare type TrimPosition = 'start' | 'end' | 'both';
|
|
1506
|
+
|
|
1507
|
+
/**
|
|
1508
|
+
* Directive binding value type
|
|
1509
|
+
*/
|
|
1510
|
+
export declare type TruncateBinding = number | TruncateOptions;
|
|
1511
|
+
|
|
1512
|
+
/**
|
|
1513
|
+
* Truncate directive options
|
|
1514
|
+
*/
|
|
1515
|
+
export declare interface TruncateOptions {
|
|
1516
|
+
/**
|
|
1517
|
+
* Maximum length of text
|
|
1518
|
+
* @default 100
|
|
1519
|
+
*/
|
|
1520
|
+
length?: number;
|
|
1521
|
+
/**
|
|
1522
|
+
* Truncation position
|
|
1523
|
+
* @default 'end'
|
|
1524
|
+
*/
|
|
1525
|
+
position?: TruncatePosition;
|
|
1526
|
+
/**
|
|
1527
|
+
* Ellipsis string
|
|
1528
|
+
* @default '...'
|
|
1529
|
+
*/
|
|
1530
|
+
ellipsis?: string;
|
|
1531
|
+
/**
|
|
1532
|
+
* Whether to use CSS truncation (use text-overflow: ellipsis)
|
|
1533
|
+
* When true, length and position options are ignored
|
|
1534
|
+
* @default false
|
|
1535
|
+
*/
|
|
1536
|
+
useCss?: boolean;
|
|
1537
|
+
/**
|
|
1538
|
+
* Show full text on hover (as title attribute)
|
|
1539
|
+
* @default true
|
|
1540
|
+
*/
|
|
1541
|
+
showTitle?: boolean;
|
|
1542
|
+
}
|
|
1543
|
+
|
|
1544
|
+
/**
|
|
1545
|
+
* Truncate position
|
|
1546
|
+
*/
|
|
1547
|
+
export declare type TruncatePosition = 'start' | 'middle' | 'end';
|
|
1548
|
+
|
|
1549
|
+
/**
|
|
1550
|
+
* Directive binding value type
|
|
1551
|
+
*/
|
|
1552
|
+
export declare type UppercaseBinding = boolean | UppercaseOptions;
|
|
1553
|
+
|
|
1554
|
+
/**
|
|
1555
|
+
* Uppercase directive options
|
|
1556
|
+
*/
|
|
1557
|
+
export declare interface UppercaseOptions {
|
|
1558
|
+
/**
|
|
1559
|
+
* Transform only the first character
|
|
1560
|
+
* @default false
|
|
1561
|
+
*/
|
|
1562
|
+
first?: boolean;
|
|
1563
|
+
/**
|
|
1564
|
+
* Transform on input event (for input elements)
|
|
1565
|
+
* @default true
|
|
1566
|
+
*/
|
|
1567
|
+
onInput?: boolean;
|
|
1568
|
+
}
|
|
1569
|
+
|
|
1570
|
+
/**
|
|
1571
|
+
* v-capitalcase directive
|
|
1572
|
+
*
|
|
1573
|
+
* @example
|
|
1574
|
+
* ```vue
|
|
1575
|
+
* <template>
|
|
1576
|
+
* <!-- Simple usage: capitalize each word -->
|
|
1577
|
+
* <input v-capitalcase v-model="title" />
|
|
1578
|
+
*
|
|
1579
|
+
* <!-- Capitalize only first word -->
|
|
1580
|
+
* <span v-capitalcase="{ every: false }">{{ text }}</span>
|
|
1581
|
+
*
|
|
1582
|
+
* <!-- With custom lowercase words -->
|
|
1583
|
+
* <input v-capitalcase="{ keepLower: ['a', 'the'] }" v-model="title" />
|
|
1584
|
+
* </template>
|
|
1585
|
+
* ```
|
|
1586
|
+
*/
|
|
1587
|
+
declare const vCapitalcase: Directive;
|
|
1588
|
+
export { vCapitalcase as capitalcase }
|
|
1589
|
+
export { vCapitalcase }
|
|
1590
|
+
|
|
1591
|
+
/**
|
|
1592
|
+
* v-click-outside directive
|
|
1593
|
+
*
|
|
1594
|
+
* @example
|
|
471
1595
|
* ```vue
|
|
472
1596
|
* <template>
|
|
473
1597
|
* <div v-click-outside="handleClickOutside">
|
|
@@ -512,6 +1636,33 @@ declare const vDebounce: Directive;
|
|
|
512
1636
|
export { vDebounce as debounce }
|
|
513
1637
|
export { vDebounce }
|
|
514
1638
|
|
|
1639
|
+
/**
|
|
1640
|
+
* v-draggable directive
|
|
1641
|
+
*
|
|
1642
|
+
* @example
|
|
1643
|
+
* ```vue
|
|
1644
|
+
* <template>
|
|
1645
|
+
* <!-- Simple usage -->
|
|
1646
|
+
* <div v-draggable>Drag me</div>
|
|
1647
|
+
*
|
|
1648
|
+
* <!-- Constrain to parent -->
|
|
1649
|
+
* <div v-draggable="{ constrain: true }">Drag me</div>
|
|
1650
|
+
*
|
|
1651
|
+
* <!-- With handle -->
|
|
1652
|
+
* <div v-draggable="{ handle: '.drag-handle' }">
|
|
1653
|
+
* <div class="drag-handle">Drag here</div>
|
|
1654
|
+
* <div>Content</div>
|
|
1655
|
+
* </div>
|
|
1656
|
+
*
|
|
1657
|
+
* <!-- With callbacks -->
|
|
1658
|
+
* <div v-draggable="{ onDrag: handleDrag }">Drag me</div>
|
|
1659
|
+
* </template>
|
|
1660
|
+
* ```
|
|
1661
|
+
*/
|
|
1662
|
+
declare const vDraggable: Directive;
|
|
1663
|
+
export { vDraggable as draggable }
|
|
1664
|
+
export { vDraggable }
|
|
1665
|
+
|
|
515
1666
|
/**
|
|
516
1667
|
* v-focus directive
|
|
517
1668
|
*
|
|
@@ -527,6 +1678,330 @@ declare const vFocus: Directive;
|
|
|
527
1678
|
export { vFocus as focus }
|
|
528
1679
|
export { vFocus }
|
|
529
1680
|
|
|
1681
|
+
/**
|
|
1682
|
+
* v-hover directive
|
|
1683
|
+
*
|
|
1684
|
+
* @example
|
|
1685
|
+
* ```vue
|
|
1686
|
+
* <template>
|
|
1687
|
+
* <div v-hover="handleHover">Hover me</div>
|
|
1688
|
+
* <div v-hover="{ onEnter: handleEnter, onLeave: handleLeave, class: 'is-hovering' }">Hover me</div>
|
|
1689
|
+
* </template>
|
|
1690
|
+
* ```
|
|
1691
|
+
*/
|
|
1692
|
+
declare const vHover: Directive;
|
|
1693
|
+
export { vHover as hover }
|
|
1694
|
+
export { vHover }
|
|
1695
|
+
|
|
1696
|
+
/**
|
|
1697
|
+
* v-image-preview directive
|
|
1698
|
+
*
|
|
1699
|
+
* @example
|
|
1700
|
+
* ```vue
|
|
1701
|
+
* <template>
|
|
1702
|
+
* <!-- Simple usage -->
|
|
1703
|
+
* <img v-image-preview src="thumbnail.jpg" data-preview="full.jpg" />
|
|
1704
|
+
*
|
|
1705
|
+
* <!-- With options -->
|
|
1706
|
+
* <img v-image-preview="{ src: 'thumbnail.jpg', previewSrc: 'full.jpg' }" />
|
|
1707
|
+
*
|
|
1708
|
+
* <!-- On non-img element -->
|
|
1709
|
+
* <div v-image-preview="{ src: 'image.jpg' }">Click to preview</div>
|
|
1710
|
+
* </template>
|
|
1711
|
+
* ```
|
|
1712
|
+
*/
|
|
1713
|
+
declare const vImagePreview: Directive;
|
|
1714
|
+
export { vImagePreview as imagePreview }
|
|
1715
|
+
export { vImagePreview }
|
|
1716
|
+
|
|
1717
|
+
/**
|
|
1718
|
+
* v-infinite-scroll directive
|
|
1719
|
+
*
|
|
1720
|
+
* @example
|
|
1721
|
+
* ```vue
|
|
1722
|
+
* <template>
|
|
1723
|
+
* <div v-infinite-scroll="loadMore" class="scroll-container">
|
|
1724
|
+
* <div v-for="item in items" :key="item.id">{{ item.name }}</div>
|
|
1725
|
+
* </div>
|
|
1726
|
+
*
|
|
1727
|
+
* <div v-infinite-scroll="{ handler: loadMore, distance: 100, disabled: isLoading }">
|
|
1728
|
+
* <div v-for="item in items" :key="item.id">{{ item.name }}</div>
|
|
1729
|
+
* </div>
|
|
1730
|
+
* </template>
|
|
1731
|
+
* ```
|
|
1732
|
+
*/
|
|
1733
|
+
declare const vInfiniteScroll: Directive;
|
|
1734
|
+
export { vInfiniteScroll as infiniteScroll }
|
|
1735
|
+
export { vInfiniteScroll }
|
|
1736
|
+
|
|
1737
|
+
/**
|
|
1738
|
+
* v-intersect directive
|
|
1739
|
+
*
|
|
1740
|
+
* @example
|
|
1741
|
+
* ```vue
|
|
1742
|
+
* <div v-intersect="handleIntersect">Observe me</div>
|
|
1743
|
+
* <div v-intersect="{ onEnter: handleEnter, onLeave: handleLeave }">Track visibility</div>
|
|
1744
|
+
* <div v-intersect="{ threshold: 0.5, once: true }">Trigger once at 50%</div>
|
|
1745
|
+
* ```
|
|
1746
|
+
*/
|
|
1747
|
+
declare const vIntersect: Directive;
|
|
1748
|
+
export { vIntersect as intersect }
|
|
1749
|
+
export { vIntersect }
|
|
1750
|
+
|
|
1751
|
+
/**
|
|
1752
|
+
* Directive binding value type
|
|
1753
|
+
*/
|
|
1754
|
+
export declare type VisibleBinding = boolean | VisibleOptions;
|
|
1755
|
+
|
|
1756
|
+
/**
|
|
1757
|
+
* Visible change handler
|
|
1758
|
+
*/
|
|
1759
|
+
export declare type VisibleHandler = (isVisible: boolean) => void;
|
|
1760
|
+
|
|
1761
|
+
/**
|
|
1762
|
+
* Visible directive options
|
|
1763
|
+
*/
|
|
1764
|
+
export declare interface VisibleOptions {
|
|
1765
|
+
/**
|
|
1766
|
+
* Callback when visibility changes
|
|
1767
|
+
*/
|
|
1768
|
+
handler?: VisibleHandler;
|
|
1769
|
+
/**
|
|
1770
|
+
* Whether to disable
|
|
1771
|
+
* @default false
|
|
1772
|
+
*/
|
|
1773
|
+
disabled?: boolean;
|
|
1774
|
+
/**
|
|
1775
|
+
* Whether to set visibility: hidden instead of display: none
|
|
1776
|
+
* @default false
|
|
1777
|
+
*/
|
|
1778
|
+
useHidden?: boolean;
|
|
1779
|
+
/**
|
|
1780
|
+
* Initial visibility
|
|
1781
|
+
* @default true
|
|
1782
|
+
*/
|
|
1783
|
+
initial?: boolean;
|
|
1784
|
+
}
|
|
1785
|
+
|
|
1786
|
+
/**
|
|
1787
|
+
* v-lazy directive
|
|
1788
|
+
*
|
|
1789
|
+
* @example
|
|
1790
|
+
* ```vue
|
|
1791
|
+
* <template>
|
|
1792
|
+
* <img v-lazy="imageUrl" />
|
|
1793
|
+
* <img v-lazy="{ src: imageUrl, placeholder: 'placeholder.jpg' }" />
|
|
1794
|
+
* <div v-lazy="backgroundImageUrl"></div>
|
|
1795
|
+
* </template>
|
|
1796
|
+
* ```
|
|
1797
|
+
*/
|
|
1798
|
+
declare const vLazy: Directive;
|
|
1799
|
+
export { vLazy as lazy }
|
|
1800
|
+
export { vLazy }
|
|
1801
|
+
|
|
1802
|
+
/**
|
|
1803
|
+
* v-loading directive
|
|
1804
|
+
*
|
|
1805
|
+
* @example
|
|
1806
|
+
* ```vue
|
|
1807
|
+
* <template>
|
|
1808
|
+
* <div v-loading="isLoading">Content</div>
|
|
1809
|
+
* <div v-loading="{ value: isLoading, text: 'Loading...' }">Content</div>
|
|
1810
|
+
* <div v-loading="{ value: isLoading, lock: true }">Locked scroll while loading</div>
|
|
1811
|
+
* </template>
|
|
1812
|
+
* ```
|
|
1813
|
+
*/
|
|
1814
|
+
declare const vLoading: Directive;
|
|
1815
|
+
export { vLoading as loading }
|
|
1816
|
+
export { vLoading }
|
|
1817
|
+
|
|
1818
|
+
/**
|
|
1819
|
+
* v-long-press directive
|
|
1820
|
+
*
|
|
1821
|
+
* @example
|
|
1822
|
+
* ```vue
|
|
1823
|
+
* <template>
|
|
1824
|
+
* <button v-long-press="handleLongPress">Long Press Me</button>
|
|
1825
|
+
* <button v-long-press="{ handler: handleLongPress, duration: 1000 }">1 Second Press</button>
|
|
1826
|
+
* </template>
|
|
1827
|
+
* ```
|
|
1828
|
+
*/
|
|
1829
|
+
declare const vLongPress: Directive;
|
|
1830
|
+
export { vLongPress as longPress }
|
|
1831
|
+
export { vLongPress }
|
|
1832
|
+
|
|
1833
|
+
/**
|
|
1834
|
+
* v-lowercase directive
|
|
1835
|
+
*
|
|
1836
|
+
* @example
|
|
1837
|
+
* ```vue
|
|
1838
|
+
* <template>
|
|
1839
|
+
* <!-- Transform all characters to lowercase -->
|
|
1840
|
+
* <input v-lowercase v-model="text" />
|
|
1841
|
+
*
|
|
1842
|
+
* <!-- Transform only first character -->
|
|
1843
|
+
* <span v-lowercase="{ first: true }">{{ text }}</span>
|
|
1844
|
+
* </template>
|
|
1845
|
+
* ```
|
|
1846
|
+
*/
|
|
1847
|
+
declare const vLowercase: Directive;
|
|
1848
|
+
export { vLowercase as lowercase }
|
|
1849
|
+
export { vLowercase }
|
|
1850
|
+
|
|
1851
|
+
/**
|
|
1852
|
+
* v-mask directive
|
|
1853
|
+
*
|
|
1854
|
+
* @example
|
|
1855
|
+
* ```vue
|
|
1856
|
+
* <input v-mask="'###-##-####'" placeholder="SSN" />
|
|
1857
|
+
* <input v-mask="'(###) ###-####'" placeholder="Phone" />
|
|
1858
|
+
* <input v-mask="{ mask: '##/##/####' }" placeholder="Date" />
|
|
1859
|
+
* ```
|
|
1860
|
+
*/
|
|
1861
|
+
declare const vMask: Directive;
|
|
1862
|
+
export { vMask as mask }
|
|
1863
|
+
export { vMask }
|
|
1864
|
+
|
|
1865
|
+
declare const vMoney: Directive;
|
|
1866
|
+
export { vMoney as money }
|
|
1867
|
+
export { vMoney }
|
|
1868
|
+
|
|
1869
|
+
/**
|
|
1870
|
+
* v-mutation directive
|
|
1871
|
+
*
|
|
1872
|
+
* @example
|
|
1873
|
+
* ```vue
|
|
1874
|
+
* <template>
|
|
1875
|
+
* <div v-mutation="handleMutation">Observe my changes</div>
|
|
1876
|
+
* <div v-mutation="{ handler: handleMutation, attributes: true, subtree: true }">
|
|
1877
|
+
* Observe attributes and subtree
|
|
1878
|
+
* </div>
|
|
1879
|
+
* </template>
|
|
1880
|
+
*
|
|
1881
|
+
* <script setup>
|
|
1882
|
+
* function handleMutation(mutations: MutationRecord[], observer: MutationObserver) {
|
|
1883
|
+
* mutations.forEach(mutation => {
|
|
1884
|
+
* console.log('Type:', mutation.type)
|
|
1885
|
+
* console.log('Target:', mutation.target)
|
|
1886
|
+
* })
|
|
1887
|
+
* }
|
|
1888
|
+
* </script>
|
|
1889
|
+
* ```
|
|
1890
|
+
*/
|
|
1891
|
+
declare const vMutation: Directive;
|
|
1892
|
+
export { vMutation as mutation }
|
|
1893
|
+
export { vMutation }
|
|
1894
|
+
|
|
1895
|
+
declare const vNumber: Directive;
|
|
1896
|
+
export { vNumber as number }
|
|
1897
|
+
export { vNumber }
|
|
1898
|
+
|
|
1899
|
+
/**
|
|
1900
|
+
* v-permission directive
|
|
1901
|
+
*
|
|
1902
|
+
* Controls element visibility and state based on user permissions.
|
|
1903
|
+
* Supports role-based and permission-based access control with wildcard support.
|
|
1904
|
+
*
|
|
1905
|
+
* @example
|
|
1906
|
+
* ```vue
|
|
1907
|
+
* <template>
|
|
1908
|
+
* <button v-permission="'admin'">Admin Only</button>
|
|
1909
|
+
* <button v-permission="['admin', 'editor']">Admin or Editor</button>
|
|
1910
|
+
* <button v-permission="{ value: ['read', 'write'], mode: 'every' }">Read & Write</button>
|
|
1911
|
+
* <button v-permission="{ value: 'admin', action: 'disable' }">Disabled for non-admin</button>
|
|
1912
|
+
* </template>
|
|
1913
|
+
*
|
|
1914
|
+
* <script setup>
|
|
1915
|
+
* import { configurePermission } from 'directix'
|
|
1916
|
+
*
|
|
1917
|
+
* configurePermission({
|
|
1918
|
+
* getPermissions: () => store.getters.permissions,
|
|
1919
|
+
* getRoles: () => store.getters.roles,
|
|
1920
|
+
* roleMap: { admin: ['*'], editor: ['read', 'write'] }
|
|
1921
|
+
* })
|
|
1922
|
+
* </script>
|
|
1923
|
+
* ```
|
|
1924
|
+
*/
|
|
1925
|
+
declare const vPermission: Directive;
|
|
1926
|
+
export { vPermission as permission }
|
|
1927
|
+
export { vPermission }
|
|
1928
|
+
|
|
1929
|
+
/**
|
|
1930
|
+
* v-resize directive
|
|
1931
|
+
*
|
|
1932
|
+
* @example
|
|
1933
|
+
* ```vue
|
|
1934
|
+
* <template>
|
|
1935
|
+
* <div v-resize="handleResize">Resize me</div>
|
|
1936
|
+
* <div v-resize="{ handler: handleResize, debounce: 200 }">Debounced resize</div>
|
|
1937
|
+
* </template>
|
|
1938
|
+
* ```
|
|
1939
|
+
*/
|
|
1940
|
+
declare const vResize: Directive;
|
|
1941
|
+
export { vResize as resize }
|
|
1942
|
+
export { vResize }
|
|
1943
|
+
|
|
1944
|
+
/**
|
|
1945
|
+
* v-ripple directive
|
|
1946
|
+
*
|
|
1947
|
+
* @example
|
|
1948
|
+
* ```vue
|
|
1949
|
+
* <template>
|
|
1950
|
+
* <button v-ripple>Click me</button>
|
|
1951
|
+
* <button v-ripple="'rgba(255, 255, 255, 0.3)'">Custom color</button>
|
|
1952
|
+
* <button v-ripple="{ color: 'red', duration: 800 }">Custom options</button>
|
|
1953
|
+
* </template>
|
|
1954
|
+
* ```
|
|
1955
|
+
*/
|
|
1956
|
+
declare const vRipple: Directive;
|
|
1957
|
+
export { vRipple as ripple }
|
|
1958
|
+
export { vRipple }
|
|
1959
|
+
|
|
1960
|
+
/**
|
|
1961
|
+
* v-sanitize directive
|
|
1962
|
+
*
|
|
1963
|
+
* @example
|
|
1964
|
+
* ```vue
|
|
1965
|
+
* <template>
|
|
1966
|
+
* <div v-sanitize v-html="userContent"></div>
|
|
1967
|
+
* <div v-sanitize="{ allowedTags: ['b', 'i', 'p'] }" v-html="userContent"></div>
|
|
1968
|
+
* <div v-sanitize="{ handler: customSanitizer }" v-html="userContent"></div>
|
|
1969
|
+
* </template>
|
|
1970
|
+
* ```
|
|
1971
|
+
*/
|
|
1972
|
+
declare const vSanitize: Directive;
|
|
1973
|
+
export { vSanitize as sanitize }
|
|
1974
|
+
export { vSanitize }
|
|
1975
|
+
|
|
1976
|
+
/**
|
|
1977
|
+
* v-scroll directive
|
|
1978
|
+
*
|
|
1979
|
+
* @example
|
|
1980
|
+
* ```vue
|
|
1981
|
+
* <template>
|
|
1982
|
+
* <div v-scroll="handleScroll">Scroll container</div>
|
|
1983
|
+
* <div v-scroll="{ handler: handleScroll, throttle: 100 }">Throttled scroll</div>
|
|
1984
|
+
* </template>
|
|
1985
|
+
* ```
|
|
1986
|
+
*/
|
|
1987
|
+
declare const vScroll: Directive;
|
|
1988
|
+
export { vScroll as scroll }
|
|
1989
|
+
export { vScroll }
|
|
1990
|
+
|
|
1991
|
+
/**
|
|
1992
|
+
* v-sticky directive
|
|
1993
|
+
*
|
|
1994
|
+
* @example
|
|
1995
|
+
* ```vue
|
|
1996
|
+
* <div v-sticky>Sticky header</div>
|
|
1997
|
+
* <div v-sticky="50">Sticky with 50px top offset</div>
|
|
1998
|
+
* <div v-sticky="{ top: 60, zIndex: 1000 }">Custom sticky</div>
|
|
1999
|
+
* ```
|
|
2000
|
+
*/
|
|
2001
|
+
declare const vSticky: Directive;
|
|
2002
|
+
export { vSticky as sticky }
|
|
2003
|
+
export { vSticky }
|
|
2004
|
+
|
|
530
2005
|
/**
|
|
531
2006
|
* v-throttle directive
|
|
532
2007
|
*
|
|
@@ -544,6 +2019,62 @@ declare const vThrottle: Directive;
|
|
|
544
2019
|
export { vThrottle as throttle }
|
|
545
2020
|
export { vThrottle }
|
|
546
2021
|
|
|
2022
|
+
declare const vTooltip: Directive;
|
|
2023
|
+
export { vTooltip as tooltip }
|
|
2024
|
+
export { vTooltip }
|
|
2025
|
+
|
|
2026
|
+
declare const vTouch: Directive;
|
|
2027
|
+
export { vTouch as touch }
|
|
2028
|
+
export { vTouch }
|
|
2029
|
+
|
|
2030
|
+
/**
|
|
2031
|
+
* v-trim directive
|
|
2032
|
+
*
|
|
2033
|
+
* @example
|
|
2034
|
+
* ```vue
|
|
2035
|
+
* <template>
|
|
2036
|
+
* <!-- Simple usage: trim both sides -->
|
|
2037
|
+
* <input v-trim v-model="text" />
|
|
2038
|
+
*
|
|
2039
|
+
* <!-- Trim only start -->
|
|
2040
|
+
* <input v-trim="'start'" v-model="text" />
|
|
2041
|
+
*
|
|
2042
|
+
* <!-- Trim only end -->
|
|
2043
|
+
* <input v-trim="'end'" v-model="text" />
|
|
2044
|
+
*
|
|
2045
|
+
* <!-- With options -->
|
|
2046
|
+
* <input v-trim="{ position: 'both', onBlur: true }" v-model="text" />
|
|
2047
|
+
*
|
|
2048
|
+
* <!-- For display only -->
|
|
2049
|
+
* <span v-trim> Text with spaces </span>
|
|
2050
|
+
* </template>
|
|
2051
|
+
* ```
|
|
2052
|
+
*/
|
|
2053
|
+
declare const vTrim: Directive;
|
|
2054
|
+
export { vTrim as trim }
|
|
2055
|
+
export { vTrim }
|
|
2056
|
+
|
|
2057
|
+
/**
|
|
2058
|
+
* v-truncate directive
|
|
2059
|
+
*
|
|
2060
|
+
* @example
|
|
2061
|
+
* ```vue
|
|
2062
|
+
* <template>
|
|
2063
|
+
* <!-- Simple usage: truncate to 50 characters -->
|
|
2064
|
+
* <p v-truncate="50">Long text here...</p>
|
|
2065
|
+
*
|
|
2066
|
+
* <!-- With options -->
|
|
2067
|
+
* <p v-truncate="{ length: 100, position: 'middle' }">Long text here...</p>
|
|
2068
|
+
*
|
|
2069
|
+
* <!-- CSS truncation -->
|
|
2070
|
+
* <p v-truncate="{ useCss: true }">Long text here...</p>
|
|
2071
|
+
* </template>
|
|
2072
|
+
* ```
|
|
2073
|
+
*/
|
|
2074
|
+
declare const vTruncate: Directive;
|
|
2075
|
+
export { vTruncate as truncate }
|
|
2076
|
+
export { vTruncate }
|
|
2077
|
+
|
|
547
2078
|
/**
|
|
548
2079
|
* Vue 2 directive hooks
|
|
549
2080
|
*/
|
|
@@ -568,4 +2099,46 @@ export declare interface Vue3DirectiveHooks {
|
|
|
568
2099
|
unmounted?: (el: any, binding: any, vnode: any, prevVnode: any) => void;
|
|
569
2100
|
}
|
|
570
2101
|
|
|
2102
|
+
/**
|
|
2103
|
+
* Vue version type
|
|
2104
|
+
* - 2: Vue 2.6.x (requires @vue/composition-api for Composition API)
|
|
2105
|
+
* - 2.7: Vue 2.7.x (has built-in Composition API support)
|
|
2106
|
+
* - 3: Vue 3.x
|
|
2107
|
+
*/
|
|
2108
|
+
export declare type VueVersion = 2 | 2.7 | 3;
|
|
2109
|
+
|
|
2110
|
+
/**
|
|
2111
|
+
* v-uppercase directive
|
|
2112
|
+
*
|
|
2113
|
+
* @example
|
|
2114
|
+
* ```vue
|
|
2115
|
+
* <template>
|
|
2116
|
+
* <!-- Transform all characters to uppercase -->
|
|
2117
|
+
* <input v-uppercase v-model="text" />
|
|
2118
|
+
*
|
|
2119
|
+
* <!-- Transform only first character -->
|
|
2120
|
+
* <span v-uppercase="{ first: true }">{{ text }}</span>
|
|
2121
|
+
* </template>
|
|
2122
|
+
* ```
|
|
2123
|
+
*/
|
|
2124
|
+
declare const vUppercase: Directive;
|
|
2125
|
+
export { vUppercase as uppercase }
|
|
2126
|
+
export { vUppercase }
|
|
2127
|
+
|
|
2128
|
+
/**
|
|
2129
|
+
* v-visible directive
|
|
2130
|
+
*
|
|
2131
|
+
* @example
|
|
2132
|
+
* ```vue
|
|
2133
|
+
* <template>
|
|
2134
|
+
* <div v-visible="showElement">Show/Hide</div>
|
|
2135
|
+
* <div v-visible="{ handler: onVisibleChange }">Track visibility</div>
|
|
2136
|
+
* <div v-visible="{ useHidden: true, initial: false }">Uses visibility: hidden</div>
|
|
2137
|
+
* </template>
|
|
2138
|
+
* ```
|
|
2139
|
+
*/
|
|
2140
|
+
declare const vVisible: Directive;
|
|
2141
|
+
export { vVisible }
|
|
2142
|
+
export { vVisible as visible }
|
|
2143
|
+
|
|
571
2144
|
export { }
|