@sectile/vue 0.19.0 → 0.20.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.
- package/README.md +74 -0
- package/dist/input/native-field.d.ts +8 -0
- package/dist/input/native-field.js +1 -1
- package/dist/input/native-field.js.map +1 -1
- package/dist/input/native-range-field.js +1 -1
- package/dist/input/native-range-field.js.map +1 -1
- package/dist/media-gesture.d.ts +1 -1
- package/dist/media-gesture.js +1 -1
- package/dist/media-gesture.js.map +1 -1
- package/dist/number-field.d.ts +18 -1
- package/dist/number-field.js +1 -1
- package/dist/number-field.js.map +1 -1
- package/dist/overlay/popup.d.ts +4 -0
- package/dist/overlay/popup.js +1 -1
- package/dist/overlay/popup.js.map +1 -1
- package/dist/overlay/tooltip.d.ts +3 -2
- package/dist/overlay/tooltip.js +1 -1
- package/dist/overlay/tooltip.js.map +1 -1
- package/dist/quantity-field.js +1 -1
- package/dist/quantity-field.js.map +1 -1
- package/dist/reorder.d.ts +14 -1
- package/dist/reorder.js +1 -1
- package/dist/reorder.js.map +1 -1
- package/dist/spin-button.js +1 -1
- package/dist/spin-button.js.map +1 -1
- package/dist/text.js +1 -1
- package/dist/text.js.map +1 -1
- package/dist/tree-select.js +1 -1
- package/dist/tree-select.js.map +1 -1
- package/package.json +15 -14
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { type PopupCloseReason, type InteractOutsideEvent } from '@sectile/dom/tooltip';
|
|
2
2
|
import type { DefineSetupFnComponent, EmitsToProps, PublicProps, SlotsType, VNodeChild } from 'vue';
|
|
3
|
+
export { createTooltipGroup, type TooltipGroup } from '@sectile/dom/tooltip';
|
|
4
|
+
import type { TooltipTimingOptions } from '@sectile/dom/tooltip';
|
|
3
5
|
import { type PopupFactoryOptions, type PopupPartProps, type PopupPortalProps, type PopupRootProps, type PopupRootSlotProps, type PopupRootExpose } from './popup.js';
|
|
4
6
|
export type TooltipRootEmits = {
|
|
5
7
|
'update:open': [open: boolean];
|
|
@@ -20,7 +22,7 @@ export declare const TooltipTrigger: import("vue").Component;
|
|
|
20
22
|
export declare const TooltipPortal: import("vue").Component;
|
|
21
23
|
export declare const TooltipContent: import("vue").Component;
|
|
22
24
|
export declare const TooltipArrow: import("vue").Component;
|
|
23
|
-
export interface TooltipRootProps {
|
|
25
|
+
export interface TooltipRootProps extends TooltipTimingOptions {
|
|
24
26
|
readonly open?: PopupRootProps['open'];
|
|
25
27
|
readonly defaultOpen?: PopupRootProps['defaultOpen'];
|
|
26
28
|
readonly disabled?: PopupRootProps['disabled'];
|
|
@@ -42,4 +44,3 @@ export type TooltipRootSlotProps = PopupRootSlotProps;
|
|
|
42
44
|
export type TooltipRootExpose = PopupRootExpose;
|
|
43
45
|
export type TooltipPartProps = PopupPartProps;
|
|
44
46
|
export type TooltipPortalProps = PopupPortalProps;
|
|
45
|
-
export {};
|
package/dist/overlay/tooltip.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{createTooltip,getTooltipTriggerAttributes}from"@sectile/dom/tooltip";import{createPopupComponents}from"./popup.js";const parts=createPopupComponents({scope:"tooltip",role:"tooltip",modal:false,triggerMode:"focus-hover",positioned:true,describeTrigger:(describedBy,id,active)=>getTooltipTriggerAttributes({describedBy,id,active})["aria-describedby"],create:options=>{const{modal:_modal,label:_label,labelledBy:_labelledBy,describedBy:_describedBy,autoFocus:_autoFocus,restoreFocus:_restoreFocus,trapFocus:_trapFocus,...tooltipOptions}=options;return createTooltip({...tooltipOptions,id:options.root.id})}});const TooltipRoot=parts.Root;const TooltipTrigger=parts.Trigger;const TooltipPortal=parts.Portal;const TooltipContent=parts.Content;const TooltipArrow=parts.Arrow;export{TooltipArrow,TooltipContent,TooltipPortal,TooltipRoot,TooltipTrigger};
|
|
1
|
+
import{createTooltip,getTooltipTriggerAttributes}from"@sectile/dom/tooltip";import{createTooltipGroup}from"@sectile/dom/tooltip";import{createPopupComponents}from"./popup.js";const parts=createPopupComponents({scope:"tooltip",role:"tooltip",modal:false,triggerMode:"focus-hover",positioned:true,describeTrigger:(describedBy,id,active)=>getTooltipTriggerAttributes({describedBy,id,active})["aria-describedby"],create:options=>{const{modal:_modal,label:_label,labelledBy:_labelledBy,describedBy:_describedBy,autoFocus:_autoFocus,restoreFocus:_restoreFocus,trapFocus:_trapFocus,...tooltipOptions}=options;return createTooltip({...tooltipOptions,id:options.root.id})}});const TooltipRoot=parts.Root;const TooltipTrigger=parts.Trigger;const TooltipPortal=parts.Portal;const TooltipContent=parts.Content;const TooltipArrow=parts.Arrow;export{TooltipArrow,TooltipContent,TooltipPortal,TooltipRoot,TooltipTrigger,createTooltipGroup};
|
|
2
2
|
//# sourceMappingURL=tooltip.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/overlay/tooltip.ts"],"mappings":"AAAA,OAAS,cAAe,gCAAkI,uBAE1J,OACE,0BAOK,aAEP,MAAM,MAAQ,sBAAsB,CAClC,MAAO,UAAW,KAAM,UAAW,MAAO,MAAO,YAAa,cAAe,WAAY,KACzF,gBAAiB,CAAC,YAAa,GAAI,SAAW,4BAA4B,CAAE,YAAa,GAAI,MAAM,CAAE,EAAE,kBAAkB,EACzH,OAAS,SAAmD,CAC1D,KAAM,CACJ,MAAO,OACP,MAAO,OACP,WAAY,YACZ,YAAa,aACb,UAAW,WACX,aAAc,cACd,UAAW,WACX,GAAG,cAAc,EACf,QACJ,OAAO,cAAc,CAAE,GAAG,eAAgB,GAAI,QAAQ,KAAK,EAAE,CAAoB,CACnF,EACD,EAMM,MAAM,YAA+G,MAAM,KAE3H,MAAM,eAAiB,MAAM,QAC7B,MAAM,cAAgB,MAAM,OAC5B,MAAM,eAAiB,MAAM,QAC7B,MAAM,aAAe,MAAM","names":[],"file":"tooltip.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/overlay/tooltip.ts"],"mappings":"AAAA,OAAS,cAAe,gCAAkI,uBAE1J,OAAS,uBAA6C,uBAEtD,OACE,0BAOK,aAEP,MAAM,MAAQ,sBAAsB,CAClC,MAAO,UAAW,KAAM,UAAW,MAAO,MAAO,YAAa,cAAe,WAAY,KACzF,gBAAiB,CAAC,YAAa,GAAI,SAAW,4BAA4B,CAAE,YAAa,GAAI,MAAM,CAAE,EAAE,kBAAkB,EACzH,OAAS,SAAmD,CAC1D,KAAM,CACJ,MAAO,OACP,MAAO,OACP,WAAY,YACZ,YAAa,aACb,UAAW,WACX,aAAc,cACd,UAAW,WACX,GAAG,cAAc,EACf,QACJ,OAAO,cAAc,CAAE,GAAG,eAAgB,GAAI,QAAQ,KAAK,EAAE,CAAoB,CACnF,EACD,EAMM,MAAM,YAA+G,MAAM,KAE3H,MAAM,eAAiB,MAAM,QAC7B,MAAM,cAAgB,MAAM,OAC5B,MAAM,eAAiB,MAAM,QAC7B,MAAM,aAAe,MAAM","names":[],"file":"tooltip.js"}
|
package/dist/quantity-field.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,triggerRef,watch}from"vue";import{createQuantityField}from"@sectile/dom/quantity-field";import{createQuantityFieldState,getQuantityFieldDisplayUnits}from"@sectile/core/quantity-field";import{Primitive}from"./primitive.js";import{useFormControlFlags,useNativeInputFormControl}from"./form/control.js";import{captureNativeTextState}from"./input/native-text-state.js";import{createStandardQuantityPolicies}from"@sectile/dom/quantity-field";const key=Symbol("SectileQuantityFieldRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const QuantityFieldRoot=defineComponent({name:"SectileQuantityFieldRoot",inheritAttrs:false,props:{policies:{type:Object,required:true},modelValue:{type:Object,default:void 0},defaultValue:{type:Object,default:null},displayUnit:{type:String,default:void 0},defaultDisplayUnit:{type:String,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:displayUnit":_value=>true,commit:_details=>true},slots:Object,setup(props,{attrs,emit,slots}){const flags=useFormControlFlags(props);const input=shallowRef();const select=shallowRef();const connection=shallowRef();const initial=createQuantityFieldState(props.policies,props.modelValue!==void 0?props.modelValue:props.defaultValue,props.displayUnit??props.defaultDisplayUnit);const value=shallowRef(initial.quantity);const unit=shallowRef(initial.displayUnit);const text=shallowRef(initial.inputState.snapshot.text);const invalid=shallowRef(false);const units=computed(()=>getQuantityFieldDisplayUnits(props.policies,props.displayUnit??unit.value).flatMap(id=>{const entry=props.policies.registry.get(id);return entry===null?[]:[{id:entry.id,symbol:entry.symbol}]}));const valueControlled=props.modelValue!==void 0;const unitControlled=props.displayUnit!==void 0;let resetQuantity=valueControlled?null:initial.quantity;let resetDisplayUnit=unitControlled?void 0:initial.displayUnit;const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:value.value,text:text.value,displayUnit:props.displayUnit??unit.value,invalid:invalid.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const unitState=computed(()=>Object.freeze({displayUnit:props.displayUnit??unit.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const refresh=()=>{if(connection.value===void 0)return;value.value=connection.value.getQuantity();unit.value=connection.value.getDisplayUnit();text.value=connection.value.getText();invalid.value=input.value?.getAttribute("aria-invalid")==="true"};const connect=(preserveNative=false)=>{const element=input.value;if(element===void 0)return;const inputState=preserveNative&&connection.value!==void 0?captureNativeTextState(element,connection.value.getText()):void 0;connection.value?.disconnect();connection.value=createQuantityField({input:element,...select.value===void 0?{}:{unitSelect:select.value},policies:props.policies,manageUnitOptions:false,...valueControlled?{quantity:props.modelValue}:{defaultQuantity:value.value},...unitControlled?{displayUnit:props.displayUnit}:{defaultDisplayUnit:unit.value},...inputState===void 0?{}:{defaultInputState:inputState},disabled:flags.value.disabled,readOnly:flags.value.readonly,...props.label===void 0?{}:{label:props.label},onQuantityChange:details=>{value.value=details.value;emit("update:modelValue",details.value);emit("commit",details)},onDisplayUnitChange:next=>{unit.value=next;emit("update:displayUnit",next)},onUpdate:refresh});refresh()};let mounted=false;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const requestConnect=()=>{if(inputComposing){reconnectPending=true;return}connect(true)};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;connect(true)},0)};const resetRequested=shallowRef();watch(resetRequested,()=>{if(!mounted)return;const baseline=createQuantityFieldState(props.policies,valueControlled?props.modelValue:resetQuantity,unitControlled?props.displayUnit:resetDisplayUnit);value.value=baseline.quantity;unit.value=baseline.displayUnit;connect()},{flush:"post"});const reset=()=>{if(!mounted)return;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;inputComposing=false;triggerRef(resetRequested)};provide(key,{state,unitState,units,label:computed(()=>props.label),registerInput:element=>{input.value=element},registerUnitSelect:element=>{select.value=element},setInputComposing,reset});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;resetQuantity=null;resetDisplayUnit=void 0;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection.value?.disconnect();connection.value=void 0});watch([()=>props.policies,()=>flags.value.disabled,()=>flags.value.readonly,()=>props.label],requestConnect);watch([()=>props.modelValue,()=>props.displayUnit],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{quantity:props.modelValue}:{},...unitControlled?{displayUnit:props.displayUnit}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"quantity-field","data-part":"root","data-invalid":invalid.value?"":void 0,"data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const QuantityFieldInput=defineComponent({name:"SectileQuantityFieldInput",inheritAttrs:false,props:{name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("QuantityFieldInput");const input=shallowRef(null);const participation=useNativeInputFormControl(input,{reset:root.reset});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{input.value=node instanceof HTMLInputElement?node:null;root.registerInput(input.value??void 0)},type:"text",name:props.name,form:props.form,required:props.required
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,ssrContextKey,triggerRef,watch}from"vue";import{createQuantityField}from"@sectile/dom/quantity-field";import{createQuantityFieldState,getQuantityFieldDisplayUnits}from"@sectile/core/quantity-field";import{Primitive}from"./primitive.js";import{useFormControlFlags,useNativeInputFormControl}from"./form/control.js";import{captureNativeTextState}from"./input/native-text-state.js";import{createStandardQuantityPolicies}from"@sectile/dom/quantity-field";const key=Symbol("SectileQuantityFieldRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const QuantityFieldRoot=defineComponent({name:"SectileQuantityFieldRoot",inheritAttrs:false,props:{policies:{type:Object,required:true},modelValue:{type:Object,default:void 0},defaultValue:{type:Object,default:null},displayUnit:{type:String,default:void 0},defaultDisplayUnit:{type:String,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:displayUnit":_value=>true,commit:_details=>true},slots:Object,setup(props,{attrs,emit,slots}){const flags=useFormControlFlags(props);const input=shallowRef();const select=shallowRef();const connection=shallowRef();const initial=createQuantityFieldState(props.policies,props.modelValue!==void 0?props.modelValue:props.defaultValue,props.displayUnit??props.defaultDisplayUnit);const value=shallowRef(initial.quantity);const unit=shallowRef(initial.displayUnit);const text=shallowRef(initial.inputState.snapshot.text);const invalid=shallowRef(false);const units=computed(()=>getQuantityFieldDisplayUnits(props.policies,props.displayUnit??unit.value).flatMap(id=>{const entry=props.policies.registry.get(id);return entry===null?[]:[{id:entry.id,symbol:entry.symbol}]}));const valueControlled=props.modelValue!==void 0;const unitControlled=props.displayUnit!==void 0;let resetQuantity=valueControlled?null:initial.quantity;let resetDisplayUnit=unitControlled?void 0:initial.displayUnit;const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:value.value,text:text.value,displayUnit:props.displayUnit??unit.value,invalid:invalid.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const unitState=computed(()=>Object.freeze({displayUnit:props.displayUnit??unit.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const refresh=()=>{if(connection.value===void 0)return;value.value=connection.value.getQuantity();unit.value=connection.value.getDisplayUnit();text.value=connection.value.getText();invalid.value=input.value?.getAttribute("aria-invalid")==="true"};const connect=(preserveNative=false)=>{const element=input.value;if(element===void 0)return;const inputState=preserveNative&&connection.value!==void 0?captureNativeTextState(element,connection.value.getText()):void 0;connection.value?.disconnect();connection.value=createQuantityField({input:element,...select.value===void 0?{}:{unitSelect:select.value},policies:props.policies,manageUnitOptions:false,...valueControlled?{quantity:props.modelValue}:{defaultQuantity:value.value},...unitControlled?{displayUnit:props.displayUnit}:{defaultDisplayUnit:unit.value},...inputState===void 0?{}:{defaultInputState:inputState},disabled:flags.value.disabled,readOnly:flags.value.readonly,...props.label===void 0?{}:{label:props.label},onQuantityChange:details=>{value.value=details.value;emit("update:modelValue",details.value);emit("commit",details)},onDisplayUnitChange:next=>{unit.value=next;emit("update:displayUnit",next)},onUpdate:refresh});refresh()};let mounted=false;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const requestConnect=()=>{if(inputComposing){reconnectPending=true;return}connect(true)};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;connect(true)},0)};const resetRequested=shallowRef();watch(resetRequested,()=>{if(!mounted)return;const baseline=createQuantityFieldState(props.policies,valueControlled?props.modelValue:resetQuantity,unitControlled?props.displayUnit:resetDisplayUnit);value.value=baseline.quantity;unit.value=baseline.displayUnit;connect()},{flush:"post"});const reset=()=>{if(!mounted)return;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;inputComposing=false;triggerRef(resetRequested)};provide(key,{state,unitState,units,label:computed(()=>props.label),registerInput:element=>{input.value=element},registerUnitSelect:element=>{select.value=element},setInputComposing,reset});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;resetQuantity=null;resetDisplayUnit=void 0;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection.value?.disconnect();connection.value=void 0});watch([()=>props.policies,()=>flags.value.disabled,()=>flags.value.readonly,()=>props.label],requestConnect);watch([()=>props.modelValue,()=>props.displayUnit],()=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...valueControlled?{quantity:props.modelValue}:{},...unitControlled?{displayUnit:props.displayUnit}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"quantity-field","data-part":"root","data-invalid":invalid.value?"":void 0,"data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const QuantityFieldInput=defineComponent({name:"SectileQuantityFieldInput",inheritAttrs:false,props:{name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("QuantityFieldInput");const renderServerValue=inject(ssrContextKey,void 0)!==void 0;const input=shallowRef(null);const participation=useNativeInputFormControl(input,{reset:root.reset});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{input.value=node instanceof HTMLInputElement?node:null;root.registerInput(input.value??void 0)},type:"text",name:props.name,form:props.form,required:props.required,...renderServerValue?{value:root.state.value.text}:{},"aria-invalid":root.state.value.invalid?"true":void 0,disabled:root.state.value.disabled,readonly:root.state.value.readonly,onCompositionstart:()=>root.setInputComposing(true),onCompositionend:()=>root.setInputComposing(false),"aria-label":root.label.value,"data-scope":"quantity-field","data-part":"input"},participation.controlProps.value))}});const QuantityFieldUnitSelect=defineComponent({name:"SectileQuantityFieldUnitSelect",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"select"},asChild:{type:Boolean,default:false}},setup(props,{attrs}){const root=useRoot("QuantityFieldUnitSelect");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerUnitSelect(node instanceof HTMLSelectElement?node:void 0),disabled:root.unitState.value.disabled,"aria-readonly":root.unitState.value.readonly?"true":void 0,"aria-label":root.label.value===void 0?void 0:`${root.label.value} unit`,"data-scope":"quantity-field","data-part":"unit-select"}),{default:()=>root.units.value.map(unit=>h("option",{key:unit.id,value:unit.id,selected:unit.id===root.unitState.value.displayUnit},unit.symbol))})}});const QuantityFieldValue=defineComponent({name:"SectileQuantityFieldValue",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("QuantityFieldValue");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"quantity-field","data-part":"value"}),{default:()=>slots["default"]?.(root.state.value)})}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside QuantityFieldRoot.`);return root}export{QuantityFieldInput,QuantityFieldRoot,QuantityFieldUnitSelect,QuantityFieldValue,createStandardQuantityPolicies};
|
|
2
2
|
//# sourceMappingURL=quantity-field.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/quantity-field.ts"],"mappings":"AAAA,OACE,SAAU,gBAAiB,EAAG,OAAQ,WAAY,gBAAiB,UAAW,QAC9E,WAAY,WAAY,
|
|
1
|
+
{"version":3,"sources":["../src/quantity-field.ts"],"mappings":"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","names":[],"file":"quantity-field.js"}
|
package/dist/reorder.d.ts
CHANGED
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { type DefineSetupFnComponent, type EmitsToProps, type PropType, type PublicProps, type SlotsType, type VNodeChild } from 'vue';
|
|
2
|
-
import { type ReorderOrientation, type TreeReorderOptions, type TreeReorderDropTarget as NativeDropTarget } from '@sectile/dom/reorder';
|
|
2
|
+
import { type ReorderOrientation, type SequenceReorderConnection, type TreeReorderConnection, type TreeReorderOptions, type TreeReorderDropTarget as NativeDropTarget, type ReorderInteractionSnapshot, type ReorderInteractionChange } from '@sectile/dom/reorder';
|
|
3
3
|
import { type PrimitiveAs } from './primitive.js';
|
|
4
4
|
export type TreeReorderNode<ID extends string = string> = Omit<TreeReorderOptions<ID>['nodes'][number], 'parentID'> & {
|
|
5
5
|
readonly parentID: NoInfer<ID> | null;
|
|
6
6
|
};
|
|
7
7
|
export interface SequenceReorderRootProps<ID extends string = string> {
|
|
8
8
|
readonly items: readonly ID[];
|
|
9
|
+
readonly keyboardMode?: 'immediate' | 'preview';
|
|
9
10
|
readonly controlled?: boolean;
|
|
10
11
|
readonly handleOnly?: boolean;
|
|
11
12
|
readonly label?: string;
|
|
@@ -17,6 +18,7 @@ export interface SequenceReorderRootProps<ID extends string = string> {
|
|
|
17
18
|
}
|
|
18
19
|
export interface TreeReorderRootProps<ID extends string = string> {
|
|
19
20
|
readonly nodes: readonly TreeReorderNode<ID>[];
|
|
21
|
+
readonly keyboardMode?: 'immediate' | 'preview';
|
|
20
22
|
readonly controlled?: boolean;
|
|
21
23
|
readonly handleOnly?: boolean;
|
|
22
24
|
readonly label?: string;
|
|
@@ -33,11 +35,19 @@ export interface TreeReorderRootProps<ID extends string = string> {
|
|
|
33
35
|
export interface ReorderRootSlotProps<ID extends string = string> {
|
|
34
36
|
readonly items: readonly ID[];
|
|
35
37
|
readonly disabled: boolean;
|
|
38
|
+
readonly interaction: ReorderInteractionSnapshot<ID>;
|
|
39
|
+
getPreviewState: SequenceReorderConnection<ID>['getPreviewState'];
|
|
40
|
+
cancelInteraction(): void;
|
|
41
|
+
refreshDropTarget(): void;
|
|
36
42
|
}
|
|
37
43
|
export interface TreeReorderRootSlotProps<ID extends string = string> {
|
|
38
44
|
readonly nodes: readonly TreeReorderNode<ID>[];
|
|
39
45
|
readonly disabled: boolean;
|
|
40
46
|
readonly readonly: boolean;
|
|
47
|
+
readonly interaction: ReorderInteractionSnapshot<ID>;
|
|
48
|
+
getPreviewState: TreeReorderConnection<ID>['getPreviewState'];
|
|
49
|
+
cancelInteraction(): void;
|
|
50
|
+
refreshDropTarget(): void;
|
|
41
51
|
getChildren(parentID: NoInfer<ID> | null): readonly ID[];
|
|
42
52
|
getParent(id: NoInfer<ID>): ID | null;
|
|
43
53
|
canMove(id: NoInfer<ID>, target: TreeReorderTarget<NoInfer<ID>>): boolean;
|
|
@@ -55,10 +65,13 @@ export interface ReorderItemProps<ID extends string = string> {
|
|
|
55
65
|
}
|
|
56
66
|
export type SequenceReorderRootEmits<ID extends string = string> = {
|
|
57
67
|
'update:items': [items: readonly NoInfer<ID>[]];
|
|
68
|
+
'interaction-change': [change: ReorderInteractionChange<NoInfer<ID>>];
|
|
58
69
|
};
|
|
59
70
|
export type TreeReorderRootEmits<ID extends string = string> = {
|
|
60
71
|
'update:nodes': [nodes: readonly TreeReorderNode<NoInfer<ID>>[]];
|
|
72
|
+
'interaction-change': [change: ReorderInteractionChange<NoInfer<ID>>];
|
|
61
73
|
};
|
|
74
|
+
export type { ReorderInteractionSnapshot, ReorderInteractionChange } from '@sectile/dom/reorder';
|
|
62
75
|
export interface SequenceReorderRootSlots<ID extends string = string> {
|
|
63
76
|
default?: (state: ReorderRootSlotProps<ID>) => VNodeChild;
|
|
64
77
|
}
|
package/dist/reorder.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from'vue';import{createReorder}from'@sectile/dom/reorder';import{createSequenceReorderState,createTreeReorderState,getSequenceReorderOrder,getTreeReorderHierarchy,applyTreeReorderEvent}from'@sectile/core/reorder';import{unwrap}from'@sectile/core/result';import{Primitive}from'./primitive.js';import{useHostActive,useHostDirection}from'./host-provider.js';import{useNextTickTask}from'./internal/scheduled-task.js';const emptyItems=/* @__PURE__ */Object.freeze([]);function treeContextPort(source){let port=source;const value={position:id=>port?.position(id)??0,level:id=>port?.level(id)??0,size:id=>port?.size(id)??0,disabled:()=>port?.disabled()??true,columns:()=>port?.columns()??false,getChildren:parent=>port?.getChildren(parent)??emptyItems,getParent:id=>port?.getParent(id)??null,register:(element,id)=>port?.register(element,id),unregister:(element,id)=>port?.unregister(element,id),registerTarget:(element,target)=>port?.registerTarget(element,target),unregisterTarget:element=>port?.unregisterTarget(element)};return{value,retire:()=>{port=undefined}}}function treeExposure(source){let port=source;const value={get element(){return port?.element??null},move:(id,target)=>port?.move(id,target)??false,canMove:(id,target)=>port?.canMove(id,target)??false,focus:id=>port?.focus(id)};return{value,retire:()=>{port=undefined}}}const sequenceKey=/* @__PURE__ */Symbol('SectileSequenceReorderRoot');const treeKey=/* @__PURE__ */Symbol('SectileTreeReorderRoot');const rootProps={handleOnly:{type:Boolean,default:false},label:{type:String,default:undefined},roleDescription:{type:String,default:undefined},controlled:{type:Boolean,default:false},orientation:{type:String,default:'vertical'},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}};const SequenceRootImplementation=/* @__PURE__ */defineComponent({name:'SectileSequenceReorderRoot',inheritAttrs:false,props:/* @__PURE__ */Object.assign({},rootProps,{items:{type:Array,required:true}}),emits:{'update:items':_items=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef();const connection=shallowRef();const current=shallowRef(createSequenceReorderState(props.items));const registrations=new Map;const connect=()=>{connection.value?.disconnect();if(root.value===undefined)return;connection.value=createReorder({root:root.value,ids:props.controlled?props.items:current.value.ids,controlled:props.controlled,handleOnly:props.handleOnly,...reorderLabelOptions(props,attrs),orientation:props.orientation,disabled:props.disabled,onOrderChange:items=>{if(!props.controlled)current.value=connection.value.getSnapshot().state;emit('update:items',items)}});for(const[id,element]of registrations)connection.value.setItemAttributes(element,id);current.value=connection.value.getSnapshot().state};const items=computed(()=>current.value.ids);provide(sequenceKey,{position:id=>(getSequenceReorderOrder(current.value).indexOf(id)??-1)+1,level:()=>1,size:()=>current.value.ids.length,disabled:()=>props.disabled,register:(element,id)=>{registrations.set(id,element);connection.value?.setItemAttributes(element,id)},unregister:(element,id)=>{if(registrations.get(id)===element)registrations.delete(id);connection.value?.removeItem(element)}});onMounted(connect);onBeforeUnmount(()=>connection.value?.disconnect());watch([()=>props.orientation,()=>props.disabled,()=>props.controlled,()=>props.handleOnly,()=>props.label,()=>props.roleDescription],connect);watch(()=>props.items,items=>{current.value=connection.value===undefined?createSequenceReorderState(items):unwrap(connection.value.syncOrder(items)).state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element instanceof HTMLElement?element:undefined},'data-scope':'sequence-reorder','data-part':'root',role:'list','aria-label':props.label??attrs['aria-label'],'aria-roledescription':props.roleDescription??attrs['aria-roledescription']??'sortable','data-orientation':props.orientation}),{default:()=>slots['default']?.({items:items.value,disabled:props.disabled})})}});export const SequenceReorderItem=/* @__PURE__ */defineComponent({name:'SectileSequenceReorderItem',inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useSequenceContext('SequenceReorderItem');const elementRef=useReorderItemRef(root,()=>props.value);const position=computed(()=>root.position(props.value));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef,'data-scope':'sequence-reorder','data-part':'item','data-value':props.value,role:'listitem','aria-posinset':position.value||undefined,'aria-setsize':root.size(props.value)}),{default:()=>slots['default']?.({value:props.value,position:position.value,level:1,setSize:root.size(props.value)})})}});export const SequenceReorderRoot=SequenceRootImplementation;const TreeRootImplementation=/* @__PURE__ */defineComponent({name:'SectileTreeReorderRoot',inheritAttrs:false,props:/* @__PURE__ */Object.assign({},rootProps,{nodes:{type:Array,required:true},readonly:{type:Boolean,default:false},layout:{type:String,default:'tree'},direction:{type:String,default:undefined},policies:{type:Object,default:undefined}}),emits:{'update:nodes':_nodes=>true},slots:Object,setup(props,{attrs,emit,slots,expose}){const root=shallowRef();const connection=shallowRef();const current=shallowRef(createTreeReorderState(props.nodes,props.layout==='columns'?{maxDepth:1}:undefined));const registrations=new Map;const targets=new Map;const active=useHostActive(),inheritedDirection=useHostDirection();const direction=computed(()=>props.direction??inheritedDirection.value);let alive=true,mounted=false,generation=0;let connectedElement;let pendingFocus;const repairFocus=useNextTickTask(()=>{const pending=pendingFocus;pendingFocus=undefined;if(!alive||!active.value||!pending||!root.value)return;const focused=root.value.ownerDocument.activeElement;if(focused!==pending.previous&&focused!==root.value.ownerDocument.body&&focused!==null)return;const replacement=registrations.get(pending.id);if(replacement&&root.value.contains(replacement)&&getTreeReorderHierarchy(current.value).has(pending.id))replacement.focus();else if(props.layout==='columns')root.value.focus()});const retire=()=>{generation+=1;const previous=connection.value;connection.value=undefined;connectedElement=undefined;previous?.disconnect()};const validTarget=target=>applyTreeReorderEvent(current.value,{type:'move-nodes',ids:[],parentID:target.parentID,beforeID:target.beforeID??null}).ok;const projectTargets=()=>{const native=connection.value;if(!native)return;for(const[element,target]of targets){if(!alive||connection.value!==native)break;if(validTarget(target))native.setDropTarget(element,target);else native.removeDropTarget(element)}};const connect=(force=false)=>{if(!force&&connection.value&&connectedElement===root.value&&active.value)return;retire();if(!alive||!mounted||!active.value||!root.value)return;const expected=generation;const isCurrent=()=>alive&&expected===generation;try{const native=createReorder({root:root.value,nodes:props.controlled?props.nodes:current.value.nodes,controlled:props.controlled,handleOnly:props.handleOnly,...reorderLabelOptions(props,attrs),orientation:props.orientation,disabled:props.disabled,readOnly:props.readonly,layout:props.layout,direction:direction.value,...props.policies===undefined?{}:{policies:props.policies},onOrderChange:nodes=>{if(!isCurrent())return;if(connection.value)current.value=connection.value.getSnapshot().state;emit('update:nodes',nodes)},onUpdate:()=>{if(isCurrent()&&connection.value)current.value=connection.value.getSnapshot().state}});if(!isCurrent()){native.disconnect();return}connection.value=native;connectedElement=root.value;current.value=native.getSnapshot().state;for(const[id,element]of registrations){if(!isCurrent())break;native.setItemAttributes(element,id)}if(isCurrent())projectTargets()}catch(error){try{retire()}catch{}throw error}};const nodes=computed(()=>current.value.nodes);const context=treeContextPort({position:id=>{const tree=getTreeReorderHierarchy(current.value);if(!tree.has(id))return 0;const parentID=tree.parentOf(id);const siblings=parentID===null?tree.roots:tree.childrenOf(parentID);return siblings.indexOf(id)+1},level:id=>(getTreeReorderHierarchy(current.value).depthOf(id)??-1)+1,size:id=>{const tree=getTreeReorderHierarchy(current.value);if(!tree.has(id))return 0;const parentID=tree.parentOf(id);return(parentID===null?tree.roots:tree.childrenOf(parentID)).size},disabled:()=>props.disabled||props.readonly,columns:()=>props.layout==='columns',getChildren:parentID=>{const tree=getTreeReorderHierarchy(current.value);return(parentID===null?tree.roots:tree.childrenOf(parentID))?.ids??emptyItems},getParent:id=>getTreeReorderHierarchy(current.value).parentOf(id)??null,register:(element,id)=>{if(!alive)return;registrations.set(id,element);connection.value?.setItemAttributes(element,id)},unregister:(element,id)=>{if(!alive)return;const focused=element.ownerDocument.activeElement;if(active.value&&focused!==null&&(focused===element||element.contains(focused))){pendingFocus={id,previous:element};repairFocus.schedule()}if(registrations.get(id)===element)registrations.delete(id);connection.value?.removeItem(element)},registerTarget:(element,target)=>{if(!alive)return;const position={parentID:target.parentID,...target.beforeID===undefined?{}:{beforeID:target.beforeID}};if(!alive)return;targets.set(element,position);if(validTarget(position))connection.value?.setDropTarget(element,position);else connection.value?.removeDropTarget(element)},unregisterTarget:element=>{if(!alive)return;targets.delete(element);connection.value?.removeDropTarget(element)}});provide(treeKey,context.value);const canReorder=()=>alive&&active.value&&!props.disabled&&!props.readonly;const exposure=treeExposure({get element(){return root.value??null},move:(id,target)=>canReorder()&&(connection.value?.handleEvent({type:'move-node',id,parentID:target.parentID,beforeID:target.beforeID??null})??false),canMove:(id,target)=>canReorder()&&(connection.value?.canMove(id,target)??false),focus:id=>{if(!alive||!active.value)return;const element=id===undefined?root.value:registrations.get(id);if(element&&root.value?.contains(element))element.focus()}});expose(exposure.value);onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{alive=false;pendingFocus=undefined;repairFocus.cancel();exposure.retire();context.retire();try{retire()}finally{registrations.clear();targets.clear();root.value=undefined}});watch(root,()=>connect(),{flush:'post'});watch(active,()=>{pendingFocus=undefined;repairFocus.cancel();connect()},{flush:'post'});watch([()=>props.orientation,()=>props.disabled,()=>props.readonly,()=>props.controlled,()=>props.handleOnly,()=>props.label,()=>props.roleDescription,()=>props.layout,()=>props.policies,direction],()=>connect(true),{flush:'post'});watch(()=>props.nodes,nodes=>{current.value=connection.value===undefined?createTreeReorderState(nodes,props.layout==='columns'?{maxDepth:1}:undefined):unwrap(connection.value.syncOrder(nodes)).state;projectTargets()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=typeof HTMLElement!=='undefined'&&element instanceof HTMLElement?element:undefined},role:props.layout==='columns'?'list':'tree',tabindex:props.layout==='columns'?-1:undefined,dir:direction.value,'aria-label':props.label??attrs['aria-label'],'aria-roledescription':props.roleDescription??attrs['aria-roledescription']??'sortable','data-scope':'tree-reorder','data-part':'root','data-orientation':props.orientation,'data-layout':props.layout,'data-readonly':props.readonly?'':undefined}),{default:()=>slots['default']?.({nodes:nodes.value,disabled:props.disabled,readonly:props.readonly,getChildren:context.value.getChildren,getParent:context.value.getParent,canMove:exposure.value.canMove})})}});export const TreeReorderRoot=TreeRootImplementation;export const TreeReorderItem=/* @__PURE__ */defineComponent({name:'SectileTreeReorderItem',inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTreeContext('TreeReorderItem');const elementRef=useReorderItemRef(root,()=>props.value);const position=computed(()=>root.position(props.value));const level=computed(()=>root.level(props.value));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef,role:root.columns()?'listitem':'treeitem','data-scope':'tree-reorder','data-part':'item','data-value':props.value,'data-level':level.value,'aria-level':level.value||undefined,'aria-posinset':position.value||undefined,'aria-setsize':root.size(props.value)}),{default:()=>slots['default']?.({value:props.value,position:position.value,level:level.value,setSize:root.size(props.value)})})}});function reorderLabelOptions(props,attrs){const label=props.label??attrs['aria-label'];const roleDescription=props.roleDescription??attrs['aria-roledescription'];return{...typeof label==='string'?{label}:{},...typeof roleDescription==='string'?{roleDescription}:{}}}function useReorderItemRef(root,value){let current;let registeredID;const release=()=>{if(current!==undefined&®isteredID!==undefined)root.unregister(current,registeredID);current=undefined;registeredID=undefined};onBeforeUnmount(release);watch(value,()=>{if(current===undefined)return;root.unregister(current,registeredID);registeredID=value();root.register(current,registeredID)});return element=>{const next=element instanceof HTMLElement?element:undefined;if(next===current)return;release();current=next;if(current!==undefined){registeredID=value();root.register(current,registeredID)}}}function useSequenceContext(part){const context=inject(sequenceKey);if(context===undefined)throw new TypeError(`${part} must be used inside SequenceReorderRoot.`);return context}function useTreeContext(part){const context=inject(treeKey);if(context===undefined)throw new TypeError(`${part} must be used inside TreeReorderRoot.`);return context}export const TreeReorderDropTarget=/* @__PURE__ */defineComponent({name:'SectileTreeReorderDropTarget',inheritAttrs:false,props:{parentID:{type:String,default:null},beforeID:{type:String,default:undefined},label:{type:String,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useTreeContext('TreeReorderDropTarget');let current;const release=()=>{const previous=current;current=undefined;if(previous)root.unregisterTarget(previous)};const register=()=>{if(current)root.registerTarget(current,{parentID:props.parentID,...props.beforeID===undefined?{}:{beforeID:props.beforeID}})};onBeforeUnmount(release);watch([()=>props.parentID,()=>props.beforeID],register,{flush:'post'});const elementRef=element=>{const next=typeof HTMLElement!=='undefined'&&element instanceof HTMLElement?element:undefined;if(next===current)return;release();current=next;register()};return()=>h(Primitive,mergeProps({role:root.columns()?'list':'group'},attrs,{as:props.as,asChild:props.asChild,elementRef,'aria-label':props.label??attrs['aria-label'],'data-scope':'tree-reorder','data-part':'drop-target'}),slots)}});function createReorderHandle(name,scope){return defineComponent({name,inheritAttrs:false,props:{label:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=scope==='sequence'?useSequenceContext(name):useTreeContext(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:props.disabled||root.disabled(),'aria-label':props.label,'aria-keyshortcuts':'Alt+ArrowUp Alt+ArrowDown Alt+ArrowLeft Alt+ArrowRight Alt+Home Alt+End','data-sectile-reorder-handle':'','data-scope':scope==='sequence'?'sequence-reorder':'tree-reorder','data-part':'handle'}),slots)}})}export const SequenceReorderHandle=/* @__PURE__ */createReorderHandle('SectileSequenceReorderHandle','sequence');export const TreeReorderHandle=/* @__PURE__ */createReorderHandle('SectileTreeReorderHandle','tree');
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onMounted,provide,shallowRef,watch}from'vue';import{createReorder}from'@sectile/dom/reorder';import{createSequenceReorderState,createTreeReorderState,getSequenceReorderOrder,getTreeReorderHierarchy,applyTreeReorderEvent}from'@sectile/core/reorder';import{unwrap,failResult}from'@sectile/core/result';import{Primitive}from'./primitive.js';import{useHostActive,useHostDirection}from'./host-provider.js';import{useNextTickTask}from'./internal/scheduled-task.js';const emptyItems=/* @__PURE__ */Object.freeze([]);const idleInteraction=/* @__PURE__ */Object.freeze({sourceID:null,input:null,target:null,allowed:false,clientPoint:null});function previewPort(source){let port=source;return{value:{getPreviewState:()=>port?.getPreviewState()??failResult('transition-rejection','invalid-boundary','Reorder component is unmounted.'),cancelInteraction:()=>{port?.cancelInteraction()},refreshDropTarget:()=>{port?.refreshDropTarget()}},retire:()=>{port=undefined}}}function treeContextPort(source){let port=source;const value={position:id=>port?.position(id)??0,level:id=>port?.level(id)??0,size:id=>port?.size(id)??0,disabled:()=>port?.disabled()??true,columns:()=>port?.columns()??false,getChildren:parent=>port?.getChildren(parent)??emptyItems,getParent:id=>port?.getParent(id)??null,register:(element,id)=>port?.register(element,id),unregister:(element,id)=>port?.unregister(element,id),registerTarget:(element,target)=>port?.registerTarget(element,target),unregisterTarget:element=>port?.unregisterTarget(element)};return{value,retire:()=>{port=undefined}}}function treeExposure(source){let port=source;const value={get element(){return port?.element??null},move:(id,target)=>port?.move(id,target)??false,canMove:(id,target)=>port?.canMove(id,target)??false,focus:id=>port?.focus(id)};return{value,retire:()=>{port=undefined}}}const sequenceKey=/* @__PURE__ */Symbol('SectileSequenceReorderRoot');const treeKey=/* @__PURE__ */Symbol('SectileTreeReorderRoot');const rootProps={keyboardMode:{type:String,default:'immediate'},handleOnly:{type:Boolean,default:false},label:{type:String,default:undefined},roleDescription:{type:String,default:undefined},controlled:{type:Boolean,default:false},orientation:{type:String,default:'vertical'},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}};const SequenceRootImplementation=/* @__PURE__ */defineComponent({name:'SectileSequenceReorderRoot',inheritAttrs:false,props:/* @__PURE__ */Object.assign({},rootProps,{items:{type:Array,required:true}}),emits:{'update:items':_items=>true,'interaction-change':_change=>true},slots:Object,setup(props,{attrs,emit,slots}){const root=shallowRef();const connection=shallowRef();const current=shallowRef(createSequenceReorderState(props.items));const interaction=shallowRef(idleInteraction);const active=useHostActive();const preview=previewPort({getPreviewState:()=>connection.value?.getPreviewState()??{ok:true,value:current.value},cancelInteraction:()=>connection.value?.cancelInteraction(),refreshDropTarget:()=>connection.value?.refreshDropTarget()});const registrations=new Map;const connect=()=>{connection.value?.disconnect();connection.value=undefined;interaction.value=idleInteraction;if(root.value===undefined||!active.value)return;connection.value=createReorder({root:root.value,ids:props.controlled?props.items:current.value.ids,keyboardMode:props.keyboardMode,controlled:props.controlled,handleOnly:props.handleOnly,...reorderLabelOptions(props,attrs),orientation:props.orientation,disabled:props.disabled,onOrderChange:items=>{if(!props.controlled)current.value=connection.value.getSnapshot().state;emit('update:items',items)},onInteractionChange:change=>emit('interaction-change',change),onUpdate:()=>{if(connection.value){current.value=connection.value.getSnapshot().state;interaction.value=connection.value.getInteractionSnapshot()}}});for(const[id,element]of registrations)connection.value.setItemAttributes(element,id);current.value=connection.value.getSnapshot().state};const items=computed(()=>current.value.ids);provide(sequenceKey,{position:id=>(getSequenceReorderOrder(current.value).indexOf(id)??-1)+1,level:()=>1,size:()=>current.value.ids.length,disabled:()=>props.disabled,register:(element,id)=>{registrations.set(id,element);connection.value?.setItemAttributes(element,id)},unregister:(element,id)=>{if(registrations.get(id)===element)registrations.delete(id);connection.value?.removeItem(element)}});onMounted(connect);onBeforeUnmount(()=>{preview.retire();const previous=connection.value;connection.value=undefined;try{previous?.disconnect()}finally{root.value=undefined;registrations.clear()}});watch([active,()=>props.keyboardMode,()=>props.orientation,()=>props.disabled,()=>props.controlled,()=>props.handleOnly,()=>props.label,()=>props.roleDescription],connect);watch(()=>props.items,items=>{current.value=connection.value===undefined?createSequenceReorderState(items):unwrap(connection.value.syncOrder(items)).state});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=element instanceof HTMLElement?element:undefined},'data-scope':'sequence-reorder','data-part':'root',role:'list','aria-label':props.label??attrs['aria-label'],'aria-roledescription':props.roleDescription??attrs['aria-roledescription']??'sortable','data-orientation':props.orientation}),{default:()=>slots['default']?.({items:items.value,disabled:props.disabled,interaction:interaction.value,...preview.value})})}});export const SequenceReorderItem=/* @__PURE__ */defineComponent({name:'SectileSequenceReorderItem',inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useSequenceContext('SequenceReorderItem');const elementRef=useReorderItemRef(root,()=>props.value);const position=computed(()=>root.position(props.value));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef,'data-scope':'sequence-reorder','data-part':'item','data-value':props.value,role:'listitem','aria-posinset':position.value||undefined,'aria-setsize':root.size(props.value)}),{default:()=>slots['default']?.({value:props.value,position:position.value,level:1,setSize:root.size(props.value)})})}});export const SequenceReorderRoot=SequenceRootImplementation;const TreeRootImplementation=/* @__PURE__ */defineComponent({name:'SectileTreeReorderRoot',inheritAttrs:false,props:/* @__PURE__ */Object.assign({},rootProps,{nodes:{type:Array,required:true},readonly:{type:Boolean,default:false},layout:{type:String,default:'tree'},direction:{type:String,default:undefined},policies:{type:Object,default:undefined}}),emits:{'update:nodes':_nodes=>true,'interaction-change':_change=>true},slots:Object,setup(props,{attrs,emit,slots,expose}){const root=shallowRef();const connection=shallowRef();const current=shallowRef(createTreeReorderState(props.nodes,props.layout==='columns'?{maxDepth:1}:undefined));const interaction=shallowRef(idleInteraction);const preview=previewPort({getPreviewState:()=>connection.value?.getPreviewState()??{ok:true,value:current.value},cancelInteraction:()=>connection.value?.cancelInteraction(),refreshDropTarget:()=>connection.value?.refreshDropTarget()});const registrations=new Map;const targets=new Map;const active=useHostActive(),inheritedDirection=useHostDirection();const direction=computed(()=>props.direction??inheritedDirection.value);let alive=true,mounted=false,generation=0;let connectedElement;let pendingFocus;const repairFocus=useNextTickTask(()=>{const pending=pendingFocus;pendingFocus=undefined;if(!alive||!active.value||!pending||!root.value)return;const focused=root.value.ownerDocument.activeElement;if(focused!==pending.previous&&focused!==root.value.ownerDocument.body&&focused!==null)return;const replacement=registrations.get(pending.id);if(replacement&&root.value.contains(replacement)&&getTreeReorderHierarchy(current.value).has(pending.id))replacement.focus();else if(props.layout==='columns')root.value.focus()});const retire=()=>{generation+=1;const previous=connection.value;connection.value=undefined;connectedElement=undefined;interaction.value=idleInteraction;previous?.disconnect()};const validTarget=target=>applyTreeReorderEvent(current.value,{type:'move-nodes',ids:[],parentID:target.parentID,beforeID:target.beforeID??null}).ok;const projectTargets=()=>{const native=connection.value;if(!native)return;for(const[element,target]of targets){if(!alive||connection.value!==native)break;if(validTarget(target))native.setDropTarget(element,target);else native.removeDropTarget(element)}};const connect=(force=false)=>{if(!force&&connection.value&&connectedElement===root.value&&active.value)return;retire();if(!alive||!mounted||!active.value||!root.value)return;const expected=generation;const isCurrent=()=>alive&&expected===generation;try{const native=createReorder({root:root.value,nodes:props.controlled?props.nodes:current.value.nodes,controlled:props.controlled,handleOnly:props.handleOnly,keyboardMode:props.keyboardMode,...reorderLabelOptions(props,attrs),orientation:props.orientation,disabled:props.disabled,readOnly:props.readonly,layout:props.layout,direction:direction.value,...props.policies===undefined?{}:{policies:props.policies},onOrderChange:nodes=>{if(!isCurrent())return;if(connection.value)current.value=connection.value.getSnapshot().state;emit('update:nodes',nodes)},onInteractionChange:change=>{if(isCurrent())emit('interaction-change',change)},onUpdate:()=>{if(isCurrent()&&connection.value){current.value=connection.value.getSnapshot().state;interaction.value=connection.value.getInteractionSnapshot()}}});if(!isCurrent()){native.disconnect();return}connection.value=native;connectedElement=root.value;current.value=native.getSnapshot().state;for(const[id,element]of registrations){if(!isCurrent())break;native.setItemAttributes(element,id)}if(isCurrent())projectTargets()}catch(error){try{retire()}catch{}throw error}};const nodes=computed(()=>current.value.nodes);const context=treeContextPort({position:id=>{const tree=getTreeReorderHierarchy(current.value);if(!tree.has(id))return 0;const parentID=tree.parentOf(id);const siblings=parentID===null?tree.roots:tree.childrenOf(parentID);return siblings.indexOf(id)+1},level:id=>(getTreeReorderHierarchy(current.value).depthOf(id)??-1)+1,size:id=>{const tree=getTreeReorderHierarchy(current.value);if(!tree.has(id))return 0;const parentID=tree.parentOf(id);return(parentID===null?tree.roots:tree.childrenOf(parentID)).size},disabled:()=>props.disabled||props.readonly,columns:()=>props.layout==='columns',getChildren:parentID=>{const tree=getTreeReorderHierarchy(current.value);return(parentID===null?tree.roots:tree.childrenOf(parentID))?.ids??emptyItems},getParent:id=>getTreeReorderHierarchy(current.value).parentOf(id)??null,register:(element,id)=>{if(!alive)return;registrations.set(id,element);connection.value?.setItemAttributes(element,id)},unregister:(element,id)=>{if(!alive)return;const focused=element.ownerDocument.activeElement;if(active.value&&focused!==null&&(focused===element||element.contains(focused))){pendingFocus={id,previous:element};repairFocus.schedule()}if(registrations.get(id)===element)registrations.delete(id);connection.value?.removeItem(element)},registerTarget:(element,target)=>{if(!alive)return;const position={parentID:target.parentID,...target.beforeID===undefined?{}:{beforeID:target.beforeID}};if(!alive)return;targets.set(element,position);if(validTarget(position))connection.value?.setDropTarget(element,position);else connection.value?.removeDropTarget(element)},unregisterTarget:element=>{if(!alive)return;targets.delete(element);connection.value?.removeDropTarget(element)}});provide(treeKey,context.value);const canReorder=()=>alive&&active.value&&!props.disabled&&!props.readonly;const exposure=treeExposure({get element(){return root.value??null},move:(id,target)=>canReorder()&&(connection.value?.handleEvent({type:'move-node',id,parentID:target.parentID,beforeID:target.beforeID??null})??false),canMove:(id,target)=>canReorder()&&(connection.value?.canMove(id,target)??false),focus:id=>{if(!alive||!active.value)return;const element=id===undefined?root.value:registrations.get(id);if(element&&root.value?.contains(element))element.focus()}});expose(exposure.value);onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{alive=false;pendingFocus=undefined;repairFocus.cancel();preview.retire();exposure.retire();context.retire();try{retire()}finally{registrations.clear();targets.clear();root.value=undefined}});watch(root,()=>connect(),{flush:'post'});watch(active,()=>{pendingFocus=undefined;repairFocus.cancel();connect()},{flush:'post'});watch([()=>props.keyboardMode,()=>props.orientation,()=>props.disabled,()=>props.readonly,()=>props.controlled,()=>props.handleOnly,()=>props.label,()=>props.roleDescription,()=>props.layout,()=>props.policies,direction],()=>connect(true),{flush:'post'});watch(()=>props.nodes,nodes=>{current.value=connection.value===undefined?createTreeReorderState(nodes,props.layout==='columns'?{maxDepth:1}:undefined):unwrap(connection.value.syncOrder(nodes)).state;projectTargets()});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{root.value=typeof HTMLElement!=='undefined'&&element instanceof HTMLElement?element:undefined},role:props.layout==='columns'?'list':'tree',tabindex:props.layout==='columns'?-1:undefined,dir:direction.value,'aria-label':props.label??attrs['aria-label'],'aria-roledescription':props.roleDescription??attrs['aria-roledescription']??'sortable','data-scope':'tree-reorder','data-part':'root','data-orientation':props.orientation,'data-layout':props.layout,'data-readonly':props.readonly?'':undefined}),{default:()=>slots['default']?.({nodes:nodes.value,disabled:props.disabled,readonly:props.readonly,interaction:interaction.value,...preview.value,getChildren:context.value.getChildren,getParent:context.value.getParent,canMove:exposure.value.canMove})})}});export const TreeReorderRoot=TreeRootImplementation;export const TreeReorderItem=/* @__PURE__ */defineComponent({name:'SectileTreeReorderItem',inheritAttrs:false,props:{value:{type:String,required:true},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useTreeContext('TreeReorderItem');const elementRef=useReorderItemRef(root,()=>props.value);const position=computed(()=>root.position(props.value));const level=computed(()=>root.level(props.value));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef,role:root.columns()?'listitem':'treeitem','data-scope':'tree-reorder','data-part':'item','data-value':props.value,'data-level':level.value,'aria-level':level.value||undefined,'aria-posinset':position.value||undefined,'aria-setsize':root.size(props.value)}),{default:()=>slots['default']?.({value:props.value,position:position.value,level:level.value,setSize:root.size(props.value)})})}});function reorderLabelOptions(props,attrs){const label=props.label??attrs['aria-label'];const roleDescription=props.roleDescription??attrs['aria-roledescription'];return{...typeof label==='string'?{label}:{},...typeof roleDescription==='string'?{roleDescription}:{}}}function useReorderItemRef(root,value){let current;let registeredID;const release=()=>{if(current!==undefined&®isteredID!==undefined)root.unregister(current,registeredID);current=undefined;registeredID=undefined};onBeforeUnmount(release);watch(value,()=>{if(current===undefined)return;root.unregister(current,registeredID);registeredID=value();root.register(current,registeredID)});return element=>{const next=element instanceof HTMLElement?element:undefined;if(next===current)return;release();current=next;if(current!==undefined){registeredID=value();root.register(current,registeredID)}}}function useSequenceContext(part){const context=inject(sequenceKey);if(context===undefined)throw new TypeError(`${part} must be used inside SequenceReorderRoot.`);return context}function useTreeContext(part){const context=inject(treeKey);if(context===undefined)throw new TypeError(`${part} must be used inside TreeReorderRoot.`);return context}export const TreeReorderDropTarget=/* @__PURE__ */defineComponent({name:'SectileTreeReorderDropTarget',inheritAttrs:false,props:{parentID:{type:String,default:null},beforeID:{type:String,default:undefined},label:{type:String,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=useTreeContext('TreeReorderDropTarget');let current;const release=()=>{const previous=current;current=undefined;if(previous)root.unregisterTarget(previous)};const register=()=>{if(current)root.registerTarget(current,{parentID:props.parentID,...props.beforeID===undefined?{}:{beforeID:props.beforeID}})};onBeforeUnmount(release);watch([()=>props.parentID,()=>props.beforeID],register,{flush:'post'});const elementRef=element=>{const next=typeof HTMLElement!=='undefined'&&element instanceof HTMLElement?element:undefined;if(next===current)return;release();current=next;register()};return()=>h(Primitive,mergeProps({role:root.columns()?'list':'group'},attrs,{as:props.as,asChild:props.asChild,elementRef,'aria-label':props.label??attrs['aria-label'],'data-scope':'tree-reorder','data-part':'drop-target'}),slots)}});function createReorderHandle(name,scope){return defineComponent({name,inheritAttrs:false,props:{label:{type:String,required:true},disabled:{type:Boolean,default:false},as:{type:[String,Object,Function],default:'button'},asChild:{type:Boolean,default:false}},setup(props,{attrs,slots}){const root=scope==='sequence'?useSequenceContext(name):useTreeContext(name);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==='button'?'button':undefined,disabled:props.disabled||root.disabled(),'aria-label':props.label,'aria-keyshortcuts':'Alt+ArrowUp Alt+ArrowDown Alt+ArrowLeft Alt+ArrowRight Alt+Home Alt+End','data-sectile-reorder-handle':'','data-scope':scope==='sequence'?'sequence-reorder':'tree-reorder','data-part':'handle'}),slots)}})}export const SequenceReorderHandle=/* @__PURE__ */createReorderHandle('SectileSequenceReorderHandle','sequence');export const TreeReorderHandle=/* @__PURE__ */createReorderHandle('SectileTreeReorderHandle','tree');
|
|
2
2
|
//# sourceMappingURL=reorder.js.map
|
package/dist/reorder.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reorder.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onMounted","provide","shallowRef","watch","createReorder","createSequenceReorderState","createTreeReorderState","getSequenceReorderOrder","getTreeReorderHierarchy","applyTreeReorderEvent","unwrap","Primitive","useHostActive","useHostDirection","useNextTickTask","emptyItems","Object","freeze","treeContextPort","source","port","value","position","id","level","size","disabled","columns","getChildren","parent","getParent","register","element","unregister","registerTarget","target","unregisterTarget","retire","undefined","treeExposure","move","canMove","focus","sequenceKey","Symbol","treeKey","rootProps","handleOnly","type","Boolean","default","label","String","roleDescription","controlled","orientation","as","Function","asChild","SequenceRootImplementation","name","inheritAttrs","props","assign","items","Array","required","emits","_items","slots","setup","attrs","emit","root","connection","current","registrations","Map","connect","disconnect","ids","reorderLabelOptions","onOrderChange","getSnapshot","state","setItemAttributes","indexOf","length","set","get","delete","removeItem","syncOrder","elementRef","HTMLElement","role","SequenceReorderItem","useSequenceContext","useReorderItemRef","setSize","SequenceReorderRoot","TreeRootImplementation","nodes","readonly","layout","direction","policies","_nodes","expose","maxDepth","targets","active","inheritedDirection","alive","mounted","generation","connectedElement","pendingFocus","repairFocus","pending","focused","ownerDocument","activeElement","previous","body","replacement","contains","has","validTarget","parentID","beforeID","ok","projectTargets","native","setDropTarget","removeDropTarget","force","expected","isCurrent","readOnly","onUpdate","error","context","tree","parentOf","siblings","roots","childrenOf","depthOf","schedule","canReorder","exposure","handleEvent","cancel","clear","flush","tabindex","dir","TreeReorderRoot","TreeReorderItem","useTreeContext","registeredID","release","next","part","TypeError","TreeReorderDropTarget","createReorderHandle","scope","SequenceReorderHandle","TreeReorderHandle"],"sources":["../src/reorder.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"reorder.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onMounted","provide","shallowRef","watch","createReorder","createSequenceReorderState","createTreeReorderState","getSequenceReorderOrder","getTreeReorderHierarchy","applyTreeReorderEvent","unwrap","failResult","Primitive","useHostActive","useHostDirection","useNextTickTask","emptyItems","Object","freeze","idleInteraction","sourceID","input","target","allowed","clientPoint","previewPort","source","port","value","getPreviewState","cancelInteraction","refreshDropTarget","retire","undefined","treeContextPort","position","id","level","size","disabled","columns","getChildren","parent","getParent","register","element","unregister","registerTarget","unregisterTarget","treeExposure","move","canMove","focus","sequenceKey","Symbol","treeKey","rootProps","keyboardMode","type","String","default","handleOnly","Boolean","label","roleDescription","controlled","orientation","as","Function","asChild","SequenceRootImplementation","name","inheritAttrs","props","assign","items","Array","required","emits","_items","_change","slots","setup","attrs","emit","root","connection","current","interaction","active","preview","ok","registrations","Map","connect","disconnect","ids","reorderLabelOptions","onOrderChange","getSnapshot","state","onInteractionChange","change","onUpdate","getInteractionSnapshot","setItemAttributes","indexOf","length","set","get","delete","removeItem","previous","clear","syncOrder","elementRef","HTMLElement","role","SequenceReorderItem","useSequenceContext","useReorderItemRef","setSize","SequenceReorderRoot","TreeRootImplementation","nodes","readonly","layout","direction","policies","_nodes","expose","maxDepth","targets","inheritedDirection","alive","mounted","generation","connectedElement","pendingFocus","repairFocus","pending","focused","ownerDocument","activeElement","body","replacement","contains","has","validTarget","parentID","beforeID","projectTargets","native","setDropTarget","removeDropTarget","force","expected","isCurrent","readOnly","error","context","tree","parentOf","siblings","roots","childrenOf","depthOf","schedule","canReorder","exposure","handleEvent","cancel","flush","tabindex","dir","TreeReorderRoot","TreeReorderItem","useTreeContext","registeredID","release","next","part","TypeError","TreeReorderDropTarget","createReorderHandle","scope","SequenceReorderHandle","TreeReorderHandle"],"sources":["../src/reorder.ts"],"mappings":"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","ignoreList":[]}
|
package/dist/spin-button.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createSpinButton}from"@sectile/dom/spin-button";import{Primitive}from"./primitive.js";import{useFormControlFlags,useNativeInputFormControl}from"./form/control.js";const spinButtonKey=Symbol("SectileSpinButtonRoot");const partProps={label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}};const SpinButtonRoot=defineComponent({name:"SectileSpinButtonRoot",inheritAttrs:false,props:{min:{type:[Number,String],required:true},max:{type:[Number,String],required:true},step:{type:[Number,String],default:1},pageStep:{type:Number,default:10},modelValue:{type:[Number,String],default:void 0},defaultValue:{type:[Number,String],default:void 0},draft:{type:String,default:void 0},defaultDraft:{type:String,default:null},policies:{type:Object,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:draft":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const flags=useFormControlFlags(props);const valueControlled=props.modelValue!==void 0;const draftControlled=props.draft!==void 0;const connection=shallowRef();const inputElement=shallowRef();const initialValue=String(props.defaultValue??props.min);const initialDraft=props.defaultDraft;const value=shallowRef(String(props.modelValue??initialValue));const draft=shallowRef(props.draft!==void 0?props.draft:initialDraft);const revision=shallowRef(0);const noDraftProposal=Symbol("no-draft-proposal");let proposedDraft=noDraftProposal;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const state=computed(()=>({value:value.value,draft:draft.value,text:draft.value??value.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const min=computed(()=>String(props.min));const max=computed(()=>String(props.max));const label=computed(()=>props.label);const update=()=>{if(connection.value===void 0)return;const snapshot=connection.value.getSnapshot();revision.value=snapshot.revision;value.value=snapshot.state.value;draft.value=snapshot.state.draft};const disconnect=()=>{if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;inputComposing=false;proposedDraft=noDraftProposal;connection.value?.disconnect();connection.value=void 0;inputElement.value=void 0};const connect=input=>{const pendingDraft=proposedDraft;
|
|
1
|
+
import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createSpinButton}from"@sectile/dom/spin-button";import{Primitive}from"./primitive.js";import{useFormControlFlags,useNativeInputFormControl}from"./form/control.js";const spinButtonKey=Symbol("SectileSpinButtonRoot");const partProps={label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}};const SpinButtonRoot=defineComponent({name:"SectileSpinButtonRoot",inheritAttrs:false,props:{min:{type:[Number,String],required:true},max:{type:[Number,String],required:true},step:{type:[Number,String],default:1},pageStep:{type:Number,default:10},modelValue:{type:[Number,String],default:void 0},defaultValue:{type:[Number,String],default:void 0},draft:{type:String,default:void 0},defaultDraft:{type:String,default:null},policies:{type:Object,default:void 0},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:draft":_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const flags=useFormControlFlags(props);const valueControlled=props.modelValue!==void 0;const draftControlled=props.draft!==void 0;const connection=shallowRef();const inputElement=shallowRef();const initialValue=String(props.defaultValue??props.min);const initialDraft=props.defaultDraft;const value=shallowRef(String(props.modelValue??initialValue));const draft=shallowRef(props.draft!==void 0?props.draft:initialDraft);const revision=shallowRef(0);const noDraftProposal=Symbol("no-draft-proposal");let proposedDraft=noDraftProposal;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;const state=computed(()=>({value:value.value,draft:draft.value,text:draft.value??value.value,disabled:flags.value.disabled,readonly:flags.value.readonly}));const min=computed(()=>connection.value?.range.lower??String(props.min));const max=computed(()=>connection.value?.range.upper??String(props.max));const label=computed(()=>props.label);const update=()=>{if(connection.value===void 0)return;const snapshot=connection.value.getSnapshot();revision.value=snapshot.revision;value.value=snapshot.state.value;draft.value=snapshot.state.draft};const disconnect=()=>{if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;inputComposing=false;proposedDraft=noDraftProposal;connection.value?.disconnect();connection.value=void 0;inputElement.value=void 0};const connect=input=>{const pendingDraft=proposedDraft;const nextConnection=createSpinButton({input,min:String(props.min),max:String(props.max),step:String(props.step),policies:{...props.policies,page:props.pageStep},...valueControlled?{value:String(props.modelValue)}:{defaultValue:value.value},...draftControlled?{draft:pendingDraft===noDraftProposal?props.draft:pendingDraft}:{defaultDraft:draft.value},disabled:flags.value.disabled,readOnly:flags.value.readonly,...props.label===void 0?{}:{label:props.label},onValueChange:next=>emit("update:modelValue",next),onDraftChange:next=>{emit("update:draft",next);if(!draftControlled)return;proposedDraft=next;const proposal=next;void nextTick(()=>{if(connection.value===void 0||proposedDraft!==proposal)return;proposedDraft=noDraftProposal;sync()})},onUpdate:update});disconnect();proposedDraft=pendingDraft;inputElement.value=input;connection.value=nextConnection;update()};const reset=()=>{queueMicrotask(()=>{value.value=valueControlled?String(props.modelValue):initialValue;draft.value=draftControlled?props.draft:initialDraft;proposedDraft=noDraftProposal;if(inputElement.value!==void 0)connect(inputElement.value)})};const sync=()=>{const target=connection.value;if(target===void 0)return;const result=target.syncControlledValues({...valueControlled?{value:String(props.modelValue)}:{},...draftControlled?{draft:props.draft}:{}});if(!result.ok)throw new TypeError("Controlled spin button state could not be synchronized.");update()};const requestReconnect=()=>{if(inputComposing){reconnectPending=true;return}if(inputElement.value!==void 0)connect(inputElement.value)};const setInputComposing=composing=>{inputComposing=composing;if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(inputComposing||inputElement.value===void 0)return;reconnectPending=false;connect(inputElement.value)},0)};watch([()=>props.min,()=>props.max,()=>props.step,()=>props.pageStep,()=>props.policies,()=>props.modelValue,()=>props.draft,()=>flags.value.disabled,()=>flags.value.readonly],(next,previous)=>{proposedDraft=noDraftProposal;if(next.slice(0,5).some((value2,index)=>value2!==previous[index])||next[7]!==previous[7]||next[8]!==previous[8])requestReconnect();else if(inputComposing&&reconnectPending)return;else sync()});provide(spinButtonKey,{state,min,max,label,connection,connect,disconnect,reset,setInputComposing,step:event=>{if(connection.value?.handleEvent(event))update()}});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"spin-button","data-part":"root","data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0,"data-revision":String(revision.value)}),{default:()=>slots["default"]?.(state.value)})}});const SpinButtonInput=defineComponent({name:"SectileSpinButtonInput",inheritAttrs:false,props:{name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},as:{type:[String,Object,Function],default:"input"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useSpinButton("SpinButtonInput");const input=shallowRef(null);const participation=useNativeInputFormControl(input,{reset:root.reset});const renderServerValue=typeof window==="undefined";onMounted(()=>{if(input.value===null)throw new TypeError("SpinButtonInput must render an input element.");root.connect(input.value)});onBeforeUnmount(root.disconnect);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{input.value=element instanceof HTMLInputElement?element:null},role:"spinbutton",type:"text",name:props.name,form:props.form,required:props.required,inputmode:"decimal",...renderServerValue?{value:root.state.value.text}:{},disabled:root.state.value.disabled,readonly:root.state.value.readonly,onCompositionstart:()=>root.setInputComposing(true),onCompositionend:()=>root.setInputComposing(false),"aria-label":root.label.value,"aria-valuemin":root.min.value,"aria-valuemax":root.max.value,"aria-valuenow":root.state.value.value,"aria-disabled":String(root.state.value.disabled),"aria-readonly":String(root.state.value.readonly),"data-scope":"spin-button","data-part":"input"},participation.controlProps.value),{default:()=>slots["default"]?.(root.state.value)})}});const SpinButtonIncrement=createTrigger("Increment","increment");const SpinButtonDecrement=createTrigger("Decrement","decrement");function createTrigger(name,event){return defineComponent({name:`SectileSpinButton${name}`,inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useSpinButton(`SpinButton${name}`);return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled||root.state.value.readonly,"aria-label":props.label??attrs["aria-label"]??name,"data-scope":"spin-button","data-part":event,onClick:click=>{if(!click.defaultPrevented)root.step(event)}}),{default:()=>slots["default"]?.(root.state.value)})}})}function useSpinButton(part){const context=inject(spinButtonKey);if(context===void 0)throw new TypeError(`${part} must be used inside SpinButtonRoot.`);return context}export{SpinButtonDecrement,SpinButtonIncrement,SpinButtonInput,SpinButtonRoot};
|
|
2
2
|
//# sourceMappingURL=spin-button.js.map
|
package/dist/spin-button.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/spin-button.ts"],"mappings":"AAAA,OACE,SACA,gBACA,EACA,OACA,WACA,SACA,gBACA,UACA,QACA,WACA,UAMK,MACP,OACE,qBAGK,2BACP,OAAS,cAAmC,iBAC5C,OAAS,oBAAqB,8BAAiC,oBA+C/D,MAAM,cAAgB,OAAO,uBAAuB,EACpD,MAAM,UAAY,CAChB,MAAO,CAAE,KAAM,OAAQ,QAAS,MAAS,EACzC,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,QAAQ,EAClF,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAGnC,MAAM,eAAiB,gBAAgB,CAC5C,KAAM,wBACN,aAAc,MACd,MAAO,CACL,IAAK,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,SAAU,IAAI,EAC7C,IAAK,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,SAAU,IAAI,EAC7C,KAAM,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,CAAC,EAC1C,SAAU,CAAE,KAAM,OAAQ,QAAS,EAAE,EACrC,WAAY,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,MAAS,EACxD,aAAc,CAAE,KAAM,CAAC,OAAQ,MAAM,EAAG,QAAS,MAAS,EAC1D,MAAO,CAAE,KAAM,OAAmC,QAAS,MAAS,EACpE,aAAc,CAAE,KAAM,OAAmC,QAAS,IAAI,EACtE,SAAU,CAAE,KAAM,OAAmD,QAAS,MAAS,EACvF,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,SAAU,CAAE,KAAM,QAAS,QAAS,KAAK,EACzC,MAAO,CAAE,KAAM,OAAQ,QAAS,MAAS,EACzC,GAAI,CAAE,KAAM,CAAC,OAAQ,OAAQ,QAAQ,EAA4B,QAAS,KAAK,EAC/E,QAAS,CAAE,KAAM,QAAS,QAAS,KAAK,GAE1C,MAAO,CACL,oBAAsB,QAA4B,KAClD,eAAiB,QAAmC,MAEtD,MAAO,OACP,MAAM,MAAO,CAAE,MAAO,KAAM,KAAK,EAAE,CACjC,MAAM,MAAQ,oBAAoB,KAAK,EACvC,MAAM,gBAAkB,MAAM,aAAe,OAC7C,MAAM,gBAAkB,MAAM,QAAU,OACxC,MAAM,WAAa,WAAU,EAC7B,MAAM,aAAe,WAAU,EAC/B,MAAM,aAAe,OAAO,MAAM,cAAgB,MAAM,GAAG,EAC3D,MAAM,aAAe,MAAM,aAC3B,MAAM,MAAQ,WAAW,OAAO,MAAM,YAAc,YAAY,CAAC,EACjE,MAAM,MAAQ,WAA0B,MAAM,QAAU,OAAY,MAAM,MAAQ,YAAY,EAC9F,MAAM,SAAW,WAAW,CAAC,EAC7B,MAAM,gBAAkB,OAAO,mBAAmB,EAClD,IAAI,cAAwD,gBAC5D,IAAI,eAAiB,MACrB,IAAI,iBAAmB,MACvB,IAAI,eAAuD,KAC3D,MAAM,MAAQ,SAA8B,KAAO,CACjD,MAAO,MAAM,MACb,MAAO,MAAM,MACb,KAAM,MAAM,OAAS,MAAM,MAC3B,SAAU,MAAM,MAAM,SACtB,SAAU,MAAM,MAAM,UACtB,EACF,MAAM,IAAM,SAAS,IAAM,OAAO,MAAM,GAAG,CAAC,
|
|
1
|
+
{"version":3,"sources":["../src/spin-button.ts"],"mappings":"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","names":["value"],"file":"spin-button.js"}
|
package/dist/text.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,getCurrentInstance,h,mergeProps,nextTick,onBeforeUnmount,onMounted,onUpdated,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useFormControlFlags,useNativeInputFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{captureNativeTextState}from"./input/native-text-state.js";import{cancelTextComposition,findTextQuery}from"@sectile/core/text";import{okResult}from"@sectile/core/result";function rejectedTextEdit(reason){return Object.freeze({status:"rejected",reason})}function textFieldClear(port){return()=>port.request?.()??false}function textFieldRead(port){return()=>port.read?.()??null}function textFieldQuery(port){return options=>port.query?.(options)??okResult(null)}function textFieldReplace(port){return request=>port.replace?.(request)??Promise.resolve(rejectedTextEdit("unavailable"))}const TextFieldImplementation=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true,snapshotChange:()=>true},setup(props,{attrs,emit}){const flags=useFormControlFlags(props);const instance=getCurrentInstance();const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let connectedElement=null;let proposedState=null;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;let mounted=false;let snapshotNotificationPending=false;const clearPort={request:null,read:null,query:null,replace:null};let clearing=null;let frame=null;let synchronizedModelValue=props.modelValue;Object.defineProperty(instance.proxy,"clear",{configurable:true,value:textFieldClear(clearPort)});Object.defineProperty(instance.proxy,"getTextSnapshot",{configurable:true,value:textFieldRead(clearPort)});Object.defineProperty(instance.proxy,"getTextQuery",{configurable:true,value:textFieldQuery(clearPort)});Object.defineProperty(instance.proxy,"replaceText",{configurable:true,value:textFieldReplace(clearPort)});function notifySnapshotChange(){if(!mounted||snapshotNotificationPending||!instance.vnode.props?.["onSnapshotChange"])return;snapshotNotificationPending=true;void nextTick(()=>{snapshotNotificationPending=false;if(mounted)emit("snapshotChange")})}const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:flags.value.disabled,readOnly:flags.value.readonly,onValueChange:change=>{frame=null;if(clearing!==null&&clearing.proposal===null)clearing.proposal=change.value;const wasComposing=proposedState!==null&&proposedState.composition!==null;const selectionOnly=change.value.snapshot.text===change.previousValue.snapshot.text&&change.value.composition===change.previousValue.composition;proposedState=change.value;if(change.value.composition!==null){notifySnapshotChange();return}if(selectionOnly){if(!props.modelModifiers.lazy)settleControlledProposal(change.value);notifySnapshotChange();return}if(props.modelModifiers.lazy){if(wasComposing)settleControlledProposal(change.value);notifySnapshotChange();return}emit("update:modelValue",change.value.snapshot.text);settleControlledProposal(change.value,clearing?.restore??null);notifySnapshotChange()}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;frame=null;synchronizedModelValue=props.modelValue;connection?.disconnect();connection=null;connectedElement=element.value;controller=createController(state);connection=connectText({controller,element:element.value,disabled:flags.value.disabled,readOnly:flags.value.readonly,onTransition:({input})=>{if(!controlled||props.modelModifiers.lazy||input.type!=="composition-commit")return;const proposal=proposedState;if(proposal===null||proposal.composition!==null||connection===null)return;const result=connection.syncControlledValues({value:proposal});if(!result.ok)throw new TypeError(result.error.message)}});connection.render();notifySnapshotChange()};const requestReconnect=()=>{if(inputComposing){reconnectPending=true;return}const state=proposedState??controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)};const setInputComposing=composing=>{inputComposing=composing;if(composing)frame=null;notifySnapshotChange();if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;requestReconnect()},0)};function synchronizeControlledState(state,proposal){if(connection===null)return;frame=null;synchronizedModelValue=props.modelValue;if(props.modelModifiers.lazy)mountConnection(state);else{const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)}if(clearing!==null&&proposal!==null&&clearing.proposal===proposal&&connection!==null){clearing.settlement={accepted:state===proposal,connection,revision:connection.getSnapshot().revision}}notifySnapshotChange()}function settleControlledProposal(proposal,restore=null){if(!controlled)return;void nextTick(()=>{if(connection===null||proposedState!==proposal||props.modelValue===void 0)return;proposedState=null;const text=String(props.modelValue);const state=proposal.snapshot.text===text?proposal:restore?.snapshot.text===text?restore:createTextState(text);synchronizeControlledState(state,proposal)})}const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>{if(!mounted)return;inputComposing=false;proposedState=null;reconnectPending=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;mountConnection(createTextState(controlled?String(props.modelValue):initialValue))})}});onMounted(()=>{mounted=true;mountConnection(createTextState(initialValue))});onUpdated(()=>{if(!mounted||element.value===null||connectedElement===element.value)return;let state=proposedState??controller?.getSnapshot().state??createTextState(initialValue);if(state.composition!==null){const cancelled=cancelTextComposition(state);if(!cancelled.ok)throw new TypeError(cancelled.error.message);state=cancelled.value}inputComposing=false;reconnectPending=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;proposedState=null;mountConnection(state)});onBeforeUnmount(()=>{clearPort.request=null;clearPort.read=null;clearPort.query=null;clearPort.replace=null;frame=null;clearing=null;mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection?.disconnect();connection=null;connectedElement=null;controller=null;proposedState=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;if(proposedState!==null&&proposedState.composition!==null)return;const text=String(value);const proposal=proposedState;const state=proposal?.snapshot.text===text?proposal:createTextState(text);proposedState=null;synchronizeControlledState(state,proposal)});watch([()=>flags.value.disabled,()=>flags.value.readonly],requestReconnect);const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};clearPort.request=()=>{let target=connection;const input=element.value;if(!mounted||!target||!input||clearing||flags.value.disabled||flags.value.readonly||inputComposing)return false;const state=proposedState??target.getSnapshot().state;if(state.composition!==null||state.snapshot.text.length===0)return false;if(connectedElement!==input){mountConnection(state);target=connection;if(!mounted||!target||connectedElement!==input){connection?.disconnect();connection=null;connectedElement=null;controller=null;return false}}const operation={restore:controlled?captureNativeTextState(input,state.snapshot.text):null,proposal:null,settlement:null};clearing=operation;try{const accepted=target.handleEvent({type:"input",inputType:"deleteByCut",text:"",startCodeUnitOffset:0,endCodeUnitOffset:state.snapshot.text.length,selection:{anchorCodeUnitOffset:0,focusCodeUnitOffset:0}});if(accepted&&mounted&&connection===target&&props.modelModifiers.lazy){const proposal=proposedState;commitLazyValue();if(mounted&&connection===target&&proposal)settleControlledProposal(proposal,operation.restore)}return accepted}finally{clearing=null}};clearPort.read=()=>{const target=connection,input=element.value;if(!mounted||!target||!input||connectedElement!==input||inputComposing||controlled&&props.modelValue!==synchronizedModelValue)return null;const current=target.getSnapshot(),state=current.state;if(state.composition!==null||input.value!==state.snapshot.text)return null;const start=input.selectionStart,end=input.selectionEnd;if(start===null||end===null)return null;const backward=input.selectionDirection==="backward",selection=state.snapshot.selection;if(selection.anchorCodeUnitOffset!==(backward?end:start)||selection.focusCodeUnitOffset!==(backward?start:end))return null;if(frame?.connection===target&&frame.revision===current.revision)return frame.snapshot;const snapshot=Object.freeze({text:state.snapshot.text,selection});frame={snapshot,connection:target,revision:current.revision};return snapshot};clearPort.query=options=>{const snapshot=clearPort.read?.(),target=connection;if(!snapshot||!target)return okResult(null);const query=findTextQuery(target.getSnapshot().state,options);if(!query.ok)return query;if(query.value===null)return okResult(null);return okResult(Object.freeze({...query.value,snapshot}))};clearPort.replace=async request=>{if(typeof request!=="object"||request===null)return rejectedTextEdit("invalid");const{snapshot,startCodeUnitOffset,endCodeUnitOffset,text}=request;if(typeof text!=="string"||typeof startCodeUnitOffset!=="number"||typeof endCodeUnitOffset!=="number")return rejectedTextEdit("invalid");const target=connection,input=element.value;if(!mounted||!target||!input||connectedElement!==input)return rejectedTextEdit("unavailable");if(flags.value.disabled)return rejectedTextEdit("disabled");if(flags.value.readonly)return rejectedTextEdit("readonly");if(inputComposing||target.getSnapshot().state.composition!==null)return rejectedTextEdit("composing");if(clearing!==null)return rejectedTextEdit("busy");const issued=clearPort.read?.();if(!issued||issued!==snapshot)return rejectedTextEdit("stale");const operation={restore:target.getSnapshot().state,proposal:null,settlement:null};clearing=operation;try{const caret=startCodeUnitOffset+text.length;const dispatched=target.handleEvent({type:"input",inputType:"insertReplacementText",text,startCodeUnitOffset,endCodeUnitOffset,selection:{anchorCodeUnitOffset:caret,focusCodeUnitOffset:caret}});if(!mounted||connection===null)return rejectedTextEdit("unavailable");if(!dispatched)return rejectedTextEdit("invalid");const proposal=operation.proposal;if(proposal!==null&&props.modelModifiers.lazy){if(proposal.snapshot.text!==operation.restore?.snapshot.text)commitLazyValue();if(mounted&&connection===target&&controlled)settleControlledProposal(proposal,operation.restore)}if(!mounted||connection===null)return rejectedTextEdit("unavailable");if(connection!==target)return rejectedTextEdit("stale");if(!controlled&&proposal!==null&&target.getSnapshot().state!==proposal)return rejectedTextEdit("stale");if(proposal===null||!controlled)operation.settlement={accepted:true,connection:target,revision:target.getSnapshot().revision};await nextTick();if(!mounted||connection===null)return rejectedTextEdit("unavailable");const settled=operation.settlement;if(settled===null||settled.connection!==connection||settled.revision!==connection.getSnapshot().revision||connectedElement!==input||flags.value.disabled||flags.value.readonly)return rejectedTextEdit("stale");if(!settled.accepted)return rejectedTextEdit("refused");const committed=clearPort.read?.();return committed?Object.freeze({status:"accepted",snapshot:committed}):rejectedTextEdit("stale")}finally{if(clearing===operation)clearing=null}};return()=>h(props.multiline?"textarea":"input",mergeProps(attrs,{ref:element,...!props.multiline?{type:props.type}:{},...renderServerValue?{value:initialValue}:{defaultValue:controlled?String(props.modelValue):initialValue},disabled:flags.value.disabled,readonly:flags.value.readonly,required:flags.value.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false),onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0},participation.controlProps.value))}});const TextField=TextFieldImplementation;export{TextField};
|
|
1
|
+
import{defineComponent,getCurrentInstance,h,mergeProps,nextTick,onBeforeUnmount,onBeforeUpdate,onMounted,onUpdated,shallowRef,watch}from"vue";import{connectText,createTextController,createTextState}from"@sectile/dom/text";import{useFormControlFlags,useNativeInputFormControl}from"./form/control.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{captureNativeTextState}from"./input/native-text-state.js";import{cancelTextComposition,findTextQuery}from"@sectile/core/text";import{okResult}from"@sectile/core/result";function rejectedTextEdit(reason){return Object.freeze({status:"rejected",reason})}function textFieldClear(port){return()=>port.request?.()??false}function textFieldRead(port){return()=>port.read?.()??null}function textFieldQuery(port){return options=>port.query?.(options)??okResult(null)}function textFieldReplace(port){return request=>port.replace?.(request)??Promise.resolve(rejectedTextEdit("unavailable"))}const TextFieldImplementation=defineComponent({name:"SectileTextField",inheritAttrs:false,props:{modelValue:{type:[String,Number],default:void 0},defaultValue:{type:[String,Number],default:""},modelModifiers:{type:Object,default:()=>({})},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},multiline:{type:Boolean,default:false},type:{type:String,default:"text"},name:{type:String,default:void 0},form:{type:String,default:void 0},required:{type:Boolean,default:false},placeholder:{type:String,default:void 0},autocomplete:{type:String,default:void 0}},emits:{"update:modelValue":_value=>true,snapshotChange:()=>true},setup(props,{attrs,emit}){const flags=useFormControlFlags(props);const instance=getCurrentInstance();const element=shallowRef(null);const controlled=useControlledStateInvariant("TextField","modelValue",()=>props.modelValue);const initialValue=String(controlled?props.modelValue:props.defaultValue);const multiline=shallowRef(props.multiline);let replacement=null;const renderServerValue=typeof window==="undefined";let controller=null;let connection=null;let connectedElement=null;let proposedState=null;let inputComposing=false;let reconnectPending=false;let reconnectTimer=null;let mounted=false;let snapshotNotificationPending=false;const clearPort={request:null,read:null,query:null,replace:null};let clearing=null;let frame=null;let synchronizedModelValue=props.modelValue;Object.defineProperty(instance.proxy,"clear",{configurable:true,value:textFieldClear(clearPort)});Object.defineProperty(instance.proxy,"getTextSnapshot",{configurable:true,value:textFieldRead(clearPort)});Object.defineProperty(instance.proxy,"getTextQuery",{configurable:true,value:textFieldQuery(clearPort)});Object.defineProperty(instance.proxy,"replaceText",{configurable:true,value:textFieldReplace(clearPort)});function notifySnapshotChange(){if(!mounted||snapshotNotificationPending||!instance.vnode.props?.["onSnapshotChange"])return;snapshotNotificationPending=true;void nextTick(()=>{snapshotNotificationPending=false;if(mounted)emit("snapshotChange")})}const createController=state=>{const result=createTextController({...controlled&&!props.modelModifiers.lazy?{value:state}:{defaultValue:state},disabled:flags.value.disabled,readOnly:flags.value.readonly,onValueChange:change=>{frame=null;if(clearing!==null&&clearing.proposal===null)clearing.proposal=change.value;const wasComposing=proposedState!==null&&proposedState.composition!==null;const selectionOnly=change.value.snapshot.text===change.previousValue.snapshot.text&&change.value.composition===change.previousValue.composition;proposedState=change.value;if(change.value.composition!==null){notifySnapshotChange();return}if(selectionOnly){if(!props.modelModifiers.lazy)settleControlledProposal(change.value);notifySnapshotChange();return}if(props.modelModifiers.lazy){if(wasComposing)settleControlledProposal(change.value);notifySnapshotChange();return}emit("update:modelValue",change.value.snapshot.text);settleControlledProposal(change.value,clearing?.restore??null);notifySnapshotChange()}});if(!result.ok)throw new TypeError(result.error.message);return result.value};const mountConnection=state=>{if(!mounted||element.value===null)return;frame=null;synchronizedModelValue=props.modelValue;connection?.disconnect();connection=null;connectedElement=element.value;controller=createController(state);connection=connectText({controller,element:element.value,disabled:flags.value.disabled,readOnly:flags.value.readonly,onTransition:({input})=>{if(!controlled||props.modelModifiers.lazy||input.type!=="composition-commit")return;const proposal=proposedState;if(proposal===null||proposal.composition!==null||connection===null)return;const result=connection.syncControlledValues({value:proposal});if(!result.ok)throw new TypeError(result.error.message)}});connection.render();notifySnapshotChange()};const requestReconnect=()=>{if(inputComposing){reconnectPending=true;return}if(multiline.value!==props.multiline){if(!props.multiline&&/[\r\n]/u.test(connectedElement?.value??""))return;multiline.value=props.multiline;return}const state=proposedState??controller?.getSnapshot().state??createTextState(String(controlled?props.modelValue:props.defaultValue));mountConnection(state)};const setInputComposing=composing=>{inputComposing=composing;if(composing)frame=null;notifySnapshotChange();if(composing||!reconnectPending||reconnectTimer!==null)return;reconnectTimer=setTimeout(()=>{reconnectTimer=null;if(!mounted||inputComposing)return;reconnectPending=false;requestReconnect()},0)};function synchronizeControlledState(state,proposal){if(connection===null)return;frame=null;synchronizedModelValue=props.modelValue;if(props.modelModifiers.lazy)mountConnection(state);else{const result=connection.syncControlledValues({value:state});if(!result.ok)throw new TypeError(result.error.message)}if(clearing!==null&&proposal!==null&&clearing.proposal===proposal&&connection!==null){clearing.settlement={accepted:state===proposal,connection,revision:connection.getSnapshot().revision}}notifySnapshotChange()}function settleControlledProposal(proposal,restore=null){if(!controlled)return;void nextTick(()=>{if(connection===null||proposedState!==proposal||props.modelValue===void 0)return;proposedState=null;const text=String(props.modelValue);const state=proposal.snapshot.text===text?proposal:restore?.snapshot.text===text?restore:createTextState(text);synchronizeControlledState(state,proposal)})}const participation=useNativeInputFormControl(element,{reset:()=>{queueMicrotask(()=>{if(!mounted)return;inputComposing=false;proposedState=null;reconnectPending=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;mountConnection(createTextState(controlled?String(props.modelValue):initialValue))})}});onMounted(()=>{mounted=true;mountConnection(createTextState(controlled?String(props.modelValue):initialValue))});onBeforeUpdate(()=>{const previous=connectedElement;if(!mounted||!previous||previous.tagName==="TEXTAREA"===multiline.value)return;replacement={state:captureNativeTextState(previous,previous.value),focused:previous.ownerDocument.activeElement===previous}});onUpdated(()=>{if(!mounted||element.value===null||connectedElement===element.value)return;const preserved=replacement;replacement=null;let state=preserved?.state??proposedState??controller?.getSnapshot().state??createTextState(initialValue);if(state.composition!==null){const cancelled=cancelTextComposition(state);if(!cancelled.ok)throw new TypeError(cancelled.error.message);state=cancelled.value}inputComposing=false;reconnectPending=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;proposedState=null;mountConnection(state);if(preserved?.focused&&!flags.value.disabled){const focused=element.value.ownerDocument.activeElement;if(focused===null||focused===element.value.ownerDocument.body)element.value.focus({preventScroll:true})}});onBeforeUnmount(()=>{clearPort.request=null;clearPort.read=null;clearPort.query=null;clearPort.replace=null;frame=null;clearing=null;mounted=false;if(reconnectTimer!==null)clearTimeout(reconnectTimer);reconnectTimer=null;reconnectPending=false;connection?.disconnect();connection=null;connectedElement=null;controller=null;proposedState=null;replacement=null});watch(()=>props.modelValue,value=>{if(!controlled||value===void 0||connection===null)return;if(proposedState!==null&&proposedState.composition!==null)return;const text=String(value);const proposal=proposedState;const state=proposal?.snapshot.text===text?proposal:createTextState(text);proposedState=null;synchronizeControlledState(state,proposal)});watch([()=>flags.value.disabled,()=>flags.value.readonly,()=>props.multiline],requestReconnect);const commitLazyValue=()=>{if(!props.modelModifiers.lazy||controller===null)return;emit("update:modelValue",controller.getSnapshot().state.snapshot.text)};clearPort.request=()=>{let target=connection;const input=element.value;if(!mounted||!target||!input||clearing||flags.value.disabled||flags.value.readonly||inputComposing)return false;const state=proposedState??target.getSnapshot().state;if(state.composition!==null||state.snapshot.text.length===0)return false;if(connectedElement!==input){mountConnection(state);target=connection;if(!mounted||!target||connectedElement!==input){connection?.disconnect();connection=null;connectedElement=null;controller=null;return false}}const operation={restore:controlled?captureNativeTextState(input,state.snapshot.text):null,proposal:null,settlement:null};clearing=operation;try{const accepted=target.handleEvent({type:"input",inputType:"deleteByCut",text:"",startCodeUnitOffset:0,endCodeUnitOffset:state.snapshot.text.length,selection:{anchorCodeUnitOffset:0,focusCodeUnitOffset:0}});if(accepted&&mounted&&connection===target&&props.modelModifiers.lazy){const proposal=proposedState;commitLazyValue();if(mounted&&connection===target&&proposal)settleControlledProposal(proposal,operation.restore)}return accepted}finally{clearing=null}};clearPort.read=()=>{const target=connection,input=element.value;if(!mounted||!target||!input||connectedElement!==input||inputComposing||controlled&&props.modelValue!==synchronizedModelValue)return null;const current=target.getSnapshot(),state=current.state;if(state.composition!==null||input.value!==state.snapshot.text)return null;const start=input.selectionStart,end=input.selectionEnd;if(start===null||end===null)return null;const backward=input.selectionDirection==="backward",selection=state.snapshot.selection;if(selection.anchorCodeUnitOffset!==(backward?end:start)||selection.focusCodeUnitOffset!==(backward?start:end))return null;if(frame?.connection===target&&frame.revision===current.revision)return frame.snapshot;const snapshot=Object.freeze({text:state.snapshot.text,selection});frame={snapshot,connection:target,revision:current.revision};return snapshot};clearPort.query=options=>{const snapshot=clearPort.read?.(),target=connection;if(!snapshot||!target)return okResult(null);const query=findTextQuery(target.getSnapshot().state,options);if(!query.ok)return query;if(query.value===null)return okResult(null);return okResult(Object.freeze({...query.value,snapshot}))};clearPort.replace=async request=>{if(typeof request!=="object"||request===null)return rejectedTextEdit("invalid");const{snapshot,startCodeUnitOffset,endCodeUnitOffset,text}=request;if(typeof text!=="string"||typeof startCodeUnitOffset!=="number"||typeof endCodeUnitOffset!=="number")return rejectedTextEdit("invalid");const target=connection,input=element.value;if(!mounted||!target||!input||connectedElement!==input)return rejectedTextEdit("unavailable");if(flags.value.disabled)return rejectedTextEdit("disabled");if(flags.value.readonly)return rejectedTextEdit("readonly");if(inputComposing||target.getSnapshot().state.composition!==null)return rejectedTextEdit("composing");if(clearing!==null)return rejectedTextEdit("busy");const issued=clearPort.read?.();if(!issued||issued!==snapshot)return rejectedTextEdit("stale");const operation={restore:target.getSnapshot().state,proposal:null,settlement:null};clearing=operation;try{const caret=startCodeUnitOffset+text.length;const dispatched=target.handleEvent({type:"input",inputType:"insertReplacementText",text,startCodeUnitOffset,endCodeUnitOffset,selection:{anchorCodeUnitOffset:caret,focusCodeUnitOffset:caret}});if(!mounted||connection===null)return rejectedTextEdit("unavailable");if(!dispatched)return rejectedTextEdit("invalid");const proposal=operation.proposal;if(proposal!==null&&props.modelModifiers.lazy){if(proposal.snapshot.text!==operation.restore?.snapshot.text)commitLazyValue();if(mounted&&connection===target&&controlled)settleControlledProposal(proposal,operation.restore)}if(!mounted||connection===null)return rejectedTextEdit("unavailable");if(connection!==target)return rejectedTextEdit("stale");if(!controlled&&proposal!==null&&target.getSnapshot().state!==proposal)return rejectedTextEdit("stale");if(proposal===null||!controlled)operation.settlement={accepted:true,connection:target,revision:target.getSnapshot().revision};await nextTick();if(!mounted||connection===null)return rejectedTextEdit("unavailable");const settled=operation.settlement;if(settled===null||settled.connection!==connection||settled.revision!==connection.getSnapshot().revision||connectedElement!==input||flags.value.disabled||flags.value.readonly)return rejectedTextEdit("stale");if(!settled.accepted)return rejectedTextEdit("refused");const committed=clearPort.read?.();return committed?Object.freeze({status:"accepted",snapshot:committed}):rejectedTextEdit("stale")}finally{if(clearing===operation)clearing=null}};return()=>h(multiline.value?"textarea":"input",mergeProps(attrs,{ref:element,...!multiline.value?{type:props.type}:{},...renderServerValue?{value:initialValue}:{defaultValue:initialValue},disabled:flags.value.disabled,readonly:flags.value.readonly,required:flags.value.required,name:props.name,form:props.form,placeholder:props.placeholder,autocomplete:props.autocomplete,onCompositionstart:()=>setInputComposing(true),onCompositionend:()=>setInputComposing(false),onInput:multiline.value!==props.multiline?requestReconnect:void 0,onChange:commitLazyValue,"data-scope":"text","data-part":"input","data-disabled":flags.value.disabled?"":void 0,"data-readonly":flags.value.readonly?"":void 0},participation.controlProps.value))}});const TextField=TextFieldImplementation;export{TextField};
|
|
2
2
|
//# sourceMappingURL=text.js.map
|
package/dist/text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/text.ts"],"mappings":"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","names":[],"file":"text.js"}
|
|
1
|
+
{"version":3,"sources":["../src/text.ts"],"mappings":"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","names":[],"file":"text.js"}
|