@sectile/vue 0.16.5 → 0.17.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/dist/combobox.js CHANGED
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCombobox}from"@sectile/dom/combobox";import{createTextState}from"@sectile/dom/text";import{Primitive}from"./primitive.js";import{useNativeInputFormControl}from"./internal/form-control.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./internal/presence.js";const key=Symbol("SectileComboboxRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ComboboxRoot=defineComponent({name:"SectileComboboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},inputValue:{type:String,default:void 0},defaultInputValue:{type:String,default:""},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:inputValue":_value=>true,"update:open":_value=>true,highlight:_value=>true,accept:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const input=shallowRef();const popup=shallowRef();const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localInput=shallowRef(props.inputValue??props.defaultInputValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(null);let proposedInputState=null;const controlled={value:useControlledStateInvariant("ComboboxRoot","modelValue",()=>props.modelValue),input:useControlledStateInvariant("ComboboxRoot","inputValue",()=>props.inputValue),open:useControlledStateInvariant("ComboboxRoot","open",()=>props.open)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,inputValue:props.inputValue??localInput.value,highlightedValue:highlighted.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localInput.value=snapshot.text.snapshot.text;localOpen.value=snapshot.popupOpen;highlighted.value=snapshot.cursor.current;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-combobox-id]").forEach(element=>{const id=element.dataset["sectileComboboxId"];if(id!==void 0)connection.value?.setItemAttributes(element,{id,disabled:element.dataset["disabled"]==="true"})})};const connect=()=>{connection.value?.disconnect();if(input.value===void 0)return;const items=props.items.map(item=>item.id);const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],highlighted.value,[],"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCombobox({input:input.value,...popup.value===void 0?{}:{popup:popup.value},items:props.items,manageVisibility:false,...props.policies===void 0?{}:{policies:props.policies},...controlled.value?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...controlled.input?{inputState:createTextState(props.inputValue)}:{defaultInputState:createTextState(localInput.value)},...controlled.open?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,position:props.position,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onInputStateChange:({value:value2})=>{proposedInputState=value2;localInput.value=value2.snapshot.text;emit("update:inputValue",value2.snapshot.text);if(!controlled.input)return;const proposal=value2;void nextTick(()=>{if(connection.value===void 0||proposedInputState!==proposal)return;if(props.inputValue!==proposal.snapshot.text)return;proposedInputState=null;syncControlledValues(proposal)})},onOpenChange:({value:value2})=>{localOpen.value=value2;emit("update:open",value2)},onHighlightedValueChange:({value:value2})=>{highlighted.value=value2;emit("highlight",value2)},onAccept:id=>emit("accept",id),onUpdate:refresh});connection.value.setInputAttributes(props.label);connection.value.setPopupAttributes(props.label);refreshItems();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(key,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),connection:computed(()=>connection.value),registerInput:element=>{const changed=input.value!==element;input.value=element;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,{id,disabled})});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect();connection.value=void 0;proposedInputState=null});watch(()=>props.items,(items,previousItems)=>{if(!sameComboboxItems(items,previousItems))connect()});watch([()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.inputValue,()=>props.open],()=>{const inputState=controlled.input&&proposedInputState!==null&&proposedInputState.snapshot.text===props.inputValue?proposedInputState:controlled.input?createTextState(props.inputValue):void 0;proposedInputState=null;syncControlledValues(inputState)});const syncControlledValues=inputState=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.input?{inputState:inputState??createTextState(props.inputValue)}:{},...controlled.open?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"combobox","data-part":"root","data-state":state.value.open?"open":"closed","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxInput=defineComponent({name:"SectileComboboxInput",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("ComboboxInput");const input=shallowRef(null);const participation=useNativeInputFormControl(input);const renderServerValue=typeof window==="undefined";const registerInput=node=>{input.value=node instanceof HTMLInputElement?node:null;root.registerInput(input.value??void 0)};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerInput,type:"text",role:"combobox",...renderServerValue?{value:root.state.value.inputValue}:{},name:props.name,form:props.form,required:props.required,disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":root.label.value,"aria-autocomplete":"list","aria-expanded":String(root.state.value.open),"data-scope":"combobox","data-part":"input"},participation.controlProps.value))}});const ComboboxContent=defineComponent({name:"SectileComboboxContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.connection.value?.render()},{flush:"post"});const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"listbox",hidden:!present.value,"aria-label":root.label.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"combobox","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const ComboboxItem=defineComponent({name:"SectileComboboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxItem");const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},role:"option","aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-combobox-id":props.value,"data-disabled":state.value.disabled?"true":void 0,"data-scope":"combobox","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxEmpty=defineComponent({name:"SectileComboboxEmpty",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxEmpty");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"status","data-scope":"combobox","data-part":"empty"}),{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 ComboboxRoot.`);return root}function sameComboboxItems(items,previousItems){return items.length===previousItems.length&&items.every((item,index)=>{const previousItem=previousItems[index];return previousItem!==void 0&&item.id===previousItem.id&&item.label===previousItem.label})}export{ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot};
1
+ import{computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createCombobox}from"@sectile/dom/combobox";import{createTextState}from"@sectile/dom/text";import{Primitive}from"./primitive.js";import{useNativeInputFormControl}from"./internal/form-control.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./internal/presence.js";const key=Symbol("SectileComboboxRoot");const partProps={as:{type:[String,Object,Function],default:"span"},asChild:{type:Boolean,default:false}};const ComboboxRoot=defineComponent({name:"SectileComboboxRoot",inheritAttrs:false,props:{items:{type:Array,required:true},modelValue:{type:String,default:void 0},defaultValue:{type:String,default:null},inputValue:{type:String,default:void 0},defaultInputValue:{type:String,default:""},open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},disabled:{type:Boolean,default:false},readonly:{type:Boolean,default:false},label:{type:String,default:void 0},position:{type:Boolean,default:true},side:{type:String,default:"bottom"},align:{type:String,default:"start"},sideOffset:{type:Number,default:8},collisionPadding:{type:[Number,Object],default:8},collisionBoundary:{type:[String,Object],default:void 0},avoidCollisions:{type:Boolean,default:true},hideWhenDetached:{type:Boolean,default:false},strategy:{type:String,default:"absolute"},tracking:{type:String,default:"events"},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},emits:{"update:modelValue":_value=>true,"update:inputValue":_value=>true,"update:open":_value=>true,highlight:_value=>true,accept:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const input=shallowRef();const popup=shallowRef();const connection=shallowRef();const localValue=shallowRef(props.modelValue!==void 0?props.modelValue:props.defaultValue);const localInput=shallowRef(props.inputValue??props.defaultInputValue);const localOpen=shallowRef(props.open??props.defaultOpen);const highlighted=shallowRef(null);let proposedInputState=null;const controlled={value:useControlledStateInvariant("ComboboxRoot","modelValue",()=>props.modelValue),input:useControlledStateInvariant("ComboboxRoot","inputValue",()=>props.inputValue),open:useControlledStateInvariant("ComboboxRoot","open",()=>props.open)};const state=computed(()=>Object.freeze({value:props.modelValue!==void 0?props.modelValue:localValue.value,inputValue:props.inputValue??localInput.value,highlightedValue:highlighted.value,open:props.open??localOpen.value,disabled:props.disabled,readonly:props.readonly}));const itemLabels=computed(()=>new Map(props.items.map(item=>[item.id,item.label])));const matchingQuery=computed(()=>{const fallback=state.value.inputValue;const text=connection.value?.getSnapshot().state.text;return text===void 0?fallback:text.composition===null?text.snapshot.text:text.composition.baseline.text});const matchesItem=id=>{const label=itemLabels.value.get(id);if(label===void 0)return false;const matches=props.policies?.matches;return matches===void 0||matches(label,matchingQuery.value,id)};const hasMatches=()=>{for(const item of props.items){if(matchesItem(item.id))return true}return false};const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;localValue.value=snapshot.selection.selected[0]??null;localInput.value=snapshot.text.snapshot.text;localOpen.value=snapshot.popupOpen;highlighted.value=snapshot.cursor.current;refreshItems()};const refreshItems=()=>{if(popup.value===void 0||connection.value===void 0)return;popup.value.querySelectorAll("[data-sectile-combobox-id]").forEach(element=>{const id=element.dataset["sectileComboboxId"];if(id!==void 0)connection.value?.setItemAttributes(element,{id,disabled:element.dataset["disabled"]==="true"})})};const connect=()=>{connection.value?.disconnect();if(input.value===void 0)return;const items=props.items.map(item=>item.id);const requestedValue=controlled.value?props.modelValue:localValue.value;const reconciled=reconcileCollectionState(items,requestedValue===null?[]:[requestedValue],highlighted.value,[],"single",{preserveNullCurrent:true});const value=reconciled.selected[0]??null;localValue.value=value;highlighted.value=reconciled.current;if(controlled.value&&requestedValue!==value)emit("update:modelValue",value);connection.value=createCombobox({input:input.value,...popup.value===void 0?{}:{popup:popup.value},items:props.items,manageVisibility:false,...props.policies===void 0?{}:{policies:props.policies},...controlled.value?{value}:{defaultValue:value},defaultHighlightedValue:reconciled.current,...controlled.input?{inputState:createTextState(props.inputValue)}:{defaultInputState:createTextState(localInput.value)},...controlled.open?{open:props.open}:{defaultOpen:localOpen.value},disabled:props.disabled,readOnly:props.readonly,position:props.position,side:props.side,align:props.align,sideOffset:props.sideOffset,collisionPadding:props.collisionPadding,...props.collisionBoundary===void 0?{}:{collisionBoundary:props.collisionBoundary},avoidCollisions:props.avoidCollisions,hideWhenDetached:props.hideWhenDetached,strategy:props.strategy,tracking:props.tracking,onValueChange:({value:value2})=>{localValue.value=value2;emit("update:modelValue",value2)},onInputStateChange:({value:value2})=>{proposedInputState=value2;localInput.value=value2.snapshot.text;emit("update:inputValue",value2.snapshot.text);if(!controlled.input)return;const proposal=value2;void nextTick(()=>{if(connection.value===void 0||proposedInputState!==proposal)return;if(props.inputValue!==proposal.snapshot.text)return;proposedInputState=null;syncControlledValues(proposal)})},onOpenChange:({value:value2})=>{localOpen.value=value2;emit("update:open",value2)},onHighlightedValueChange:({value:value2})=>{highlighted.value=value2;emit("highlight",value2)},onAccept:id=>emit("accept",id),onUpdate:refresh});connection.value.setInputAttributes(props.label);connection.value.setPopupAttributes(props.label);refreshItems();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};provide(key,{state,position:computed(()=>props.position),strategy:computed(()=>props.strategy),label:computed(()=>props.label),connection:computed(()=>connection.value),matchesItem,hasMatches,registerInput:element=>{const changed=input.value!==element;input.value=element;if(changed)scheduleConnect()},registerPopup:element=>{const changed=popup.value!==element;popup.value=element;if(changed)scheduleConnect()},registerItem:(element,id,disabled)=>connection.value?.setItemAttributes(element,{id,disabled})});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect();connection.value=void 0;proposedInputState=null});watch(()=>props.items,(items,previousItems)=>{if(!sameComboboxItems(items,previousItems))connect()});watch([()=>props.disabled,()=>props.readonly,()=>props.label,()=>props.position,()=>props.side,()=>props.align,()=>props.sideOffset,()=>props.collisionPadding,()=>props.collisionBoundary,()=>props.avoidCollisions,()=>props.hideWhenDetached,()=>props.strategy,()=>props.tracking,()=>props.policies],connect);watch([()=>props.modelValue,()=>props.inputValue,()=>props.open],()=>{const inputState=controlled.input&&proposedInputState!==null&&proposedInputState.snapshot.text===props.inputValue?proposedInputState:controlled.input?createTextState(props.inputValue):void 0;proposedInputState=null;syncControlledValues(inputState)});const syncControlledValues=inputState=>{if(connection.value===void 0)return;const result=connection.value.syncControlledValues({...controlled.value?{value:props.modelValue}:{},...controlled.input?{inputState:inputState??createTextState(props.inputValue)}:{},...controlled.open?{open:props.open}:{}});if(!result.ok)throw new TypeError(result.error.message);refresh()};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,"data-scope":"combobox","data-part":"root","data-state":state.value.open?"open":"closed","data-disabled":props.disabled?"":void 0,"data-readonly":props.readonly?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxInput=defineComponent({name:"SectileComboboxInput",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("ComboboxInput");const input=shallowRef(null);const participation=useNativeInputFormControl(input);const renderServerValue=typeof window==="undefined";const registerInput=node=>{input.value=node instanceof HTMLInputElement?node:null;root.registerInput(input.value??void 0)};return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerInput,type:"text",role:"combobox",...renderServerValue?{value:root.state.value.inputValue}:{},name:props.name,form:props.form,required:props.required,disabled:root.state.value.disabled,readonly:root.state.value.readonly,"aria-label":root.label.value,"aria-autocomplete":"list","aria-expanded":String(root.state.value.open),"data-scope":"combobox","data-part":"input"},participation.controlProps.value))}});const ComboboxContent=defineComponent({name:"SectileComboboxContent",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.connection.value?.render()},{flush:"post"});const registerContent=node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerPopup(content)};return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:registerContent,role:"listbox",hidden:!present.value,"aria-label":root.label.value,...exiting?{inert:true,"aria-hidden":"true"}:{},style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"combobox","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const ComboboxItem=defineComponent({name:"SectileComboboxItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxItem");const state=computed(()=>({value:props.value,selected:root.state.value.value===props.value,highlighted:root.state.value.highlightedValue===props.value,disabled:root.state.value.disabled||props.disabled}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{if(node instanceof HTMLElement)root.registerItem(node,props.value,state.value.disabled)},role:"option",hidden:!root.matchesItem(props.value),"aria-selected":String(state.value.selected),"aria-disabled":state.value.disabled?"true":void 0,"data-sectile-combobox-id":props.value,"data-disabled":state.value.disabled?"true":void 0,"data-scope":"combobox","data-part":"item","data-selected":state.value.selected?"":void 0,"data-highlighted":state.value.highlighted?"":void 0}),{default:()=>slots["default"]?.(state.value)})}});const ComboboxEmpty=defineComponent({name:"SectileComboboxEmpty",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("ComboboxEmpty");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"status",hidden:root.hasMatches(),"data-scope":"combobox","data-part":"empty"}),{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 ComboboxRoot.`);return root}function sameComboboxItems(items,previousItems){return items.length===previousItems.length&&items.every((item,index)=>{const previousItem=previousItems[index];return previousItem!==void 0&&item.id===previousItem.id&&item.label===previousItem.label})}export{ComboboxContent,ComboboxEmpty,ComboboxInput,ComboboxItem,ComboboxRoot};
2
2
  //# sourceMappingURL=combobox.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/combobox.ts"],"mappings":"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","names":["value"],"file":"combobox.js"}
