@regle/core 0.5.14 → 0.6.1-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1062,7 +1062,7 @@ function createReactiveFieldStatus({
1062
1062
  $clearExternalErrors();
1063
1063
  }
1064
1064
  },
1065
- { deep: $isArray ? true : isVueSuperiorOrEqualTo3dotFive ? 1 : true }
1065
+ { deep: $isArray ? true : isVueSuperiorOrEqualTo3dotFive ? 1 : true, flush: "post" }
1066
1066
  );
1067
1067
  }
1068
1068
  function $commitHandler() {
@@ -1252,14 +1252,14 @@ function createReactiveCollectionStatus({
1252
1252
  const $id = vue.ref();
1253
1253
  const $value = vue.ref(state.value);
1254
1254
  let $unwatchState;
1255
- const $fieldStatus = vue.ref({});
1255
+ const $selfStatus = vue.ref({});
1256
1256
  const $eachStatus = storage.getCollectionsEntry(path);
1257
1257
  immediateScopeState = immediateScope.run(() => {
1258
1258
  const isPrimitiveArray = vue.computed(() => {
1259
1259
  if (Array.isArray(state.value) && state.value.length) {
1260
- return state.value.some((s) => typeof s !== "object");
1260
+ return state.value.every((s) => typeof s !== "object");
1261
1261
  } else if (rulesDef.value.$each && !(rulesDef.value.$each instanceof Function)) {
1262
- return Object.values(rulesDef.value.$each).every((rule) => isRuleDef(rule));
1262
+ return Object.values(rulesDef.value.$each).every((rule) => isRuleDef(rule) || typeof rule === "function");
1263
1263
  }
1264
1264
  return false;
1265
1265
  });
@@ -1288,7 +1288,7 @@ function createReactiveCollectionStatus({
1288
1288
  if (immediateScopeState.isPrimitiveArray.value) {
1289
1289
  return;
1290
1290
  }
1291
- $value.value = $fieldStatus.value.$value;
1291
+ $value.value = $selfStatus.value.$value;
1292
1292
  if (Array.isArray(state.value)) {
1293
1293
  $eachStatus.value = state.value.map((value, index) => {
1294
1294
  const { scope: scope2, unwrapped } = unwrapGetter(
@@ -1322,7 +1322,7 @@ function createReactiveCollectionStatus({
1322
1322
  } else {
1323
1323
  $eachStatus.value = [];
1324
1324
  }
1325
- $fieldStatus.value = createReactiveFieldStatus({
1325
+ $selfStatus.value = createReactiveFieldStatus({
1326
1326
  state,
1327
1327
  rulesDef,
1328
1328
  customMessages,
@@ -1408,27 +1408,27 @@ function createReactiveCollectionStatus({
1408
1408
  }
1409
1409
  });
1410
1410
  const $dirty = vue.computed(() => {
1411
- return $fieldStatus.value.$dirty && !!$eachStatus.value.length && $eachStatus.value.every((statusOrField) => {
1411
+ return $selfStatus.value.$dirty && !!$eachStatus.value.length && $eachStatus.value.every((statusOrField) => {
1412
1412
  return statusOrField.$dirty;
1413
1413
  });
1414
1414
  });
1415
1415
  const $anyDirty = vue.computed(() => {
1416
- return $fieldStatus.value.$anyDirty || $eachStatus.value.some((statusOrField) => {
1416
+ return $selfStatus.value.$anyDirty || $eachStatus.value.some((statusOrField) => {
1417
1417
  return statusOrField.$anyDirty;
1418
1418
  });
1419
1419
  });
1420
1420
  const $invalid = vue.computed(() => {
1421
- return $fieldStatus.value.$invalid || $eachStatus.value.some((statusOrField) => {
1421
+ return $selfStatus.value.$invalid || $eachStatus.value.some((statusOrField) => {
1422
1422
  return statusOrField.$invalid;
1423
1423
  });
1424
1424
  });
1425
1425
  const $valid = vue.computed(() => {
1426
- return (isEmpty($fieldStatus.value.$rules) ? true : $fieldStatus.value.$valid) && $eachStatus.value.every((statusOrField) => {
1426
+ return (isEmpty($selfStatus.value.$rules) ? true : $selfStatus.value.$valid) && $eachStatus.value.every((statusOrField) => {
1427
1427
  return statusOrField.$valid;
1428
1428
  });
1429
1429
  });
1430
1430
  const $error = vue.computed(() => {
1431
- return $fieldStatus.value.$error || $eachStatus.value.some((statusOrField) => {
1431
+ return $selfStatus.value.$error || $eachStatus.value.some((statusOrField) => {
1432
1432
  return statusOrField.$error;
1433
1433
  });
1434
1434
  });
@@ -1436,7 +1436,7 @@ function createReactiveCollectionStatus({
1436
1436
  return !($invalid.value || $pending.value);
1437
1437
  });
1438
1438
  const $pending = vue.computed(() => {
1439
- return $fieldStatus.value.$pending || $eachStatus.value.some((statusOrField) => {
1439
+ return $selfStatus.value.$pending || $eachStatus.value.some((statusOrField) => {
1440
1440
  return statusOrField.$pending;
1441
1441
  });
1442
1442
  });
@@ -1446,19 +1446,19 @@ function createReactiveCollectionStatus({
1446
1446
  });
1447
1447
  });
1448
1448
  const $anyEdited = vue.computed(() => {
1449
- return $fieldStatus.value.$anyEdited || $eachStatus.value.some((statusOrField) => {
1449
+ return $selfStatus.value.$anyEdited || $eachStatus.value.some((statusOrField) => {
1450
1450
  return statusOrField.$anyEdited;
1451
1451
  });
1452
1452
  });
1453
1453
  const $errors = vue.computed(() => {
1454
1454
  return {
1455
- $self: $fieldStatus.value.$errors,
1455
+ $self: $selfStatus.value.$errors,
1456
1456
  $each: $eachStatus.value.map(($each) => $each.$errors)
1457
1457
  };
1458
1458
  });
1459
1459
  const $silentErrors = vue.computed(() => {
1460
1460
  return {
1461
- $self: $fieldStatus.value.$silentErrors,
1461
+ $self: $selfStatus.value.$silentErrors,
1462
1462
  $each: $eachStatus.value.map(($each) => $each.$silentErrors)
1463
1463
  };
1464
1464
  });
@@ -1484,7 +1484,7 @@ function createReactiveCollectionStatus({
1484
1484
  $anyDirty,
1485
1485
  $name,
1486
1486
  $each: $eachStatus,
1487
- $field: $fieldStatus,
1487
+ $self: $selfStatus,
1488
1488
  $value: state,
1489
1489
  $edited,
1490
1490
  $anyEdited
@@ -1527,8 +1527,8 @@ function createReactiveCollectionStatus({
1527
1527
  if ($unwatchState) {
1528
1528
  $unwatchState();
1529
1529
  }
1530
- if ($fieldStatus.value) {
1531
- $fieldStatus.value.$unwatch();
1530
+ if ($selfStatus.value) {
1531
+ $selfStatus.value.$unwatch();
1532
1532
  }
1533
1533
  if ($eachStatus.value) {
1534
1534
  $eachStatus.value.forEach((element) => {
@@ -1545,13 +1545,13 @@ function createReactiveCollectionStatus({
1545
1545
  collectionScopes = [];
1546
1546
  }
1547
1547
  function $touch(runCommit = true, withConditions = false) {
1548
- $fieldStatus.value.$touch(runCommit, withConditions);
1548
+ $selfStatus.value.$touch(runCommit, withConditions);
1549
1549
  $eachStatus.value.forEach(($each) => {
1550
1550
  $each.$touch(runCommit, withConditions);
1551
1551
  });
1552
1552
  }
1553
1553
  function $reset() {
1554
- $fieldStatus.value.$reset();
1554
+ $selfStatus.value.$reset();
1555
1555
  $eachStatus.value.forEach(($each) => {
1556
1556
  $each.$reset();
1557
1557
  });
@@ -1560,7 +1560,7 @@ function createReactiveCollectionStatus({
1560
1560
  const data = state.value;
1561
1561
  try {
1562
1562
  const results = await Promise.allSettled([
1563
- $fieldStatus.value.$validate(),
1563
+ $selfStatus.value.$validate(),
1564
1564
  ...$eachStatus.value.map((rule) => {
1565
1565
  return rule.$validate();
1566
1566
  })
@@ -1578,7 +1578,7 @@ function createReactiveCollectionStatus({
1578
1578
  }
1579
1579
  }
1580
1580
  function $clearExternalErrors() {
1581
- $fieldStatus.value.$clearExternalErrors();
1581
+ $selfStatus.value.$clearExternalErrors();
1582
1582
  $eachStatus.value.forEach(($each) => {
1583
1583
  $each.$clearExternalErrors();
1584
1584
  });
@@ -1605,7 +1605,7 @@ function createReactiveCollectionStatus({
1605
1605
  }
1606
1606
  const { $shortcuts, ...restScopeState } = scopeState;
1607
1607
  return vue.reactive({
1608
- $field: $fieldStatus,
1608
+ $self: $selfStatus,
1609
1609
  ...restScopeState,
1610
1610
  ...$shortcuts,
1611
1611
  $each: $eachStatus,
@@ -1644,7 +1644,7 @@ function createReactiveNestedStatus({
1644
1644
  const scopedRulesStatus = Object.fromEntries(
1645
1645
  mapOfRulesDef.filter(([_, rule]) => !!rule).map(([statePropKey, statePropRules]) => {
1646
1646
  if (statePropRules) {
1647
- const stateRef = vue.toRef(state.value, statePropKey);
1647
+ const stateRef = vue.toRef(state.value ?? {}, statePropKey);
1648
1648
  const statePropRulesRef = vue.toRef(() => statePropRules);
1649
1649
  const $externalErrors = vue.toRef(externalErrors?.value ?? {}, statePropKey);
1650
1650
  const initialStateRef = vue.toRef(initialState?.value ?? {}, statePropKey);
@@ -1666,7 +1666,7 @@ function createReactiveNestedStatus({
1666
1666
  );
1667
1667
  const externalRulesStatus = Object.fromEntries(
1668
1668
  Object.entries(vue.unref(externalErrors) ?? {}).filter(([key, errors]) => !(key in rulesDef.value) && !!errors).map(([key]) => {
1669
- const stateRef = vue.toRef(state.value, key);
1669
+ const stateRef = vue.toRef(state.value ?? {}, key);
1670
1670
  const initialStateRef = vue.toRef(initialState?.value ?? {}, key);
1671
1671
  return [
1672
1672
  key,
@@ -1683,8 +1683,8 @@ function createReactiveNestedStatus({
1683
1683
  })
1684
1684
  );
1685
1685
  const statesWithNoRules = Object.fromEntries(
1686
- Object.entries(state.value).filter(([key]) => !(key in rulesDef.value) && !(key in (externalRulesStatus.value ?? {}))).map(([key]) => {
1687
- const stateRef = vue.toRef(state.value, key);
1686
+ Object.entries(state.value ?? {}).filter(([key]) => !(key in rulesDef.value) && !(key in (externalRulesStatus.value ?? {}))).map(([key]) => {
1687
+ const stateRef = vue.toRef(state.value ?? {}, key);
1688
1688
  const initialStateRef = vue.toRef(initialState?.value ?? {}, key);
1689
1689
  return [
1690
1690
  key,
@@ -509,6 +509,9 @@ interface RegleValidationGroupOutput {
509
509
  $silentErrors: string[];
510
510
  }
511
511
  type FieldRegleBehaviourOptions = AddDollarToOptions<RegleBehaviourOptions> & {
512
+ /**
513
+ * Let you declare the number of milliseconds the rule needs to wait before executing. Useful for async or heavy computations.
514
+ */
512
515
  $debounce?: number;
513
516
  };
514
517
  type ResolvedRegleBehaviourOptions = DeepMaybeRef<RequiredDeep<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Record<string, any>, Record<string, any>, Record<string, any[]>>;
@@ -516,8 +519,17 @@ type ShortcutCommonFn<T extends Record<string, any>> = {
516
519
  [x: string]: (element: OmitByType<T, Function>) => unknown;
517
520
  };
518
521
  type RegleShortcutDefinition<TCustomRules extends Record<string, any> = {}> = {
522
+ /**
523
+ * Allow you to customize the properties of every single field
524
+ */
519
525
  fields?: ShortcutCommonFn<RegleFieldStatus<any, Partial<TCustomRules> & Partial<DefaultValidators>>>;
526
+ /**
527
+ * Allow you to customize the properties of every parent of a nested object
528
+ */
520
529
  nested?: ShortcutCommonFn<RegleStatus<Record<string, any>, ReglePartialRuleTree<any, Partial<TCustomRules> & Partial<DefaultValidators>>>>;
530
+ /**
531
+ * Allow you to customize the properties of every parent of a collection
532
+ */
521
533
  collections?: ShortcutCommonFn<RegleCollectionStatus<any[], Partial<TCustomRules> & Partial<DefaultValidators>>>;
522
534
  };
523
535
  type AddDollarToOptions<T extends Record<string, any>> = {
@@ -528,7 +540,7 @@ interface Regle<TState extends Record<string, any> = EmptyObject, TRules extends
528
540
  /**
529
541
  * r$ is a reactive object containing the values, errors, dirty state and all the necessary validations properties you'll need to display informations.
530
542
  *
531
- * To see the list of properties: {@link https://www.reglejs.dev/core-concepts/validation-properties}
543
+ * To see the list of properties: {@link https://reglejs.dev/core-concepts/validation-properties}
532
544
  */
533
545
  r$: Raw<RegleRoot<TState, TRules, TValidationGroups, TShortcuts>>;
534
546
  }
@@ -536,9 +548,10 @@ type isDeepExact<T, U> = {
536
548
  [K in keyof T]-?: CheckDeepExact<NonNullable<T[K]>, K extends keyof U ? NonNullable<U[K]> : never>;
537
549
  }[keyof T] extends true ? true : false;
538
550
  type CheckDeepExact<T, U> = [U] extends [never] ? false : T extends RegleCollectionRuleDecl ? U extends RegleCollectionRuleDecl ? isDeepExact<NonNullable<T['$each']>, UnionToIntersection$1<NonNullable<U['$each']>>> : T extends RegleRuleDecl ? true : T extends ReglePartialRuleTree<any> ? isDeepExact<T, U> : false : T extends RegleRuleDecl ? true : T extends ReglePartialRuleTree<any> ? isDeepExact<T, U> : false;
539
- type DeepReactiveState<T extends Record<string, any>> = {
540
- [K in keyof T]: MaybeRef<T[K]>;
551
+ type DeepReactiveState<T extends Record<string, any> | undefined> = {
552
+ [K in keyof T]: InferDeepReactiveState<T[K]>;
541
553
  };
554
+ type InferDeepReactiveState<TState> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? DeepReactiveState<U[]> : NonNullable<TState> extends Date | File ? MaybeRef<TState> : TState extends Record<string, any> | undefined ? DeepReactiveState<TState> : MaybeRef<TState>;
542
555
  type DeepSafeFormState<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree> | undefined> = [unknown] extends [TState] ? {} : TRules extends undefined ? TState : TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree> ? Prettify<{
543
556
  [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? K : never]?: SafeProperty<TState[K], TRules[K]>;
544
557
  } & {
@@ -1581,7 +1594,7 @@ type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePar
1581
1594
  /** Collection of status of every item in your collection. Each item will be a field you can access, or map on it to display your elements. */
1582
1595
  readonly $each: Array<InferRegleStatusType<NonNullable<TRules>, NonNullable<TState>, number, TShortcuts>>;
1583
1596
  /** Represents the status of the collection itself. You can have validation rules on the array like minLength, this field represents the isolated status of the collection. */
1584
- readonly $field: RegleFieldStatus<TState, TFieldRule, TShortcuts>;
1597
+ readonly $self: RegleFieldStatus<TState, TFieldRule, TShortcuts>;
1585
1598
  /** Collection of all the error messages, collected for all children properties and nested forms.
1586
1599
  *
1587
1600
  * Only contains errors from properties where $dirty equals true. */
@@ -1600,7 +1613,7 @@ type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePar
1600
1613
  * @reference {@link RegleCollectionStatus}
1601
1614
  */
1602
1615
  interface $InternalRegleCollectionStatus extends Omit<$InternalRegleStatus, '$fields' | '$errors' | '$silentErrors'> {
1603
- readonly $field: $InternalRegleFieldStatus;
1616
+ readonly $self: $InternalRegleFieldStatus;
1604
1617
  readonly $each: Array<$InternalRegleStatusType>;
1605
1618
  readonly $errors: $InternalRegleCollectionErrors;
1606
1619
  readonly $silentErrors: $InternalRegleCollectionErrors;
@@ -1675,4 +1688,4 @@ declare function defineRegleConfig<TShortcuts extends RegleShortcutDefinition<TC
1675
1688
  inferRules: inferRulesFn<TCustomRules>;
1676
1689
  };
1677
1690
 
1678
- export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle, useRootStorage };
1691
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle, useRootStorage };
@@ -509,6 +509,9 @@ interface RegleValidationGroupOutput {
509
509
  $silentErrors: string[];
510
510
  }
511
511
  type FieldRegleBehaviourOptions = AddDollarToOptions<RegleBehaviourOptions> & {
512
+ /**
513
+ * Let you declare the number of milliseconds the rule needs to wait before executing. Useful for async or heavy computations.
514
+ */
512
515
  $debounce?: number;
513
516
  };
514
517
  type ResolvedRegleBehaviourOptions = DeepMaybeRef<RequiredDeep<RegleBehaviourOptions>> & LocalRegleBehaviourOptions<Record<string, any>, Record<string, any>, Record<string, any[]>>;
@@ -516,8 +519,17 @@ type ShortcutCommonFn<T extends Record<string, any>> = {
516
519
  [x: string]: (element: OmitByType<T, Function>) => unknown;
517
520
  };
518
521
  type RegleShortcutDefinition<TCustomRules extends Record<string, any> = {}> = {
522
+ /**
523
+ * Allow you to customize the properties of every single field
524
+ */
519
525
  fields?: ShortcutCommonFn<RegleFieldStatus<any, Partial<TCustomRules> & Partial<DefaultValidators>>>;
526
+ /**
527
+ * Allow you to customize the properties of every parent of a nested object
528
+ */
520
529
  nested?: ShortcutCommonFn<RegleStatus<Record<string, any>, ReglePartialRuleTree<any, Partial<TCustomRules> & Partial<DefaultValidators>>>>;
530
+ /**
531
+ * Allow you to customize the properties of every parent of a collection
532
+ */
521
533
  collections?: ShortcutCommonFn<RegleCollectionStatus<any[], Partial<TCustomRules> & Partial<DefaultValidators>>>;
522
534
  };
523
535
  type AddDollarToOptions<T extends Record<string, any>> = {
@@ -528,7 +540,7 @@ interface Regle<TState extends Record<string, any> = EmptyObject, TRules extends
528
540
  /**
529
541
  * r$ is a reactive object containing the values, errors, dirty state and all the necessary validations properties you'll need to display informations.
530
542
  *
531
- * To see the list of properties: {@link https://www.reglejs.dev/core-concepts/validation-properties}
543
+ * To see the list of properties: {@link https://reglejs.dev/core-concepts/validation-properties}
532
544
  */
533
545
  r$: Raw<RegleRoot<TState, TRules, TValidationGroups, TShortcuts>>;
534
546
  }
@@ -536,9 +548,10 @@ type isDeepExact<T, U> = {
536
548
  [K in keyof T]-?: CheckDeepExact<NonNullable<T[K]>, K extends keyof U ? NonNullable<U[K]> : never>;
537
549
  }[keyof T] extends true ? true : false;
538
550
  type CheckDeepExact<T, U> = [U] extends [never] ? false : T extends RegleCollectionRuleDecl ? U extends RegleCollectionRuleDecl ? isDeepExact<NonNullable<T['$each']>, UnionToIntersection$1<NonNullable<U['$each']>>> : T extends RegleRuleDecl ? true : T extends ReglePartialRuleTree<any> ? isDeepExact<T, U> : false : T extends RegleRuleDecl ? true : T extends ReglePartialRuleTree<any> ? isDeepExact<T, U> : false;
539
- type DeepReactiveState<T extends Record<string, any>> = {
540
- [K in keyof T]: MaybeRef<T[K]>;
551
+ type DeepReactiveState<T extends Record<string, any> | undefined> = {
552
+ [K in keyof T]: InferDeepReactiveState<T[K]>;
541
553
  };
554
+ type InferDeepReactiveState<TState> = NonNullable<TState> extends Array<infer U extends Record<string, any>> ? DeepReactiveState<U[]> : NonNullable<TState> extends Date | File ? MaybeRef<TState> : TState extends Record<string, any> | undefined ? DeepReactiveState<TState> : MaybeRef<TState>;
542
555
  type DeepSafeFormState<TState extends Record<string, any>, TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree> | undefined> = [unknown] extends [TState] ? {} : TRules extends undefined ? TState : TRules extends ReglePartialRuleTree<TState, CustomRulesDeclarationTree> ? Prettify<{
543
556
  [K in keyof TState as IsPropertyOutputRequired<TState[K], TRules[K]> extends false ? K : never]?: SafeProperty<TState[K], TRules[K]>;
544
557
  } & {
@@ -1581,7 +1594,7 @@ type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePar
1581
1594
  /** Collection of status of every item in your collection. Each item will be a field you can access, or map on it to display your elements. */
1582
1595
  readonly $each: Array<InferRegleStatusType<NonNullable<TRules>, NonNullable<TState>, number, TShortcuts>>;
1583
1596
  /** Represents the status of the collection itself. You can have validation rules on the array like minLength, this field represents the isolated status of the collection. */
1584
- readonly $field: RegleFieldStatus<TState, TFieldRule, TShortcuts>;
1597
+ readonly $self: RegleFieldStatus<TState, TFieldRule, TShortcuts>;
1585
1598
  /** Collection of all the error messages, collected for all children properties and nested forms.
1586
1599
  *
1587
1600
  * Only contains errors from properties where $dirty equals true. */
@@ -1600,7 +1613,7 @@ type RegleCollectionStatus<TState extends any[] = any[], TRules extends ReglePar
1600
1613
  * @reference {@link RegleCollectionStatus}
1601
1614
  */
1602
1615
  interface $InternalRegleCollectionStatus extends Omit<$InternalRegleStatus, '$fields' | '$errors' | '$silentErrors'> {
1603
- readonly $field: $InternalRegleFieldStatus;
1616
+ readonly $self: $InternalRegleFieldStatus;
1604
1617
  readonly $each: Array<$InternalRegleStatusType>;
1605
1618
  readonly $errors: $InternalRegleCollectionErrors;
1606
1619
  readonly $silentErrors: $InternalRegleCollectionErrors;
@@ -1675,4 +1688,4 @@ declare function defineRegleConfig<TShortcuts extends RegleShortcutDefinition<TC
1675
1688
  inferRules: inferRulesFn<TCustomRules>;
1676
1689
  };
1677
1690
 
1678
- export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle, useRootStorage };
1691
+ export { type $InternalRegleStatus, type AllRulesDeclarations, type DeepMaybeRef, type DeepReactiveState, type FormRuleDeclaration, type InferRegleRoot, type InferRegleRule, type InferRegleRules, type InferRegleShortcuts, type InferRegleStatusType, type InlineRuleDeclaration, InternalRuleType, type JoinDiscriminatedUnions, type LocalRegleBehaviourOptions, type Maybe, type NoInferLegacy, type PrimitiveTypes, type Regle, type RegleBehaviourOptions, type RegleCollectionErrors, type RegleCollectionRuleDecl, type RegleCollectionRuleDefinition, type RegleCollectionStatus, type RegleCommonStatus, type RegleComputedRules, type RegleEnforceCustomRequiredRules, type RegleEnforceRequiredRules, type RegleErrorTree, type RegleExternalCollectionErrors, type RegleExternalErrorTree, type RegleFieldStatus, type RegleFormPropertyType, type RegleInternalRuleDefs, type ReglePartialRuleTree, type RegleResult, type RegleRoot, type RegleRuleCore, type RegleRuleDecl, type RegleRuleDefinition, type RegleRuleDefinitionProcessor, type RegleRuleDefinitionWithMetadataProcessor, type RegleRuleInit, type RegleRuleMetadataConsumer, type RegleRuleMetadataDefinition, type RegleRuleMetadataExtended, type RegleRuleRaw, type RegleRuleStatus, type RegleRuleTypeReturn, type RegleRuleWithParamsDefinition, type RegleShortcutDefinition, type RegleStatus, type RegleUniversalParams, type RegleValidationErrors, type RegleValidationGroupEntry, type RegleValidationGroupOutput, type RegleRuleTree as RegleValidationTree, type ResolvedRegleBehaviourOptions, type Unwrap, type UnwrapRegleUniversalParams, type UnwrapRuleWithParams, createRule, defineRegleConfig, inferRules, unwrapRuleParameters, useRegle, useRootStorage };
@@ -1,2 +1,2 @@
1
- 'use strict';var vue=require('vue');function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ot=Symbol("regle-rule");function Pt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function H(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>H(n)))),r=="Map"&&(t=new Map([...e].map(n=>[H(n[0]),H(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Pt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=H(e[n]);}return t}function Q(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Me(e){if(L(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return !1}}function _e(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Ve=(r=>(r.Inline="__inline",r.Async="__async",r))(Ve||{});function ut(e,t){return e.some(r=>r[t])}function it(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function J(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function st(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function ct(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Ne(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...m){return e.validator(d,...J(m.length?m:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:J(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:J(d?.$params?.length?d.$params:t)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:J(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let m=e.validator(d,...J(t)),$;return m instanceof Promise?m.then(g=>($=g,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=m,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:st(t),_brand:ot}}function Ge(e){if(typeof e.validator=="function"){let r=Ne(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(ct(e.validator)>1){let l=function(...f){return Ne(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return r}throw new Error("Validator must be a function")}function We(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),f=vue.shallowRef(new Map);function p(o){let s=t.value.get(o);if(s)return s;{let i=vue.ref({});return t.value.set(o,i),i}}function d(o){let s=r.value.get(o);if(s)return s;{let i=vue.ref([]);return r.value.set(o,i),i}}function m(o,s,i){f.value.set(`${o}-${s}`,i);}function $(o,s){return f.value.get(`${o}-${s}`)}function g(o,s){o&&s!=null&&f.value.delete(`${o}-${s}`);}function V(o,s){n.value.set(o,s);}function F(o){return n.value.get(o)??!1}function a(o,s){e.value.set(o,s);}function T(o,s){let i=e.value.get(o);return i?C(s,i)?{valid:!0}:{valid:!1}:void 0}function C(o,s){let i=Object.keys(s),G=Object.keys(o);return G.length!==i.length||!G.every(W=>i.includes(W))?!1:G.every(W=>{let w=o[W],b=s[W];return !b||!w||typeof w=="function"||typeof b=="function"||typeof w=="number"||typeof w=="boolean"?!1:w._params?w._params?.every((q,y)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=J(b._params),k=J(w._params);return I?.[y]===k?.[y]}}):!0})}function N(o){let s=l.value.get(o);if(s)return s;{let i=vue.ref(!1),G=vue.ref(!0),z=vue.ref({}),W=vue.ref(!1);return l.value.set(o,{$pending:i,$valid:G,$metadata:z,$validating:W}),{$pending:i,$valid:G,$metadata:z,$validating:W}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:V,checkRuleDeclEntry:T,getDirtyState:F,trySetRuleStatusRef:N,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:m,deleteArrayStatus:g,arrayStatusStorage:f}}function Te(e){return e.value instanceof Date||e.value instanceof File?!1:Q(e.value)}function ke(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function De(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function Gt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var xe=Gt(vue.version,"3.5.0")!==-1;function Wt(){return Math.floor(Math.random()*Date.now()).toString()}function Ce(){return typeof window>"u"?Wt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ft(e,t){return Te(e)||Q(t.value)&&!L(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Rt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function pt(e){return !!e.value&&Q(e.value)}function $e(e){return Q(e)&&"_validator"in e}function ge(e){return typeof e.value!="function"}function dt(e){return Q(e)&&"$fields"in e}function yt(e){return !!e&&"$rules"in e}function Ue({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function vt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function mt({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:l,path:f,storage:p,$debounce:d,modifiers:m}){let $=vue.effectScope(),g={},V,F=vue.ref(!1),{$pending:a,$valid:T,$metadata:C,$validating:N}=p.trySetRuleStatusRef(`${f}.${n}`);function o(){$=vue.effectScope(),g=$.run(()=>{let b=vue.computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:T.value,$invalid:!T.value,$pending:a.value},$params:D.value,...C.value})),q=vue.computed(()=>ge(r)?typeof r.value.active=="function"?r.value.active(b.value):!!r.value.active:!0);function y(u){let c="",S=t?t[n]?.[u]:void 0;if(S&&(typeof S=="function"?c=S(b.value):c=S),ge(r)){let R=`_${u}_patched`;S&&!r.value[R]||(typeof r.value[u]=="function"?c=r.value[u](b.value):c=r.value[u]??"");}return c}let I=vue.computed(()=>{let u=y("message");return L(u)&&(u="This field is not valid"),u}),k=vue.computed(()=>y("tooltip")),te=vue.computed(()=>ge(r)&&r.value.type?r.value.type:n),ae=vue.computed(()=>ge(r)?r.value.validator:r.value),D=vue.computed(()=>typeof r.value=="function"?[]:J(r.value._params??[])),P=vue.computed(()=>`${f}.${te.value}`);return {$active:q,$message:I,$type:te,$validator:ae,$params:D,$path:P,$tooltip:k}}),V=vue.watch(g?.$params,()=>{(m.$autoDirty.value||m.$rewardEarly.value&&e.$error.value)&&z();});}o();function s(){T.value=!0,e.$dirty.value&&(a.value=!0);}async function i(){let b=!1;try{let q=g.$validator.value,y=q(l.value,...g.$params.value),I=l.value;s();let k;if(y instanceof Promise?k=await y:k=y,l.value!==I)return !0;if(typeof k=="boolean")b=k;else {let{$valid:te,...ae}=k;b=te,C.value=ae;}}catch{b=!1;}finally{a.value=!1;}return b}let G=De(i,d??200);async function z(){try{N.value=!0;let b=!1;if($e(r.value)&&r.value._async)b=await G();else {let q=g.$validator.value,y=q(l.value,...g.$params.value);if(y instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(y!=null)if(typeof y=="boolean")b=y;else {let{$valid:I,...k}=y;b=I,C.value=k;}}return T.value=b,b}catch{return !1}finally{N.value=!1;}}function W(){T.value=!0,C.value={},a.value=!1,N.value=!1,o();}function w(){V(),$.stop(),$=vue.effectScope();}return vue.reactive({...g,$pending:a,$valid:T,$metadata:C,$haveAsync:F,$validating:N,$validate:z,$unwatch:w,$watch:o,$reset:W})}function Ie({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,onUnwatch:m,$isArray:$,initialState:g,shortcuts:V}){let F=vue.effectScope(),a,T=[],C,N,o,s,i=()=>{};function G(){let v=t.value,A=f.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([M])=>M.startsWith("$"))),w(),y.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,Z])=>{if(Z){let re=vue.toRef(()=>Z);return [M,mt({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:re,ruleKey:M,state:e,path:n,storage:f,$debounce:I.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),z(),A?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),a.$dirty.value&&i()),f.addRuleDeclEntry(n,v);}function z(){i=a.$debounce.value?De(q,a.$debounce.value??a.$haveAnyAsyncRule?100:0):q;}function W(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$unwatch();}),o(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),C?.(),N?.(),F.stop(),F=vue.effectScope(),T.forEach(v=>v.stop()),T=[],m?.(),s?.();}function w(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$watch();}),a=F.run(()=>{let v=vue.ref(!1),A=vue.ref(!1),M=vue.computed(()=>v.value),Z=vue.computed(()=>I.value.$debounce),re=vue.computed(()=>I.value.$lazy!=null?I.value.$lazy:vue.unref(p.lazy)!=null?vue.unref(p.lazy):!1),h=vue.computed(()=>I.value.$rewardEarly!=null?I.value.$rewardEarly:vue.unref(p.rewardEarly)!=null?vue.unref(p.rewardEarly):!1),O=vue.computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:vue.unref(p.clearExternalErrorsOnChange)!=null?vue.unref(p.clearExternalErrorsOnChange):!0),E=vue.computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:vue.unref(p.autoDirty)!=null?vue.unref(p.autoDirty):!h.value),_=vue.computed(()=>Object.entries(y.value).some(([K,le])=>le.$validating)),ve=vue.computed({get:()=>e.value,set(K){C(),e.value=K,b();}}),Ae=vue.computed(()=>fe.value&&!me.value&&v.value),Qe=vue.computed(()=>Ae.value?Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value}}):[]),je=vue.computed(()=>v.value?Me(g.value)&&Me(e.value)?_e(g.value).getDate()!==_e(e.value).getDate():g.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(g.value)?e.value.length!==g.value.length:g.value!==e.value:!1),Xe=vue.computed(()=>je.value),Ze=vue.computed(()=>vt({field:{$rules:y.value}})),Ke=vue.computed(()=>Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),et=vue.computed(()=>E.value?M.value&&!(fe.value||me.value):!(fe.value||me.value)),me=vue.computed(()=>A.value||!h.value?Object.entries(y.value).some(([K,le])=>le.$pending):!1),fe=vue.computed(()=>d?.value?.length?!0:L(y.value)?!1:!h.value||h.value&&A.value?Object.entries(y.value).some(([K,le])=>!le.$valid):!1),tt=vue.computed(()=>l),Fe=vue.computed(()=>!!L(y.value)),rt=vue.computed(()=>d?.value?.length||Fe.value?!1:v.value&&!L(e.value)&&!_.value?Object.values(y.value).every(K=>K.$valid&&K.$active):!1),It=vue.computed(()=>Object.entries(y.value).some(([K,le])=>le.$haveAsync));function wt(){V?.fields&&Object.entries(V.fields).forEach(([K,le])=>{let at=vue.effectScope();nt[K]=at.run(()=>{let lt=vue.ref();return vue.watchEffect(()=>{lt.value=le(vue.reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:ve,$rules:y,$error:Ae,$pending:me,$invalid:fe,$valid:rt,$errors:Qe,$ready:et,$silentErrors:Ke,$anyDirty:M,$tooltips:Ze,$name:tt,$inactive:Fe,$edited:je,$anyEdited:Xe}));}),lt}),T.push(at);});}let nt={};return vue.watch(fe,K=>{K||(A.value=!1);}),{$error:Ae,$pending:me,$invalid:fe,$valid:rt,$debounce:Z,$lazy:re,$errors:Qe,$ready:et,$silentErrors:Ke,$rewardEarly:h,$autoDirty:E,$clearExternalErrorsOnChange:O,$anyDirty:M,$edited:je,$anyEdited:Xe,$name:tt,$haveAnyAsyncRule:It,$shortcuts:nt,$validating:_,$tooltips:Ze,$dirty:v,triggerPunishment:A,processShortcuts:wt,$silentValue:ve,$inactive:Fe}}),b(),o=vue.watch(a.$dirty,()=>{f.setDirtyEntry(n,a.$dirty.value);}),N=vue.watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),s=vue.watch(a.$haveAnyAsyncRule,z);}function b(){C=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),t.value instanceof Function&&G(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&u();},{deep:$?!0:xe?1:!0});}function q(){Object.values(y.value).forEach(v=>{v.$validate();});}let y=vue.ref({}),I=vue.ref({});G();function k(){u(),a.$dirty.value=!1,a.triggerPunishment.value=!1,f.setDirtyEntry(n,!1),g.value=Q(e.value)?H(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(y.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(y.value).forEach(v=>v.$validate());}function te(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i():v&&i();}async function ae(){try{let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:v};return L(y.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Z,re])=>re.$validate()))).every(Z=>Z.status==="fulfilled"?Z.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){W(),e.value=H(g),k();}function P(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function u(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&i();let{$shortcuts:c,$validating:S,$autoDirty:R,$rewardEarly:x,$clearExternalErrorsOnChange:B,$haveAnyAsyncRule:ee,$debounce:X,$lazy:oe,...ce}=a;return vue.reactive({...ce,$externalErrors:d,$value:e,$rules:y,...c,$reset:k,$touch:te,$validate:ae,$unwatch:W,$watch:w,$resetAll:D,$extractDirtyFields:P,$clearExternalErrors:u})}function He({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:m,initialState:$,shortcuts:g,fieldName:V}){let F=d.$key?d.$key:Ce(),a=`${t}.${String(F)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:F,enumerable:!1,configurable:!1,writable:!1}}));let T=be({state:f,rulesDef:vue.toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:vue.toRef(m?.value??[],r),initialState:$,shortcuts:g,fieldName:V});if(T){let C=f.value?.$id;T.$id=C??String(F),l.addArrayStatus(e,T.$id,T);}return T}function ht({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,initialState:d,shortcuts:m,fieldName:$}){let g=vue.effectScope(),V,F=vue.effectScope(),a,T=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let C=vue.ref(),N=vue.ref(e.value),o,s=vue.ref({}),i=l.getCollectionsEntry(n);a=F.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>$e(c)):!1)})),G(),w();function G(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Ce(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(N.value=s.value.$value,Array.isArray(e.value)?i.value=e.value.map((u,c)=>{let{scope:S,unwrapped:R}=ke(t.value.$each,vue.toRef(()=>u),c);S&&T.push(S);let x=vue.toRef(d.value??[],c),B=He({$id:C.value,path:n,customMessages:r,rules:R??{},stateValue:vue.toRef(()=>u),index:c,options:f,storage:l,externalErrors:vue.toRef(p?.value??{},"$each"),initialState:x,shortcuts:m,fieldName:$});return B||null}).filter(u=>!!u):i.value=[],s.value=Ie({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:vue.toRef(p?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:m,fieldName:$}));}function z(){if(Array.isArray(e.value)){let u=H(i.value);i.value=e.value.map((c,S)=>{let R=vue.toRef(()=>c);if(c.$id&&i.value.find(x=>x.$id===c.$id)){let x=l.getArrayStatus(C.value,c.$id);return x?(x.$value=R,x):null}else {let{scope:x,unwrapped:B}=ke(t.value.$each,R,S);if(x&&T.push(x),B){let ee=He({$id:C.value,path:n,customMessages:r,rules:B,stateValue:R,index:S,options:f,storage:l,externalErrors:vue.toRef(p?.value??{},"$each"),initialState:vue.toRef(d.value??[],S),shortcuts:m,fieldName:$});return ee||null}}}).filter(c=>!!c),u.filter(c=>!e.value.find(S=>c.$id===S.$id)).forEach((c,S)=>{l.deleteArrayStatus(C.value,S.toString());});}else i.value=[];}function W(){o=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?G():z();},{deep:xe?1:!0,flush:"pre"});}function w(){W(),g=vue.effectScope(),V=g.run(()=>{let u=vue.computed({get:()=>e.value,set(h){o(),e.value=h,W();}}),c=vue.computed(()=>s.value.$dirty&&!!i.value.length&&i.value.every(h=>h.$dirty)),S=vue.computed(()=>s.value.$anyDirty||i.value.some(h=>h.$anyDirty)),R=vue.computed(()=>s.value.$invalid||i.value.some(h=>h.$invalid)),x=vue.computed(()=>(L(s.value.$rules)?!0:s.value.$valid)&&i.value.every(h=>h.$valid)),B=vue.computed(()=>s.value.$error||i.value.some(h=>h.$error)),ee=vue.computed(()=>!(R.value||X.value)),X=vue.computed(()=>s.value.$pending||i.value.some(h=>h.$pending)),oe=vue.computed(()=>!!i.value.length&&i.value.every(h=>h.$edited)),ce=vue.computed(()=>s.value.$anyEdited||i.value.some(h=>h.$anyEdited)),v=vue.computed(()=>({$self:s.value.$errors,$each:i.value.map(h=>h.$errors)})),A=vue.computed(()=>({$self:s.value.$silentErrors,$each:i.value.map(h=>h.$silentErrors)})),M=vue.computed(()=>$);function Z(){m?.collections&&Object.entries(m?.collections).forEach(([h,O])=>{let E=vue.effectScope();re[h]=E.run(()=>{let _=vue.ref();return vue.watchEffect(()=>{_.value=O(vue.reactive({$dirty:c,$error:B,$silentValue:u,$pending:X,$invalid:R,$valid:x,$errors:v,$ready:ee,$silentErrors:A,$anyDirty:S,$name:M,$each:i,$field:s,$value:e,$edited:oe,$anyEdited:ce}));}),_}),T.push(E);});}let re={};return Z(),{$dirty:c,$anyDirty:S,$invalid:R,$valid:x,$error:B,$pending:X,$errors:v,$silentErrors:A,$ready:ee,$name:M,$shortcuts:re,$silentValue:u,$edited:oe,$anyEdited:ce}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),o());}function b(){o&&o(),s.value&&s.value.$unwatch(),i.value&&i.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),g.stop(),g=vue.effectScope(),F.stop(),F=vue.effectScope(!0),T.forEach(u=>u.stop()),T=[];}function q(u=!0,c=!1){s.value.$touch(u,c),i.value.forEach(S=>{S.$touch(u,c);});}function y(){s.value.$reset(),i.value.forEach(u=>{u.$reset();});}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([s.value.$validate(),...i.value.map(R=>R.$validate())])).every(R=>R.status==="fulfilled"?R.value.result===!0:!1),data:u}}catch{return {result:!1,data:u}}}function k(){s.value.$clearExternalErrors(),i.value.forEach(u=>{u.$clearExternalErrors();});}function te(u=!0){let c=i.value.map(S=>{if(dt(S))return S.$extractDirtyFields(u)});return u&&c.every(S=>L(S))&&(c=[]),c}function ae(){b(),e.value=H(d.value),y();}let{$shortcuts:D,...P}=V;return vue.reactive({$field:s,...P,...D,$each:i,$value:e,$validate:I,$unwatch:b,$watch:w,$touch:q,$reset:y,$resetAll:ae,$extractDirtyFields:te,$clearExternalErrors:k})}function Oe({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,validationGroups:f,initialState:p,fieldName:d,...m}){let $=vue.effectScope(),g,V=[],F=null,a=null,T=null;async function N(D=!0){let P=Object.entries(e.value),u=Object.fromEntries(P.filter(([R,x])=>!!x).map(([R,x])=>{if(x){let B=vue.toRef(t.value,R),ee=vue.toRef(()=>x),X=vue.toRef(l?.value??{},R),oe=vue.toRef(p?.value??{},R);return [R,be({state:B,rulesDef:ee,path:r?`${r}.${R}`:R,externalErrors:X,initialState:oe,fieldName:R,...m})]}return []})),c=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([R,x])=>!(R in e.value)&&!!x).map(([R])=>{let x=vue.toRef(t.value,R),B=vue.toRef(p?.value??{},R);return [R,be({state:x,rulesDef:vue.computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:vue.toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]})),S=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(c.value??{}))).map(([R])=>{let x=vue.toRef(t.value,R),B=vue.toRef(p?.value??{},R);return [R,be({state:x,rulesDef:vue.computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:vue.toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]}));o.value={...u,...c,...S},D&&W();}let o=m.storage.getFieldsEntry(r);N();function s(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),p.value={...H(t.value)},G();}function i(D=!0,P=!1){Object.values(o.value).forEach(u=>{u.$touch(D,P);});}function G(){l?.value&&(a=vue.watch(l,()=>{w(),N();},{deep:!0}));}function z(){T=vue.watch(t,()=>{w(),N(),i(!0,!0);},{flush:"sync"});}function W(){n&&(F?.(),F=vue.watch(n,()=>{w(),N();},{deep:!0,flush:"post"}),G()),z(),$=vue.effectScope(),g=$.run(()=>{let D=vue.computed({get:()=>t.value,set(O){w(),t.value=O,N();}}),P=vue.computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$dirty)),u=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyDirty)),c=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$invalid)),S=vue.computed(()=>{let O=Object.entries(o.value).filter(([E,_])=>yt(_)?!_.$inactive:!0);return O.length?O.every(([E,_])=>_?.$valid):!1}),R=vue.computed(()=>u.value&&!X.value&&c.value),x=vue.computed(()=>vue.unref(m.options.rewardEarly)!=null?vue.unref(m.options.rewardEarly):!1),B=vue.computed(()=>vue.unref(m.options.autoDirty)!=null?vue.unref(m.options.autoDirty):!x.value),ee=vue.computed(()=>B.value?u.value&&!(c.value||X.value):!(c.value||X.value)),X=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$edited)),A=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyEdited)),M=vue.computed(()=>d);function Z(){m.shortcuts?.nested&&Object.entries(m.shortcuts.nested).forEach(([O,E])=>{let _=vue.effectScope();h[O]=_.run(()=>{let ve=vue.ref();return vue.watchEffect(()=>{ve.value=E(vue.reactive({$dirty:P,$value:t,$silentValue:D,$error:R,$pending:X,$invalid:c,$valid:S,$ready:ee,$anyDirty:u,$name:M,$silentErrors:ce,$errors:oe,$fields:o,$edited:v,$anyEdited:A}));}),ve}),V.push(_);});}let re=vue.computed({get:()=>f?Object.fromEntries(Object.entries(f?.(o.value)??{}).map(([O,E])=>E.length?[O,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(_=>[_,ut(E,_)])),...Object.fromEntries(["$errors","$silentErrors"].map(_=>[_,it(E,_)]))}]:[])):{},set(){}}),h={};return Z(),{$dirty:P,$anyDirty:u,$invalid:c,$valid:S,$error:R,$pending:X,$errors:oe,$silentErrors:ce,$ready:ee,$name:M,$shortcuts:h,$groups:re,$silentValue:D,$edited:v,$anyEdited:A}});}function w(){F?.(),a?.(),T?.(),V.forEach(D=>D.stop()),V=[],$.stop(),o.value&&Object.entries(o.value).forEach(([D,P])=>{P.$unwatch();});}function b(){Object.entries(o.value).forEach(([D,P])=>{P.$clearExternalErrors();});}async function q(){w(),t.value=H({...p.value??{}}),s(),N();}function y(D){return D.filter(([P,u])=>Q(u)?!(u&&typeof u=="object"&&"_null"in u)&&!L(u):Array.isArray(u)?u.length:!0)}function I(D=!0){let P=Object.entries(o.value).map(([u,c])=>[u,c.$extractDirtyFields(D)]);return D&&(P=y(P)),Object.fromEntries(P)}async function k(){try{let D=t.value;return {result:(await Promise.allSettled(Object.values(o.value).map(c=>c.$validate()))).every(c=>c.status==="fulfilled"?c.value.result===!0:!1),data:D}}catch{return {result:!1,data:t.value}}}let{$shortcuts:te,...ae}=g;return vue.reactive({...ae,...te,$fields:o,$value:t,$resetAll:q,$reset:s,$touch:i,$validate:k,$unwatch:w,$watch:W,$clearExternalErrors:b,$extractDirtyFields:I})}function be({rulesDef:e,externalErrors:t,...r}){if(Rt(e,r.state))return ht({rulesDef:e,externalErrors:t,...r});if(ft(r.state,e)){if(Te(r.state))return Oe({rulesDef:e,externalErrors:t,...r});{let n=vue.ref({}),l=vue.watch(n,d=>{l(),r.state.value=d;},{deep:!0}),{state:f,...p}=r;return Oe({rulesDef:e,externalErrors:t,...p,state:n})}}else if(pt(e))return Ie({rulesDef:e,externalErrors:t,...r})}function ye({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f}){let p=We(),d=vue.ref();return d.value=Oe({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:""}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{d.value?.$unwatch();}),vue.reactive({regle:d})}function qe(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let m=vue.isRef(p)?p:vue.computed(typeof p=="function"?p:()=>p),$={...n,...d},g=vue.isRef(f)?f:vue.ref(f),V=vue.ref({...H(g.value)});return {r$:ye({scopeRules:m,state:g,options:$,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var xt=qe();function Je(){function e(t,r){return r}return e}var Ye=Je();function Ct({rules:e,modifiers:t,shortcuts:r}){let n=qe(e,t,r),l=Je();return {useRegle:n,inferRules:l}}
1
+ 'use strict';var vue=require('vue');function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ot=Symbol("regle-rule");function Pt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function H(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>H(n)))),r=="Map"&&(t=new Map([...e].map(n=>[H(n[0]),H(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Pt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=H(e[n]);}return t}function Q(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function _e(e){if(L(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return !1}}function je(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Ve=(r=>(r.Inline="__inline",r.Async="__async",r))(Ve||{});function ut(e,t){return e.some(r=>r[t])}function it(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function J(e){try{return e.map(t=>vue.toValue(t))}catch{return []}}function st(e){return e.map(t=>t instanceof Function?vue.computed(t):vue.isRef(t)?t:vue.toRef(()=>t))}function ct(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Ne(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...m){return e.validator(d,...J(m.length?m:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:J(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:J(d?.$params?.length?d.$params:t)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:J(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let m=e.validator(d,...J(t)),$;return m instanceof Promise?m.then(g=>($=g,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=m,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:st(t),_brand:ot}}function Ge(e){if(typeof e.validator=="function"){let r=Ne(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(ct(e.validator)>1){let l=function(...f){return Ne(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ke(){let e=vue.shallowRef(new Map),t=vue.shallowRef(new Map),r=vue.shallowRef(new Map),n=vue.shallowRef(new Map),l=vue.shallowRef(new Map),f=vue.shallowRef(new Map);function p(o){let c=t.value.get(o);if(c)return c;{let i=vue.ref({});return t.value.set(o,i),i}}function d(o){let c=r.value.get(o);if(c)return c;{let i=vue.ref([]);return r.value.set(o,i),i}}function m(o,c,i){f.value.set(`${o}-${c}`,i);}function $(o,c){return f.value.get(`${o}-${c}`)}function g(o,c){o&&c!=null&&f.value.delete(`${o}-${c}`);}function V(o,c){n.value.set(o,c);}function M(o){return n.value.get(o)??!1}function a(o,c){e.value.set(o,c);}function T(o,c){let i=e.value.get(o);return i?C(c,i)?{valid:!0}:{valid:!1}:void 0}function C(o,c){let i=Object.keys(c),G=Object.keys(o);return G.length!==i.length||!G.every(k=>i.includes(k))?!1:G.every(k=>{let w=o[k],b=c[k];return !b||!w||typeof w=="function"||typeof b=="function"||typeof w=="number"||typeof w=="boolean"?!1:w._params?w._params?.every((q,y)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=J(b._params),W=J(w._params);return I?.[y]===W?.[y]}}):!0})}function N(o){let c=l.value.get(o);if(c)return c;{let i=vue.ref(!1),G=vue.ref(!0),z=vue.ref({}),k=vue.ref(!1);return l.value.set(o,{$pending:i,$valid:G,$metadata:z,$validating:k}),{$pending:i,$valid:G,$metadata:z,$validating:k}}}return vue.getCurrentScope()&&vue.onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:V,checkRuleDeclEntry:T,getDirtyState:M,trySetRuleStatusRef:N,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:m,deleteArrayStatus:g,arrayStatusStorage:f}}function Te(e){return e.value instanceof Date||e.value instanceof File?!1:Q(e.value)}function We(e,t,r){let n=vue.effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function De(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function Gt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var xe=Gt(vue.version,"3.5.0")!==-1;function kt(){return Math.floor(Math.random()*Date.now()).toString()}function Ce(){return typeof window>"u"?kt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ft(e,t){return Te(e)||Q(t.value)&&!L(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Rt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function pt(e){return !!e.value&&Q(e.value)}function $e(e){return Q(e)&&"_validator"in e}function ge(e){return typeof e.value!="function"}function dt(e){return Q(e)&&"$fields"in e}function yt(e){return !!e&&"$rules"in e}function Ue({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function vt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function mt({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:l,path:f,storage:p,$debounce:d,modifiers:m}){let $=vue.effectScope(),g={},V,M=vue.ref(!1),{$pending:a,$valid:T,$metadata:C,$validating:N}=p.trySetRuleStatusRef(`${f}.${n}`);function o(){$=vue.effectScope(),g=$.run(()=>{let b=vue.computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:T.value,$invalid:!T.value,$pending:a.value},$params:D.value,...C.value})),q=vue.computed(()=>ge(r)?typeof r.value.active=="function"?r.value.active(b.value):!!r.value.active:!0);function y(u){let s="",S=t?t[n]?.[u]:void 0;if(S&&(typeof S=="function"?s=S(b.value):s=S),ge(r)){let R=`_${u}_patched`;S&&!r.value[R]||(typeof r.value[u]=="function"?s=r.value[u](b.value):s=r.value[u]??"");}return s}let I=vue.computed(()=>{let u=y("message");return L(u)&&(u="This field is not valid"),u}),W=vue.computed(()=>y("tooltip")),te=vue.computed(()=>ge(r)&&r.value.type?r.value.type:n),ae=vue.computed(()=>ge(r)?r.value.validator:r.value),D=vue.computed(()=>typeof r.value=="function"?[]:J(r.value._params??[])),P=vue.computed(()=>`${f}.${te.value}`);return {$active:q,$message:I,$type:te,$validator:ae,$params:D,$path:P,$tooltip:W}}),V=vue.watch(g?.$params,()=>{(m.$autoDirty.value||m.$rewardEarly.value&&e.$error.value)&&z();});}o();function c(){T.value=!0,e.$dirty.value&&(a.value=!0);}async function i(){let b=!1;try{let q=g.$validator.value,y=q(l.value,...g.$params.value),I=l.value;c();let W;if(y instanceof Promise?W=await y:W=y,l.value!==I)return !0;if(typeof W=="boolean")b=W;else {let{$valid:te,...ae}=W;b=te,C.value=ae;}}catch{b=!1;}finally{a.value=!1;}return b}let G=De(i,d??200);async function z(){try{N.value=!0;let b=!1;if($e(r.value)&&r.value._async)b=await G();else {let q=g.$validator.value,y=q(l.value,...g.$params.value);if(y instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(y!=null)if(typeof y=="boolean")b=y;else {let{$valid:I,...W}=y;b=I,C.value=W;}}return T.value=b,b}catch{return !1}finally{N.value=!1;}}function k(){T.value=!0,C.value={},a.value=!1,N.value=!1,o();}function w(){V(),$.stop(),$=vue.effectScope();}return vue.reactive({...g,$pending:a,$valid:T,$metadata:C,$haveAsync:M,$validating:N,$validate:z,$unwatch:w,$watch:o,$reset:k})}function Ie({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,onUnwatch:m,$isArray:$,initialState:g,shortcuts:V}){let M=vue.effectScope(),a,T=[],C,N,o,c,i=()=>{};function G(){let v=t.value,A=f.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([_])=>_.startsWith("$"))),w(),y.value=Object.fromEntries(Object.entries(t.value).filter(([_])=>!_.startsWith("$")).map(([_,Z])=>{if(Z){let re=vue.toRef(()=>Z);return [_,mt({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:re,ruleKey:_,state:e,path:n,storage:f,$debounce:I.value.$debounce})]}return []}).filter(_=>!!_.length)),a.processShortcuts(),z(),A?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),a.$dirty.value&&i()),f.addRuleDeclEntry(n,v);}function z(){i=a.$debounce.value?De(q,a.$debounce.value??a.$haveAnyAsyncRule?100:0):q;}function k(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$unwatch();}),o(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),C?.(),N?.(),M.stop(),M=vue.effectScope(),T.forEach(v=>v.stop()),T=[],m?.(),c?.();}function w(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$watch();}),a=M.run(()=>{let v=vue.ref(!1),A=vue.ref(!1),_=vue.computed(()=>v.value),Z=vue.computed(()=>I.value.$debounce),re=vue.computed(()=>I.value.$lazy!=null?I.value.$lazy:vue.unref(p.lazy)!=null?vue.unref(p.lazy):!1),h=vue.computed(()=>I.value.$rewardEarly!=null?I.value.$rewardEarly:vue.unref(p.rewardEarly)!=null?vue.unref(p.rewardEarly):!1),O=vue.computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:vue.unref(p.clearExternalErrorsOnChange)!=null?vue.unref(p.clearExternalErrorsOnChange):!0),E=vue.computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:vue.unref(p.autoDirty)!=null?vue.unref(p.autoDirty):!h.value),j=vue.computed(()=>Object.entries(y.value).some(([K,le])=>le.$validating)),ve=vue.computed({get:()=>e.value,set(K){C(),e.value=K,b();}}),Ae=vue.computed(()=>fe.value&&!me.value&&v.value),Qe=vue.computed(()=>Ae.value?Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value}}):[]),Fe=vue.computed(()=>v.value?_e(g.value)&&_e(e.value)?je(g.value).getDate()!==je(e.value).getDate():g.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(g.value)?e.value.length!==g.value.length:g.value!==e.value:!1),Xe=vue.computed(()=>Fe.value),Ze=vue.computed(()=>vt({field:{$rules:y.value}})),Ke=vue.computed(()=>Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),et=vue.computed(()=>E.value?_.value&&!(fe.value||me.value):!(fe.value||me.value)),me=vue.computed(()=>A.value||!h.value?Object.entries(y.value).some(([K,le])=>le.$pending):!1),fe=vue.computed(()=>d?.value?.length?!0:L(y.value)?!1:!h.value||h.value&&A.value?Object.entries(y.value).some(([K,le])=>!le.$valid):!1),tt=vue.computed(()=>l),Me=vue.computed(()=>!!L(y.value)),rt=vue.computed(()=>d?.value?.length||Me.value?!1:v.value&&!L(e.value)&&!j.value?Object.values(y.value).every(K=>K.$valid&&K.$active):!1),It=vue.computed(()=>Object.entries(y.value).some(([K,le])=>le.$haveAsync));function wt(){V?.fields&&Object.entries(V.fields).forEach(([K,le])=>{let at=vue.effectScope();nt[K]=at.run(()=>{let lt=vue.ref();return vue.watchEffect(()=>{lt.value=le(vue.reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:ve,$rules:y,$error:Ae,$pending:me,$invalid:fe,$valid:rt,$errors:Qe,$ready:et,$silentErrors:Ke,$anyDirty:_,$tooltips:Ze,$name:tt,$inactive:Me,$edited:Fe,$anyEdited:Xe}));}),lt}),T.push(at);});}let nt={};return vue.watch(fe,K=>{K||(A.value=!1);}),{$error:Ae,$pending:me,$invalid:fe,$valid:rt,$debounce:Z,$lazy:re,$errors:Qe,$ready:et,$silentErrors:Ke,$rewardEarly:h,$autoDirty:E,$clearExternalErrorsOnChange:O,$anyDirty:_,$edited:Fe,$anyEdited:Xe,$name:tt,$haveAnyAsyncRule:It,$shortcuts:nt,$validating:j,$tooltips:Ze,$dirty:v,triggerPunishment:A,processShortcuts:wt,$silentValue:ve,$inactive:Me}}),b(),o=vue.watch(a.$dirty,()=>{f.setDirtyEntry(n,a.$dirty.value);}),N=vue.watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),c=vue.watch(a.$haveAnyAsyncRule,z);}function b(){C=vue.watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),t.value instanceof Function&&G(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&u();},{deep:$?!0:xe?1:!0,flush:"post"});}function q(){Object.values(y.value).forEach(v=>{v.$validate();});}let y=vue.ref({}),I=vue.ref({});G();function W(){u(),a.$dirty.value=!1,a.triggerPunishment.value=!1,f.setDirtyEntry(n,!1),g.value=Q(e.value)?H(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(y.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(y.value).forEach(v=>v.$validate());}function te(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i():v&&i();}async function ae(){try{let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:v};return L(y.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Z,re])=>re.$validate()))).every(Z=>Z.status==="fulfilled"?Z.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){k(),e.value=H(g),W();}function P(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function u(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&i();let{$shortcuts:s,$validating:S,$autoDirty:R,$rewardEarly:x,$clearExternalErrorsOnChange:B,$haveAnyAsyncRule:ee,$debounce:X,$lazy:oe,...ce}=a;return vue.reactive({...ce,$externalErrors:d,$value:e,$rules:y,...s,$reset:W,$touch:te,$validate:ae,$unwatch:k,$watch:w,$resetAll:D,$extractDirtyFields:P,$clearExternalErrors:u})}function He({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:m,initialState:$,shortcuts:g,fieldName:V}){let M=d.$key?d.$key:Ce(),a=`${t}.${String(M)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:M,enumerable:!1,configurable:!1,writable:!1}}));let T=be({state:f,rulesDef:vue.toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:vue.toRef(m?.value??[],r),initialState:$,shortcuts:g,fieldName:V});if(T){let C=f.value?.$id;T.$id=C??String(M),l.addArrayStatus(e,T.$id,T);}return T}function ht({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,initialState:d,shortcuts:m,fieldName:$}){let g=vue.effectScope(),V,M=vue.effectScope(),a,T=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let C=vue.ref(),N=vue.ref(e.value),o,c=vue.ref({}),i=l.getCollectionsEntry(n);a=M.run(()=>({isPrimitiveArray:vue.computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(s=>typeof s!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(s=>$e(s)||typeof s=="function"):!1)})),G(),w();function G(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Ce(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(N.value=c.value.$value,Array.isArray(e.value)?i.value=e.value.map((u,s)=>{let{scope:S,unwrapped:R}=We(t.value.$each,vue.toRef(()=>u),s);S&&T.push(S);let x=vue.toRef(d.value??[],s),B=He({$id:C.value,path:n,customMessages:r,rules:R??{},stateValue:vue.toRef(()=>u),index:s,options:f,storage:l,externalErrors:vue.toRef(p?.value??{},"$each"),initialState:x,shortcuts:m,fieldName:$});return B||null}).filter(u=>!!u):i.value=[],c.value=Ie({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:vue.toRef(p?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:m,fieldName:$}));}function z(){if(Array.isArray(e.value)){let u=H(i.value);i.value=e.value.map((s,S)=>{let R=vue.toRef(()=>s);if(s.$id&&i.value.find(x=>x.$id===s.$id)){let x=l.getArrayStatus(C.value,s.$id);return x?(x.$value=R,x):null}else {let{scope:x,unwrapped:B}=We(t.value.$each,R,S);if(x&&T.push(x),B){let ee=He({$id:C.value,path:n,customMessages:r,rules:B,stateValue:R,index:S,options:f,storage:l,externalErrors:vue.toRef(p?.value??{},"$each"),initialState:vue.toRef(d.value??[],S),shortcuts:m,fieldName:$});return ee||null}}}).filter(s=>!!s),u.filter(s=>!e.value.find(S=>s.$id===S.$id)).forEach((s,S)=>{l.deleteArrayStatus(C.value,S.toString());});}else i.value=[];}function k(){o=vue.watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?G():z();},{deep:xe?1:!0,flush:"pre"});}function w(){k(),g=vue.effectScope(),V=g.run(()=>{let u=vue.computed({get:()=>e.value,set(h){o(),e.value=h,k();}}),s=vue.computed(()=>c.value.$dirty&&!!i.value.length&&i.value.every(h=>h.$dirty)),S=vue.computed(()=>c.value.$anyDirty||i.value.some(h=>h.$anyDirty)),R=vue.computed(()=>c.value.$invalid||i.value.some(h=>h.$invalid)),x=vue.computed(()=>(L(c.value.$rules)?!0:c.value.$valid)&&i.value.every(h=>h.$valid)),B=vue.computed(()=>c.value.$error||i.value.some(h=>h.$error)),ee=vue.computed(()=>!(R.value||X.value)),X=vue.computed(()=>c.value.$pending||i.value.some(h=>h.$pending)),oe=vue.computed(()=>!!i.value.length&&i.value.every(h=>h.$edited)),ce=vue.computed(()=>c.value.$anyEdited||i.value.some(h=>h.$anyEdited)),v=vue.computed(()=>({$self:c.value.$errors,$each:i.value.map(h=>h.$errors)})),A=vue.computed(()=>({$self:c.value.$silentErrors,$each:i.value.map(h=>h.$silentErrors)})),_=vue.computed(()=>$);function Z(){m?.collections&&Object.entries(m?.collections).forEach(([h,O])=>{let E=vue.effectScope();re[h]=E.run(()=>{let j=vue.ref();return vue.watchEffect(()=>{j.value=O(vue.reactive({$dirty:s,$error:B,$silentValue:u,$pending:X,$invalid:R,$valid:x,$errors:v,$ready:ee,$silentErrors:A,$anyDirty:S,$name:_,$each:i,$self:c,$value:e,$edited:oe,$anyEdited:ce}));}),j}),T.push(E);});}let re={};return Z(),{$dirty:s,$anyDirty:S,$invalid:R,$valid:x,$error:B,$pending:X,$errors:v,$silentErrors:A,$ready:ee,$name:_,$shortcuts:re,$silentValue:u,$edited:oe,$anyEdited:ce}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),o());}function b(){o&&o(),c.value&&c.value.$unwatch(),i.value&&i.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),g.stop(),g=vue.effectScope(),M.stop(),M=vue.effectScope(!0),T.forEach(u=>u.stop()),T=[];}function q(u=!0,s=!1){c.value.$touch(u,s),i.value.forEach(S=>{S.$touch(u,s);});}function y(){c.value.$reset(),i.value.forEach(u=>{u.$reset();});}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([c.value.$validate(),...i.value.map(R=>R.$validate())])).every(R=>R.status==="fulfilled"?R.value.result===!0:!1),data:u}}catch{return {result:!1,data:u}}}function W(){c.value.$clearExternalErrors(),i.value.forEach(u=>{u.$clearExternalErrors();});}function te(u=!0){let s=i.value.map(S=>{if(dt(S))return S.$extractDirtyFields(u)});return u&&s.every(S=>L(S))&&(s=[]),s}function ae(){b(),e.value=H(d.value),y();}let{$shortcuts:D,...P}=V;return vue.reactive({$self:c,...P,...D,$each:i,$value:e,$validate:I,$unwatch:b,$watch:w,$touch:q,$reset:y,$resetAll:ae,$extractDirtyFields:te,$clearExternalErrors:W})}function Oe({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,validationGroups:f,initialState:p,fieldName:d,...m}){let $=vue.effectScope(),g,V=[],M=null,a=null,T=null;async function N(D=!0){let P=Object.entries(e.value),u=Object.fromEntries(P.filter(([R,x])=>!!x).map(([R,x])=>{if(x){let B=vue.toRef(t.value??{},R),ee=vue.toRef(()=>x),X=vue.toRef(l?.value??{},R),oe=vue.toRef(p?.value??{},R);return [R,be({state:B,rulesDef:ee,path:r?`${r}.${R}`:R,externalErrors:X,initialState:oe,fieldName:R,...m})]}return []})),s=Object.fromEntries(Object.entries(vue.unref(l)??{}).filter(([R,x])=>!(R in e.value)&&!!x).map(([R])=>{let x=vue.toRef(t.value??{},R),B=vue.toRef(p?.value??{},R);return [R,be({state:x,rulesDef:vue.computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:vue.toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]})),S=Object.fromEntries(Object.entries(t.value??{}).filter(([R])=>!(R in e.value)&&!(R in(s.value??{}))).map(([R])=>{let x=vue.toRef(t.value??{},R),B=vue.toRef(p?.value??{},R);return [R,be({state:x,rulesDef:vue.computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:vue.toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]}));o.value={...u,...s,...S},D&&k();}let o=m.storage.getFieldsEntry(r);N();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),p.value={...H(t.value)},G();}function i(D=!0,P=!1){Object.values(o.value).forEach(u=>{u.$touch(D,P);});}function G(){l?.value&&(a=vue.watch(l,()=>{w(),N();},{deep:!0}));}function z(){T=vue.watch(t,()=>{w(),N(),i(!0,!0);},{flush:"sync"});}function k(){n&&(M?.(),M=vue.watch(n,()=>{w(),N();},{deep:!0,flush:"post"}),G()),z(),$=vue.effectScope(),g=$.run(()=>{let D=vue.computed({get:()=>t.value,set(O){w(),t.value=O,N();}}),P=vue.computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$dirty)),u=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyDirty)),s=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$invalid)),S=vue.computed(()=>{let O=Object.entries(o.value).filter(([E,j])=>yt(j)?!j.$inactive:!0);return O.length?O.every(([E,j])=>j?.$valid):!1}),R=vue.computed(()=>u.value&&!X.value&&s.value),x=vue.computed(()=>vue.unref(m.options.rewardEarly)!=null?vue.unref(m.options.rewardEarly):!1),B=vue.computed(()=>vue.unref(m.options.autoDirty)!=null?vue.unref(m.options.autoDirty):!x.value),ee=vue.computed(()=>B.value?u.value&&!(s.value||X.value):!(s.value||X.value)),X=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$pending)),oe=vue.computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$errors]))),ce=vue.computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$silentErrors]))),v=vue.computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$edited)),A=vue.computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyEdited)),_=vue.computed(()=>d);function Z(){m.shortcuts?.nested&&Object.entries(m.shortcuts.nested).forEach(([O,E])=>{let j=vue.effectScope();h[O]=j.run(()=>{let ve=vue.ref();return vue.watchEffect(()=>{ve.value=E(vue.reactive({$dirty:P,$value:t,$silentValue:D,$error:R,$pending:X,$invalid:s,$valid:S,$ready:ee,$anyDirty:u,$name:_,$silentErrors:ce,$errors:oe,$fields:o,$edited:v,$anyEdited:A}));}),ve}),V.push(j);});}let re=vue.computed({get:()=>f?Object.fromEntries(Object.entries(f?.(o.value)??{}).map(([O,E])=>E.length?[O,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(j=>[j,ut(E,j)])),...Object.fromEntries(["$errors","$silentErrors"].map(j=>[j,it(E,j)]))}]:[])):{},set(){}}),h={};return Z(),{$dirty:P,$anyDirty:u,$invalid:s,$valid:S,$error:R,$pending:X,$errors:oe,$silentErrors:ce,$ready:ee,$name:_,$shortcuts:h,$groups:re,$silentValue:D,$edited:v,$anyEdited:A}});}function w(){M?.(),a?.(),T?.(),V.forEach(D=>D.stop()),V=[],$.stop(),o.value&&Object.entries(o.value).forEach(([D,P])=>{P.$unwatch();});}function b(){Object.entries(o.value).forEach(([D,P])=>{P.$clearExternalErrors();});}async function q(){w(),t.value=H({...p.value??{}}),c(),N();}function y(D){return D.filter(([P,u])=>Q(u)?!(u&&typeof u=="object"&&"_null"in u)&&!L(u):Array.isArray(u)?u.length:!0)}function I(D=!0){let P=Object.entries(o.value).map(([u,s])=>[u,s.$extractDirtyFields(D)]);return D&&(P=y(P)),Object.fromEntries(P)}async function W(){try{let D=t.value;return {result:(await Promise.allSettled(Object.values(o.value).map(s=>s.$validate()))).every(s=>s.status==="fulfilled"?s.value.result===!0:!1),data:D}}catch{return {result:!1,data:t.value}}}let{$shortcuts:te,...ae}=g;return vue.reactive({...ae,...te,$fields:o,$value:t,$resetAll:q,$reset:c,$touch:i,$validate:W,$unwatch:w,$watch:k,$clearExternalErrors:b,$extractDirtyFields:I})}function be({rulesDef:e,externalErrors:t,...r}){if(Rt(e,r.state))return ht({rulesDef:e,externalErrors:t,...r});if(ft(r.state,e)){if(Te(r.state))return Oe({rulesDef:e,externalErrors:t,...r});{let n=vue.ref({}),l=vue.watch(n,d=>{l(),r.state.value=d;},{deep:!0}),{state:f,...p}=r;return Oe({rulesDef:e,externalErrors:t,...p,state:n})}}else if(pt(e))return Ie({rulesDef:e,externalErrors:t,...r})}function ye({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f}){let p=ke(),d=vue.ref();return d.value=Oe({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:""}),vue.getCurrentScope()&&vue.onScopeDispose(()=>{d.value?.$unwatch();}),vue.reactive({regle:d})}function qe(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let m=vue.isRef(p)?p:vue.computed(typeof p=="function"?p:()=>p),$={...n,...d},g=vue.isRef(f)?f:vue.ref(f),V=vue.ref({...H(g.value)});return {r$:ye({scopeRules:m,state:g,options:$,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var xt=qe();function Je(){function e(t,r){return r}return e}var Ye=Je();function Ct({rules:e,modifiers:t,shortcuts:r}){let n=qe(e,t,r),l=Je();return {useRegle:n,inferRules:l}}
2
2
  exports.InternalRuleType=Ve;exports.createRule=Ge;exports.defineRegleConfig=Ct;exports.inferRules=Ye;exports.unwrapRuleParameters=J;exports.useRegle=xt;exports.useRootStorage=ye;
@@ -1,2 +1,2 @@
1
- import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,shallowRef,effectScope,computed,isRef,toRef,unref,watch,watchEffect}from'vue';function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ot=Symbol("regle-rule");function Pt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function H(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>H(n)))),r=="Map"&&(t=new Map([...e].map(n=>[H(n[0]),H(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Pt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=H(e[n]);}return t}function Q(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function Me(e){if(L(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return !1}}function _e(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Ve=(r=>(r.Inline="__inline",r.Async="__async",r))(Ve||{});function ut(e,t){return e.some(r=>r[t])}function it(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function J(e){try{return e.map(t=>toValue(t))}catch{return []}}function st(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function ct(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Ne(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...m){return e.validator(d,...J(m.length?m:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:J(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:J(d?.$params?.length?d.$params:t)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:J(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let m=e.validator(d,...J(t)),$;return m instanceof Promise?m.then(g=>($=g,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=m,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:st(t),_brand:ot}}function Ge(e){if(typeof e.validator=="function"){let r=Ne(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(ct(e.validator)>1){let l=function(...f){return Ne(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return r}throw new Error("Validator must be a function")}function We(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),f=shallowRef(new Map);function p(o){let s=t.value.get(o);if(s)return s;{let i=ref({});return t.value.set(o,i),i}}function d(o){let s=r.value.get(o);if(s)return s;{let i=ref([]);return r.value.set(o,i),i}}function m(o,s,i){f.value.set(`${o}-${s}`,i);}function $(o,s){return f.value.get(`${o}-${s}`)}function g(o,s){o&&s!=null&&f.value.delete(`${o}-${s}`);}function V(o,s){n.value.set(o,s);}function F(o){return n.value.get(o)??!1}function a(o,s){e.value.set(o,s);}function T(o,s){let i=e.value.get(o);return i?C(s,i)?{valid:!0}:{valid:!1}:void 0}function C(o,s){let i=Object.keys(s),G=Object.keys(o);return G.length!==i.length||!G.every(W=>i.includes(W))?!1:G.every(W=>{let w=o[W],b=s[W];return !b||!w||typeof w=="function"||typeof b=="function"||typeof w=="number"||typeof w=="boolean"?!1:w._params?w._params?.every((q,y)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=J(b._params),k=J(w._params);return I?.[y]===k?.[y]}}):!0})}function N(o){let s=l.value.get(o);if(s)return s;{let i=ref(!1),G=ref(!0),z=ref({}),W=ref(!1);return l.value.set(o,{$pending:i,$valid:G,$metadata:z,$validating:W}),{$pending:i,$valid:G,$metadata:z,$validating:W}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:V,checkRuleDeclEntry:T,getDirtyState:F,trySetRuleStatusRef:N,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:m,deleteArrayStatus:g,arrayStatusStorage:f}}function Te(e){return e.value instanceof Date||e.value instanceof File?!1:Q(e.value)}function ke(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function De(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function Gt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var xe=Gt(version,"3.5.0")!==-1;function Wt(){return Math.floor(Math.random()*Date.now()).toString()}function Ce(){return typeof window>"u"?Wt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ft(e,t){return Te(e)||Q(t.value)&&!L(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Rt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function pt(e){return !!e.value&&Q(e.value)}function $e(e){return Q(e)&&"_validator"in e}function ge(e){return typeof e.value!="function"}function dt(e){return Q(e)&&"$fields"in e}function yt(e){return !!e&&"$rules"in e}function Ue({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function vt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function mt({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:l,path:f,storage:p,$debounce:d,modifiers:m}){let $=effectScope(),g={},V,F=ref(!1),{$pending:a,$valid:T,$metadata:C,$validating:N}=p.trySetRuleStatusRef(`${f}.${n}`);function o(){$=effectScope(),g=$.run(()=>{let b=computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:T.value,$invalid:!T.value,$pending:a.value},$params:D.value,...C.value})),q=computed(()=>ge(r)?typeof r.value.active=="function"?r.value.active(b.value):!!r.value.active:!0);function y(u){let c="",S=t?t[n]?.[u]:void 0;if(S&&(typeof S=="function"?c=S(b.value):c=S),ge(r)){let R=`_${u}_patched`;S&&!r.value[R]||(typeof r.value[u]=="function"?c=r.value[u](b.value):c=r.value[u]??"");}return c}let I=computed(()=>{let u=y("message");return L(u)&&(u="This field is not valid"),u}),k=computed(()=>y("tooltip")),te=computed(()=>ge(r)&&r.value.type?r.value.type:n),ae=computed(()=>ge(r)?r.value.validator:r.value),D=computed(()=>typeof r.value=="function"?[]:J(r.value._params??[])),P=computed(()=>`${f}.${te.value}`);return {$active:q,$message:I,$type:te,$validator:ae,$params:D,$path:P,$tooltip:k}}),V=watch(g?.$params,()=>{(m.$autoDirty.value||m.$rewardEarly.value&&e.$error.value)&&z();});}o();function s(){T.value=!0,e.$dirty.value&&(a.value=!0);}async function i(){let b=!1;try{let q=g.$validator.value,y=q(l.value,...g.$params.value),I=l.value;s();let k;if(y instanceof Promise?k=await y:k=y,l.value!==I)return !0;if(typeof k=="boolean")b=k;else {let{$valid:te,...ae}=k;b=te,C.value=ae;}}catch{b=!1;}finally{a.value=!1;}return b}let G=De(i,d??200);async function z(){try{N.value=!0;let b=!1;if($e(r.value)&&r.value._async)b=await G();else {let q=g.$validator.value,y=q(l.value,...g.$params.value);if(y instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(y!=null)if(typeof y=="boolean")b=y;else {let{$valid:I,...k}=y;b=I,C.value=k;}}return T.value=b,b}catch{return !1}finally{N.value=!1;}}function W(){T.value=!0,C.value={},a.value=!1,N.value=!1,o();}function w(){V(),$.stop(),$=effectScope();}return reactive({...g,$pending:a,$valid:T,$metadata:C,$haveAsync:F,$validating:N,$validate:z,$unwatch:w,$watch:o,$reset:W})}function Ie({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,onUnwatch:m,$isArray:$,initialState:g,shortcuts:V}){let F=effectScope(),a,T=[],C,N,o,s,i=()=>{};function G(){let v=t.value,A=f.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([M])=>M.startsWith("$"))),w(),y.value=Object.fromEntries(Object.entries(t.value).filter(([M])=>!M.startsWith("$")).map(([M,Z])=>{if(Z){let re=toRef(()=>Z);return [M,mt({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:re,ruleKey:M,state:e,path:n,storage:f,$debounce:I.value.$debounce})]}return []}).filter(M=>!!M.length)),a.processShortcuts(),z(),A?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),a.$dirty.value&&i()),f.addRuleDeclEntry(n,v);}function z(){i=a.$debounce.value?De(q,a.$debounce.value??a.$haveAnyAsyncRule?100:0):q;}function W(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$unwatch();}),o(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),C?.(),N?.(),F.stop(),F=effectScope(),T.forEach(v=>v.stop()),T=[],m?.(),s?.();}function w(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$watch();}),a=F.run(()=>{let v=ref(!1),A=ref(!1),M=computed(()=>v.value),Z=computed(()=>I.value.$debounce),re=computed(()=>I.value.$lazy!=null?I.value.$lazy:unref(p.lazy)!=null?unref(p.lazy):!1),h=computed(()=>I.value.$rewardEarly!=null?I.value.$rewardEarly:unref(p.rewardEarly)!=null?unref(p.rewardEarly):!1),O=computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:unref(p.clearExternalErrorsOnChange)!=null?unref(p.clearExternalErrorsOnChange):!0),E=computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:unref(p.autoDirty)!=null?unref(p.autoDirty):!h.value),_=computed(()=>Object.entries(y.value).some(([K,le])=>le.$validating)),ve=computed({get:()=>e.value,set(K){C(),e.value=K,b();}}),Ae=computed(()=>fe.value&&!me.value&&v.value),Qe=computed(()=>Ae.value?Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value}}):[]),je=computed(()=>v.value?Me(g.value)&&Me(e.value)?_e(g.value).getDate()!==_e(e.value).getDate():g.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(g.value)?e.value.length!==g.value.length:g.value!==e.value:!1),Xe=computed(()=>je.value),Ze=computed(()=>vt({field:{$rules:y.value}})),Ke=computed(()=>Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),et=computed(()=>E.value?M.value&&!(fe.value||me.value):!(fe.value||me.value)),me=computed(()=>A.value||!h.value?Object.entries(y.value).some(([K,le])=>le.$pending):!1),fe=computed(()=>d?.value?.length?!0:L(y.value)?!1:!h.value||h.value&&A.value?Object.entries(y.value).some(([K,le])=>!le.$valid):!1),tt=computed(()=>l),Fe=computed(()=>!!L(y.value)),rt=computed(()=>d?.value?.length||Fe.value?!1:v.value&&!L(e.value)&&!_.value?Object.values(y.value).every(K=>K.$valid&&K.$active):!1),It=computed(()=>Object.entries(y.value).some(([K,le])=>le.$haveAsync));function wt(){V?.fields&&Object.entries(V.fields).forEach(([K,le])=>{let at=effectScope();nt[K]=at.run(()=>{let lt=ref();return watchEffect(()=>{lt.value=le(reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:ve,$rules:y,$error:Ae,$pending:me,$invalid:fe,$valid:rt,$errors:Qe,$ready:et,$silentErrors:Ke,$anyDirty:M,$tooltips:Ze,$name:tt,$inactive:Fe,$edited:je,$anyEdited:Xe}));}),lt}),T.push(at);});}let nt={};return watch(fe,K=>{K||(A.value=!1);}),{$error:Ae,$pending:me,$invalid:fe,$valid:rt,$debounce:Z,$lazy:re,$errors:Qe,$ready:et,$silentErrors:Ke,$rewardEarly:h,$autoDirty:E,$clearExternalErrorsOnChange:O,$anyDirty:M,$edited:je,$anyEdited:Xe,$name:tt,$haveAnyAsyncRule:It,$shortcuts:nt,$validating:_,$tooltips:Ze,$dirty:v,triggerPunishment:A,processShortcuts:wt,$silentValue:ve,$inactive:Fe}}),b(),o=watch(a.$dirty,()=>{f.setDirtyEntry(n,a.$dirty.value);}),N=watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),s=watch(a.$haveAnyAsyncRule,z);}function b(){C=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),t.value instanceof Function&&G(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&u();},{deep:$?!0:xe?1:!0});}function q(){Object.values(y.value).forEach(v=>{v.$validate();});}let y=ref({}),I=ref({});G();function k(){u(),a.$dirty.value=!1,a.triggerPunishment.value=!1,f.setDirtyEntry(n,!1),g.value=Q(e.value)?H(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(y.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(y.value).forEach(v=>v.$validate());}function te(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i():v&&i();}async function ae(){try{let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:v};return L(y.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Z,re])=>re.$validate()))).every(Z=>Z.status==="fulfilled"?Z.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){W(),e.value=H(g),k();}function P(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function u(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&i();let{$shortcuts:c,$validating:S,$autoDirty:R,$rewardEarly:x,$clearExternalErrorsOnChange:B,$haveAnyAsyncRule:ee,$debounce:X,$lazy:oe,...ce}=a;return reactive({...ce,$externalErrors:d,$value:e,$rules:y,...c,$reset:k,$touch:te,$validate:ae,$unwatch:W,$watch:w,$resetAll:D,$extractDirtyFields:P,$clearExternalErrors:u})}function He({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:m,initialState:$,shortcuts:g,fieldName:V}){let F=d.$key?d.$key:Ce(),a=`${t}.${String(F)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:F,enumerable:!1,configurable:!1,writable:!1}}));let T=be({state:f,rulesDef:toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:toRef(m?.value??[],r),initialState:$,shortcuts:g,fieldName:V});if(T){let C=f.value?.$id;T.$id=C??String(F),l.addArrayStatus(e,T.$id,T);}return T}function ht({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,initialState:d,shortcuts:m,fieldName:$}){let g=effectScope(),V,F=effectScope(),a,T=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let C=ref(),N=ref(e.value),o,s=ref({}),i=l.getCollectionsEntry(n);a=F.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.some(c=>typeof c!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(c=>$e(c)):!1)})),G(),w();function G(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Ce(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(N.value=s.value.$value,Array.isArray(e.value)?i.value=e.value.map((u,c)=>{let{scope:S,unwrapped:R}=ke(t.value.$each,toRef(()=>u),c);S&&T.push(S);let x=toRef(d.value??[],c),B=He({$id:C.value,path:n,customMessages:r,rules:R??{},stateValue:toRef(()=>u),index:c,options:f,storage:l,externalErrors:toRef(p?.value??{},"$each"),initialState:x,shortcuts:m,fieldName:$});return B||null}).filter(u=>!!u):i.value=[],s.value=Ie({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:toRef(p?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:m,fieldName:$}));}function z(){if(Array.isArray(e.value)){let u=H(i.value);i.value=e.value.map((c,S)=>{let R=toRef(()=>c);if(c.$id&&i.value.find(x=>x.$id===c.$id)){let x=l.getArrayStatus(C.value,c.$id);return x?(x.$value=R,x):null}else {let{scope:x,unwrapped:B}=ke(t.value.$each,R,S);if(x&&T.push(x),B){let ee=He({$id:C.value,path:n,customMessages:r,rules:B,stateValue:R,index:S,options:f,storage:l,externalErrors:toRef(p?.value??{},"$each"),initialState:toRef(d.value??[],S),shortcuts:m,fieldName:$});return ee||null}}}).filter(c=>!!c),u.filter(c=>!e.value.find(S=>c.$id===S.$id)).forEach((c,S)=>{l.deleteArrayStatus(C.value,S.toString());});}else i.value=[];}function W(){o=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?G():z();},{deep:xe?1:!0,flush:"pre"});}function w(){W(),g=effectScope(),V=g.run(()=>{let u=computed({get:()=>e.value,set(h){o(),e.value=h,W();}}),c=computed(()=>s.value.$dirty&&!!i.value.length&&i.value.every(h=>h.$dirty)),S=computed(()=>s.value.$anyDirty||i.value.some(h=>h.$anyDirty)),R=computed(()=>s.value.$invalid||i.value.some(h=>h.$invalid)),x=computed(()=>(L(s.value.$rules)?!0:s.value.$valid)&&i.value.every(h=>h.$valid)),B=computed(()=>s.value.$error||i.value.some(h=>h.$error)),ee=computed(()=>!(R.value||X.value)),X=computed(()=>s.value.$pending||i.value.some(h=>h.$pending)),oe=computed(()=>!!i.value.length&&i.value.every(h=>h.$edited)),ce=computed(()=>s.value.$anyEdited||i.value.some(h=>h.$anyEdited)),v=computed(()=>({$self:s.value.$errors,$each:i.value.map(h=>h.$errors)})),A=computed(()=>({$self:s.value.$silentErrors,$each:i.value.map(h=>h.$silentErrors)})),M=computed(()=>$);function Z(){m?.collections&&Object.entries(m?.collections).forEach(([h,O])=>{let E=effectScope();re[h]=E.run(()=>{let _=ref();return watchEffect(()=>{_.value=O(reactive({$dirty:c,$error:B,$silentValue:u,$pending:X,$invalid:R,$valid:x,$errors:v,$ready:ee,$silentErrors:A,$anyDirty:S,$name:M,$each:i,$field:s,$value:e,$edited:oe,$anyEdited:ce}));}),_}),T.push(E);});}let re={};return Z(),{$dirty:c,$anyDirty:S,$invalid:R,$valid:x,$error:B,$pending:X,$errors:v,$silentErrors:A,$ready:ee,$name:M,$shortcuts:re,$silentValue:u,$edited:oe,$anyEdited:ce}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),o());}function b(){o&&o(),s.value&&s.value.$unwatch(),i.value&&i.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),g.stop(),g=effectScope(),F.stop(),F=effectScope(!0),T.forEach(u=>u.stop()),T=[];}function q(u=!0,c=!1){s.value.$touch(u,c),i.value.forEach(S=>{S.$touch(u,c);});}function y(){s.value.$reset(),i.value.forEach(u=>{u.$reset();});}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([s.value.$validate(),...i.value.map(R=>R.$validate())])).every(R=>R.status==="fulfilled"?R.value.result===!0:!1),data:u}}catch{return {result:!1,data:u}}}function k(){s.value.$clearExternalErrors(),i.value.forEach(u=>{u.$clearExternalErrors();});}function te(u=!0){let c=i.value.map(S=>{if(dt(S))return S.$extractDirtyFields(u)});return u&&c.every(S=>L(S))&&(c=[]),c}function ae(){b(),e.value=H(d.value),y();}let{$shortcuts:D,...P}=V;return reactive({$field:s,...P,...D,$each:i,$value:e,$validate:I,$unwatch:b,$watch:w,$touch:q,$reset:y,$resetAll:ae,$extractDirtyFields:te,$clearExternalErrors:k})}function Oe({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,validationGroups:f,initialState:p,fieldName:d,...m}){let $=effectScope(),g,V=[],F=null,a=null,T=null;async function N(D=!0){let P=Object.entries(e.value),u=Object.fromEntries(P.filter(([R,x])=>!!x).map(([R,x])=>{if(x){let B=toRef(t.value,R),ee=toRef(()=>x),X=toRef(l?.value??{},R),oe=toRef(p?.value??{},R);return [R,be({state:B,rulesDef:ee,path:r?`${r}.${R}`:R,externalErrors:X,initialState:oe,fieldName:R,...m})]}return []})),c=Object.fromEntries(Object.entries(unref(l)??{}).filter(([R,x])=>!(R in e.value)&&!!x).map(([R])=>{let x=toRef(t.value,R),B=toRef(p?.value??{},R);return [R,be({state:x,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]})),S=Object.fromEntries(Object.entries(t.value).filter(([R])=>!(R in e.value)&&!(R in(c.value??{}))).map(([R])=>{let x=toRef(t.value,R),B=toRef(p?.value??{},R);return [R,be({state:x,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]}));o.value={...u,...c,...S},D&&W();}let o=m.storage.getFieldsEntry(r);N();function s(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),p.value={...H(t.value)},G();}function i(D=!0,P=!1){Object.values(o.value).forEach(u=>{u.$touch(D,P);});}function G(){l?.value&&(a=watch(l,()=>{w(),N();},{deep:!0}));}function z(){T=watch(t,()=>{w(),N(),i(!0,!0);},{flush:"sync"});}function W(){n&&(F?.(),F=watch(n,()=>{w(),N();},{deep:!0,flush:"post"}),G()),z(),$=effectScope(),g=$.run(()=>{let D=computed({get:()=>t.value,set(O){w(),t.value=O,N();}}),P=computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$dirty)),u=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyDirty)),c=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$invalid)),S=computed(()=>{let O=Object.entries(o.value).filter(([E,_])=>yt(_)?!_.$inactive:!0);return O.length?O.every(([E,_])=>_?.$valid):!1}),R=computed(()=>u.value&&!X.value&&c.value),x=computed(()=>unref(m.options.rewardEarly)!=null?unref(m.options.rewardEarly):!1),B=computed(()=>unref(m.options.autoDirty)!=null?unref(m.options.autoDirty):!x.value),ee=computed(()=>B.value?u.value&&!(c.value||X.value):!(c.value||X.value)),X=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$silentErrors]))),v=computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$edited)),A=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyEdited)),M=computed(()=>d);function Z(){m.shortcuts?.nested&&Object.entries(m.shortcuts.nested).forEach(([O,E])=>{let _=effectScope();h[O]=_.run(()=>{let ve=ref();return watchEffect(()=>{ve.value=E(reactive({$dirty:P,$value:t,$silentValue:D,$error:R,$pending:X,$invalid:c,$valid:S,$ready:ee,$anyDirty:u,$name:M,$silentErrors:ce,$errors:oe,$fields:o,$edited:v,$anyEdited:A}));}),ve}),V.push(_);});}let re=computed({get:()=>f?Object.fromEntries(Object.entries(f?.(o.value)??{}).map(([O,E])=>E.length?[O,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(_=>[_,ut(E,_)])),...Object.fromEntries(["$errors","$silentErrors"].map(_=>[_,it(E,_)]))}]:[])):{},set(){}}),h={};return Z(),{$dirty:P,$anyDirty:u,$invalid:c,$valid:S,$error:R,$pending:X,$errors:oe,$silentErrors:ce,$ready:ee,$name:M,$shortcuts:h,$groups:re,$silentValue:D,$edited:v,$anyEdited:A}});}function w(){F?.(),a?.(),T?.(),V.forEach(D=>D.stop()),V=[],$.stop(),o.value&&Object.entries(o.value).forEach(([D,P])=>{P.$unwatch();});}function b(){Object.entries(o.value).forEach(([D,P])=>{P.$clearExternalErrors();});}async function q(){w(),t.value=H({...p.value??{}}),s(),N();}function y(D){return D.filter(([P,u])=>Q(u)?!(u&&typeof u=="object"&&"_null"in u)&&!L(u):Array.isArray(u)?u.length:!0)}function I(D=!0){let P=Object.entries(o.value).map(([u,c])=>[u,c.$extractDirtyFields(D)]);return D&&(P=y(P)),Object.fromEntries(P)}async function k(){try{let D=t.value;return {result:(await Promise.allSettled(Object.values(o.value).map(c=>c.$validate()))).every(c=>c.status==="fulfilled"?c.value.result===!0:!1),data:D}}catch{return {result:!1,data:t.value}}}let{$shortcuts:te,...ae}=g;return reactive({...ae,...te,$fields:o,$value:t,$resetAll:q,$reset:s,$touch:i,$validate:k,$unwatch:w,$watch:W,$clearExternalErrors:b,$extractDirtyFields:I})}function be({rulesDef:e,externalErrors:t,...r}){if(Rt(e,r.state))return ht({rulesDef:e,externalErrors:t,...r});if(ft(r.state,e)){if(Te(r.state))return Oe({rulesDef:e,externalErrors:t,...r});{let n=ref({}),l=watch(n,d=>{l(),r.state.value=d;},{deep:!0}),{state:f,...p}=r;return Oe({rulesDef:e,externalErrors:t,...p,state:n})}}else if(pt(e))return Ie({rulesDef:e,externalErrors:t,...r})}function ye({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f}){let p=We(),d=ref();return d.value=Oe({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:""}),getCurrentScope()&&onScopeDispose(()=>{d.value?.$unwatch();}),reactive({regle:d})}function qe(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let m=isRef(p)?p:computed(typeof p=="function"?p:()=>p),$={...n,...d},g=isRef(f)?f:ref(f),V=ref({...H(g.value)});return {r$:ye({scopeRules:m,state:g,options:$,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var xt=qe();function Je(){function e(t,r){return r}return e}var Ye=Je();function Ct({rules:e,modifiers:t,shortcuts:r}){let n=qe(e,t,r),l=Je();return {useRegle:n,inferRules:l}}
1
+ import {toValue,version,ref,getCurrentScope,onScopeDispose,reactive,shallowRef,effectScope,computed,isRef,toRef,unref,watch,watchEffect}from'vue';function L(e){return e==null?!0:e instanceof Date?isNaN(e.getTime()):Array.isArray(e)?!1:typeof e=="object"&&e!=null?Object.keys(e).length===0:!String(e).length}var ot=Symbol("regle-rule");function Pt(e){if(typeof e.source.flags=="string")return e.source.flags;{let t=[];return e.global&&t.push("g"),e.ignoreCase&&t.push("i"),e.multiline&&t.push("m"),e.sticky&&t.push("y"),e.unicode&&t.push("u"),t.join("")}}function H(e){let t=e,r={}.toString.call(e).slice(8,-1);if(r=="Set"&&(t=new Set([...e].map(n=>H(n)))),r=="Map"&&(t=new Map([...e].map(n=>[H(n[0]),H(n[1])]))),r=="Date"&&(t=new Date(e.getTime())),r=="RegExp"&&(t=RegExp(e.source,Pt(e))),r=="Array"||r=="Object"){t=Array.isArray(e)?[]:{};for(let n in e)t[n]=H(e[n]);}return t}function Q(e){return e instanceof Date||e instanceof File?!1:typeof e=="object"&&e!==null&&!Array.isArray(e)}function _e(e){if(L(e))return !1;try{let t=null;if(e instanceof Date)t=e;else if(typeof e=="string"){let r=new Date(e);if(r.toString()==="Invalid Date")return !1;t=r;}return !!t}catch{return !1}}function je(e){let t=Object.prototype.toString.call(e);return e==null?new Date(NaN):e instanceof Date||typeof e=="object"&&t==="[object Date]"?new Date(e.getTime()):typeof e=="number"||t==="[object Number]"?new Date(e):typeof e=="string"||t==="[object String]"?new Date(e):new Date(NaN)}var Ve=(r=>(r.Inline="__inline",r.Async="__async",r))(Ve||{});function ut(e,t){return e.some(r=>r[t])}function it(e,t){return e.reduce((r,n)=>{let l=n[t]||[];return r.concat(l)},[])}function J(e){try{return e.map(t=>toValue(t))}catch{return []}}function st(e){return e.map(t=>t instanceof Function?computed(t):isRef(t)?t:toRef(()=>t))}function ct(e){let n=e.toString().replace(/\/\/.*$/gm,"").replace(/\/\*[\s\S]*?\*\//g,"").match(/^(?:async\s*)?(?:function\b.*?\(|\((.*?)\)|(\w+))\s*=>|\((.*?)\)\s*=>|function.*?\((.*?)\)|\((.*?)\)/);return n?(n[0]||n[1]||n[2]||n[3]||n[4]||"").split(",").map(p=>p.trim()).filter(p=>p.length>0).length:0}function Ne(e,...t){let{validator:r,type:n}=e,l=n==="__async"||r.constructor.name==="AsyncFunction";return {...{validator(d,...m){return e.validator(d,...J(m.length?m:t))},message(d){return typeof e.message=="function"?e.message({...d,$params:J(d?.$params?.length?d.$params:t)}):e.message},active(d){return typeof e.active=="function"?e.active({...d,$params:J(d?.$params?.length?d.$params:t)}):e.active??!0},tooltip(d){return typeof e.tooltip=="function"?e.tooltip({...d,$params:J(d?.$params?.length?d.$params:t)}):e.tooltip??[]},exec(d){let m=e.validator(d,...J(t)),$;return m instanceof Promise?m.then(g=>($=g,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)):($=m,typeof $=="object"&&"$valid"in $?$.$valid:typeof $=="boolean"?$:!1)}},_validator:e.validator,_message:e.message,_active:e.active,_tooltip:e.tooltip,_type:e.type,_message_patched:!1,_tooltip_patched:!1,_async:l,_params:st(t),_brand:ot}}function Ge(e){if(typeof e.validator=="function"){let r=Ne(e,...[]),n=e.async??e.validator.constructor.name==="AsyncFunction";if(ct(e.validator)>1){let l=function(...f){return Ne(e,...f)};return l.validator=r.validator,l.message=r.message,l.active=r.active,l.tooltip=r.tooltip,l.type=r.type,l.exec=r.exec,l._validator=r.validator,l._message=r.message,l._active=r.active,l._tooltip=r.tooltip,l._type=e.type,l._message_pacthed=!1,l._tooltip_pacthed=!1,l._async=n,l}else return r}throw new Error("Validator must be a function")}function ke(){let e=shallowRef(new Map),t=shallowRef(new Map),r=shallowRef(new Map),n=shallowRef(new Map),l=shallowRef(new Map),f=shallowRef(new Map);function p(o){let c=t.value.get(o);if(c)return c;{let i=ref({});return t.value.set(o,i),i}}function d(o){let c=r.value.get(o);if(c)return c;{let i=ref([]);return r.value.set(o,i),i}}function m(o,c,i){f.value.set(`${o}-${c}`,i);}function $(o,c){return f.value.get(`${o}-${c}`)}function g(o,c){o&&c!=null&&f.value.delete(`${o}-${c}`);}function V(o,c){n.value.set(o,c);}function M(o){return n.value.get(o)??!1}function a(o,c){e.value.set(o,c);}function T(o,c){let i=e.value.get(o);return i?C(c,i)?{valid:!0}:{valid:!1}:void 0}function C(o,c){let i=Object.keys(c),G=Object.keys(o);return G.length!==i.length||!G.every(k=>i.includes(k))?!1:G.every(k=>{let w=o[k],b=c[k];return !b||!w||typeof w=="function"||typeof b=="function"||typeof w=="number"||typeof w=="boolean"?!1:w._params?w._params?.every((q,y)=>{if(typeof b=="number"||typeof b=="boolean")return !0;{let I=J(b._params),W=J(w._params);return I?.[y]===W?.[y]}}):!0})}function N(o){let c=l.value.get(o);if(c)return c;{let i=ref(!1),G=ref(!0),z=ref({}),k=ref(!1);return l.value.set(o,{$pending:i,$valid:G,$metadata:z,$validating:k}),{$pending:i,$valid:G,$metadata:z,$validating:k}}}return getCurrentScope()&&onScopeDispose(()=>{e.value.clear(),t.value.clear(),r.value.clear(),n.value.clear(),l.value.clear(),f.value.clear();}),{addRuleDeclEntry:a,setDirtyEntry:V,checkRuleDeclEntry:T,getDirtyState:M,trySetRuleStatusRef:N,getFieldsEntry:p,getCollectionsEntry:d,getArrayStatus:$,addArrayStatus:m,deleteArrayStatus:g,arrayStatusStorage:f}}function Te(e){return e.value instanceof Date||e.value instanceof File?!1:Q(e.value)}function We(e,t,r){let n=effectScope(),l;return e instanceof Function?l=n.run(()=>e(t,r??0)):l=e,{scope:n,unwrapped:l}}function De(e,t,r){let n,l=(...f)=>new Promise(p=>{clearTimeout(n),n=setTimeout(()=>{n=void 0,Promise.resolve(e.apply(this,[...f])).then(p);},t);});return l.cancel=()=>{clearTimeout(n),n=void 0;},l}function Gt(e,t){let r=String(e).split("."),n=String(t).split(".");for(let l=0;l<Math.min(r.length,n.length);l++){let f=Number(r[l]),p=Number(n[l]);if(f>p)return 1;if(p>f)return -1;if(!isNaN(f)&&isNaN(p))return 1;if(isNaN(f)&&!isNaN(p))return -1}return 0}var xe=Gt(version,"3.5.0")!==-1;function kt(){return Math.floor(Math.random()*Date.now()).toString()}function Ce(){return typeof window>"u"?kt():window.crypto.getRandomValues(new Uint32Array(1))[0].toString(10)}function ft(e,t){return Te(e)||Q(t.value)&&!L(t.value)&&!Object.entries(t.value).some(([r,n])=>$e(n)||typeof n=="function")}function Rt(e,t){return !!e.value&&Q(e.value)&&"$each"in e.value||Array.isArray(t.value)}function pt(e){return !!e.value&&Q(e.value)}function $e(e){return Q(e)&&"_validator"in e}function ge(e){return typeof e.value!="function"}function dt(e){return Q(e)&&"$fields"in e}function yt(e){return !!e&&"$rules"in e}function Ue({field:e,silent:t=!1}){return Object.entries(e.$rules??{}).map(([r,n])=>t||!n.$valid&&e.$dirty&&!n.$validating?n.$message:null).filter(r=>!!r).reduce((r,n)=>typeof n=="string"?r?.concat([n]):r?.concat(n),[]).concat(e.$dirty?e.$externalErrors??[]:[])}function vt({field:e}){return Object.entries(e.$rules??{}).map(([t,r])=>r.$tooltip).filter(t=>!!t).reduce((t,r)=>typeof r=="string"?t?.concat([r]):t?.concat(r),[])}function mt({fieldProperties:e,customMessages:t,rule:r,ruleKey:n,state:l,path:f,storage:p,$debounce:d,modifiers:m}){let $=effectScope(),g={},V,M=ref(!1),{$pending:a,$valid:T,$metadata:C,$validating:N}=p.trySetRuleStatusRef(`${f}.${n}`);function o(){$=effectScope(),g=$.run(()=>{let b=computed(()=>({$value:l.value,$error:e.$error.value,$dirty:e.$dirty.value,$pending:e.$pending.value,$valid:e.$valid.value,$invalid:e.$invalid.value,$rule:{$valid:T.value,$invalid:!T.value,$pending:a.value},$params:D.value,...C.value})),q=computed(()=>ge(r)?typeof r.value.active=="function"?r.value.active(b.value):!!r.value.active:!0);function y(u){let s="",S=t?t[n]?.[u]:void 0;if(S&&(typeof S=="function"?s=S(b.value):s=S),ge(r)){let R=`_${u}_patched`;S&&!r.value[R]||(typeof r.value[u]=="function"?s=r.value[u](b.value):s=r.value[u]??"");}return s}let I=computed(()=>{let u=y("message");return L(u)&&(u="This field is not valid"),u}),W=computed(()=>y("tooltip")),te=computed(()=>ge(r)&&r.value.type?r.value.type:n),ae=computed(()=>ge(r)?r.value.validator:r.value),D=computed(()=>typeof r.value=="function"?[]:J(r.value._params??[])),P=computed(()=>`${f}.${te.value}`);return {$active:q,$message:I,$type:te,$validator:ae,$params:D,$path:P,$tooltip:W}}),V=watch(g?.$params,()=>{(m.$autoDirty.value||m.$rewardEarly.value&&e.$error.value)&&z();});}o();function c(){T.value=!0,e.$dirty.value&&(a.value=!0);}async function i(){let b=!1;try{let q=g.$validator.value,y=q(l.value,...g.$params.value),I=l.value;c();let W;if(y instanceof Promise?W=await y:W=y,l.value!==I)return !0;if(typeof W=="boolean")b=W;else {let{$valid:te,...ae}=W;b=te,C.value=ae;}}catch{b=!1;}finally{a.value=!1;}return b}let G=De(i,d??200);async function z(){try{N.value=!0;let b=!1;if($e(r.value)&&r.value._async)b=await G();else {let q=g.$validator.value,y=q(l.value,...g.$params.value);if(y instanceof Promise)console.warn('You used a async validator function on a non-async rule, please use "async await" or the "withAsync" helper');else if(y!=null)if(typeof y=="boolean")b=y;else {let{$valid:I,...W}=y;b=I,C.value=W;}}return T.value=b,b}catch{return !1}finally{N.value=!1;}}function k(){T.value=!0,C.value={},a.value=!1,N.value=!1,o();}function w(){V(),$.stop(),$=effectScope();}return reactive({...g,$pending:a,$valid:T,$metadata:C,$haveAsync:M,$validating:N,$validate:z,$unwatch:w,$watch:o,$reset:k})}function Ie({state:e,rulesDef:t,customMessages:r,path:n,fieldName:l,storage:f,options:p,externalErrors:d,onUnwatch:m,$isArray:$,initialState:g,shortcuts:V}){let M=effectScope(),a,T=[],C,N,o,c,i=()=>{};function G(){let v=t.value,A=f.checkRuleDeclEntry(n,v);I.value=Object.fromEntries(Object.entries(v).filter(([_])=>_.startsWith("$"))),w(),y.value=Object.fromEntries(Object.entries(t.value).filter(([_])=>!_.startsWith("$")).map(([_,Z])=>{if(Z){let re=toRef(()=>Z);return [_,mt({fieldProperties:{$dirty:a.$dirty,$error:a.$error,$invalid:a.$invalid,$pending:a.$pending,$valid:a.$valid},modifiers:{$autoDirty:a.$autoDirty,$rewardEarly:a.$rewardEarly},customMessages:r,rule:re,ruleKey:_,state:e,path:n,storage:f,$debounce:I.value.$debounce})]}return []}).filter(_=>!!_.length)),a.processShortcuts(),z(),A?.valid!=null&&(a.$dirty.value=f.getDirtyState(n),a.$dirty.value&&i()),f.addRuleDeclEntry(n,v);}function z(){i=a.$debounce.value?De(q,a.$debounce.value??a.$haveAnyAsyncRule?100:0):q;}function k(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$unwatch();}),o(),a.$dirty.value&&f.setDirtyEntry(n,a.$dirty.value),C?.(),N?.(),M.stop(),M=effectScope(),T.forEach(v=>v.stop()),T=[],m?.(),c?.();}function w(){y.value&&Object.entries(y.value).forEach(([v,A])=>{A.$watch();}),a=M.run(()=>{let v=ref(!1),A=ref(!1),_=computed(()=>v.value),Z=computed(()=>I.value.$debounce),re=computed(()=>I.value.$lazy!=null?I.value.$lazy:unref(p.lazy)!=null?unref(p.lazy):!1),h=computed(()=>I.value.$rewardEarly!=null?I.value.$rewardEarly:unref(p.rewardEarly)!=null?unref(p.rewardEarly):!1),O=computed(()=>I.value.$clearExternalErrorsOnChange!=null?I.value.$clearExternalErrorsOnChange:unref(p.clearExternalErrorsOnChange)!=null?unref(p.clearExternalErrorsOnChange):!0),E=computed(()=>I.value.$autoDirty!=null?I.value.$autoDirty:unref(p.autoDirty)!=null?unref(p.autoDirty):!h.value),j=computed(()=>Object.entries(y.value).some(([K,le])=>le.$validating)),ve=computed({get:()=>e.value,set(K){C(),e.value=K,b();}}),Ae=computed(()=>fe.value&&!me.value&&v.value),Qe=computed(()=>Ae.value?Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value}}):[]),Fe=computed(()=>v.value?_e(g.value)&&_e(e.value)?je(g.value).getDate()!==je(e.value).getDate():g.value==null?!!e.value:Array.isArray(e.value)&&Array.isArray(g.value)?e.value.length!==g.value.length:g.value!==e.value:!1),Xe=computed(()=>Fe.value),Ze=computed(()=>vt({field:{$rules:y.value}})),Ke=computed(()=>Ue({field:{$dirty:v.value,$externalErrors:d?.value,$rules:y.value},silent:!0})),et=computed(()=>E.value?_.value&&!(fe.value||me.value):!(fe.value||me.value)),me=computed(()=>A.value||!h.value?Object.entries(y.value).some(([K,le])=>le.$pending):!1),fe=computed(()=>d?.value?.length?!0:L(y.value)?!1:!h.value||h.value&&A.value?Object.entries(y.value).some(([K,le])=>!le.$valid):!1),tt=computed(()=>l),Me=computed(()=>!!L(y.value)),rt=computed(()=>d?.value?.length||Me.value?!1:v.value&&!L(e.value)&&!j.value?Object.values(y.value).every(K=>K.$valid&&K.$active):!1),It=computed(()=>Object.entries(y.value).some(([K,le])=>le.$haveAsync));function wt(){V?.fields&&Object.entries(V.fields).forEach(([K,le])=>{let at=effectScope();nt[K]=at.run(()=>{let lt=ref();return watchEffect(()=>{lt.value=le(reactive({$dirty:v,$externalErrors:d?.value??[],$value:e,$silentValue:ve,$rules:y,$error:Ae,$pending:me,$invalid:fe,$valid:rt,$errors:Qe,$ready:et,$silentErrors:Ke,$anyDirty:_,$tooltips:Ze,$name:tt,$inactive:Me,$edited:Fe,$anyEdited:Xe}));}),lt}),T.push(at);});}let nt={};return watch(fe,K=>{K||(A.value=!1);}),{$error:Ae,$pending:me,$invalid:fe,$valid:rt,$debounce:Z,$lazy:re,$errors:Qe,$ready:et,$silentErrors:Ke,$rewardEarly:h,$autoDirty:E,$clearExternalErrorsOnChange:O,$anyDirty:_,$edited:Fe,$anyEdited:Xe,$name:tt,$haveAnyAsyncRule:It,$shortcuts:nt,$validating:j,$tooltips:Ze,$dirty:v,triggerPunishment:A,processShortcuts:wt,$silentValue:ve,$inactive:Me}}),b(),o=watch(a.$dirty,()=>{f.setDirtyEntry(n,a.$dirty.value);}),N=watch(a.$valid,v=>{a.$rewardEarly.value&&v&&(a.triggerPunishment.value=!1);}),c=watch(a.$haveAnyAsyncRule,z);}function b(){C=watch(e,()=>{a.$autoDirty.value&&(a.$dirty.value||(a.$dirty.value=!0)),t.value instanceof Function&&G(),(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i(),a.$rewardEarly.value!==!0&&a.$clearExternalErrorsOnChange.value&&u();},{deep:$?!0:xe?1:!0,flush:"post"});}function q(){Object.values(y.value).forEach(v=>{v.$validate();});}let y=ref({}),I=ref({});G();function W(){u(),a.$dirty.value=!1,a.triggerPunishment.value=!1,f.setDirtyEntry(n,!1),g.value=Q(e.value)?H(e.value):Array.isArray(e.value)?[...e.value]:e.value,Object.entries(y.value).forEach(([v,A])=>{A.$reset();}),!a.$lazy.value&&a.$autoDirty.value&&Object.values(y.value).forEach(v=>v.$validate());}function te(v=!0,A=!1){a.$dirty.value||(a.$dirty.value=!0),A&&v?(a.$autoDirty.value||a.$rewardEarly.value&&a.$error.value)&&i():v&&i();}async function ae(){try{let v=e.value;if(a.triggerPunishment.value=!0,!a.$dirty.value)a.$dirty.value=!0;else if(a.$autoDirty.value&&a.$dirty.value&&!a.$pending.value)return {result:!a.$error.value,data:v};return L(y.value)?{result:!0,data:v}:{result:(await Promise.allSettled(Object.entries(y.value).map(([Z,re])=>re.$validate()))).every(Z=>Z.status==="fulfilled"?Z.value===!0:!1),data:v}}catch{return {result:!1,data:e.value}}}function D(){k(),e.value=H(g),W();}function P(v=!0){return a.$dirty.value?e.value:v?{_null:!0}:null}function u(){d?.value?.length&&(d.value=[]);}!a.$lazy.value&&!a.$dirty.value&&a.$autoDirty.value&&i();let{$shortcuts:s,$validating:S,$autoDirty:R,$rewardEarly:x,$clearExternalErrorsOnChange:B,$haveAnyAsyncRule:ee,$debounce:X,$lazy:oe,...ce}=a;return reactive({...ce,$externalErrors:d,$value:e,$rules:y,...s,$reset:W,$touch:te,$validate:ae,$unwatch:k,$watch:w,$resetAll:D,$extractDirtyFields:P,$clearExternalErrors:u})}function He({$id:e,path:t,index:r,options:n,storage:l,stateValue:f,customMessages:p,rules:d,externalErrors:m,initialState:$,shortcuts:g,fieldName:V}){let M=d.$key?d.$key:Ce(),a=`${t}.${String(M)}`;typeof f.value=="object"&&f.value!=null&&(f.value.$id?a=`${t}.${f.value.$id}`:Object.defineProperties(f.value,{$id:{value:M,enumerable:!1,configurable:!1,writable:!1}}));let T=be({state:f,rulesDef:toRef(()=>d),customMessages:p,path:a,storage:l,options:n,externalErrors:toRef(m?.value??[],r),initialState:$,shortcuts:g,fieldName:V});if(T){let C=f.value?.$id;T.$id=C??String(M),l.addArrayStatus(e,T.$id,T);}return T}function ht({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:p,initialState:d,shortcuts:m,fieldName:$}){let g=effectScope(),V,M=effectScope(),a,T=[];if(!Array.isArray(e.value)&&!t.value.$each)return;let C=ref(),N=ref(e.value),o,c=ref({}),i=l.getCollectionsEntry(n);a=M.run(()=>({isPrimitiveArray:computed(()=>Array.isArray(e.value)&&e.value.length?e.value.every(s=>typeof s!="object"):t.value.$each&&!(t.value.$each instanceof Function)?Object.values(t.value.$each).every(s=>$e(s)||typeof s=="function"):!1)})),G(),w();function G(){typeof e.value=="object"&&(e.value!=null&&!e.value?.$id&&e.value!==null?(C.value=Ce(),Object.defineProperties(e.value,{$id:{value:C.value,enumerable:!1,configurable:!1,writable:!1}})):e.value?.$id&&(C.value=e.value.$id)),!a.isPrimitiveArray.value&&(N.value=c.value.$value,Array.isArray(e.value)?i.value=e.value.map((u,s)=>{let{scope:S,unwrapped:R}=We(t.value.$each,toRef(()=>u),s);S&&T.push(S);let x=toRef(d.value??[],s),B=He({$id:C.value,path:n,customMessages:r,rules:R??{},stateValue:toRef(()=>u),index:s,options:f,storage:l,externalErrors:toRef(p?.value??{},"$each"),initialState:x,shortcuts:m,fieldName:$});return B||null}).filter(u=>!!u):i.value=[],c.value=Ie({state:e,rulesDef:t,customMessages:r,path:n,storage:l,options:f,externalErrors:toRef(p?.value??{},"$self"),$isArray:!0,initialState:d,shortcuts:m,fieldName:$}));}function z(){if(Array.isArray(e.value)){let u=H(i.value);i.value=e.value.map((s,S)=>{let R=toRef(()=>s);if(s.$id&&i.value.find(x=>x.$id===s.$id)){let x=l.getArrayStatus(C.value,s.$id);return x?(x.$value=R,x):null}else {let{scope:x,unwrapped:B}=We(t.value.$each,R,S);if(x&&T.push(x),B){let ee=He({$id:C.value,path:n,customMessages:r,rules:B,stateValue:R,index:S,options:f,storage:l,externalErrors:toRef(p?.value??{},"$each"),initialState:toRef(d.value??[],S),shortcuts:m,fieldName:$});return ee||null}}}).filter(s=>!!s),u.filter(s=>!e.value.find(S=>s.$id===S.$id)).forEach((s,S)=>{l.deleteArrayStatus(C.value,S.toString());});}else i.value=[];}function k(){o=watch(e,()=>{e.value!=null&&!Object.hasOwn(e.value,"$id")?G():z();},{deep:xe?1:!0,flush:"pre"});}function w(){k(),g=effectScope(),V=g.run(()=>{let u=computed({get:()=>e.value,set(h){o(),e.value=h,k();}}),s=computed(()=>c.value.$dirty&&!!i.value.length&&i.value.every(h=>h.$dirty)),S=computed(()=>c.value.$anyDirty||i.value.some(h=>h.$anyDirty)),R=computed(()=>c.value.$invalid||i.value.some(h=>h.$invalid)),x=computed(()=>(L(c.value.$rules)?!0:c.value.$valid)&&i.value.every(h=>h.$valid)),B=computed(()=>c.value.$error||i.value.some(h=>h.$error)),ee=computed(()=>!(R.value||X.value)),X=computed(()=>c.value.$pending||i.value.some(h=>h.$pending)),oe=computed(()=>!!i.value.length&&i.value.every(h=>h.$edited)),ce=computed(()=>c.value.$anyEdited||i.value.some(h=>h.$anyEdited)),v=computed(()=>({$self:c.value.$errors,$each:i.value.map(h=>h.$errors)})),A=computed(()=>({$self:c.value.$silentErrors,$each:i.value.map(h=>h.$silentErrors)})),_=computed(()=>$);function Z(){m?.collections&&Object.entries(m?.collections).forEach(([h,O])=>{let E=effectScope();re[h]=E.run(()=>{let j=ref();return watchEffect(()=>{j.value=O(reactive({$dirty:s,$error:B,$silentValue:u,$pending:X,$invalid:R,$valid:x,$errors:v,$ready:ee,$silentErrors:A,$anyDirty:S,$name:_,$each:i,$self:c,$value:e,$edited:oe,$anyEdited:ce}));}),j}),T.push(E);});}let re={};return Z(),{$dirty:s,$anyDirty:S,$invalid:R,$valid:x,$error:B,$pending:X,$errors:v,$silentErrors:A,$ready:ee,$name:_,$shortcuts:re,$silentValue:u,$edited:oe,$anyEdited:ce}}),a.isPrimitiveArray.value&&(console.warn(`${n} is a Array of primitives. Tracking can be lost when reassigning the Array. We advise to use an Array of objects instead`),o());}function b(){o&&o(),c.value&&c.value.$unwatch(),i.value&&i.value.forEach(u=>{"$dirty"in u&&u.$unwatch();}),g.stop(),g=effectScope(),M.stop(),M=effectScope(!0),T.forEach(u=>u.stop()),T=[];}function q(u=!0,s=!1){c.value.$touch(u,s),i.value.forEach(S=>{S.$touch(u,s);});}function y(){c.value.$reset(),i.value.forEach(u=>{u.$reset();});}async function I(){let u=e.value;try{return {result:(await Promise.allSettled([c.value.$validate(),...i.value.map(R=>R.$validate())])).every(R=>R.status==="fulfilled"?R.value.result===!0:!1),data:u}}catch{return {result:!1,data:u}}}function W(){c.value.$clearExternalErrors(),i.value.forEach(u=>{u.$clearExternalErrors();});}function te(u=!0){let s=i.value.map(S=>{if(dt(S))return S.$extractDirtyFields(u)});return u&&s.every(S=>L(S))&&(s=[]),s}function ae(){b(),e.value=H(d.value),y();}let{$shortcuts:D,...P}=V;return reactive({$self:c,...P,...D,$each:i,$value:e,$validate:I,$unwatch:b,$watch:w,$touch:q,$reset:y,$resetAll:ae,$extractDirtyFields:te,$clearExternalErrors:W})}function Oe({rulesDef:e,state:t,path:r="",rootRules:n,externalErrors:l,validationGroups:f,initialState:p,fieldName:d,...m}){let $=effectScope(),g,V=[],M=null,a=null,T=null;async function N(D=!0){let P=Object.entries(e.value),u=Object.fromEntries(P.filter(([R,x])=>!!x).map(([R,x])=>{if(x){let B=toRef(t.value??{},R),ee=toRef(()=>x),X=toRef(l?.value??{},R),oe=toRef(p?.value??{},R);return [R,be({state:B,rulesDef:ee,path:r?`${r}.${R}`:R,externalErrors:X,initialState:oe,fieldName:R,...m})]}return []})),s=Object.fromEntries(Object.entries(unref(l)??{}).filter(([R,x])=>!(R in e.value)&&!!x).map(([R])=>{let x=toRef(t.value??{},R),B=toRef(p?.value??{},R);return [R,be({state:x,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]})),S=Object.fromEntries(Object.entries(t.value??{}).filter(([R])=>!(R in e.value)&&!(R in(s.value??{}))).map(([R])=>{let x=toRef(t.value??{},R),B=toRef(p?.value??{},R);return [R,be({state:x,rulesDef:computed(()=>({})),path:r?`${r}.${R}`:R,externalErrors:toRef(l?.value??{},R),initialState:B,fieldName:R,...m})]}));o.value={...u,...s,...S},D&&k();}let o=m.storage.getFieldsEntry(r);N();function c(){a?.(),Object.values(o.value).forEach(D=>{D.$reset();}),p.value={...H(t.value)},G();}function i(D=!0,P=!1){Object.values(o.value).forEach(u=>{u.$touch(D,P);});}function G(){l?.value&&(a=watch(l,()=>{w(),N();},{deep:!0}));}function z(){T=watch(t,()=>{w(),N(),i(!0,!0);},{flush:"sync"});}function k(){n&&(M?.(),M=watch(n,()=>{w(),N();},{deep:!0,flush:"post"}),G()),z(),$=effectScope(),g=$.run(()=>{let D=computed({get:()=>t.value,set(O){w(),t.value=O,N();}}),P=computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$dirty)),u=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyDirty)),s=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$invalid)),S=computed(()=>{let O=Object.entries(o.value).filter(([E,j])=>yt(j)?!j.$inactive:!0);return O.length?O.every(([E,j])=>j?.$valid):!1}),R=computed(()=>u.value&&!X.value&&s.value),x=computed(()=>unref(m.options.rewardEarly)!=null?unref(m.options.rewardEarly):!1),B=computed(()=>unref(m.options.autoDirty)!=null?unref(m.options.autoDirty):!x.value),ee=computed(()=>B.value?u.value&&!(s.value||X.value):!(s.value||X.value)),X=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$pending)),oe=computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$errors]))),ce=computed(()=>Object.fromEntries(Object.entries(o.value).map(([O,E])=>[O,E?.$silentErrors]))),v=computed(()=>!!Object.entries(o.value).length&&Object.entries(o.value).every(([O,E])=>E?.$edited)),A=computed(()=>Object.entries(o.value).some(([O,E])=>E?.$anyEdited)),_=computed(()=>d);function Z(){m.shortcuts?.nested&&Object.entries(m.shortcuts.nested).forEach(([O,E])=>{let j=effectScope();h[O]=j.run(()=>{let ve=ref();return watchEffect(()=>{ve.value=E(reactive({$dirty:P,$value:t,$silentValue:D,$error:R,$pending:X,$invalid:s,$valid:S,$ready:ee,$anyDirty:u,$name:_,$silentErrors:ce,$errors:oe,$fields:o,$edited:v,$anyEdited:A}));}),ve}),V.push(j);});}let re=computed({get:()=>f?Object.fromEntries(Object.entries(f?.(o.value)??{}).map(([O,E])=>E.length?[O,{...Object.fromEntries(["$invalid","$error","$pending","$dirty","$valid"].map(j=>[j,ut(E,j)])),...Object.fromEntries(["$errors","$silentErrors"].map(j=>[j,it(E,j)]))}]:[])):{},set(){}}),h={};return Z(),{$dirty:P,$anyDirty:u,$invalid:s,$valid:S,$error:R,$pending:X,$errors:oe,$silentErrors:ce,$ready:ee,$name:_,$shortcuts:h,$groups:re,$silentValue:D,$edited:v,$anyEdited:A}});}function w(){M?.(),a?.(),T?.(),V.forEach(D=>D.stop()),V=[],$.stop(),o.value&&Object.entries(o.value).forEach(([D,P])=>{P.$unwatch();});}function b(){Object.entries(o.value).forEach(([D,P])=>{P.$clearExternalErrors();});}async function q(){w(),t.value=H({...p.value??{}}),c(),N();}function y(D){return D.filter(([P,u])=>Q(u)?!(u&&typeof u=="object"&&"_null"in u)&&!L(u):Array.isArray(u)?u.length:!0)}function I(D=!0){let P=Object.entries(o.value).map(([u,s])=>[u,s.$extractDirtyFields(D)]);return D&&(P=y(P)),Object.fromEntries(P)}async function W(){try{let D=t.value;return {result:(await Promise.allSettled(Object.values(o.value).map(s=>s.$validate()))).every(s=>s.status==="fulfilled"?s.value.result===!0:!1),data:D}}catch{return {result:!1,data:t.value}}}let{$shortcuts:te,...ae}=g;return reactive({...ae,...te,$fields:o,$value:t,$resetAll:q,$reset:c,$touch:i,$validate:W,$unwatch:w,$watch:k,$clearExternalErrors:b,$extractDirtyFields:I})}function be({rulesDef:e,externalErrors:t,...r}){if(Rt(e,r.state))return ht({rulesDef:e,externalErrors:t,...r});if(ft(r.state,e)){if(Te(r.state))return Oe({rulesDef:e,externalErrors:t,...r});{let n=ref({}),l=watch(n,d=>{l(),r.state.value=d;},{deep:!0}),{state:f,...p}=r;return Oe({rulesDef:e,externalErrors:t,...p,state:n})}}else if(pt(e))return Ie({rulesDef:e,externalErrors:t,...r})}function ye({initialState:e,options:t,scopeRules:r,state:n,customRules:l,shortcuts:f}){let p=ke(),d=ref();return d.value=Oe({rootRules:r,rulesDef:r,state:n,customMessages:l?.(),storage:p,options:t,externalErrors:t.externalErrors,validationGroups:t.validationGroups,initialState:e,shortcuts:f,fieldName:"root",path:""}),getCurrentScope()&&onScopeDispose(()=>{d.value?.$unwatch();}),reactive({regle:d})}function qe(e,t,r){let n={autoDirty:t?.autoDirty,lazy:t?.lazy,rewardEarly:t?.rewardEarly,clearExternalErrorsOnChange:t?.clearExternalErrorsOnChange};function l(f,p,d){let m=isRef(p)?p:computed(typeof p=="function"?p:()=>p),$={...n,...d},g=isRef(f)?f:ref(f),V=ref({...H(g.value)});return {r$:ye({scopeRules:m,state:g,options:$,initialState:V,customRules:e,shortcuts:r}).regle}}return l}var xt=qe();function Je(){function e(t,r){return r}return e}var Ye=Je();function Ct({rules:e,modifiers:t,shortcuts:r}){let n=qe(e,t,r),l=Je();return {useRegle:n,inferRules:l}}
2
2
  export{Ve as InternalRuleType,Ge as createRule,Ct as defineRegleConfig,Ye as inferRules,J as unwrapRuleParameters,xt as useRegle,ye as useRootStorage};
@@ -1060,7 +1060,7 @@ function createReactiveFieldStatus({
1060
1060
  $clearExternalErrors();
1061
1061
  }
1062
1062
  },
1063
- { deep: $isArray ? true : isVueSuperiorOrEqualTo3dotFive ? 1 : true }
1063
+ { deep: $isArray ? true : isVueSuperiorOrEqualTo3dotFive ? 1 : true, flush: "post" }
1064
1064
  );
1065
1065
  }
1066
1066
  function $commitHandler() {
@@ -1250,14 +1250,14 @@ function createReactiveCollectionStatus({
1250
1250
  const $id = ref();
1251
1251
  const $value = ref(state.value);
1252
1252
  let $unwatchState;
1253
- const $fieldStatus = ref({});
1253
+ const $selfStatus = ref({});
1254
1254
  const $eachStatus = storage.getCollectionsEntry(path);
1255
1255
  immediateScopeState = immediateScope.run(() => {
1256
1256
  const isPrimitiveArray = computed(() => {
1257
1257
  if (Array.isArray(state.value) && state.value.length) {
1258
- return state.value.some((s) => typeof s !== "object");
1258
+ return state.value.every((s) => typeof s !== "object");
1259
1259
  } else if (rulesDef.value.$each && !(rulesDef.value.$each instanceof Function)) {
1260
- return Object.values(rulesDef.value.$each).every((rule) => isRuleDef(rule));
1260
+ return Object.values(rulesDef.value.$each).every((rule) => isRuleDef(rule) || typeof rule === "function");
1261
1261
  }
1262
1262
  return false;
1263
1263
  });
@@ -1286,7 +1286,7 @@ function createReactiveCollectionStatus({
1286
1286
  if (immediateScopeState.isPrimitiveArray.value) {
1287
1287
  return;
1288
1288
  }
1289
- $value.value = $fieldStatus.value.$value;
1289
+ $value.value = $selfStatus.value.$value;
1290
1290
  if (Array.isArray(state.value)) {
1291
1291
  $eachStatus.value = state.value.map((value, index) => {
1292
1292
  const { scope: scope2, unwrapped } = unwrapGetter(
@@ -1320,7 +1320,7 @@ function createReactiveCollectionStatus({
1320
1320
  } else {
1321
1321
  $eachStatus.value = [];
1322
1322
  }
1323
- $fieldStatus.value = createReactiveFieldStatus({
1323
+ $selfStatus.value = createReactiveFieldStatus({
1324
1324
  state,
1325
1325
  rulesDef,
1326
1326
  customMessages,
@@ -1406,27 +1406,27 @@ function createReactiveCollectionStatus({
1406
1406
  }
1407
1407
  });
1408
1408
  const $dirty = computed(() => {
1409
- return $fieldStatus.value.$dirty && !!$eachStatus.value.length && $eachStatus.value.every((statusOrField) => {
1409
+ return $selfStatus.value.$dirty && !!$eachStatus.value.length && $eachStatus.value.every((statusOrField) => {
1410
1410
  return statusOrField.$dirty;
1411
1411
  });
1412
1412
  });
1413
1413
  const $anyDirty = computed(() => {
1414
- return $fieldStatus.value.$anyDirty || $eachStatus.value.some((statusOrField) => {
1414
+ return $selfStatus.value.$anyDirty || $eachStatus.value.some((statusOrField) => {
1415
1415
  return statusOrField.$anyDirty;
1416
1416
  });
1417
1417
  });
1418
1418
  const $invalid = computed(() => {
1419
- return $fieldStatus.value.$invalid || $eachStatus.value.some((statusOrField) => {
1419
+ return $selfStatus.value.$invalid || $eachStatus.value.some((statusOrField) => {
1420
1420
  return statusOrField.$invalid;
1421
1421
  });
1422
1422
  });
1423
1423
  const $valid = computed(() => {
1424
- return (isEmpty($fieldStatus.value.$rules) ? true : $fieldStatus.value.$valid) && $eachStatus.value.every((statusOrField) => {
1424
+ return (isEmpty($selfStatus.value.$rules) ? true : $selfStatus.value.$valid) && $eachStatus.value.every((statusOrField) => {
1425
1425
  return statusOrField.$valid;
1426
1426
  });
1427
1427
  });
1428
1428
  const $error = computed(() => {
1429
- return $fieldStatus.value.$error || $eachStatus.value.some((statusOrField) => {
1429
+ return $selfStatus.value.$error || $eachStatus.value.some((statusOrField) => {
1430
1430
  return statusOrField.$error;
1431
1431
  });
1432
1432
  });
@@ -1434,7 +1434,7 @@ function createReactiveCollectionStatus({
1434
1434
  return !($invalid.value || $pending.value);
1435
1435
  });
1436
1436
  const $pending = computed(() => {
1437
- return $fieldStatus.value.$pending || $eachStatus.value.some((statusOrField) => {
1437
+ return $selfStatus.value.$pending || $eachStatus.value.some((statusOrField) => {
1438
1438
  return statusOrField.$pending;
1439
1439
  });
1440
1440
  });
@@ -1444,19 +1444,19 @@ function createReactiveCollectionStatus({
1444
1444
  });
1445
1445
  });
1446
1446
  const $anyEdited = computed(() => {
1447
- return $fieldStatus.value.$anyEdited || $eachStatus.value.some((statusOrField) => {
1447
+ return $selfStatus.value.$anyEdited || $eachStatus.value.some((statusOrField) => {
1448
1448
  return statusOrField.$anyEdited;
1449
1449
  });
1450
1450
  });
1451
1451
  const $errors = computed(() => {
1452
1452
  return {
1453
- $self: $fieldStatus.value.$errors,
1453
+ $self: $selfStatus.value.$errors,
1454
1454
  $each: $eachStatus.value.map(($each) => $each.$errors)
1455
1455
  };
1456
1456
  });
1457
1457
  const $silentErrors = computed(() => {
1458
1458
  return {
1459
- $self: $fieldStatus.value.$silentErrors,
1459
+ $self: $selfStatus.value.$silentErrors,
1460
1460
  $each: $eachStatus.value.map(($each) => $each.$silentErrors)
1461
1461
  };
1462
1462
  });
@@ -1482,7 +1482,7 @@ function createReactiveCollectionStatus({
1482
1482
  $anyDirty,
1483
1483
  $name,
1484
1484
  $each: $eachStatus,
1485
- $field: $fieldStatus,
1485
+ $self: $selfStatus,
1486
1486
  $value: state,
1487
1487
  $edited,
1488
1488
  $anyEdited
@@ -1525,8 +1525,8 @@ function createReactiveCollectionStatus({
1525
1525
  if ($unwatchState) {
1526
1526
  $unwatchState();
1527
1527
  }
1528
- if ($fieldStatus.value) {
1529
- $fieldStatus.value.$unwatch();
1528
+ if ($selfStatus.value) {
1529
+ $selfStatus.value.$unwatch();
1530
1530
  }
1531
1531
  if ($eachStatus.value) {
1532
1532
  $eachStatus.value.forEach((element) => {
@@ -1543,13 +1543,13 @@ function createReactiveCollectionStatus({
1543
1543
  collectionScopes = [];
1544
1544
  }
1545
1545
  function $touch(runCommit = true, withConditions = false) {
1546
- $fieldStatus.value.$touch(runCommit, withConditions);
1546
+ $selfStatus.value.$touch(runCommit, withConditions);
1547
1547
  $eachStatus.value.forEach(($each) => {
1548
1548
  $each.$touch(runCommit, withConditions);
1549
1549
  });
1550
1550
  }
1551
1551
  function $reset() {
1552
- $fieldStatus.value.$reset();
1552
+ $selfStatus.value.$reset();
1553
1553
  $eachStatus.value.forEach(($each) => {
1554
1554
  $each.$reset();
1555
1555
  });
@@ -1558,7 +1558,7 @@ function createReactiveCollectionStatus({
1558
1558
  const data = state.value;
1559
1559
  try {
1560
1560
  const results = await Promise.allSettled([
1561
- $fieldStatus.value.$validate(),
1561
+ $selfStatus.value.$validate(),
1562
1562
  ...$eachStatus.value.map((rule) => {
1563
1563
  return rule.$validate();
1564
1564
  })
@@ -1576,7 +1576,7 @@ function createReactiveCollectionStatus({
1576
1576
  }
1577
1577
  }
1578
1578
  function $clearExternalErrors() {
1579
- $fieldStatus.value.$clearExternalErrors();
1579
+ $selfStatus.value.$clearExternalErrors();
1580
1580
  $eachStatus.value.forEach(($each) => {
1581
1581
  $each.$clearExternalErrors();
1582
1582
  });
@@ -1603,7 +1603,7 @@ function createReactiveCollectionStatus({
1603
1603
  }
1604
1604
  const { $shortcuts, ...restScopeState } = scopeState;
1605
1605
  return reactive({
1606
- $field: $fieldStatus,
1606
+ $self: $selfStatus,
1607
1607
  ...restScopeState,
1608
1608
  ...$shortcuts,
1609
1609
  $each: $eachStatus,
@@ -1642,7 +1642,7 @@ function createReactiveNestedStatus({
1642
1642
  const scopedRulesStatus = Object.fromEntries(
1643
1643
  mapOfRulesDef.filter(([_, rule]) => !!rule).map(([statePropKey, statePropRules]) => {
1644
1644
  if (statePropRules) {
1645
- const stateRef = toRef(state.value, statePropKey);
1645
+ const stateRef = toRef(state.value ?? {}, statePropKey);
1646
1646
  const statePropRulesRef = toRef(() => statePropRules);
1647
1647
  const $externalErrors = toRef(externalErrors?.value ?? {}, statePropKey);
1648
1648
  const initialStateRef = toRef(initialState?.value ?? {}, statePropKey);
@@ -1664,7 +1664,7 @@ function createReactiveNestedStatus({
1664
1664
  );
1665
1665
  const externalRulesStatus = Object.fromEntries(
1666
1666
  Object.entries(unref(externalErrors) ?? {}).filter(([key, errors]) => !(key in rulesDef.value) && !!errors).map(([key]) => {
1667
- const stateRef = toRef(state.value, key);
1667
+ const stateRef = toRef(state.value ?? {}, key);
1668
1668
  const initialStateRef = toRef(initialState?.value ?? {}, key);
1669
1669
  return [
1670
1670
  key,
@@ -1681,8 +1681,8 @@ function createReactiveNestedStatus({
1681
1681
  })
1682
1682
  );
1683
1683
  const statesWithNoRules = Object.fromEntries(
1684
- Object.entries(state.value).filter(([key]) => !(key in rulesDef.value) && !(key in (externalRulesStatus.value ?? {}))).map(([key]) => {
1685
- const stateRef = toRef(state.value, key);
1684
+ Object.entries(state.value ?? {}).filter(([key]) => !(key in rulesDef.value) && !(key in (externalRulesStatus.value ?? {}))).map(([key]) => {
1685
+ const stateRef = toRef(state.value ?? {}, key);
1686
1686
  const initialStateRef = toRef(initialState?.value ?? {}, key);
1687
1687
  return [
1688
1688
  key,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@regle/core",
3
- "version": "0.5.14",
3
+ "version": "0.6.1-beta.1",
4
4
  "description": "Type safe form validation library for Vue 3",
5
5
  "peerDependencies": {
6
6
  "vue": "^3.3.0"