@neovici/cosmoz-form 2.4.1 → 2.6.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 (79) hide show
  1. package/dist/async-rule.d.ts +21 -11
  2. package/dist/async-rule.d.ts.map +1 -1
  3. package/dist/inputs/autocomplete.d.ts +1 -1
  4. package/dist/inputs/autocomplete.d.ts.map +1 -1
  5. package/dist/inputs/base.d.ts +4 -4
  6. package/dist/inputs/base.d.ts.map +1 -1
  7. package/dist/inputs/base.js +15 -11
  8. package/dist/inputs/basic.d.ts +1 -1
  9. package/dist/inputs/basic.d.ts.map +1 -1
  10. package/dist/inputs/common.d.ts +8 -8
  11. package/dist/inputs/common.d.ts.map +1 -1
  12. package/dist/inputs/common.js +3 -3
  13. package/dist/inputs/date-range.d.ts +1 -1
  14. package/dist/inputs/date-range.d.ts.map +1 -1
  15. package/dist/inputs/file-drop.d.ts +1 -1
  16. package/dist/inputs/file-drop.d.ts.map +1 -1
  17. package/dist/inputs/file.d.ts +1 -1
  18. package/dist/inputs/file.d.ts.map +1 -1
  19. package/dist/inputs/inline-file.d.ts +1 -1
  20. package/dist/inputs/inline-file.d.ts.map +1 -1
  21. package/dist/inputs/inline-file.js +2 -1
  22. package/dist/inputs/read-only-number.d.ts +1 -1
  23. package/dist/inputs/read-only-number.d.ts.map +1 -1
  24. package/dist/inputs/read-only-number.js +3 -3
  25. package/dist/inputs/toggle.d.ts +1 -1
  26. package/dist/inputs/toggle.d.ts.map +1 -1
  27. package/dist/make-debounce-runner.d.ts +2 -2
  28. package/dist/make-debounce-runner.d.ts.map +1 -1
  29. package/dist/make-debounce-runner.js +10 -2
  30. package/dist/make-take-latest-runner.d.ts +2 -2
  31. package/dist/make-take-latest-runner.d.ts.map +1 -1
  32. package/dist/make-take-latest-runner.js +1 -0
  33. package/dist/render/fields.d.ts +11 -11
  34. package/dist/render/fields.d.ts.map +1 -1
  35. package/dist/render/fields.js +2 -3
  36. package/dist/render/items.d.ts +12 -8
  37. package/dist/render/items.d.ts.map +1 -1
  38. package/dist/render/items.js +5 -4
  39. package/dist/test/apply-rules.test.d.ts +2 -0
  40. package/dist/test/apply-rules.test.d.ts.map +1 -0
  41. package/dist/test/apply-rules.test.js +295 -0
  42. package/dist/test/use-items.test.js +70 -2
  43. package/dist/test/use-validated-form.test.js +120 -1
  44. package/dist/types/index.d.ts +27 -27
  45. package/dist/types/index.d.ts.map +1 -1
  46. package/dist/use-async-form-core.d.ts +6 -6
  47. package/dist/use-async-form-core.d.ts.map +1 -1
  48. package/dist/use-async-form-core.js +9 -7
  49. package/dist/use-form-core.d.ts +3 -2
  50. package/dist/use-form-core.d.ts.map +1 -1
  51. package/dist/use-form-core.js +30 -7
  52. package/dist/use-form.d.ts +1 -1
  53. package/dist/use-form.d.ts.map +1 -1
  54. package/dist/use-form.js +1 -1
  55. package/dist/use-items/apply-rules.d.ts +10 -5
  56. package/dist/use-items/apply-rules.d.ts.map +1 -1
  57. package/dist/use-items/apply-rules.js +3 -3
  58. package/dist/use-items/use-async-rules.d.ts +4 -3
  59. package/dist/use-items/use-async-rules.d.ts.map +1 -1
  60. package/dist/use-items/use-async-rules.js +6 -5
  61. package/dist/use-items/use-items.d.ts +7 -4
  62. package/dist/use-items/use-items.d.ts.map +1 -1
  63. package/dist/use-items/use-items.js +60 -11
  64. package/dist/use-items/use-validated-items.d.ts +6 -4
  65. package/dist/use-items/use-validated-items.d.ts.map +1 -1
  66. package/dist/use-items/use-validated-items.js +5 -3
  67. package/dist/use-validated-form$.d.ts +7 -6
  68. package/dist/use-validated-form$.d.ts.map +1 -1
  69. package/dist/use-validated-form$.js +2 -2
  70. package/dist/use-validated-form-core.d.ts +12 -10
  71. package/dist/use-validated-form-core.d.ts.map +1 -1
  72. package/dist/use-validated-form-core.js +5 -5
  73. package/dist/use-validated-form.d.ts +7 -5
  74. package/dist/use-validated-form.d.ts.map +1 -1
  75. package/dist/use-validated-form.js +3 -3
  76. package/dist/validation/index.d.ts +10 -10
  77. package/dist/validation/index.d.ts.map +1 -1
  78. package/dist/validation/index.js +12 -12
  79. package/package.json +1 -1
@@ -1,8 +1,9 @@
1
1
  /**
2
2
  * Options passed to every async rule function.
3
3
  * @template T - the form/item value type
4
+ * @template C - the context type
4
5
  */
