@fastkit/vui-wysiwyg 8.3.2 → 8.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/vui-wysiwyg.css +103 -105
- package/dist/vui-wysiwyg.d.mts +57 -1741
- package/dist/vui-wysiwyg.mjs.map +1 -1
- package/package.json +117 -116
package/dist/vui-wysiwyg.d.mts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { PropType, VNodeChild } from "vue";
|
|
2
2
|
import { AnyExtension, Editor, EditorOptions, Extension, Extensions, Mark, Node } from "@tiptap/vue-3";
|
|
3
3
|
import { EditorView } from "@tiptap/pm/view";
|
|
4
|
+
import "@tiptap/extension-text-style";
|
|
4
5
|
import { BulletListOptions } from "@tiptap/extension-bullet-list";
|
|
5
6
|
import { BoldOptions } from "@tiptap/extension-bold";
|
|
6
7
|
import { ItalicOptions } from "@tiptap/extension-italic";
|
|
@@ -17,7 +18,7 @@ type PrefixedEventName<S extends string> = `on${Capitalize<S>}`;
|
|
|
17
18
|
type WysiwygEditorEvent = (typeof EDITOR_EVENTS)[number];
|
|
18
19
|
type WysiwygEditorPrefixedEvent = PrefixedEventName<WysiwygEditorEvent>;
|
|
19
20
|
interface WysiwygEditorEventsOptions extends Partial<Pick<EditorOptions, WysiwygEditorPrefixedEvent>> {}
|
|
20
|
-
type WysiwygEditorEventsBucket = { [EV in WysiwygEditorEvent]: NonNullable<WysiwygEditorEventsOptions[PrefixedEventName<EV>]>[] };
|
|
21
|
+
type WysiwygEditorEventsBucket = { [EV in WysiwygEditorEvent]: NonNullable<WysiwygEditorEventsOptions[PrefixedEventName<EV>]>[]; };
|
|
21
22
|
declare class WysiwygEditorInitializeContext {
|
|
22
23
|
readonly listeners: WysiwygEditorEventsBucket;
|
|
23
24
|
private readonly _vui;
|
|
@@ -122,20 +123,14 @@ declare function WysiwygLinterBadWords(words: string[]): typeof WysiwygLinterPlu
|
|
|
122
123
|
//#endregion
|
|
123
124
|
//#region src/extensions/linter/plugins/HeadingLevel.d.ts
|
|
124
125
|
declare class WysiwygLinterHeadingLevel extends WysiwygLinterPlugin {
|
|
125
|
-
fixHeader(level: number): ({
|
|
126
|
-
state,
|
|
127
|
-
dispatch
|
|
128
|
-
}: EditorView, issue: WysiwygLinterResult) => void;
|
|
126
|
+
fixHeader(level: number): ({ state, dispatch }: EditorView, issue: WysiwygLinterResult) => void;
|
|
129
127
|
scan(): this;
|
|
130
128
|
}
|
|
131
129
|
//#endregion
|
|
132
130
|
//#region src/extensions/linter/plugins/Punctuation.d.ts
|
|
133
131
|
declare class WysiwygLinterPunctuation extends WysiwygLinterPlugin {
|
|
134
132
|
regex: RegExp;
|
|
135
|
-
fix(replacement: any): ({
|
|
136
|
-
state,
|
|
137
|
-
dispatch
|
|
138
|
-
}: EditorView, issue: WysiwygLinterResult) => void;
|
|
133
|
+
fix(replacement: any): ({ state, dispatch }: EditorView, issue: WysiwygLinterResult) => void;
|
|
139
134
|
scan(): this;
|
|
140
135
|
}
|
|
141
136
|
//#endregion
|
|
@@ -271,1685 +266,6 @@ interface WysiwygCustomTagToolSettings extends Pick<WysiwygEditorTool, 'icon' |
|
|
|
271
266
|
*/
|
|
272
267
|
declare function createWysiwygCustomTagTool(markName: string, settings: WysiwygCustomTagToolSettings): WysiwygEditorToolFactory;
|
|
273
268
|
//#endregion
|
|
274
|
-
//#region ../ts-type-utils/types/types.d.ts
|
|
275
|
-
/**
|
|
276
|
-
* Recursive Arrays
|
|
277
|
-
*/
|
|
278
|
-
type RecursiveArray<T> = T | RecursiveArray<T>[];
|
|
279
|
-
//#endregion
|
|
280
|
-
//#region ../helpers/dist/helpers.d.mts
|
|
281
|
-
type Mixin<T extends object, U extends object> = Omit<T, keyof U> & U;
|
|
282
|
-
/**
|
|
283
|
-
* Returns a Proxy instance that mixes in the specified trait object for the given base object
|
|
284
|
-
*
|
|
285
|
-
* @param base - Base object
|
|
286
|
-
* @param trait - trait object
|
|
287
|
-
* @returns Mixed-in Proxy
|
|
288
|
-
*/
|
|
289
|
-
//#endregion
|
|
290
|
-
//#region ../rules/dist/rules.d.mts
|
|
291
|
-
//#endregion
|
|
292
|
-
//#region src/schemes.d.ts
|
|
293
|
-
/**
|
|
294
|
-
* Symbol indicating a validation error.
|
|
295
|
-
*/
|
|
296
|
-
declare const VALIDATION_ERROR_SYMBOL = "ValidationError";
|
|
297
|
-
/**
|
|
298
|
-
* Validation error.
|
|
299
|
-
*/
|
|
300
|
-
interface ValidationError {
|
|
301
|
-
/**
|
|
302
|
-
* Symbol indicating a validation error.
|
|
303
|
-
*
|
|
304
|
-
* @see {@link VALIDATION_ERROR_SYMBOL}
|
|
305
|
-
*/
|
|
306
|
-
$$symbol: typeof VALIDATION_ERROR_SYMBOL;
|
|
307
|
-
/** Failed validation rule name. */
|
|
308
|
-
name: string;
|
|
309
|
-
/** Prefix for the path during object enumeration. */
|
|
310
|
-
eachPrefix?: string;
|
|
311
|
-
/** Property name during object enumeration. */
|
|
312
|
-
path?: string | number;
|
|
313
|
-
/** Full path to the property during object enumeration. */
|
|
314
|
-
fullPath?: string;
|
|
315
|
-
/** Error message. */
|
|
316
|
-
message: string;
|
|
317
|
-
/** Failed validation value. */
|
|
318
|
-
value?: any;
|
|
319
|
-
/** List of errors for descendant properties if it's an error for an object. */
|
|
320
|
-
children?: ValidationError[];
|
|
321
|
-
/** Constraints set in the rule. */
|
|
322
|
-
constraints?: any;
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Check if the specified value is a validation error.
|
|
326
|
-
*
|
|
327
|
-
* @param source - Value to be checked.
|
|
328
|
-
* @returns `true` if it is a validation error.
|
|
329
|
-
*/
|
|
330
|
-
/**
|
|
331
|
-
* Symbol indicating validation cancellation.
|
|
332
|
-
*/
|
|
333
|
-
declare const VALIDATE_CANCEL_SYMBOL = "__VALIDATE_CANCEL_SYMBOL__";
|
|
334
|
-
/**
|
|
335
|
-
* Check if the specified value is a symbol for validation cancellation.
|
|
336
|
-
*
|
|
337
|
-
* @param source - Value to be checked.
|
|
338
|
-
* @returns `true` if it is a symbol for cancellation.
|
|
339
|
-
*/
|
|
340
|
-
//#endregion
|
|
341
|
-
//#region src/factories/rule.d.ts
|
|
342
|
-
/**
|
|
343
|
-
* Execution result of the rule.
|
|
344
|
-
*/
|
|
345
|
-
type RuleResult = Promise<void | typeof VALIDATE_CANCEL_SYMBOL | ValidationError>;
|
|
346
|
-
/**
|
|
347
|
-
* Validation options for the rule.
|
|
348
|
-
*/
|
|
349
|
-
interface RuleValidationOptions {
|
|
350
|
-
/**
|
|
351
|
-
* Property name during object enumeration.
|
|
352
|
-
*
|
|
353
|
-
* This is typically not specified from the application and is intended for internal use.
|
|
354
|
-
*
|
|
355
|
-
* @internal
|
|
356
|
-
*/
|
|
357
|
-
path?: string | number;
|
|
358
|
-
/**
|
|
359
|
-
* Prefix for the path during object enumeration.
|
|
360
|
-
*
|
|
361
|
-
* This is typically not specified from the application and is intended for internal use.
|
|
362
|
-
*
|
|
363
|
-
* @internal
|
|
364
|
-
*/
|
|
365
|
-
eachPrefix?: string;
|
|
366
|
-
}
|
|
367
|
-
/**
|
|
368
|
-
* Result of rule validation.
|
|
369
|
-
*/
|
|
370
|
-
type RuleValidationResultValue = /** When it passes verification */true /** When verification fails */ | false /** When the verification is considered successful and the subsequent verifications are skipped */ | typeof VALIDATE_CANCEL_SYMBOL /** When verification fails */ | string /** When there is a nested validation result object */ | ValidationError[];
|
|
371
|
-
/**
|
|
372
|
-
* Result of rule validation or its Promise instance.
|
|
373
|
-
*/
|
|
374
|
-
type RuleValidationResult = RuleValidationResultValue | Promise<RuleValidationResultValue>;
|
|
375
|
-
/**
|
|
376
|
-
* Message specification for the rule.
|
|
377
|
-
*/
|
|
378
|
-
type RuleMessageSpec<C = any> = string | ((value: any, ctx: RuleValidateContext<C>) => string);
|
|
379
|
-
/** Basic settings for the rule. */
|
|
380
|
-
interface RuleBasicSettings<C = any> {
|
|
381
|
-
/** Rule name. */
|
|
382
|
-
name: string;
|
|
383
|
-
/**
|
|
384
|
-
* Message specification for the rule.
|
|
385
|
-
*
|
|
386
|
-
* @see {@link RuleMessageSpec}
|
|
387
|
-
*/
|
|
388
|
-
message?: RuleMessageSpec<C>;
|
|
389
|
-
}
|
|
390
|
-
/**
|
|
391
|
-
* Rule settings.
|
|
392
|
-
*/
|
|
393
|
-
type RuleSettings<C = any> = (RuleBasicSettings<C> & {
|
|
394
|
-
/**
|
|
395
|
-
* Validation function.
|
|
396
|
-
*
|
|
397
|
-
* @param value - Value to be validated.
|
|
398
|
-
* @param constraints - Constraints.
|
|
399
|
-
* @returns Result of rule validation or its Promise instance.
|
|
400
|
-
*/
|
|
401
|
-
validate: (value: any, constraints: C) => RuleValidationResult;
|
|
402
|
-
/**
|
|
403
|
-
* Constraints.
|
|
404
|
-
*
|
|
405
|
-
* Passed as the second argument to the validation function, this value can be customized through rule forking.
|
|
406
|
-
*/
|
|
407
|
-
constraints: C;
|
|
408
|
-
}) | (RuleBasicSettings<C> & {
|
|
409
|
-
/**
|
|
410
|
-
* Validation function.
|
|
411
|
-
*
|
|
412
|
-
* @param value - Value to be validated.
|
|
413
|
-
* @returns Result of rule validation or its Promise instance.
|
|
414
|
-
*/
|
|
415
|
-
validate: (value: any) => RuleValidationResult;
|
|
416
|
-
constraints?: any;
|
|
417
|
-
});
|
|
418
|
-
/**
|
|
419
|
-
* Context object for rule validation.
|
|
420
|
-
*/
|
|
421
|
-
interface RuleValidateContext<C = any> {
|
|
422
|
-
/** Rule name. */
|
|
423
|
-
name: string;
|
|
424
|
-
/** Value to be validated. */
|
|
425
|
-
value: any;
|
|
426
|
-
/** Constraints. */
|
|
427
|
-
constraints: C;
|
|
428
|
-
/** Prefix for the path during object enumeration. */
|
|
429
|
-
eachPrefix?: string;
|
|
430
|
-
/** Property name during object enumeration. */
|
|
431
|
-
path?: string | number;
|
|
432
|
-
/** Full path to the property during object enumeration. */
|
|
433
|
-
fullPath?: string;
|
|
434
|
-
/**
|
|
435
|
-
* Message specification for the rule.
|
|
436
|
-
*
|
|
437
|
-
* @see {@link RuleMessageSpec}
|
|
438
|
-
*/
|
|
439
|
-
message?: RuleMessageSpec<C>;
|
|
440
|
-
/** Exception that occurred during rule validation. */
|
|
441
|
-
exception?: any;
|
|
442
|
-
}
|
|
443
|
-
/**
|
|
444
|
-
* Fork settings for the rule.
|
|
445
|
-
*/
|
|
446
|
-
interface RuleForkSettings<C = any> {
|
|
447
|
-
/** New rule name. */
|
|
448
|
-
name?: string;
|
|
449
|
-
/** New constraints. */
|
|
450
|
-
constraints?: C;
|
|
451
|
-
/**
|
|
452
|
-
* New message specification.
|
|
453
|
-
*
|
|
454
|
-
* @see {@link RuleMessageSpec}
|
|
455
|
-
*/
|
|
456
|
-
message?: RuleMessageSpec<C>;
|
|
457
|
-
}
|
|
458
|
-
/**
|
|
459
|
-
* Rule interface.
|
|
460
|
-
*/
|
|
461
|
-
interface Rule<C = any> {
|
|
462
|
-
<EC extends C = C>(constraints: Partial<EC>, overRides?: string | Partial<RuleSettings<EC>>): Rule<EC>;
|
|
463
|
-
/** Rule name. */
|
|
464
|
-
$name: string;
|
|
465
|
-
/**
|
|
466
|
-
* Validate the specified value.
|
|
467
|
-
*
|
|
468
|
-
* @param value - Value to be validated.
|
|
469
|
-
* @param options Validation options for the rule.
|
|
470
|
-
* @returns Execution result of the rule.
|
|
471
|
-
*/
|
|
472
|
-
validate: (value: any, options?: RuleValidationOptions) => RuleResult;
|
|
473
|
-
/**
|
|
474
|
-
* Message specification for the rule.
|
|
475
|
-
*
|
|
476
|
-
* @see {@link RuleMessageSpec}
|
|
477
|
-
*/
|
|
478
|
-
message: RuleMessageSpec<C>;
|
|
479
|
-
/**
|
|
480
|
-
* Constraints.
|
|
481
|
-
*
|
|
482
|
-
* Passed as the second argument to the validation function, this value can be customized through rule forking.
|
|
483
|
-
*/
|
|
484
|
-
constraints: C;
|
|
485
|
-
/**
|
|
486
|
-
* Fork this rule to create a new rule.
|
|
487
|
-
*
|
|
488
|
-
* Used when creating a new rule with customized name, constraints, and message specifications.
|
|
489
|
-
*
|
|
490
|
-
* @param settings - RuleForkSettings
|
|
491
|
-
*/
|
|
492
|
-
fork(settings: RuleForkSettings): Rule<C>;
|
|
493
|
-
/**
|
|
494
|
-
* Validation function.
|
|
495
|
-
*
|
|
496
|
-
* @internal
|
|
497
|
-
*/
|
|
498
|
-
_validate: ((value: any, constraints: C) => RuleValidationResult) | ((value: any) => RuleValidationResult);
|
|
499
|
-
/**
|
|
500
|
-
* Options used in the most recent validation.
|
|
501
|
-
*
|
|
502
|
-
* @see {@link RuleValidationOptions}
|
|
503
|
-
*/
|
|
504
|
-
_lastValidationOptions: RuleValidationOptions;
|
|
505
|
-
/**
|
|
506
|
-
* Retrieve the rule as JSON.
|
|
507
|
-
*/
|
|
508
|
-
toJSON(): {
|
|
509
|
-
/** Rule name. */name: string; /** Constraints. */
|
|
510
|
-
constraints: C;
|
|
511
|
-
};
|
|
512
|
-
}
|
|
513
|
-
/**
|
|
514
|
-
* Create a rule.
|
|
515
|
-
*
|
|
516
|
-
* @param settings - Rule settings.
|
|
517
|
-
* @returns Rule interface.
|
|
518
|
-
*
|
|
519
|
-
* @see {@link RuleSettings}
|
|
520
|
-
*/
|
|
521
|
-
/**
|
|
522
|
-
* Interface available for validation rule.
|
|
523
|
-
*/
|
|
524
|
-
interface VerifiableRule extends Pick<Rule, 'validate' | 'message' | '$name'> {}
|
|
525
|
-
/**
|
|
526
|
-
* Verifiable function type.
|
|
527
|
-
*
|
|
528
|
-
* - Treats it as an error if it returns `string` or `false`.
|
|
529
|
-
* - If it returns `string`, it is considered as an error message.
|
|
530
|
-
*/
|
|
531
|
-
type VerifiableFn = (value: any) => string | boolean | undefined | void | Promise<string | boolean | undefined | void>;
|
|
532
|
-
/**
|
|
533
|
-
* Rule or function available for validation.
|
|
534
|
-
*/
|
|
535
|
-
type VerifiableRuleOrFn = VerifiableRule | VerifiableFn;
|
|
536
|
-
/**
|
|
537
|
-
* Create a validation interface from a function.
|
|
538
|
-
*
|
|
539
|
-
* @param fn - Verifiable function type.
|
|
540
|
-
* @returns Interface available for validation rule.
|
|
541
|
-
*
|
|
542
|
-
* @see {@link VerifiableFn}
|
|
543
|
-
* @see {@link VerifiableRule}
|
|
544
|
-
*/
|
|
545
|
-
//#endregion
|
|
546
|
-
//#region ../vue-utils/dist/vue-utils.d.mts
|
|
547
|
-
type TypedSlot<Prop = any> = (prop: Prop) => VNodeChild;
|
|
548
|
-
type VNodeChildOrSlot<Prop = any> = VNodeChild | TypedSlot<Prop>;
|
|
549
|
-
//#endregion
|
|
550
|
-
//#region src/utils/slots.d.ts
|
|
551
|
-
type RawSlot = (...args: any[]) => any;
|
|
552
|
-
type RawSlots = Record<string, RawSlot>;
|
|
553
|
-
/**
|
|
554
|
-
* Modify all ReturnTypes of the map type of the Slot
|
|
555
|
-
*
|
|
556
|
-
*/
|
|
557
|
-
type NormalizedSlotsReturnTypes<S extends RawSlots, T> = { [K in keyof S]: (...params: Parameters<S[K]>) => T };
|
|
558
|
-
/**
|
|
559
|
-
* Map of slots that can be bound as `v-slots` directives.
|
|
560
|
-
*/
|
|
561
|
-
type SlotsDirectiveBindings<S extends RawSlots> = NormalizedSlotsReturnTypes<S, VNodeChild>;
|
|
562
|
-
/**
|
|
563
|
-
* Interface of the slots object that can be referenced in the setup context
|
|
564
|
-
*/
|
|
565
|
-
/**
|
|
566
|
-
* Map type of slots that can be set as `slots` option in Vue components
|
|
567
|
-
*/
|
|
568
|
-
type ResolvedSlots<S extends RawSlots> = SlotsType<NormalizedSlotsReturnTypes<S, VNode[]>>;
|
|
569
|
-
/**
|
|
570
|
-
* A factory that generates map types for slots that can be set as `slots` options in Vue components and props options for tsx support
|
|
571
|
-
*
|
|
572
|
-
*/
|
|
573
|
-
type DefinedSlots<S extends RawSlots> = ResolvedSlots<S> & {
|
|
574
|
-
(): {
|
|
575
|
-
'v-slots': PropType<SlotsDirectiveBindings<S>>;
|
|
576
|
-
};
|
|
577
|
-
};
|
|
578
|
-
/**
|
|
579
|
-
* Define Vue slot options and props factory for tsx support
|
|
580
|
-
*
|
|
581
|
-
* @example
|
|
582
|
-
* ```tsx
|
|
583
|
-
* import { defineComponent } from 'vue';
|
|
584
|
-
* import { defineSlots } from '@fastkit/vue-utils';
|
|
585
|
-
*
|
|
586
|
-
* const slots = defineSlots({
|
|
587
|
-
* default?: (params: string) => any;
|
|
588
|
-
* requiredSlots: (optionalParams?: number) => any;
|
|
589
|
-
* });
|
|
590
|
-
*
|
|
591
|
-
* const Component = defineComponent({
|
|
592
|
-
* props: {
|
|
593
|
-
* ...slots(), // For tsx
|
|
594
|
-
* },
|
|
595
|
-
* slots,
|
|
596
|
-
* setup() {
|
|
597
|
-
* // .....
|
|
598
|
-
* },
|
|
599
|
-
* });
|
|
600
|
-
*
|
|
601
|
-
* <Component
|
|
602
|
-
* v-slots={{
|
|
603
|
-
* requiredSlots: (optionalParams) => `${optionalParams || 'fallback message'}`,
|
|
604
|
-
* default: () => <div>Hello slots.</div>
|
|
605
|
-
* }}
|
|
606
|
-
* />
|
|
607
|
-
* ```
|
|
608
|
-
*
|
|
609
|
-
* @returns slot options and props factory
|
|
610
|
-
*/
|
|
611
|
-
//#endregion
|
|
612
|
-
//#region ../vue-form-control/dist/vue-form-control.d.mts
|
|
613
|
-
//#region src/schemes/autocapitalize.d.ts
|
|
614
|
-
type FormAutoCapitalize = 'off' | 'on' | 'words' | 'characters'; //#endregion
|
|
615
|
-
//#region src/schemes/autocomplete.d.ts
|
|
616
|
-
declare const FORM_AUTO_COMPLETES: readonly ["off", "on", "name", "honorific-prefix", "given-name", "additional-name", "family-name", "honorific-suffix", "nickname", "email", "username", "new-password", "current-password", "one-time-code", "organization-title", "organization", "street-address", "address-line1", "address-line2", "address-line3", "address-level4", "address-level3", "address-level2", "address-level1", "country", "country-name", "postal-code", "cc-name", "cc-given-name", "cc-additional-name", "cc-family-name", "cc-number", "cc-exp", "cc-exp-month", "cc-exp-year", "cc-csc", "cc-type", "transaction-currency", "transaction-amount", "language", "bday", "bday-day", "bday-month", "bday-year", "sex", "tel", "tel-country-code", "tel-national", "tel-area-code", "tel-local", "tel-extension", "impp", "url", "photo"];
|
|
617
|
-
type FormAutoComplete = (typeof FORM_AUTO_COMPLETES)[number]; //#endregion
|
|
618
|
-
//#region src/schemes/textinput.d.ts
|
|
619
|
-
type TextFinalizer = (value?: string | null) => string | Promise<string>;
|
|
620
|
-
declare const BUILTIN_TEXT_FINALIZERS: Record<"trim" | "removeSpace" | "upper" | "lower" | "halfWidth" | "singleSpace", TextFinalizer>;
|
|
621
|
-
type BuiltinTextFinalizerName = keyof typeof BUILTIN_TEXT_FINALIZERS; //#endregion
|
|
622
|
-
//#region src/schemes/imask.d.ts
|
|
623
|
-
//#endregion
|
|
624
|
-
//#region src/composables/group.d.ts
|
|
625
|
-
declare function createFormGroupProps(): {
|
|
626
|
-
/**
|
|
627
|
-
* Collect the error messages of all nodes belonging to this node
|
|
628
|
-
*
|
|
629
|
-
* By default, a node attempts to render error messages on its own, but enabling this setting allows the parent group to manage the rendering of error messages.
|
|
630
|
-
* If you want to exclude a specific node from this configuration, enable the `showOwnErrors` setting for that node.
|
|
631
|
-
*/
|
|
632
|
-
collectErrorMessages: BooleanConstructor;
|
|
633
|
-
/**
|
|
634
|
-
* Auto scroll to the location of the form when invalid input is detected in the validation on submission
|
|
635
|
-
*/
|
|
636
|
-
disableAutoScroll: BooleanConstructor;
|
|
637
|
-
name: StringConstructor;
|
|
638
|
-
tag: StringConstructor;
|
|
639
|
-
modelValue: import("vue").Prop<unknown, unknown>;
|
|
640
|
-
tabindex: {
|
|
641
|
-
type: (StringConstructor | NumberConstructor)[];
|
|
642
|
-
default: number;
|
|
643
|
-
};
|
|
644
|
-
autofocus: BooleanConstructor;
|
|
645
|
-
disabled: BooleanConstructor;
|
|
646
|
-
readonly: BooleanConstructor;
|
|
647
|
-
viewonly: BooleanConstructor;
|
|
648
|
-
spellcheck: BooleanConstructor;
|
|
649
|
-
required: BooleanConstructor | import("vue").PropType<boolean>;
|
|
650
|
-
clearable: BooleanConstructor;
|
|
651
|
-
validateTiming: {
|
|
652
|
-
type: import("vue").PropType<ValidateTiming>;
|
|
653
|
-
default: ValidateTiming;
|
|
654
|
-
};
|
|
655
|
-
rules: {
|
|
656
|
-
type: import("vue").PropType<RecursiveVerifiableRuleOrFn>;
|
|
657
|
-
default: () => never[];
|
|
658
|
-
};
|
|
659
|
-
validationDeps: import("vue").PropType<(nodeControl: FormNodeControl) => any>;
|
|
660
|
-
error: BooleanConstructor;
|
|
661
|
-
errorMessages: import("vue").PropType<string | string[]>;
|
|
662
|
-
showOwnErrors: {
|
|
663
|
-
type: BooleanConstructor;
|
|
664
|
-
default: undefined;
|
|
665
|
-
};
|
|
666
|
-
detach: BooleanConstructor;
|
|
667
|
-
};
|
|
668
|
-
type FormGroupProps = ExtractPropTypes<ReturnType<typeof createFormGroupProps>>;
|
|
669
|
-
declare function createFormGroupEmits(): {
|
|
670
|
-
'update:modelValue': (value: unknown) => boolean;
|
|
671
|
-
'update:errors': (errors: FormNodeError[]) => boolean;
|
|
672
|
-
change: (value: unknown) => boolean;
|
|
673
|
-
focus: (ev: FocusEvent) => boolean;
|
|
674
|
-
blur: (ev: FocusEvent) => boolean;
|
|
675
|
-
};
|
|
676
|
-
interface FormGroupEmitOptions extends ReturnType<typeof createFormGroupEmits> {}
|
|
677
|
-
type FormGroupContext = SetupContext<FormGroupEmitOptions>;
|
|
678
|
-
interface FormGroupOptions extends FormNodeControlBaseOptions {}
|
|
679
|
-
declare class FormGroupControl extends FormNodeControl {
|
|
680
|
-
readonly _props: FormGroupProps;
|
|
681
|
-
protected _allNodes: Ref<FormNodeControl[]>;
|
|
682
|
-
protected _allInvalidNodes: ComputedRef<FormNodeControl[]>;
|
|
683
|
-
/**
|
|
684
|
-
* All nodes in an error state belonging recursively to this group
|
|
685
|
-
*/
|
|
686
|
-
get allInvalidNodes(): FormNodeControl<any, any, BooleanConstructor>[];
|
|
687
|
-
/**
|
|
688
|
-
* Collect the error messages of all nodes belonging to this node
|
|
689
|
-
*/
|
|
690
|
-
get collectErrorMessages(): boolean;
|
|
691
|
-
/**
|
|
692
|
-
* Auto scroll to the location of the form when invalid input is detected in the validation on submission
|
|
693
|
-
*/
|
|
694
|
-
get disableAutoScroll(): boolean;
|
|
695
|
-
/**
|
|
696
|
-
* List of all nodes belonging to this group
|
|
697
|
-
*
|
|
698
|
-
* This list is a reactive list, and depending on usage, it may contain a large number of nodes.
|
|
699
|
-
* Please be aware that complex operations using this list can lead to performance issues.
|
|
700
|
-
*/
|
|
701
|
-
get allNodes(): FormNodeControl<any, any, BooleanConstructor>[];
|
|
702
|
-
constructor(props: FormGroupProps, ctx: FormGroupContext, options?: FormGroupOptions);
|
|
703
|
-
/** @internal */
|
|
704
|
-
__joinFromNode(node: FormNodeControl): void;
|
|
705
|
-
/** @internal */
|
|
706
|
-
__leaveFromNode(node: FormNodeControl): void;
|
|
707
|
-
/**
|
|
708
|
-
* Recursively retrieve the leading node in an error state within this group
|
|
709
|
-
*/
|
|
710
|
-
findFirstInvalidNode(): FormNodeControl<any, any, BooleanConstructor> | undefined;
|
|
711
|
-
/**
|
|
712
|
-
* Scroll to the position of the leading node in an error state within this group
|
|
713
|
-
*/
|
|
714
|
-
scrollToFirstInvalidNode(): void;
|
|
715
|
-
protected dispatchAutoScroll(): void;
|
|
716
|
-
protected _forceFinalize(): boolean;
|
|
717
|
-
/**
|
|
718
|
-
* Validate the values of this group and all descendant nodes. If there is one or more errors, scroll to the top error node
|
|
719
|
-
*
|
|
720
|
-
* If `disableAutoScroll` is set, scrolling will not be performed.
|
|
721
|
-
*/
|
|
722
|
-
validateAndScroll(): Promise<boolean>;
|
|
723
|
-
}
|
|
724
|
-
//#endregion
|
|
725
|
-
//#region src/composables/form.d.ts
|
|
726
|
-
/**
|
|
727
|
-
* Form action context
|
|
728
|
-
*/
|
|
729
|
-
interface FormActionContext {
|
|
730
|
-
/** Control for form element */
|
|
731
|
-
form: VueForm;
|
|
732
|
-
/** Action has been canceled */
|
|
733
|
-
get canceled(): boolean;
|
|
734
|
-
/** Submit event object */
|
|
735
|
-
get event(): Event;
|
|
736
|
-
/**
|
|
737
|
-
* Cancel the action
|
|
738
|
-
*
|
|
739
|
-
* Currently, this method simply sets the `canceled` property of the context to `false`.
|
|
740
|
-
* This specification is subject to change in the future.
|
|
741
|
-
*/
|
|
742
|
-
cancel: () => void;
|
|
743
|
-
}
|
|
744
|
-
type FormActionHandler = (ctx: FormActionContext) => any;
|
|
745
|
-
/**
|
|
746
|
-
* @deprecated
|
|
747
|
-
* This type has been changed to {@link FormActionHandler}. It will be deprecated in future releases.
|
|
748
|
-
*/
|
|
749
|
-
type FormAction = string | FormActionHandler;
|
|
750
|
-
interface FormInvalidSubmissionAcceptorContext {
|
|
751
|
-
/** Form control */
|
|
752
|
-
readonly form: VueForm;
|
|
753
|
-
/**
|
|
754
|
-
* Accepted
|
|
755
|
-
*/
|
|
756
|
-
get accepted(): boolean;
|
|
757
|
-
/**
|
|
758
|
-
* Accept submission
|
|
759
|
-
*/
|
|
760
|
-
accept(): void;
|
|
761
|
-
}
|
|
762
|
-
type FormInvalidSubmissionAcceptor = (payload: FormInvalidSubmissionAcceptorContext) => void;
|
|
763
|
-
type FormAcceptInvalidSubmissionSpec = boolean | FormInvalidSubmissionAcceptor;
|
|
764
|
-
interface FormOptions extends FormGroupOptions {}
|
|
765
|
-
declare function createFormProps(options?: FormOptions): {
|
|
766
|
-
/**
|
|
767
|
-
* Do not perform default HTML validation when submitting the form
|
|
768
|
-
*
|
|
769
|
-
* @default true
|
|
770
|
-
*/
|
|
771
|
-
novalidate: {
|
|
772
|
-
type: BooleanConstructor;
|
|
773
|
-
default: boolean;
|
|
774
|
-
};
|
|
775
|
-
/**
|
|
776
|
-
* Action settings for form submission
|
|
777
|
-
*
|
|
778
|
-
* Set the destination URL or callback handler
|
|
779
|
-
*/
|
|
780
|
-
action: PropType<FormAction>;
|
|
781
|
-
/**
|
|
782
|
-
* Automatic validation on transmission
|
|
783
|
-
*
|
|
784
|
-
* If this setting is enabled, all validation will be done before transmission and the transmission process will be canceled if there are invalid entries
|
|
785
|
-
*
|
|
786
|
-
* @default true
|
|
787
|
-
*/
|
|
788
|
-
autoValidate: {
|
|
789
|
-
type: BooleanConstructor;
|
|
790
|
-
default: boolean;
|
|
791
|
-
};
|
|
792
|
-
/**
|
|
793
|
-
* Form is sending
|
|
794
|
-
*/
|
|
795
|
-
sending: BooleanConstructor;
|
|
796
|
-
/**
|
|
797
|
-
* Accept invalid values during form submission
|
|
798
|
-
*
|
|
799
|
-
* @default false
|
|
800
|
-
*/
|
|
801
|
-
acceptInvalidSubmission: {
|
|
802
|
-
type: PropType<FormAcceptInvalidSubmissionSpec>;
|
|
803
|
-
default: boolean;
|
|
804
|
-
};
|
|
805
|
-
collectErrorMessages: BooleanConstructor;
|
|
806
|
-
disableAutoScroll: BooleanConstructor;
|
|
807
|
-
name: StringConstructor;
|
|
808
|
-
tag: StringConstructor;
|
|
809
|
-
modelValue: import("vue").Prop<unknown, unknown>;
|
|
810
|
-
tabindex: {
|
|
811
|
-
type: (StringConstructor | NumberConstructor)[];
|
|
812
|
-
default: number;
|
|
813
|
-
};
|
|
814
|
-
autofocus: BooleanConstructor;
|
|
815
|
-
disabled: BooleanConstructor;
|
|
816
|
-
readonly: BooleanConstructor;
|
|
817
|
-
viewonly: BooleanConstructor;
|
|
818
|
-
spellcheck: BooleanConstructor;
|
|
819
|
-
required: BooleanConstructor | PropType<boolean>;
|
|
820
|
-
clearable: BooleanConstructor;
|
|
821
|
-
validateTiming: {
|
|
822
|
-
type: PropType<ValidateTiming>;
|
|
823
|
-
default: ValidateTiming;
|
|
824
|
-
};
|
|
825
|
-
rules: {
|
|
826
|
-
type: PropType<RecursiveVerifiableRuleOrFn>;
|
|
827
|
-
default: () => never[];
|
|
828
|
-
};
|
|
829
|
-
validationDeps: PropType<(nodeControl: FormNodeControl) => any>;
|
|
830
|
-
error: BooleanConstructor;
|
|
831
|
-
errorMessages: PropType<string | string[]>;
|
|
832
|
-
showOwnErrors: {
|
|
833
|
-
type: BooleanConstructor;
|
|
834
|
-
default: undefined;
|
|
835
|
-
};
|
|
836
|
-
detach: BooleanConstructor;
|
|
837
|
-
};
|
|
838
|
-
type FormProps = ExtractPropTypes<ReturnType<typeof createFormProps>>;
|
|
839
|
-
declare function createFormEmits(): {
|
|
840
|
-
/**
|
|
841
|
-
* Form Submission
|
|
842
|
-
*
|
|
843
|
-
* This event is notified when the validation is complete and before the action is called
|
|
844
|
-
*
|
|
845
|
-
* @param form - VueForm instance
|
|
846
|
-
* @param ev - Event
|
|
847
|
-
*/
|
|
848
|
-
submit: (form: VueForm, ev: Event) => boolean;
|
|
849
|
-
/**
|
|
850
|
-
* Updating sending status
|
|
851
|
-
*
|
|
852
|
-
* @param sending - sending status
|
|
853
|
-
* @param form - VueForm instance
|
|
854
|
-
*/
|
|
855
|
-
'update:sending': (sending: boolean, form: VueForm) => boolean;
|
|
856
|
-
/**
|
|
857
|
-
* The form action has been finished
|
|
858
|
-
*
|
|
859
|
-
* @param actionContext - Form action context
|
|
860
|
-
*/
|
|
861
|
-
finishAction: (actionContext: FormActionContext) => boolean;
|
|
862
|
-
/**
|
|
863
|
-
* Failed automatic validation
|
|
864
|
-
*
|
|
865
|
-
* @param form - VueForm instance
|
|
866
|
-
*/
|
|
867
|
-
autoValidationFailed: (form: VueForm) => boolean;
|
|
868
|
-
'update:modelValue': (value: unknown) => boolean;
|
|
869
|
-
'update:errors': (errors: FormNodeError[]) => boolean;
|
|
870
|
-
change: (value: unknown) => boolean;
|
|
871
|
-
focus: (ev: FocusEvent) => boolean;
|
|
872
|
-
blur: (ev: FocusEvent) => boolean;
|
|
873
|
-
};
|
|
874
|
-
interface FormEmitOptions extends ReturnType<typeof createFormEmits> {}
|
|
875
|
-
type FormContext = SetupContext<FormEmitOptions>;
|
|
876
|
-
/**
|
|
877
|
-
* Option to check the submittability of the form
|
|
878
|
-
*/
|
|
879
|
-
interface PrepareFormSubmissionOptions {
|
|
880
|
-
/** Skip operability check */
|
|
881
|
-
skipOperationCheck?: boolean;
|
|
882
|
-
/** Skip in-progress check during submission */
|
|
883
|
-
skipSendingCheck?: boolean;
|
|
884
|
-
/** Skip validation */
|
|
885
|
-
skipValidation?: boolean;
|
|
886
|
-
}
|
|
887
|
-
/**
|
|
888
|
-
* Dispatch option for form action
|
|
889
|
-
*/
|
|
890
|
-
interface DispatchFormActionOptions extends PrepareFormSubmissionOptions {
|
|
891
|
-
/** Submit event object */
|
|
892
|
-
event?: Event;
|
|
893
|
-
}
|
|
894
|
-
interface ComputedFormAttributes {
|
|
895
|
-
ref: Ref<HTMLFormElement | null>;
|
|
896
|
-
action: string | undefined;
|
|
897
|
-
spellcheck: boolean;
|
|
898
|
-
onSubmit: (ev: Event) => void;
|
|
899
|
-
novalidate: boolean;
|
|
900
|
-
'aria-disabled': boolean;
|
|
901
|
-
}
|
|
902
|
-
/**
|
|
903
|
-
* Control for form element
|
|
904
|
-
*/
|
|
905
|
-
declare class VueForm extends FormGroupControl {
|
|
906
|
-
readonly _props: FormProps;
|
|
907
|
-
protected _formContext: FormContext;
|
|
908
|
-
protected _nativeAction: ComputedRef<string | undefined>;
|
|
909
|
-
protected _fnAction: ComputedRef<FormActionHandler | undefined>;
|
|
910
|
-
protected _formRef: Ref<HTMLFormElement | null, HTMLFormElement | null>;
|
|
911
|
-
protected _actionPromise: Ref<{
|
|
912
|
-
then: <TResult1 = any, TResult2 = never>(onfulfilled?: ((value: any) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
|
|
913
|
-
catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<any>;
|
|
914
|
-
finally: (onfinally?: (() => void) | null | undefined) => Promise<any>;
|
|
915
|
-
readonly [Symbol.toStringTag]: string;
|
|
916
|
-
} | null, Promise<any> | {
|
|
917
|
-
then: <TResult1 = any, TResult2 = never>(onfulfilled?: ((value: any) => TResult1 | PromiseLike<TResult1>) | null | undefined, onrejected?: ((reason: any) => TResult2 | PromiseLike<TResult2>) | null | undefined) => Promise<TResult1 | TResult2>;
|
|
918
|
-
catch: <TResult = never>(onrejected?: ((reason: any) => TResult | PromiseLike<TResult>) | null | undefined) => Promise<any>;
|
|
919
|
-
finally: (onfinally?: (() => void) | null | undefined) => Promise<any>;
|
|
920
|
-
readonly [Symbol.toStringTag]: string;
|
|
921
|
-
} | null>;
|
|
922
|
-
protected _sending: ComputedRef<boolean>;
|
|
923
|
-
protected _formAttrs: ComputedRef<ComputedFormAttributes>;
|
|
924
|
-
/**
|
|
925
|
-
* Do not perform default HTML validation when submitting the form
|
|
926
|
-
*/
|
|
927
|
-
get novalidate(): boolean;
|
|
928
|
-
get nativeAction(): string | undefined;
|
|
929
|
-
/**
|
|
930
|
-
* Executing asynchronous submission action
|
|
931
|
-
*/
|
|
932
|
-
get sending(): boolean;
|
|
933
|
-
/**
|
|
934
|
-
* Automatic validation on transmission
|
|
935
|
-
*
|
|
936
|
-
* If this setting is enabled, all validation will be done before transmission and the transmission process will be canceled if there are invalid entries
|
|
937
|
-
*
|
|
938
|
-
* @default true
|
|
939
|
-
*/
|
|
940
|
-
get autoValidate(): boolean;
|
|
941
|
-
/**
|
|
942
|
-
* Attributes to apply to the form element
|
|
943
|
-
*/
|
|
944
|
-
get formAttrs(): ComputedFormAttributes;
|
|
945
|
-
constructor(props: FormProps, ctx: FormContext, options?: FormOptions);
|
|
946
|
-
/**
|
|
947
|
-
* Generates SubmitEvent and dispatches it to the form element
|
|
948
|
-
*
|
|
949
|
-
* - If `preventDefault()` is called by the event handler, the sending process is canceled
|
|
950
|
-
*/
|
|
951
|
-
submit(): void;
|
|
952
|
-
/**
|
|
953
|
-
* Returns `true` if the form is in a submittable state after performing state checks and validation
|
|
954
|
-
*
|
|
955
|
-
* @param options - PrepareFormSubmissionOptions
|
|
956
|
-
* @returns `true` if submission is possible
|
|
957
|
-
*/
|
|
958
|
-
prepareFormSubmission(options?: PrepareFormSubmissionOptions): Promise<boolean>;
|
|
959
|
-
protected _dispatchAction(options?: DispatchFormActionOptions): Promise<void>;
|
|
960
|
-
/**
|
|
961
|
-
* Dispatch the specified action function
|
|
962
|
-
*
|
|
963
|
-
* @param options - Dispatch option for form action
|
|
964
|
-
*/
|
|
965
|
-
dispatchAction(options?: DispatchFormActionOptions): Promise<void>;
|
|
966
|
-
/**
|
|
967
|
-
* Handler for form element submission
|
|
968
|
-
*
|
|
969
|
-
* @param ev - Submit event object
|
|
970
|
-
*/
|
|
971
|
-
handleSubmit(ev: Event): void;
|
|
972
|
-
}
|
|
973
|
-
//#endregion
|
|
974
|
-
//#region src/service.d.ts
|
|
975
|
-
type FormErrorMessageResolver = (error: FormNodeError, node?: FormNodeControl) => string | void;
|
|
976
|
-
/**
|
|
977
|
-
* Scroll option for the form element
|
|
978
|
-
*/
|
|
979
|
-
interface VueFormScrollOptions {
|
|
980
|
-
/**
|
|
981
|
-
* Default scroll option
|
|
982
|
-
*
|
|
983
|
-
* @see {@link ScrollIntoViewOptions}
|
|
984
|
-
*/
|
|
985
|
-
options?: ScrollIntoViewOptions;
|
|
986
|
-
/**
|
|
987
|
-
* Scroll handler function
|
|
988
|
-
*
|
|
989
|
-
* @param element - Scroll target element
|
|
990
|
-
* @param options - Scroll option
|
|
991
|
-
* @returns When canceling the default scroll and implementing custom scrolling within the application, return a truthy value.
|
|
992
|
-
*/
|
|
993
|
-
fn?: (element: HTMLElement, options?: ScrollIntoViewOptions) => void;
|
|
994
|
-
}
|
|
995
|
-
interface VueFormServiceOptions {
|
|
996
|
-
errorMessageResolvers?: FormErrorMessageResolver[];
|
|
997
|
-
/**
|
|
998
|
-
* Scroll option for the form element
|
|
999
|
-
*
|
|
1000
|
-
* @see {@link VueFormScrollOptions}
|
|
1001
|
-
*/
|
|
1002
|
-
scroll?: VueFormScrollOptions;
|
|
1003
|
-
/**
|
|
1004
|
-
* Default value for text input autocomplete.
|
|
1005
|
-
*
|
|
1006
|
-
* @see {@link FormAutoComplete}
|
|
1007
|
-
*/
|
|
1008
|
-
defaultAutocomplete?: FormAutoComplete | boolean | undefined;
|
|
1009
|
-
}
|
|
1010
|
-
/**
|
|
1011
|
-
* Root service of `vue-form-control`
|
|
1012
|
-
*/
|
|
1013
|
-
declare class VueFormService {
|
|
1014
|
-
readonly errorMessageResolvers: FormErrorMessageResolver[];
|
|
1015
|
-
/**
|
|
1016
|
-
* Scroll option for the form element
|
|
1017
|
-
*
|
|
1018
|
-
* @see {@link VueFormScrollOptions}
|
|
1019
|
-
*/
|
|
1020
|
-
readonly scroll?: VueFormScrollOptions;
|
|
1021
|
-
constructor(options?: VueFormServiceOptions);
|
|
1022
|
-
addMessageResolver(resolvers: FormErrorMessageResolver | FormErrorMessageResolver[]): void;
|
|
1023
|
-
resolveErrorMessage(error: FormNodeError, node?: FormNodeControl): string | void;
|
|
1024
|
-
scrollToElement(element: HTMLElement, options?: ScrollIntoViewOptions): void;
|
|
1025
|
-
} //#endregion
|
|
1026
|
-
//#region src/composables/wrapper.d.ts
|
|
1027
|
-
type RequiredChipSource = (() => VNodeChild) | string | boolean;
|
|
1028
|
-
type FormNodeWrapperHinttip = boolean | string | (() => VNodeChild);
|
|
1029
|
-
type FormNodeWrapperHinttipDelay = 'click' | number;
|
|
1030
|
-
declare function createFormNodeWrapperProps$1(): {
|
|
1031
|
-
/**
|
|
1032
|
-
* Instance of FormNodeControl
|
|
1033
|
-
*
|
|
1034
|
-
* When this setting is applied, the state and error messages will always refer to the state of this node. If not set, it will attempt to compute them from descendant nodes.
|
|
1035
|
-
*/
|
|
1036
|
-
nodeControl: PropType<FormNodeControl>; /** label */
|
|
1037
|
-
label: PropType<VNodeChildOrSlot>; /** hint message */
|
|
1038
|
-
hint: PropType<VNodeChildOrSlot>; /** Settings for displaying hint as tips */
|
|
1039
|
-
hinttip: PropType<FormNodeWrapperHinttip>; /** hint tip Display Delay */
|
|
1040
|
-
hinttipDelay: PropType<FormNodeWrapperHinttipDelay>; /** Elements to be added to the information message */
|
|
1041
|
-
infoAppends: PropType<VNodeChildOrSlot>; /** Hide information */
|
|
1042
|
-
hiddenInfo: BooleanConstructor; /** Chip(required) display settings */
|
|
1043
|
-
requiredChip: PropType<RequiredChipSource>;
|
|
1044
|
-
/**
|
|
1045
|
-
* Collect the error messages of all nodes belonging to this node
|
|
1046
|
-
*
|
|
1047
|
-
* By default, a node attempts to render error messages on its own, but enabling this setting allows the parent wrapper to manage the rendering of error messages.
|
|
1048
|
-
* If you want to exclude a specific node from this configuration, enable the `showOwnErrors` setting for that node.
|
|
1049
|
-
*
|
|
1050
|
-
* @default true
|
|
1051
|
-
*/
|
|
1052
|
-
collectErrorMessages: {
|
|
1053
|
-
type: BooleanConstructor;
|
|
1054
|
-
default: boolean;
|
|
1055
|
-
};
|
|
1056
|
-
};
|
|
1057
|
-
type FormNodeWrapperProps = ExtractPropTypes<ReturnType<typeof createFormNodeWrapperProps$1>>;
|
|
1058
|
-
declare function createFormNodeWrapperEmits(): {
|
|
1059
|
-
clickLabel: (ev: PointerEvent, wrapper: FormNodeWrapper) => boolean;
|
|
1060
|
-
};
|
|
1061
|
-
type FormNodeWrapperEmitOptions = ReturnType<typeof createFormNodeWrapperEmits>;
|
|
1062
|
-
type FormNodeWrapperContext = SetupContext<FormNodeWrapperEmitOptions>;
|
|
1063
|
-
interface FormNodeWrapperOptions {
|
|
1064
|
-
hinttipPrepend?: () => VNodeChild;
|
|
1065
|
-
}
|
|
1066
|
-
/**
|
|
1067
|
-
* Form node wrapper
|
|
1068
|
-
*/
|
|
1069
|
-
declare class FormNodeWrapper {
|
|
1070
|
-
readonly _props: FormNodeWrapperProps;
|
|
1071
|
-
readonly _service: VueFormService;
|
|
1072
|
-
protected _ctx: FormNodeWrapperContext | undefined;
|
|
1073
|
-
protected _allNodes: Ref<FormNodeControl[]>;
|
|
1074
|
-
protected _labelSlot: ComputedRef<TypedSlot<FormNodeWrapper> | undefined>;
|
|
1075
|
-
protected _hintSlot: ComputedRef<TypedSlot<FormNodeWrapper> | undefined>;
|
|
1076
|
-
protected _hinttip: ComputedRef<VNodeChild>;
|
|
1077
|
-
protected _hinttipDelay: ComputedRef<FormNodeWrapperHinttipDelay | undefined>;
|
|
1078
|
-
protected _hinttipPrepend?: () => VNodeChild;
|
|
1079
|
-
protected _infoAppendsSlot: ComputedRef<TypedSlot<FormNodeWrapper> | undefined>;
|
|
1080
|
-
protected _validating: ComputedRef<boolean>;
|
|
1081
|
-
protected _pending: ComputedRef<boolean>;
|
|
1082
|
-
protected _focused: ComputedRef<boolean>;
|
|
1083
|
-
protected _dirty: ComputedRef<boolean>;
|
|
1084
|
-
protected _disabled: ComputedRef<boolean>;
|
|
1085
|
-
protected _readonly: ComputedRef<boolean>;
|
|
1086
|
-
protected _viewonly: ComputedRef<boolean>;
|
|
1087
|
-
protected _touched: ComputedRef<boolean>;
|
|
1088
|
-
protected _required: ComputedRef<boolean>;
|
|
1089
|
-
protected _invalid: ComputedRef<boolean>;
|
|
1090
|
-
protected _resolvedErrorMessages: ComputedRef<FormNodeErrorMessageSource[]>;
|
|
1091
|
-
/**
|
|
1092
|
-
* Root service of `vue-form-control`
|
|
1093
|
-
*
|
|
1094
|
-
* @see {@link VueFormService}
|
|
1095
|
-
*/
|
|
1096
|
-
get service(): VueFormService;
|
|
1097
|
-
/**
|
|
1098
|
-
* Instance of FormNodeControl
|
|
1099
|
-
*
|
|
1100
|
-
* When this setting is applied, the state and error messages will always refer to the state of this node. If not set, it will attempt to compute them from descendant nodes.
|
|
1101
|
-
*/
|
|
1102
|
-
get nodeControl(): FormNodeControl | undefined;
|
|
1103
|
-
/**
|
|
1104
|
-
* List of all nodes belonging to this wrapper
|
|
1105
|
-
*
|
|
1106
|
-
* This list is a reactive list, and depending on usage, it may contain a large number of nodes.
|
|
1107
|
-
* Please be aware that complex operations using this list can lead to performance issues.
|
|
1108
|
-
*/
|
|
1109
|
-
get allNodes(): FormNodeControl<any, any, BooleanConstructor>[];
|
|
1110
|
-
/**
|
|
1111
|
-
* At least one of the associated nodes is validating the value
|
|
1112
|
-
*/
|
|
1113
|
-
get validating(): boolean;
|
|
1114
|
-
/**
|
|
1115
|
-
* Pending processing
|
|
1116
|
-
*
|
|
1117
|
-
* This is marked as `true` during the validation and finalization process of the value
|
|
1118
|
-
*/
|
|
1119
|
-
get pending(): boolean;
|
|
1120
|
-
/**
|
|
1121
|
-
* One of the associated nodes is currently focused
|
|
1122
|
-
*/
|
|
1123
|
-
get focused(): boolean;
|
|
1124
|
-
/**
|
|
1125
|
-
* The changes to the input value have not been committed yet
|
|
1126
|
-
*
|
|
1127
|
-
* @see {@link FormNodeControl.initialValue initialValue}
|
|
1128
|
-
*/
|
|
1129
|
-
get dirty(): boolean;
|
|
1130
|
-
/**
|
|
1131
|
-
* The input value has not been changed from its initial value
|
|
1132
|
-
*/
|
|
1133
|
-
get pristine(): boolean;
|
|
1134
|
-
/**
|
|
1135
|
-
* All associated nodes are disabled
|
|
1136
|
-
*/
|
|
1137
|
-
get isDisabled(): boolean;
|
|
1138
|
-
/**
|
|
1139
|
-
* All associated nodes are read-only
|
|
1140
|
-
*/
|
|
1141
|
-
get isReadonly(): boolean;
|
|
1142
|
-
/**
|
|
1143
|
-
* All associated nodes are view-only
|
|
1144
|
-
*/
|
|
1145
|
-
get isViewonly(): boolean;
|
|
1146
|
-
/**
|
|
1147
|
-
* All associated nodes are operable
|
|
1148
|
-
*/
|
|
1149
|
-
get canOperation(): boolean;
|
|
1150
|
-
/**
|
|
1151
|
-
* One of the associated nodes has already been touched
|
|
1152
|
-
*/
|
|
1153
|
-
get touched(): boolean;
|
|
1154
|
-
/**
|
|
1155
|
-
* None of the associated nodes has been touched yet
|
|
1156
|
-
*/
|
|
1157
|
-
get untouched(): boolean;
|
|
1158
|
-
/**
|
|
1159
|
-
* One of the associated nodes requires input
|
|
1160
|
-
*/
|
|
1161
|
-
get isRequired(): boolean;
|
|
1162
|
-
/**
|
|
1163
|
-
* There is an error in the input value of one of the associated nodes
|
|
1164
|
-
*/
|
|
1165
|
-
get invalid(): boolean;
|
|
1166
|
-
/**
|
|
1167
|
-
* No errors in the input values of all associated nodes
|
|
1168
|
-
*/
|
|
1169
|
-
get valid(): boolean;
|
|
1170
|
-
/**
|
|
1171
|
-
* Collect the error messages of all nodes belonging to this node
|
|
1172
|
-
*/
|
|
1173
|
-
get collectErrorMessages(): boolean;
|
|
1174
|
-
/**
|
|
1175
|
-
* Source code for all collected error messages
|
|
1176
|
-
*
|
|
1177
|
-
* This list is generated based on the setting of {@link FormNodeControl.showOwnErrors showOwnErrors}.
|
|
1178
|
-
*
|
|
1179
|
-
* @see {@link FormNodeErrorMessageSource}
|
|
1180
|
-
*/
|
|
1181
|
-
get errorMessages(): FormNodeErrorMessageSource[];
|
|
1182
|
-
/**
|
|
1183
|
-
* Source code for the first error message among all collected messages
|
|
1184
|
-
*
|
|
1185
|
-
* This list is generated based on the setting of {@link FormNodeControl.showOwnErrors showOwnErrors}.
|
|
1186
|
-
*
|
|
1187
|
-
* @see {@link FormNodeErrorMessageSource}
|
|
1188
|
-
*/
|
|
1189
|
-
get firstErrorMessage(): FormNodeErrorMessageSource | undefined;
|
|
1190
|
-
get labelSlot(): TypedSlot<FormNodeWrapper> | undefined;
|
|
1191
|
-
get hintSlot(): TypedSlot<FormNodeWrapper> | undefined;
|
|
1192
|
-
get infoAppendsSlot(): TypedSlot<FormNodeWrapper> | undefined;
|
|
1193
|
-
get hinttipDelay(): FormNodeWrapperHinttipDelay | undefined;
|
|
1194
|
-
constructor(props: FormNodeWrapperProps, ctx: FormNodeWrapperContext, options?: FormNodeWrapperOptions);
|
|
1195
|
-
renderLabel(): import("vue").VNodeArrayChildren | undefined;
|
|
1196
|
-
renderHint(allowNotFocused?: boolean): import("vue").VNodeArrayChildren | undefined;
|
|
1197
|
-
renderInfoAppends(): import("vue").VNodeArrayChildren | undefined;
|
|
1198
|
-
protected _getContextOrDie(): {
|
|
1199
|
-
attrs: import("vue").Attrs;
|
|
1200
|
-
slots: Readonly<{
|
|
1201
|
-
[name: string]: import("vue").Slot<any> | undefined;
|
|
1202
|
-
}>;
|
|
1203
|
-
emit: (event: "clickLabel", ev: PointerEvent, wrapper: FormNodeWrapper) => void;
|
|
1204
|
-
expose: <Exposed extends Record<string, any> = Record<string, any>>(exposed?: Exposed) => void;
|
|
1205
|
-
};
|
|
1206
|
-
renderFirstError(slotsOverrides?: FormNodeErrorSlotsSource): import("vue").VNodeArrayChildren | undefined;
|
|
1207
|
-
renderMessage(allowNotFocused?: boolean): import("vue").VNodeArrayChildren | " ";
|
|
1208
|
-
renderHinttip(): {
|
|
1209
|
-
tip: VNodeChild;
|
|
1210
|
-
hint: VNodeChild;
|
|
1211
|
-
} | undefined;
|
|
1212
|
-
/** @internal */
|
|
1213
|
-
__joinFromNode(node: FormNodeControl): void;
|
|
1214
|
-
/** @internal */
|
|
1215
|
-
__leaveFromNode(node: FormNodeControl): void;
|
|
1216
|
-
/**
|
|
1217
|
-
* Generate a Proxy instance that extends the interface for this wrapper.
|
|
1218
|
-
*
|
|
1219
|
-
* @param trait - trait object
|
|
1220
|
-
* @returns Mixed-in Proxy
|
|
1221
|
-
*/
|
|
1222
|
-
extend<U extends object>(trait: U): Mixin<this, U>;
|
|
1223
|
-
}
|
|
1224
|
-
//#endregion
|
|
1225
|
-
//#region src/composables/node.d.ts
|
|
1226
|
-
type RecursiveVerifiableRuleOrFn = RecursiveArray<VerifiableRuleOrFn>;
|
|
1227
|
-
type FormNodeType = string | number | symbol;
|
|
1228
|
-
interface FormNodeError extends Omit<ValidationError, '$$symbol'> {}
|
|
1229
|
-
/**
|
|
1230
|
-
* Validation Timing
|
|
1231
|
-
*
|
|
1232
|
-
* - `always` Always validate
|
|
1233
|
-
* - `touch` Once touched, always validated thereafter.
|
|
1234
|
-
* - `blur` Once the focus is removed from the element at least once, subsequent validations will always be performed.
|
|
1235
|
-
* - `change` Once the value is changed at least once, subsequent validations will always be performed.
|
|
1236
|
-
* - `manual` Validation is not performed automatically. Only manual validation through programming is possible.
|
|
1237
|
-
*
|
|
1238
|
-
*/
|
|
1239
|
-
type ValidateTiming = 'always' | 'touch' | 'blur' | 'change' | 'manual';
|
|
1240
|
-
type ValidationResult = ValidationError[] | null;
|
|
1241
|
-
type ValidateResolver = (result: ValidationResult) => void;
|
|
1242
|
-
type FormNodeStateExtension = (nodeControl: FormNodeControl, computedValue: boolean) => boolean;
|
|
1243
|
-
interface FormNodeStateExtensions {
|
|
1244
|
-
disabled?: FormNodeStateExtension;
|
|
1245
|
-
readonly?: FormNodeStateExtension;
|
|
1246
|
-
viewonly?: FormNodeStateExtension;
|
|
1247
|
-
canOperation?: FormNodeStateExtension;
|
|
1248
|
-
}
|
|
1249
|
-
interface FormNodeControlBaseOptions {
|
|
1250
|
-
nodeType?: FormNodeType;
|
|
1251
|
-
requiredFactory?: () => Rule<any> | undefined;
|
|
1252
|
-
defaultValidateTiming?: ValidateTiming;
|
|
1253
|
-
validationValue?: () => any;
|
|
1254
|
-
stateExtensions?: FormNodeStateExtensions;
|
|
1255
|
-
/** Add a custom error message */
|
|
1256
|
-
errorMessages?: () => string | string[] | undefined;
|
|
1257
|
-
}
|
|
1258
|
-
interface FormNodeControlOptions<T = any, D = T, Required extends Prop<any> = BooleanConstructor> extends FormNodeControlBaseOptions {
|
|
1259
|
-
modelValue?: Prop<T, D>;
|
|
1260
|
-
required?: Required;
|
|
1261
|
-
shallow?: boolean;
|
|
1262
|
-
}
|
|
1263
|
-
type FormNodeErrorSlotsSource = {
|
|
1264
|
-
/** Error message */error?: (error: FormNodeError) => any;
|
|
1265
|
-
} & { [K in `error:${string}`]: (error: FormNodeError) => any };
|
|
1266
|
-
declare function createFormNodeProps<T, D = T, Required extends Prop<any> = PropType<boolean>>(options?: FormNodeControlOptions<T, D, Required>): {
|
|
1267
|
-
/**
|
|
1268
|
-
* form node name
|
|
1269
|
-
*
|
|
1270
|
-
* This is set as is for input elements.
|
|
1271
|
-
*/
|
|
1272
|
-
name: StringConstructor;
|
|
1273
|
-
/**
|
|
1274
|
-
* Tag string for node searching
|
|
1275
|
-
*/
|
|
1276
|
-
tag: StringConstructor; /** model value */
|
|
1277
|
-
modelValue: Prop<T, D>;
|
|
1278
|
-
/**
|
|
1279
|
-
* Tab index
|
|
1280
|
-
*
|
|
1281
|
-
* @default 0
|
|
1282
|
-
*
|
|
1283
|
-
* @see https://developer.mozilla.org/docs/Web/HTML/Global_attributes/tabindex
|
|
1284
|
-
*/
|
|
1285
|
-
tabindex: {
|
|
1286
|
-
type: (StringConstructor | NumberConstructor)[];
|
|
1287
|
-
default: number;
|
|
1288
|
-
}; /** Automatic focus */
|
|
1289
|
-
autofocus: BooleanConstructor; /** disabled state */
|
|
1290
|
-
disabled: BooleanConstructor; /** read-only state */
|
|
1291
|
-
readonly: BooleanConstructor; /** view-only state */
|
|
1292
|
-
viewonly: BooleanConstructor;
|
|
1293
|
-
/**
|
|
1294
|
-
* Spell Check Settings
|
|
1295
|
-
*
|
|
1296
|
-
* @see https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck
|
|
1297
|
-
*/
|
|
1298
|
-
spellcheck: BooleanConstructor; /** required */
|
|
1299
|
-
required: BooleanConstructor | Required; /** clearable */
|
|
1300
|
-
clearable: BooleanConstructor;
|
|
1301
|
-
/**
|
|
1302
|
-
* Validation Timing
|
|
1303
|
-
*
|
|
1304
|
-
* - `always` Always validate
|
|
1305
|
-
* - `touch` Once touched, always validated thereafter.
|
|
1306
|
-
* - `blur` Once the focus is removed from the element at least once, subsequent validations will always be performed.
|
|
1307
|
-
* - `change` Once the value is changed at least once, subsequent validations will always be performed.
|
|
1308
|
-
* - `manual` Validation is not performed automatically. Only manual validation through programming is possible.
|
|
1309
|
-
*
|
|
1310
|
-
* @see {@link ValidateTiming}
|
|
1311
|
-
*/
|
|
1312
|
-
validateTiming: {
|
|
1313
|
-
type: PropType<ValidateTiming>;
|
|
1314
|
-
default: ValidateTiming;
|
|
1315
|
-
};
|
|
1316
|
-
/**
|
|
1317
|
-
* List of validation rules
|
|
1318
|
-
*/
|
|
1319
|
-
rules: {
|
|
1320
|
-
type: PropType<RecursiveVerifiableRuleOrFn>;
|
|
1321
|
-
default: () => never[];
|
|
1322
|
-
};
|
|
1323
|
-
/**
|
|
1324
|
-
* Validation dependencies
|
|
1325
|
-
*
|
|
1326
|
-
* In vue-form-control, validation is performed again whenever the input value or related values change. However, if the validation condition references values from other nodes or external reactive values that are not included in the node, those changes cannot be detected.
|
|
1327
|
-
* By registering a function that returns such external reactive values, validation can be automatically triggered.
|
|
1328
|
-
*/
|
|
1329
|
-
validationDeps: PropType<(nodeControl: FormNodeControl) => any>; /** Force an error state. */
|
|
1330
|
-
error: BooleanConstructor; /** List of error messages. */
|
|
1331
|
-
errorMessages: PropType<string | string[]>;
|
|
1332
|
-
/**
|
|
1333
|
-
* Display error messages on this node itself
|
|
1334
|
-
*
|
|
1335
|
-
* If `true`, attempts to render errors for this node itself; if `false`, delegates error message display to the associated form group or wrapper.
|
|
1336
|
-
*
|
|
1337
|
-
* @default `false` if a parent group or wrapper exists and the `collectErrorMessages` setting is enabled; otherwise, `true`.
|
|
1338
|
-
*/
|
|
1339
|
-
showOwnErrors: {
|
|
1340
|
-
type: BooleanConstructor;
|
|
1341
|
-
default: undefined;
|
|
1342
|
-
};
|
|
1343
|
-
/**
|
|
1344
|
-
* Detach and become independent from the parent node
|
|
1345
|
-
*
|
|
1346
|
-
* By default, the form node inherits the state of the form node existing in the parent tree and notifies the parent node of its own validation status, among other things. This option disables that behavior, allowing this node and its descendants to be detached from the parent node.
|
|
1347
|
-
*/
|
|
1348
|
-
detach: BooleanConstructor;
|
|
1349
|
-
};
|
|
1350
|
-
type FormNodeProps = ExtractPropTypes<ReturnType<typeof createFormNodeProps>>;
|
|
1351
|
-
declare class Wrapper<T, D = T> {
|
|
1352
|
-
wrapped(options: FormNodeControlOptions<T, D>): {
|
|
1353
|
-
/**
|
|
1354
|
-
* Update Model Values
|
|
1355
|
-
*/
|
|
1356
|
-
'update:modelValue': (value: T | D) => boolean;
|
|
1357
|
-
/**
|
|
1358
|
-
* Updating error content.
|
|
1359
|
-
* @param errors - List of error contents.
|
|
1360
|
-
*/
|
|
1361
|
-
'update:errors': (errors: FormNodeError[]) => boolean;
|
|
1362
|
-
/**
|
|
1363
|
-
* Update Model Values
|
|
1364
|
-
*/
|
|
1365
|
-
change: (value: T | D) => boolean;
|
|
1366
|
-
/**
|
|
1367
|
-
* Focus on an element.
|
|
1368
|
-
* @param ev - FocusEvent
|
|
1369
|
-
*/
|
|
1370
|
-
focus: (ev: FocusEvent) => boolean;
|
|
1371
|
-
/**
|
|
1372
|
-
* The focus is removed from an element.
|
|
1373
|
-
* @param ev - FocusEvent
|
|
1374
|
-
*/
|
|
1375
|
-
blur: (ev: FocusEvent) => boolean;
|
|
1376
|
-
};
|
|
1377
|
-
}
|
|
1378
|
-
interface FormNodeEmitOptions<T, D = T> extends ReturnType<Wrapper<T, D>['wrapped']> {}
|
|
1379
|
-
type FormNodeContext<T, D = T> = SetupContext<FormNodeEmitOptions<T, D>>;
|
|
1380
|
-
/**
|
|
1381
|
-
* Source code for rendering error messages of form nodes
|
|
1382
|
-
*/
|
|
1383
|
-
interface FormNodeErrorMessageSource {
|
|
1384
|
-
/** Render error message */
|
|
1385
|
-
render: (slotsOverrides?: FormNodeErrorSlotsSource) => VNodeArrayChildren;
|
|
1386
|
-
/**
|
|
1387
|
-
* Error object
|
|
1388
|
-
*
|
|
1389
|
-
* @see {@link FormNodeError}
|
|
1390
|
-
*/
|
|
1391
|
-
error: FormNodeError;
|
|
1392
|
-
/**
|
|
1393
|
-
* Node holding the error
|
|
1394
|
-
*
|
|
1395
|
-
* @see {@link FormNodeControl}
|
|
1396
|
-
*/
|
|
1397
|
-
node: FormNodeControl;
|
|
1398
|
-
/**
|
|
1399
|
-
* Automatically generated key
|
|
1400
|
-
*
|
|
1401
|
-
* Can be safely used as the key for the vnode when rendering in lists, etc.
|
|
1402
|
-
*/
|
|
1403
|
-
key: string;
|
|
1404
|
-
}
|
|
1405
|
-
/**
|
|
1406
|
-
* Base class for all form nodes
|
|
1407
|
-
*/
|
|
1408
|
-
declare class FormNodeControl<T = any, D = T, Required extends Prop<any> = BooleanConstructor> {
|
|
1409
|
-
readonly _props: FormNodeProps;
|
|
1410
|
-
readonly _service: VueFormService;
|
|
1411
|
-
readonly nodeType?: FormNodeType;
|
|
1412
|
-
readonly __multiple: boolean;
|
|
1413
|
-
protected _isMounted: Ref<boolean, boolean>;
|
|
1414
|
-
protected _mountedId: Ref<number | undefined, number | undefined>;
|
|
1415
|
-
protected _ctx: FormNodeContext<T, D>;
|
|
1416
|
-
protected _parentNode: FormNodeControl | null;
|
|
1417
|
-
protected _parentForm: VueForm | null;
|
|
1418
|
-
protected _parentFormGroup: FormGroupControl | null;
|
|
1419
|
-
protected _parentFormNodeWrapper: FormNodeWrapper | null;
|
|
1420
|
-
protected _booted: Ref<boolean, boolean>;
|
|
1421
|
-
protected _name: ComputedRef<string | undefined>;
|
|
1422
|
-
protected _value: Ref<T | D>;
|
|
1423
|
-
protected _initialValue: Ref<T | D>;
|
|
1424
|
-
protected _focused: Ref<boolean, boolean>;
|
|
1425
|
-
protected _children: Ref<FormNodeControl[]>;
|
|
1426
|
-
protected _invalidChildren: ComputedRef<FormNodeControl[]>;
|
|
1427
|
-
protected _finalizePromise: Ref<(() => Promise<void>) | null>;
|
|
1428
|
-
protected _validationErrors: Ref<ValidationError[]>;
|
|
1429
|
-
protected _validateResolvers: ValidateResolver[];
|
|
1430
|
-
protected _lastValidateValueChanged: boolean;
|
|
1431
|
-
protected _validating: Ref<boolean, boolean>;
|
|
1432
|
-
protected _validateRequestId: number;
|
|
1433
|
-
protected _isDestroyed: boolean;
|
|
1434
|
-
protected _dirty: ComputedRef<boolean>;
|
|
1435
|
-
protected _touched: Ref<boolean, boolean>;
|
|
1436
|
-
protected _shouldValidate: Ref<boolean, boolean>;
|
|
1437
|
-
protected _currentValue: WritableComputedRef<T | D>;
|
|
1438
|
-
protected _errorMessages: ComputedRef<string[]>;
|
|
1439
|
-
protected _errors: ComputedRef<FormNodeError[]>;
|
|
1440
|
-
protected _resolvedErrorMessages: ComputedRef<FormNodeErrorMessageSource[]>;
|
|
1441
|
-
protected _errorCount: ComputedRef<number>;
|
|
1442
|
-
protected _isDisabled: ComputedRef<boolean>;
|
|
1443
|
-
protected _isReadonly: ComputedRef<boolean>;
|
|
1444
|
-
protected _isViewonly: ComputedRef<boolean>;
|
|
1445
|
-
protected _canOperation: ComputedRef<boolean>;
|
|
1446
|
-
protected _rules: ComputedRef<VerifiableRule[]>;
|
|
1447
|
-
protected _hasRequired: ComputedRef<boolean>;
|
|
1448
|
-
protected _tabindex: ComputedRef<number>;
|
|
1449
|
-
protected _cii: ComponentInternalInstance | null;
|
|
1450
|
-
protected _validationValueGetter?: () => any;
|
|
1451
|
-
protected _shouldSkipValidation: boolean;
|
|
1452
|
-
protected _stateExtensions: FormNodeStateExtensions;
|
|
1453
|
-
protected _requiredFactory: () => Rule<any> | undefined;
|
|
1454
|
-
/**
|
|
1455
|
-
* Root service of `vue-form-control`
|
|
1456
|
-
*
|
|
1457
|
-
* @see {@link VueFormService}
|
|
1458
|
-
*/
|
|
1459
|
-
get service(): VueFormService;
|
|
1460
|
-
/**
|
|
1461
|
-
* form node name
|
|
1462
|
-
*
|
|
1463
|
-
* This is set as is for input elements.
|
|
1464
|
-
*/
|
|
1465
|
-
get name(): string | undefined;
|
|
1466
|
-
/**
|
|
1467
|
-
* Tag string for node searching
|
|
1468
|
-
*/
|
|
1469
|
-
get tag(): string | undefined;
|
|
1470
|
-
/** Parent node */
|
|
1471
|
-
get parentNode(): FormNodeControl | null;
|
|
1472
|
-
/** Parent form group */
|
|
1473
|
-
get parentFormGroup(): FormGroupControl | null;
|
|
1474
|
-
/** Parent form node wrapper */
|
|
1475
|
-
get parentFormNodeWrapper(): FormNodeWrapper | null;
|
|
1476
|
-
/** Parent form */
|
|
1477
|
-
get parentForm(): VueForm | null;
|
|
1478
|
-
/** Automatic focus */
|
|
1479
|
-
get autofocus(): boolean;
|
|
1480
|
-
/**
|
|
1481
|
-
* Detached and independent from the parent node
|
|
1482
|
-
*/
|
|
1483
|
-
get detached(): boolean;
|
|
1484
|
-
/**
|
|
1485
|
-
* Component created
|
|
1486
|
-
*
|
|
1487
|
-
* @remarks
|
|
1488
|
-
* Please be aware that it may not have been mounted yet.
|
|
1489
|
-
*/
|
|
1490
|
-
get booted(): boolean;
|
|
1491
|
-
/** Component mounted */
|
|
1492
|
-
get isMounted(): boolean;
|
|
1493
|
-
/** If already mounted, its unique ID. */
|
|
1494
|
-
get mountedId(): number | undefined;
|
|
1495
|
-
/** If already mounted, its unique ID. */
|
|
1496
|
-
get mountedNodeId(): string | undefined;
|
|
1497
|
-
/** Finalizing the value adjustment process */
|
|
1498
|
-
get isFinalizing(): boolean;
|
|
1499
|
-
/** Validating the value */
|
|
1500
|
-
get validating(): boolean;
|
|
1501
|
-
/**
|
|
1502
|
-
* Pending processing
|
|
1503
|
-
*
|
|
1504
|
-
* This is marked as `true` during the validation and finalization process of the value
|
|
1505
|
-
*/
|
|
1506
|
-
get pending(): boolean;
|
|
1507
|
-
/** Current input value */
|
|
1508
|
-
get value(): T | D;
|
|
1509
|
-
set value(value: T | D);
|
|
1510
|
-
/** Value used for validation */
|
|
1511
|
-
get validationValue(): any;
|
|
1512
|
-
/** In focus */
|
|
1513
|
-
get focused(): boolean;
|
|
1514
|
-
/**
|
|
1515
|
-
* Initial value before commit
|
|
1516
|
-
*
|
|
1517
|
-
* This value, once initialized with the value passed when the FormNode is instantiated, will not be modified from within the vue-form-control package internals.
|
|
1518
|
-
* Calling the commit series of methods from the application side updates the value to its state at that moment.
|
|
1519
|
-
*
|
|
1520
|
-
* @see {@link FormNodeControl.commitSelfValue commitSelfValue}
|
|
1521
|
-
* @see {@link FormNodeControl.commitValue commitValue}
|
|
1522
|
-
* @see {@link FormNodeControl.commitSelf commitSelf}
|
|
1523
|
-
* @see {@link FormNodeControl.commit commit}
|
|
1524
|
-
*/
|
|
1525
|
-
get initialValue(): T | D;
|
|
1526
|
-
/**
|
|
1527
|
-
* The changes to the input value have not been committed yet
|
|
1528
|
-
*
|
|
1529
|
-
* @see {@link FormNodeControl.initialValue initialValue}
|
|
1530
|
-
*/
|
|
1531
|
-
get dirty(): boolean;
|
|
1532
|
-
/**
|
|
1533
|
-
* The input value has not been changed from its initial value
|
|
1534
|
-
*/
|
|
1535
|
-
get pristine(): boolean;
|
|
1536
|
-
/**
|
|
1537
|
-
* Touched the elements of this node at least once
|
|
1538
|
-
*/
|
|
1539
|
-
get touched(): boolean;
|
|
1540
|
-
set touched(touched: boolean);
|
|
1541
|
-
/**
|
|
1542
|
-
* Not touched the elements of this node yet.
|
|
1543
|
-
*/
|
|
1544
|
-
get untouched(): boolean;
|
|
1545
|
-
/**
|
|
1546
|
-
* The list of FormNode instances directly belonging to this node as children
|
|
1547
|
-
*/
|
|
1548
|
-
get children(): FormNodeControl[];
|
|
1549
|
-
/**
|
|
1550
|
-
* The list of FormNode instances directly belonging to itself, and possessing one or more errors
|
|
1551
|
-
*/
|
|
1552
|
-
get invalidChildren(): FormNodeControl[];
|
|
1553
|
-
/**
|
|
1554
|
-
* The list of validation errors for the value within itself
|
|
1555
|
-
*/
|
|
1556
|
-
get validationErrors(): ValidationError[];
|
|
1557
|
-
/**
|
|
1558
|
-
* The list of all errors within itself
|
|
1559
|
-
*
|
|
1560
|
-
* This is a merged list of error messages injected through properties and its own `validationErrors`.
|
|
1561
|
-
*
|
|
1562
|
-
* @remarks
|
|
1563
|
-
* This list does not include error information specified with the `error` attribute.
|
|
1564
|
-
*/
|
|
1565
|
-
get errors(): FormNodeError[];
|
|
1566
|
-
/**
|
|
1567
|
-
* Source code for all collected error messages
|
|
1568
|
-
*
|
|
1569
|
-
* This list is generated based on the setting of {@link FormNodeControl.showOwnErrors showOwnErrors}.
|
|
1570
|
-
*
|
|
1571
|
-
* @see {@link FormNodeErrorMessageSource}
|
|
1572
|
-
*/
|
|
1573
|
-
get errorMessages(): FormNodeErrorMessageSource[];
|
|
1574
|
-
/**
|
|
1575
|
-
* Source code for the first error message among all collected messages
|
|
1576
|
-
*
|
|
1577
|
-
* This list is generated based on the setting of {@link FormNodeControl.showOwnErrors showOwnErrors}.
|
|
1578
|
-
*
|
|
1579
|
-
* @see {@link FormNodeErrorMessageSource}
|
|
1580
|
-
*/
|
|
1581
|
-
get firstErrorMessage(): FormNodeErrorMessageSource | undefined;
|
|
1582
|
-
/**
|
|
1583
|
-
* Whether itself has one or more errors
|
|
1584
|
-
*
|
|
1585
|
-
* @remarks
|
|
1586
|
-
* This also takes into consideration the configuration of the `error` property.
|
|
1587
|
-
*/
|
|
1588
|
-
get hasMyError(): boolean;
|
|
1589
|
-
/**
|
|
1590
|
-
* The number of errors it possesses
|
|
1591
|
-
*/
|
|
1592
|
-
get errorCount(): number;
|
|
1593
|
-
/**
|
|
1594
|
-
* Either itself or the parent node has one or more errors.
|
|
1595
|
-
*/
|
|
1596
|
-
get hasError(): boolean;
|
|
1597
|
-
/**
|
|
1598
|
-
* Either itself or the parent node is in a disabled state.
|
|
1599
|
-
*/
|
|
1600
|
-
get isDisabled(): boolean;
|
|
1601
|
-
/**
|
|
1602
|
-
* Either itself or the parent node is in a read-only state.
|
|
1603
|
-
*/
|
|
1604
|
-
get isReadonly(): boolean;
|
|
1605
|
-
/**
|
|
1606
|
-
* Either itself or the parent node is in a view-only state.
|
|
1607
|
-
*/
|
|
1608
|
-
get isViewonly(): boolean;
|
|
1609
|
-
/**
|
|
1610
|
-
* Operable
|
|
1611
|
-
*/
|
|
1612
|
-
get canOperation(): boolean;
|
|
1613
|
-
/**
|
|
1614
|
-
* Validation Timing
|
|
1615
|
-
*
|
|
1616
|
-
*@see {@link ValidateTiming}
|
|
1617
|
-
*/
|
|
1618
|
-
get validateTiming(): ValidateTiming;
|
|
1619
|
-
/**
|
|
1620
|
-
* Always perform value validation.
|
|
1621
|
-
*/
|
|
1622
|
-
get validateTimingIsAlways(): boolean;
|
|
1623
|
-
/**
|
|
1624
|
-
* Perform value validation only when the elements of this node have been touched at least once.
|
|
1625
|
-
*/
|
|
1626
|
-
get validateTimingIsTouch(): boolean;
|
|
1627
|
-
/**
|
|
1628
|
-
* Perform value validation when focus is removed from the elements of this node.
|
|
1629
|
-
*/
|
|
1630
|
-
get validateTimingIsBlur(): boolean;
|
|
1631
|
-
/**
|
|
1632
|
-
* Perform value validation when the input value changes.
|
|
1633
|
-
*/
|
|
1634
|
-
get validateTimingIsChange(): boolean;
|
|
1635
|
-
/**
|
|
1636
|
-
* Value validation is manually performed on the application side.
|
|
1637
|
-
*/
|
|
1638
|
-
get validateTimingIsManual(): boolean;
|
|
1639
|
-
/**
|
|
1640
|
-
* The list of all rules, including those specified in the properties under 'rules' and others calculated from values related to rule logic.
|
|
1641
|
-
*/
|
|
1642
|
-
get rules(): VerifiableRule[];
|
|
1643
|
-
/**
|
|
1644
|
-
* Input is required
|
|
1645
|
-
*
|
|
1646
|
-
* @remarks
|
|
1647
|
-
* This checks whether there is at least one 'required' rule in the 'required' setting or within the specified 'rules'.
|
|
1648
|
-
*/
|
|
1649
|
-
get isRequired(): boolean;
|
|
1650
|
-
/**
|
|
1651
|
-
* The component has been destroyed
|
|
1652
|
-
*/
|
|
1653
|
-
get isDestroyed(): boolean;
|
|
1654
|
-
/**
|
|
1655
|
-
* There is at least one node in an error state among the nodes directly under this node
|
|
1656
|
-
*/
|
|
1657
|
-
get hasInvalidChild(): boolean;
|
|
1658
|
-
/**
|
|
1659
|
-
* Either this node or one of its descendants has an error
|
|
1660
|
-
*/
|
|
1661
|
-
get invalid(): boolean;
|
|
1662
|
-
/**
|
|
1663
|
-
* This node and none of its descendants have an error
|
|
1664
|
-
*/
|
|
1665
|
-
get valid(): boolean;
|
|
1666
|
-
/**
|
|
1667
|
-
* Tab index
|
|
1668
|
-
*
|
|
1669
|
-
* When the node is disabled, it is forcibly set to `-1`.
|
|
1670
|
-
*/
|
|
1671
|
-
get tabindex(): number;
|
|
1672
|
-
/**
|
|
1673
|
-
* Spell Check Settings
|
|
1674
|
-
*
|
|
1675
|
-
* @see https://developer.mozilla.org/docs/Web/HTML/Global_attributes/spellcheck
|
|
1676
|
-
*/
|
|
1677
|
-
get spellcheck(): boolean;
|
|
1678
|
-
/**
|
|
1679
|
-
* The input value should be validated
|
|
1680
|
-
*
|
|
1681
|
-
* This varies based on the specified `validateTiming` and the user's interaction status.
|
|
1682
|
-
*/
|
|
1683
|
-
get shouldValidate(): boolean;
|
|
1684
|
-
/**
|
|
1685
|
-
* The form to which this node belongs is currently executing an asynchronous submission action
|
|
1686
|
-
*
|
|
1687
|
-
* @remarks
|
|
1688
|
-
* If the `detach` option is set, this will always be `false`.
|
|
1689
|
-
*/
|
|
1690
|
-
get sending(): boolean;
|
|
1691
|
-
/**
|
|
1692
|
-
* The current Vue instance initializing this node
|
|
1693
|
-
*/
|
|
1694
|
-
get currentInstance(): ComponentInternalInstance | null;
|
|
1695
|
-
/**
|
|
1696
|
-
* The host element of the current Vue instance initializing this node
|
|
1697
|
-
*/
|
|
1698
|
-
get currentEl(): HTMLElement | null;
|
|
1699
|
-
/**
|
|
1700
|
-
* Multiple input mode
|
|
1701
|
-
*/
|
|
1702
|
-
get multiple(): boolean;
|
|
1703
|
-
/**
|
|
1704
|
-
* Display error messages on this node itself
|
|
1705
|
-
*/
|
|
1706
|
-
get showOwnErrors(): boolean;
|
|
1707
|
-
/**
|
|
1708
|
-
* Whether to temporarily skip validation.
|
|
1709
|
-
* Useful for internal operations where validation is not needed.
|
|
1710
|
-
*/
|
|
1711
|
-
get shouldSkipValidation(): boolean;
|
|
1712
|
-
readonly shallow: boolean;
|
|
1713
|
-
constructor(props: FormNodeProps, ctx: FormNodeContext<T, D>, options: FormNodeControlOptions<T, D, Required>);
|
|
1714
|
-
/** @internal */
|
|
1715
|
-
_createFormNodeErrorMessageSource(error: FormNodeError, index: number, slotsOverrides?: FormNodeErrorSlotsSource): FormNodeErrorMessageSource;
|
|
1716
|
-
protected hasRequiredRule(): VerifiableRule | undefined;
|
|
1717
|
-
/**
|
|
1718
|
-
* Recursively searches and retrieves the FormNode belonging to this node.
|
|
1719
|
-
*
|
|
1720
|
-
* @param predicate - Predicate executed recursively on descendant elements
|
|
1721
|
-
*/
|
|
1722
|
-
findNodeRecursive(predicate: (node: FormNodeControl) => unknown): FormNodeControl | undefined;
|
|
1723
|
-
/**
|
|
1724
|
-
* Recursively retrieves all FormNodes belonging to this node.
|
|
1725
|
-
*
|
|
1726
|
-
* @param predicate - Predicate executed recursively on descendant elements
|
|
1727
|
-
*/
|
|
1728
|
-
filterNodesRecursive(predicate: (node: FormNodeControl) => unknown): FormNodeControl[];
|
|
1729
|
-
/**
|
|
1730
|
-
* Search for a node within this node that matches the specified name
|
|
1731
|
-
*
|
|
1732
|
-
* @param name Node name
|
|
1733
|
-
*/
|
|
1734
|
-
findNodeByName(name: string): FormNodeControl | undefined;
|
|
1735
|
-
/**
|
|
1736
|
-
* Search for a node within this node that matches the specified tag
|
|
1737
|
-
*
|
|
1738
|
-
* @param tag Tag string
|
|
1739
|
-
*/
|
|
1740
|
-
findNodeByTag(tag: string): FormNodeControl | undefined;
|
|
1741
|
-
protected _getContextOrDie(): {
|
|
1742
|
-
attrs: import("vue").Attrs;
|
|
1743
|
-
slots: Readonly<{
|
|
1744
|
-
[name: string]: import("vue").Slot<any> | undefined;
|
|
1745
|
-
}>;
|
|
1746
|
-
emit: ((event: "blur", ev: FocusEvent) => void) & ((event: "change", value: T | D) => void) & ((event: "update:modelValue", value: T | D) => void) & ((event: "update:errors", errors: FormNodeError[]) => void) & ((event: "focus", ev: FocusEvent) => void);
|
|
1747
|
-
expose: <Exposed extends Record<string, any> = Record<string, any>>(exposed?: Exposed) => void;
|
|
1748
|
-
};
|
|
1749
|
-
/**
|
|
1750
|
-
* Render the specified error source as a `VNodeArrayChildren`
|
|
1751
|
-
*
|
|
1752
|
-
* @param errorSource - string or FormNodeError
|
|
1753
|
-
*/
|
|
1754
|
-
renderErrorSource(errorSource: string | FormNodeError, slotsOverrides?: FormNodeErrorSlotsSource): VNodeArrayChildren;
|
|
1755
|
-
protected _finalize(): Promise<void>;
|
|
1756
|
-
/**
|
|
1757
|
-
* Finalize the input value
|
|
1758
|
-
*/
|
|
1759
|
-
finalize(): Promise<void>;
|
|
1760
|
-
/**
|
|
1761
|
-
* Ensure that the input value is finalized
|
|
1762
|
-
*/
|
|
1763
|
-
ensureFinalized(): Promise<void>;
|
|
1764
|
-
/**
|
|
1765
|
-
* Ensure that the value of the self-node and all its child nodes is finalized
|
|
1766
|
-
*/
|
|
1767
|
-
finalizeAll(): Promise<void>;
|
|
1768
|
-
/**
|
|
1769
|
-
* Set the value
|
|
1770
|
-
*
|
|
1771
|
-
* @param value - value
|
|
1772
|
-
*/
|
|
1773
|
-
setValue(value: T | D): boolean;
|
|
1774
|
-
protected _syncValueFromProps(value: any): void;
|
|
1775
|
-
protected _resolveRules(): VerifiableRule[];
|
|
1776
|
-
/**
|
|
1777
|
-
* Set the validation execution necessity
|
|
1778
|
-
*
|
|
1779
|
-
* @param shouldValidate - The input value should be validated
|
|
1780
|
-
*/
|
|
1781
|
-
setShouldValidate(shouldValidate: boolean): void;
|
|
1782
|
-
/**
|
|
1783
|
-
* Retrieve the default value when there is no input value
|
|
1784
|
-
*/
|
|
1785
|
-
emptyValue(): T | D;
|
|
1786
|
-
/**
|
|
1787
|
-
* If the specified value is nullable, return `emptyValue`; otherwise, return the specified value as is
|
|
1788
|
-
*
|
|
1789
|
-
* @param value - Any value
|
|
1790
|
-
*/
|
|
1791
|
-
safeModelValue(value: any): T | D;
|
|
1792
|
-
/**
|
|
1793
|
-
* Find and retrieve a rule corresponding to the specified name or a name matching the regular expression
|
|
1794
|
-
*
|
|
1795
|
-
* @param ruleName - Name or regular expression
|
|
1796
|
-
*/
|
|
1797
|
-
findRule(ruleName: string | RegExp): VerifiableRule | undefined;
|
|
1798
|
-
/**
|
|
1799
|
-
* Reset the input value of this node to the initial value or the value at the last commit, whichever is applicable
|
|
1800
|
-
*
|
|
1801
|
-
* @see {@link FormNodeControl.initialValue initialValue}
|
|
1802
|
-
*
|
|
1803
|
-
* @remarks
|
|
1804
|
-
* This method does not reset the validation state. Typically, consider using {@link FormNodeControl.resetSelf resetSelf}.
|
|
1805
|
-
*/
|
|
1806
|
-
resetSelfValue(): void;
|
|
1807
|
-
/**
|
|
1808
|
-
* Reset the input value of this node and all its descendant nodes to the initial value or the value at the last commit, whichever is applicable
|
|
1809
|
-
*
|
|
1810
|
-
* @see {@link FormNodeControl.resetSelfValue resetSelfValue}
|
|
1811
|
-
*
|
|
1812
|
-
* @remarks
|
|
1813
|
-
* This method does not reset the validation state. Typically, consider using {@link FormNodeControl.resetSelf reset}.
|
|
1814
|
-
*/
|
|
1815
|
-
resetValue(): void;
|
|
1816
|
-
/**
|
|
1817
|
-
* Set the current input value as the initial value for this node.
|
|
1818
|
-
*
|
|
1819
|
-
* @remarks
|
|
1820
|
-
* This method does not reset the validation state. Typically, consider using {@link FormNodeControl.commitSelf commitSelf}.
|
|
1821
|
-
*/
|
|
1822
|
-
commitSelfValue(): void;
|
|
1823
|
-
/**
|
|
1824
|
-
* Set the current input value as the initial value for this node and all its descendant nodes
|
|
1825
|
-
*
|
|
1826
|
-
* @remarks
|
|
1827
|
-
* This method does not reset the validation state. Typically, consider using {@link FormNodeControl.commit commit}.
|
|
1828
|
-
*/
|
|
1829
|
-
commitValue(): void;
|
|
1830
|
-
private _resetGuard;
|
|
1831
|
-
/**
|
|
1832
|
-
* Reset the validation state of this node
|
|
1833
|
-
*
|
|
1834
|
-
* @remarks
|
|
1835
|
-
* This method does not perform a reset on descendant nodes. Typically, consider using {@link FormNodeControl.resetValidates resetValidates}.
|
|
1836
|
-
*/
|
|
1837
|
-
resetSelfValidates(): void;
|
|
1838
|
-
/**
|
|
1839
|
-
* Reset the validation state of this node and all its descendant nodes
|
|
1840
|
-
*/
|
|
1841
|
-
resetValidates(): void;
|
|
1842
|
-
/**
|
|
1843
|
-
* Reset the input value of this node to the initial value and reset the validation state
|
|
1844
|
-
*
|
|
1845
|
-
* @remarks
|
|
1846
|
-
* This method does not reset the state of descendant nodes. Typically, consider using {@link FormNodeControl.reset reset}.
|
|
1847
|
-
*/
|
|
1848
|
-
resetSelf(): void;
|
|
1849
|
-
/**
|
|
1850
|
-
* Execute any process while skipping ongoing asynchronous validation, if any
|
|
1851
|
-
*
|
|
1852
|
-
* @param fn - The function to be executed
|
|
1853
|
-
*/
|
|
1854
|
-
skipValidation(fn: (...args: any) => any): Promise<void>;
|
|
1855
|
-
/**
|
|
1856
|
-
* Reset the input value of this node and all its descendant nodes to the initial value and reset the validation state
|
|
1857
|
-
*/
|
|
1858
|
-
reset(): Promise<void>;
|
|
1859
|
-
/**
|
|
1860
|
-
* Clear the input value of this node
|
|
1861
|
-
*/
|
|
1862
|
-
clearSelf(): void;
|
|
1863
|
-
/**
|
|
1864
|
-
* Clear the input value of this node and all its descendant nodes
|
|
1865
|
-
*/
|
|
1866
|
-
clear(): void;
|
|
1867
|
-
/**
|
|
1868
|
-
* Set the current input value of this node as the initial value and reset the validation state
|
|
1869
|
-
*
|
|
1870
|
-
* @remarks
|
|
1871
|
-
* This method does not reset the state of descendant nodes. Typically, consider using {@link FormNodeControl.commit commit}.
|
|
1872
|
-
*/
|
|
1873
|
-
commitSelf(): void;
|
|
1874
|
-
/**
|
|
1875
|
-
* Set the current input value as the initial value for this node and all its descendant nodes, and reset the validation state
|
|
1876
|
-
*/
|
|
1877
|
-
commit(): void;
|
|
1878
|
-
focus(opts?: FocusOptions): void;
|
|
1879
|
-
blur(): void;
|
|
1880
|
-
protected _forceFinalize(): boolean | undefined;
|
|
1881
|
-
/**
|
|
1882
|
-
* Execute validation for this node and all its descendant nodes, and retrieve the validation results
|
|
1883
|
-
*
|
|
1884
|
-
* @param force - Force execution
|
|
1885
|
-
* @param forceFinalize - Always finalize the value before validation
|
|
1886
|
-
*
|
|
1887
|
-
* @returns If validation is successful, return `true`.
|
|
1888
|
-
*/
|
|
1889
|
-
validate(force?: boolean, forceFinalize?: boolean | undefined): Promise<boolean>;
|
|
1890
|
-
/**
|
|
1891
|
-
* Validate all nodes belonging to this node
|
|
1892
|
-
*
|
|
1893
|
-
* @remarks
|
|
1894
|
-
* Typically, consider using {@link FormNodeControl.validate validate}.
|
|
1895
|
-
*
|
|
1896
|
-
* @param force - Force execution
|
|
1897
|
-
* @param forceFinalize - Always finalize the value before validation
|
|
1898
|
-
*/
|
|
1899
|
-
validateChildren(force?: boolean, forceFinalize?: boolean | undefined): Promise<boolean[]>;
|
|
1900
|
-
protected _allowFinalize(): boolean;
|
|
1901
|
-
/**
|
|
1902
|
-
* Validate the input value of this node
|
|
1903
|
-
*
|
|
1904
|
-
* This method usually cancels execution and returns the previous result in the following conditions:
|
|
1905
|
-
*
|
|
1906
|
-
* - The value for validation has not changed since the last validation.
|
|
1907
|
-
* - Currently, asynchronous validation is in progress.
|
|
1908
|
-
*
|
|
1909
|
-
* If you want to ignore this and force validation, specify `true` for the `force` argument
|
|
1910
|
-
*
|
|
1911
|
-
* @param force - Force execution
|
|
1912
|
-
* @param forceFinalize - Always finalize the value before validation
|
|
1913
|
-
*
|
|
1914
|
-
* @returns Validation result (either the list of validation errors or null).
|
|
1915
|
-
*
|
|
1916
|
-
* @remarks
|
|
1917
|
-
* This method does not perform a reset on descendant nodes. Typically, consider using {@link FormNodeControl.validate validate}.
|
|
1918
|
-
*/
|
|
1919
|
-
validateSelf(force?: boolean, forceFinalize?: boolean | undefined): Promise<ValidationResult>;
|
|
1920
|
-
private resolveValidateResolvers;
|
|
1921
|
-
private clearValidateResolvers;
|
|
1922
|
-
/** @internal */
|
|
1923
|
-
_joinFromNode(node: FormNodeControl): void;
|
|
1924
|
-
/** @internal */
|
|
1925
|
-
_leaveFromNode(node: FormNodeControl): void;
|
|
1926
|
-
focusHandler(ev: FocusEvent): void;
|
|
1927
|
-
blurHandler(ev: FocusEvent): void;
|
|
1928
|
-
/**
|
|
1929
|
-
* Scroll to the visible position of the host element of this node
|
|
1930
|
-
*
|
|
1931
|
-
* @param options - options
|
|
1932
|
-
*/
|
|
1933
|
-
scrollIntoView(options?: ScrollIntoViewOptions): void;
|
|
1934
|
-
/**
|
|
1935
|
-
* Generate a Proxy instance that extends the interface for this node.
|
|
1936
|
-
*
|
|
1937
|
-
* @param trait - trait object
|
|
1938
|
-
* @returns Mixed-in Proxy
|
|
1939
|
-
*/
|
|
1940
|
-
extend<U extends object>(trait: U): Mixin<this, U>;
|
|
1941
|
-
}
|
|
1942
|
-
//#endregion
|
|
1943
|
-
//#region src/composables/textable.d.ts
|
|
1944
|
-
type TextableFinalizerSpec = TextFinalizer | BuiltinTextFinalizerName | (TextFinalizer | BuiltinTextFinalizerName)[];
|
|
1945
|
-
//#endregion
|
|
1946
|
-
//#region src/plugin.d.ts
|
|
1947
|
-
declare module 'vue' {
|
|
1948
|
-
interface ComponentCustomProperties {
|
|
1949
|
-
$form: VueFormService;
|
|
1950
|
-
}
|
|
1951
|
-
}
|
|
1952
|
-
//#endregion
|
|
1953
269
|
//#region src/components/VWysiwygEditor/VWysiwygEditor.d.ts
|
|
1954
270
|
interface VWysiwygEditorAPI {
|
|
1955
271
|
readonly editor: Editor | undefined;
|
|
@@ -1972,11 +288,11 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
1972
288
|
default: boolean;
|
|
1973
289
|
};
|
|
1974
290
|
'v-slots': PropType<{
|
|
1975
|
-
[x: `error:${string}`]: (error: FormNodeError) => VNodeChild;
|
|
1976
|
-
label?: ((wrapper: FormNodeWrapper) => VNodeChild) | undefined;
|
|
1977
|
-
hint?: ((wrapper: FormNodeWrapper) => VNodeChild) | undefined;
|
|
1978
|
-
infoAppends?: ((wrapper: FormNodeWrapper) => VNodeChild) | undefined;
|
|
1979
|
-
error?: ((error: FormNodeError) => VNodeChild) | undefined;
|
|
291
|
+
[x: `error:${string}`]: (error: import("@fastkit/vue-form-control").FormNodeError) => VNodeChild;
|
|
292
|
+
label?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => VNodeChild) | undefined;
|
|
293
|
+
hint?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => VNodeChild) | undefined;
|
|
294
|
+
infoAppends?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => VNodeChild) | undefined;
|
|
295
|
+
error?: ((error: import("@fastkit/vue-form-control").FormNodeError) => VNodeChild) | undefined;
|
|
1980
296
|
default?: (() => VNodeChild) | undefined;
|
|
1981
297
|
startAdornment?: (() => VNodeChild) | undefined;
|
|
1982
298
|
endAdornment?: (() => VNodeChild) | undefined;
|
|
@@ -1990,20 +306,20 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
1990
306
|
type: PropType<import("@fastkit/vui").ControlFieldVariant>;
|
|
1991
307
|
validator: (value: any) => boolean;
|
|
1992
308
|
};
|
|
1993
|
-
startAdornment: PropType<VNodeChildOrSlot>;
|
|
1994
|
-
endAdornment: PropType<VNodeChildOrSlot>;
|
|
309
|
+
startAdornment: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
310
|
+
endAdornment: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
1995
311
|
tabindex: {
|
|
1996
312
|
type: (StringConstructor | NumberConstructor)[];
|
|
1997
313
|
default: number;
|
|
1998
314
|
};
|
|
1999
|
-
nodeControl: PropType<FormNodeControl>;
|
|
2000
|
-
label: PropType<VNodeChildOrSlot>;
|
|
2001
|
-
hint: PropType<VNodeChildOrSlot>;
|
|
2002
|
-
hinttip: PropType<FormNodeWrapperHinttip>;
|
|
2003
|
-
hinttipDelay: PropType<FormNodeWrapperHinttipDelay>;
|
|
2004
|
-
infoAppends: PropType<VNodeChildOrSlot>;
|
|
315
|
+
nodeControl: PropType<import("@fastkit/vue-form-control").FormNodeControl>;
|
|
316
|
+
label: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
317
|
+
hint: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
318
|
+
hinttip: PropType<import("@fastkit/vue-form-control").FormNodeWrapperHinttip>;
|
|
319
|
+
hinttipDelay: PropType<import("@fastkit/vue-form-control").FormNodeWrapperHinttipDelay>;
|
|
320
|
+
infoAppends: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
2005
321
|
hiddenInfo: BooleanConstructor;
|
|
2006
|
-
requiredChip: PropType<RequiredChipSource>;
|
|
322
|
+
requiredChip: PropType<import("@fastkit/vue-form-control").RequiredChipSource>;
|
|
2007
323
|
collectErrorMessages: {
|
|
2008
324
|
type: BooleanConstructor;
|
|
2009
325
|
default: boolean;
|
|
@@ -2012,13 +328,13 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2012
328
|
maxlength: (StringConstructor | NumberConstructor)[];
|
|
2013
329
|
pattern: (StringConstructor | RegExpConstructor)[];
|
|
2014
330
|
placeholder: StringConstructor;
|
|
2015
|
-
autocapitalize: PropType<FormAutoCapitalize>;
|
|
2016
|
-
finalizers: PropType<TextableFinalizerSpec>;
|
|
331
|
+
autocapitalize: PropType<import("@fastkit/vue-form-control").FormAutoCapitalize>;
|
|
332
|
+
finalizers: PropType<import("@fastkit/vue-form-control").TextableFinalizerSpec>;
|
|
2017
333
|
counter: PropType<boolean | string | number>;
|
|
2018
334
|
counterValue: PropType<(value: string) => number>;
|
|
2019
335
|
limit: BooleanConstructor;
|
|
2020
336
|
autocomplete: {
|
|
2021
|
-
type: PropType<FormAutoComplete | boolean>;
|
|
337
|
+
type: PropType<import("@fastkit/vue-form-control").FormAutoComplete | boolean>;
|
|
2022
338
|
default: () => boolean | "name" | "off" | "on" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo" | undefined;
|
|
2023
339
|
};
|
|
2024
340
|
name: StringConstructor;
|
|
@@ -2032,14 +348,14 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2032
348
|
required: BooleanConstructor | PropType<boolean>;
|
|
2033
349
|
clearable: BooleanConstructor;
|
|
2034
350
|
validateTiming: {
|
|
2035
|
-
type: PropType<ValidateTiming>;
|
|
2036
|
-
default: ValidateTiming;
|
|
351
|
+
type: PropType<import("@fastkit/vue-form-control").ValidateTiming>;
|
|
352
|
+
default: import("@fastkit/vue-form-control").ValidateTiming;
|
|
2037
353
|
};
|
|
2038
354
|
rules: {
|
|
2039
|
-
type: PropType<RecursiveVerifiableRuleOrFn>;
|
|
355
|
+
type: PropType<import("@fastkit/vue-form-control").RecursiveVerifiableRuleOrFn>;
|
|
2040
356
|
default: () => never[];
|
|
2041
357
|
};
|
|
2042
|
-
validationDeps: PropType<(nodeControl: FormNodeControl) => any>;
|
|
358
|
+
validationDeps: PropType<(nodeControl: import("@fastkit/vue-form-control").FormNodeControl) => any>;
|
|
2043
359
|
error: BooleanConstructor;
|
|
2044
360
|
errorMessages: PropType<string | string[]>;
|
|
2045
361
|
showOwnErrors: {
|
|
@@ -2049,7 +365,7 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2049
365
|
detach: BooleanConstructor;
|
|
2050
366
|
}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
2051
367
|
'update:modelValue': (value: string) => boolean;
|
|
2052
|
-
'update:errors': (errors: FormNodeError[]) => boolean;
|
|
368
|
+
'update:errors': (errors: import("@fastkit/vue-form-control").FormNodeError[]) => boolean;
|
|
2053
369
|
change: (value: string) => boolean;
|
|
2054
370
|
focus: (ev: FocusEvent) => boolean;
|
|
2055
371
|
blur: (ev: FocusEvent) => boolean;
|
|
@@ -2070,11 +386,11 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2070
386
|
default: boolean;
|
|
2071
387
|
};
|
|
2072
388
|
'v-slots': PropType<{
|
|
2073
|
-
[x: `error:${string}`]: (error: FormNodeError) => VNodeChild;
|
|
2074
|
-
label?: ((wrapper: FormNodeWrapper) => VNodeChild) | undefined;
|
|
2075
|
-
hint?: ((wrapper: FormNodeWrapper) => VNodeChild) | undefined;
|
|
2076
|
-
infoAppends?: ((wrapper: FormNodeWrapper) => VNodeChild) | undefined;
|
|
2077
|
-
error?: ((error: FormNodeError) => VNodeChild) | undefined;
|
|
389
|
+
[x: `error:${string}`]: (error: import("@fastkit/vue-form-control").FormNodeError) => VNodeChild;
|
|
390
|
+
label?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => VNodeChild) | undefined;
|
|
391
|
+
hint?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => VNodeChild) | undefined;
|
|
392
|
+
infoAppends?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => VNodeChild) | undefined;
|
|
393
|
+
error?: ((error: import("@fastkit/vue-form-control").FormNodeError) => VNodeChild) | undefined;
|
|
2078
394
|
default?: (() => VNodeChild) | undefined;
|
|
2079
395
|
startAdornment?: (() => VNodeChild) | undefined;
|
|
2080
396
|
endAdornment?: (() => VNodeChild) | undefined;
|
|
@@ -2088,20 +404,20 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2088
404
|
type: PropType<import("@fastkit/vui").ControlFieldVariant>;
|
|
2089
405
|
validator: (value: any) => boolean;
|
|
2090
406
|
};
|
|
2091
|
-
startAdornment: PropType<VNodeChildOrSlot>;
|
|
2092
|
-
endAdornment: PropType<VNodeChildOrSlot>;
|
|
407
|
+
startAdornment: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
408
|
+
endAdornment: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
2093
409
|
tabindex: {
|
|
2094
410
|
type: (StringConstructor | NumberConstructor)[];
|
|
2095
411
|
default: number;
|
|
2096
412
|
};
|
|
2097
|
-
nodeControl: PropType<FormNodeControl>;
|
|
2098
|
-
label: PropType<VNodeChildOrSlot>;
|
|
2099
|
-
hint: PropType<VNodeChildOrSlot>;
|
|
2100
|
-
hinttip: PropType<FormNodeWrapperHinttip>;
|
|
2101
|
-
hinttipDelay: PropType<FormNodeWrapperHinttipDelay>;
|
|
2102
|
-
infoAppends: PropType<VNodeChildOrSlot>;
|
|
413
|
+
nodeControl: PropType<import("@fastkit/vue-form-control").FormNodeControl>;
|
|
414
|
+
label: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
415
|
+
hint: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
416
|
+
hinttip: PropType<import("@fastkit/vue-form-control").FormNodeWrapperHinttip>;
|
|
417
|
+
hinttipDelay: PropType<import("@fastkit/vue-form-control").FormNodeWrapperHinttipDelay>;
|
|
418
|
+
infoAppends: PropType<import("@fastkit/vue-utils").VNodeChildOrSlot>;
|
|
2103
419
|
hiddenInfo: BooleanConstructor;
|
|
2104
|
-
requiredChip: PropType<RequiredChipSource>;
|
|
420
|
+
requiredChip: PropType<import("@fastkit/vue-form-control").RequiredChipSource>;
|
|
2105
421
|
collectErrorMessages: {
|
|
2106
422
|
type: BooleanConstructor;
|
|
2107
423
|
default: boolean;
|
|
@@ -2110,13 +426,13 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2110
426
|
maxlength: (StringConstructor | NumberConstructor)[];
|
|
2111
427
|
pattern: (StringConstructor | RegExpConstructor)[];
|
|
2112
428
|
placeholder: StringConstructor;
|
|
2113
|
-
autocapitalize: PropType<FormAutoCapitalize>;
|
|
2114
|
-
finalizers: PropType<TextableFinalizerSpec>;
|
|
429
|
+
autocapitalize: PropType<import("@fastkit/vue-form-control").FormAutoCapitalize>;
|
|
430
|
+
finalizers: PropType<import("@fastkit/vue-form-control").TextableFinalizerSpec>;
|
|
2115
431
|
counter: PropType<boolean | string | number>;
|
|
2116
432
|
counterValue: PropType<(value: string) => number>;
|
|
2117
433
|
limit: BooleanConstructor;
|
|
2118
434
|
autocomplete: {
|
|
2119
|
-
type: PropType<FormAutoComplete | boolean>;
|
|
435
|
+
type: PropType<import("@fastkit/vue-form-control").FormAutoComplete | boolean>;
|
|
2120
436
|
default: () => boolean | "name" | "off" | "on" | "honorific-prefix" | "given-name" | "additional-name" | "family-name" | "honorific-suffix" | "nickname" | "email" | "username" | "new-password" | "current-password" | "one-time-code" | "organization-title" | "organization" | "street-address" | "address-line1" | "address-line2" | "address-line3" | "address-level4" | "address-level3" | "address-level2" | "address-level1" | "country" | "country-name" | "postal-code" | "cc-name" | "cc-given-name" | "cc-additional-name" | "cc-family-name" | "cc-number" | "cc-exp" | "cc-exp-month" | "cc-exp-year" | "cc-csc" | "cc-type" | "transaction-currency" | "transaction-amount" | "language" | "bday" | "bday-day" | "bday-month" | "bday-year" | "sex" | "tel" | "tel-country-code" | "tel-national" | "tel-area-code" | "tel-local" | "tel-extension" | "impp" | "url" | "photo" | undefined;
|
|
2121
437
|
};
|
|
2122
438
|
name: StringConstructor;
|
|
@@ -2130,14 +446,14 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2130
446
|
required: BooleanConstructor | PropType<boolean>;
|
|
2131
447
|
clearable: BooleanConstructor;
|
|
2132
448
|
validateTiming: {
|
|
2133
|
-
type: PropType<ValidateTiming>;
|
|
2134
|
-
default: ValidateTiming;
|
|
449
|
+
type: PropType<import("@fastkit/vue-form-control").ValidateTiming>;
|
|
450
|
+
default: import("@fastkit/vue-form-control").ValidateTiming;
|
|
2135
451
|
};
|
|
2136
452
|
rules: {
|
|
2137
|
-
type: PropType<RecursiveVerifiableRuleOrFn>;
|
|
453
|
+
type: PropType<import("@fastkit/vue-form-control").RecursiveVerifiableRuleOrFn>;
|
|
2138
454
|
default: () => never[];
|
|
2139
455
|
};
|
|
2140
|
-
validationDeps: PropType<(nodeControl: FormNodeControl) => any>;
|
|
456
|
+
validationDeps: PropType<(nodeControl: import("@fastkit/vue-form-control").FormNodeControl) => any>;
|
|
2141
457
|
error: BooleanConstructor;
|
|
2142
458
|
errorMessages: PropType<string | string[]>;
|
|
2143
459
|
showOwnErrors: {
|
|
@@ -2150,7 +466,7 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2150
466
|
onBlur?: ((ev: FocusEvent) => any) | undefined;
|
|
2151
467
|
onChange?: ((value: string) => any) | undefined;
|
|
2152
468
|
"onUpdate:modelValue"?: ((value: string) => any) | undefined;
|
|
2153
|
-
"onUpdate:errors"?: ((errors: FormNodeError[]) => any) | undefined;
|
|
469
|
+
"onUpdate:errors"?: ((errors: import("@fastkit/vue-form-control").FormNodeError[]) => any) | undefined;
|
|
2154
470
|
}>, {
|
|
2155
471
|
clearable: boolean;
|
|
2156
472
|
error: boolean;
|
|
@@ -2171,24 +487,24 @@ declare const VWysiwygEditor: import("vue").DefineComponent<import("vue").Extrac
|
|
|
2171
487
|
readonly: boolean;
|
|
2172
488
|
viewonly: boolean;
|
|
2173
489
|
spellcheck: boolean;
|
|
2174
|
-
validateTiming: ValidateTiming;
|
|
2175
|
-
rules: RecursiveVerifiableRuleOrFn;
|
|
490
|
+
validateTiming: import("@fastkit/vue-form-control").ValidateTiming;
|
|
491
|
+
rules: import("@fastkit/vue-form-control").RecursiveVerifiableRuleOrFn;
|
|
2176
492
|
showOwnErrors: boolean;
|
|
2177
493
|
detach: boolean;
|
|
2178
|
-
}, DefinedSlots<{
|
|
2179
|
-
[x: `error:${string}`]: (error: FormNodeError) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
494
|
+
}, import("@fastkit/vue-utils").DefinedSlots<{
|
|
495
|
+
[x: `error:${string}`]: (error: import("@fastkit/vue-form-control").FormNodeError) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
2180
496
|
[key: string]: any;
|
|
2181
497
|
}>[];
|
|
2182
|
-
label?: ((wrapper: FormNodeWrapper) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
498
|
+
label?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
2183
499
|
[key: string]: any;
|
|
2184
500
|
}>[]) | undefined;
|
|
2185
|
-
hint?: ((wrapper: FormNodeWrapper) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
501
|
+
hint?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
2186
502
|
[key: string]: any;
|
|
2187
503
|
}>[]) | undefined;
|
|
2188
|
-
infoAppends?: ((wrapper: FormNodeWrapper) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
504
|
+
infoAppends?: ((wrapper: import("@fastkit/vue-form-control").FormNodeWrapper) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
2189
505
|
[key: string]: any;
|
|
2190
506
|
}>[]) | undefined;
|
|
2191
|
-
error?: ((error: FormNodeError) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
507
|
+
error?: ((error: import("@fastkit/vue-form-control").FormNodeError) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
2192
508
|
[key: string]: any;
|
|
2193
509
|
}>[]) | undefined;
|
|
2194
510
|
} & {
|