1
+ {"version":3,"sources":["../src/combobox.ts"],"mappings":"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","names":["value"],"file":"combobox.js"}
@@ -1,2 +1,2 @@
1
- import{computed,getCurrentInstance,inject,onBeforeUnmount,onMounted,provide,readonly,shallowRef}from"vue";const semantics=new WeakMap;const refreshers=new WeakMap;function createVueProfileController(semantic){const snapshot=shallowRef(semantic.getSnapshot());const refresh=()=>{snapshot.value=semantic.getSnapshot()};const controller=Object.freeze({snapshot,acceptedViewState:computed(()=>stateOf(snapshot.value).acceptedViewState),requestState:computed(()=>stateOf(snapshot.value).requestState),getSnapshot:()=>semantic.getSnapshot(),dispatch:(event,revision)=>{const result=semantic.dispatch(event,revision);if(result.ok)refresh();return result},synchronizeView:response=>{const result=semantic.synchronizeView(response);if(result.ok)refresh();return result},syncControlledValues:values=>{const result=semantic.syncControlledValues(values);if(result.ok)refresh();return result},requestView:()=>{const result=semantic.requestView();if(result.ok)refresh();return result},abandonRequest:requestID=>{const result=semantic.abandonRequest(requestID);if(result.ok)refresh();return result},subscribeCommands:listener=>semantic.subscribeCommands(listener),attachRequestExecutor:listener=>semantic.attachRequestExecutor(listener),dispose:()=>semantic.dispose()});semantics.set(controller,semantic);refreshers.set(controller,refresh);return controller}function refreshVueProfileController(controller){refreshers.get(controller)?.()}function semanticController(controller){const semantic=semantics.get(controller);if(semantic===void 0)throw new TypeError("Unknown Vue Tabular controller.");return semantic}function aliasVueProfileController(alias,source){const semantic=semantics.get(source);const refresh=refreshers.get(source);if(semantic!==void 0)semantics.set(alias,semantic);if(refresh!==void 0)refreshers.set(alias,refresh)}function stateOf(value){const candidate=value;const state=candidate.tabular?.state??candidate.state;if(state===void 0)throw new TypeError("Invalid Tabular profile snapshot.");return state}function provideProfile(publicKey,privateKey,controller){const connection=shallowRef(null);const context=Object.freeze({controller,snapshot:controller.snapshot,acceptedViewState:controller.acceptedViewState,requestState:controller.requestState,query:computed(()=>stateOf(controller.snapshot.value).query),rowSelection:computed(()=>stateOf(controller.snapshot.value).rowSelection),columnState:computed(()=>stateOf(controller.snapshot.value).columnState),accessState:computed(()=>stateOf(controller.snapshot.value).accessState),connection});const publicContext=Object.freeze({controller:context.controller,snapshot:context.snapshot,acceptedViewState:context.acceptedViewState,requestState:context.requestState,query:context.query,rowSelection:context.rowSelection,columnState:context.columnState,accessState:context.accessState});provide(publicKey,publicContext);provide(privateKey,context);return context}function useProfile(key,name){const context=inject(key);if(context===void 0)throw new TypeError(`${name} must be used inside its matching Provider.`);return context}function useProfileSource(controller,initialResolver,options={}){const status=shallowRef("idle");const error=shallowRef(null);let resolver=initialResolver;let active=null;let mounted=false;let disposed=false;let queued=null;const setStatus=next=>{status.value=next;options.onStatusChange?.(next)};const abandon=requestID=>{controller.abandonRequest(requestID)};const cancel=()=>{const current=active;active=null;queued=null;if(current!==null){current.abort.abort();abandon(current.requestID)}if(!disposed)setStatus("idle")};const execute=request=>{if(!mounted||disposed){queued=request;return}if(active!==null){active.abort.abort();abandon(active.requestID)}const abort=new AbortController;active={requestID:request.requestID,abort};error.value=null;setStatus("loading");Promise.resolve().then(()=>resolver(request,{signal:abort.signal})).then(response=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;const synchronized=controller.synchronizeView(response);if(!synchronized.ok){active=null;error.value=synchronized.error;setStatus("error");options.onError?.(synchronized.error);return}active=null;setStatus("success")},reason=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;active=null;abandon(request.requestID);error.value=reason;setStatus("error");options.onError?.(reason)})};const attached=controller.attachRequestExecutor(command=>execute(command.request));if(!attached.ok)throw new TypeError(attached.error.message);const releaseExecutor=attached.value;const reload=()=>{const requested=controller.requestView();if(!requested.ok)throw new TypeError(requested.error.message)};const replaceResolver=next=>{cancel();resolver=next;const replaced=controller.dispatch({type:"replace-source"});if(!replaced.ok)throw new TypeError(replaced.error.message)};const dispose=()=>{if(disposed)return;disposed=true;cancel();releaseExecutor()};if(getCurrentInstance()!==null){onMounted(()=>{mounted=true;const pending=queued??controller.requestState.value.pendingRequest;queued=null;if(pending!==null)execute(pending)});onBeforeUnmount(dispose)}return Object.freeze({status:readonly(status),error:readonly(error),reload,cancel,replaceResolver,dispose})}function controlledValues(options){return Object.freeze({...options.query===void 0?{}:{query:options.query.value},...options.rowSelection===void 0?{}:{rowSelection:options.rowSelection.value},...options.columnState===void 0?{}:{columnState:options.columnState.value},...options.accessState===void 0?{}:{accessState:options.accessState.value},...options.expansion===void 0?{}:{expansion:options.expansion.value}})}export{aliasVueProfileController,controlledValues,createVueProfileController,provideProfile,refreshVueProfileController,semanticController,stateOf,useProfile,useProfileSource};
1
+ import{computed,getCurrentInstance,inject,onBeforeUnmount,onMounted,provide,readonly,shallowRef}from"vue";const semantics=new WeakMap;const refreshers=new WeakMap;function createVueProfileController(semantic){const snapshot=shallowRef(semantic.getSnapshot());const refresh=()=>{snapshot.value=semantic.getSnapshot()};const controller=Object.freeze({snapshot,acceptedViewState:computed(()=>stateOf(snapshot.value).acceptedViewState),requestState:computed(()=>stateOf(snapshot.value).requestState),getSnapshot:()=>semantic.getSnapshot(),dispatch:(event,revision)=>{const result=semantic.dispatch(event,revision);if(result.ok)refresh();return result},synchronizeView:response=>{const result=semantic.synchronizeView(response);if(result.ok)refresh();return result},syncControlledValues:values=>{const result=semantic.syncControlledValues(values);if(result.ok)refresh();return result},requestView:()=>{const result=semantic.requestView();if(result.ok)refresh();return result},abandonRequest:requestID=>{const result=semantic.abandonRequest(requestID);if(result.ok)refresh();return result},subscribeCommands:listener=>semantic.subscribeCommands(listener),attachRequestExecutor:listener=>semantic.attachRequestExecutor(listener),dispose:()=>semantic.dispose()});semantics.set(controller,semantic);refreshers.set(controller,refresh);return controller}function refreshVueProfileController(controller){refreshers.get(controller)?.()}function semanticController(controller){const semantic=semantics.get(controller);if(semantic===void 0)throw new TypeError("Unknown Vue Tabular controller.");return semantic}function aliasVueProfileController(alias,source){const semantic=semantics.get(source);const refresh=refreshers.get(source);if(semantic!==void 0)semantics.set(alias,semantic);if(refresh!==void 0)refreshers.set(alias,refresh)}function stateOf(value){const candidate=value;const state=candidate.tabular?.state??candidate.state;if(state===void 0)throw new TypeError("Invalid Tabular profile snapshot.");return state}function provideProfile(publicKey,privateKey,controller){const connection=shallowRef(null);const context=Object.freeze({controller,snapshot:controller.snapshot,acceptedViewState:controller.acceptedViewState,requestState:controller.requestState,query:computed(()=>stateOf(controller.snapshot.value).query),rowSelection:computed(()=>stateOf(controller.snapshot.value).rowSelection),columnState:computed(()=>stateOf(controller.snapshot.value).columnState),accessState:computed(()=>stateOf(controller.snapshot.value).accessState),connection});const publicContext=Object.freeze({controller:context.controller,snapshot:context.snapshot,acceptedViewState:context.acceptedViewState,requestState:context.requestState,query:context.query,rowSelection:context.rowSelection,columnState:context.columnState,accessState:context.accessState});provide(publicKey,publicContext);provide(privateKey,context);return context}function useProfile(key,name){const context=inject(key);if(context===void 0)throw new TypeError(`${name} must be used inside its matching Provider.`);return context}function useProfileSource(controller,initialResolver,options={}){const status=shallowRef("idle");const error=shallowRef(null);let resolver=initialResolver;let active=null;let mounted=false;let disposed=false;let queued=null;const setStatus=next=>{status.value=next;options.onStatusChange?.(next)};const abandon=requestID=>{controller.abandonRequest(requestID)};const cancel=()=>{const current=active;const pending=queued;active=null;queued=null;if(current!==null){current.abort.abort();abandon(current.requestID)}if(pending!==null&&pending.requestID!==current?.requestID)abandon(pending.requestID);if(!disposed)setStatus("idle")};const execute=request=>{if(!mounted||disposed){queued=request;return}if(active!==null){active.abort.abort();abandon(active.requestID)}const abort=new AbortController;active={requestID:request.requestID,abort};error.value=null;setStatus("loading");Promise.resolve().then(()=>resolver(request,{signal:abort.signal})).then(response=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;const synchronized=controller.synchronizeView(response);if(!synchronized.ok){active=null;error.value=synchronized.error;setStatus("error");options.onError?.(synchronized.error);return}active=null;setStatus("success")},reason=>{if(disposed||abort.signal.aborted||active?.requestID!==request.requestID)return;active=null;abandon(request.requestID);error.value=reason;setStatus("error");options.onError?.(reason)})};const attached=controller.attachRequestExecutor(command=>execute(command.request));if(!attached.ok)throw new TypeError(attached.error.message);const releaseExecutor=attached.value;const reload=()=>{const requested=controller.requestView();if(!requested.ok)throw new TypeError(requested.error.message)};const replaceResolver=next=>{cancel();resolver=next;const replaced=controller.dispatch({type:"replace-source"});if(!replaced.ok)throw new TypeError(replaced.error.message)};const dispose=()=>{if(disposed)return;disposed=true;cancel();releaseExecutor()};if(getCurrentInstance()!==null){onMounted(()=>{mounted=true;const pending=queued??controller.requestState.value.pendingRequest;queued=null;if(pending!==null)execute(pending)});onBeforeUnmount(dispose)}return Object.freeze({status:readonly(status),error:readonly(error),reload,cancel,replaceResolver,dispose})}function controlledValues(options){return Object.freeze({...options.query===void 0?{}:{query:options.query.value},...options.rowSelection===void 0?{}:{rowSelection:options.rowSelection.value},...options.columnState===void 0?{}:{columnState:options.columnState.value},...options.accessState===void 0?{}:{accessState:options.accessState.value},...options.expansion===void 0?{}:{expansion:options.expansion.value}})}export{aliasVueProfileController,controlledValues,createVueProfileController,provideProfile,refreshVueProfileController,semanticController,stateOf,useProfile,useProfileSource};
2
2
  //# sourceMappingURL=tabular-profile.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/internal/tabular-profile.ts"],"mappings":"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","names":[],"file":"tabular-profile.js"}
