@piying/view-svelte 2.4.6 → 2.5.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.
@@ -9,7 +9,7 @@
9
9
  const props: {
10
10
  field: PiResolvedViewFieldConfig;
11
11
  } = $props();
12
- const injector = getContext<Injector>(InjectorToken)!;
12
+ const injector = getContext<() => Injector>(InjectorToken)!;
13
13
  const fieldInputs = signalToState(() => {
14
14
  return {
15
15
  ...props.field.attributes(),
@@ -24,7 +24,7 @@
24
24
  $effect.pre(() => {
25
25
  let dispose: (() => any) | undefined;
26
26
  if (controlRef?.cva) {
27
- dispose = createViewControlLink((() => control) as any, controlRef?.cva, injector);
27
+ dispose = createViewControlLink((() => control) as any, controlRef?.cva, injector());
28
28
  }
29
29
  return () => {
30
30
  dispose?.();
@@ -10,8 +10,14 @@
10
10
  type EffectRef
11
11
  } from 'static-injector';
12
12
  import type { Injector } from 'static-injector';
13
- import { setContext } from 'svelte';
14
- import { InjectorToken, PI_INPUT_MODEL_TOKEN, PI_INPUT_OPTIONS_TOKEN, PI_INPUT_SCHEMA_TOKEN } from '../token';
13
+ import { getContext, setContext } from 'svelte';
14
+ import {
15
+ InjectorToken,
16
+ PI_INPUT_MODEL_TOKEN,
17
+ PI_INPUT_OPTIONS_TOKEN,
18
+ PI_INPUT_SCHEMA_TOKEN,
19
+ PI_VIEW_FIELD_TOKEN
20
+ } from '../token';
15
21
  import { SvelteSchemaHandle } from '../svelte-schema';
16
22
  import { SvelteFormBuilder } from '../builder';
17
23
  import FieldTemplate from './field-template.svelte';
@@ -20,18 +26,25 @@
20
26
  schema: v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>;
21
27
  model?: any;
22
28
  modelChange?: (value: any) => void;
23
- options: any;
29
+ options: { injector?: Injector; builder?: any; [name: string]: any };
24
30
  } = $props();
25
-
26
- const rootInjector = createRootInjector({
27
- providers: [
28
- {
29
- provide: ChangeDetectionScheduler,
30
- useClass: ChangeDetectionSchedulerImpl
31
- }
32
- ]
31
+ const maybeParentField = getContext<PI_VIEW_FIELD_TOKEN>(PI_VIEW_FIELD_TOKEN);
32
+ const rootInjector = $derived.by(() => {
33
+ return (
34
+ inputs.options.injector ??
35
+ maybeParentField?.().injector ??
36
+ createRootInjector({
37
+ providers: [
38
+ {
39
+ provide: ChangeDetectionScheduler,
40
+ useClass: ChangeDetectionSchedulerImpl
41
+ }
42
+ ]
43
+ })
44
+ );
33
45
  });
34
- setContext(InjectorToken, rootInjector);
46
+
47
+ setContext(InjectorToken, () => rootInjector);
35
48
  setContext(PI_INPUT_OPTIONS_TOKEN, () => inputs.options);
36
49
  setContext(PI_INPUT_SCHEMA_TOKEN, () => inputs.schema);
37
50
  setContext(PI_INPUT_MODEL_TOKEN, () => inputs.model);
@@ -45,10 +58,10 @@
45
58
  injectorDispose = undefined;
46
59
  };
47
60
  const field = convert(inputs.schema as any, {
61
+ ...inputs.options,
48
62
  handle: SvelteSchemaHandle as any,
49
63
  builder: SvelteFormBuilder,
50
- injector: subInjector,
51
- ...inputs.options
64
+ injector: subInjector
52
65
  });
53
66
  return [field, subInjector];
54
67
  });
@@ -1,9 +1,14 @@
1
1
  import * as v from 'valibot';
2
+ import type { Injector } from 'static-injector';
2
3
  type $$ComponentProps = {
3
4
  schema: v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>;
4
5
  model?: any;
5
6
  modelChange?: (value: any) => void;
6
- options: any;
7
+ options: {
8
+ injector?: Injector;
9
+ builder?: any;
10
+ [name: string]: any;
11
+ };
7
12
  };
8
13
  declare const PiyingView: import("svelte").Component<$$ComponentProps, {}, "">;
9
14
  type PiyingView = ReturnType<typeof PiyingView>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@piying/view-svelte",
3
- "version": "2.4.6",
3
+ "version": "2.5.1",
4
4
  "description": "Piying view For Svelte;Valibot to Component",
5
5
  "type": "module",
6
6
  "homepage": "https://piying-org.github.io/website/docs/client/intro",
@@ -34,7 +34,7 @@
34
34
  ],
35
35
  "license": "MIT",
36
36
  "dependencies": {
37
- "@piying/view-core": "^2.4.6",
37
+ "@piying/view-core": "^2.5.1",
38
38
  "static-injector": "^6.1.2"
39
39
  },
40
40
  "sideEffects": false,
@@ -11,11 +11,11 @@ export function signalToState(value) {
11
11
  if (!Object.is(dataRef, currentValue)) {
12
12
  dataRef = currentValue;
13
13
  }
14
- }, { injector: injector });
14
+ }, { injector: injector() });
15
15
  return () => {
16
16
  ref.destroy();
17
17
  };
18
18
  });
19
19
  return () => dataRef;
20
20
  }
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLWNvbnZlcnQuc3ZlbHRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2lnbmFsLWNvbnZlcnQuc3ZlbHRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBDLE1BQU0sVUFBVSxhQUFhLENBQUksS0FBMEI7SUFDMUQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFXLGFBQWEsQ0FBRSxDQUFDO0lBQ3RELElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQWdCLFNBQWdCLENBQUMsQ0FBQztJQUMxRCxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtRQUNoQixPQUFPLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDbEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUNqQixHQUFHLEVBQUU7WUFDSixNQUFNLFlBQVksR0FBRyxLQUFLLEVBQUUsQ0FBQztZQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQztnQkFDdkMsT0FBTyxHQUFHLFlBQVksQ0FBQztZQUN4QixDQUFDO1FBQ0YsQ0FBQyxFQUNELEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUN0QixDQUFDO1FBQ0YsT0FBTyxHQUFHLEVBQUU7WUFDWCxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixDQUFDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO0FBQ3RCLENBQUMifQ==
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lnbmFsLWNvbnZlcnQuc3ZlbHRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2lnbmFsLWNvbnZlcnQuc3ZlbHRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRXBDLE1BQU0sVUFBVSxhQUFhLENBQUksS0FBMEI7SUFDMUQsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFpQixhQUFhLENBQUUsQ0FBQztJQUM1RCxJQUFJLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFnQixTQUFnQixDQUFDLENBQUM7SUFDMUQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUU7UUFDaEIsT0FBTyxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQ2xCLE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FDakIsR0FBRyxFQUFFO1lBQ0osTUFBTSxZQUFZLEdBQUcsS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxFQUFFLFlBQVksQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZDLE9BQU8sR0FBRyxZQUFZLENBQUM7WUFDeEIsQ0FBQztRQUNGLENBQUMsRUFDRCxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsRUFBRSxDQUN4QixDQUFDO1FBQ0YsT0FBTyxHQUFHLEVBQUU7WUFDWCxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDZixDQUFDLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQztJQUNILE9BQU8sR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO0FBQ3RCLENBQUMifQ==