@piying/view-solid 2.1.6 → 2.2.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.
- package/index.cjs +1 -1
- package/index.cjs.map +1 -1
- package/index.js +1 -1
- package/index.js.map +1 -1
- package/package.json +2 -2
package/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@ const viewCore = require("@piying/view-core");
|
|
|
6
6
|
require("valibot");
|
|
7
7
|
const PI_VIEW_FIELD_TOKEN = solidJs.createContext(void 0);
|
|
8
8
|
const InjectorToken = solidJs.createContext(void 0);
|
|
9
|
-
const CVA = Symbol.for("ControlValueAccessor");
|
|
9
|
+
const CVA = /* @__PURE__ */ Symbol.for("ControlValueAccessor");
|
|
10
10
|
function createSignalConvert(value) {
|
|
11
11
|
const injector = solidJs.useContext(InjectorToken);
|
|
12
12
|
const [result, setResult] = solidJs.createSignal(value());
|
package/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../../packages/solid/src/token.ts","../../packages/solid/src/util/signal-convert.ts","../../packages/solid/src/component/wrapper.tsx","../../packages/solid/src/component/field-template.tsx","../../packages/solid/src/util/use-control-value-accessor.ts","../../packages/solid/src/util/use-effect-sync.ts","../../packages/solid/src/component/group.tsx","../../packages/solid/src/schema-handle.ts","../../packages/solid/src/builder.ts","../../packages/solid/src/component/view.tsx","../../packages/solid/src/use-model/use-text-model.ts","../../packages/solid/src/use-model/use-checkbox-model.ts","../../packages/solid/src/use-model/use-number-model.ts","../../packages/solid/src/use-model/use-radio-model.ts","../../packages/solid/src/use-model/use-range-model.ts","../../packages/solid/src/use-model/use-select-model.ts"],"sourcesContent":["import type { Injector } from 'static-injector';\nimport type { PiResolvedViewFieldConfig } from './type/group';\nimport { createContext } from 'solid-js';\n\nexport const PI_VIEW_FIELD_TOKEN = createContext<\n PiResolvedViewFieldConfig | undefined\n>(undefined);\nexport const InjectorToken = createContext<Injector | undefined>(undefined);\n\nexport const CVA = Symbol.for('ControlValueAccessor');\n","import { effect } from 'static-injector';\n\nimport { InjectorToken } from '../token';\nimport { useContext, createEffect, createSignal, onCleanup } from 'solid-js';\n\n// signal=>ref\nexport function createSignalConvert<T>(value: () => T) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const injector = useContext(InjectorToken)!;\n const [result, setResult] = createSignal(value());\n createEffect(() => {\n setResult(() => value());\n const ref = effect(\n () => {\n const currentValue = value();\n if (!Object.is(result(), currentValue)) {\n setResult(() => currentValue!);\n }\n },\n { injector: injector },\n );\n onCleanup(() => {\n ref.destroy();\n });\n });\n return result;\n}\n","import type { CoreWrapperConfig } from '@piying/view-core';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { createMemo, Show } from 'solid-js';\n\nexport interface PiyingWrapperProps {\n wrappers: CoreWrapperConfig[];\n children: any;\n}\n\nexport function PiyingWrapper(props: PiyingWrapperProps) {\n const wrapper = createMemo(() => props.wrappers[0]);\n const restWrappers = createMemo(() => props.wrappers?.slice(1));\n const inputs = createSignalConvert(() => ({\n ...wrapper()?.inputs(),\n ...wrapper()?.attributes(),\n ...wrapper()?.outputs?.(),\n }));\n return (\n <Show\n when={createMemo(() => wrapper()?.type)()}\n fallback={props.children}\n keyed\n >\n {(WrapperType) => {\n return (\n <WrapperType {...inputs()}>\n <PiyingWrapper wrappers={restWrappers()}>\n {props.children}\n </PiyingWrapper>\n </WrapperType>\n );\n }}\n </Show>\n );\n}\n","import {\n createEffect,\n createMemo,\n createSignal,\n Show,\n useContext,\n} from 'solid-js';\nimport type { PiResolvedViewFieldConfig } from '../type';\nimport { CVA, InjectorToken, PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { PiyingWrapper } from './wrapper';\nimport {\n createViewControlLink,\n type ControlValueAccessor,\n} from '@piying/view-core';\nexport interface PiyingFieldTemplateProps {\n field: PiResolvedViewFieldConfig;\n}\n\nexport function PiyingFieldTemplate(props: PiyingFieldTemplateProps) {\n const fieldInputs = createSignalConvert(() => ({\n ...props.field.attributes(),\n ...props.field.inputs(),\n ...props.field.outputs(),\n }));\n const renderConfig = createSignalConvert(() => props.field.renderConfig());\n const wrappers = createSignalConvert(() => props.field.wrappers());\n const define = createSignalConvert(() => props.field.define?.());\n const control = createMemo(() => props.field.form.control);\n const ComponentType$$ = createMemo(() => define()?.type);\n const isHidden = createMemo(() => {\n return !!renderConfig().hidden || !ComponentType$$();\n });\n const injector = useContext(InjectorToken)!;\n\n const [controlRef, setControlRef] = createSignal<\n ControlValueAccessor | undefined\n >(undefined);\n const fieldControlInput = createMemo(\n () =>\n ({\n ...fieldInputs(),\n [CVA]: setControlRef,\n }) as Record<any, any>,\n );\n\n createEffect(() => {\n let dispose: (() => any) | undefined;\n if (controlRef()) {\n dispose = createViewControlLink(control as any, controlRef()!, injector);\n }\n return () => {\n dispose?.();\n dispose = undefined;\n };\n });\n\n return (\n <>\n <PI_VIEW_FIELD_TOKEN.Provider value={props.field}>\n <Show when={!isHidden()}>\n <PiyingWrapper wrappers={wrappers()}>\n <Show when={ComponentType$$()} keyed>\n {(ComponentType) => (\n <Show\n when={props.field.form.control}\n fallback={<ComponentType {...fieldInputs()}></ComponentType>}\n >\n <ComponentType {...fieldControlInput()}></ComponentType>\n </Show>\n )}\n </Show>\n </PiyingWrapper>\n </Show>\n </PI_VIEW_FIELD_TOKEN.Provider>\n </>\n );\n}\n","import type { ControlValueAccessor } from '@piying/view-core';\nimport { createSignal, type Accessor } from 'solid-js';\n\nexport function useControlValueAccessor() {\n const [value, setValue] = createSignal<any>(undefined);\n const [disabled, setDisabled] = createSignal(false);\n const [onChange, setOnChange] = createSignal<\n ((input: any) => void) | undefined\n >(undefined);\n const [touched, setTouched] = createSignal<(() => void) | undefined>(\n undefined,\n );\n const cva: ControlValueAccessor = {\n writeValue(obj) {\n setValue(obj);\n },\n registerOnChange(fn) {\n setOnChange(() => fn);\n },\n registerOnTouched(fn) {\n setTouched(() => fn);\n },\n setDisabledState(value) {\n setDisabled(value);\n },\n };\n\n return {\n cva: cva,\n cvaa: {\n value: value,\n disabled: disabled,\n valueChange: (value: any) => {\n onChange()?.(value);\n setValue(value);\n },\n touchedChange: () => {\n touched()?.();\n },\n } as ControlValueAccessorAdapter,\n };\n}\n\nexport type ControlValueAccessorAdapter = {\n value: Accessor<any>;\n disabled: Accessor<boolean>;\n touchedChange: () => void;\n valueChange: (value: any) => void;\n};\n","import { createEffect, createMemo, onCleanup } from 'solid-js';\n\nexport function useEffectSync(fn: () => (() => void) | void) {\n let dispose: any = undefined;\n\n createMemo(() => {\n dispose = fn();\n });\n createEffect(() => {\n onCleanup(() => {\n dispose?.();\n dispose = undefined;\n });\n });\n}\n","import { For, useContext } from 'solid-js';\nimport { PiyingFieldTemplate } from './field-template';\nimport { PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util';\n\nexport function PiyingGroup() {\n const field = useContext(PI_VIEW_FIELD_TOKEN);\n const children = createSignalConvert(() => field?.children!())!;\n return (\n <For each={children()}>\n {(field) => {\n return <PiyingFieldTemplate field={field}></PiyingFieldTemplate>;\n }}\n </For>\n );\n}\n","import { CoreSchemaHandle } from '@piying/view-core';\nimport type { PiResolvedViewFieldConfig } from './type/group';\n\nexport class SolidSchemaHandle extends CoreSchemaHandle<\n SolidSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type: any;\n}\n","import { FormBuilder } from '@piying/view-core';\nimport type { SolidSchemaHandle } from './schema-handle';\n\nexport class SolidFormBuilder extends FormBuilder<SolidSchemaHandle> {}\n","import {\n ChangeDetectionScheduler,\n ChangeDetectionSchedulerImpl,\n createInjector,\n createRootInjector,\n DestroyRef,\n Injector,\n untracked,\n type EffectRef,\n} from 'static-injector';\nimport * as v from 'valibot';\nimport { InjectorToken } from '../token';\nimport { PiyingFieldTemplate } from './field-template';\nimport { convert, initListen } from '@piying/view-core';\nimport { SolidSchemaHandle } from '../schema-handle';\nimport { SolidFormBuilder } from '../builder';\nimport { createMemo, onCleanup } from 'solid-js';\nimport { useEffectSync } from '../util';\nexport interface PiyingViewProps {\n schema: v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>;\n model?: any;\n modelChange?: (value: any) => void;\n options: any;\n}\nexport function PiyingView(props: PiyingViewProps) {\n const rootInjector = createRootInjector({\n providers: [\n {\n provide: ChangeDetectionScheduler,\n useClass: ChangeDetectionSchedulerImpl,\n },\n ],\n });\n let injectorDispose: (() => any) | undefined;\n\n const initResult = createMemo(() => {\n const subInjector = createInjector({ providers: [], parent: rootInjector });\n injectorDispose = () => {\n subInjector.destroy();\n injectorDispose = undefined;\n };\n const field = convert(props.schema as any, {\n handle: SolidSchemaHandle as any,\n builder: SolidFormBuilder,\n injector: subInjector,\n registerOnDestroy: (fn) => {\n subInjector!.get(DestroyRef).onDestroy(fn);\n },\n ...props.options,\n });\n return [field, subInjector] as const;\n });\n\n onCleanup(() => {\n injectorDispose?.();\n });\n\n const field = createMemo(() => {\n return initResult()[0];\n });\n useEffectSync(() => {\n let ref: EffectRef | undefined;\n const [field, subInjector] = initResult();\n if (field.form.control) {\n ref = initListen(\n props.model,\n field!.form.control!,\n subInjector as Injector,\n (value) => {\n untracked(() => {\n if (field!.form.control?.valueNoError$$()) {\n props.modelChange?.(value);\n }\n });\n },\n );\n field.form.control.updateValue(props.model);\n }\n return () => {\n ref?.destroy();\n };\n });\n\n return (\n <>\n <InjectorToken.Provider value={rootInjector}>\n <PiyingFieldTemplate field={field()}></PiyingFieldTemplate>\n </InjectorToken.Provider>\n </>\n );\n}\n","import { createMemo, createSignal } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputTextModel(\n cvaa: ControlValueAccessorAdapter,\n compositionMode: () => boolean,\n) {\n const [composing, setComposing] = createSignal(false);\n return createMemo(() => {\n const obj = {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n if (!compositionMode() || (compositionMode() && !composing())) {\n cvaa.valueChange((event.target as any).value);\n }\n },\n };\n if (compositionMode()) {\n return {\n ...obj,\n onCompositionStart: () => {\n setComposing(true);\n },\n onCompositionEnd: (event: any) => {\n setComposing(false);\n cvaa.valueChange((event.target as any).value);\n },\n };\n }\n return obj;\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputCheckboxModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => ({\n checked: cvaa.value() ?? false,\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLInputElement;\n },\n ) => cvaa.valueChange(event.target.checked),\n }));\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputNumberModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n },\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRadioModel(\n cvaa: ControlValueAccessorAdapter,\n value: any,\n) {\n return createMemo(() => {\n return {\n value,\n checked: Object.is(cvaa.value(), value),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: () => cvaa.valueChange(value),\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRangeModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n const onInput = (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n };\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: onInput,\n onChange: onInput,\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useSelectModel(\n cvaa: ControlValueAccessorAdapter,\n multiple: boolean = false,\n) {\n return createMemo(() => {\n return {\n value: cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLSelectElement;\n },\n ) => {\n const selected = [];\n const el = event.target;\n if (el.selectedOptions !== undefined) {\n for (let index = 0; index < el.selectedOptions.length; index++) {\n const item = el.selectedOptions[index];\n selected.push(item.value);\n if (!multiple) {\n break;\n }\n }\n } else {\n for (let index = 0; index < el.options.length; index++) {\n const option = el.options[index];\n if (option.selected) {\n selected.push(option.value);\n if (!multiple) {\n break;\n }\n }\n }\n }\n cvaa.valueChange(multiple ? selected : selected[0]);\n },\n };\n });\n}\n"],"names":["createContext","useContext","createSignal","createEffect","effect","onCleanup","PiyingWrapper","props","wrapper","createMemo","wrappers","restWrappers","slice","inputs","createSignalConvert","attributes","outputs","_$createComponent","Show","when","type","fallback","children","keyed","WrapperType","_$mergeProps","PiyingFieldTemplate","fieldInputs","field","renderConfig","define","control","form","ComponentType$$","isHidden","hidden","injector","InjectorToken","controlRef","setControlRef","undefined","fieldControlInput","CVA","dispose","createViewControlLink","PI_VIEW_FIELD_TOKEN","Provider","value","ComponentType","PiyingGroup","For","each","CoreSchemaHandle","FormBuilder","PiyingView","rootInjector","createRootInjector","providers","provide","ChangeDetectionScheduler","useClass","ChangeDetectionSchedulerImpl","injectorDispose","initResult","subInjector","createInjector","parent","destroy","convert","schema","handle","SolidSchemaHandle","builder","SolidFormBuilder","registerOnDestroy","fn","get","DestroyRef","onDestroy","options","useEffectSync","ref","initListen","model","untracked","valueNoError$$","modelChange","updateValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../../packages/solid/src/token.ts","../../packages/solid/src/util/signal-convert.ts","../../packages/solid/src/component/wrapper.tsx","../../packages/solid/src/component/field-template.tsx","../../packages/solid/src/util/use-control-value-accessor.ts","../../packages/solid/src/util/use-effect-sync.ts","../../packages/solid/src/component/group.tsx","../../packages/solid/src/schema-handle.ts","../../packages/solid/src/builder.ts","../../packages/solid/src/component/view.tsx","../../packages/solid/src/use-model/use-text-model.ts","../../packages/solid/src/use-model/use-checkbox-model.ts","../../packages/solid/src/use-model/use-number-model.ts","../../packages/solid/src/use-model/use-radio-model.ts","../../packages/solid/src/use-model/use-range-model.ts","../../packages/solid/src/use-model/use-select-model.ts"],"sourcesContent":["import type { Injector } from 'static-injector';\nimport type { PiResolvedViewFieldConfig } from './type/group';\nimport { createContext } from 'solid-js';\n\nexport const PI_VIEW_FIELD_TOKEN = createContext<\n PiResolvedViewFieldConfig | undefined\n>(undefined);\nexport const InjectorToken = createContext<Injector | undefined>(undefined);\n\nexport const CVA = Symbol.for('ControlValueAccessor');\n","import { effect } from 'static-injector';\n\nimport { InjectorToken } from '../token';\nimport { useContext, createEffect, createSignal, onCleanup } from 'solid-js';\n\n// signal=>ref\nexport function createSignalConvert<T>(value: () => T) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const injector = useContext(InjectorToken)!;\n const [result, setResult] = createSignal(value());\n createEffect(() => {\n setResult(() => value());\n const ref = effect(\n () => {\n const currentValue = value();\n if (!Object.is(result(), currentValue)) {\n setResult(() => currentValue!);\n }\n },\n { injector: injector },\n );\n onCleanup(() => {\n ref.destroy();\n });\n });\n return result;\n}\n","import type { CoreWrapperConfig } from '@piying/view-core';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { createMemo, Show } from 'solid-js';\n\nexport interface PiyingWrapperProps {\n wrappers: CoreWrapperConfig[];\n children: any;\n}\n\nexport function PiyingWrapper(props: PiyingWrapperProps) {\n const wrapper = createMemo(() => props.wrappers[0]);\n const restWrappers = createMemo(() => props.wrappers?.slice(1));\n const inputs = createSignalConvert(() => ({\n ...wrapper()?.inputs(),\n ...wrapper()?.attributes(),\n ...wrapper()?.outputs?.(),\n }));\n return (\n <Show\n when={createMemo(() => wrapper()?.type)()}\n fallback={props.children}\n keyed\n >\n {(WrapperType) => {\n return (\n <WrapperType {...inputs()}>\n <PiyingWrapper wrappers={restWrappers()}>\n {props.children}\n </PiyingWrapper>\n </WrapperType>\n );\n }}\n </Show>\n );\n}\n","import {\n createEffect,\n createMemo,\n createSignal,\n Show,\n useContext,\n} from 'solid-js';\nimport type { PiResolvedViewFieldConfig } from '../type';\nimport { CVA, InjectorToken, PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { PiyingWrapper } from './wrapper';\nimport {\n createViewControlLink,\n type ControlValueAccessor,\n} from '@piying/view-core';\nexport interface PiyingFieldTemplateProps {\n field: PiResolvedViewFieldConfig;\n}\n\nexport function PiyingFieldTemplate(props: PiyingFieldTemplateProps) {\n const fieldInputs = createSignalConvert(() => ({\n ...props.field.attributes(),\n ...props.field.inputs(),\n ...props.field.outputs(),\n }));\n const renderConfig = createSignalConvert(() => props.field.renderConfig());\n const wrappers = createSignalConvert(() => props.field.wrappers());\n const define = createSignalConvert(() => props.field.define?.());\n const control = createMemo(() => props.field.form.control);\n const ComponentType$$ = createMemo(() => define()?.type);\n const isHidden = createMemo(() => {\n return !!renderConfig().hidden || !ComponentType$$();\n });\n const injector = useContext(InjectorToken)!;\n\n const [controlRef, setControlRef] = createSignal<\n ControlValueAccessor | undefined\n >(undefined);\n const fieldControlInput = createMemo(\n () =>\n ({\n ...fieldInputs(),\n [CVA]: setControlRef,\n }) as Record<any, any>,\n );\n\n createEffect(() => {\n let dispose: (() => any) | undefined;\n if (controlRef()) {\n dispose = createViewControlLink(control as any, controlRef()!, injector);\n }\n return () => {\n dispose?.();\n dispose = undefined;\n };\n });\n\n return (\n <>\n <PI_VIEW_FIELD_TOKEN.Provider value={props.field}>\n <Show when={!isHidden()}>\n <PiyingWrapper wrappers={wrappers()}>\n <Show when={ComponentType$$()} keyed>\n {(ComponentType) => (\n <Show\n when={props.field.form.control}\n fallback={<ComponentType {...fieldInputs()}></ComponentType>}\n >\n <ComponentType {...fieldControlInput()}></ComponentType>\n </Show>\n )}\n </Show>\n </PiyingWrapper>\n </Show>\n </PI_VIEW_FIELD_TOKEN.Provider>\n </>\n );\n}\n","import type { ControlValueAccessor } from '@piying/view-core';\nimport { createSignal, type Accessor } from 'solid-js';\n\nexport function useControlValueAccessor() {\n const [value, setValue] = createSignal<any>(undefined);\n const [disabled, setDisabled] = createSignal(false);\n const [onChange, setOnChange] = createSignal<\n ((input: any) => void) | undefined\n >(undefined);\n const [touched, setTouched] = createSignal<(() => void) | undefined>(\n undefined,\n );\n const cva: ControlValueAccessor = {\n writeValue(obj) {\n setValue(obj);\n },\n registerOnChange(fn) {\n setOnChange(() => fn);\n },\n registerOnTouched(fn) {\n setTouched(() => fn);\n },\n setDisabledState(value) {\n setDisabled(value);\n },\n };\n\n return {\n cva: cva,\n cvaa: {\n value: value,\n disabled: disabled,\n valueChange: (value: any) => {\n onChange()?.(value);\n setValue(value);\n },\n touchedChange: () => {\n touched()?.();\n },\n } as ControlValueAccessorAdapter,\n };\n}\n\nexport type ControlValueAccessorAdapter = {\n value: Accessor<any>;\n disabled: Accessor<boolean>;\n touchedChange: () => void;\n valueChange: (value: any) => void;\n};\n","import { createEffect, createMemo, onCleanup } from 'solid-js';\n\nexport function useEffectSync(fn: () => (() => void) | void) {\n let dispose: any = undefined;\n\n createMemo(() => {\n dispose = fn();\n });\n createEffect(() => {\n onCleanup(() => {\n dispose?.();\n dispose = undefined;\n });\n });\n}\n","import { For, useContext } from 'solid-js';\nimport { PiyingFieldTemplate } from './field-template';\nimport { PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util';\n\nexport function PiyingGroup() {\n const field = useContext(PI_VIEW_FIELD_TOKEN);\n const children = createSignalConvert(() => field?.children!())!;\n return (\n <For each={children()}>\n {(field) => {\n return <PiyingFieldTemplate field={field}></PiyingFieldTemplate>;\n }}\n </For>\n );\n}\n","import { CoreSchemaHandle } from '@piying/view-core';\nimport type { PiResolvedViewFieldConfig } from './type/group';\n\nexport class SolidSchemaHandle extends CoreSchemaHandle<\n SolidSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type: any;\n}\n","import { FormBuilder } from '@piying/view-core';\nimport type { SolidSchemaHandle } from './schema-handle';\n\nexport class SolidFormBuilder extends FormBuilder<SolidSchemaHandle> {}\n","import {\n ChangeDetectionScheduler,\n ChangeDetectionSchedulerImpl,\n createInjector,\n createRootInjector,\n DestroyRef,\n Injector,\n untracked,\n type EffectRef,\n} from 'static-injector';\nimport * as v from 'valibot';\nimport { InjectorToken } from '../token';\nimport { PiyingFieldTemplate } from './field-template';\nimport { convert, initListen } from '@piying/view-core';\nimport { SolidSchemaHandle } from '../schema-handle';\nimport { SolidFormBuilder } from '../builder';\nimport { createMemo, onCleanup } from 'solid-js';\nimport { useEffectSync } from '../util';\nexport interface PiyingViewProps {\n schema: v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>;\n model?: any;\n modelChange?: (value: any) => void;\n options: any;\n}\nexport function PiyingView(props: PiyingViewProps) {\n const rootInjector = createRootInjector({\n providers: [\n {\n provide: ChangeDetectionScheduler,\n useClass: ChangeDetectionSchedulerImpl,\n },\n ],\n });\n let injectorDispose: (() => any) | undefined;\n\n const initResult = createMemo(() => {\n const subInjector = createInjector({ providers: [], parent: rootInjector });\n injectorDispose = () => {\n subInjector.destroy();\n injectorDispose = undefined;\n };\n const field = convert(props.schema as any, {\n handle: SolidSchemaHandle as any,\n builder: SolidFormBuilder,\n injector: subInjector,\n registerOnDestroy: (fn) => {\n subInjector!.get(DestroyRef).onDestroy(fn);\n },\n ...props.options,\n });\n return [field, subInjector] as const;\n });\n\n onCleanup(() => {\n injectorDispose?.();\n });\n\n const field = createMemo(() => {\n return initResult()[0];\n });\n useEffectSync(() => {\n let ref: EffectRef | undefined;\n const [field, subInjector] = initResult();\n if (field.form.control) {\n ref = initListen(\n props.model,\n field!.form.control!,\n subInjector as Injector,\n (value) => {\n untracked(() => {\n if (field!.form.control?.valueNoError$$()) {\n props.modelChange?.(value);\n }\n });\n },\n );\n field.form.control.updateValue(props.model);\n }\n return () => {\n ref?.destroy();\n };\n });\n\n return (\n <>\n <InjectorToken.Provider value={rootInjector}>\n <PiyingFieldTemplate field={field()}></PiyingFieldTemplate>\n </InjectorToken.Provider>\n </>\n );\n}\n","import { createMemo, createSignal } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputTextModel(\n cvaa: ControlValueAccessorAdapter,\n compositionMode: () => boolean,\n) {\n const [composing, setComposing] = createSignal(false);\n return createMemo(() => {\n const obj = {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n if (!compositionMode() || (compositionMode() && !composing())) {\n cvaa.valueChange((event.target as any).value);\n }\n },\n };\n if (compositionMode()) {\n return {\n ...obj,\n onCompositionStart: () => {\n setComposing(true);\n },\n onCompositionEnd: (event: any) => {\n setComposing(false);\n cvaa.valueChange((event.target as any).value);\n },\n };\n }\n return obj;\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputCheckboxModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => ({\n checked: cvaa.value() ?? false,\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLInputElement;\n },\n ) => cvaa.valueChange(event.target.checked),\n }));\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputNumberModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n },\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRadioModel(\n cvaa: ControlValueAccessorAdapter,\n value: any,\n) {\n return createMemo(() => {\n return {\n value,\n checked: Object.is(cvaa.value(), value),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: () => cvaa.valueChange(value),\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRangeModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n const onInput = (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n };\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: onInput,\n onChange: onInput,\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useSelectModel(\n cvaa: ControlValueAccessorAdapter,\n multiple: boolean = false,\n) {\n return createMemo(() => {\n return {\n value: cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLSelectElement;\n },\n ) => {\n const selected = [];\n const el = event.target;\n if (el.selectedOptions !== undefined) {\n for (let index = 0; index < el.selectedOptions.length; index++) {\n const item = el.selectedOptions[index];\n selected.push(item.value);\n if (!multiple) {\n break;\n }\n }\n } else {\n for (let index = 0; index < el.options.length; index++) {\n const option = el.options[index];\n if (option.selected) {\n selected.push(option.value);\n if (!multiple) {\n break;\n }\n }\n }\n }\n cvaa.valueChange(multiple ? selected : selected[0]);\n },\n };\n });\n}\n"],"names":["createContext","useContext","createSignal","createEffect","effect","onCleanup","PiyingWrapper","props","wrapper","createMemo","wrappers","restWrappers","slice","inputs","createSignalConvert","attributes","outputs","_$createComponent","Show","when","type","fallback","children","keyed","WrapperType","_$mergeProps","PiyingFieldTemplate","fieldInputs","field","renderConfig","define","control","form","ComponentType$$","isHidden","hidden","injector","InjectorToken","controlRef","setControlRef","undefined","fieldControlInput","CVA","dispose","createViewControlLink","PI_VIEW_FIELD_TOKEN","Provider","value","ComponentType","PiyingGroup","For","each","CoreSchemaHandle","FormBuilder","PiyingView","rootInjector","createRootInjector","providers","provide","ChangeDetectionScheduler","useClass","ChangeDetectionSchedulerImpl","injectorDispose","initResult","subInjector","createInjector","parent","destroy","convert","schema","handle","SolidSchemaHandle","builder","SolidFormBuilder","registerOnDestroy","fn","get","DestroyRef","onDestroy","options","useEffectSync","ref","initListen","model","untracked","valueNoError$$","modelChange","updateValue"],"mappings":"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"}
|
package/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { createViewControlLink, CoreSchemaHandle, FormBuilder, convert, initList
|
|
|
4
4
|
import "valibot";
|
|
5
5
|
const PI_VIEW_FIELD_TOKEN = createContext(void 0);
|
|
6
6
|
const InjectorToken = createContext(void 0);
|
|
7
|
-
const CVA = Symbol.for("ControlValueAccessor");
|
|
7
|
+
const CVA = /* @__PURE__ */ Symbol.for("ControlValueAccessor");
|
|
8
8
|
function createSignalConvert(value) {
|
|
9
9
|
const injector = useContext(InjectorToken);
|
|
10
10
|
const [result, setResult] = createSignal(value());
|
package/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../packages/solid/src/token.ts","../../packages/solid/src/util/signal-convert.ts","../../packages/solid/src/component/wrapper.tsx","../../packages/solid/src/component/field-template.tsx","../../packages/solid/src/util/use-control-value-accessor.ts","../../packages/solid/src/util/use-effect-sync.ts","../../packages/solid/src/component/group.tsx","../../packages/solid/src/schema-handle.ts","../../packages/solid/src/builder.ts","../../packages/solid/src/component/view.tsx","../../packages/solid/src/use-model/use-text-model.ts","../../packages/solid/src/use-model/use-checkbox-model.ts","../../packages/solid/src/use-model/use-number-model.ts","../../packages/solid/src/use-model/use-radio-model.ts","../../packages/solid/src/use-model/use-range-model.ts","../../packages/solid/src/use-model/use-select-model.ts"],"sourcesContent":["import type { Injector } from 'static-injector';\nimport type { PiResolvedViewFieldConfig } from './type/group';\nimport { createContext } from 'solid-js';\n\nexport const PI_VIEW_FIELD_TOKEN = createContext<\n PiResolvedViewFieldConfig | undefined\n>(undefined);\nexport const InjectorToken = createContext<Injector | undefined>(undefined);\n\nexport const CVA = Symbol.for('ControlValueAccessor');\n","import { effect } from 'static-injector';\n\nimport { InjectorToken } from '../token';\nimport { useContext, createEffect, createSignal, onCleanup } from 'solid-js';\n\n// signal=>ref\nexport function createSignalConvert<T>(value: () => T) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const injector = useContext(InjectorToken)!;\n const [result, setResult] = createSignal(value());\n createEffect(() => {\n setResult(() => value());\n const ref = effect(\n () => {\n const currentValue = value();\n if (!Object.is(result(), currentValue)) {\n setResult(() => currentValue!);\n }\n },\n { injector: injector },\n );\n onCleanup(() => {\n ref.destroy();\n });\n });\n return result;\n}\n","import type { CoreWrapperConfig } from '@piying/view-core';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { createMemo, Show } from 'solid-js';\n\nexport interface PiyingWrapperProps {\n wrappers: CoreWrapperConfig[];\n children: any;\n}\n\nexport function PiyingWrapper(props: PiyingWrapperProps) {\n const wrapper = createMemo(() => props.wrappers[0]);\n const restWrappers = createMemo(() => props.wrappers?.slice(1));\n const inputs = createSignalConvert(() => ({\n ...wrapper()?.inputs(),\n ...wrapper()?.attributes(),\n ...wrapper()?.outputs?.(),\n }));\n return (\n <Show\n when={createMemo(() => wrapper()?.type)()}\n fallback={props.children}\n keyed\n >\n {(WrapperType) => {\n return (\n <WrapperType {...inputs()}>\n <PiyingWrapper wrappers={restWrappers()}>\n {props.children}\n </PiyingWrapper>\n </WrapperType>\n );\n }}\n </Show>\n );\n}\n","import {\n createEffect,\n createMemo,\n createSignal,\n Show,\n useContext,\n} from 'solid-js';\nimport type { PiResolvedViewFieldConfig } from '../type';\nimport { CVA, InjectorToken, PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { PiyingWrapper } from './wrapper';\nimport {\n createViewControlLink,\n type ControlValueAccessor,\n} from '@piying/view-core';\nexport interface PiyingFieldTemplateProps {\n field: PiResolvedViewFieldConfig;\n}\n\nexport function PiyingFieldTemplate(props: PiyingFieldTemplateProps) {\n const fieldInputs = createSignalConvert(() => ({\n ...props.field.attributes(),\n ...props.field.inputs(),\n ...props.field.outputs(),\n }));\n const renderConfig = createSignalConvert(() => props.field.renderConfig());\n const wrappers = createSignalConvert(() => props.field.wrappers());\n const define = createSignalConvert(() => props.field.define?.());\n const control = createMemo(() => props.field.form.control);\n const ComponentType$$ = createMemo(() => define()?.type);\n const isHidden = createMemo(() => {\n return !!renderConfig().hidden || !ComponentType$$();\n });\n const injector = useContext(InjectorToken)!;\n\n const [controlRef, setControlRef] = createSignal<\n ControlValueAccessor | undefined\n >(undefined);\n const fieldControlInput = createMemo(\n () =>\n ({\n ...fieldInputs(),\n [CVA]: setControlRef,\n }) as Record<any, any>,\n );\n\n createEffect(() => {\n let dispose: (() => any) | undefined;\n if (controlRef()) {\n dispose = createViewControlLink(control as any, controlRef()!, injector);\n }\n return () => {\n dispose?.();\n dispose = undefined;\n };\n });\n\n return (\n <>\n <PI_VIEW_FIELD_TOKEN.Provider value={props.field}>\n <Show when={!isHidden()}>\n <PiyingWrapper wrappers={wrappers()}>\n <Show when={ComponentType$$()} keyed>\n {(ComponentType) => (\n <Show\n when={props.field.form.control}\n fallback={<ComponentType {...fieldInputs()}></ComponentType>}\n >\n <ComponentType {...fieldControlInput()}></ComponentType>\n </Show>\n )}\n </Show>\n </PiyingWrapper>\n </Show>\n </PI_VIEW_FIELD_TOKEN.Provider>\n </>\n );\n}\n","import type { ControlValueAccessor } from '@piying/view-core';\nimport { createSignal, type Accessor } from 'solid-js';\n\nexport function useControlValueAccessor() {\n const [value, setValue] = createSignal<any>(undefined);\n const [disabled, setDisabled] = createSignal(false);\n const [onChange, setOnChange] = createSignal<\n ((input: any) => void) | undefined\n >(undefined);\n const [touched, setTouched] = createSignal<(() => void) | undefined>(\n undefined,\n );\n const cva: ControlValueAccessor = {\n writeValue(obj) {\n setValue(obj);\n },\n registerOnChange(fn) {\n setOnChange(() => fn);\n },\n registerOnTouched(fn) {\n setTouched(() => fn);\n },\n setDisabledState(value) {\n setDisabled(value);\n },\n };\n\n return {\n cva: cva,\n cvaa: {\n value: value,\n disabled: disabled,\n valueChange: (value: any) => {\n onChange()?.(value);\n setValue(value);\n },\n touchedChange: () => {\n touched()?.();\n },\n } as ControlValueAccessorAdapter,\n };\n}\n\nexport type ControlValueAccessorAdapter = {\n value: Accessor<any>;\n disabled: Accessor<boolean>;\n touchedChange: () => void;\n valueChange: (value: any) => void;\n};\n","import { createEffect, createMemo, onCleanup } from 'solid-js';\n\nexport function useEffectSync(fn: () => (() => void) | void) {\n let dispose: any = undefined;\n\n createMemo(() => {\n dispose = fn();\n });\n createEffect(() => {\n onCleanup(() => {\n dispose?.();\n dispose = undefined;\n });\n });\n}\n","import { For, useContext } from 'solid-js';\nimport { PiyingFieldTemplate } from './field-template';\nimport { PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util';\n\nexport function PiyingGroup() {\n const field = useContext(PI_VIEW_FIELD_TOKEN);\n const children = createSignalConvert(() => field?.children!())!;\n return (\n <For each={children()}>\n {(field) => {\n return <PiyingFieldTemplate field={field}></PiyingFieldTemplate>;\n }}\n </For>\n );\n}\n","import { CoreSchemaHandle } from '@piying/view-core';\nimport type { PiResolvedViewFieldConfig } from './type/group';\n\nexport class SolidSchemaHandle extends CoreSchemaHandle<\n SolidSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type: any;\n}\n","import { FormBuilder } from '@piying/view-core';\nimport type { SolidSchemaHandle } from './schema-handle';\n\nexport class SolidFormBuilder extends FormBuilder<SolidSchemaHandle> {}\n","import {\n ChangeDetectionScheduler,\n ChangeDetectionSchedulerImpl,\n createInjector,\n createRootInjector,\n DestroyRef,\n Injector,\n untracked,\n type EffectRef,\n} from 'static-injector';\nimport * as v from 'valibot';\nimport { InjectorToken } from '../token';\nimport { PiyingFieldTemplate } from './field-template';\nimport { convert, initListen } from '@piying/view-core';\nimport { SolidSchemaHandle } from '../schema-handle';\nimport { SolidFormBuilder } from '../builder';\nimport { createMemo, onCleanup } from 'solid-js';\nimport { useEffectSync } from '../util';\nexport interface PiyingViewProps {\n schema: v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>;\n model?: any;\n modelChange?: (value: any) => void;\n options: any;\n}\nexport function PiyingView(props: PiyingViewProps) {\n const rootInjector = createRootInjector({\n providers: [\n {\n provide: ChangeDetectionScheduler,\n useClass: ChangeDetectionSchedulerImpl,\n },\n ],\n });\n let injectorDispose: (() => any) | undefined;\n\n const initResult = createMemo(() => {\n const subInjector = createInjector({ providers: [], parent: rootInjector });\n injectorDispose = () => {\n subInjector.destroy();\n injectorDispose = undefined;\n };\n const field = convert(props.schema as any, {\n handle: SolidSchemaHandle as any,\n builder: SolidFormBuilder,\n injector: subInjector,\n registerOnDestroy: (fn) => {\n subInjector!.get(DestroyRef).onDestroy(fn);\n },\n ...props.options,\n });\n return [field, subInjector] as const;\n });\n\n onCleanup(() => {\n injectorDispose?.();\n });\n\n const field = createMemo(() => {\n return initResult()[0];\n });\n useEffectSync(() => {\n let ref: EffectRef | undefined;\n const [field, subInjector] = initResult();\n if (field.form.control) {\n ref = initListen(\n props.model,\n field!.form.control!,\n subInjector as Injector,\n (value) => {\n untracked(() => {\n if (field!.form.control?.valueNoError$$()) {\n props.modelChange?.(value);\n }\n });\n },\n );\n field.form.control.updateValue(props.model);\n }\n return () => {\n ref?.destroy();\n };\n });\n\n return (\n <>\n <InjectorToken.Provider value={rootInjector}>\n <PiyingFieldTemplate field={field()}></PiyingFieldTemplate>\n </InjectorToken.Provider>\n </>\n );\n}\n","import { createMemo, createSignal } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputTextModel(\n cvaa: ControlValueAccessorAdapter,\n compositionMode: () => boolean,\n) {\n const [composing, setComposing] = createSignal(false);\n return createMemo(() => {\n const obj = {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n if (!compositionMode() || (compositionMode() && !composing())) {\n cvaa.valueChange((event.target as any).value);\n }\n },\n };\n if (compositionMode()) {\n return {\n ...obj,\n onCompositionStart: () => {\n setComposing(true);\n },\n onCompositionEnd: (event: any) => {\n setComposing(false);\n cvaa.valueChange((event.target as any).value);\n },\n };\n }\n return obj;\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputCheckboxModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => ({\n checked: cvaa.value() ?? false,\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLInputElement;\n },\n ) => cvaa.valueChange(event.target.checked),\n }));\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputNumberModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n },\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRadioModel(\n cvaa: ControlValueAccessorAdapter,\n value: any,\n) {\n return createMemo(() => {\n return {\n value,\n checked: Object.is(cvaa.value(), value),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: () => cvaa.valueChange(value),\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRangeModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n const onInput = (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n };\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: onInput,\n onChange: onInput,\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useSelectModel(\n cvaa: ControlValueAccessorAdapter,\n multiple: boolean = false,\n) {\n return createMemo(() => {\n return {\n value: cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLSelectElement;\n },\n ) => {\n const selected = [];\n const el = event.target;\n if (el.selectedOptions !== undefined) {\n for (let index = 0; index < el.selectedOptions.length; index++) {\n const item = el.selectedOptions[index];\n selected.push(item.value);\n if (!multiple) {\n break;\n }\n }\n } else {\n for (let index = 0; index < el.options.length; index++) {\n const option = el.options[index];\n if (option.selected) {\n selected.push(option.value);\n if (!multiple) {\n break;\n }\n }\n }\n }\n cvaa.valueChange(multiple ? selected : selected[0]);\n },\n };\n });\n}\n"],"names":["PiyingWrapper","props","wrapper","createMemo","wrappers","restWrappers","slice","inputs","createSignalConvert","attributes","outputs","_$createComponent","Show","when","type","fallback","children","keyed","WrapperType","_$mergeProps","PiyingFieldTemplate","fieldInputs","field","renderConfig","define","control","form","ComponentType$$","isHidden","hidden","injector","useContext","InjectorToken","controlRef","setControlRef","createSignal","undefined","fieldControlInput","CVA","createEffect","dispose","createViewControlLink","PI_VIEW_FIELD_TOKEN","Provider","value","ComponentType","PiyingGroup","For","each","PiyingView","rootInjector","createRootInjector","providers","provide","ChangeDetectionScheduler","useClass","ChangeDetectionSchedulerImpl","injectorDispose","initResult","subInjector","createInjector","parent","destroy","convert","schema","handle","SolidSchemaHandle","builder","SolidFormBuilder","registerOnDestroy","fn","get","DestroyRef","onDestroy","options","onCleanup","useEffectSync","ref","initListen","model","untracked","valueNoError$$","modelChange","updateValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../packages/solid/src/token.ts","../../packages/solid/src/util/signal-convert.ts","../../packages/solid/src/component/wrapper.tsx","../../packages/solid/src/component/field-template.tsx","../../packages/solid/src/util/use-control-value-accessor.ts","../../packages/solid/src/util/use-effect-sync.ts","../../packages/solid/src/component/group.tsx","../../packages/solid/src/schema-handle.ts","../../packages/solid/src/builder.ts","../../packages/solid/src/component/view.tsx","../../packages/solid/src/use-model/use-text-model.ts","../../packages/solid/src/use-model/use-checkbox-model.ts","../../packages/solid/src/use-model/use-number-model.ts","../../packages/solid/src/use-model/use-radio-model.ts","../../packages/solid/src/use-model/use-range-model.ts","../../packages/solid/src/use-model/use-select-model.ts"],"sourcesContent":["import type { Injector } from 'static-injector';\nimport type { PiResolvedViewFieldConfig } from './type/group';\nimport { createContext } from 'solid-js';\n\nexport const PI_VIEW_FIELD_TOKEN = createContext<\n PiResolvedViewFieldConfig | undefined\n>(undefined);\nexport const InjectorToken = createContext<Injector | undefined>(undefined);\n\nexport const CVA = Symbol.for('ControlValueAccessor');\n","import { effect } from 'static-injector';\n\nimport { InjectorToken } from '../token';\nimport { useContext, createEffect, createSignal, onCleanup } from 'solid-js';\n\n// signal=>ref\nexport function createSignalConvert<T>(value: () => T) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const injector = useContext(InjectorToken)!;\n const [result, setResult] = createSignal(value());\n createEffect(() => {\n setResult(() => value());\n const ref = effect(\n () => {\n const currentValue = value();\n if (!Object.is(result(), currentValue)) {\n setResult(() => currentValue!);\n }\n },\n { injector: injector },\n );\n onCleanup(() => {\n ref.destroy();\n });\n });\n return result;\n}\n","import type { CoreWrapperConfig } from '@piying/view-core';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { createMemo, Show } from 'solid-js';\n\nexport interface PiyingWrapperProps {\n wrappers: CoreWrapperConfig[];\n children: any;\n}\n\nexport function PiyingWrapper(props: PiyingWrapperProps) {\n const wrapper = createMemo(() => props.wrappers[0]);\n const restWrappers = createMemo(() => props.wrappers?.slice(1));\n const inputs = createSignalConvert(() => ({\n ...wrapper()?.inputs(),\n ...wrapper()?.attributes(),\n ...wrapper()?.outputs?.(),\n }));\n return (\n <Show\n when={createMemo(() => wrapper()?.type)()}\n fallback={props.children}\n keyed\n >\n {(WrapperType) => {\n return (\n <WrapperType {...inputs()}>\n <PiyingWrapper wrappers={restWrappers()}>\n {props.children}\n </PiyingWrapper>\n </WrapperType>\n );\n }}\n </Show>\n );\n}\n","import {\n createEffect,\n createMemo,\n createSignal,\n Show,\n useContext,\n} from 'solid-js';\nimport type { PiResolvedViewFieldConfig } from '../type';\nimport { CVA, InjectorToken, PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util/signal-convert';\nimport { PiyingWrapper } from './wrapper';\nimport {\n createViewControlLink,\n type ControlValueAccessor,\n} from '@piying/view-core';\nexport interface PiyingFieldTemplateProps {\n field: PiResolvedViewFieldConfig;\n}\n\nexport function PiyingFieldTemplate(props: PiyingFieldTemplateProps) {\n const fieldInputs = createSignalConvert(() => ({\n ...props.field.attributes(),\n ...props.field.inputs(),\n ...props.field.outputs(),\n }));\n const renderConfig = createSignalConvert(() => props.field.renderConfig());\n const wrappers = createSignalConvert(() => props.field.wrappers());\n const define = createSignalConvert(() => props.field.define?.());\n const control = createMemo(() => props.field.form.control);\n const ComponentType$$ = createMemo(() => define()?.type);\n const isHidden = createMemo(() => {\n return !!renderConfig().hidden || !ComponentType$$();\n });\n const injector = useContext(InjectorToken)!;\n\n const [controlRef, setControlRef] = createSignal<\n ControlValueAccessor | undefined\n >(undefined);\n const fieldControlInput = createMemo(\n () =>\n ({\n ...fieldInputs(),\n [CVA]: setControlRef,\n }) as Record<any, any>,\n );\n\n createEffect(() => {\n let dispose: (() => any) | undefined;\n if (controlRef()) {\n dispose = createViewControlLink(control as any, controlRef()!, injector);\n }\n return () => {\n dispose?.();\n dispose = undefined;\n };\n });\n\n return (\n <>\n <PI_VIEW_FIELD_TOKEN.Provider value={props.field}>\n <Show when={!isHidden()}>\n <PiyingWrapper wrappers={wrappers()}>\n <Show when={ComponentType$$()} keyed>\n {(ComponentType) => (\n <Show\n when={props.field.form.control}\n fallback={<ComponentType {...fieldInputs()}></ComponentType>}\n >\n <ComponentType {...fieldControlInput()}></ComponentType>\n </Show>\n )}\n </Show>\n </PiyingWrapper>\n </Show>\n </PI_VIEW_FIELD_TOKEN.Provider>\n </>\n );\n}\n","import type { ControlValueAccessor } from '@piying/view-core';\nimport { createSignal, type Accessor } from 'solid-js';\n\nexport function useControlValueAccessor() {\n const [value, setValue] = createSignal<any>(undefined);\n const [disabled, setDisabled] = createSignal(false);\n const [onChange, setOnChange] = createSignal<\n ((input: any) => void) | undefined\n >(undefined);\n const [touched, setTouched] = createSignal<(() => void) | undefined>(\n undefined,\n );\n const cva: ControlValueAccessor = {\n writeValue(obj) {\n setValue(obj);\n },\n registerOnChange(fn) {\n setOnChange(() => fn);\n },\n registerOnTouched(fn) {\n setTouched(() => fn);\n },\n setDisabledState(value) {\n setDisabled(value);\n },\n };\n\n return {\n cva: cva,\n cvaa: {\n value: value,\n disabled: disabled,\n valueChange: (value: any) => {\n onChange()?.(value);\n setValue(value);\n },\n touchedChange: () => {\n touched()?.();\n },\n } as ControlValueAccessorAdapter,\n };\n}\n\nexport type ControlValueAccessorAdapter = {\n value: Accessor<any>;\n disabled: Accessor<boolean>;\n touchedChange: () => void;\n valueChange: (value: any) => void;\n};\n","import { createEffect, createMemo, onCleanup } from 'solid-js';\n\nexport function useEffectSync(fn: () => (() => void) | void) {\n let dispose: any = undefined;\n\n createMemo(() => {\n dispose = fn();\n });\n createEffect(() => {\n onCleanup(() => {\n dispose?.();\n dispose = undefined;\n });\n });\n}\n","import { For, useContext } from 'solid-js';\nimport { PiyingFieldTemplate } from './field-template';\nimport { PI_VIEW_FIELD_TOKEN } from '../token';\nimport { createSignalConvert } from '../util';\n\nexport function PiyingGroup() {\n const field = useContext(PI_VIEW_FIELD_TOKEN);\n const children = createSignalConvert(() => field?.children!())!;\n return (\n <For each={children()}>\n {(field) => {\n return <PiyingFieldTemplate field={field}></PiyingFieldTemplate>;\n }}\n </For>\n );\n}\n","import { CoreSchemaHandle } from '@piying/view-core';\nimport type { PiResolvedViewFieldConfig } from './type/group';\n\nexport class SolidSchemaHandle extends CoreSchemaHandle<\n SolidSchemaHandle,\n () => PiResolvedViewFieldConfig\n> {\n declare type: any;\n}\n","import { FormBuilder } from '@piying/view-core';\nimport type { SolidSchemaHandle } from './schema-handle';\n\nexport class SolidFormBuilder extends FormBuilder<SolidSchemaHandle> {}\n","import {\n ChangeDetectionScheduler,\n ChangeDetectionSchedulerImpl,\n createInjector,\n createRootInjector,\n DestroyRef,\n Injector,\n untracked,\n type EffectRef,\n} from 'static-injector';\nimport * as v from 'valibot';\nimport { InjectorToken } from '../token';\nimport { PiyingFieldTemplate } from './field-template';\nimport { convert, initListen } from '@piying/view-core';\nimport { SolidSchemaHandle } from '../schema-handle';\nimport { SolidFormBuilder } from '../builder';\nimport { createMemo, onCleanup } from 'solid-js';\nimport { useEffectSync } from '../util';\nexport interface PiyingViewProps {\n schema: v.BaseSchema<any, any, any> | v.SchemaWithPipe<any>;\n model?: any;\n modelChange?: (value: any) => void;\n options: any;\n}\nexport function PiyingView(props: PiyingViewProps) {\n const rootInjector = createRootInjector({\n providers: [\n {\n provide: ChangeDetectionScheduler,\n useClass: ChangeDetectionSchedulerImpl,\n },\n ],\n });\n let injectorDispose: (() => any) | undefined;\n\n const initResult = createMemo(() => {\n const subInjector = createInjector({ providers: [], parent: rootInjector });\n injectorDispose = () => {\n subInjector.destroy();\n injectorDispose = undefined;\n };\n const field = convert(props.schema as any, {\n handle: SolidSchemaHandle as any,\n builder: SolidFormBuilder,\n injector: subInjector,\n registerOnDestroy: (fn) => {\n subInjector!.get(DestroyRef).onDestroy(fn);\n },\n ...props.options,\n });\n return [field, subInjector] as const;\n });\n\n onCleanup(() => {\n injectorDispose?.();\n });\n\n const field = createMemo(() => {\n return initResult()[0];\n });\n useEffectSync(() => {\n let ref: EffectRef | undefined;\n const [field, subInjector] = initResult();\n if (field.form.control) {\n ref = initListen(\n props.model,\n field!.form.control!,\n subInjector as Injector,\n (value) => {\n untracked(() => {\n if (field!.form.control?.valueNoError$$()) {\n props.modelChange?.(value);\n }\n });\n },\n );\n field.form.control.updateValue(props.model);\n }\n return () => {\n ref?.destroy();\n };\n });\n\n return (\n <>\n <InjectorToken.Provider value={rootInjector}>\n <PiyingFieldTemplate field={field()}></PiyingFieldTemplate>\n </InjectorToken.Provider>\n </>\n );\n}\n","import { createMemo, createSignal } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputTextModel(\n cvaa: ControlValueAccessorAdapter,\n compositionMode: () => boolean,\n) {\n const [composing, setComposing] = createSignal(false);\n return createMemo(() => {\n const obj = {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n if (!compositionMode() || (compositionMode() && !composing())) {\n cvaa.valueChange((event.target as any).value);\n }\n },\n };\n if (compositionMode()) {\n return {\n ...obj,\n onCompositionStart: () => {\n setComposing(true);\n },\n onCompositionEnd: (event: any) => {\n setComposing(false);\n cvaa.valueChange((event.target as any).value);\n },\n };\n }\n return obj;\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputCheckboxModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => ({\n checked: cvaa.value() ?? false,\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLInputElement;\n },\n ) => cvaa.valueChange(event.target.checked),\n }));\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputNumberModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n },\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRadioModel(\n cvaa: ControlValueAccessorAdapter,\n value: any,\n) {\n return createMemo(() => {\n return {\n value,\n checked: Object.is(cvaa.value(), value),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: () => cvaa.valueChange(value),\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useInputRangeModel(cvaa: ControlValueAccessorAdapter) {\n return createMemo(() => {\n const onInput = (event: any) => {\n const value = (event.target as any).value;\n cvaa.valueChange(value == '' ? undefined : parseFloat(value));\n };\n return {\n value: cvaa.value() == null ? '' : cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onInput: onInput,\n onChange: onInput,\n };\n });\n}\n","import { createMemo } from 'solid-js';\nimport type { ControlValueAccessorAdapter } from '../util/use-control-value-accessor';\n\nexport function useSelectModel(\n cvaa: ControlValueAccessorAdapter,\n multiple: boolean = false,\n) {\n return createMemo(() => {\n return {\n value: cvaa.value(),\n disabled: cvaa.disabled(),\n onBlur: cvaa.touchedChange,\n onChange: (\n event: Event & {\n target: HTMLSelectElement;\n },\n ) => {\n const selected = [];\n const el = event.target;\n if (el.selectedOptions !== undefined) {\n for (let index = 0; index < el.selectedOptions.length; index++) {\n const item = el.selectedOptions[index];\n selected.push(item.value);\n if (!multiple) {\n break;\n }\n }\n } else {\n for (let index = 0; index < el.options.length; index++) {\n const option = el.options[index];\n if (option.selected) {\n selected.push(option.value);\n if (!multiple) {\n break;\n }\n }\n }\n }\n cvaa.valueChange(multiple ? selected : selected[0]);\n },\n };\n });\n}\n"],"names":["PiyingWrapper","props","wrapper","createMemo","wrappers","restWrappers","slice","inputs","createSignalConvert","attributes","outputs","_$createComponent","Show","when","type","fallback","children","keyed","WrapperType","_$mergeProps","PiyingFieldTemplate","fieldInputs","field","renderConfig","define","control","form","ComponentType$$","isHidden","hidden","injector","useContext","InjectorToken","controlRef","setControlRef","createSignal","undefined","fieldControlInput","CVA","createEffect","dispose","createViewControlLink","PI_VIEW_FIELD_TOKEN","Provider","value","ComponentType","PiyingGroup","For","each","PiyingView","rootInjector","createRootInjector","providers","provide","ChangeDetectionScheduler","useClass","ChangeDetectionSchedulerImpl","injectorDispose","initResult","subInjector","createInjector","parent","destroy","convert","schema","handle","SolidSchemaHandle","builder","SolidFormBuilder","registerOnDestroy","fn","get","DestroyRef","onDestroy","options","onCleanup","useEffectSync","ref","initListen","model","untracked","valueNoError$$","modelChange","updateValue"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@piying/view-solid",
|
|
3
|
-
"version": "2.1
|
|
3
|
+
"version": "2.2.1",
|
|
4
4
|
"description": "Piying view For Solid;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.1
|
|
37
|
+
"@piying/view-core": "^2.2.1",
|
|
38
38
|
"static-injector": "^6.1.2"
|
|
39
39
|
},
|
|
40
40
|
"sideEffects": false,
|