1
+ {"version":3,"sources":["../../src/internal/tabular-profile.ts"],"mappings":"AAAA,OACE,SACA,mBACA,OACA,gBACA,UACA,QACA,SACA,eAIK,MAiCP,MAAM,UAAY,IAAI,QACtB,MAAM,WAAa,IAAI,QAEjB,SAAU,2BACd,SAAqE,CAErE,MAAM,SAAW,WAAW,SAAS,YAAW,CAAE,EAClD,MAAM,QAAU,IAAW,CAAG,SAAS,MAAQ,SAAS,YAAW,CAAI,EACvE,MAAM,WAA4E,OAAO,OAAO,CAC9F,SACA,kBAAmB,SAAS,IAAM,QAAQ,SAAS,KAAK,EAAE,iBAAiB,EAC3E,aAAc,SAAS,IAAM,QAAQ,SAAS,KAAK,EAAE,YAAY,EACjE,YAAa,IAAM,SAAS,YAAW,EACvC,SAAU,CAAC,MAAc,WAAqB,CAC5C,MAAM,OAAS,SAAS,SAAS,MAAO,QAAQ,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,gBAAkB,UAAiC,CACjD,MAAM,OAAS,SAAS,gBAAgB,QAAQ,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,qBAAuB,QAA4B,CACjD,MAAM,OAAS,SAAS,qBAAqB,MAAM,EACnD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,YAAa,IAAK,CAChB,MAAM,OAAS,SAAS,YAAW,EACnC,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,eAAiB,WAAqB,CACpC,MAAM,OAAS,SAAS,eAAe,SAAS,EAChD,GAAI,OAAO,GAAI,QAAO,EACtB,OAAO,MACT,EACA,kBAAoB,UAAyC,SAAS,kBAAkB,QAAQ,EAChG,sBAAwB,UAAqF,SAAS,sBAAsB,QAAQ,EACpJ,QAAS,IAAM,SAAS,QAAO,EAChC,EACD,UAAU,IAAI,WAAY,QAAyD,EACnF,WAAW,IAAI,WAAY,OAAO,EAClC,OAAO,UACT,CAEM,SAAU,4BAAmD,WAAuD,CACxH,WAAW,IAAI,UAAU,IAAG,CAC9B,CAEM,SAAU,mBAA0C,WAAuD,CAC/G,MAAM,SAAW,UAAU,IAAI,UAAU,EACzC,GAAI,WAAa,OAAW,MAAM,IAAI,UAAU,iCAAiC,EACjF,OAAO,QACT,CAEM,SAAU,0BACd,MACA,OAAmD,CAEnD,MAAM,SAAW,UAAU,IAAI,MAAM,EACrC,MAAM,QAAU,WAAW,IAAI,MAAM,EACrC,GAAI,WAAa,OAAW,UAAU,IAAI,MAAO,QAAQ,EACzD,GAAI,UAAY,OAAW,WAAW,IAAI,MAAO,OAAO,CAC1D,CAEM,SAAU,QAAQ,MAAc,CACpC,MAAM,UAAY,MAClB,MAAM,MAAQ,UAAU,SAAS,OAAS,UAAU,MACpD,GAAI,QAAU,OAAW,MAAM,IAAI,UAAU,mCAAmC,EAChF,OAAO,KACT,CAcM,SAAU,eACd,UACA,WACA,WAAuD,CAEvD,MAAM,WAAa,WAA8B,IAAI,EACrD,MAAM,QAA6D,OAAO,OAAO,CAC/E,WACA,SAAU,WAAW,SACrB,kBAAmB,WAAW,kBAC9B,aAAc,WAAW,aACzB,MAAO,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,KAAK,EAC9D,aAAc,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,YAAY,EAC5E,YAAa,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,WAAW,EAC1E,YAAa,SAAS,IAAM,QAAQ,WAAW,SAAS,KAAK,EAAE,WAAW,EAC1E,WACD,EACD,MAAM,cAAgB,OAAO,OAAO,CAClC,WAAY,QAAQ,WACpB,SAAU,QAAQ,SAClB,kBAAmB,QAAQ,kBAC3B,aAAc,QAAQ,aACtB,MAAO,QAAQ,MACf,aAAc,QAAQ,aACtB,YAAa,QAAQ,YACrB,YAAa,QAAQ,YACtB,EACD,QAAQ,UAAW,aAAa,EAChC,QAAQ,WAAY,OAAO,EAC3B,OAAO,OACT,CAEM,SAAU,WACd,IACA,KAAY,CAEZ,MAAM,QAAU,OAAO,GAAG,EAC1B,GAAI,UAAY,OAAW,MAAM,IAAI,UAAU,GAAG,IAAI,6CAA6C,EACnG,OAAO,OACT,CAiBM,SAAU,iBACd,WACA,gBACA,QAAyB,CAAA,EAAE,CAE3B,MAAM,OAAS,WAAyB,MAAM,EAC9C,MAAM,MAAQ,WAA2B,IAAI,EAC7C,IAAI,SAAW,gBACf,IAAI,OAAiF,KACrF,IAAI,QAAU,MACd,IAAI,SAAW,MACf,IAAI,OAAgC,KAEpC,MAAM,UAAa,MAA4B,CAC7C,OAAO,MAAQ,KACf,QAAQ,iBAAiB,IAAI,CAC/B,EACA,MAAM,QAAW,WAA2B,CAAG,WAAW,eAAe,SAAS,CAAG,EACrF,MAAM,OAAS,IAAW,CACxB,MAAM,QAAU,OAChB,MAAM,QAAU,OAChB,OAAS,KACT,OAAS,KACT,GAAI,UAAY,KAAM,CACpB,QAAQ,MAAM,MAAK,EACnB,QAAQ,QAAQ,SAAS,CAC3B,CACA,GAAI,UAAY,MAAQ,QAAQ,YAAc,SAAS,UAAW,QAAQ,QAAQ,SAAS,EAC3F,GAAI,CAAC,SAAU,UAAU,MAAM,CACjC,EACA,MAAM,QAAW,SAAiC,CAChD,GAAI,CAAC,SAAW,SAAU,CAAE,OAAS,QAAS,MAAQ,CACtD,GAAI,SAAW,KAAM,CACnB,OAAO,MAAM,MAAK,EAClB,QAAQ,OAAO,SAAS,CAC1B,CACA,MAAM,MAAQ,IAAI,gBAClB,OAAS,CAAE,UAAW,QAAQ,UAAW,KAAK,EAC9C,MAAM,MAAQ,KACd,UAAU,SAAS,EACnB,QAAQ,QAAO,EAAG,KAAK,IAAM,SAAS,QAAS,CAAE,OAAQ,MAAM,MAAM,CAAE,CAAC,EAAE,KAAM,UAAY,CAC1F,GAAI,UAAY,MAAM,OAAO,SAAW,QAAQ,YAAc,QAAQ,UAAW,OACjF,MAAM,aAAe,WAAW,gBAAgB,QAAQ,EACxD,GAAI,CAAC,aAAa,GAAI,CACpB,OAAS,KACT,MAAM,MAAQ,aAAa,MAC3B,UAAU,OAAO,EACjB,QAAQ,UAAU,aAAa,KAAK,EACpC,MACF,CACA,OAAS,KACT,UAAU,SAAS,CACrB,EAAI,QAAmB,CACrB,GAAI,UAAY,MAAM,OAAO,SAAW,QAAQ,YAAc,QAAQ,UAAW,OACjF,OAAS,KACT,QAAQ,QAAQ,SAAS,EACzB,MAAM,MAAQ,OACd,UAAU,OAAO,EACjB,QAAQ,UAAU,MAAM,CAC1B,CAAC,CACH,EACA,MAAM,SAAW,WAAW,sBAAuB,SAAY,QAAS,QAA4D,OAAO,CAAC,EAC5I,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,UAAU,SAAS,MAAM,OAAO,EAC5D,MAAM,gBAAkB,SAAS,MACjC,MAAM,OAAS,IAAW,CACxB,MAAM,UAAY,WAAW,YAAW,EACxC,GAAI,CAAC,UAAU,GAAI,MAAM,IAAI,UAAU,UAAU,MAAM,OAAO,CAChE,EACA,MAAM,gBAAmB,MAA8B,CACrD,OAAM,EACN,SAAW,KACX,MAAM,SAAW,WAAW,SAAS,CAAE,KAAM,gBAAgB,CAAW,EACxE,GAAI,CAAC,SAAS,GAAI,MAAM,IAAI,UAAU,SAAS,MAAM,OAAO,CAC9D,EACA,MAAM,QAAU,IAAW,CACzB,GAAI,SAAU,OACd,SAAW,KACX,OAAM,EACN,gBAAe,CACjB,EAEA,GAAI,mBAAkB,IAAO,KAAM,CACjC,UAAU,IAAK,CACb,QAAU,KACV,MAAM,QAAU,QAAU,WAAW,aAAa,MAAM,eACxD,OAAS,KACT,GAAI,UAAY,KAAM,QAAQ,OAAO,CACvC,CAAC,EACD,gBAAgB,OAAO,CACzB,CACA,OAAO,OAAO,OAAO,CAAE,OAAQ,SAAS,MAAM,EAAG,MAAO,SAAS,KAAK,EAAG,OAAQ,OAAQ,gBAAiB,OAAO,CAAE,CACrH,CAEM,SAAU,iBAAiB,QAMhC,CACC,OAAO,OAAO,OAAO,CACnB,GAAI,QAAQ,QAAU,OAAY,CAAA,EAAK,CAAE,MAAO,QAAQ,MAAM,KAAK,EACnE,GAAI,QAAQ,eAAiB,OAAY,CAAA,EAAK,CAAE,aAAc,QAAQ,aAAa,KAAK,EACxF,GAAI,QAAQ,cAAgB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,YAAY,KAAK,EACrF,GAAI,QAAQ,cAAgB,OAAY,CAAA,EAAK,CAAE,YAAa,QAAQ,YAAY,KAAK,EACrF,GAAI,QAAQ,YAAc,OAAY,CAAA,EAAK,CAAE,UAAW,QAAQ,UAAU,KAAK,EAChF,CACH","names":[],"file":"tabular-profile.js"}
@@ -2,8 +2,8 @@ import { type ShallowRef, type VNodeArrayChildren, type VNodeChild } from 'vue';
2
2
  import type { StableID } from '@sectile/core';
3
3
  import type { Sequence } from '@sectile/core/sequence';
4
4
  import { type VirtualCollectionIDResolver as OwnerVirtualCollectionIDResolver, type VirtualCollectionProjection, type VirtualLanePolicy, type VirtualSizePolicy } from '@sectile/virtual/collection';
5
- import { type VirtualInsets, type VirtualLayoutPlan, type VirtualPlacement, type VirtualPoint, type VirtualRect, type VirtualScrollAlignment } from '@sectile/dom/virtual';
6
- import { type VirtualizerItemSize, type VirtualizerOperationResult, type VirtualizerRootExpose } from './virtual-core.js';
5
+ import { type VirtualInsets, type VirtualLayoutPlan, type VirtualPlacement, type VirtualPoint, type VirtualRect, type VirtualScrollAlignment, type VirtualScrollport } from '@sectile/dom/virtual';
6
+ import { type VirtualizerItemSize, type VirtualizerOperationResult, type VirtualizerRootExpose, type VirtualizerScrollportTarget } from './virtual-core.js';
7
7
  export type VirtualCollectionIDResolver<Value, ID extends StableID = StableID> = OwnerVirtualCollectionIDResolver<Value, ID>;
8
8
  export type VirtualCollectionItemAttributes<Value> = {
9
9
  bivarianceHack(value: Value, index: number): Readonly<Record<string, unknown>>;
@@ -14,6 +14,7 @@ export interface VirtualCollectionBaseProps<Value, ID extends StableID = StableI
14
14
  readonly getID: VirtualCollectionIDResolver<Value, ID>;
15
15
  readonly overscan?: number | Partial<VirtualInsets>;
16
16
  readonly viewportInsets?: number | Partial<VirtualInsets>;
17
+ readonly scrollport?: VirtualizerScrollportTarget | null;
17
18
  readonly maxItems?: number;
18
19
  readonly initialViewport?: VirtualRect;
19
20
  readonly as?: string;
@@ -41,7 +42,7 @@ export interface VirtualCollectionSlots<Value = unknown, ID extends StableID = S
41
42
  readonly footer?: () => VNodeChild;
42
43
  }
