@neovici/cosmoz-form 2.1.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) hide show
  1. package/dist/async-rule.d.ts +83 -0
  2. package/dist/async-rule.d.ts.map +1 -0
  3. package/dist/async-rule.js +20 -0
  4. package/dist/index.d.ts +13 -5
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +18 -5
  7. package/dist/make-debounce-runner.d.ts +4 -0
  8. package/dist/make-debounce-runner.d.ts.map +1 -0
  9. package/dist/make-debounce-runner.js +50 -0
  10. package/dist/make-take-latest-runner.d.ts +4 -0
  11. package/dist/make-take-latest-runner.d.ts.map +1 -0
  12. package/dist/make-take-latest-runner.js +27 -0
  13. package/dist/test/make-debounce-runner.test.d.ts +2 -0
  14. package/dist/test/make-debounce-runner.test.d.ts.map +1 -0
  15. package/dist/test/make-debounce-runner.test.js +123 -0
  16. package/dist/test/make-take-latest-runner.test.d.ts +2 -0
  17. package/dist/test/make-take-latest-runner.test.d.ts.map +1 -0
  18. package/dist/test/make-take-latest-runner.test.js +110 -0
  19. package/dist/test/use-async-form-core.test.d.ts +2 -0
  20. package/dist/test/use-async-form-core.test.d.ts.map +1 -0
  21. package/dist/test/use-async-form-core.test.js +238 -0
  22. package/dist/test/use-async-rules.test.d.ts +2 -0
  23. package/dist/test/use-async-rules.test.d.ts.map +1 -0
  24. package/dist/test/use-async-rules.test.js +180 -0
  25. package/dist/types/index.d.ts +1 -1
  26. package/dist/types/index.d.ts.map +1 -1
  27. package/dist/use-async-form-core.d.ts +21 -0
  28. package/dist/use-async-form-core.d.ts.map +1 -0
  29. package/dist/use-async-form-core.js +71 -0
  30. package/dist/use-items/use-async-rules.d.ts +17 -0
  31. package/dist/use-items/use-async-rules.d.ts.map +1 -0
  32. package/dist/use-items/use-async-rules.js +78 -0
  33. package/dist/use-items/use-items.d.ts.map +1 -1
  34. package/dist/use-items/use-items.js +2 -2
  35. package/dist/use-validated-form$.d.ts +4 -1
  36. package/dist/use-validated-form$.d.ts.map +1 -1
  37. package/dist/use-validated-form$.js +4 -1
  38. package/dist/validation/rules.d.ts.map +1 -1
  39. package/dist/validation/rules.js +7 -4
  40. package/package.json +6 -5