5
- export type AsyncOpts<T> = {
6
+ export type AsyncOpts<T, C extends object = object> = {
6
7
  /** Emit an intermediate partial patch immediately (e.g. a loading state). */
7
8
  update: (patch: Partial<T>) => void;
8
9
  /**
@@ -16,6 +17,11 @@ export type AsyncOpts<T> = {
16
17
  * `undefined` when running inside `useAsyncFormCore`.
17
18
  */
18
19
  index?: number;
20
+ /**
21
+ * Optional context object propagated from the parent form.
22
+ * Available when `context` is passed to `useAsyncRules` or `useAsyncFormCore`.
23
+ */
24
+ context?: C;
19
25
  };
20
26
  /**
21
27
  * Plain async function that computes a partial state update.
@@ -23,18 +29,19 @@ export type AsyncOpts<T> = {
23
29
  * `values` is a snapshot at invocation time.
24
30
  *
25
31
  * @template T - the form/item value type
32
+ * @template C - the context type
26
33
  * @param values - snapshot of current form/item values
27
- * @param opts - cancellation signal, intermediate update callback, and item index
34
+ * @param opts - cancellation signal, intermediate update callback, item index, and context
28
35
  * @returns a partial patch to merge into state
29
36
  * @example
30
- * async function myRule(values, { update, signal }) {
37
+ * async function myRule(values, { update, signal, context }) {
31
38
  * if (!values.supplierId) return { contactEmail: '' };
32
39
  * update({ contactEmail: 'loading…' });
33
40
  * const email = await fetchEmail(signal, values.supplierId);
34
41
  * return { contactEmail: email };
35
42
  * }
36
43
  */
37
- export type AsyncRule<T> = (values: T, opts: AsyncOpts<T>) => Promise<Partial<T>>;
44
+ export type AsyncRule<T, C extends object = object> = (values: T, opts: AsyncOpts<T, C>) => Promise<Partial<T>>;
38
45
  /**
39
46
  * Callback invoked with intermediate partial patches during a rule run.
40
47
  * @param patch - the intermediate partial state to apply immediately
@@ -43,19 +50,21 @@ export type OnIntermediate<T> = (patch: Partial<T>) => void;
43
50
  /**
44
51
  * Shared interface for all async runner strategies.
45
52
  * @template T - the form/item value type
53
+ * @template C - the context type
46
54
  */
47
- export type AsyncRunner<T> = {
55
+ export type AsyncRunner<T, C extends object = object> = {
48
56
  /**
49
57
  * Run `fn` with `values` as input.
50
58
  *
51
59
  * @param fn - the async rule to execute
52
60
  * @param values - snapshot of current values passed to `fn`
53
61
  * @param onIntermediate - wired to `opts.update` inside the rule
54
- * @param opts - optional `index` forwarded to `opts.index` inside the rule
62
+ * @param opts - optional `index` and `context` forwarded into the rule
55
63
  * @returns the resolved patch from `fn`, or `null` if cancelled
56
64
  */
57
- run: (fn: AsyncRule<T>, values: T, onIntermediate: OnIntermediate<T>, opts?: {
65
+ run: (fn: AsyncRule<T, C>, values: T, onIntermediate: OnIntermediate<T>, opts?: {
58
66
  index?: number;
67
+ context?: C;
59
68
  }) => Promise<Partial<T> | null>;
60
69
  /** Cancel the current in-flight run, resolving it as `null`. */
61
70
  cancel: () => void;
@@ -64,11 +73,12 @@ export type AsyncRunner<T> = {
64
73
  * Tuple describing a single async rule for use with `useAsyncRules`.
65
74
  *
66
75
  * @template T - the form/item value type
76
+ * @template C - the context type
67
77
  */
68
- export type AsyncItemRule<T> = readonly [
69
- ruleFn: AsyncRule<T>,
70
- depsFn: (current: T, index?: number) => unknown[],
71
- runner?: () => AsyncRunner<T>
78
+ export type AsyncItemRule<T, C extends object = object> = readonly [
79
+ ruleFn: AsyncRule<T, C>,
80
+ depsFn: (current: T, index?: number, context?: C) => unknown[],
81
+ runner?: () => AsyncRunner<T, C>
72
82
  ];
73
83
  /**
74
84
  * Cancellable delay. Rejects with `AbortError` if `signal` fires before `ms` elapses.
@@ -1 +1 @@
1
- {"version":3,"file":"async-rule.d.ts","sourceRoot":"","sources":["../src/async-rule.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI;IAC1B,6EAA6E;IAC7E,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpC;;;;OAIG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAEF;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,IAAI,CAC1B,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,KACd,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzB;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAE5D;;;GAGG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI;IAC5B;;;;;;;;OAQG;IACH,GAAG,EAAE,CACJ,EAAE,EAAE,SAAS,CAAC,CAAC,CAAC,EAChB,MAAM,EAAE,CAAC,EACT,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,EACjC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KACrB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,gEAAgE;IAChE,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;;GAIG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,IAAI,SAAS;IACvC,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC;IACpB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,OAAO,EAAE;IACjD,MAAM,CAAC,EAAE,MAAM,WAAW,CAAC,CAAC,CAAC;CAC7B,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,QAAQ,WAAW,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAejE,CAAC"}
1
+ {"version":3,"file":"async-rule.d.ts","sourceRoot":"","sources":["../src/async-rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACrD,6EAA6E;IAC7E,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACpC;;;;OAIG;IACH,MAAM,EAAE,WAAW,CAAC;IACpB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF;;;;;;;;;;;;;;;;;GAiBG;AACH,MAAM,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,CACrD,MAAM,EAAE,CAAC,EACT,IAAI,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,KACjB,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzB;;;GAGG;AACH,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAE5D;;;;GAIG;AACH,MAAM,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI;IACvD;;;;;;;;OAQG;IACH,GAAG,EAAE,CACJ,EAAE,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,EACnB,MAAM,EAAE,CAAC,EACT,cAAc,EAAE,cAAc,CAAC,CAAC,CAAC,EACjC,IAAI,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC,CAAA;KAAE,KAClC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;IAChC,gEAAgE;IAChE,MAAM,EAAE,MAAM,IAAI,CAAC;CACnB,CAAC;AAEF;;;;;GAKG;AACH,MAAM,MAAM,aAAa,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,SAAS;IAClE,MAAM,EAAE,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC;IACvB,MAAM,EAAE,CAAC,OAAO,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,OAAO,EAAE;IAC9D,MAAM,CAAC,EAAE,MAAM,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC;CAChC,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,KAAK,GAAI,QAAQ,WAAW,EAAE,IAAI,MAAM,KAAG,OAAO,CAAC,IAAI,CAejE,CAAC"}
@@ -22,6 +22,6 @@ export interface AutocompleteProps<T extends object, K extends keyof T, V extend
22
22
  externalSearch?: boolean;
23
23
  itemHeight?: number | 'auto';
24
24
  }
25
- export declare const autocomplete: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
25
+ export declare const autocomplete: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
26
26
  export {};
27
27
  //# sourceMappingURL=autocomplete.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/inputs/autocomplete.ts"],"names":[],"mappings":"AAKA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,EAAiB,UAAU,EAAE,MAAM,UAAU,CAAC;AAIrD,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,MAAM,WAAW,iBAAiB,CACjC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEd,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAOD,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHAqEpD,CAAC"}
1
+ {"version":3,"file":"autocomplete.d.ts","sourceRoot":"","sources":["../../src/inputs/autocomplete.ts"],"names":[],"mappings":"AAKA,OAAO,8BAA8B,CAAC;AAEtC,OAAO,EAAiB,UAAU,EAAE,MAAM,UAAU,CAAC;AAIrD,KAAK,WAAW,CAAC,CAAC,EAAE,CAAC,IAAI;IACxB,MAAM,EAAE,OAAO,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,CAAC,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;CACV,CAAC;AAEF,MAAM,WAAW,iBAAiB,CACjC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEd,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,KAAK,GAAG,SAAS,EAAE,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACzE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC7B;AAOD,eAAO,MAAM,YAAY,GACvB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIAqEpD,CAAC"}
@@ -1,4 +1,4 @@
1
- import { InputProps, Renderable, Field } from '../types';
1
+ import { Field, InputProps, Renderable } from '../types';
2
2
  type ComputedRenderOpts<T extends object, K extends keyof T, V extends T[K]> = {
3
3
  values: T;
4
4
  label: string;
@@ -11,8 +11,8 @@ type ComputedRenderOpts<T extends object, K extends keyof T, V extends T[K]> = {
11
11
  onFocus?: (event: FocusEvent) => void;
12
12
  onChange: (value: V, touched?: boolean) => void;
13
13
  };
14
- type RenderThru<T extends object, K extends keyof T, V extends T[K]> = Omit<InputProps<T, K, V>, 'field' | 'value' | 'values' | 'onChange'>;
15
- export type InputBaseProps<T extends object, K extends keyof T, V extends T[K] = T[K]> = Omit<Field<T, K, V>, keyof ComputedRenderOpts<T, K, V>> & ComputedRenderOpts<T, K, V> & RenderThru<T, K, V>;
16
- export declare const input: <T extends object, K extends keyof T, V extends T[K]>(render: (r: InputBaseProps<T, K, V>) => Renderable) => ({ field, value, values, onChange: update, ...thru }: InputProps<T, K, V>) => Renderable;
14
+ type RenderThru<T extends object, K extends keyof T, V extends T[K], C extends object = object> = Omit<InputProps<T, K, V, C>, 'field' | 'value' | 'values' | 'onChange'>;
15
+ export type InputBaseProps<T extends object, K extends keyof T, V extends T[K] = T[K], C extends object = object> = Omit<Field<T, K, V, C>, keyof ComputedRenderOpts<T, K, V>> & ComputedRenderOpts<T, K, V> & RenderThru<T, K, V, C>;
16
+ export declare const input: <T extends object, K extends keyof T, V extends T[K], C extends object = object>(render: (r: InputBaseProps<T, K, V, C>) => Renderable) => ({ field, value, values, onChange: update, context, ...thru }: InputProps<T, K, V, C>) => Renderable;
17
17
  export {};
18
18
  //# sourceMappingURL=base.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/inputs/base.ts"],"names":[],"mappings":"AACA,OAAO,EAAY,UAAU,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAInE,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;IAC9E,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,KAAK,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAC1E,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EACnB,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CACzC,CAAC;AAEF,MAAM,MAAM,cAAc,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAClB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAC1D,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC3B,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAuBrB,eAAO,MAAM,KAAK,GAChB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACnD,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,MAElD,qDAME,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,UAqCxB,CAAC"}
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../src/inputs/base.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAY,MAAM,UAAU,CAAC;AAGnE,KAAK,kBAAkB,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI;IAC9E,MAAM,EAAE,CAAC,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,UAAU,CAAC;IACrB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,KAAK,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;IACtC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,KAAK,UAAU,CACd,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACd,CAAC,SAAS,MAAM,GAAG,MAAM,IACtB,IAAI,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,UAAU,CAAC,CAAC;AAE5E,MAAM,MAAM,cAAc,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EACrB,CAAC,SAAS,MAAM,GAAG,MAAM,IACtB,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,MAAM,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAC7D,kBAAkB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAC3B,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AA4BxB,eAAO,MAAM,KAAK,GAEhB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACd,CAAC,SAAS,MAAM,GAAG,MAAM,EAEzB,QAAQ,CAAC,CAAC,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,UAAU,MAErD,8DAOE,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAG,UA0C3B,CAAC"}
@@ -13,28 +13,32 @@ const isRequired = (validate) => {
13
13
  }
14
14
  return validate === required;
15
15
  };
16
- export const input = (render) => ({ field, value, values, onChange: update, ...thru }) => {
16
+ export const input = (render) => ({ field, value, values, onChange: update, context, ...thru }) => {
17
17
  // TODO: rename as onChangeValue and also send in original onChange
18
18
  const onChange = (value, touched) => (field.onChange ?? defaultOnChange)(
19
19
  // intercept the update and pass touched
20
- (a) => update(a, touched), field.path ?? field.id, invokeValue(field.value?.[1], value, values, field), values);
21
- const mandatory = invoke(field.mandatory ?? isRequired(field.validate), value, values, field)
20
+ (a) => update(a, touched), field.path ?? field.id, invokeValue(field.value?.[1], value, values, field, context), values);
21
+ const mandatory = invoke(field.mandatory ?? isRequired(field.validate), value, values, field, context)
22
22
  ? ' *'
23
23
  : undefined;
24
- const hidden = invoke(field.hidden, value, values, field);
24
+ const hidden = invoke(field.hidden, value, values, field, context);
25
25
  if (hidden)
26
26
  return;
27
27
  return render({
28
28
  ...field,
29
29
  ...thru,
30
+ context,
30
31
  values,
31
- label: [invoke(field.label, value, values, field), mandatory].join(''),
32
- placeholder: invoke(field.placeholder, value, values, field),
33
- disabled: invoke(field.disabled, value, values, field),
34
- warning: invoke(field.warning, value, values, field),
35
- prefix: invoke(field.prefix, value, values, field),
36
- suffix: invoke(field.suffix, value, values, field),
37
- value: invokeValue(field.value?.[0], value, values, field),
32
+ label: [
33
+ invoke(field.label, value, values, field, context),
34
+ mandatory,
35
+ ].join(''),
36
+ placeholder: invoke(field.placeholder, value, values, field, context),
37
+ disabled: invoke(field.disabled, value, values, field, context),
38
+ warning: invoke(field.warning, value, values, field, context),
39
+ prefix: invoke(field.prefix, value, values, field, context),
40
+ suffix: invoke(field.suffix, value, values, field, context),
41
+ value: invokeValue(field.value?.[0], value, values, field, context),
38
42
  onFocus: field.onFocus?.(onChange, value, values, field),
39
43
  onChange,
40
44
  });
@@ -1,3 +1,3 @@
1
1
  import '@neovici/cosmoz-input';
2
- export declare const basic: (render: <T>(field: T) => unknown) => ({ field, value, values, onChange: update, ...thru }: import("..").InputProps<object, never, never>) => import("..").Renderable;
2
+ export declare const basic: (render: <T>(field: T) => unknown) => ({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<object, never, never, object>) => import("..").Renderable;
3
3
  //# sourceMappingURL=basic.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../src/inputs/basic.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC;AAG/B,eAAO,MAAM,KAAK,GAAI,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,oIAMpD,CAAC"}
1
+ {"version":3,"file":"basic.d.ts","sourceRoot":"","sources":["../../src/inputs/basic.ts"],"names":[],"mappings":"AACA,OAAO,uBAAuB,CAAC;AAG/B,eAAO,MAAM,KAAK,GAAI,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,OAAO,qJAMpD,CAAC"}
@@ -1,15 +1,15 @@
1
1
  import '@neovici/cosmoz-input';
2
2
  import '@neovici/cosmoz-input/textarea';
3
3
  import type { Field, InputBaseOpts, Invokable } from '../types';
4
- export interface CommonFieldProps<T extends object, K extends keyof T, V extends T[K]> {
4
+ export interface CommonFieldProps<T extends object, K extends keyof T, V extends T[K], C extends object = object> {
5
5
  title?: string;
6
6
  noLabelFloat?: boolean;
7
7
  alwaysFloatLabel?: boolean;
8
8
  allowedPattern?: string | RegExp;
9
9
  step?: string;
10
10
  maxlength?: number;
11
- min?: Invokable<T, Field<T, K, V>, V, number | string>;
12
- max?: Invokable<T, Field<T, K, V>, V, number | string>;
11
+ min?: Invokable<T, Field<T, K, V, C>, V, number | string, C>;
12
+ max?: Invokable<T, Field<T, K, V, C>, V, number | string, C>;
13
13
  autosize?: boolean;
14
14
  noSpinner?: boolean;
15
15
  }
@@ -18,14 +18,14 @@ export interface Common<T extends object, K extends keyof T, V extends T[K]> ext
18
18
  onInput?: (e: InputEvent) => void;
19
19
  }
20
20
  export declare const common: <T extends object, K extends keyof T, V extends T[K]>(props: Common<T, K, V>) => import("lit-html").TemplateResult<1>;
21
- export declare const text: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
22
- export declare const number: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
23
- export declare const date: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
24
- export declare const color: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
21
+ export declare const text: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
22
+ export declare const number: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
23
+ export declare const date: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
24
+ export declare const color: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
25
25
  export interface TextareaProps {
26
26
  rows?: number;
27
27
  maxRows?: number;
28
28
  maxlength?: number;
29
29
  }
30
- export declare const textarea: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
30
+ export declare const textarea: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
31
31
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/inputs/common.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,gCAAgC,CAAC;AAQxC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIhE,MAAM,WAAW,gBAAgB,CAChC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACvD,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,MAAM,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAC1E,SAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC;IAChD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACzE,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yCAiDtB,CAAC;AAEF,eAAO,MAAM,IAAI,GACf,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHAQpD,CAAC;AACF,eAAO,MAAM,MAAM,GACjB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHAcpD,CAAC;AACF,eAAO,MAAM,IAAI,GACf,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHASpD,CAAC;AACF,eAAO,MAAM,KAAK,GAChB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHASpD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,QAAQ,GACnB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHAgCpD,CAAC"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/inputs/common.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,gCAAgC,CAAC;AAQxC,OAAO,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAIhE,MAAM,WAAW,gBAAgB,CAChC,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACd,CAAC,SAAS,MAAM,GAAG,MAAM;IAEzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7D,GAAG,CAAC,EAAE,SAAS,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC,CAAC;IAC7D,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,MAAM,CACtB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACb,SAAQ,IAAI,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,CAAC;IACjD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,CAAC;CAClC;AAED,eAAO,MAAM,MAAM,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACzE,OAAO,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yCAiDtB,CAAC;AAEF,eAAO,MAAM,IAAI,GACf,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIAQpD,CAAC;AACF,eAAO,MAAM,MAAM,GACjB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIAcpD,CAAC;AACF,eAAO,MAAM,IAAI,GACf,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIASpD,CAAC;AACF,eAAO,MAAM,KAAK,GAChB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIASpD,CAAC;AAEF,MAAM,WAAW,aAAa;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,QAAQ,GACnB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIAgCpD,CAAC"}
@@ -7,7 +7,7 @@ import { ifDefined } from 'lit-html/directives/if-defined.js';
7
7
  import { input } from './base';
8
8
  import { renderContents } from './render';
9
9
  export const common = (props) => {
10
- const { value, values, onFocus, onInput, ...field } = props;
10
+ const { value, values, onFocus, onInput, context, ...field } = props;
11
11
  const { id, type = 'text', label, placeholder, noLabelFloat, alwaysFloatLabel, error, prefix, suffix, warning, allowedPattern, step, disabled, maxlength, min, max, autosize, noSpinner, title, description, } = field;
12
12
  return html `<cosmoz-input
13
13
  class="input input-common input-${type}"
@@ -27,8 +27,8 @@ export const common = (props) => {
27
27
  .value=${value}
28
28
  title=${ifDefined((error ?? title) || undefined)}
29
29
  maxlength=${ifDefined(maxlength)}
30
- min=${ifDefined(invoke(min, value, values, field))}
31
- max=${ifDefined(invoke(max, value, values, field))}
30
+ min=${ifDefined(invoke(min, value, values, field, context))}
31
+ max=${ifDefined(invoke(max, value, values, field, context))}
32
32
  @focus=${onFocus}
33
33
  @input=${onInput}
34
34
  >${renderContents({ prefix, suffix, warning, description })}</cosmoz-input
@@ -2,7 +2,7 @@ interface Value {
2
2
  to: string;
3
3
  from: string;
4
4
  }
5
- export declare const dateRange: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable, dateTimeRange: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable, missingRange: (value?: Value) => false | {
5
+ export declare const dateRange: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable, dateTimeRange: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable, missingRange: (value?: Value) => false | {
6
6
  from: string | false;
7
7
  to: string | false;
8
8
  };
@@ -1 +1 @@
1
- {"version":3,"file":"date-range.d.ts","sourceRoot":"","sources":["../../src/inputs/date-range.ts"],"names":[],"mappings":"AAQA,UAAU,KAAK;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACb;AAsDD,eAAO,MAAM,SAAS,GA3CnB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHA2CX,EAC1C,aAAa,GA5CX,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHA4CT,EAG5C,YAAY,GAAI,QAAQ,KAAK;;;CAI3B,CAAC"}
1
+ {"version":3,"file":"date-range.d.ts","sourceRoot":"","sources":["../../src/inputs/date-range.ts"],"names":[],"mappings":"AAQA,UAAU,KAAK;IACd,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CACb;AAsDD,eAAO,MAAM,SAAS,GA3CnB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIA2CX,EAC1C,aAAa,GA5CX,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIA4CT,EAG5C,YAAY,GAAI,QAAQ,KAAK;;;CAI3B,CAAC"}
@@ -1,2 +1,2 @@
1
- export declare const fileDrop: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
1
+ export declare const fileDrop: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
2
2
  //# sourceMappingURL=file-drop.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file-drop.d.ts","sourceRoot":"","sources":["../../src/inputs/file-drop.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ,GACnB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHAkBpD,CAAC"}
1
+ {"version":3,"file":"file-drop.d.ts","sourceRoot":"","sources":["../../src/inputs/file-drop.ts"],"names":[],"mappings":"AASA,eAAO,MAAM,QAAQ,GACnB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIAkBpD,CAAC"}
@@ -3,5 +3,5 @@ export interface FileProps<T extends object, K extends keyof T, V extends T[K]>
3
3
  accept?: string | PromiseLike<string> | ((value: V, values: T) => PromiseLike<string>);
4
4
  autoReset?: boolean;
5
5
  }
6
- export declare const file: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
6
+ export declare const file: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
7
7
  //# sourceMappingURL=file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/inputs/file.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EACJ,MAAM,GACN,WAAW,CAAC,MAAM,CAAC,GACnB,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,GACf,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHA4BpD,CAAC"}
1
+ {"version":3,"file":"file.d.ts","sourceRoot":"","sources":["../../src/inputs/file.ts"],"names":[],"mappings":"AAQA,MAAM,WAAW,SAAS,CACzB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAEd,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EACJ,MAAM,GACN,WAAW,CAAC,MAAM,CAAC,GACnB,CAAC,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,KAAK,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC;IAClD,SAAS,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,eAAO,MAAM,IAAI,GACf,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIA4BpD,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export declare const inlineFileStyle: string;
2
- export declare const inlineFile: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
2
+ export declare const inlineFile: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
3
3
  //# sourceMappingURL=inline-file.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"inline-file.d.ts","sourceRoot":"","sources":["../../src/inputs/inline-file.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,QAkB3B,CAAC;AAkCF,eAAO,MAAM,UAAU,GACrB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHAsCpD,CAAC"}
1
+ {"version":3,"file":"inline-file.d.ts","sourceRoot":"","sources":["../../src/inputs/inline-file.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,eAAe,QAkB3B,CAAC;AAkCF,eAAO,MAAM,UAAU,GACrB,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIAuCpD,CAAC"}
@@ -1,11 +1,11 @@
1
1
  import { _ } from '@neovici/cosmoz-i18next';
2
+ import { tagged as css } from '@neovici/cosmoz-utils';
2
3
  import { invoke, noop } from '@neovici/cosmoz-utils/function';
3
4
  import { html } from 'lit-html';
4
5
  import { ifDefined } from 'lit-html/directives/if-defined.js';
5
6
  import { until } from 'lit-html/directives/until.js';
6
7
  import { input } from './base';
7
8
  import { text } from './common';
8
- import { tagged as css } from '@neovici/cosmoz-utils';
9
9
  // TODO: wrap in a component
10
10
  export const inlineFileStyle = css `
11
11
  .input-inline-file {
@@ -66,6 +66,7 @@ export const inlineFile = input(({ id, label, value, values, onChange, accept, m
66
66
  onValues: noop,
67
67
  touched: false,
68
68
  values,
69
+ context: {},
69
70
  })}
70
71
 
71
72
  <input
@@ -2,5 +2,5 @@ import { InputProps } from '../types';
2
2
  export interface ReadOnlyNumberProps {
3
3
  format?: (value?: number) => string;
4
4
  }
5
- export declare const readOnlyNumber: <T extends object, K extends keyof T, V extends T[K]>({ value, values, field, error, }: InputProps<T, K, V>) => import("lit-html").TemplateResult<1>[];
5
+ export declare const readOnlyNumber: <T extends object, K extends keyof T, V extends T[K]>({ value, values, field, error, context, }: InputProps<T, K, V>) => import("lit-html").TemplateResult<1>[];
6
6
  //# sourceMappingURL=read-only-number.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"read-only-number.d.ts","sourceRoot":"","sources":["../../src/inputs/read-only-number.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AASD,eAAO,MAAM,cAAc,GAC1B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACb,kCAKC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2CA8BrB,CAAC"}
1
+ {"version":3,"file":"read-only-number.d.ts","sourceRoot":"","sources":["../../src/inputs/read-only-number.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAItC,MAAM,WAAW,mBAAmB;IACnC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,MAAM,KAAK,MAAM,CAAC;CACpC;AASD,eAAO,MAAM,cAAc,GAC1B,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACb,2CAMC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,2CA8BrB,CAAC"}
@@ -8,7 +8,7 @@ const formatter = new Intl.NumberFormat(undefined, {
8
8
  maximumFractionDigits: 2,
9
9
  });
10
10
  const defaultFormat = (value) => formatter.format(ensureNumber(value));
11
- export const readOnlyNumber = ({ value, values, field, error, }) => {
11
+ export const readOnlyNumber = ({ value, values, field, error, context, }) => {
12
12
  const { id, suffix, warning, label, format = defaultFormat, noLabelFloat, } = field;
13
13
  return [
14
14
  html `<style>
@@ -26,8 +26,8 @@ export const readOnlyNumber = ({ value, values, field, error, }) => {
26
26
  ?invalid=${!!error}
27
27
  .errorMessage=${error}
28
28
  >${renderContents({
29
- suffix: invoke(suffix, value, values, field),
30
- warning: invoke(warning, value, values, field),
29
+ suffix: invoke(suffix, value, values, field, context),
30
+ warning: invoke(warning, value, values, field, context),
31
31
  })}</cosmoz-input
32
32
  >`,
33
33
  ];
@@ -1,5 +1,5 @@
1
1
  import '@neovici/cosmoz-input';
2
2
  import { InputBaseOpts } from '../types';
3
3
  export declare const toggleInput: <T extends object, K extends keyof T, V extends T[K]>({ id, label, error, disabled, warning, onChange, value, title, description, }: InputBaseOpts<T, K, V>) => import("lit-html").TemplateResult<1>;
4
- export declare const toggle: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, ...thru }: import("..").InputProps<T, K, V>) => import("..").Renderable;
4
+ export declare const toggle: <T extends object, K extends keyof T, V extends T[K]>({ field, value, values, onChange: update, context, ...thru }: import("..").InputProps<T, K, V, object>) => import("..").Renderable;
5
5
  //# sourceMappingURL=toggle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/inputs/toggle.ts"],"names":[],"mappings":"AAKA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,WAAW,GACvB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACb,+EAUC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yCAWtB,CAAC;AAEJ,eAAO,MAAM,MAAM,GA1BlB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mHAwByB,CAAC"}
1
+ {"version":3,"file":"toggle.d.ts","sourceRoot":"","sources":["../../src/inputs/toggle.ts"],"names":[],"mappings":"AAKA,OAAO,uBAAuB,CAAC;AAC/B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,eAAO,MAAM,WAAW,GACvB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACb,+EAUC,aAAa,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,yCAWtB,CAAC;AAEJ,eAAO,MAAM,MAAM,GA1BlB,CAAC,SAAS,MAAM,EAChB,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oIAwByB,CAAC"}
@@ -1,4 +1,4 @@
1
1
  import type { AsyncRunner } from './async-rule';
2
- export type DebounceRunner<T> = AsyncRunner<T>;
3
- export declare const makeDebounceRunner: <T>(ms: number) => DebounceRunner<T>;
2
+ export type DebounceRunner<T, C extends object = object> = AsyncRunner<T, C>;
3
+ export declare const makeDebounceRunner: <T, C extends object = object>(ms: number) => DebounceRunner<T, C>;
4
4
  //# sourceMappingURL=make-debounce-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-debounce-runner.d.ts","sourceRoot":"","sources":["../src/make-debounce-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,cAAc,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAE/C,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,IAAI,MAAM,KAAG,cAAc,CAAC,CAAC,CA4DlE,CAAC"}
1
+ {"version":3,"file":"make-debounce-runner.d.ts","sourceRoot":"","sources":["../src/make-debounce-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,MAAM,MAAM,cAAc,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE7E,eAAO,MAAM,kBAAkB,GAAI,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAC9D,IAAI,MAAM,KACR,cAAc,CAAC,CAAC,EAAE,CAAC,CAsErB,CAAC"}
@@ -9,9 +9,16 @@ export const makeDebounceRunner = (ms) => {
9
9
  pending.resolve(null);
10
10
  clearTimeout(timer);
11
11
  }
12
- pending = { fn, values, index: opts?.index, resolve, reject };
12
+ pending = {
13
+ fn,
14
+ values,
15
+ index: opts?.index,
16
+ context: opts?.context,
17
+ resolve,
18
+ reject,
19
+ };
13
20
  timer = setTimeout(async () => {
14
- const { fn: f, values: v, index, resolve: res, reject: rej, } = pending;
21
+ const { fn: f, values: v, index, context, resolve: res, reject: rej, } = pending;
15
22
  pending = null;
16
23
  timer = null;
17
24
  ac = new AbortController();
@@ -19,6 +26,7 @@ export const makeDebounceRunner = (ms) => {
19
26
  update: onIntermediate,
20
27
  signal: ac.signal,
21
28
  index,
29
+ context,
22
30
  };
23
31
  try {
24
32
  res(await f(v, asyncOpts));
@@ -1,4 +1,4 @@
1
1
  import type { AsyncRunner } from './async-rule';
2
- export type TakeLatestRunner<T> = AsyncRunner<T>;
3
- export declare const makeTakeLatestRunner: <T>() => TakeLatestRunner<T>;
2
+ export type TakeLatestRunner<T, C extends object = object> = AsyncRunner<T, C>;
3
+ export declare const makeTakeLatestRunner: <T, C extends object = object>() => TakeLatestRunner<T, C>;
4
4
  //# sourceMappingURL=make-take-latest-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-take-latest-runner.d.ts","sourceRoot":"","sources":["../src/make-take-latest-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC;AAEjD,eAAO,MAAM,oBAAoB,GAAI,CAAC,OAAK,gBAAgB,CAAC,CAAC,CAyB5D,CAAC"}
1
+ {"version":3,"file":"make-take-latest-runner.d.ts","sourceRoot":"","sources":["../src/make-take-latest-runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,MAAM,gBAAgB,CAAC,CAAC,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,IAAI,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAE/E,eAAO,MAAM,oBAAoB,GAChC,CAAC,EACD,CAAC,SAAS,MAAM,GAAG,MAAM,OACrB,gBAAgB,CAAC,CAAC,EAAE,CAAC,CA0BzB,CAAC"}
@@ -8,6 +8,7 @@ export const makeTakeLatestRunner = () => {
8
8
  update: onIntermediate,
9
9
  signal: ac.signal,
10
10
  index: opts?.index,
11
+ context: opts?.context,
11
12
  };
12
13
  try {
13
14
  return await fn(values, asyncOpts);
@@ -4,22 +4,22 @@ import { ERROR } from '../validation';
4
4
  type ValidatedValue<K extends PropertyKey> = {
5
5
  [ERROR]?: Record<K, string>;
6
6
  };
7
- interface ValidatedField<T extends ValidatedValue<K>, K extends keyof T, V extends T[K]> extends Field<T, K, V> {
7
+ interface ValidatedField<T extends ValidatedValue<K>, K extends keyof T, V extends T[K], C extends object = object> extends Field<T, K, V, C> {
8
8
  error?: string;
9
9
  }
10
- interface RenderField<T extends ValidatedValue<K>, K extends keyof T, V extends T[K]> extends UseValidatedForm<T> {
11
- field: ValidatedField<T, K, V>;
10
+ interface RenderField<T extends ValidatedValue<K>, K extends keyof T, V extends T[K], C extends object = object> extends UseValidatedForm<T, C> {
11
+ field: ValidatedField<T, K, V, C>;
12
12
  }
13
- export declare const renderField: <T extends ValidatedValue<K>, K extends keyof T, V extends T[K]>({ field, values, ...thru }: RenderField<T, K, V>) => Renderable;
14
- export declare const renderFields: <T extends object>({ fields, ...thru }: UseValidatedForm<T>) => Renderable;
15
- interface RenderStyles<T extends object> {
16
- fields?: Fields<T>;
13
+ export declare const renderField: <T extends ValidatedValue<K>, K extends keyof T, V extends T[K], C extends object = object>({ field, values, ...thru }: RenderField<T, K, V, C>) => Renderable;
14
+ export declare const renderFields: <T extends object, C extends object = object>({ fields, ...thru }: UseValidatedForm<T, C>) => Renderable;
15
+ interface RenderStyles<T extends object, C extends object = object> {
16
+ fields?: Fields<T, C>;
17
17
  selector?: string;
18
18
  }
19
- export declare const renderStyles: <T extends object>({ fields, selector, }: RenderStyles<T>) => string;
20
- interface RenderHeaders<T extends object> {
21
- fields?: Fields<T>;
19
+ export declare const renderStyles: <T extends object, C extends object = object>({ fields, selector, }: RenderStyles<T, C>) => string;
20
+ interface RenderHeaders<T extends object, C extends object = object> {
21
+ fields?: Fields<T, C>;
22
22
  }
23
- export declare const renderHeaders: <T extends object>({ fields }: RenderHeaders<T>) => unknown;
23
+ export declare const renderHeaders: <T extends object, C extends object = object>({ fields, }: RenderHeaders<T, C>) => unknown;
24
24
  export {};
25
25
  //# sourceMappingURL=fields.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/render/fields.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,KAAK,cAAc,CAAC,CAAC,SAAS,WAAW,IAAI;IAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAE7E,UAAU,cAAc,CACvB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACb,SAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,WAAW,CACpB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CACb,SAAQ,gBAAgB,CAAC,CAAC,CAAC;IAC5B,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAC/B;AAED,eAAO,MAAM,WAAW,GACvB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACb,4BAIC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,eAYtB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,qBAG5C,gBAAgB,CAAC,CAAC,CAAC,KAAG,UAKT,CAAC;AAEjB,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,uBAG5C,YAAY,CAAC,CAAC,CAAC,WASL,CAAC;AAEd,UAAU,aAAa,CAAC,CAAC,SAAS,MAAM;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CACnB;AACD,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,EAAE,YAAY,aAAa,CAAC,CAAC,CAAC,YAe1E,CAAC"}
1
+ {"version":3,"file":"fields.d.ts","sourceRoot":"","sources":["../../src/render/fields.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAEtC,KAAK,cAAc,CAAC,CAAC,SAAS,WAAW,IAAI;IAAE,CAAC,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAE7E,UAAU,cAAc,CACvB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACd,CAAC,SAAS,MAAM,GAAG,MAAM,CACxB,SAAQ,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;IAC1B,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,UAAU,WAAW,CACpB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACd,CAAC,SAAS,MAAM,GAAG,MAAM,CACxB,SAAQ,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC;IAC/B,KAAK,EAAE,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;CAClC;AAED,eAAO,MAAM,WAAW,GACvB,CAAC,SAAS,cAAc,CAAC,CAAC,CAAC,EAC3B,CAAC,SAAS,MAAM,CAAC,EACjB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,EACd,CAAC,SAAS,MAAM,GAAG,MAAM,EACxB,4BAIC,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,eAYzB,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,qBAGvE,gBAAgB,CAAC,CAAC,EAAE,CAAC,CAAC,KAAG,UAKZ,CAAC;AAEjB,UAAU,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AACD,eAAO,MAAM,YAAY,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,uBAGvE,YAAY,CAAC,CAAC,EAAE,CAAC,CAAC,WASR,CAAC;AAEd,UAAU,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACtB;AACD,eAAO,MAAM,aAAa,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,aAExE,aAAa,CAAC,CAAC,EAAE,CAAC,CAAC,YAepB,CAAC"}
@@ -2,10 +2,9 @@ import { html } from 'lit-html';
2
2
  import { repeat } from 'lit-html/directives/repeat.js';
3
3
  import { invoke } from '../helpers';
4
4
  import { text } from '../inputs/common';
5
- import { touched } from '../touch';
6
5
  import { ERROR } from '../validation';
7
6
  export const renderField = ({ field, values, ...thru }) => {
8
- const error = (touched(values) && (values?.[ERROR]?.[field.id] ?? field.error)) ?? false;
7
+ const error = (thru.touched && (values?.[ERROR]?.[field.id] ?? field.error)) ?? false;
9
8
  const value = values?.[field.path ?? field.id];
10
9
  return (field.input ?? text)({
11
10
  ...thru,
@@ -23,7 +22,7 @@ export const renderStyles = ({ fields, selector = '', }) => (fields ?? [])
23
22
  .join(';')} }`
24
23
  : '')
25
24
  .join('\n');
26
- export const renderHeaders = ({ fields }) => repeat(fields ?? [], ({ id }) => id, (field) => {
25
+ export const renderHeaders = ({ fields, }) => repeat(fields ?? [], ({ id }) => id, (field) => {
27
26
  const text = invoke(field.header ?? field.label, undefined, {}, field);
28
27
  return html `<div class="header" name="${field.id}" title="${text}">
29
28
  ${text}
@@ -5,16 +5,20 @@ type Item = Partial<{
5
5
  [key]: unknown;
6
6
  }>;
7
7
  export declare const renderRemove: (remove: () => void) => TemplateResult<1>;
8
- interface RenderOpts<T extends Item> {
9
- fields: Fields<T>;
8
+ interface RenderOpts<T extends Item, C extends object = object> {
9
+ fields: Fields<T, C>;
10
+ context?: C;
11
+ touched?: boolean;
10
12
  remove?: (index: number) => void;
11
13
  update: (index: number, update: Partial<T>) => void;
12
14
  }
13
- export declare const renderItem: <T extends Item>(values: T, index: number, { update, remove, fields, ...thru }: RenderOpts<T>) => TemplateResult;
15
+ export declare const renderItem: <T extends Item, C extends object = object>(values: T, index: number, { update, remove, fields, context, touched, ...thru }: RenderOpts<T, C>) => TemplateResult;
14
16
  declare const defaultKeyFunction: <V>(item: V) => V;
15
- export interface RenderItems<T extends object> {
17
+ export interface RenderItems<T extends object, C extends object = object> {
16
18
  items: T[];
17
- fields: Fields<T>;
19
+ fields: Fields<T, C>;
20
+ context?: C;
21
+ touched?: boolean;
18
22
  paste?: (e: ClipboardEvent) => void;
19
23
  renderItem?: typeof renderItem;
20
24
  defaults?: T;
@@ -24,9 +28,9 @@ export interface RenderItems<T extends object> {
24
28
  scroller?: boolean;
25
29
  style?: string;
26
30
  }
27
- export declare const renderItems: <T extends object>({ items, fields, renderItem: render, paste, defaults, keyFunction, scroller, update, style, ...thru }: RenderItems<T>) => TemplateResult<1>;
28
- export declare const renderItemsStyles: <T extends object>({ fields, }: {
29
- fields: Fields<T>;
31
+ export declare const renderItems: <T extends object, C extends object = object>({ items, fields, renderItem: render, paste, defaults, keyFunction, scroller, update, style, ...thru }: RenderItems<T, C>) => TemplateResult<1>;
32
+ export declare const renderItemsStyles: <T extends object, C extends object = object>({ fields, }: {
33
+ fields: Fields<T, C>;
30
34
  }) => string;
31
35
  export {};
32
36
  //# sourceMappingURL=items.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/render/items.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAQ,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAMlC,QAAA,MAAM,GAAG,eAAgB,CAAC;AAC1B,KAAK,IAAI,GAAG,OAAO,CAAC;IAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAOxC,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,IAAI,sBAGpC,CAAC;AAEZ,UAAU,UAAU,CAAC,CAAC,SAAS,IAAI;IAClC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACpD;AACD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,IAAI,EACxC,QAAQ,CAAC,EACT,OAAO,MAAM,EACb,qCAAqC,UAAU,CAAC,CAAC,CAAC,KAChD,cAsBK,CAAC;AAET,QAAA,MAAM,kBAAkB,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,CACH,CAAC;AAEvC,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM;IAC5C,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACxC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,uGAW3C,WAAW,CAAC,CAAC,CAAC,sBAmCT,CAAC;AAET,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,EAAE,aAEjD;IACF,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;CAClB,WAGA,CAAC"}
1
+ {"version":3,"file":"items.d.ts","sourceRoot":"","sources":["../../src/render/items.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,cAAc,EAAQ,MAAM,UAAU,CAAC;AAEhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,QAAA,MAAM,GAAG,eAAgB,CAAC;AAC1B,KAAK,IAAI,GAAG,OAAO,CAAC;IAAE,CAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,CAAC;AAOxC,eAAO,MAAM,YAAY,GAAI,QAAQ,MAAM,IAAI,sBAGpC,CAAC;AAEZ,UAAU,UAAU,CAAC,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IAC7D,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;CACpD;AACD,eAAO,MAAM,UAAU,GAAI,CAAC,SAAS,IAAI,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EACnE,QAAQ,CAAC,EACT,OAAO,MAAM,EACb,uDAOG,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,KACjB,cAuBK,CAAC;AAET,QAAA,MAAM,kBAAkB,GAAI,CAAC,EAAE,MAAM,CAAC,KAAG,CACH,CAAC;AAEvC,MAAM,WAAW,WAAW,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM;IACvE,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,CAAC;IACZ,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,CAAC,CAAC,EAAE,cAAc,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,OAAO,UAAU,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,CAAC;IACb,WAAW,CAAC,EAAE,OAAO,kBAAkB,CAAC;IACxC,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IACnD,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CACf;AAED,eAAO,MAAM,WAAW,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,uGAWtE,WAAW,CAAC,CAAC,EAAE,CAAC,CAAC,sBAmCZ,CAAC;AAET,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,aAE5E;IACF,MAAM,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;CACrB,WAGA,CAAC"}