43
44
  export interface VirtualCollectionExpose<State, ID extends StableID = StableID> {
44
- readonly scrollport: ShallowRef<HTMLElement | null | undefined>;
45
+ readonly scrollport: ShallowRef<VirtualScrollport | null | undefined>;
45
46
  readonly surface: ShallowRef<HTMLElement | null | undefined>;
46
47
  readonly state: State;
47
48
  readonly plan: VirtualLayoutPlan<ID> | null;
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-collection.js","names":["defineComponent","h","onBeforeUnmount","shallowReactive","shallowRef","constrainVirtualCollectionDomain","createVirtualCollection","replaceVirtualCollection","virtualItemStyle","useVirtualizerSurfaceRegistration","virtualizerNotConnected","prepareVirtualCollection","items","getID","maxItems","maxIDCodeUnits","updatePreparedVirtualCollection","previous","constrainPreparedVirtualCollection","prepared","VirtualCollectionProjectionRuntime","name","inheritAttrs","props","scope","type","String","required","placements","Array","Object","itemAs","itemAttributes","Function","default","undefined","size","slots","setup","surface","registrations","Map","elements","refs","itemRef","id","existing","get","callback","value","element","HTMLElement","delete","set","registerItem","unregister","values","clear","sizing","itemSizing","children","placement","index","length","domain","at","attributes","rendered","push","key","ref","style","visible","normalizeChildren","VirtualCollectionBootstrapProjectionRuntime","count","Number","width","bootstrapRef","Math","min","freeze","rect","x","y","height","renderHighLevelItems","render","empty","child","renderCollectionBootstrapItems","createVirtualCollectionExpose","root","initialState","phase","emptyScrollport","emptySurface","scrollport","state","plan","scrollToID","alignment","scrollTo","refresh","flush","nearlyEqual","left","right","abs","isArray"],"sources":["../../src/internal/virtual-collection.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual-collection.js","names":["defineComponent","h","onBeforeUnmount","shallowReactive","shallowRef","constrainVirtualCollectionDomain","createVirtualCollection","replaceVirtualCollection","virtualItemStyle","useVirtualizerSurfaceRegistration","virtualizerNotConnected","prepareVirtualCollection","items","getID","maxItems","maxIDCodeUnits","updatePreparedVirtualCollection","previous","constrainPreparedVirtualCollection","prepared","VirtualCollectionProjectionRuntime","name","inheritAttrs","props","scope","type","String","required","placements","Array","Object","itemAs","itemAttributes","Function","default","undefined","size","slots","setup","surface","registrations","Map","elements","refs","itemRef","id","existing","get","callback","value","element","HTMLElement","delete","set","registerItem","unregister","values","clear","sizing","itemSizing","children","placement","index","length","domain","at","attributes","rendered","push","key","ref","style","visible","normalizeChildren","VirtualCollectionBootstrapProjectionRuntime","count","Number","width","bootstrapRef","Math","min","freeze","rect","x","y","height","renderHighLevelItems","render","empty","child","renderCollectionBootstrapItems","createVirtualCollectionExpose","root","initialState","phase","emptyScrollport","emptySurface","scrollport","state","plan","scrollToID","alignment","scrollTo","refresh","flush","nearlyEqual","left","right","abs","isArray"],"sources":["../../src/internal/virtual-collection.ts"],"mappings":"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","ignoreList":[]}
@@ -1,14 +1,14 @@
1
1
  import { type MaybeRefOrGetter, type PropType, type Ref, type ShallowRef, type SlotsType, type VNodeChild } from 'vue';
2
2
  import type { Result, StableID } from '@sectile/core';
3
3
  import type { VirtualErrorCode } from '@sectile/virtual';
4
- import { createAxisMeasurementResolver, virtualItemStyle, virtualSurfaceStyle, type VirtualInsets, type VirtualLayoutMutation, type VirtualLayoutPlan, type VirtualLayoutStrategy, type VirtualMeasurementResolver, type VirtualPlacement, type VirtualPoint, type VirtualRect, type VirtualScrollAlignment, type VirtualScrollWriter, type VirtualViewportReader, type VirtualizerConnection, type VirtualizerEnvironment, type VirtualizerErrorHandler } from '@sectile/dom/virtual';
4
+ import { createAxisMeasurementResolver, virtualItemStyle, virtualSurfaceStyle, type VirtualInsets, type VirtualLayoutMutation, type VirtualLayoutPlan, type VirtualLayoutStrategy, type VirtualMeasurementResolver, type VirtualPlacement, type VirtualPoint, type VirtualRect, type VirtualScrollAlignment, type VirtualScrollport, type VirtualScrollWriter, type VirtualViewportReader, type VirtualizerConnection, type VirtualizerEnvironment, type VirtualizerErrorHandler } from '@sectile/dom/virtual';
5
5
  import { type PrimitiveAs } from '../primitive.js';
6
6
  export type VirtualizerHostErrorCode = 'virtualizer-not-connected';
7
7
  export type VirtualizerOperationResult<T> = Result<T, VirtualErrorCode | VirtualizerHostErrorCode>;
8
8
  export interface UseVirtualizerOptions<State, ID extends StableID, Measurement, Mutation> {
9
9
  readonly state: Ref<State>;
10
10
  readonly strategy: VirtualLayoutStrategy<State, ID, Measurement, Mutation>;
11
- readonly scrollport?: ShallowRef<HTMLElement | null | undefined>;
11
+ readonly scrollport?: ShallowRef<VirtualScrollport | null | undefined>;
12
12
  readonly surface?: ShallowRef<HTMLElement | null | undefined>;
13
13
  readonly overscan?: MaybeRefOrGetter<number | Partial<VirtualInsets> | undefined>;
14
14
  readonly viewportInsets?: MaybeRefOrGetter<number | Partial<VirtualInsets> | undefined>;
@@ -22,7 +22,7 @@ export interface UseVirtualizerOptions<State, ID extends StableID, Measurement,
22
22
  readonly onError?: VirtualizerErrorHandler;
23
23
  }
24
24
  export interface UseVirtualizerReturn<State, ID extends StableID, Measurement, Mutation> {
25
- readonly scrollport: ShallowRef<HTMLElement | null | undefined>;
25
+ readonly scrollport: ShallowRef<VirtualScrollport | null | undefined>;
26
26
  readonly surface: ShallowRef<HTMLElement | null | undefined>;
27
27
  readonly plan: ShallowRef<VirtualLayoutPlan<ID> | null>;
28
28
  readonly connection: ShallowRef<VirtualizerConnection<State, ID, Measurement, Mutation> | undefined>;
@@ -35,9 +35,11 @@ export interface UseVirtualizerReturn<State, ID extends StableID, Measurement, M
35
35
  flush(): VirtualizerOperationResult<VirtualLayoutPlan<ID>>;
36
36
  }
37
37
  export type VirtualizerItemSize = 'none' | 'width' | 'height' | 'both';
38
+ export type VirtualizerScrollportTarget = 'root' | 'document' | HTMLElement | Document;
38
39
  export interface VirtualizerRootProps {
39
40
  readonly defaultState: object;
40
41
  readonly strategy: VirtualLayoutStrategy<object, StableID, unknown, unknown>;
42
+ readonly scrollport?: VirtualizerScrollportTarget | null;
41
43
  readonly overscan?: number | Partial<VirtualInsets>;
42
44
  readonly viewportInsets?: number | Partial<VirtualInsets>;
43
45
  readonly initialViewport?: VirtualRect;
@@ -70,7 +72,7 @@ export interface VirtualizerItemProps {
70
72
  readonly asChild?: boolean;
71
73
  }
72
74
  export interface VirtualizerRootExpose extends VirtualizerRootSlotProps {
73
- readonly scrollport: ShallowRef<HTMLElement | null | undefined>;
75
+ readonly scrollport: ShallowRef<VirtualScrollport | null | undefined>;
74
76
  readonly surface: ShallowRef<HTMLElement | null | undefined>;
75
77
  }
76
78
  export interface VirtualizerSurfaceRegistration {
@@ -86,6 +88,10 @@ export declare const VirtualizerRoot: import("vue").DefineComponent<import("vue"
86
88
  type: PropType<VirtualLayoutStrategy<object, StableID, unknown, unknown>>;
87
89
  required: true;
88
90
  };
91
+ scrollport: {
92
+ type: PropType<VirtualizerScrollportTarget | null>;
93
+ default: string;
94
+ };
89
95
  overscan: {
90
96
  type: PropType<number | Partial<VirtualInsets>>;
91
97
  default: undefined;
@@ -123,6 +129,10 @@ export declare const VirtualizerRoot: import("vue").DefineComponent<import("vue"
123
129
  type: PropType<VirtualLayoutStrategy<object, StableID, unknown, unknown>>;
124
130
  required: true;
125
131
  };
132
+ scrollport: {
133
+ type: PropType<VirtualizerScrollportTarget | null>;
134
+ default: string;
135
+ };
126
136
  overscan: {
127
137
  type: PropType<number | Partial<VirtualInsets>>;
128
138
  default: undefined;
@@ -152,6 +162,7 @@ export declare const VirtualizerRoot: import("vue").DefineComponent<import("vue"
152
162
  onPlanChange?: (_plan: VirtualLayoutPlan<StableID>) => any;
153
163
  onStateChange?: (_state: object) => any;
154
164
  }>, {
165
+ scrollport: VirtualizerScrollportTarget | null;
155
166
  overscan: number | Partial<import("@sectile/core/geometry").Insets>;
156
167
  viewportInsets: number | Partial<import("@sectile/core/geometry").Insets>;
157
168
  initialViewport: import("@sectile/core/geometry").Rect;
@@ -1,2 +1,2 @@
1
- import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onScopeDispose,provide,shallowReactive,shallowRef,toValue,watch}from'vue';import{createAxisMeasurementResolver,createVirtualizer,virtualItemStyle,virtualSurfaceStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';const virtualizerContextKey=Symbol('SectileVirtualizerRoot');const virtualizerSurfaceContextKey=Symbol('SectileVirtualizerSurface');export function useVirtualizer(options){const scrollport=options.scrollport??shallowRef(null);const surface=options.surface??shallowRef(null);const plan=shallowRef(null);const connection=shallowRef();const frames=new Map;const frameRegistrations=new Map;const items=new Map;const itemRegistrations=new Map;let disposed=false;const report=error=>{options.onError?.(error)};const updateInitialPlan=()=>{if(options.initialViewport===undefined){plan.value=null;return}const overscan=toValue(options.overscan);const result=options.strategy.tryQuery(options.state.value,{viewport:options.initialViewport,...overscan===undefined?{}:{overscan}});if(!result.ok){report(result.error);return}plan.value=result.value;options.onPlanChange?.(result.value)};updateInitialPlan();const disconnectConnection=()=>{frameRegistrations.clear();itemRegistrations.clear();connection.value?.disconnect();connection.value=undefined};const connect=()=>{if(disposed)return;disconnectConnection();const currentScrollport=scrollport.value;const currentSurface=surface.value;if(currentScrollport===null||currentScrollport===undefined||currentSurface===null||currentSurface===undefined){updateInitialPlan();return}const overscan=toValue(options.overscan);const viewportInsets=toValue(options.viewportInsets);const next=createVirtualizer({scrollport:currentScrollport,surface:currentSurface,state:options.state.value,strategy:options.strategy,...overscan===undefined?{}:{overscan},...viewportInsets===undefined?{}:{viewportInsets},...options.measure===undefined?{}:{measure:options.measure},...options.readViewport===undefined?{}:{readViewport:options.readViewport},...options.writeScroll===undefined?{}:{writeScroll:options.writeScroll},...options.environment===undefined?{}:{environment:options.environment},onPlanChange:value=>{plan.value=value;options.onPlanChange?.(value)},onStateChange:value=>{options.state.value=value;options.onStateChange?.(value)},onError:report});connection.value=next;for(const frame of frames.keys()){frameRegistrations.set(frame,next.registerFrame(frame))}for(const[item,desired]of items){itemRegistrations.set(item,next.registerItem(item,desired.id))}};watch([scrollport,surface],connect,{flush:'post',immediate:true});watch(options.state,value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setState(value)},{flush:'sync'});watch(()=>toValue(options.overscan),value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setOverscan(value)},{deep:true,flush:'sync'});watch(()=>toValue(options.viewportInsets),value=>{connection.value?.setViewportInsets(value)},{deep:true,flush:'sync'});onScopeDispose(()=>{disposed=true;disconnectConnection();frames.clear();items.clear()});const currentConnection=()=>connection.value;return Object.freeze({scrollport,surface,plan,connection,registerFrame:element=>{const token=Object.freeze({});frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.set(element,token);if(connection.value!==undefined){frameRegistrations.set(element,connection.value.registerFrame(element))}return()=>{if(frames.get(element)!==token)return;frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.delete(element)}},registerItem:(element,id)=>{const token=Object.freeze({});itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.set(element,Object.freeze({id,token}));if(connection.value!==undefined){itemRegistrations.set(element,connection.value.registerItem(element,id))}return()=>{if(items.get(element)?.token!==token)return;itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.delete(element)}},measure:measurements=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.measure(measurements)},mutate:mutation=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.mutate(mutation)},scrollTo:(id,alignment)=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.scrollTo(id,alignment)},refresh:()=>{connection.value?.refresh()},flush:()=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.flush()}})}export const VirtualizerRoot=/* @__PURE__ */defineComponent({name:'SectileVirtualizerRoot',inheritAttrs:false,props:{defaultState:{type:Object,required:true},strategy:{type:Object,required:true},overscan:{type:[Number,Object],default:undefined},viewportInsets:{type:[Number,Object],default:undefined},initialViewport:{type:Object,default:undefined},measure:{type:Function,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const state=shallowRef(props.defaultState);const virtualizer=useVirtualizer({state,strategy:props.strategy,overscan:()=>props.overscan,viewportInsets:()=>props.viewportInsets,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...props.measure===undefined?{}:{measure:props.measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});watch(()=>props.defaultState,value=>{if(!Object.is(state.value,value))state.value=value},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.strategy,props.measure,props.initialViewport],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualizerRoot strategy, measure, and initialViewport are construction-time options. Remount the root to change them.')},{flush:'sync'});const slotProps=computed(()=>Object.freeze({state:state.value,plan:virtualizer.plan.value,placements:virtualizer.plan.value?.placements??Object.freeze([]),scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));provide(virtualizerContextKey,{plan:computed(()=>virtualizer.plan.value),surface:virtualizer.surface,registerFrame:virtualizer.registerFrame,registerItem:virtualizer.registerItem});expose(shallowReactive({get scrollport(){return virtualizer.scrollport},get surface(){return virtualizer.surface},get state(){return slotProps.value.state},get plan(){return slotProps.value.plan},get placements(){return slotProps.value.placements},scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{virtualizer.scrollport.value=element instanceof HTMLElement?element:null},'data-scope':'virtualizer','data-part':'root'}),{default:()=>slots['default']?.(slotProps.value)})}});export const VirtualizerHeader=/* @__PURE__ */defineComponent({name:'SectileVirtualizerHeader',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerHeader');let element=null;let unregister;const setElement=value=>{const next=value instanceof HTMLElement?value:null;if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'header'}),{default:()=>slots['default']?.()})}});export const VirtualizerSurface=/* @__PURE__ */defineComponent({name:'SectileVirtualizerSurface',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerSurface');provide(virtualizerSurfaceContextKey,{registerItem:root.registerItem});let element=null;const style=computed(()=>root.plan.value===null?Object.freeze({position:'relative'}):virtualSurfaceStyle(root.plan.value));const setElement=value=>{const next=value instanceof HTMLElement?value:null;if(element===next)return;if(element!==null&&root.surface.value===element){root.surface.value=null}element=next;if(next!==null)root.surface.value=next};onBeforeUnmount(()=>{if(element!==null&&root.surface.value===element){root.surface.value=null}element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:style.value,'data-scope':'virtualizer','data-part':'surface'}),{default:()=>slots['default']?.(root.plan.value)})}});export const VirtualizerItem=/* @__PURE__ */defineComponent({name:'SectileVirtualizerItem',inheritAttrs:false,props:{placement:{type:Object,required:true},size:{type:String,default:'none'},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const surface=useVirtualizerSurface('VirtualizerItem');let element=null;let unregister;const sizing=computed(()=>Object.freeze({width:props.size==='width'||props.size==='both',height:props.size==='height'||props.size==='both'}));const setElement=value=>{const next=value instanceof HTMLElement?value:null;if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null){unregister=surface.registerItem(next,props.placement.id)}};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:virtualItemStyle(props.placement,sizing.value),'data-scope':'virtualizer','data-part':'item','data-index':props.placement.index,'data-visible':props.placement.visible?'':undefined}),{default:()=>slots['default']?.(props.placement)})}});export const VirtualizerFooter=/* @__PURE__ */defineComponent({name:'SectileVirtualizerFooter',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerFooter');let element=null;let unregister;const setElement=value=>{const next=value instanceof HTMLElement?value:null;if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'footer'}),{default:()=>slots['default']?.()})}});function useVirtualizerRoot(part){const root=inject(virtualizerContextKey);if(root===undefined){throw new TypeError(`${part} must be used inside VirtualizerRoot.`)}return root}function useVirtualizerSurface(part){const surface=inject(virtualizerSurfaceContextKey);if(surface===undefined){throw new TypeError(`${part} must be used inside VirtualizerSurface.`)}return surface}export function useVirtualizerSurfaceRegistration(part){return useVirtualizerSurface(part)}export function virtualizerNotConnected(){return{ok:false,error:{class:'transition-rejection',code:'virtualizer-not-connected',message:'Virtualizer requires mounted scrollport and surface elements.'}}}export{createAxisMeasurementResolver,virtualItemStyle,virtualSurfaceStyle};
1
+ import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onScopeDispose,provide,shallowReactive,shallowRef,toValue,watch}from'vue';import{createAxisMeasurementResolver,createVirtualizer,virtualItemStyle,virtualSurfaceStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';const virtualizerContextKey=Symbol('SectileVirtualizerRoot');const virtualizerSurfaceContextKey=Symbol('SectileVirtualizerSurface');export function useVirtualizer(options){const scrollport=options.scrollport??shallowRef(null);const surface=options.surface??shallowRef(null);const plan=shallowRef(null);const connection=shallowRef();const frames=new Map;const frameRegistrations=new Map;const items=new Map;const itemRegistrations=new Map;let disposed=false;const report=error=>{options.onError?.(error)};const updateInitialPlan=()=>{if(options.initialViewport===undefined){plan.value=null;return}const overscan=toValue(options.overscan);const result=options.strategy.tryQuery(options.state.value,{viewport:options.initialViewport,...overscan===undefined?{}:{overscan}});if(!result.ok){report(result.error);return}plan.value=result.value;options.onPlanChange?.(result.value)};updateInitialPlan();const disconnectConnection=()=>{frameRegistrations.clear();itemRegistrations.clear();connection.value?.disconnect();connection.value=undefined};const connect=()=>{if(disposed)return;disconnectConnection();const currentScrollport=scrollport.value;const currentSurface=surface.value;if(currentScrollport===null||currentScrollport===undefined||currentSurface===null||currentSurface===undefined){updateInitialPlan();return}const overscan=toValue(options.overscan);const viewportInsets=toValue(options.viewportInsets);const next=createVirtualizer({scrollport:currentScrollport,surface:currentSurface,state:options.state.value,strategy:options.strategy,...overscan===undefined?{}:{overscan},...viewportInsets===undefined?{}:{viewportInsets},...options.measure===undefined?{}:{measure:options.measure},...options.readViewport===undefined?{}:{readViewport:options.readViewport},...options.writeScroll===undefined?{}:{writeScroll:options.writeScroll},...options.environment===undefined?{}:{environment:options.environment},onPlanChange:value=>{plan.value=value;options.onPlanChange?.(value)},onStateChange:value=>{options.state.value=value;options.onStateChange?.(value)},onError:report});connection.value=next;for(const frame of frames.keys()){frameRegistrations.set(frame,next.registerFrame(frame))}for(const[item,desired]of items){itemRegistrations.set(item,next.registerItem(item,desired.id))}};watch([scrollport,surface],connect,{flush:'post',immediate:true});watch(options.state,value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setState(value)},{flush:'sync'});watch(()=>toValue(options.overscan),value=>{if(connection.value===undefined)updateInitialPlan();else connection.value.setOverscan(value)},{deep:true,flush:'sync'});watch(()=>toValue(options.viewportInsets),value=>{connection.value?.setViewportInsets(value)},{deep:true,flush:'sync'});onScopeDispose(()=>{disposed=true;disconnectConnection();frames.clear();items.clear()});const currentConnection=()=>connection.value;return Object.freeze({scrollport,surface,plan,connection,registerFrame:element=>{const token=Object.freeze({});frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.set(element,token);if(connection.value!==undefined){frameRegistrations.set(element,connection.value.registerFrame(element))}return()=>{if(frames.get(element)!==token)return;frameRegistrations.get(element)?.();frameRegistrations.delete(element);frames.delete(element)}},registerItem:(element,id)=>{const token=Object.freeze({});itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.set(element,Object.freeze({id,token}));if(connection.value!==undefined){itemRegistrations.set(element,connection.value.registerItem(element,id))}return()=>{if(items.get(element)?.token!==token)return;itemRegistrations.get(element)?.();itemRegistrations.delete(element);items.delete(element)}},measure:measurements=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.measure(measurements)},mutate:mutation=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.mutate(mutation)},scrollTo:(id,alignment)=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.scrollTo(id,alignment)},refresh:()=>{connection.value?.refresh()},flush:()=>{const active=currentConnection();return active===undefined?virtualizerNotConnected():active.flush()}})}export const VirtualizerRoot=/* @__PURE__ */defineComponent({name:'SectileVirtualizerRoot',inheritAttrs:false,props:{defaultState:{type:Object,required:true},strategy:{type:Object,required:true},scrollport:{type:[String,Object],default:'root'},overscan:{type:[Number,Object],default:undefined},viewportInsets:{type:[Number,Object],default:undefined},initialViewport:{type:Object,default:undefined},measure:{type:Function,default:undefined},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const state=shallowRef(props.defaultState);let rootElement=null;const virtualizer=useVirtualizer({state,strategy:props.strategy,overscan:()=>props.overscan,viewportInsets:()=>props.viewportInsets,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...props.measure===undefined?{}:{measure:props.measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const resolveScrollport=target=>{virtualizer.scrollport.value=target==='root'?rootElement:target==='document'?rootElement?.ownerDocument??null:target};watch(()=>props.scrollport,resolveScrollport,{flush:'sync'});watch(()=>props.defaultState,value=>{if(!Object.is(state.value,value))state.value=value},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.strategy,props.measure,props.initialViewport],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualizerRoot strategy, measure, and initialViewport are construction-time options. Remount the root to change them.')},{flush:'sync'});const slotProps=computed(()=>Object.freeze({state:state.value,plan:virtualizer.plan.value,placements:virtualizer.plan.value?.placements??Object.freeze([]),scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));provide(virtualizerContextKey,{plan:computed(()=>virtualizer.plan.value),surface:virtualizer.surface,registerFrame:virtualizer.registerFrame,registerItem:virtualizer.registerItem});expose(shallowReactive({get scrollport(){return virtualizer.scrollport},get surface(){return virtualizer.surface},get state(){return slotProps.value.state},get plan(){return slotProps.value.plan},get placements(){return slotProps.value.placements},scrollTo:virtualizer.scrollTo,measure:virtualizer.measure,mutate:virtualizer.mutate,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{rootElement=asHTMLElement(element);resolveScrollport(props.scrollport)},'data-scope':'virtualizer','data-part':'root'}),{default:()=>slots['default']?.(slotProps.value)})}});export const VirtualizerHeader=/* @__PURE__ */defineComponent({name:'SectileVirtualizerHeader',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerHeader');let element=null;let unregister;const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'header'}),{default:()=>slots['default']?.()})}});export const VirtualizerSurface=/* @__PURE__ */defineComponent({name:'SectileVirtualizerSurface',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerSurface');provide(virtualizerSurfaceContextKey,{registerItem:root.registerItem});let element=null;const style=computed(()=>root.plan.value===null?Object.freeze({position:'relative'}):virtualSurfaceStyle(root.plan.value));const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;if(element!==null&&root.surface.value===element){root.surface.value=null}element=next;if(next!==null)root.surface.value=next};onBeforeUnmount(()=>{if(element!==null&&root.surface.value===element){root.surface.value=null}element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:style.value,'data-scope':'virtualizer','data-part':'surface'}),{default:()=>slots['default']?.(root.plan.value)})}});export const VirtualizerItem=/* @__PURE__ */defineComponent({name:'SectileVirtualizerItem',inheritAttrs:false,props:{placement:{type:Object,required:true},size:{type:String,default:'none'},as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const surface=useVirtualizerSurface('VirtualizerItem');let element=null;let unregister;const sizing=computed(()=>Object.freeze({width:props.size==='width'||props.size==='both',height:props.size==='height'||props.size==='both'}));const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null){unregister=surface.registerItem(next,props.placement.id)}};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,style:virtualItemStyle(props.placement,sizing.value),'data-scope':'virtualizer','data-part':'item','data-index':props.placement.index,'data-visible':props.placement.visible?'':undefined}),{default:()=>slots['default']?.(props.placement)})}});export const VirtualizerFooter=/* @__PURE__ */defineComponent({name:'SectileVirtualizerFooter',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerFooter');let element=null;let unregister;const setElement=value=>{const next=asHTMLElement(value);if(element===next)return;unregister?.();unregister=undefined;element=next;if(next!==null)unregister=root.registerFrame(next)};onBeforeUnmount(()=>{unregister?.();unregister=undefined;element=null});return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:setElement,'data-scope':'virtualizer','data-part':'footer'}),{default:()=>slots['default']?.()})}});function useVirtualizerRoot(part){const root=inject(virtualizerContextKey);if(root===undefined){throw new TypeError(`${part} must be used inside VirtualizerRoot.`)}return root}function useVirtualizerSurface(part){const surface=inject(virtualizerSurfaceContextKey);if(surface===undefined){throw new TypeError(`${part} must be used inside VirtualizerSurface.`)}return surface}export function useVirtualizerSurfaceRegistration(part){return useVirtualizerSurface(part)}function asHTMLElement(value){return typeof value==='object'&&value!==null&&'offsetHeight'in value?value:null}export function virtualizerNotConnected(){return{ok:false,error:{class:'transition-rejection',code:'virtualizer-not-connected',message:'not connected'}}}export{createAxisMeasurementResolver,virtualItemStyle,virtualSurfaceStyle};
2
2
  //# sourceMappingURL=virtual-core.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-core.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onScopeDispose","provide","shallowReactive","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualItemStyle","virtualSurfaceStyle","Primitive","virtualizerContextKey","Symbol","virtualizerSurfaceContextKey","useVirtualizer","options","scrollport","surface","plan","connection","frames","Map","frameRegistrations","items","itemRegistrations","disposed","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnectConnection","clear","disconnect","connect","currentScrollport","currentSurface","viewportInsets","next","measure","readViewport","writeScroll","environment","onStateChange","frame","keys","set","registerFrame","item","desired","registerItem","id","flush","immediate","setState","setOverscan","deep","setViewportInsets","currentConnection","Object","freeze","element","token","get","delete","measurements","active","virtualizerNotConnected","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","Number","default","Function","as","String","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","virtualizer","is","constructionWarningShown","previous","every","index","console","warn","slotProps","placements","elementRef","HTMLElement","VirtualizerHeader","root","useVirtualizerRoot","unregister","setElement","VirtualizerSurface","style","position","VirtualizerItem","placement","size","useVirtualizerSurface","sizing","width","height","visible","VirtualizerFooter","part","TypeError","useVirtualizerSurfaceRegistration","class","code","message"],"sources":["../../src/internal/virtual-core.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual-core.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onScopeDispose","provide","shallowReactive","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualItemStyle","virtualSurfaceStyle","Primitive","virtualizerContextKey","Symbol","virtualizerSurfaceContextKey","useVirtualizer","options","scrollport","surface","plan","connection","frames","Map","frameRegistrations","items","itemRegistrations","disposed","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnectConnection","clear","disconnect","connect","currentScrollport","currentSurface","viewportInsets","next","measure","readViewport","writeScroll","environment","onStateChange","frame","keys","set","registerFrame","item","desired","registerItem","id","flush","immediate","setState","setOverscan","deep","setViewportInsets","currentConnection","Object","freeze","element","token","get","delete","measurements","active","virtualizerNotConnected","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","String","default","Number","Function","as","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","rootElement","virtualizer","resolveScrollport","target","ownerDocument","is","constructionWarningShown","previous","every","index","console","warn","slotProps","placements","elementRef","asHTMLElement","VirtualizerHeader","root","useVirtualizerRoot","unregister","setElement","VirtualizerSurface","style","position","VirtualizerItem","placement","size","useVirtualizerSurface","sizing","width","height","visible","VirtualizerFooter","part","TypeError","useVirtualizerSurfaceRegistration","class","code","message"],"sources":["../../src/internal/virtual-core.ts"],"mappings":"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","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExactVirtualExtent,createVirtualExtent,reconcileVirtualCollectionExtents,reconcileVirtualCollectionValueExtents,virtualSizePolicyRequiresMeasurement}from'@sectile/virtual/collection';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{createLinearLayout,linearLayoutStrategyFor,setLinearCrossExtent,tryApplyLinearMeasurements,tryApplyLinearPatch}from'@sectile/virtual/linear-layout';import{}from'@sectile/dom/virtual';import{VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{constrainPreparedVirtualCollection,createVirtualCollectionExpose,prepareVirtualCollection,renderHighLevelItems,updatePreparedVirtualCollection}from'./virtual-collection.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},sizePolicy:{type:Object,required:true},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},viewportInsets:{type:[Number,Object],default:undefined},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const axis=props.axis;const gap=props.gap;const maxItems=props.maxItems;const sizePolicy=props.sizePolicy;const initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(virtualSizePolicyRequiresMeasurement(sizePolicy)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;const bootstrapRefs=new Map;let bootstrapScheduled=false;let disposed=false;const initialCrossExtent=crossExtentForViewport(axis,initialViewport);const initialState=virtualSizePolicyRequiresMeasurement(sizePolicy)?createEmptyVirtualListState({axis,gap,maxItems,crossExtent:initialCrossExtent}):createVirtualListState(prepared.value,props.items,{sizePolicy,axis,gap,maxItems,crossExtent:initialCrossExtent});const activeState=shallowRef(initialState);const root=shallowRef();const measure=sizePolicy.kind==='fixed'?undefined:createVirtualListMeasurementResolver(axis);const isBootstrapping=()=>automaticEstimate.value===undefined&&bootstrapCount.value>0&&prepared.value.domain.size>0;const phase=()=>prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready';const currentState=()=>root.value?.state??activeState.value;const bootstrapItemRef=index=>{const existing=bootstrapRefs.get(index);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element===null){bootstrapElements.delete(index);if(bootstrapRefs.get(index)===callback)bootstrapRefs.delete(index);return}bootstrapElements.set(index,element);scheduleBootstrap()};bootstrapRefs.set(index,callback);return callback};const completeBootstrap=()=>{if(!isBootstrapping())return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+gap*Math.max(0,extents.length-1);const scrollport=root.value?.scrollport.value;const measuredViewportExtent=axis==='vertical'?scrollport?.clientHeight??0:scrollport?.clientWidth??0;const viewportExtent=measuredViewportExtent>0?measuredViewportExtent:axis==='vertical'?initialViewport?.height??0:initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){bootstrapCount.value=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+gap)/(average+gap))));return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();bootstrapRefs.clear();activeState.value=createVirtualListState(prepared.value,props.items,{sizePolicy,axis,gap,maxItems,crossExtent:currentState().crossExtent},average)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>[props.items,props.getID],()=>{const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);if(virtualSizePolicyRequiresMeasurement(sizePolicy)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}let nextState=currentState();const exposed=root.value;const patch=reconcileVirtualCollectionExtents(nextState,next,sizePolicy,automaticEstimate.value);if(patch!==null){const result=exposed===undefined?tryApplyLinearPatch(nextState,patch):exposed.mutate(patch);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}const valueUpdates=reconcileVirtualCollectionValueExtents(nextState,next,sizePolicy,automaticEstimate.value);if(valueUpdates.length>0){const result=exposed===undefined?tryApplyLinearMeasurements(nextState,{generation:nextState.generation,measurements:valueUpdates}):exposed.measure(valueUpdates);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}prepared.value=next},{flush:'sync'});const syncCrossExtent=plan=>{const crossExtent=axis==='vertical'?plan.viewport.width:plan.viewport.height;const state=currentState();const next=setLinearCrossExtent(state,crossExtent);if(Object.is(next,state))return false;activeState.value=next;return true};let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.sizePolicy,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],()=>{if(constructionWarningShown||props.axis===axis&&props.gap===gap&&props.maxItems===maxItems&&sameVirtualSizePolicy(props.sizePolicy,sizePolicy)&&sameVirtualRect(props.initialViewport,initialViewport))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, sizePolicy, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;bootstrapElements.clear();bootstrapRefs.clear()});expose(createVirtualCollectionExpose(root,initialState,phase));return()=>h(VirtualizerRoot,{...attrs,ref:root,defaultState:activeState.value,strategy:linearLayoutStrategyFor(),overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,style:[{overflow:'auto'},attrs['style']],'data-virtual-layout':'virtual-list','data-phase':phase(),onStateChange:value=>{const state=value;activeState.value=state;emit('stateChange',state)},onPlanChange:plan=>{if(syncCrossExtent(plan))return;emit('planChange',plan)},onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs,...isBootstrapping()&&axis==='horizontal'?{style:{display:'flex'}}:{}},{default:()=>isBootstrapping()?renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,{axis,gap,crossExtent:currentState().crossExtent,itemAs:props.itemAs,itemAttributes:props.itemAttributes},slots['item'],bootstrapItemRef):renderHighLevelItems('virtual-list',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,linearItemSize(axis,sizePolicy),(value,id,index,placement)=>slots['item']?.({value,id,index,placement}),slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){return createLinearLayout(constrainPreparedVirtualCollection(prepared,props.maxItems),createVirtualListExtentIndex(prepared,items,props.sizePolicy,props.maxItems,automaticEstimate),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze(props.axis==='vertical'?{x:0,y:0,width:props.crossExtent,height:0}:{x:0,y:0,width:0,height:props.crossExtent}),visible:true});const rendered=render?.({value,id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:itemRef(index),style:[attributes['style'],props.crossExtent>0?props.axis==='vertical'?{width:`${props.crossExtent}px`}:{height:`${props.crossExtent}px`}:undefined,props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}function createVirtualListExtentIndex(prepared,items,sizePolicy,maxItems,automaticEstimate){if(prepared.domain.size===0){return createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems})}const shared=sizePolicy.kind==='fixed'||sizePolicy.kind==='measured'||sizePolicy.kind==='estimated'&&typeof sizePolicy.estimate==='number'?createVirtualExtent(sizePolicy,items[0],0,automaticEstimate):null;return shared===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>createVirtualExtent(sizePolicy,items[index],index,automaticEstimate)),{maxItems}):createUniformExtentIndex(prepared.domain.size,shared,{maxItems})}function linearItemSize(axis,sizePolicy){if(sizePolicy.kind==='fixed')return'both';return axis==='vertical'?'width':'height'}function crossExtentForViewport(axis,viewport){if(viewport===undefined)return 0;return axis==='vertical'?viewport.width:viewport.height}function sameVirtualSizePolicy(left,right){if(left.kind!==right.kind)return false;if(left.kind==='measured'&&right.kind==='measured')return true;if(left.kind==='fixed'&&right.kind==='fixed'){return left.extent===right.extent}return left.kind==='estimated'&&right.kind==='estimated'&&Object.is(left.estimate,right.estimate)}function sameVirtualRect(left,right){if(left===undefined||right===undefined)return left===right;return left.x===right.x&&left.y===right.y&&left.width===right.width&&left.height===right.height}
1
+ import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExactVirtualExtent,createVirtualExtent,reconcileVirtualCollectionExtents,reconcileVirtualCollectionValueExtents,virtualSizePolicyRequiresMeasurement}from'@sectile/virtual/collection';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{createLinearLayout,linearLayoutStrategyFor,setLinearCrossExtent,tryApplyLinearMeasurements,tryApplyLinearPatch}from'@sectile/virtual/linear-layout';import{}from'@sectile/dom/virtual';import{VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{constrainPreparedVirtualCollection,createVirtualCollectionExpose,prepareVirtualCollection,renderHighLevelItems,updatePreparedVirtualCollection}from'./virtual-collection.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},sizePolicy:{type:Object,required:true},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},viewportInsets:{type:[Number,Object],default:undefined},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const axis=props.axis;const gap=props.gap;const maxItems=props.maxItems;const sizePolicy=props.sizePolicy;const initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(virtualSizePolicyRequiresMeasurement(sizePolicy)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;const bootstrapRefs=new Map;let bootstrapScheduled=false;let disposed=false;const initialCrossExtent=crossExtentForViewport(axis,initialViewport);const initialState=virtualSizePolicyRequiresMeasurement(sizePolicy)?createEmptyVirtualListState({axis,gap,maxItems,crossExtent:initialCrossExtent}):createVirtualListState(prepared.value,props.items,{sizePolicy,axis,gap,maxItems,crossExtent:initialCrossExtent});const activeState=shallowRef(initialState);const root=shallowRef();const measure=sizePolicy.kind==='fixed'?undefined:createVirtualListMeasurementResolver(axis);const isBootstrapping=()=>automaticEstimate.value===undefined&&bootstrapCount.value>0&&prepared.value.domain.size>0;const phase=()=>prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready';const currentState=()=>root.value?.state??activeState.value;const bootstrapItemRef=index=>{const existing=bootstrapRefs.get(index);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element===null){bootstrapElements.delete(index);if(bootstrapRefs.get(index)===callback)bootstrapRefs.delete(index);return}bootstrapElements.set(index,element);scheduleBootstrap()};bootstrapRefs.set(index,callback);return callback};const completeBootstrap=()=>{if(!isBootstrapping())return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+gap*Math.max(0,extents.length-1);const viewport=root.value?.plan?.viewport;const viewportExtent=axis==='vertical'?viewport?.height??initialViewport?.height??0:viewport?.width??initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){bootstrapCount.value=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+gap)/(average+gap))));return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();bootstrapRefs.clear();activeState.value=createVirtualListState(prepared.value,props.items,{sizePolicy,axis,gap,maxItems,crossExtent:currentState().crossExtent},average)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>[props.items,props.getID],()=>{const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);if(virtualSizePolicyRequiresMeasurement(sizePolicy)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}let nextState=currentState();const exposed=root.value;const patch=reconcileVirtualCollectionExtents(nextState,next,sizePolicy,automaticEstimate.value);if(patch!==null){const result=exposed===undefined?tryApplyLinearPatch(nextState,patch):exposed.mutate(patch);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}const valueUpdates=reconcileVirtualCollectionValueExtents(nextState,next,sizePolicy,automaticEstimate.value);if(valueUpdates.length>0){const result=exposed===undefined?tryApplyLinearMeasurements(nextState,{generation:nextState.generation,measurements:valueUpdates}):exposed.measure(valueUpdates);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}prepared.value=next},{flush:'sync'});const syncCrossExtent=plan=>{const crossExtent=axis==='vertical'?plan.viewport.width:plan.viewport.height;const state=currentState();const next=setLinearCrossExtent(state,crossExtent);if(Object.is(next,state))return false;activeState.value=next;return true};let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.sizePolicy,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],()=>{if(constructionWarningShown||props.axis===axis&&props.gap===gap&&props.maxItems===maxItems&&sameVirtualSizePolicy(props.sizePolicy,sizePolicy)&&sameVirtualRect(props.initialViewport,initialViewport))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, sizePolicy, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;bootstrapElements.clear();bootstrapRefs.clear()});expose(createVirtualCollectionExpose(root,initialState,phase));return()=>h(VirtualizerRoot,{...attrs,ref:root,defaultState:activeState.value,strategy:linearLayoutStrategyFor(),overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,style:attrs['scrollport']===undefined||attrs['scrollport']==='root'?[{overflow:'auto'},attrs['style']]:attrs['style'],'data-virtual-layout':'virtual-list','data-phase':phase(),onStateChange:value=>{const state=value;activeState.value=state;emit('stateChange',state)},onPlanChange:plan=>{if(syncCrossExtent(plan))return;emit('planChange',plan)},onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs,...isBootstrapping()&&axis==='horizontal'?{style:{display:'flex'}}:{}},{default:()=>isBootstrapping()?renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,{axis,gap,crossExtent:currentState().crossExtent,itemAs:props.itemAs,itemAttributes:props.itemAttributes},slots['item'],bootstrapItemRef):renderHighLevelItems('virtual-list',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,linearItemSize(axis,sizePolicy),(value,id,index,placement)=>slots['item']?.({value,id,index,placement}),slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){return createLinearLayout(constrainPreparedVirtualCollection(prepared,props.maxItems),createVirtualListExtentIndex(prepared,items,props.sizePolicy,props.maxItems,automaticEstimate),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze(props.axis==='vertical'?{x:0,y:0,width:props.crossExtent,height:0}:{x:0,y:0,width:0,height:props.crossExtent}),visible:true});const rendered=render?.({value,id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:itemRef(index),style:[attributes['style'],props.crossExtent>0?props.axis==='vertical'?{width:`${props.crossExtent}px`}:{height:`${props.crossExtent}px`}:undefined,props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}function createVirtualListExtentIndex(prepared,items,sizePolicy,maxItems,automaticEstimate){if(prepared.domain.size===0){return createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems})}const shared=sizePolicy.kind==='fixed'||sizePolicy.kind==='measured'||sizePolicy.kind==='estimated'&&typeof sizePolicy.estimate==='number'?createVirtualExtent(sizePolicy,items[0],0,automaticEstimate):null;return shared===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>createVirtualExtent(sizePolicy,items[index],index,automaticEstimate)),{maxItems}):createUniformExtentIndex(prepared.domain.size,shared,{maxItems})}function linearItemSize(axis,sizePolicy){if(sizePolicy.kind==='fixed')return'both';return axis==='vertical'?'width':'height'}function crossExtentForViewport(axis,viewport){if(viewport===undefined)return 0;return axis==='vertical'?viewport.width:viewport.height}function sameVirtualSizePolicy(left,right){if(left.kind!==right.kind)return false;if(left.kind==='measured'&&right.kind==='measured')return true;if(left.kind==='fixed'&&right.kind==='fixed'){return left.extent===right.extent}return left.kind==='estimated'&&right.kind==='estimated'&&Object.is(left.estimate,right.estimate)}function sameVirtualRect(left,right){if(left===undefined||right===undefined)return left===right;return left.x===right.x&&left.y===right.y&&left.width===right.width&&left.height===right.height}
2
2
  //# sourceMappingURL=virtual-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"virtual-list.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createSequence","createExactVirtualExtent","createVirtualExtent","reconcileVirtualCollectionExtents","reconcileVirtualCollectionValueExtents","virtualSizePolicyRequiresMeasurement","createExtentIndex","createUniformExtentIndex","createLinearLayout","linearLayoutStrategyFor","setLinearCrossExtent","tryApplyLinearMeasurements","tryApplyLinearPatch","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","constrainPreparedVirtualCollection","createVirtualCollectionExpose","prepareVirtualCollection","renderHighLevelItems","updatePreparedVirtualCollection","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","sizePolicy","Object","axis","String","default","gap","Number","overscan","viewportInsets","undefined","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapRefs","bootstrapScheduled","disposed","initialCrossExtent","crossExtentForViewport","initialState","createEmptyVirtualListState","crossExtent","createVirtualListState","activeState","root","measure","kind","createVirtualListMeasurementResolver","isBootstrapping","phase","currentState","state","bootstrapItemRef","index","existing","get","callback","element","HTMLElement","delete","set","scheduleBootstrap","completeBootstrap","count","Math","min","extents","bounds","getBoundingClientRect","extent","height","width","isFinite","push","total","reduce","sum","max","length","scrollport","measuredViewportExtent","clientHeight","clientWidth","viewportExtent","target","bootstrapTrailingOverscanExtent","average","ceil","clear","next","nextState","exposed","patch","result","mutate","ok","valueUpdates","generation","measurements","flush","syncCrossExtent","plan","viewport","is","constructionWarningShown","x","y","sameVirtualSizePolicy","sameVirtualRect","console","warn","ref","defaultState","strategy","style","overflow","onStateChange","onPlanChange","onError","placements","display","renderVirtualListBootstrapItems","linearItemSize","id","placement","VirtualList","measureVirtualListElement","indexOf","current","extentAt","abs","createVirtualListExtentIndex","maxIDCodeUnits","bottom","right","render","itemRef","from","_unused","at","attributes","rect","visible","rendered","children","isArray","key","marginTop","marginLeft","shared","estimate","left"],"sources":["../../src/internal/virtual-list.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"virtual-list.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createSequence","createExactVirtualExtent","createVirtualExtent","reconcileVirtualCollectionExtents","reconcileVirtualCollectionValueExtents","virtualSizePolicyRequiresMeasurement","createExtentIndex","createUniformExtentIndex","createLinearLayout","linearLayoutStrategyFor","setLinearCrossExtent","tryApplyLinearMeasurements","tryApplyLinearPatch","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","constrainPreparedVirtualCollection","createVirtualCollectionExpose","prepareVirtualCollection","renderHighLevelItems","updatePreparedVirtualCollection","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","sizePolicy","Object","axis","String","default","gap","Number","overscan","viewportInsets","undefined","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapRefs","bootstrapScheduled","disposed","initialCrossExtent","crossExtentForViewport","initialState","createEmptyVirtualListState","crossExtent","createVirtualListState","activeState","root","measure","kind","createVirtualListMeasurementResolver","isBootstrapping","phase","currentState","state","bootstrapItemRef","index","existing","get","callback","element","HTMLElement","delete","set","scheduleBootstrap","completeBootstrap","count","Math","min","extents","bounds","getBoundingClientRect","extent","height","width","isFinite","push","total","reduce","sum","max","length","viewport","plan","viewportExtent","target","bootstrapTrailingOverscanExtent","average","ceil","clear","next","nextState","exposed","patch","result","mutate","ok","valueUpdates","generation","measurements","flush","syncCrossExtent","is","constructionWarningShown","x","y","sameVirtualSizePolicy","sameVirtualRect","console","warn","ref","defaultState","strategy","style","overflow","onStateChange","onPlanChange","onError","placements","display","renderVirtualListBootstrapItems","linearItemSize","id","placement","VirtualList","measureVirtualListElement","indexOf","current","extentAt","abs","createVirtualListExtentIndex","maxIDCodeUnits","bottom","right","render","itemRef","from","_unused","at","attributes","rect","visible","rendered","children","isArray","key","marginTop","marginLeft","shared","estimate","left"],"sources":["../../src/internal/virtual-list.ts"],"mappings":"OAASA,gBAAiBC,EAAGC,SAAUC,gBAAiBC,UAAWC,WAAYC,UAA8K,aAEpPC,mBAAsB,gCAE7BC,yBACAC,oBACAC,kCACAC,uCACAC,yCAEK,qCACEC,kBAAmBC,6BAAkD,uCACrEC,mBAAoBC,wBAAyBC,qBAAsBC,2BAA4BC,wBAA4F,6CACxD,8BACnIC,kBAAmBC,kBAAmBC,gBAAiBC,uBAA0I,2BAExMC,mCACAC,8BACAC,yBACAC,qBACAC,oCAOK,0BA6CP,MAAMC,kCAAqC7B,gBAAgB,CACzD8B,KAAM,qBACNC,aAAc,MACdC,MAAO,CACLC,MAAO,CACLC,KAAMC,MACNC,SAAU,MAEZC,MAAO,CACLH,KAAMI,SACNF,SAAU,MAEZG,WAAY,CACVL,KAAMM,OACNJ,SAAU,MAEZK,KAAM,CACJP,KAAMQ,OACNC,QAAS,YAEXC,IAAK,CAAEV,KAAMW,OAAQF,QAAS,GAC9BG,SAAU,CACRZ,KAAM,CAACW,OAAQL,QACfG,QAAS,KAEXI,eAAgB,CACdb,KAAM,CAACW,OAAQL,QACfG,QAASK,WAEXC,SAAU,CAAEf,KAAMW,OAAQF,QAAS,WACnCO,gBAAiB,CACfhB,KAAMM,OACNG,QAASK,WAEXG,GAAI,CAAEjB,KAAMQ,OAAQC,QAAS,OAC7BS,UAAW,CAAElB,KAAMQ,OAAQC,QAAS,OACpCU,OAAQ,CAAEnB,KAAMQ,OAAQC,QAAS,OACjCW,eAAgB,CACdpB,KAAMI,SACNK,QAASK,YAGbO,MAAO,CACLC,YAAcC,QAAiD,KAC/DC,WAAaC,OAAgD,KAC7DC,MAAQC,QAA4D,MAEtEC,MAAOtB,OAMP,KAAAuB,CAAM/B,OAAOgC,MAAOC,KAAMC,OAAQJ,QAChC,MAAMrB,KAAOT,MAAMS,KACnB,MAAMG,IAAMZ,MAAMY,IAClB,MAAMK,SAAWjB,MAAMiB,SACvB,MAAMV,WAAaP,MAAMO,WACzB,MAAMW,gBAAkBlB,MAAMkB,kBAAoBF,UAC9CA,UACAR,OAAO2B,OAAO,IAAKnC,MAAMkB,kBAC7B,MAAMkB,SAAW/D,WACfqB,yBAAyBM,MAAMC,MAAOD,MAAMK,MAAOY,WAErD,MAAMoB,kBAAoBhE,aAC1B,MAAMiE,eAAiBjE,WACrBO,qCAAqC2B,aAAe6B,SAASG,MAAMC,OAAOC,KAAO,EAC7E,EACA,GAEN,MAAMC,kBAAoB,IAAIC,IAC9B,MAAMC,cAAgB,IAAID,IAC1B,IAAIE,mBAAqB,MACzB,IAAIC,SAAW,MACf,MAAMC,mBAAqBC,uBAAuBvC,KAAMS,iBACxD,MAAM+B,aAAerE,qCAAqC2B,YACtD2C,4BAA4B,CAAEzC,KAAMG,IAAKK,SAAUkC,YAAaJ,qBAChEK,uBACEhB,SAASG,MACTvC,MAAMC,MACN,CAAEM,WAAYE,KAAMG,IAAKK,SAAUkC,YAAaJ,qBAEtD,MAAMM,YAAchF,WAAW4E,cAC/B,MAAMK,KAAOjF,aACb,MAAMkF,QAAUhD,WAAWiD,OAAS,QAChCxC,UACAyC,qCAAqChD,MACzC,MAAMiD,gBAAkB,IACtBrB,kBAAkBE,QAAUvB,WACzBsB,eAAeC,MAAQ,GACvBH,SAASG,MAAMC,OAAOC,KAAO,EAClC,MAAMkB,MAAQ,IAAMvB,SAASG,MAAMC,OAAOC,OAAS,EAC/C,QACAiB,kBACE,YACA,QACN,MAAME,aAAe,IAClBN,KAAKf,OAAOsB,OAAqDR,YAAYd,MAEhF,MAAMuB,iBAAoBC,QACxB,MAAMC,SAAWpB,cAAcqB,IAAIF,OACnC,GAAIC,WAAahD,UAAW,OAAOgD,SACnC,MAAME,SAAY3B,QAChB,MAAM4B,QAAU5B,iBAAiB6B,YAAc7B,MAAQ,KACvD,GAAI4B,UAAY,KAAM,CACpBzB,kBAAkB2B,OAAON,OACzB,GAAInB,cAAcqB,IAAIF,SAAWG,SAAUtB,cAAcyB,OAAON,OAChE,MACF,CACArB,kBAAkB4B,IAAIP,MAAOI,SAC7BI,qBAEF3B,cAAc0B,IAAIP,MAAOG,UACzB,OAAOA,UAGT,MAAMM,kBAAoB,KACxB,IAAKd,kBAAmB,OACxB,MAAMe,MAAQC,KAAKC,IAAIrC,eAAeC,MAAOH,SAASG,MAAMC,OAAOC,MACnE,MAAMmC,QAAoB,GAC1B,IAAK,IAAIb,MAAQ,EAAGA,MAAQU,MAAOV,OAAS,EAAG,CAC7C,MAAMI,QAAUzB,kBAAkBuB,IAAIF,OACtC,GAAII,UAAYnD,UAAW,OAC3B,MAAM6D,OAASV,QAAQW,wBACvB,MAAMC,OAAStE,OAAS,WAAaoE,OAAOG,OAASH,OAAOI,MAC5D,IAAKpE,OAAOqE,SAASH,SAAWA,QAAU,EAAG,OAC7CH,QAAQO,KAAKJ,OACf,CACA,MAAMK,MAAQR,QAAQS,OAAO,CAACC,IAAKP,SAAWO,IAAMP,OAAQ,GACxDnE,IAAM8D,KAAKa,IAAI,EAAGX,QAAQY,OAAS,GACvC,MAAMC,SAAWnC,KAAKf,OAAOmD,MAAMD,SACnC,MAAME,eAAiBlF,OAAS,WAC5BgF,UAAUT,QAAU9D,iBAAiB8D,QAAU,EAC/CS,UAAUR,OAAS/D,iBAAiB+D,OAAS,EACjD,MAAMW,OAASD,eAAiBE,gCAAgC7F,MAAMc,SAAUL,MAChF,MAAMqF,QAAUlB,QAAQS,OAAO,CAACC,IAAKP,SAAWO,IAAMP,OAAQ,GAAKH,QAAQY,OAC3E,GAAII,OAASR,OAASX,MAAQrC,SAASG,MAAMC,OAAOC,KAAM,CACxDH,eAAeC,MAAQmC,KAAKC,IAC1BvC,SAASG,MAAMC,OAAOC,KACtBiC,KAAKa,IAAId,MAAQ,EAAGC,KAAKqB,MAAMH,OAAShF,MAAQkF,QAAUlF,QAE5D,MACF,CACAyB,kBAAkBE,MAAQuD,QAC1BxD,eAAeC,MAAQ,EACvBG,kBAAkBsD,QAClBpD,cAAcoD,QACd3C,YAAYd,MAAQa,uBAClBhB,SAASG,MACTvC,MAAMC,MACN,CACEM,WACAE,KACAG,IACAK,SACAkC,YAAaS,eAAeT,aAE9B2C,UAGJ,SAASvB,oBACP,GACEzB,UACGD,oBACAR,kBAAkBE,QAAUvB,WAC5BsB,eAAeC,QAAU,EAC5B,OACFM,mBAAqB,UAChB3E,SAAS,KACZ2E,mBAAqB,MACrB,IAAKC,SAAU0B,qBAEnB,CACApG,UAAUmG,mBAEVjG,MACE,IAAM,CAAC0B,MAAMC,MAAOD,MAAMK,OAC1B,KACE,MAAM4F,KAAOrG,gCACXwC,SAASG,MACTvC,MAAMC,MACND,MAAMK,OAER,GACEzB,qCAAqC2B,aAClC8B,kBAAkBE,QAAUvB,UAC/B,CACAoB,SAASG,MAAQ0D,KACjB3D,eAAeC,MAAQ0D,KAAKzD,OAAOC,KAAO,EAAI,EAAI,EAClD8B,oBACA,MACF,CACA,IAAI2B,UAAYtC,eAChB,MAAMuC,QAAU7C,KAAKf,MACrB,MAAM6D,MAAQ1H,kCACZwH,UACAD,KACA1F,WACA8B,kBAAkBE,OAEpB,GAAI6D,QAAU,KAAM,CAClB,MAAMC,OAASF,UAAYnF,UACvB7B,oBAAoB+G,UAAWE,OAC/BD,QAAQG,OAAOF,OACnB,IAAKC,OAAOE,GAAI,CACd,GAAIJ,UAAYnF,UAAW,CACzBiB,KACE,QACAoE,OAAOzE,MAEX,CACA,MACF,CACAsE,UAAYG,OAAO9D,MAAMsB,MACzBR,YAAYd,MAAQ2D,SACtB,CACA,MAAMM,aAAe7H,uCACnBuH,UACAD,KACA1F,WACA8B,kBAAkBE,OAEpB,GAAIiE,aAAahB,OAAS,EAAG,CAC3B,MAAMa,OAASF,UAAYnF,UACvB9B,2BAA2BgH,UAAW,CACpCO,WAAYP,UAAUO,WACtBC,aAAcF,eAEhBL,QAAQ5C,QAAQiD,cACpB,IAAKH,OAAOE,GAAI,CACd,GAAIJ,UAAYnF,UAAW,CACzBiB,KACE,QACAoE,OAAOzE,MAEX,CACA,MACF,CACAsE,UAAYG,OAAO9D,MAAMsB,MACzBR,YAAYd,MAAQ2D,SACtB,CACA9D,SAASG,MAAQ0D,MAEnB,CAAEU,MAAO,SAGX,MAAMC,gBAAmBlB,OACvB,MAAMvC,YAAc1C,OAAS,WACzBiF,KAAKD,SAASR,MACdS,KAAKD,SAAST,OAClB,MAAMnB,MAAQD,eACd,MAAMqC,KAAOhH,qBAAqB4E,MAAOV,aACzC,GAAI3C,OAAOqG,GAAGZ,KAAMpC,OAAQ,OAAO,MACnCR,YAAYd,MAAQ0D,KACpB,OAAO,MAGT,IAAIa,yBAA2B,MAC/BxI,MACE,IAAM,CACJ0B,MAAMS,KACNT,MAAMY,IACNZ,MAAMiB,SACNjB,MAAMO,WACNP,MAAMkB,iBAAiB6F,EACvB/G,MAAMkB,iBAAiB8F,EACvBhH,MAAMkB,iBAAiB+D,MACvBjF,MAAMkB,iBAAiB8D,QAEzB,KACE,GACE8B,0BAEE9G,MAAMS,OAASA,MACZT,MAAMY,MAAQA,KACdZ,MAAMiB,WAAaA,UACnBgG,sBAAsBjH,MAAMO,WAAYA,aACxC2G,gBAAgBlH,MAAMkB,gBAAiBA,iBAE5C,OACF4F,yBAA2B,KAC3BK,QAAQC,KACN,+IAGJ,CAAET,MAAO,SAGXxI,gBAAgB,KACd2E,SAAW,KACXJ,kBAAkBsD,QAClBpD,cAAcoD,UAGhB9D,OAAOzC,8BAA8B6D,KAAML,aAAcU,QAEzD,MAAO,IAAkB1F,EAAEqB,gBAA8B,IACpD0C,MACHqF,IAAK/D,KACLgE,aAAcjE,YAAYd,MAC1BgF,SAAUvI,0BACV8B,SAAUd,MAAMc,YACZd,MAAMe,iBAAmBC,UAAY,GAAK,CAAED,eAAgBf,MAAMe,mBAClEG,kBAAoBF,UAAY,GAAK,CAAEE,oBACvCqC,UAAYvC,UAAY,GAAK,CAC/BuC,SAEFpC,GAAInB,MAAMmB,GACVqG,MAAOxF,MAAM,gBAAkBhB,WAAagB,MAAM,gBAAkB,OAChE,CAAC,CAAEyF,SAAU,QAAUzF,MAAM,UAC7BA,MAAM,SACV,sBAAuB,eACvB,aAAc2B,QACd+D,cAAgBnF,QACd,MAAMsB,MAAQtB,MACdc,YAAYd,MAAQsB,MACpB5B,KAAK,cAAe4B,QAEtB8D,aAAejC,OACb,GAAIkB,gBAAgBlB,MAAO,OAC3BzD,KAAK,aAAcyD,OAErBkC,QAAUhG,OAAkDK,KAAK,QAASL,QACzE,CACDjB,QAAS,EAAGkH,cAA2C,CACrD/F,MAAM,YAAcd,UAChB,KACA/C,EAAEoB,kBAAmB,GAAI,CAAEsB,QAAS,IAAMmB,MAAM,gBACpD7D,EAAEsB,mBAAoB,CACpB4B,GAAInB,MAAMoB,aACNsC,mBAAqBjD,OAAS,aAC9B,CAAE+G,MAAO,CAAEM,QAAS,SACpB,IACH,CACDnH,QAAS,IAAM+C,kBACXqE,gCACE3F,SAASG,MACTvC,MAAMC,MACNqC,eAAeC,MACf,CACE9B,KACAG,IACAuC,YAAaS,eAAeT,YAC5B9B,OAAQrB,MAAMqB,OACdC,eAAgBtB,MAAMsB,gBAExBQ,MAAM,QACNgC,kBAEFnE,qBACE,eACAkI,WACAzF,SAASG,MACTvC,MAAMC,MACND,MAAMqB,OACNrB,MAAMsB,eACN0G,eAAevH,KAAMF,YACrB,CAACgC,MAAO0F,GAAIlE,MAAOmE,YAAcpG,MAAM,UAAU,CAC/CS,MACA0F,GACAlE,MACAmE,YAEFpG,MAAM,YAGdA,MAAM,YAAcd,UAChB,KACA/C,EAAEmB,kBAAmB,GAAI,CAAEuB,QAAS,IAAMmB,MAAM,kBAG1D,WAGK,MAAMqG,YAActI,0BAErB,SAAU4D,qCACdhD,MAEA,MAAO,EAAG0D,QAAS+D,UAAWrE,SAC5BuE,0BAA0B3H,KAAMyH,UAAUD,GAAI9D,QAASN,MAC3D,CAEA,SAASuE,0BACP3H,KACAwH,GACA9D,QACAN,OAEA,MAAME,MAAQF,MAAMrB,OAAO6F,QAAQJ,IACnC,GAAIlE,QAAU,KAAM,OAAO,KAC3B,MAAMc,OAASV,QAAQW,wBACvB,MAAMvC,MAAQ9B,OAAS,WAAaoE,OAAOG,OAASH,OAAOI,MAC3D,IAAKpE,OAAOqE,SAAS3C,QAAUA,OAAS,EAAG,OAAO,KAClD,MAAM+F,QAAUzE,MAAMe,QAAQ2D,SAASxE,OACvC,GAAIuE,SAAS9E,OAAS,SAAWkB,KAAK8D,IAAIF,QAAQ/F,MAAQA,OAAS,KAAM,OAAO,KAChF,OAAO/B,OAAO2B,OAAO,CACnB4B,MACAgB,OAAQvE,OAAO2B,OAAO,CAAEqB,KAAM,QAAkBjB,SAEpD,QAEM,SAAUa,uBACdhB,SACAnC,MACAD,MAOAqC,mBAEA,OAAOtD,mBACLS,mCAAmC4C,SAAUpC,MAAMiB,UACnDwH,6BACErG,SACAnC,MACAD,MAAMO,WACNP,MAAMiB,SACNoB,mBAEF,CACE5B,KAAMT,MAAMS,KACZG,IAAKZ,MAAMY,IACXuC,YAAanD,MAAMmD,aAGzB,QAEM,SAAUD,4BACdlD,OAOA,OAAOjB,mBACLR,eAAe,GAAI,CAAE0C,SAAUjB,MAAMiB,SAAUyH,eAAgB,QAC/D5J,yBAAyB,EAAGN,yBAAyB,GAAI,CACvDyC,SAAUjB,MAAMiB,WAElB,CACER,KAAMT,MAAMS,KACZG,IAAKZ,MAAMY,IACXuC,YAAanD,MAAMmD,aAGzB,QAEM,SAAU0C,gCACd/E,SACAL,MAEA,UAAWK,WAAa,SAAU,OAAOA,SACzC,OAAOL,OAAS,WACZK,SAAS6H,QAAU,EACnB7H,SAAS8H,OAAS,CACxB,QAEM,SAAUb,gCACd3F,SACAnC,MACAwE,MACAzE,MAOA6I,OACAC,SAEA,OAAO3I,MAAM4I,KAAK,CAAEvD,OAAQd,KAAKC,IAAIF,MAAOrC,SAASI,OAAOC,OAAS,CAACuG,QAASjF,SAC7E,MAAMxB,MAAQtC,MAAM8D,OACpB,MAAMkE,GAAK7F,SAASI,OAAOyG,GAAGlF,OAC9B,MAAMmF,WAAalJ,MAAMsB,iBAAiBiB,MAAOwB,QAAU,GAC3D,MAAMmE,UAAY1H,OAAO2B,OAAO,CAC9B8F,GACAlE,MACAoF,KAAM3I,OAAO2B,OAAOnC,MAAMS,OAAS,WAC/B,CAAEsG,EAAG,EAAGC,EAAG,EAAG/B,MAAOjF,MAAMmD,YAAa6B,OAAQ,GAChD,CAAE+B,EAAG,EAAGC,EAAG,EAAG/B,MAAO,EAAGD,OAAQhF,MAAMmD,cAC1CiG,QAAS,OAEX,MAAMC,SAAWR,SAAS,CAAEtG,MAAO0F,GAAIlE,MAAOmE,YAC9C,MAAMoB,SAAWD,WAAarI,WAAaqI,WAAa,KACpD,GACAlJ,MAAMoJ,QAAQF,UACZA,SACA,CAACA,UACP,OAAOpL,EAAE+B,MAAMqB,OAAQ,IAClB6H,WACHM,IAAKvB,GACLZ,IAAKyB,QAAQ/E,OACbyD,MAAO,CACL0B,WAAW,SACXlJ,MAAMmD,YAAc,EAChBnD,MAAMS,OAAS,WACb,CAAEwE,MAAO,GAAGjF,MAAMmD,iBAClB,CAAE6B,OAAQ,GAAGhF,MAAMmD,iBACrBnC,UACJhB,MAAMY,IAAM,GAAKmD,MAAQ,EACrB/D,MAAMS,OAAS,WACb,CAAEgJ,UAAW,GAAGzJ,MAAMY,SACtB,CAAE8I,WAAY,GAAG1J,MAAMY,SACzBI,WAEN,aAAc,eACd,YAAa,OACb,aAAc+C,MACd,eAAgB,GAChB,iBAAkB,IACjBuF,WAEP,CAEA,SAASb,6BACPrG,SACAnC,MACAM,WACAU,SACAoB,mBAEA,GAAID,SAASI,OAAOC,OAAS,EAAG,CAC9B,OAAO3D,yBAAyB,EAAGN,yBAAyB,GAAI,CAAEyC,UACpE,CACA,MAAM0I,OAASpJ,WAAWiD,OAAS,SAC9BjD,WAAWiD,OAAS,YACnBjD,WAAWiD,OAAS,oBAAsBjD,WAAWqJ,WAAa,SACpEnL,oBAAoB8B,WAAYN,MAAM,GAAI,EAAGoC,mBAC7C,KACJ,OAAOsH,SAAW,KACd9K,kBACEsB,MAAM4I,KACJ,CAAEvD,OAAQpD,SAASI,OAAOC,MAC1B,CAACuG,QAASjF,QAAUtF,oBAClB8B,WACAN,MAAM8D,OACNA,MACA1B,oBAGJ,CAAEpB,WAEJnC,yBAAyBsD,SAASI,OAAOC,KAAMkH,OAAQ,CAAE1I,UAC/D,CAEA,SAAS+G,eACPvH,KACAF,YAEA,GAAIA,WAAWiD,OAAS,QAAS,MAAO,OACxC,OAAO/C,OAAS,WAAa,QAAU,QACzC,CAEA,SAASuC,uBACPvC,KACAgF,UAEA,GAAIA,WAAazE,UAAW,OAAO,EACnC,OAAOP,OAAS,WAAagF,SAASR,MAAQQ,SAAST,MACzD,CAEA,SAASiC,sBACP4C,KACAjB,OAEA,GAAIiB,KAAKrG,OAASoF,MAAMpF,KAAM,OAAO,MACrC,GAAIqG,KAAKrG,OAAS,YAAcoF,MAAMpF,OAAS,WAAY,OAAO,KAClE,GAAIqG,KAAKrG,OAAS,SAAWoF,MAAMpF,OAAS,QAAS,CACnD,OAAOqG,KAAK9E,SAAW6D,MAAM7D,MAC/B,CACA,OAAO8E,KAAKrG,OAAS,aAChBoF,MAAMpF,OAAS,aACfhD,OAAOqG,GAAGgD,KAAKD,SAAUhB,MAAMgB,SACtC,CAEA,SAAS1C,gBACP2C,KACAjB,OAEA,GAAIiB,OAAS7I,WAAa4H,QAAU5H,UAAW,OAAO6I,OAASjB,MAC/D,OAAOiB,KAAK9C,IAAM6B,MAAM7B,GACnB8C,KAAK7C,IAAM4B,MAAM5B,GACjB6C,KAAK5E,QAAU2D,MAAM3D,OACrB4E,KAAK7E,SAAW4D,MAAM5D,MAC7B","ignoreList":[]}