@@ -1 +1 @@
1
- {"version":3,"file":"use-items.d.ts","sourceRoot":"","sources":["../../src/use-items/use-items.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAkC,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGrD,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;IAC/B,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACtB;AAYD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAC5C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CACP,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EACxD,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KACd,IAAI,CAAC;IACV,SAAS,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,sCAK5C,KAAK,CAAC,CAAC,CAAC,GAAG;IACb,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CAC5B,KAAG,YAAY,CAAC,CAAC,CA+FjB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,oBAAoB,KAAK,CAAC,CAAC,CAAC,oBAStE,CAAC"}
1
+ {"version":3,"file":"use-items.d.ts","sourceRoot":"","sources":["../../src/use-items/use-items.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAkC,MAAM,cAAc,CAAC;AAE5E,OAAO,EAAc,QAAQ,EAAE,MAAM,eAAe,CAAC;AAErD,UAAU,KAAK,CAAC,CAAC,SAAS,MAAM;IAC/B,OAAO,EAAE,CAAC,EAAE,CAAC;IACb,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;CACtB;AAYD,MAAM,MAAM,YAAY,CAAC,CAAC,SAAS,MAAM,IAAI;IAC5C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,CACP,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EACxD,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KACd,IAAI,CAAC;IACV,SAAS,EAAE,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACrE,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC;IAC7B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC;CAC1D,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,sCAK5C,KAAK,CAAC,CAAC,CAAC,GAAG;IACb,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,QAAQ,EAAE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC;CAC5B,KAAG,YAAY,CAAC,CAAC,CA+FjB,CAAC;AAEF,eAAO,MAAM,QAAQ,GAAI,CAAC,SAAS,MAAM,EAAE,oBAAoB,KAAK,CAAC,CAAC,CAAC,oBAStE,CAAC"}
@@ -1,7 +1,7 @@
1
- import { useCallback, useMemo, useState } from '@pionjs/pion';
2
1
  import { invoke } from '@neovici/cosmoz-utils/function';
3
- import { applyRules } from './apply-rules';
2
+ import { useCallback, useMemo, useState } from '@pionjs/pion';
4
3
  import { touch, touched } from '../touch';
4
+ import { applyRules } from './apply-rules';
5
5
  const changes = (indexOrChanges, update) => {
6
6
  if (Array.isArray(indexOrChanges)) {
7
7
  return indexOrChanges;
@@ -1,4 +1,5 @@
1
1
  import { ItemRule } from '.';
2
+ import type { AsyncItemRule } from './async-rule';
2
3
  import type { Fields } from './types';
3
4
  import { UseValidatedForm } from './use-validated-form';
4
5
  export type ProgressValue = string | number;
@@ -7,17 +8,19 @@ export interface Props<T extends object> {
7
8
  fields: Fields<T>;
8
9
  initial: T;
9
10
  rules?: ItemRule<T>[];
11
+ asyncRules?: readonly AsyncItemRule<T>[];
10
12
  onSave?: (values: T, initial: T, setProgress?: (p: Progress) => void) => PromiseLike<unknown>;
11
13
  allowEmpty?: boolean;
12
14
  }
13
15
  interface Opts {
14
16
  disabled: boolean;
17
+ processing: boolean;
15
18
  progress?: Progress;
16
19
  save$?: PromiseLike<unknown>;
17
20
  onSave: () => void;
18
21
  }
19
22
  export interface UseValidatedForm$<T extends object> extends UseValidatedForm<T>, Opts {
20
23
  }
21
- declare function useValidatedForm$<T extends object>({ fields, initial, rules, onSave, allowEmpty, }: Props<T>): UseValidatedForm$<T>;
24
+ declare function useValidatedForm$<T extends object>({ fields, initial, rules, asyncRules, onSave, allowEmpty, }: Props<T>): UseValidatedForm$<T>;
22
25
  export { useValidatedForm$ };
23
26
  //# sourceMappingURL=use-validated-form$.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use-validated-form$.d.ts","sourceRoot":"","sources":["../src/use-validated-form$.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAEtD,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM;IACtC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,MAAM,CAAC,EAAE,CACR,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC,EACV,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,KAC/B,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,IAAI;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAClD,SAAQ,gBAAgB,CAAC,CAAC,CAAC,EAC1B,IAAI;CAAG;AAET,iBAAS,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,EAC5C,MAAM,EACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,UAAU,GACV,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAmBjC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"use-validated-form$.d.ts","sourceRoot":"","sources":["../src/use-validated-form$.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,CAAC;AAC7B,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC,OAAO,EAAE,gBAAgB,EAAoB,MAAM,sBAAsB,CAAC;AAE1E,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAC5C,MAAM,MAAM,QAAQ,GAAG,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AAEtD,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM;IACtC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,OAAO,EAAE,CAAC,CAAC;IACX,KAAK,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IACzC,MAAM,CAAC,EAAE,CACR,MAAM,EAAE,CAAC,EACT,OAAO,EAAE,CAAC,EACV,WAAW,CAAC,EAAE,CAAC,CAAC,EAAE,QAAQ,KAAK,IAAI,KAC/B,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1B,UAAU,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,UAAU,IAAI;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,KAAK,CAAC,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,SAAS,MAAM,CAClD,SAAQ,gBAAgB,CAAC,CAAC,CAAC,EAAE,IAAI;CAAG;AAErC,iBAAS,iBAAiB,CAAC,CAAC,SAAS,MAAM,EAAE,EAC5C,MAAM,EACN,OAAO,EACP,KAAK,EACL,UAAU,EACV,MAAM,EACN,UAAU,GACV,EAAE,KAAK,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAqBjC;AAED,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -1,7 +1,9 @@
1
1
  import { useCallback, useState } from '@pionjs/pion';
2
+ import { useAsyncFormCore } from './use-async-form-core';
2
3
  import { useValidatedForm } from './use-validated-form';
3
- function useValidatedForm$({ fields, initial, rules, onSave, allowEmpty, }) {
4
+ function useValidatedForm$({ fields, initial, rules, asyncRules, onSave, allowEmpty, }) {
4
5
  const form = useValidatedForm({ fields, initial, rules });
6
+ const { processing } = useAsyncFormCore(form, asyncRules);
5
7
  const { values, invalid } = form;
6
8
  const [save$, setSave$] = useState();
7
9
  const [progress, setProgress] = useState();
@@ -12,6 +14,7 @@ function useValidatedForm$({ fields, initial, rules, onSave, allowEmpty, }) {
12
14
  save$,
13
15
  onSave: useCallback(() => setSave$(onSave?.(values, initial, setProgress)), [onSave, values, initial]),
14
16
  disabled,
17
+ processing,
15
18
  progress,
16
19
  };
17
20
  }
@@ -1 +1 @@
1
- {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rules.d.ts","sourceRoot":"","sources":["../../src/validation/rules.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  import { _ } from '@neovici/cosmoz-i18next';
2
- import { luhn as isLuhn } from '../util/luhn';
3
- import { gln as isGln } from '../util/gln';
4
2
  import { ensureDate } from '@neovici/cosmoz-utils/date';
5
3
  import { format } from 'date-fns/format';
6
4
  import { addDays } from 'date-fns/fp/addDays';
5
+ import { gln as isGln } from '../util/gln';
6
+ import { luhn as isLuhn } from '../util/luhn';
7
7
  export const STRING_TEXT = 200, STRING_LONG = 50, STRING_SHORT = 20;
8
8
  export const missing = (value) => value == null ||
9
9
  value === '' ||
@@ -11,8 +11,11 @@ export const missing = (value) => value == null ||
11
11
  (Array.isArray(value) && value.length < 1);
12
12
  export const exists = (value) => !missing(value);
13
13
  export const required = (value) => missing(value) && _('Required');
14
- export const requiredWhen = (condition) => (value, values) => condition(value, values) ? required(value) : false;
15
- export const requireEither = (otherField) => (value, values) => missing(value) && missing(values[otherField]) && _('Required');
14
+ export const requiredWhen = (condition) => (value, values) => values != null && condition(value, values) ? required(value) : false;
15
+ export const requireEither = (otherField) => (value, values) => missing(value) &&
16
+ values != null &&
17
+ missing(values[otherField]) &&
18
+ _('Required');
16
19
  export function notAnOption(options, key) {
17
20
  return (value) => !missing(value) &&
18
21
  options != null &&
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neovici/cosmoz-form",
3
- "version": "2.1.0",
3
+ "version": "2.2.0",
4
4
  "description": "A pionjs component",
5
5
  "keywords": [
6
6
  "web-components",
@@ -76,20 +76,21 @@
76
76
  "@commitlint/cli": "^20.0.0",
77
77
  "@commitlint/config-conventional": "^20.0.0",
78
78
  "@neovici/cfg": "^2.8.0",
79
- "lint-staged": "^15.4.3",
80
79
  "@neovici/testing": "^2.0.0",
81
80
  "@open-wc/testing": "^4.0.0",
82
81
  "@open-wc/testing-helpers": "^3.0.1",
83
82
  "@semantic-release/changelog": "^6.0.0",
84
83
  "@semantic-release/git": "^10.0.0",
85
- "@storybook/addon-links": "^10.0.0",
86
- "@storybook/web-components": "^10.0.0",
87
- "@storybook/web-components-vite": "^10.0.0",
84
+ "@storybook/addon-docs": "^10.2.17",
85
+ "@storybook/addon-links": "^10.2.17",
86
+ "@storybook/web-components": "^10.2.17",
87
+ "@storybook/web-components-vite": "^10.2.17",
88
88
  "@types/mocha": "^10.0.0",
89
89
  "@types/node": "^24.0.0",
90
90
  "esbuild": "^0.27.0",
91
91
  "http-server": "^14.1.1",
92
92
  "husky": "^9.0.11",
93
+ "lint-staged": "^15.4.3",
93
94
  "semantic-release": "^25.0.0",
94
95
  "sinon": "^19.0.0",
95
96
  "storybook": "^10.0.0"