@sectile/vue 0.15.0 → 0.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/cascade-select.js +1 -1
- package/dist/cascade-select.js.map +1 -1
- package/dist/combobox.js +1 -1
- package/dist/combobox.js.map +1 -1
- package/dist/date-picker.js +1 -1
- package/dist/date-picker.js.map +1 -1
- package/dist/date-range-picker.js +1 -1
- package/dist/date-range-picker.js.map +1 -1
- package/dist/date-time-picker.js +1 -1
- package/dist/date-time-picker.js.map +1 -1
- package/dist/date-time-range-picker.js +1 -1
- package/dist/date-time-range-picker.js.map +1 -1
- package/dist/internal/date-picker.js +1 -1
- package/dist/internal/date-picker.js.map +1 -1
- package/dist/internal/virtual-collection.d.ts +45 -24
- package/dist/internal/virtual-collection.js +1 -1
- package/dist/internal/virtual-collection.js.map +1 -1
- package/dist/internal/virtual-core.d.ts +109 -34
- package/dist/internal/virtual-core.js +1 -1
- package/dist/internal/virtual-core.js.map +1 -1
- package/dist/internal/virtual-list.d.ts +58 -85
- package/dist/internal/virtual-list.js +1 -1
- package/dist/internal/virtual-list.js.map +1 -1
- package/dist/menu.js +1 -1
- package/dist/menu.js.map +1 -1
- package/dist/month-picker.js +1 -1
- package/dist/month-picker.js.map +1 -1
- package/dist/month-range-picker.js +1 -1
- package/dist/month-range-picker.js.map +1 -1
- package/dist/range-calendar.js +1 -1
- package/dist/range-calendar.js.map +1 -1
- package/dist/virtual-core.d.ts +1 -1
- package/dist/virtual-core.js +1 -1
- package/dist/virtual-core.js.map +1 -1
- package/dist/virtual-grid.d.ts +50 -75
- package/dist/virtual-grid.js +1 -1
- package/dist/virtual-grid.js.map +1 -1
- package/dist/virtual-list.d.ts +2 -1
- package/dist/virtual-list.js.map +1 -1
- package/dist/virtual-masonry.d.ts +51 -76
- package/dist/virtual-masonry.js +1 -1
- package/dist/virtual-masonry.js.map +1 -1
- package/dist/virtual-spatial.d.ts +44 -32
- package/dist/virtual-spatial.js +1 -1
- package/dist/virtual-spatial.js.map +1 -1
- package/dist/year-picker.js +1 -1
- package/dist/year-picker.js.map +1 -1
- package/dist/year-range-picker.js +1 -1
- package/dist/year-range-picker.js.map +1 -1
- package/package.json +6 -6
- package/dist/internal/virtual-collection-model.d.ts +0 -46
- package/dist/internal/virtual-collection-model.js +0 -2
- package/dist/internal/virtual-collection-model.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{computed,defineComponent,h,inject,mergeProps,onBeforeUnmount,onScopeDispose,provide,shallowRef,toValue,watch}from'vue';import{createAxisMeasurementResolver,createVirtualizer,virtualContentStyle,virtualItemStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';const virtualizerContextKey=Symbol('SectileVirtualizerRoot');export function useVirtualizer(options){const root=options.root??shallowRef(null);const plan=shallowRef(null);const connection=shallowRef();const items=new Map;const registrations=new Map;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 disconnect=()=>{registrations.clear();connection.value?.disconnect();connection.value=undefined};const connect=element=>{disconnect();if(element===null||element===undefined){updateInitialPlan();return}const overscan=toValue(options.overscan);const next=createVirtualizer({root:element,state:options.state.value,strategy:options.strategy,...overscan===undefined?{}:{overscan},...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[item,id]of items)registrations.set(item,next.registerItem(item,id))};watch(root,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'});onScopeDispose(disconnect);const requireConnection=()=>{if(connection.value===undefined)throw new TypeError('Virtualizer must be mounted before this operation.');return connection.value};return Object.freeze({root,plan,connection,registerItem:(element,id)=>{registrations.get(element)?.();items.set(element,id);if(connection.value!==undefined){registrations.set(element,connection.value.registerItem(element,id))}return()=>{if(items.get(element)!==id)return;registrations.get(element)?.();registrations.delete(element);items.delete(element)}},measure:measurements=>requireConnection().measure(measurements),mutate:mutation=>requireConnection().mutate(mutation),scrollTo:(id,alignment)=>requireConnection().scrollTo(id,alignment),refresh:()=>{connection.value?.refresh()},flush:()=>requireConnection().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},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,...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)}});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),registerItem:virtualizer.registerItem});expose(Object.freeze({root:virtualizer.root,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.root.value=element instanceof HTMLElement?element:null},'data-scope':'virtualizer','data-part':'root'}),{default:()=>slots['default']?.(slotProps.value)})}});export const VirtualizerContent=/* @__PURE__ */defineComponent({name:'SectileVirtualizerContent',inheritAttrs:false,props:{as:{type:[String,Object,Function],default:'div'},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useVirtualizerRoot('VirtualizerContent');const style=computed(()=>root.plan.value===null?Object.freeze({position:'relative'}):virtualContentStyle(root.plan.value));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,style:style.value,'data-scope':'virtualizer','data-part':'content'}),{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 root=useVirtualizerRoot('VirtualizerItem');let unregister;onBeforeUnmount(()=>{unregister?.()});const sizing=computed(()=>Object.freeze({width:props.size==='width'||props.size==='both',height:props.size==='height'||props.size==='both'}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:element=>{unregister?.();unregister=element instanceof HTMLElement?root.registerItem(element,props.placement.id):undefined},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)})}});function useVirtualizerRoot(part){const root=inject(virtualizerContextKey);if(root===undefined)throw new TypeError(`${part} must be used inside VirtualizerRoot.`);return root}export{createAxisMeasurementResolver,virtualContentStyle,virtualItemStyle};
|
|
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};
|
|
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","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualContentStyle","virtualItemStyle","Primitive","virtualizerContextKey","Symbol","useVirtualizer","options","root","plan","connection","items","Map","registrations","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnect","clear","connect","element","next","measure","readViewport","writeScroll","environment","onStateChange","item","id","set","registerItem","flush","immediate","setState","setOverscan","deep","requireConnection","TypeError","Object","freeze","get","delete","measurements","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","constructionWarningShown","previous","every","index","is","console","warn","slotProps","placements","elementRef","HTMLElement","VirtualizerContent","useVirtualizerRoot","style","position","VirtualizerItem","placement","size","unregister","sizing","width","height","visible","part"],"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","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,82 +1,47 @@
|
|
|
1
|
-
import { type AllowedComponentProps, type ComponentCustomProps, type PropType, type
|
|
2
|
-
import {
|
|
3
|
-
import { type
|
|
4
|
-
import { type
|
|
5
|
-
import { type
|
|
6
|
-
|
|
7
|
-
export
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
readonly
|
|
11
|
-
readonly estimateSize?: VirtualListEstimate<Value>;
|
|
1
|
+
import { type AllowedComponentProps, type ComponentCustomProps, type PropType, type SlotsType, type VNodeArrayChildren, type VNodeChild, type VNodeProps } from 'vue';
|
|
2
|
+
import type { StableID } from '@sectile/core';
|
|
3
|
+
import { type VirtualSizePolicy } from '@sectile/virtual/collection';
|
|
4
|
+
import { type LinearAxis, type LinearLayoutState, type LinearMeasurement } from '@sectile/virtual/linear-layout';
|
|
5
|
+
import { type VirtualInsets, type VirtualLayoutPlan, type VirtualMeasurementResolver, type VirtualRect, type VirtualizerErrorHandler } from '@sectile/dom/virtual';
|
|
6
|
+
import { type PreparedVirtualCollection, type VirtualCollectionBaseProps, type VirtualCollectionExpose, type VirtualCollectionIDResolver, type VirtualCollectionItemAttributes, type VirtualCollectionItemSlotProps } from './virtual-collection.js';
|
|
7
|
+
export type VirtualListItemAttributes<Value> = VirtualCollectionItemAttributes<Value>;
|
|
8
|
+
export type VirtualListIDResolver<Value, ID extends StableID = StableID> = VirtualCollectionIDResolver<Value, ID>;
|
|
9
|
+
export interface VirtualListProps<Value = unknown, ID extends StableID = StableID> extends VirtualCollectionBaseProps<Value, ID> {
|
|
10
|
+
readonly sizePolicy: VirtualSizePolicy<Value>;
|
|
12
11
|
readonly axis?: LinearAxis;
|
|
13
12
|
readonly gap?: number;
|
|
14
|
-
readonly overscan?: number | Partial<VirtualInsets>;
|
|
15
|
-
readonly maxItems?: number;
|
|
16
|
-
readonly initialViewport?: VirtualRect;
|
|
17
|
-
readonly as?: string;
|
|
18
|
-
readonly contentAs?: string;
|
|
19
|
-
readonly itemAs?: string;
|
|
20
|
-
readonly itemAttributes?: VirtualListItemAttributes<Value>;
|
|
21
13
|
}
|
|
22
|
-
export type VirtualListPublicProps<Value = unknown> = VirtualListProps<Value> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
|
|
23
|
-
readonly onStateChange?: (state: LinearLayoutState<
|
|
24
|
-
readonly onPlanChange?: (plan: VirtualLayoutPlan<
|
|
14
|
+
export type VirtualListPublicProps<Value = unknown, ID extends StableID = StableID> = VirtualListProps<Value, ID> & VNodeProps & AllowedComponentProps & ComponentCustomProps & {
|
|
15
|
+
readonly onStateChange?: (state: LinearLayoutState<ID>) => unknown;
|
|
16
|
+
readonly onPlanChange?: (plan: VirtualLayoutPlan<ID>) => unknown;
|
|
25
17
|
readonly onError?: VirtualizerErrorHandler;
|
|
26
18
|
};
|
|
27
|
-
export interface VirtualListSlotProps<Value = unknown> {
|
|
28
|
-
readonly value: Value;
|
|
29
|
-
readonly key: string;
|
|
30
|
-
readonly index: number;
|
|
31
|
-
readonly placement: VirtualPlacement<string>;
|
|
32
|
-
}
|
|
33
|
-
export interface VirtualListExpose {
|
|
34
|
-
readonly root: ShallowRef<HTMLElement | null | undefined>;
|
|
35
|
-
readonly state: LinearLayoutState<string>;
|
|
36
|
-
readonly plan: VirtualLayoutPlan<string> | null;
|
|
37
|
-
scrollTo(id: string, alignment?: VirtualScrollAlignment): ReturnType<VirtualizerConnection<LinearLayoutState<string>, string, {
|
|
38
|
-
readonly index: number;
|
|
39
|
-
readonly extent: Extent;
|
|
40
|
-
}, LinearPatch<string>>['scrollTo']>;
|
|
41
|
-
refresh(): void;
|
|
42
|
-
flush(): ReturnType<VirtualizerConnection<LinearLayoutState<string>, string, {
|
|
43
|
-
readonly index: number;
|
|
44
|
-
readonly extent: Extent;
|
|
45
|
-
}, LinearPatch<string>>['flush']>;
|
|
19
|
+
export interface VirtualListSlotProps<Value = unknown, ID extends StableID = StableID> extends VirtualCollectionItemSlotProps<Value, ID> {
|
|
46
20
|
}
|
|
21
|
+
export type VirtualListExpose<ID extends StableID = StableID> = VirtualCollectionExpose<LinearLayoutState<ID>, ID>;
|
|
47
22
|
export interface VirtualListComponent {
|
|
48
|
-
new <Value = unknown>(props: VirtualListPublicProps<Value>): {
|
|
49
|
-
$props: VirtualListPublicProps<Value>;
|
|
23
|
+
new <Value = unknown, ID extends StableID = StableID>(props: VirtualListPublicProps<Value, ID>): {
|
|
24
|
+
$props: VirtualListPublicProps<Value, ID>;
|
|
50
25
|
$slots: {
|
|
51
|
-
|
|
26
|
+
header?: () => VNodeChild;
|
|
27
|
+
item?: (props: VirtualListSlotProps<Value, ID>) => VNodeChild;
|
|
52
28
|
empty?: () => VNodeChild;
|
|
29
|
+
footer?: () => VNodeChild;
|
|
53
30
|
};
|
|
54
31
|
};
|
|
55
32
|
}
|
|
56
|
-
export interface VirtualCollectionExpose<State> {
|
|
57
|
-
readonly root: ShallowRef<HTMLElement | null | undefined>;
|
|
58
|
-
readonly state: State;
|
|
59
|
-
readonly plan: VirtualLayoutPlan<string> | null;
|
|
60
|
-
scrollTo(id: string, alignment?: VirtualScrollAlignment): ReturnType<VirtualizerConnection<object, string, unknown, unknown>['scrollTo']> | undefined;
|
|
61
|
-
refresh(): void;
|
|
62
|
-
flush(): ReturnType<VirtualizerConnection<object, string, unknown, unknown>['flush']> | undefined;
|
|
63
|
-
}
|
|
64
33
|
declare const VirtualListRuntime: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
65
34
|
items: {
|
|
66
35
|
type: PropType<readonly unknown[]>;
|
|
67
36
|
required: true;
|
|
68
37
|
};
|
|
69
|
-
|
|
70
|
-
type: PropType<
|
|
38
|
+
getID: {
|
|
39
|
+
type: PropType<VirtualListIDResolver<unknown>>;
|
|
71
40
|
required: true;
|
|
72
41
|
};
|
|
73
|
-
|
|
74
|
-
type: PropType<
|
|
75
|
-
|
|
76
|
-
};
|
|
77
|
-
itemSize: {
|
|
78
|
-
type: NumberConstructor;
|
|
79
|
-
default: undefined;
|
|
42
|
+
sizePolicy: {
|
|
43
|
+
type: PropType<VirtualSizePolicy<unknown>>;
|
|
44
|
+
required: true;
|
|
80
45
|
};
|
|
81
46
|
axis: {
|
|
82
47
|
type: PropType<LinearAxis>;
|
|
@@ -90,6 +55,10 @@ declare const VirtualListRuntime: import("vue").DefineComponent<import("vue").Ex
|
|
|
90
55
|
type: PropType<number | Partial<VirtualInsets>>;
|
|
91
56
|
default: number;
|
|
92
57
|
};
|
|
58
|
+
viewportInsets: {
|
|
59
|
+
type: PropType<number | Partial<VirtualInsets>>;
|
|
60
|
+
default: undefined;
|
|
61
|
+
};
|
|
93
62
|
maxItems: {
|
|
94
63
|
type: NumberConstructor;
|
|
95
64
|
default: number;
|
|
@@ -115,25 +84,21 @@ declare const VirtualListRuntime: import("vue").DefineComponent<import("vue").Ex
|
|
|
115
84
|
default: undefined;
|
|
116
85
|
};
|
|
117
86
|
}>, () => VNodeChild, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
118
|
-
stateChange: (_state: LinearLayoutState<
|
|
119
|
-
planChange: (_plan: VirtualLayoutPlan<
|
|
87
|
+
stateChange: (_state: LinearLayoutState<StableID>) => boolean;
|
|
88
|
+
planChange: (_plan: VirtualLayoutPlan<StableID>) => boolean;
|
|
120
89
|
error: (_error: Parameters<VirtualizerErrorHandler>[0]) => boolean;
|
|
121
90
|
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
|
|
122
91
|
items: {
|
|
123
92
|
type: PropType<readonly unknown[]>;
|
|
124
93
|
required: true;
|
|
125
94
|
};
|
|
126
|
-
|
|
127
|
-
type: PropType<
|
|
95
|
+
getID: {
|
|
96
|
+
type: PropType<VirtualListIDResolver<unknown>>;
|
|
128
97
|
required: true;
|
|
129
98
|
};
|
|
130
|
-
|
|
131
|
-
type: PropType<
|
|
132
|
-
|
|
133
|
-
};
|
|
134
|
-
itemSize: {
|
|
135
|
-
type: NumberConstructor;
|
|
136
|
-
default: undefined;
|
|
99
|
+
sizePolicy: {
|
|
100
|
+
type: PropType<VirtualSizePolicy<unknown>>;
|
|
101
|
+
required: true;
|
|
137
102
|
};
|
|
138
103
|
axis: {
|
|
139
104
|
type: PropType<LinearAxis>;
|
|
@@ -147,6 +112,10 @@ declare const VirtualListRuntime: import("vue").DefineComponent<import("vue").Ex
|
|
|
147
112
|
type: PropType<number | Partial<VirtualInsets>>;
|
|
148
113
|
default: number;
|
|
149
114
|
};
|
|
115
|
+
viewportInsets: {
|
|
116
|
+
type: PropType<number | Partial<VirtualInsets>>;
|
|
117
|
+
default: undefined;
|
|
118
|
+
};
|
|
150
119
|
maxItems: {
|
|
151
120
|
type: NumberConstructor;
|
|
152
121
|
default: number;
|
|
@@ -172,15 +141,14 @@ declare const VirtualListRuntime: import("vue").DefineComponent<import("vue").Ex
|
|
|
172
141
|
default: undefined;
|
|
173
142
|
};
|
|
174
143
|
}>> & Readonly<{
|
|
175
|
-
onError?: (_error: import("@sectile/core
|
|
176
|
-
onPlanChange?: (_plan: VirtualLayoutPlan<
|
|
177
|
-
onStateChange?: (_state: LinearLayoutState<
|
|
144
|
+
onError?: (_error: import("@sectile/core").SectileError<import("@sectile/virtual").VirtualErrorCode>) => any;
|
|
145
|
+
onPlanChange?: (_plan: VirtualLayoutPlan<StableID>) => any;
|
|
146
|
+
onStateChange?: (_state: LinearLayoutState<StableID>) => any;
|
|
178
147
|
}>, {
|
|
179
|
-
estimateSize: VirtualListEstimate<unknown>;
|
|
180
|
-
itemSize: number;
|
|
181
148
|
axis: LinearAxis;
|
|
182
149
|
gap: number;
|
|
183
150
|
overscan: number | Partial<import("@sectile/core/geometry").Insets>;
|
|
151
|
+
viewportInsets: number | Partial<import("@sectile/core/geometry").Insets>;
|
|
184
152
|
maxItems: number;
|
|
185
153
|
initialViewport: import("@sectile/core/geometry").Rect;
|
|
186
154
|
as: string;
|
|
@@ -188,27 +156,32 @@ declare const VirtualListRuntime: import("vue").DefineComponent<import("vue").Ex
|
|
|
188
156
|
itemAs: string;
|
|
189
157
|
itemAttributes: VirtualListItemAttributes<unknown>;
|
|
190
158
|
}, SlotsType<{
|
|
191
|
-
|
|
159
|
+
header: () => VNodeChild;
|
|
160
|
+
item: (props: VirtualListSlotProps<unknown>) => VNodeChild;
|
|
192
161
|
empty: () => VNodeChild;
|
|
162
|
+
footer: () => VNodeChild;
|
|
193
163
|
}>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
194
164
|
export declare const VirtualList: typeof VirtualListRuntime & VirtualListComponent;
|
|
195
|
-
export declare function createVirtualListMeasurementResolver(axis: LinearAxis): VirtualMeasurementResolver<LinearLayoutState<
|
|
196
|
-
export declare function createVirtualListState(prepared:
|
|
197
|
-
|
|
198
|
-
estimateSize: VirtualListEstimate<unknown> | undefined;
|
|
165
|
+
export declare function createVirtualListMeasurementResolver(axis: LinearAxis): VirtualMeasurementResolver<LinearLayoutState<StableID>, StableID, LinearMeasurement>;
|
|
166
|
+
export declare function createVirtualListState(prepared: PreparedVirtualCollection<unknown, StableID>, items: readonly unknown[], props: Readonly<{
|
|
167
|
+
sizePolicy: VirtualSizePolicy<unknown>;
|
|
199
168
|
axis: LinearAxis;
|
|
200
169
|
gap: number;
|
|
201
170
|
maxItems: number;
|
|
202
|
-
|
|
171
|
+
crossExtent: number;
|
|
172
|
+
}>, automaticEstimate?: number): LinearLayoutState<StableID>;
|
|
203
173
|
export declare function createEmptyVirtualListState(props: Readonly<{
|
|
204
174
|
axis: LinearAxis;
|
|
205
175
|
gap: number;
|
|
206
176
|
maxItems: number;
|
|
207
|
-
|
|
177
|
+
crossExtent: number;
|
|
178
|
+
}>): LinearLayoutState<StableID>;
|
|
208
179
|
export declare function bootstrapTrailingOverscanExtent(overscan: number | Partial<VirtualInsets>, axis: LinearAxis): number;
|
|
209
|
-
export declare function renderVirtualListBootstrapItems(prepared:
|
|
180
|
+
export declare function renderVirtualListBootstrapItems(prepared: PreparedVirtualCollection<unknown, StableID>, items: readonly unknown[], count: number, props: Readonly<{
|
|
210
181
|
axis: LinearAxis;
|
|
211
182
|
gap: number;
|
|
183
|
+
crossExtent: number;
|
|
212
184
|
itemAs: string;
|
|
213
185
|
itemAttributes: VirtualListItemAttributes<unknown> | undefined;
|
|
214
|
-
}>, render: ((props: VirtualListSlotProps<unknown>) => VNodeChild) | undefined, itemRef: (index: number
|
|
186
|
+
}>, render: ((props: VirtualListSlotProps<unknown, StableID>) => VNodeChild) | undefined, itemRef: (index: number) => (value: unknown) => void): VNodeArrayChildren;
|
|
187
|
+
export {};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{linearLayoutStrategyFor,tryApplyLinearPatch,createLinearLayout}from'@sectile/virtual/linear-layout';import{createAxisMeasurementResolver,virtualItemStyle}from'@sectile/dom/virtual';import{Primitive}from'../primitive.js';import{VirtualizerContent,VirtualizerRoot,useVirtualizer}from'./virtual-core.js';import{assertVirtualListSizeMode,createPreparedVirtualListSequence,estimatedExtent,exactExtent,prepareVirtualList,reconcileVirtualList,requireAutomaticEstimate,requiresDOMBootstrap,updatePreparedVirtualList}from'./virtual-collection-model.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getKey:{type:Function,required:true},estimateSize:{type:[Number,Function],default:undefined},itemSize:{type:Number,default:undefined},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},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}){assertVirtualListSizeMode(props.itemSize,props.estimateSize);const prepared=shallowRef(prepareVirtualList(props.items,props.getKey,props.maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const state=shallowRef(requiresDOMBootstrap(props.itemSize,props.estimateSize)?createEmptyVirtualListState(props):createVirtualListState(prepared.value,props.items,props));const measure=props.itemSize===undefined?createVirtualListMeasurementResolver(props.axis):undefined;const virtualizer=useVirtualizer({state,strategy:linearLayoutStrategyFor(),overscan:()=>props.overscan,...props.initialViewport===undefined?{}:{initialViewport:props.initialViewport},...measure===undefined?{}:{measure},onStateChange:value=>{emit('stateChange',value)},onPlanChange:value=>{emit('planChange',value)},onError:error=>{emit('error',error)}});const registrations=new Map;const elements=new Map;const itemRefs=new Map;const pendingMeasurements=new Set;const forcedMeasurements=new Set;let measurementScheduled=false;const setRootElement=value=>{virtualizer.root.value=value instanceof HTMLElement?value:null};const measurePendingItems=()=>{measurementScheduled=false;if(disposed||pendingMeasurements.size===0)return;const connection=virtualizer.connection.value;if(connection===undefined)return;const queued=Array.from(pendingMeasurements);pendingMeasurements.clear();const measurements=[];for(const id of queued){const element=elements.get(id);const index=state.value.domain.indexOf(id);if(element===undefined||index===null)continue;const current=state.value.extents.extentAt(index);if(current?.kind==='exact'&&!forcedMeasurements.has(id))continue;const measurement=measureVirtualListElement(props.axis,id,element,state.value);if(measurement!==null)measurements.push(measurement)}for(const id of queued)forcedMeasurements.delete(id);if(measurements.length>0)connection.measure(measurements)};const scheduleItemMeasurement=(id,force=false)=>{if(props.itemSize!==undefined)return;pendingMeasurements.add(id);if(force)forcedMeasurements.add(id);if(measurementScheduled)return;measurementScheduled=true;void nextTick(measurePendingItems)};const scheduleChangedRenderedItemMeasurements=(previousPrepared,previousState,nextPrepared,nextState)=>{if(props.itemSize!==undefined)return;for(const id of elements.keys()){const previousIndex=previousState.domain.indexOf(id);const nextIndex=nextState.domain.indexOf(id);if(previousIndex!==null&&nextIndex!==null&&!Object.is(previousPrepared.items[previousIndex],nextPrepared.items[nextIndex]))scheduleItemMeasurement(id,true)}};const itemRef=id=>{const existing=itemRefs.get(id);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element!==null&&elements.get(id)===element)return;registrations.get(id)?.();registrations.delete(id);elements.delete(id);if(element!==null){elements.set(id,element);registrations.set(id,virtualizer.registerItem(element,id));scheduleItemMeasurement(id)}};itemRefs.set(id,callback);return callback};const bootstrapItemRef=(index,value)=>{const element=value instanceof HTMLElement?value:null;if(element===null)bootstrapElements.delete(index);else{bootstrapElements.set(index,element);scheduleBootstrap()}};const completeBootstrap=()=>{if(automaticEstimate.value!==undefined||!requiresDOMBootstrap(props.itemSize,props.estimateSize)||prepared.value.domain.size===0)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=props.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)+props.gap*Math.max(0,extents.length-1);const root=virtualizer.root.value;const measuredViewportExtent=props.axis==='vertical'?root?.clientHeight??0:root?.clientWidth??0;const viewportExtent=measuredViewportExtent>0?measuredViewportExtent:props.axis==='vertical'?props.initialViewport?.height??0:props.initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,props.axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){const nextCount=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+props.gap)/(average+props.gap))));bootstrapCount.value=nextCount;return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();state.value=createVirtualListState(prepared.value,props.items,props,automaticEstimate.value)};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,items=>{const previousPrepared=prepared.value;const previousState=state.value;const next=updatePreparedVirtualList(previousPrepared,items,props.getKey);if(requiresDOMBootstrap(props.itemSize,props.estimateSize)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}const patch=reconcileVirtualList(state.value,next,items,props,automaticEstimate.value);if(patch===null){scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,previousState);prepared.value=next;return}const result=virtualizer.connection.value===undefined?tryApplyLinearPatch(state.value,patch):virtualizer.connection.value.mutate(patch);if(!result.ok){if(virtualizer.connection.value===undefined)emit('error',result.error);return}if(virtualizer.connection.value===undefined)state.value=result.value.state;scheduleChangedRenderedItemMeasurements(previousPrepared,previousState,next,result.value.state);for(const id of itemRefs.keys()){if(result.value.state.domain.indexOf(id)===null)itemRefs.delete(id)}prepared.value=next},{flush:'sync'});let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.itemSize,props.estimateSize,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],(value,previous)=>{if(constructionWarningShown||value.every((item,index)=>Object.is(item,previous[index])))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, itemSize, estimateSize, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;for(const unregister of registrations.values())unregister();registrations.clear();elements.clear();itemRefs.clear();bootstrapElements.clear();pendingMeasurements.clear();forcedMeasurements.clear()});expose(Object.freeze({root:virtualizer.root,get state(){return state.value},get plan(){return virtualizer.plan.value},scrollTo:virtualizer.scrollTo,refresh:virtualizer.refresh,flush:virtualizer.flush}));return()=>{const plan=virtualizer.plan.value;const rootStyle=attrs['style'];const rootAttributes={...attrs};delete rootAttributes['style'];const bootstrapping=automaticEstimate.value===undefined&&bootstrapCount.value>0;const contentStyle=props.axis==='vertical'?{position:'relative',width:'100%',...bootstrapping?{}:{height:`${plan?.contentSize.height??0}px`}}:{position:'relative',height:'100%',...bootstrapping?{display:'flex'}:{width:`${plan?.contentSize.width??0}px`}};const children=plan?.placements.map(placement=>{const index=placement.index;const value=props.items[index];if(index>=props.items.length||prepared.value.domain.at(index)!==placement.id)return null;const itemAttributes=props.itemAttributes?.(value,index)??{};const itemStyle=virtualItemStyle(placement,props.itemSize===undefined?undefined:props.axis==='vertical'?{height:true}:{width:true});const rendered=slots['default']?.({value,key:placement.id,index,placement});const itemChildren=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...itemAttributes,key:placement.id,...props.itemSize===undefined?{ref:itemRef(placement.id)}:{},style:[itemAttributes['style'],itemStyle,props.axis==='vertical'?{width:'100%'}:{height:'100%'}],'data-scope':'virtual-list','data-part':'item','data-index':placement.index,'data-visible':placement.visible?'':undefined},itemChildren)})??[];if(automaticEstimate.value===undefined&&bootstrapCount.value>0){children.push(...renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,props,slots['default'],bootstrapItemRef))}if(prepared.value.domain.size===0){const empty=slots['empty']?.();if(empty!==undefined&&empty!==null)children.push(empty)}return h(props.as,{...rootAttributes,ref:setRootElement,style:[{overflow:'auto'},rootStyle],'data-scope':'virtual-list','data-part':'root'},[h(props.contentAs,{style:contentStyle,'data-scope':'virtual-list','data-part':'content'},children)])}}});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){const estimate=props.estimateSize??automaticEstimate;const sharedExtent=props.itemSize!==undefined?exactExtent(props.itemSize):typeof estimate!=='function'?estimatedExtent(requireAutomaticEstimate(estimate),undefined,0):null;return createLinearLayout(createPreparedVirtualListSequence(prepared,props.maxItems),sharedExtent===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>estimatedExtent(estimate,items[index],index)),{maxItems:props.maxItems}):createUniformExtentIndex(prepared.domain.size,sharedExtent,{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,exactExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:1})}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({x:0,y:0,width:0,height:0}),visible:true});const rendered=render?.({value,key:id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:element=>itemRef(index,element),style:[attributes['style'],props.axis==='vertical'?{width:'100%'}:{height:'100%'},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)})}
|
|
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}
|
|
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","createExtentIndex","createUniformExtentIndex","linearLayoutStrategyFor","tryApplyLinearPatch","createLinearLayout","createAxisMeasurementResolver","virtualItemStyle","Primitive","VirtualizerContent","VirtualizerRoot","useVirtualizer","assertVirtualListSizeMode","createPreparedVirtualListSequence","estimatedExtent","exactExtent","prepareVirtualList","reconcileVirtualList","requireAutomaticEstimate","requiresDOMBootstrap","updatePreparedVirtualList","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getKey","Function","estimateSize","Number","default","undefined","itemSize","axis","String","gap","overscan","Object","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapScheduled","disposed","state","createEmptyVirtualListState","createVirtualListState","measure","createVirtualListMeasurementResolver","virtualizer","strategy","onStateChange","onPlanChange","onError","registrations","elements","itemRefs","pendingMeasurements","Set","forcedMeasurements","measurementScheduled","setRootElement","root","HTMLElement","measurePendingItems","connection","queued","from","clear","measurements","id","element","get","index","indexOf","current","extents","extentAt","kind","has","measurement","measureVirtualListElement","push","delete","length","scheduleItemMeasurement","force","add","scheduleChangedRenderedItemMeasurements","previousPrepared","previousState","nextPrepared","nextState","keys","previousIndex","nextIndex","is","itemRef","existing","callback","set","registerItem","bootstrapItemRef","scheduleBootstrap","completeBootstrap","count","Math","min","bounds","getBoundingClientRect","extent","height","width","isFinite","total","reduce","sum","max","measuredViewportExtent","clientHeight","clientWidth","viewportExtent","target","bootstrapTrailingOverscanExtent","average","nextCount","ceil","next","patch","result","mutate","ok","flush","constructionWarningShown","x","y","previous","every","item","console","warn","unregister","values","freeze","plan","scrollTo","refresh","rootStyle","rootAttributes","bootstrapping","contentStyle","position","contentSize","display","children","placements","map","placement","at","itemStyle","rendered","key","itemChildren","isArray","ref","style","visible","renderVirtualListBootstrapItems","empty","overflow","VirtualList","abs","estimate","sharedExtent","_unused","crossExtent","maxIDCodeUnits","bottom","right","render","attributes","rect","marginTop","marginLeft"],"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","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":[]}
|
package/dist/menu.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createMenu}from"@sectile/dom/menu";import{createMenuButton}from"@sectile/dom/menu-button";import{createMenubar}from"@sectile/dom/menubar";import{createNavigationMenu}from"@sectile/dom/navigation-menu";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";const key=Symbol("SectileMenuRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const commonProps={items:{type:Array,required:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},defaultHighlightedValue:{type:String,default:null},label:{type:String,default:void 0},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const menuButtonProps={...commonProps,open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},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"}};function createRoot(kind,rootProps,providerOnly=false){return defineComponent({name:kind==="menu-button"?"SectileMenuButtonRoot":kind==="menubar"?"SectileMenubarRoot":kind==="navigation-menu"?"SectileNavigationMenuRoot":"SectileMenuRoot",inheritAttrs:false,props:rootProps,emits:{"update:open":_value=>true,invoke:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const runtimeProps=props;const direction=useHostDirection();const baseID=useHostId();const root=shallowRef();const trigger=shallowRef();const connection=shallowRef();const openProp=runtimeProps.open;const open=shallowRef(kind==="menu-button"?openProp??runtimeProps.defaultOpen??false:true);const highlighted=shallowRef(runtimeProps.defaultHighlightedValue);const openPath=shallowRef([]);const controlled=useControlledStateInvariant("MenuButtonRoot","open",()=>kind==="menu-button"?runtimeProps.open:void 0);const position=computed(()=>kind==="menu-button"?runtimeProps.position??true:false);const strategy=computed(()=>runtimeProps.strategy??"absolute");const state=computed(()=>({open:kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:open.value,highlightedValue:highlighted.value,openPath:openPath.value,disabled:runtimeProps.disabled}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;open.value=snapshot.open;highlighted.value=snapshot.cursor.current;openPath.value=snapshot.openPath;refreshParts()};const refreshParts=()=>{if(root.value===void 0||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-menu-id]").forEach(element=>{const id=element.dataset["sectileMenuId"];if(id!==void 0)connection.value?.setItemAttributes(element,id)});root.value.querySelectorAll("[data-sectile-submenu-for]").forEach(element=>{const id=element.dataset["sectileSubmenuFor"];if(id!==void 0)connection.value?.setSubmenuAttributes(element,id)})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||kind==="menu-button"&&trigger.value===void 0)return;const reconciled=reconcileCollectionState(runtimeProps.items.map(item=>item.id),[],highlighted.value,runtimeProps.disabledItems,"single",{preserveNullCurrent:true});highlighted.value=reconciled.current;const options={root:root.value,items:runtimeProps.items,disabledItems:runtimeProps.disabledItems,disabled:runtimeProps.disabled,direction:direction.value,baseID,...kind==="menu-button"?{position:runtimeProps.position??true,side:runtimeProps.side??"bottom",align:runtimeProps.align??"start",sideOffset:runtimeProps.sideOffset??8,collisionPadding:runtimeProps.collisionPadding??8,...runtimeProps.collisionBoundary===void 0?{}:{collisionBoundary:runtimeProps.collisionBoundary},avoidCollisions:runtimeProps.avoidCollisions??true,hideWhenDetached:runtimeProps.hideWhenDetached??false,strategy:runtimeProps.strategy??"absolute",tracking:runtimeProps.tracking??"events"}:{},...runtimeProps.policies===void 0?{}:{policies:runtimeProps.policies},defaultHighlightedValue:reconciled.current,...runtimeProps.label===void 0?{}:{label:runtimeProps.label},...runtimeProps.textValue===void 0?{}:{typeahead:{textValue:runtimeProps.textValue}},onOpenChange:value=>{open.value=value;emit("update:open",value)},onInvoke:value=>emit("invoke",value),onUpdate:refresh};connection.value=kind==="menu-button"?createMenuButton({...options,trigger:trigger.value,...controlled?{open:runtimeProps.open}:{defaultOpen:open.value}}):kind==="menubar"?createMenubar(options):kind==="navigation-menu"?createNavigationMenu(options):createMenu(options);refreshParts();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};const registerRoot=element=>{if(root.value===element)return;root.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};const registerTrigger=element=>{if(trigger.value===element)return;trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};provide(key,{state,kind,label:computed(()=>runtimeProps.label),disabledItems:computed(()=>new Set(runtimeProps.disabledItems)),direction,position,strategy,registerRoot,registerTrigger,registerItem:(element,id)=>connection.value?.setItemAttributes(element,id),registerSubmenu:(element,parent)=>connection.value?.setSubmenuAttributes(element,parent)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>runtimeProps.items,()=>runtimeProps.disabledItems,()=>runtimeProps.disabled,()=>runtimeProps.label,()=>runtimeProps.textValue,()=>runtimeProps.policies,direction,()=>runtimeProps.position,()=>runtimeProps.side,()=>runtimeProps.align,()=>runtimeProps.sideOffset,()=>runtimeProps.collisionPadding,()=>runtimeProps.collisionBoundary,()=>runtimeProps.avoidCollisions,()=>runtimeProps.hideWhenDetached,()=>runtimeProps.strategy,()=>runtimeProps.tracking],connect);watch(()=>runtimeProps.open,value=>{if(!controlled||value===void 0||connection.value===void 0)return;const result=connection.value.syncControlledValue(value);if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{if(providerOnly)return h(Fragment,null,slots["default"]?.(state.value)??[]);return h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef:node=>registerRoot(node instanceof HTMLElement?node:void 0),role:kind==="navigation-menu"?"navigation":kind==="menubar"?"menubar":"menu","aria-label":runtimeProps.label,dir:direction.value,"data-scope":kind==="navigation-menu"?"navigation-menu":kind==="menubar"?"menubar":"menu","data-part":"root","data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}}})}const MenuRoot=createRoot("menu",commonProps);const MenubarRoot=createRoot("menubar",commonProps);const NavigationMenuRoot=createRoot("navigation-menu",commonProps);const MenuButtonRoot=createRoot("menu-button",menuButtonProps,true);const MenuButtonTrigger=defineComponent({name:"SectileMenuButtonTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"menu","aria-expanded":String(root.state.value.open),"data-scope":"menu-button","data-part":"trigger"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuButtonContent=defineComponent({name:"SectileMenuButtonContent",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonContent");const element=shallowRef();return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerRoot(content)},role:"menu",hidden:!root.state.value.open,"aria-label":root.label.value,dir:root.direction.value,style:root.position.value?{position:root.strategy.value,visibility:element.value===void 0?"hidden":void 0}:void 0,"data-scope":"menu-button","data-part":"content","data-state":root.state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuItem=defineComponent({name:"SectileMenuItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuItem");const state=computed(()=>({value:props.value,highlighted:root.state.value.highlightedValue===props.value,open:root.state.value.openPath.includes(props.value),disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.registerItem(node instanceof HTMLElement?node:void 0,props.value)},role:root.kind==="navigation-menu"?void 0:"menuitem","aria-disabled":state.value.disabled?"true":void 0,"data-sectile-menu-id":props.value,"data-scope":root.kind==="navigation-menu"?"navigation-menu":root.kind==="menubar"?"menubar":"menu","data-part":"item","data-highlighted":state.value.highlighted?"":void 0,"data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const MenuSubContent=defineComponent({name:"SectileMenuSubContent",inheritAttrs:false,props:{for:{type:String,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuSubContent");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.registerSubmenu(node instanceof HTMLElement?node:void 0,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!root.state.value.openPath.includes(props.for),dir:root.direction.value,"data-sectile-submenu-for":props.for,"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":root.state.value.openPath.includes(props.for)?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuSeparator=defineComponent({name:"SectileMenuSeparator",inheritAttrs:false,props:partProps,setup(props,{attrs}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"separator","data-scope":"menu","data-part":"separator"}))}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside a menu root.`);return root}export{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,NavigationMenuRoot};
|
|
1
|
+
import{Fragment,computed,defineComponent,h,inject,mergeProps,nextTick,onBeforeUnmount,onMounted,provide,shallowRef,watch}from"vue";import{createMenu}from"@sectile/dom/menu";import{createMenuButton}from"@sectile/dom/menu-button";import{createMenubar}from"@sectile/dom/menubar";import{createNavigationMenu}from"@sectile/dom/navigation-menu";import{Primitive}from"./primitive.js";import{useHostDirection,useHostId}from"./host-provider.js";import{reconcileCollectionState}from"./internal/collection.js";import{useControlledStateInvariant}from"./internal/controlled-state.js";import{usePresence}from"./internal/presence.js";const key=Symbol("SectileMenuRoot");const partProps={as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const commonProps={items:{type:Array,required:true},disabledItems:{type:Array,default:()=>[]},disabled:{type:Boolean,default:false},defaultHighlightedValue:{type:String,default:null},label:{type:String,default:void 0},textValue:{type:Function,default:void 0},policies:{type:Object,default:void 0},as:{type:[String,Object,Function],default:"div"},asChild:{type:Boolean,default:false}};const menuButtonProps={...commonProps,open:{type:Boolean,default:void 0},defaultOpen:{type:Boolean,default:false},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"}};function createRoot(kind,rootProps,providerOnly=false){return defineComponent({name:kind==="menu-button"?"SectileMenuButtonRoot":kind==="menubar"?"SectileMenubarRoot":kind==="navigation-menu"?"SectileNavigationMenuRoot":"SectileMenuRoot",inheritAttrs:false,props:rootProps,emits:{"update:open":_value=>true,invoke:_value=>true},slots:Object,setup(props,{attrs,emit,slots}){const runtimeProps=props;const direction=useHostDirection();const baseID=useHostId();const root=shallowRef();const trigger=shallowRef();const connection=shallowRef();const openProp=runtimeProps.open;const open=shallowRef(kind==="menu-button"?openProp??runtimeProps.defaultOpen??false:true);const highlighted=shallowRef(runtimeProps.defaultHighlightedValue);const openPath=shallowRef([]);const controlled=useControlledStateInvariant("MenuButtonRoot","open",()=>kind==="menu-button"?runtimeProps.open:void 0);const position=computed(()=>kind==="menu-button"?runtimeProps.position??true:false);const strategy=computed(()=>runtimeProps.strategy??"absolute");const state=computed(()=>({open:kind==="menu-button"&&runtimeProps.open!==void 0?runtimeProps.open:open.value,highlightedValue:highlighted.value,openPath:openPath.value,disabled:runtimeProps.disabled}));const refresh=()=>{const snapshot=connection.value?.getSnapshot().state;if(snapshot===void 0)return;open.value=snapshot.open;highlighted.value=snapshot.cursor.current;openPath.value=snapshot.openPath;refreshParts()};const refreshParts=()=>{if(root.value===void 0||connection.value===void 0)return;root.value.querySelectorAll("[data-sectile-menu-id]").forEach(element=>{const id=element.dataset["sectileMenuId"];if(id!==void 0)connection.value?.setItemAttributes(element,id)});root.value.querySelectorAll("[data-sectile-submenu-for]").forEach(element=>{const id=element.dataset["sectileSubmenuFor"];if(id!==void 0)connection.value?.setSubmenuAttributes(element,id)})};const connect=()=>{connection.value?.disconnect();if(root.value===void 0||kind==="menu-button"&&trigger.value===void 0)return;const reconciled=reconcileCollectionState(runtimeProps.items.map(item=>item.id),[],highlighted.value,runtimeProps.disabledItems,"single",{preserveNullCurrent:true});highlighted.value=reconciled.current;const options={root:root.value,items:runtimeProps.items,disabledItems:runtimeProps.disabledItems,disabled:runtimeProps.disabled,direction:direction.value,baseID,manageVisibility:false,...kind==="menu-button"?{position:runtimeProps.position??true,side:runtimeProps.side??"bottom",align:runtimeProps.align??"start",sideOffset:runtimeProps.sideOffset??8,collisionPadding:runtimeProps.collisionPadding??8,...runtimeProps.collisionBoundary===void 0?{}:{collisionBoundary:runtimeProps.collisionBoundary},avoidCollisions:runtimeProps.avoidCollisions??true,hideWhenDetached:runtimeProps.hideWhenDetached??false,strategy:runtimeProps.strategy??"absolute",tracking:runtimeProps.tracking??"events"}:{},...runtimeProps.policies===void 0?{}:{policies:runtimeProps.policies},defaultHighlightedValue:reconciled.current,...runtimeProps.label===void 0?{}:{label:runtimeProps.label},...runtimeProps.textValue===void 0?{}:{typeahead:{textValue:runtimeProps.textValue}},onOpenChange:value=>{open.value=value;emit("update:open",value)},onInvoke:value=>emit("invoke",value),onUpdate:refresh};connection.value=kind==="menu-button"?createMenuButton({...options,trigger:trigger.value,...controlled?{open:runtimeProps.open}:{defaultOpen:open.value}}):kind==="menubar"?createMenubar(options):kind==="navigation-menu"?createNavigationMenu(options):createMenu(options);refreshParts();refresh()};let mounted=false;let connectScheduled=false;const scheduleConnect=()=>{if(!mounted||connectScheduled)return;connectScheduled=true;void nextTick(()=>{connectScheduled=false;if(mounted)connect()})};const registerRoot=element=>{if(root.value===element)return;root.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};const registerTrigger=element=>{if(trigger.value===element)return;trigger.value=element;if(element===void 0){connection.value?.disconnect();connection.value=void 0}else scheduleConnect()};provide(key,{state,kind,label:computed(()=>runtimeProps.label),disabledItems:computed(()=>new Set(runtimeProps.disabledItems)),direction,position,strategy,registerRoot,registerTrigger,refresh:()=>connection.value?.refresh(),registerItem:(element,id)=>connection.value?.setItemAttributes(element,id),registerSubmenu:(element,parent)=>connection.value?.setSubmenuAttributes(element,parent)});onMounted(()=>{mounted=true;connect()});onBeforeUnmount(()=>{mounted=false;connection.value?.disconnect()});watch([()=>runtimeProps.items,()=>runtimeProps.disabledItems,()=>runtimeProps.disabled,()=>runtimeProps.label,()=>runtimeProps.textValue,()=>runtimeProps.policies,direction,()=>runtimeProps.position,()=>runtimeProps.side,()=>runtimeProps.align,()=>runtimeProps.sideOffset,()=>runtimeProps.collisionPadding,()=>runtimeProps.collisionBoundary,()=>runtimeProps.avoidCollisions,()=>runtimeProps.hideWhenDetached,()=>runtimeProps.strategy,()=>runtimeProps.tracking],connect);watch(()=>runtimeProps.open,value=>{if(!controlled||value===void 0||connection.value===void 0)return;const result=connection.value.syncControlledValue(value);if(!result.ok)throw new TypeError(result.error.message);refresh()});return()=>{if(providerOnly)return h(Fragment,null,slots["default"]?.(state.value)??[]);return h(Primitive,mergeProps(attrs,{as:runtimeProps.as,asChild:runtimeProps.asChild,elementRef:node=>registerRoot(node instanceof HTMLElement?node:void 0),role:kind==="navigation-menu"?"navigation":kind==="menubar"?"menubar":"menu","aria-label":runtimeProps.label,dir:direction.value,"data-scope":kind==="navigation-menu"?"navigation-menu":kind==="menubar"?"menubar":"menu","data-part":"root","data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}}})}const MenuRoot=createRoot("menu",commonProps);const MenubarRoot=createRoot("menubar",commonProps);const NavigationMenuRoot=createRoot("navigation-menu",commonProps);const MenuButtonRoot=createRoot("menu-button",menuButtonProps,true);const MenuButtonTrigger=defineComponent({name:"SectileMenuButtonTrigger",inheritAttrs:false,props:{as:{type:[String,Object,Function],default:"button"},asChild:{type:Boolean,default:false}},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonTrigger");return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>root.registerTrigger(node instanceof HTMLElement?node:void 0),type:props.as==="button"?"button":void 0,disabled:root.state.value.disabled,"aria-haspopup":"menu","aria-expanded":String(root.state.value.open),"data-scope":"menu-button","data-part":"trigger"}),{default:()=>slots["default"]?.(root.state.value)})}});const MenuButtonContent=defineComponent({name:"SectileMenuButtonContent",inheritAttrs:false,props:partProps,slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuButtonContent");const element=shallowRef();const open=computed(()=>root.state.value.open);const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const content=node instanceof HTMLElement?node:void 0;element.value=content;root.registerRoot(content)},role:"menu",hidden:!present.value,"aria-label":root.label.value,dir:root.direction.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":"menu-button","data-part":"content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const MenuItem=defineComponent({name:"SectileMenuItem",inheritAttrs:false,props:{value:{type:String,required:true},disabled:{type:Boolean,default:false},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuItem");const state=computed(()=>({value:props.value,highlighted:root.state.value.highlightedValue===props.value,open:root.state.value.openPath.includes(props.value),disabled:root.state.value.disabled||props.disabled||root.disabledItems.value.has(props.value)}));return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{root.registerItem(node instanceof HTMLElement?node:void 0,props.value)},role:root.kind==="navigation-menu"?void 0:"menuitem","aria-disabled":state.value.disabled?"true":void 0,"data-sectile-menu-id":props.value,"data-scope":root.kind==="navigation-menu"?"navigation-menu":root.kind==="menubar"?"menubar":"menu","data-part":"item","data-highlighted":state.value.highlighted?"":void 0,"data-state":state.value.open?"open":"closed"}),{default:()=>slots["default"]?.(state.value)})}});const MenuSubContent=defineComponent({name:"SectileMenuSubContent",inheritAttrs:false,props:{for:{type:String,required:true},...partProps},slots:Object,setup(props,{attrs,slots}){const root=useRoot("MenuSubContent");const element=shallowRef();const open=computed(()=>root.state.value.open&&root.state.value.openPath.includes(props.for));const present=usePresence(open,element);watch(present,async()=>{await nextTick();root.refresh()},{flush:"post"});return()=>{const exiting=!open.value&&present.value;return h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,elementRef:node=>{const submenu=node instanceof HTMLElement?node:void 0;element.value=submenu;root.registerSubmenu(submenu,props.for)},role:root.kind==="navigation-menu"?void 0:"menu",hidden:!present.value,dir:root.direction.value,"data-sectile-submenu-for":props.for,...exiting?{inert:true,"aria-hidden":"true"}:{},"data-scope":root.kind==="navigation-menu"?"navigation-menu":"menu","data-part":"sub-content","data-state":open.value?"open":"closed"}),{default:()=>slots["default"]?.(root.state.value)})}}});const MenuSeparator=defineComponent({name:"SectileMenuSeparator",inheritAttrs:false,props:partProps,setup(props,{attrs}){return()=>h(Primitive,mergeProps(attrs,{as:props.as,asChild:props.asChild,role:"separator","data-scope":"menu","data-part":"separator"}))}});function useRoot(part){const root=inject(key);if(root===void 0)throw new TypeError(`${part} must be used inside a menu root.`);return root}export{MenuButtonContent,MenuButtonRoot,MenuButtonTrigger,MenuItem,MenuRoot,MenuSeparator,MenuSubContent,MenubarRoot,NavigationMenuRoot};
|
|
2
2
|
//# sourceMappingURL=menu.js.map
|
package/dist/menu.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/menu.ts"],"mappings":"AAAA,OACE,SAAU,SAAU,gBAAiB,EAAG,OAAQ,WAAY,SAAU,gBAAiB,UAAW,QAClG,WAAY,UACP,MACP,OAAS,eAAmF,oBAC5F,OAAS,qBAAwB,2BACjC,OAAS,kBAAqB,uBAC9B,OAAS,yBAA4B,+BAQrC,OAAS,cAAmC,iBAC5C,OAAS,iBAAkB,cAAiB,qBAC5C,OAAS,6BAAgC,2BACzC,OAAS,gCAAmC,
|
|
1
|
+
{"version":3,"sources":["../src/menu.ts"],"mappings":"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","names":[],"file":"menu.js"}
|
package/dist/month-picker.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMonthCell,createPickerMove,specializePickerRootPart,createPickerRoot}from
|
|
1
|
+
import{PickerAnchor,PickerContent,PickerGrid,PickerPortal,PickerTrigger,createPickerInput,createPickerMonthCell,createPickerMove,specializePickerRootPart,createPickerRoot}from'./internal/date-picker.js';import{monthPickerCapability}from'./internal/month-picker-capability.js';export const MonthPickerRoot=createPickerRoot(monthPickerCapability,'SectileMonthPickerRoot',{scope:'month-picker',granularity:'month',defaultView:'year'});export const MonthPickerTrigger=specializePickerRootPart('date',PickerTrigger);export const MonthPickerAnchor=specializePickerRootPart('date',PickerAnchor);export const MonthPickerPortal=PickerPortal;export const MonthPickerContent=/* @__PURE__ */specializePickerRootPart('date',PickerContent);export const MonthPickerGrid=specializePickerRootPart('date',PickerGrid);export const MonthPickerCell=createPickerMonthCell('cell','SectileMonthPickerCell');export const MonthPickerInput=createPickerInput('input','SectileMonthPickerInput');export const MonthPickerPreviousYear=specializePickerRootPart('date',createPickerMove('year',-1,'SectileMonthPickerPreviousYear'));export const MonthPickerNextYear=specializePickerRootPart('date',createPickerMove('year',1,'SectileMonthPickerNextYear'));
|
|
2
2
|
//# sourceMappingURL=month-picker.js.map
|
package/dist/month-picker.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/month-picker.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"month-picker.js","names":["PickerAnchor","PickerContent","PickerGrid","PickerPortal","PickerTrigger","createPickerInput","createPickerMonthCell","createPickerMove","specializePickerRootPart","createPickerRoot","monthPickerCapability","MonthPickerRoot","scope","granularity","defaultView","MonthPickerTrigger","MonthPickerAnchor","MonthPickerPortal","MonthPickerContent","MonthPickerGrid","MonthPickerCell","MonthPickerInput","MonthPickerPreviousYear","MonthPickerNextYear"],"sources":["../src/month-picker.ts"],"mappings":"OAGEA,aAAcC,cAAeC,WAAYC,aAAcC,cAAeC,kBAAmBC,sBAAuBC,iBAAkBC,yBAClIC,qBACK,mCACEC,0BAA6B,+CAiB/B,MAAMC,gBAAkBF,iBAAiBC,sBAAuB,yBAA0B,CAAEE,MAAO,eAAgBC,YAAa,QAASC,YAAa,gBAKtJ,MAAMC,mBAAqBP,yBAAyB,OAAQJ,sBAC5D,MAAMY,kBAAoBR,yBAAyB,OAAQR,qBAC3D,MAAMiB,kBAAoBd,oBAC1B,MAAMe,kCAAqCV,yBAAyB,OAAQP,sBAC5E,MAAMkB,gBAAkBX,yBAAyB,OAAQN,mBACzD,MAAMkB,gBAAkBd,sBAAsB,OAAQ,iCACtD,MAAMe,iBAAmBhB,kBAAkB,QAAS,kCACpD,MAAMiB,wBAA0Bd,yBAAyB,OAAQD,iBAAiB,QAAS,EAAG,0CAC9F,MAAMgB,oBAAsBf,yBAAyB,OAAQD,iBAAiB,OAAQ,EAAG","ignoreList":[]}
|