@@ -1 +1 @@
1
- export { VirtualizerFooter, VirtualizerHeader, VirtualizerItem, VirtualizerRoot, VirtualizerSurface, useVirtualizer, type UseVirtualizerOptions, type UseVirtualizerReturn, type VirtualizerFrameProps, type VirtualizerHostErrorCode, type VirtualizerItemProps, type VirtualizerItemSize, type VirtualizerOperationResult, type VirtualizerRootExpose, type VirtualizerRootProps, type VirtualizerRootSlotProps, type VirtualizerSurfaceProps } from './internal/virtual-core.js';
1
+ export { VirtualizerFooter, VirtualizerHeader, VirtualizerItem, VirtualizerRoot, VirtualizerSurface, useVirtualizer, type UseVirtualizerOptions, type UseVirtualizerReturn, type VirtualizerFrameProps, type VirtualizerHostErrorCode, type VirtualizerItemProps, type VirtualizerItemSize, type VirtualizerOperationResult, type VirtualizerRootExpose, type VirtualizerRootProps, type VirtualizerRootSlotProps, type VirtualizerScrollportTarget, type VirtualizerSurfaceProps } from './internal/virtual-core.js';
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/virtual-core.ts"],"mappings":"AAEA,OAAS,kBAAmB,kBAAmB,gBAAiB,gBAAiB,mBAAoB,mBAAkV","names":[],"file":"virtual-core.js"}
1
+ {"version":3,"sources":["../src/virtual-core.ts"],"mappings":"AAEA,OAAS,kBAAmB,kBAAmB,gBAAiB,gBAAiB,mBAAoB,mBAAoX","names":[],"file":"virtual-core.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sectile/vue",
3
- "version": "0.16.5",
3
+ "version": "0.17.0",
4
4
  "description": "Headless Vue components for Sectile DOM interaction semantics.",
5
5
  "license": "MIT",
6
6
  "type": "module",
@@ -414,16 +414,16 @@
414
414
  "./package.json": "./package.json"
415
415
  },
416
416
  "dependencies": {
417
- "@sectile/core": "^0.14.4",
418
- "@sectile/dom": "^0.16.5"
417
+ "@sectile/core": "^0.14.5",
418
+ "@sectile/dom": "^0.17.0"
419
419
  },
420
420
  "peerDependencies": {
421
- "@sectile/chart": "^0.15.2",
422
- "@sectile/form": "^0.14.5",
423
- "@sectile/tabular": "^0.15.1",
424
- "@sectile/virtual": "^0.15.1",
421
+ "@sectile/chart": "^0.15.3",
422
+ "@sectile/form": "^0.14.7",
423
+ "@sectile/tabular": "^0.15.2",
424
+ "@sectile/virtual": "^0.15.2",
425
425
  "vue": "^3.5.0",
426
- "@sectile/temporal": "^0.14.6"
426
+ "@sectile/temporal": "^0.14.7"
427
427
  },
428
428
  "peerDependenciesMeta": {
429
429
  "@sectile/chart": {
@@ -444,10 +444,10 @@
444
444
  },
445
445
  "devDependencies": {
446
446
  "@sectile/tooling": "0.0.0",
447
- "@sectile/chart": "0.15.2",
448
- "@sectile/form": "0.14.5",
449
- "@sectile/tabular": "0.15.1",
450
- "@sectile/virtual": "0.15.1",
447
+ "@sectile/chart": "0.15.3",
448
+ "@sectile/form": "0.14.7",
449
+ "@sectile/tabular": "0.15.2",
450
+ "@sectile/virtual": "0.15.2",
451
451
  "@vue/server-renderer": "^3.5.0",
452
452
  "happy-dom": "^20.11.6",
453
453
  "typescript": "7.0.2",
@@ -455,7 +455,7 @@
455
455
  "vite": "5.4.21",
456
456
  "vue": "^3.5.0",
457
457
  "vue-tsc": "^3.0.6",
458
- "@sectile/temporal": "0.14.6"
458
+ "@sectile/temporal": "0.14.7"
459
459
  },
460
460
  "scripts": {
461
461
  "build": "sectile-build production",