@sectile/vue 0.18.2 → 0.18.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/form/control.js +1 -1
- package/dist/form/control.js.map +1 -1
- package/dist/input/native-field.js +1 -1
- package/dist/input/native-field.js.map +1 -1
- package/dist/input/native-range-field.d.ts +86 -0
- package/dist/input/native-range-field.js +2 -0
- package/dist/input/native-range-field.js.map +1 -0
- package/dist/internal/controlled-state.js +1 -1
- package/dist/internal/controlled-state.js.map +1 -1
- package/dist/tabular/source.js +1 -1
- package/dist/tabular/source.js.map +1 -1
- package/dist/temporal/calendar.d.ts +12 -12
- package/dist/temporal/calendar.js +1 -1
- package/dist/temporal/calendar.js.map +1 -1
- package/dist/temporal/date-field.js +1 -1
- package/dist/temporal/date-field.js.map +1 -1
- package/dist/temporal/date-picker.d.ts +14 -14
- package/dist/temporal/date-picker.js +1 -1
- package/dist/temporal/date-picker.js.map +1 -1
- package/dist/temporal/date-range-field.d.ts +1 -1
- package/dist/temporal/date-range-field.js +1 -1
- package/dist/temporal/date-range-field.js.map +1 -1
- package/dist/temporal/date-range-picker.d.ts +14 -14
- package/dist/temporal/date-range-picker.js +1 -1
- package/dist/temporal/date-range-picker.js.map +1 -1
- package/dist/temporal/date-time-field.js +1 -1
- package/dist/temporal/date-time-field.js.map +1 -1
- package/dist/temporal/date-time-picker.d.ts +14 -14
- package/dist/temporal/date-time-picker.js +1 -1
- package/dist/temporal/date-time-picker.js.map +1 -1
- package/dist/temporal/date-time-range-picker.d.ts +14 -14
- package/dist/temporal/date-time-range-picker.js +1 -1
- package/dist/temporal/date-time-range-picker.js.map +1 -1
- package/dist/temporal/month-picker.d.ts +7 -7
- package/dist/temporal/month-picker.js +1 -1
- package/dist/temporal/month-picker.js.map +1 -1
- package/dist/temporal/month-range-picker.d.ts +7 -7
- package/dist/temporal/month-range-picker.js +1 -1
- package/dist/temporal/month-range-picker.js.map +1 -1
- package/dist/temporal/picker.d.ts +1 -2
- package/dist/temporal/picker.js +1 -1
- package/dist/temporal/picker.js.map +1 -1
- package/dist/temporal/range-calendar.d.ts +7 -7
- package/dist/temporal/range-calendar.js +1 -1
- package/dist/temporal/range-calendar.js.map +1 -1
- package/dist/temporal/time-field.js +1 -1
- package/dist/temporal/time-field.js.map +1 -1
- package/dist/temporal/time-range-field.d.ts +1 -1
- package/dist/temporal/time-range-field.js +1 -1
- package/dist/temporal/time-range-field.js.map +1 -1
- package/dist/temporal/year-picker.d.ts +7 -7
- package/dist/temporal/year-picker.js +1 -1
- package/dist/temporal/year-picker.js.map +1 -1
- package/dist/temporal/year-range-picker.d.ts +7 -7
- package/dist/temporal/year-range-picker.js +1 -1
- package/dist/temporal/year-range-picker.js.map +1 -1
- package/dist/virtual/virtual-collection.d.ts +1 -0
- package/dist/virtual/virtual-collection.js +1 -1
- package/dist/virtual/virtual-collection.js.map +1 -1
- package/dist/virtual/virtual-core.d.ts +1 -0
- package/dist/virtual/virtual-core.js +1 -1
- package/dist/virtual/virtual-core.js.map +1 -1
- package/dist/virtual/virtual-grid.js +1 -1
- package/dist/virtual/virtual-grid.js.map +1 -1
- package/dist/virtual/virtual-list.js +1 -1
- package/dist/virtual/virtual-list.js.map +1 -1
- package/dist/virtual/virtual-masonry.js +1 -1
- package/dist/virtual/virtual-masonry.js.map +1 -1
- package/dist/virtual/virtual-spatial.js +1 -1
- package/dist/virtual/virtual-spatial.js.map +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-core.js","names":["computed","defineComponent","h","inject","mergeProps","onBeforeUnmount","onScopeDispose","provide","shallowReactive","shallowRef","toValue","watch","createAxisMeasurementResolver","createVirtualizer","virtualItemStyle","virtualSurfaceStyle","Primitive","virtualizerContextKey","Symbol","virtualizerSurfaceContextKey","useVirtualizer","options","scrollport","surface","plan","connection","frames","Map","frameRegistrations","items","itemRegistrations","connectedScrollport","connectedSurface","disposed","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnectConnection","clear","current","disconnect","connect","currentScrollport","currentSurface","viewportInsets","next","measure","readViewport","writeScroll","environment","onStateChange","frame","keys","set","registerFrame","item","desired","registerItem","id","retireObsoleteConnection","flush","immediate","setState","setOverscan","deep","setViewportInsets","currentConnection","Object","freeze","element","token","get","delete","measurements","active","virtualizerNotConnected","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","String","default","Number","Function","as","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","rootElement","virtualizer","resolveScrollport","target","ownerDocument","is","constructionWarningShown","previous","every","index","console","warn","slotProps","placements","elementRef","asHTMLElement","VirtualizerHeader","root","useVirtualizerRoot","unregister","setElement","VirtualizerSurface","style","position","VirtualizerItem","placement","size","useVirtualizerSurface","sizing","width","height","visible","VirtualizerFooter","part","TypeError","useVirtualizerSurfaceRegistration","class","code","message"],"sources":["../../src/virtual/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","connectedScrollport","connectedSurface","disposed","report","error","onError","updateInitialPlan","initialViewport","undefined","value","overscan","result","strategy","tryQuery","state","viewport","ok","onPlanChange","disconnectConnection","clear","current","disconnect","connect","currentScrollport","currentSurface","viewportInsets","next","measure","readViewport","writeScroll","environment","onStateChange","frame","keys","set","registerFrame","item","desired","registerItem","id","retireObsoleteConnection","flush","immediate","setState","setOverscan","deep","setViewportInsets","Object","freeze","element","token","get","delete","measurements","virtualizerNotConnected","mutate","mutation","scrollTo","alignment","refresh","VirtualizerRoot","name","inheritAttrs","props","defaultState","type","required","String","default","Number","Function","as","asChild","Boolean","emits","stateChange","_state","planChange","_plan","_error","slots","setup","attrs","emit","expose","rootElement","virtualizer","resolveScrollport","target","ownerDocument","setRootElement","asHTMLElement","is","constructionWarningShown","previous","console","warn","slotProps","placements","elementRef","VirtualizerHeader","root","useVirtualizerRoot","unregister","setElement","VirtualizerSurface","style","position","VirtualizerItem","placement","size","useVirtualizerSurface","sizing","width","height","index","visible","VirtualizerFooter","part","TypeError","useVirtualizerSurfaceRegistration","class","code","message"],"sources":["../../src/virtual/virtual-core.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createExactVirtualExtent,createVirtualExtent,resolveVirtualLaneGeometry,virtualSizePolicyRequiresMeasurement}from'@sectile/virtual/collection';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{createDenseTrackGridLayout,trackGridLayoutStrategy}from'@sectile/virtual/track-grid-layout';import{}from'@sectile/dom/virtual';import{VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{createVirtualCollectionExpose,nearlyEqual,prepareVirtualCollection,renderCollectionBootstrapItems,renderHighLevelItems,updatePreparedVirtualCollection}from'./virtual-collection.js';const VirtualGridRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualGrid',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},sizePolicy:{type:Object,required:true},lanePolicy:{type:Object,required:true},rowGap:{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 initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,props.maxItems));const initialGeometry=resolveVirtualLaneGeometry(initialViewport?.width??0,props.lanePolicy);const automaticEstimate=shallowRef();const isBootstrapping=()=>virtualSizePolicyRequiresMeasurement(props.sizePolicy)&&automaticEstimate.value===undefined&&prepared.value.domain.size>0;const initialState=virtualSizePolicyRequiresMeasurement(props.sizePolicy)?createVirtualGridState(prepareVirtualCollection([],props.getID,props.maxItems),[],props,initialGeometry,0):createVirtualGridState(prepared.value,props.items,props,initialGeometry);const activeState=shallowRef(initialState);const root=shallowRef();const viewportWidth=shallowRef(initialViewport?.width??0);const measuredHeights=new Map;const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;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(!isBootstrapping())return;const geometry=resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy);const count=Math.min(geometry.count,prepared.value.domain.size);let maximum=0;for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const height=element.getBoundingClientRect().height;if(!Number.isFinite(height)||height<=0)return;maximum=Math.max(maximum,height)}automaticEstimate.value=maximum;bootstrapElements.clear();activeState.value=createVirtualGridState(prepared.value,props.items,props,geometry,maximum)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||prepared.value.domain.size===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);onBeforeUnmount(()=>{disposed=true;bootstrapElements.clear()});const measure=props.sizePolicy.kind==='fixed'?undefined:({element,placement,state})=>{const bounds=element.getBoundingClientRect();if(bounds.height<=0)return null;measuredHeights.set(placement.id,bounds.height);const grid=state;const region=grid.regions.at(placement.index);if(region===undefined)return null;const height=gridMeasuredRowHeight(region.row,grid.columns.size,prepared.value,props.items,props.sizePolicy,measuredHeights,automaticEstimate.value);const current=grid.rows.extentAt(region.row);if(current?.kind==='exact'&&nearlyEqual(current.value,height)){return null}return Object.freeze({axis:'row',index:region.row,extent:createExactVirtualExtent(height)})};const sync=()=>{if(virtualSizePolicyRequiresMeasurement(props.sizePolicy)&&automaticEstimate.value===undefined){prepared.value=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);scheduleBootstrap();return}const exposed=root.value;if(exposed===undefined)return;const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);const geometry=resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy);if(next.valueChange!==null&&props.sizePolicy.kind!=='fixed'){const end=next.valueChange.index+next.valueChange.count;for(let index=next.valueChange.index;index<end;index+=1){const id=next.domain.at(index);if(id!==null)measuredHeights.delete(id)}}if(measuredHeights.size>2_048){for(const id of measuredHeights.keys()){if(!next.domain.contains(id))measuredHeights.delete(id)}}if(syncVirtualGrid(exposed,prepared.value,next,props.items,props,geometry,measuredHeights,automaticEstimate.value)){prepared.value=next}};watch(()=>[props.items,props.getID,props.sizePolicy,props.lanePolicy,props.rowGap,viewportWidth.value],sync,{flush:'post'});expose(createVirtualCollectionExpose(root,initialState,()=>prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready'));return()=>h(VirtualizerRoot,{...attrs,ref:root,defaultState:activeState.value,strategy:trackGridLayoutStrategy,overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,'data-virtual-layout':'virtual-grid','data-phase':prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready',onStateChange:state=>emit('stateChange',state),onPlanChange:plan=>{viewportWidth.value=plan.viewport.width;emit('planChange',plan)},onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs},{default:()=>isBootstrapping()?renderCollectionBootstrapItems('virtual-grid',prepared.value,props.items,Math.min(resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy).count,prepared.value.domain.size),resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy).extent,props.itemAs,props.itemAttributes,(value,id,index,placement)=>slots['item']?.({value,id,index,placement,row:0,column:index}),bootstrapItemRef):renderHighLevelItems('virtual-grid',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,props.sizePolicy.kind==='fixed'?'both':'width',(value,id,index,placement)=>{const grid=root.value?.state;const region=grid?.regions.at(placement.index);return slots['item']?.({value,id,index,placement,row:region?.row??0,column:region?.column??0})},slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualGrid=VirtualGridRuntime;function createVirtualGridState(prepared,items,props,geometry,automaticEstimate){const rowCount=Math.ceil(prepared.domain.size/geometry.count);return createDenseTrackGridLayout(createGridRowExtentIndex(rowCount,geometry.count,items,props,automaticEstimate),createUniformExtentIndex(geometry.count,createExactVirtualExtent(geometry.extent),{maxItems:props.maxItems}),prepared.domain.ids,{rowGap:props.rowGap,columnGap:geometry.gap,maxRegions:props.maxItems})}function createGridRowExtentIndex(rowCount,columnCount,items,props,automaticEstimate){const shared=props.sizePolicy.kind==='fixed'||props.sizePolicy.kind==='measured'||props.sizePolicy.kind==='estimated'&&typeof props.sizePolicy.estimate==='number'?createVirtualExtent(props.sizePolicy,items[0],0,automaticEstimate):null;return shared===null?createExtentIndex(createGridRowExtents(rowCount,columnCount,items,props,automaticEstimate),{maxItems:props.maxItems}):createUniformExtentIndex(rowCount,shared,{maxItems:props.maxItems})}function createGridRowExtents(rowCount,columnCount,items,props,automaticEstimate,startRow=0){return Object.freeze(Array.from({length:rowCount},(_unused,localRow)=>{const row=startRow+localRow;if(props.sizePolicy.kind==='fixed'){return createExactVirtualExtent(props.sizePolicy.extent)}const start=row*columnCount;const end=Math.min(items.length,start+columnCount);let maximum=0;for(let index=start;index<end;index+=1){maximum=Math.max(maximum,extentValue(createVirtualExtent(props.sizePolicy,items[index],index,automaticEstimate)))}return Object.freeze({kind:'unknown',fallback:maximum})}))}function gridMeasuredRowHeight(row,columnCount,prepared,items,sizePolicy,measured,automaticEstimate){const start=row*columnCount;const end=Math.min(prepared.domain.size,start+columnCount);let maximum=0;for(let index=start;index<end;index+=1){const id=prepared.domain.at(index);const fallback=extentValue(createVirtualExtent(sizePolicy,items[index],index,automaticEstimate));maximum=Math.max(maximum,measured.get(id)??fallback)}return maximum}function extentValue(extent){return extent.kind==='unknown'?extent.fallback:extent.value}function createResolvedGridRowExtents(rowCount,columnCount,prepared,items,props,measured,automaticEstimate,startRow=0){const extents=createGridRowExtents(rowCount,columnCount,items,props,automaticEstimate,startRow);if(props.sizePolicy.kind==='fixed')return extents;return Object.freeze(extents.map((extent,localRow)=>{const row=startRow+localRow;const measuredHeight=gridMeasuredRowHeight(row,columnCount,prepared,items,props.sizePolicy,measured,automaticEstimate);return measuredHeight>extentValue(extent)?createExactVirtualExtent(measuredHeight):extent}))}function syncVirtualGrid(exposed,_previous,prepared,items,props,geometry,measured,automaticEstimate){const state=exposed.state;const rowCount=Math.ceil(prepared.domain.size/geometry.count);const currentColumn=state.columns.extentAt(0);const geometryUnchanged=state.columns.size===geometry.count&&state.rowGap===props.rowGap&&state.columnGap===geometry.gap&¤tColumn?.kind==='exact'&&nearlyEqual(currentColumn.value,geometry.extent);if(geometryUnchanged&&prepared.change===null&&prepared.valueChange===null){return state.regions.size===prepared.domain.size&&state.rows.size===rowCount}if(geometryUnchanged&&prepared.change===null&&prepared.valueChange!==null){if(props.sizePolicy.kind==='fixed')return true;const startRow=Math.floor(prepared.valueChange.index/geometry.count);const endRow=Math.min(rowCount,Math.ceil((prepared.valueChange.index+prepared.valueChange.count)/geometry.count));if(endRow<=startRow)return true;const result=exposed.mutate(Object.freeze({type:'reconfigure-dense',rowPatch:Object.freeze({index:startRow,deleteCount:endRow-startRow,inserted:createResolvedGridRowExtents(endRow-startRow,geometry.count,prepared,items,props,measured,automaticEstimate,startRow)})}));return result.ok}if(geometryUnchanged&&prepared.change!==null){const rowPatch=props.sizePolicy.kind==='fixed'?rowCount===state.rows.size?undefined:rowCount<state.rows.size?Object.freeze({index:rowCount,deleteCount:state.rows.size-rowCount,inserted:Object.freeze([])}):Object.freeze({index:state.rows.size,deleteCount:0,inserted:createGridRowExtents(rowCount-state.rows.size,geometry.count,items,props,automaticEstimate,state.rows.size)}):(()=>{const startRow=Math.floor(prepared.change.index/geometry.count);return Object.freeze({index:startRow,deleteCount:Math.max(0,state.rows.size-startRow),inserted:createResolvedGridRowExtents(Math.max(0,rowCount-startRow),geometry.count,prepared,items,props,measured,automaticEstimate,startRow)})})();const result=exposed.mutate(Object.freeze({type:'reconfigure-dense',...rowPatch===undefined?{}:{rowPatch},regionPatch:Object.freeze({type:'splice',index:prepared.change.index,deleteCount:prepared.change.deleteCount,inserted:prepared.change.inserted})}));return result.ok}const rowExtents=createResolvedGridRowExtents(rowCount,geometry.count,prepared,items,props,measured,automaticEstimate);const result=exposed.mutate(Object.freeze({type:'reconfigure-dense',rowPatch:Object.freeze({index:0,deleteCount:state.rows.size,inserted:rowExtents}),columnPatch:Object.freeze({index:0,deleteCount:state.columns.size,inserted:Object.freeze(Array.from({length:geometry.count},()=>createExactVirtualExtent(geometry.extent)))}),...prepared.change===null?{}:{regionPatch:Object.freeze({type:'splice',index:prepared.change.index,deleteCount:prepared.change.deleteCount,inserted:prepared.change.inserted})}}));return result.ok}
|
|
1
|
+
import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createExactVirtualExtent,createVirtualExtent,resolveVirtualLaneGeometry,virtualSizePolicyRequiresMeasurement}from'@sectile/virtual/collection';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{createDenseTrackGridLayout,trackGridLayoutStrategy}from'@sectile/virtual/track-grid-layout';import{}from'@sectile/dom/virtual';import{asHTMLElement,VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{createVirtualCollectionExpose,nearlyEqual,prepareVirtualCollection,renderCollectionBootstrapItems,renderHighLevelItems,updatePreparedVirtualCollection,virtualCollectionRootStyle}from'./virtual-collection.js';const VirtualGridRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualGrid',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},sizePolicy:{type:Object,required:true},lanePolicy:{type:Object,required:true},rowGap:{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 initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,props.maxItems));const initialGeometry=resolveVirtualLaneGeometry(initialViewport?.width??0,props.lanePolicy);const automaticEstimate=shallowRef();const isBootstrapping=()=>virtualSizePolicyRequiresMeasurement(props.sizePolicy)&&automaticEstimate.value===undefined&&prepared.value.domain.size>0;const initialState=virtualSizePolicyRequiresMeasurement(props.sizePolicy)?createVirtualGridState(prepareVirtualCollection([],props.getID,props.maxItems),[],props,initialGeometry,0):createVirtualGridState(prepared.value,props.items,props,initialGeometry);const activeState=shallowRef(initialState);const root=shallowRef();const viewportWidth=shallowRef(initialViewport?.width??0);const measuredHeights=new Map;const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const bootstrapItemRef=(index,value)=>{const element=asHTMLElement(value);if(element===null)bootstrapElements.delete(index);else{bootstrapElements.set(index,element);scheduleBootstrap()}};const completeBootstrap=()=>{if(!isBootstrapping())return;const geometry=resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy);const count=Math.min(geometry.count,prepared.value.domain.size);let maximum=0;for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const height=element.getBoundingClientRect().height;if(!Number.isFinite(height)||height<=0)return;maximum=Math.max(maximum,height)}automaticEstimate.value=maximum;bootstrapElements.clear();activeState.value=createVirtualGridState(prepared.value,props.items,props,geometry,maximum)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||prepared.value.domain.size===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);onBeforeUnmount(()=>{disposed=true;bootstrapElements.clear()});const measure=props.sizePolicy.kind==='fixed'?undefined:({element,placement,state})=>{const bounds=element.getBoundingClientRect();if(bounds.height<=0)return null;measuredHeights.set(placement.id,bounds.height);const grid=state;const region=grid.regions.at(placement.index);if(region===undefined)return null;const height=gridMeasuredRowHeight(region.row,grid.columns.size,prepared.value,props.items,props.sizePolicy,measuredHeights,automaticEstimate.value);const current=grid.rows.extentAt(region.row);if(current?.kind==='exact'&&nearlyEqual(current.value,height)){return null}return Object.freeze({axis:'row',index:region.row,extent:createExactVirtualExtent(height)})};const sync=()=>{if(virtualSizePolicyRequiresMeasurement(props.sizePolicy)&&automaticEstimate.value===undefined){prepared.value=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);scheduleBootstrap();return}const exposed=root.value;if(exposed===undefined)return;const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);const geometry=resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy);if(next.valueChange!==null&&props.sizePolicy.kind!=='fixed'){const end=next.valueChange.index+next.valueChange.count;for(let index=next.valueChange.index;index<end;index+=1){const id=next.domain.at(index);if(id!==null)measuredHeights.delete(id)}}if(measuredHeights.size>2_048){for(const id of measuredHeights.keys()){if(!next.domain.contains(id))measuredHeights.delete(id)}}if(syncVirtualGrid(exposed,prepared.value,next,props.items,props,geometry,measuredHeights,automaticEstimate.value)){prepared.value=next}};watch(()=>[props.items,props.getID,props.sizePolicy,props.lanePolicy,props.rowGap,viewportWidth.value],sync,{flush:'post'});expose(createVirtualCollectionExpose(root,initialState,()=>prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready'));return()=>h(VirtualizerRoot,{...attrs,style:virtualCollectionRootStyle(attrs),ref:root,defaultState:activeState.value,strategy:trackGridLayoutStrategy,overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,'data-virtual-layout':'virtual-grid','data-phase':prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready',onStateChange:state=>emit('stateChange',state),onPlanChange:plan=>{viewportWidth.value=plan.viewport.width;emit('planChange',plan)},onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs},{default:()=>isBootstrapping()?renderCollectionBootstrapItems('virtual-grid',prepared.value,props.items,Math.min(resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy).count,prepared.value.domain.size),resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy).extent,props.itemAs,props.itemAttributes,(value,id,index,placement)=>slots['item']?.({value,id,index,placement,row:0,column:index}),bootstrapItemRef):renderHighLevelItems('virtual-grid',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,props.sizePolicy.kind==='fixed'?'both':'width',(value,id,index,placement)=>{const grid=root.value?.state;const region=grid?.regions.at(placement.index);return slots['item']?.({value,id,index,placement,row:region?.row??0,column:region?.column??0})},slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualGrid=VirtualGridRuntime;function createVirtualGridState(prepared,items,props,geometry,automaticEstimate){const rowCount=Math.ceil(prepared.domain.size/geometry.count);return createDenseTrackGridLayout(createGridRowExtentIndex(rowCount,geometry.count,items,props,automaticEstimate),createUniformExtentIndex(geometry.count,createExactVirtualExtent(geometry.extent),{maxItems:props.maxItems}),prepared.domain.ids,{rowGap:props.rowGap,columnGap:geometry.gap,maxRegions:props.maxItems})}function createGridRowExtentIndex(rowCount,columnCount,items,props,automaticEstimate){const shared=props.sizePolicy.kind==='fixed'||props.sizePolicy.kind==='measured'||props.sizePolicy.kind==='estimated'&&typeof props.sizePolicy.estimate==='number'?createVirtualExtent(props.sizePolicy,items[0],0,automaticEstimate):null;return shared===null?createExtentIndex(createGridRowExtents(rowCount,columnCount,items,props,automaticEstimate),{maxItems:props.maxItems}):createUniformExtentIndex(rowCount,shared,{maxItems:props.maxItems})}function createGridRowExtents(rowCount,columnCount,items,props,automaticEstimate,startRow=0){return Object.freeze(Array.from({length:rowCount},(_unused,localRow)=>{const row=startRow+localRow;if(props.sizePolicy.kind==='fixed'){return createExactVirtualExtent(props.sizePolicy.extent)}const start=row*columnCount;const end=Math.min(items.length,start+columnCount);let maximum=0;for(let index=start;index<end;index+=1){maximum=Math.max(maximum,extentValue(createVirtualExtent(props.sizePolicy,items[index],index,automaticEstimate)))}return Object.freeze({kind:'unknown',fallback:maximum})}))}function gridMeasuredRowHeight(row,columnCount,prepared,items,sizePolicy,measured,automaticEstimate){const start=row*columnCount;const end=Math.min(prepared.domain.size,start+columnCount);let maximum=0;for(let index=start;index<end;index+=1){const id=prepared.domain.at(index);const fallback=extentValue(createVirtualExtent(sizePolicy,items[index],index,automaticEstimate));maximum=Math.max(maximum,measured.get(id)??fallback)}return maximum}function extentValue(extent){return extent.kind==='unknown'?extent.fallback:extent.value}function createResolvedGridRowExtents(rowCount,columnCount,prepared,items,props,measured,automaticEstimate,startRow=0){const extents=createGridRowExtents(rowCount,columnCount,items,props,automaticEstimate,startRow);if(props.sizePolicy.kind==='fixed')return extents;return Object.freeze(extents.map((extent,localRow)=>{const row=startRow+localRow;const measuredHeight=gridMeasuredRowHeight(row,columnCount,prepared,items,props.sizePolicy,measured,automaticEstimate);return measuredHeight>extentValue(extent)?createExactVirtualExtent(measuredHeight):extent}))}function syncVirtualGrid(exposed,_previous,prepared,items,props,geometry,measured,automaticEstimate){const state=exposed.state;const rowCount=Math.ceil(prepared.domain.size/geometry.count);const currentColumn=state.columns.extentAt(0);const geometryUnchanged=state.columns.size===geometry.count&&state.rowGap===props.rowGap&&state.columnGap===geometry.gap&¤tColumn?.kind==='exact'&&nearlyEqual(currentColumn.value,geometry.extent);if(geometryUnchanged&&prepared.change===null&&prepared.valueChange===null){return state.regions.size===prepared.domain.size&&state.rows.size===rowCount}if(geometryUnchanged&&prepared.change===null&&prepared.valueChange!==null){if(props.sizePolicy.kind==='fixed')return true;const startRow=Math.floor(prepared.valueChange.index/geometry.count);const endRow=Math.min(rowCount,Math.ceil((prepared.valueChange.index+prepared.valueChange.count)/geometry.count));if(endRow<=startRow)return true;const result=exposed.mutate(Object.freeze({type:'reconfigure-dense',rowPatch:Object.freeze({index:startRow,deleteCount:endRow-startRow,inserted:createResolvedGridRowExtents(endRow-startRow,geometry.count,prepared,items,props,measured,automaticEstimate,startRow)})}));return result.ok}if(geometryUnchanged&&prepared.change!==null){const rowPatch=props.sizePolicy.kind==='fixed'?rowCount===state.rows.size?undefined:rowCount<state.rows.size?Object.freeze({index:rowCount,deleteCount:state.rows.size-rowCount,inserted:Object.freeze([])}):Object.freeze({index:state.rows.size,deleteCount:0,inserted:createGridRowExtents(rowCount-state.rows.size,geometry.count,items,props,automaticEstimate,state.rows.size)}):(()=>{const startRow=Math.floor(prepared.change.index/geometry.count);return Object.freeze({index:startRow,deleteCount:Math.max(0,state.rows.size-startRow),inserted:createResolvedGridRowExtents(Math.max(0,rowCount-startRow),geometry.count,prepared,items,props,measured,automaticEstimate,startRow)})})();const result=exposed.mutate(Object.freeze({type:'reconfigure-dense',...rowPatch===undefined?{}:{rowPatch},regionPatch:Object.freeze({type:'splice',index:prepared.change.index,deleteCount:prepared.change.deleteCount,inserted:prepared.change.inserted})}));return result.ok}const rowExtents=createResolvedGridRowExtents(rowCount,geometry.count,prepared,items,props,measured,automaticEstimate);const result=exposed.mutate(Object.freeze({type:'reconfigure-dense',rowPatch:Object.freeze({index:0,deleteCount:state.rows.size,inserted:rowExtents}),columnPatch:Object.freeze({index:0,deleteCount:state.columns.size,inserted:Object.freeze(Array.from({length:geometry.count},()=>createExactVirtualExtent(geometry.extent)))}),...prepared.change===null?{}:{regionPatch:Object.freeze({type:'splice',index:prepared.change.index,deleteCount:prepared.change.deleteCount,inserted:prepared.change.inserted})}}));return result.ok}
|
|
2
2
|
//# sourceMappingURL=virtual-grid.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-grid.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createExactVirtualExtent","createVirtualExtent","resolveVirtualLaneGeometry","virtualSizePolicyRequiresMeasurement","createExtentIndex","createUniformExtentIndex","createDenseTrackGridLayout","trackGridLayoutStrategy","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","createVirtualCollectionExpose","nearlyEqual","prepareVirtualCollection","renderCollectionBootstrapItems","renderHighLevelItems","updatePreparedVirtualCollection","VirtualGridRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","sizePolicy","Object","lanePolicy","rowGap","Number","default","overscan","viewportInsets","undefined","maxItems","initialViewport","as","String","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialGeometry","width","automaticEstimate","isBootstrapping","value","domain","size","initialState","createVirtualGridState","activeState","root","viewportWidth","measuredHeights","Map","bootstrapElements","bootstrapScheduled","disposed","bootstrapItemRef","index","element","HTMLElement","delete","set","scheduleBootstrap","completeBootstrap","geometry","count","Math","min","maximum","get","height","getBoundingClientRect","isFinite","max","clear","measure","kind","placement","state","bounds","id","grid","region","regions","at","gridMeasuredRowHeight","row","columns","current","rows","extentAt","axis","extent","sync","exposed","next","valueChange","end","keys","contains","syncVirtualGrid","flush","ref","defaultState","strategy","onStateChange","onPlanChange","plan","viewport","onError","placements","column","VirtualGrid","rowCount","ceil","createGridRowExtentIndex","ids","columnGap","gap","maxRegions","columnCount","shared","estimate","createGridRowExtents","startRow","from","length","_unused","localRow","start","extentValue","fallback","measured","createResolvedGridRowExtents","extents","map","measuredHeight","_previous","currentColumn","geometryUnchanged","change","floor","endRow","result","mutate","rowPatch","deleteCount","inserted","ok","regionPatch","rowExtents","columnPatch"],"sources":["../../src/virtual/virtual-grid.ts"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"virtual-grid.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createExactVirtualExtent","createVirtualExtent","resolveVirtualLaneGeometry","virtualSizePolicyRequiresMeasurement","createExtentIndex","createUniformExtentIndex","createDenseTrackGridLayout","trackGridLayoutStrategy","asHTMLElement","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","createVirtualCollectionExpose","nearlyEqual","prepareVirtualCollection","renderCollectionBootstrapItems","renderHighLevelItems","updatePreparedVirtualCollection","virtualCollectionRootStyle","VirtualGridRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","sizePolicy","Object","lanePolicy","rowGap","Number","default","overscan","viewportInsets","undefined","maxItems","initialViewport","as","String","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialGeometry","width","automaticEstimate","isBootstrapping","value","domain","size","initialState","createVirtualGridState","activeState","root","viewportWidth","measuredHeights","Map","bootstrapElements","bootstrapScheduled","disposed","bootstrapItemRef","index","element","delete","set","scheduleBootstrap","completeBootstrap","geometry","count","Math","min","maximum","get","height","getBoundingClientRect","isFinite","max","clear","measure","kind","placement","state","bounds","id","grid","region","regions","at","gridMeasuredRowHeight","row","columns","current","rows","extentAt","axis","extent","sync","exposed","next","valueChange","end","keys","contains","syncVirtualGrid","flush","style","ref","defaultState","strategy","onStateChange","onPlanChange","plan","viewport","onError","placements","column","VirtualGrid","rowCount","ceil","createGridRowExtentIndex","ids","columnGap","gap","maxRegions","columnCount","shared","estimate","createGridRowExtents","startRow","from","length","_unused","localRow","start","extentValue","fallback","measured","createResolvedGridRowExtents","extents","map","measuredHeight","_previous","currentColumn","geometryUnchanged","change","floor","endRow","result","mutate","rowPatch","deleteCount","inserted","ok","regionPatch","rowExtents","columnPatch"],"sources":["../../src/virtual/virtual-grid.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createSequence}from'@sectile/core/sequence';import{createExactVirtualExtent,createVirtualExtent,reconcileVirtualCollectionExtents,reconcileVirtualCollectionValueExtents,virtualSizePolicyRequiresMeasurement}from'@sectile/virtual/collection';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{createLinearLayout,linearLayoutStrategyFor,setLinearCrossExtent,tryApplyLinearMeasurements,tryApplyLinearPatch}from'@sectile/virtual/linear-layout';import{}from'@sectile/dom/virtual';import{VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{constrainPreparedVirtualCollection,createVirtualCollectionExpose,prepareVirtualCollection,renderHighLevelItems,updatePreparedVirtualCollection}from'./virtual-collection.js';const VirtualListRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualList',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},sizePolicy:{type:Object,required:true},axis:{type:String,default:'vertical'},gap:{type:Number,default:0},overscan:{type:[Number,Object],default:240},viewportInsets:{type:[Number,Object],default:undefined},maxItems:{type:Number,default:1_000_000},initialViewport:{type:Object,default:undefined},as:{type:String,default:'div'},contentAs:{type:String,default:'div'},itemAs:{type:String,default:'div'},itemAttributes:{type:Function,default:undefined}},emits:{stateChange:_state=>true,planChange:_plan=>true,error:_error=>true},slots:Object,setup(props,{attrs,emit,expose,slots}){const axis=props.axis;const gap=props.gap;const maxItems=props.maxItems;const sizePolicy=props.sizePolicy;const initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,maxItems));const automaticEstimate=shallowRef();const bootstrapCount=shallowRef(virtualSizePolicyRequiresMeasurement(sizePolicy)&&prepared.value.domain.size>0?1:0);const bootstrapElements=new Map;const bootstrapRefs=new Map;let bootstrapScheduled=false;let disposed=false;const initialCrossExtent=crossExtentForViewport(axis,initialViewport);const initialState=virtualSizePolicyRequiresMeasurement(sizePolicy)?createEmptyVirtualListState({axis,gap,maxItems,crossExtent:initialCrossExtent}):createVirtualListState(prepared.value,props.items,{sizePolicy,axis,gap,maxItems,crossExtent:initialCrossExtent});const activeState=shallowRef(initialState);const root=shallowRef();const measure=sizePolicy.kind==='fixed'?undefined:createVirtualListMeasurementResolver(axis);const isBootstrapping=()=>automaticEstimate.value===undefined&&bootstrapCount.value>0&&prepared.value.domain.size>0;const phase=()=>prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready';const currentState=()=>root.value?.state??activeState.value;const bootstrapItemRef=index=>{const existing=bootstrapRefs.get(index);if(existing!==undefined)return existing;const callback=value=>{const element=value instanceof HTMLElement?value:null;if(element===null){bootstrapElements.delete(index);if(bootstrapRefs.get(index)===callback)bootstrapRefs.delete(index);return}bootstrapElements.set(index,element);scheduleBootstrap()};bootstrapRefs.set(index,callback);return callback};const completeBootstrap=()=>{if(!isBootstrapping())return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+gap*Math.max(0,extents.length-1);const viewport=root.value?.plan?.viewport;const viewportExtent=axis==='vertical'?viewport?.height??initialViewport?.height??0:viewport?.width??initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){bootstrapCount.value=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+gap)/(average+gap))));return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();bootstrapRefs.clear();activeState.value=createVirtualListState(prepared.value,props.items,{sizePolicy,axis,gap,maxItems,crossExtent:currentState().crossExtent},average)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>[props.items,props.getID],()=>{const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);if(virtualSizePolicyRequiresMeasurement(sizePolicy)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}let nextState=currentState();const exposed=root.value;const patch=reconcileVirtualCollectionExtents(nextState,next,sizePolicy,automaticEstimate.value);if(patch!==null){const result=exposed===undefined?tryApplyLinearPatch(nextState,patch):exposed.mutate(patch);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}const valueUpdates=reconcileVirtualCollectionValueExtents(nextState,next,sizePolicy,automaticEstimate.value);if(valueUpdates.length>0){const result=exposed===undefined?tryApplyLinearMeasurements(nextState,{generation:nextState.generation,measurements:valueUpdates}):exposed.measure(valueUpdates);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}prepared.value=next},{flush:'sync'});const syncCrossExtent=plan=>{const crossExtent=axis==='vertical'?plan.viewport.width:plan.viewport.height;const state=currentState();const next=setLinearCrossExtent(state,crossExtent);if(Object.is(next,state))return false;activeState.value=next;return true};let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.sizePolicy,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],()=>{if(constructionWarningShown||props.axis===axis&&props.gap===gap&&props.maxItems===maxItems&&sameVirtualSizePolicy(props.sizePolicy,sizePolicy)&&sameVirtualRect(props.initialViewport,initialViewport))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, sizePolicy, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;bootstrapElements.clear();bootstrapRefs.clear()});expose(createVirtualCollectionExpose(root,initialState,phase));return()=>h(VirtualizerRoot,{...attrs,ref:root,defaultState:activeState.value,strategy:linearLayoutStrategyFor(),overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,style:attrs['scrollport']===undefined||attrs['scrollport']==='root'?[{overflow:'auto'},attrs['style']]:attrs['style'],'data-virtual-layout':'virtual-list','data-phase':phase(),onStateChange:value=>{const state=value;activeState.value=state;emit('stateChange',state)},onPlanChange:plan=>{if(syncCrossExtent(plan))return;emit('planChange',plan)},onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs,...isBootstrapping()&&axis==='horizontal'?{style:{display:'flex'}}:{}},{default:()=>isBootstrapping()?renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,{axis,gap,crossExtent:currentState().crossExtent,itemAs:props.itemAs,itemAttributes:props.itemAttributes},slots['item'],bootstrapItemRef):renderHighLevelItems('virtual-list',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,linearItemSize(axis,sizePolicy),(value,id,index,placement)=>slots['item']?.({value,id,index,placement}),slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){return createLinearLayout(constrainPreparedVirtualCollection(prepared,props.maxItems),createVirtualListExtentIndex(prepared,items,props.sizePolicy,props.maxItems,automaticEstimate),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze(props.axis==='vertical'?{x:0,y:0,width:props.crossExtent,height:0}:{x:0,y:0,width:0,height:props.crossExtent}),visible:true});const rendered=render?.({value,id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:itemRef(index),style:[attributes['style'],props.crossExtent>0?props.axis==='vertical'?{width:`${props.crossExtent}px`}:{height:`${props.crossExtent}px`}:undefined,props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}function createVirtualListExtentIndex(prepared,items,sizePolicy,maxItems,automaticEstimate){if(prepared.domain.size===0){return createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems})}const shared=sizePolicy.kind==='fixed'||sizePolicy.kind==='measured'||sizePolicy.kind==='estimated'&&typeof sizePolicy.estimate==='number'?createVirtualExtent(sizePolicy,items[0],0,automaticEstimate):null;return shared===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>createVirtualExtent(sizePolicy,items[index],index,automaticEstimate)),{maxItems}):createUniformExtentIndex(prepared.domain.size,shared,{maxItems})}function linearItemSize(axis,sizePolicy){if(sizePolicy.kind==='fixed')return'both';return axis==='vertical'?'width':'height'}function crossExtentForViewport(axis,viewport){if(viewport===undefined)return 0;return axis==='vertical'?viewport.width:viewport.height}function sameVirtualSizePolicy(left,right){if(left.kind!==right.kind)return false;if(left.kind==='measured'&&right.kind==='measured')return true;if(left.kind==='fixed'&&right.kind==='fixed'){return left.extent===right.extent}return left.kind==='estimated'&&right.kind==='estimated'&&Object.is(left.estimate,right.estimate)}function sameVirtualRect(left,right){if(left===undefined||right===undefined)return left===right;return left.x===right.x&&left.y===right.y&&left.width===right.width&&left.height===right.height}
|
|
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{asHTMLElement,VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{constrainPreparedVirtualCollection,createVirtualCollectionExpose,prepareVirtualCollection,renderHighLevelItems,updatePreparedVirtualCollection,virtualCollectionRootStyle}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=asHTMLElement(value);if(element===null){bootstrapElements.delete(index);if(bootstrapRefs.get(index)===callback)bootstrapRefs.delete(index);return}bootstrapElements.set(index,element);scheduleBootstrap()};bootstrapRefs.set(index,callback);return callback};const completeBootstrap=()=>{if(!isBootstrapping())return;const count=Math.min(bootstrapCount.value,prepared.value.domain.size);const extents=[];for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const bounds=element.getBoundingClientRect();const extent=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(extent)||extent<=0)return;extents.push(extent)}const total=extents.reduce((sum,extent)=>sum+extent,0)+gap*Math.max(0,extents.length-1);const viewport=root.value?.plan?.viewport;const viewportExtent=axis==='vertical'?viewport?.height??initialViewport?.height??0:viewport?.width??initialViewport?.width??0;const target=viewportExtent+bootstrapTrailingOverscanExtent(props.overscan,axis);const average=extents.reduce((sum,extent)=>sum+extent,0)/extents.length;if(target>total&&count<prepared.value.domain.size){bootstrapCount.value=Math.min(prepared.value.domain.size,Math.max(count+1,Math.ceil((target+gap)/(average+gap))));return}automaticEstimate.value=average;bootstrapCount.value=0;bootstrapElements.clear();bootstrapRefs.clear();activeState.value=createVirtualListState(prepared.value,props.items,{sizePolicy,axis,gap,maxItems,crossExtent:currentState().crossExtent},average)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||bootstrapCount.value===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);watch(()=>[props.items,props.getID],()=>{const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);if(virtualSizePolicyRequiresMeasurement(sizePolicy)&&automaticEstimate.value===undefined){prepared.value=next;bootstrapCount.value=next.domain.size>0?1:0;scheduleBootstrap();return}let nextState=currentState();const exposed=root.value;const patch=reconcileVirtualCollectionExtents(nextState,next,sizePolicy,automaticEstimate.value);if(patch!==null){const result=exposed===undefined?tryApplyLinearPatch(nextState,patch):exposed.mutate(patch);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}const valueUpdates=reconcileVirtualCollectionValueExtents(nextState,next,sizePolicy,automaticEstimate.value);if(valueUpdates.length>0){const result=exposed===undefined?tryApplyLinearMeasurements(nextState,{generation:nextState.generation,measurements:valueUpdates}):exposed.measure(valueUpdates);if(!result.ok){if(exposed===undefined){emit('error',result.error)}return}nextState=result.value.state;activeState.value=nextState}prepared.value=next},{flush:'sync'});const syncCrossExtent=plan=>{const crossExtent=axis==='vertical'?plan.viewport.width:plan.viewport.height;const state=currentState();const next=setLinearCrossExtent(state,crossExtent);if(Object.is(next,state))return false;activeState.value=next;return true};let constructionWarningShown=false;watch(()=>[props.axis,props.gap,props.maxItems,props.sizePolicy,props.initialViewport?.x,props.initialViewport?.y,props.initialViewport?.width,props.initialViewport?.height],()=>{if(constructionWarningShown||props.axis===axis&&props.gap===gap&&props.maxItems===maxItems&&sameVirtualSizePolicy(props.sizePolicy,sizePolicy)&&sameVirtualRect(props.initialViewport,initialViewport))return;constructionWarningShown=true;console.warn('[Sectile] VirtualList axis, gap, maxItems, sizePolicy, and initialViewport are construction-time options. Remount the list to change them.')},{flush:'sync'});onBeforeUnmount(()=>{disposed=true;bootstrapElements.clear();bootstrapRefs.clear()});expose(createVirtualCollectionExpose(root,initialState,phase));return()=>h(VirtualizerRoot,{...attrs,ref:root,defaultState:activeState.value,strategy:linearLayoutStrategyFor(),overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,style:virtualCollectionRootStyle(attrs),'data-virtual-layout':'virtual-list','data-phase':phase(),onStateChange:value=>{const state=value;activeState.value=state;emit('stateChange',state)},onPlanChange:plan=>{if(syncCrossExtent(plan))return;emit('planChange',plan)},onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs,...isBootstrapping()&&axis==='horizontal'?{style:{display:'flex'}}:{}},{default:()=>isBootstrapping()?renderVirtualListBootstrapItems(prepared.value,props.items,bootstrapCount.value,{axis,gap,crossExtent:currentState().crossExtent,itemAs:props.itemAs,itemAttributes:props.itemAttributes},slots['item'],bootstrapItemRef):renderHighLevelItems('virtual-list',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,linearItemSize(axis,sizePolicy),(value,id,index,placement)=>slots['item']?.({value,id,index,placement}),slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualList=VirtualListRuntime;export function createVirtualListMeasurementResolver(axis){return({element,placement,state})=>measureVirtualListElement(axis,placement.id,element,state)}function measureVirtualListElement(axis,id,element,state){const index=state.domain.indexOf(id);if(index===null)return null;const bounds=element.getBoundingClientRect();const value=axis==='vertical'?bounds.height:bounds.width;if(!Number.isFinite(value)||value<=0)return null;const current=state.extents.extentAt(index);if(current?.kind==='exact'&&Math.abs(current.value-value)<0.01)return null;return Object.freeze({index,extent:Object.freeze({kind:'exact',value})})}export function createVirtualListState(prepared,items,props,automaticEstimate){return createLinearLayout(constrainPreparedVirtualCollection(prepared,props.maxItems),createVirtualListExtentIndex(prepared,items,props.sizePolicy,props.maxItems,automaticEstimate),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function createEmptyVirtualListState(props){return createLinearLayout(createSequence([],{maxItems:props.maxItems,maxIDCodeUnits:1_024}),createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems:props.maxItems}),{axis:props.axis,gap:props.gap,crossExtent:props.crossExtent})}export function bootstrapTrailingOverscanExtent(overscan,axis){if(typeof overscan==='number')return overscan;return axis==='vertical'?overscan.bottom??0:overscan.right??0}export function renderVirtualListBootstrapItems(prepared,items,count,props,render,itemRef){return Array.from({length:Math.min(count,prepared.domain.size)},(_unused,index)=>{const value=items[index];const id=prepared.domain.at(index);const attributes=props.itemAttributes?.(value,index)??{};const placement=Object.freeze({id,index,rect:Object.freeze(props.axis==='vertical'?{x:0,y:0,width:props.crossExtent,height:0}:{x:0,y:0,width:0,height:props.crossExtent}),visible:true});const rendered=render?.({value,id,index,placement});const children=rendered===undefined||rendered===null?[]:Array.isArray(rendered)?rendered:[rendered];return h(props.itemAs,{...attributes,key:id,ref:itemRef(index),style:[attributes['style'],props.crossExtent>0?props.axis==='vertical'?{width:`${props.crossExtent}px`}:{height:`${props.crossExtent}px`}:undefined,props.gap>0&&index>0?props.axis==='vertical'?{marginTop:`${props.gap}px`}:{marginLeft:`${props.gap}px`}:undefined],'data-scope':'virtual-list','data-part':'item','data-index':index,'data-visible':'','data-bootstrap':''},children)})}function createVirtualListExtentIndex(prepared,items,sizePolicy,maxItems,automaticEstimate){if(prepared.domain.size===0){return createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems})}const shared=sizePolicy.kind==='fixed'||sizePolicy.kind==='measured'||sizePolicy.kind==='estimated'&&typeof sizePolicy.estimate==='number'?createVirtualExtent(sizePolicy,items[0],0,automaticEstimate):null;return shared===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>createVirtualExtent(sizePolicy,items[index],index,automaticEstimate)),{maxItems}):createUniformExtentIndex(prepared.domain.size,shared,{maxItems})}function linearItemSize(axis,sizePolicy){if(sizePolicy.kind==='fixed')return'both';return axis==='vertical'?'width':'height'}function crossExtentForViewport(axis,viewport){if(viewport===undefined)return 0;return axis==='vertical'?viewport.width:viewport.height}function sameVirtualSizePolicy(left,right){if(left.kind!==right.kind)return false;if(left.kind==='measured'&&right.kind==='measured')return true;if(left.kind==='fixed'&&right.kind==='fixed'){return left.extent===right.extent}return left.kind==='estimated'&&right.kind==='estimated'&&Object.is(left.estimate,right.estimate)}function sameVirtualRect(left,right){if(left===undefined||right===undefined)return left===right;return left.x===right.x&&left.y===right.y&&left.width===right.width&&left.height===right.height}
|
|
2
2
|
//# sourceMappingURL=virtual-list.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-list.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createSequence","createExactVirtualExtent","createVirtualExtent","reconcileVirtualCollectionExtents","reconcileVirtualCollectionValueExtents","virtualSizePolicyRequiresMeasurement","createExtentIndex","createUniformExtentIndex","createLinearLayout","linearLayoutStrategyFor","setLinearCrossExtent","tryApplyLinearMeasurements","tryApplyLinearPatch","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","constrainPreparedVirtualCollection","createVirtualCollectionExpose","prepareVirtualCollection","renderHighLevelItems","updatePreparedVirtualCollection","VirtualListRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","sizePolicy","Object","axis","String","default","gap","Number","overscan","viewportInsets","undefined","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","automaticEstimate","bootstrapCount","value","domain","size","bootstrapElements","Map","bootstrapRefs","bootstrapScheduled","disposed","initialCrossExtent","crossExtentForViewport","initialState","createEmptyVirtualListState","crossExtent","createVirtualListState","activeState","root","measure","kind","createVirtualListMeasurementResolver","isBootstrapping","phase","currentState","state","bootstrapItemRef","index","existing","get","callback","element","HTMLElement","delete","set","scheduleBootstrap","completeBootstrap","count","Math","min","extents","bounds","getBoundingClientRect","extent","height","width","isFinite","push","total","reduce","sum","max","length","viewport","plan","viewportExtent","target","bootstrapTrailingOverscanExtent","average","ceil","clear","next","nextState","exposed","patch","result","mutate","ok","valueUpdates","generation","measurements","flush","syncCrossExtent","is","constructionWarningShown","x","y","sameVirtualSizePolicy","sameVirtualRect","console","warn","ref","defaultState","strategy","style","overflow","onStateChange","onPlanChange","onError","placements","display","renderVirtualListBootstrapItems","linearItemSize","id","placement","VirtualList","measureVirtualListElement","indexOf","current","extentAt","abs","createVirtualListExtentIndex","maxIDCodeUnits","bottom","right","render","itemRef","from","_unused","at","attributes","rect","visible","rendered","children","isArray","key","marginTop","marginLeft","shared","estimate","left"],"sources":["../../src/virtual/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","asHTMLElement","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","constrainPreparedVirtualCollection","createVirtualCollectionExpose","prepareVirtualCollection","renderHighLevelItems","updatePreparedVirtualCollection","virtualCollectionRootStyle","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","delete","set","scheduleBootstrap","completeBootstrap","count","Math","min","extents","bounds","getBoundingClientRect","extent","height","width","isFinite","push","total","reduce","sum","max","length","viewport","plan","viewportExtent","target","bootstrapTrailingOverscanExtent","average","ceil","clear","next","nextState","exposed","patch","result","mutate","ok","valueUpdates","generation","measurements","flush","syncCrossExtent","is","constructionWarningShown","x","y","sameVirtualSizePolicy","sameVirtualRect","console","warn","ref","defaultState","strategy","style","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/virtual/virtual-list.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createExactVirtualExtent,createVirtualExtent,reconcileVirtualCollectionExtents,reconcileVirtualCollectionValueExtents,resolveVirtualLaneGeometry,virtualSizePolicyRequiresMeasurement}from'@sectile/virtual/collection';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{createMasonryLayout,masonryLayoutStrategy}from'@sectile/virtual/masonry-layout';import{createAxisMeasurementResolver}from'@sectile/dom/virtual';import{VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{constrainPreparedVirtualCollection,createVirtualCollectionExpose,nearlyEqual,prepareVirtualCollection,renderCollectionBootstrapItems,renderHighLevelItems,updatePreparedVirtualCollection}from'./virtual-collection.js';const VirtualMasonryRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualMasonry',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},sizePolicy:{type:Object,required:true},lanePolicy:{type:Object,required:true},itemGap:{type:Number,default:0},placementPolicy:{type:String,default:'shortest'},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 initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,props.maxItems));const initialGeometry=resolveVirtualLaneGeometry(initialViewport?.width??0,props.lanePolicy);const automaticEstimate=shallowRef();const initialState=virtualSizePolicyRequiresMeasurement(props.sizePolicy)?createVirtualMasonryState(prepareVirtualCollection([],props.getID,props.maxItems),[],props,initialGeometry,0):createVirtualMasonryState(prepared.value,props.items,props,initialGeometry);const activeState=shallowRef(initialState);const root=shallowRef();const viewportWidth=shallowRef(initialViewport?.width??0);const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const isBootstrapping=()=>virtualSizePolicyRequiresMeasurement(props.sizePolicy)&&automaticEstimate.value===undefined&&prepared.value.domain.size>0;const bootstrapItemRef=(index,value)=>{const element=value
|
|
1
|
+
import{defineComponent,h,nextTick,onBeforeUnmount,onMounted,shallowRef,watch}from'vue';import{createExactVirtualExtent,createVirtualExtent,reconcileVirtualCollectionExtents,reconcileVirtualCollectionValueExtents,resolveVirtualLaneGeometry,virtualSizePolicyRequiresMeasurement}from'@sectile/virtual/collection';import{createExtentIndex,createUniformExtentIndex}from'@sectile/virtual/extent-index';import{createMasonryLayout,masonryLayoutStrategy}from'@sectile/virtual/masonry-layout';import{createAxisMeasurementResolver}from'@sectile/dom/virtual';import{asHTMLElement,VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{constrainPreparedVirtualCollection,createVirtualCollectionExpose,nearlyEqual,prepareVirtualCollection,renderCollectionBootstrapItems,renderHighLevelItems,updatePreparedVirtualCollection,virtualCollectionRootStyle}from'./virtual-collection.js';const VirtualMasonryRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualMasonry',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},sizePolicy:{type:Object,required:true},lanePolicy:{type:Object,required:true},itemGap:{type:Number,default:0},placementPolicy:{type:String,default:'shortest'},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 initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,props.maxItems));const initialGeometry=resolveVirtualLaneGeometry(initialViewport?.width??0,props.lanePolicy);const automaticEstimate=shallowRef();const initialState=virtualSizePolicyRequiresMeasurement(props.sizePolicy)?createVirtualMasonryState(prepareVirtualCollection([],props.getID,props.maxItems),[],props,initialGeometry,0):createVirtualMasonryState(prepared.value,props.items,props,initialGeometry);const activeState=shallowRef(initialState);const root=shallowRef();const viewportWidth=shallowRef(initialViewport?.width??0);const bootstrapElements=new Map;let bootstrapScheduled=false;let disposed=false;const isBootstrapping=()=>virtualSizePolicyRequiresMeasurement(props.sizePolicy)&&automaticEstimate.value===undefined&&prepared.value.domain.size>0;const bootstrapItemRef=(index,value)=>{const element=asHTMLElement(value);if(element===null)bootstrapElements.delete(index);else{bootstrapElements.set(index,element);scheduleBootstrap()}};const completeBootstrap=()=>{if(!isBootstrapping())return;const geometry=resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy);const count=Math.min(geometry.count,prepared.value.domain.size);let total=0;for(let index=0;index<count;index+=1){const element=bootstrapElements.get(index);if(element===undefined)return;const height=element.getBoundingClientRect().height;if(!Number.isFinite(height)||height<=0)return;total+=height}const estimate=total/count;automaticEstimate.value=estimate;bootstrapElements.clear();activeState.value=createVirtualMasonryState(prepared.value,props.items,props,geometry,estimate)};function scheduleBootstrap(){if(disposed||bootstrapScheduled||automaticEstimate.value!==undefined||prepared.value.domain.size===0)return;bootstrapScheduled=true;void nextTick(()=>{bootstrapScheduled=false;if(!disposed)completeBootstrap()})}onMounted(scheduleBootstrap);onBeforeUnmount(()=>{disposed=true;bootstrapElements.clear()});const measure=props.sizePolicy.kind==='fixed'?undefined:createAxisMeasurementResolver('vertical');watch(()=>[props.items,props.getID],()=>{if(virtualSizePolicyRequiresMeasurement(props.sizePolicy)&&automaticEstimate.value===undefined){prepared.value=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);scheduleBootstrap();return}const exposed=root.value;if(exposed===undefined)return;const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);let state=exposed.state;const patch=reconcileVirtualCollectionExtents(state,next,props.sizePolicy,automaticEstimate.value);if(patch!==null){const result=exposed.mutate(Object.freeze({type:'items',...patch}));if(!result.ok)return;state=result.value.state}const valueUpdates=reconcileVirtualCollectionValueExtents(state,next,props.sizePolicy,automaticEstimate.value);if(valueUpdates.length>0){const result=exposed.measure(valueUpdates);if(!result.ok)return}prepared.value=next},{flush:'post'});watch(()=>[props.lanePolicy,props.itemGap,props.placementPolicy,viewportWidth.value],()=>{const exposed=root.value;if(exposed===undefined)return;const geometry=resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy);const state=exposed.state;if(state.laneCount===geometry.count&&nearlyEqual(state.laneExtent,geometry.extent)&&state.laneGap===geometry.gap&&state.itemGap===props.itemGap&&state.placementPolicy===props.placementPolicy)return;exposed.mutate(Object.freeze({type:'geometry',laneCount:geometry.count,laneExtent:geometry.extent,laneGap:geometry.gap,itemGap:props.itemGap,placementPolicy:props.placementPolicy}))},{flush:'post'});expose(createVirtualCollectionExpose(root,initialState,()=>prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready'));return()=>h(VirtualizerRoot,{...attrs,style:virtualCollectionRootStyle(attrs),ref:root,defaultState:activeState.value,strategy:masonryLayoutStrategy,overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,'data-virtual-layout':'virtual-masonry','data-phase':prepared.value.domain.size===0?'empty':isBootstrapping()?'bootstrap':'ready',onStateChange:state=>emit('stateChange',state),onPlanChange:plan=>{viewportWidth.value=plan.viewport.width;emit('planChange',plan)},onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs},{default:()=>isBootstrapping()?renderCollectionBootstrapItems('virtual-masonry',prepared.value,props.items,Math.min(resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy).count,prepared.value.domain.size),resolveVirtualLaneGeometry(viewportWidth.value,props.lanePolicy).extent,props.itemAs,props.itemAttributes,(value,id,index,placement)=>slots['item']?.({value,id,index,placement:Object.freeze({...placement,lane:index}),lane:index}),bootstrapItemRef):renderHighLevelItems('virtual-masonry',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,props.sizePolicy.kind==='fixed'?'both':'width',(value,id,index,placement)=>{const masonryPlacement=placement;return slots['item']?.({value,id,index,placement:masonryPlacement,lane:masonryPlacement.lane})},slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualMasonry=VirtualMasonryRuntime;function createVirtualMasonryState(prepared,items,props,geometry,automaticEstimate){return createMasonryLayout(constrainPreparedVirtualCollection(prepared,props.maxItems),createCollectionExtents(prepared,items,props,automaticEstimate),{laneCount:geometry.count,laneExtent:geometry.extent,laneGap:geometry.gap,itemGap:props.itemGap,placementPolicy:props.placementPolicy,maxLanes:Math.max(geometry.count,1_024)})}function createCollectionExtents(prepared,items,props,automaticEstimate){if(prepared.domain.size===0){return createUniformExtentIndex(0,createExactVirtualExtent(0),{maxItems:props.maxItems})}const shared=props.sizePolicy.kind==='fixed'||props.sizePolicy.kind==='measured'||props.sizePolicy.kind==='estimated'&&typeof props.sizePolicy.estimate==='number'?createVirtualExtent(props.sizePolicy,items[0],0,automaticEstimate):null;return shared===null?createExtentIndex(Array.from({length:prepared.domain.size},(_unused,index)=>createVirtualExtent(props.sizePolicy,items[index],index,automaticEstimate)),{maxItems:props.maxItems}):createUniformExtentIndex(prepared.domain.size,shared,{maxItems:props.maxItems})}
|
|
2
2
|
//# sourceMappingURL=virtual-masonry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-masonry.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createExactVirtualExtent","createVirtualExtent","reconcileVirtualCollectionExtents","reconcileVirtualCollectionValueExtents","resolveVirtualLaneGeometry","virtualSizePolicyRequiresMeasurement","createExtentIndex","createUniformExtentIndex","createMasonryLayout","masonryLayoutStrategy","createAxisMeasurementResolver","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","constrainPreparedVirtualCollection","createVirtualCollectionExpose","nearlyEqual","prepareVirtualCollection","renderCollectionBootstrapItems","renderHighLevelItems","updatePreparedVirtualCollection","VirtualMasonryRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","sizePolicy","Object","lanePolicy","itemGap","Number","default","placementPolicy","String","overscan","viewportInsets","undefined","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialGeometry","width","automaticEstimate","initialState","createVirtualMasonryState","value","activeState","root","viewportWidth","bootstrapElements","Map","bootstrapScheduled","disposed","isBootstrapping","domain","size","bootstrapItemRef","index","element","
|
|
1
|
+
{"version":3,"file":"virtual-masonry.js","names":["defineComponent","h","nextTick","onBeforeUnmount","onMounted","shallowRef","watch","createExactVirtualExtent","createVirtualExtent","reconcileVirtualCollectionExtents","reconcileVirtualCollectionValueExtents","resolveVirtualLaneGeometry","virtualSizePolicyRequiresMeasurement","createExtentIndex","createUniformExtentIndex","createMasonryLayout","masonryLayoutStrategy","createAxisMeasurementResolver","asHTMLElement","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","constrainPreparedVirtualCollection","createVirtualCollectionExpose","nearlyEqual","prepareVirtualCollection","renderCollectionBootstrapItems","renderHighLevelItems","updatePreparedVirtualCollection","virtualCollectionRootStyle","VirtualMasonryRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","sizePolicy","Object","lanePolicy","itemGap","Number","default","placementPolicy","String","overscan","viewportInsets","undefined","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialGeometry","width","automaticEstimate","initialState","createVirtualMasonryState","value","activeState","root","viewportWidth","bootstrapElements","Map","bootstrapScheduled","disposed","isBootstrapping","domain","size","bootstrapItemRef","index","element","delete","set","scheduleBootstrap","completeBootstrap","geometry","count","Math","min","total","get","height","getBoundingClientRect","isFinite","estimate","clear","measure","kind","exposed","next","state","patch","result","mutate","ok","valueUpdates","length","flush","laneCount","laneExtent","extent","laneGap","gap","style","ref","defaultState","strategy","onStateChange","onPlanChange","plan","viewport","onError","placements","id","placement","lane","masonryPlacement","VirtualMasonry","createCollectionExtents","maxLanes","max","shared","from","_unused"],"sources":["../../src/virtual/virtual-masonry.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{defineComponent,h,shallowRef,watch}from'vue';import{createSpatialLayout,spatialLayoutStrategy}from'@sectile/virtual/spatial-layout';import{}from'@sectile/dom/virtual';import{VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{createVirtualCollectionExpose,prepareVirtualCollection,renderHighLevelItems,updatePreparedVirtualCollection}from'./virtual-collection.js';const VirtualSpatialRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualSpatial',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},getRect:{type:Function,required:true},getZIndex:{type:[Number,Function],default:0},sizeOwnership:{type:String,required:true},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 initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const sizeOwnership=props.sizeOwnership;const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,props.maxItems));const initialState=createVirtualSpatialState(prepared.value,props.items,props);const root=shallowRef();const measure=sizeOwnership==='mounted'?({element,placement,state})=>{const bounds=element.getBoundingClientRect();if(bounds.width<=0||bounds.height<=0)return null;const current=state.items.at(placement.index);if(current===undefined)return null;if(current.rect.width===bounds.width&¤t.rect.height===bounds.height)return null;return Object.freeze({id:placement.id,rect:Object.freeze({x:current.rect.x,y:current.rect.y,width:bounds.width,height:bounds.height})})}:undefined;watch(()=>[props.items,props.getID,props.getRect,props.getZIndex],(current,previous)=>{const exposed=root.value;if(exposed===undefined)return;const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);const state=exposed.state;const resolverChanged=current[2]!==previous[2]||current[3]!==previous[3];const valuePatch=next.valueChange===null?null:Object.freeze({index:next.valueChange.index,deleteCount:next.valueChange.count,inserted:Object.freeze(next.domain.ids.slice(next.valueChange.index,next.valueChange.index+next.valueChange.count))});const collectionPatch=next.change??valuePatch;const result=resolverChanged||collectionPatch===null?resolverChanged?exposed.mutate(Object.freeze({type:'replace',items:preserveMountedSpatialSizes(createSpatialItems(next,props.items,props),state,sizeOwnership)})):null:exposed.mutate(Object.freeze({type:'patch',patch:Object.freeze({type:'splice',index:collectionPatch.index,deleteCount:collectionPatch.deleteCount,inserted:collectionPatch.inserted}),inserted:preserveMountedSpatialSizes(createSpatialItemsRange(next,props.items,props,collectionPatch.index,collectionPatch.inserted.length),state,sizeOwnership)}));if(result===null){prepared.value=next;return}if(result.ok)prepared.value=next},{flush:'post'});let sizeOwnershipWarningShown=false;watch(()=>props.sizeOwnership,value=>{if(sizeOwnershipWarningShown||value===sizeOwnership)return;sizeOwnershipWarningShown=true;console.warn('[Sectile]
|
|
1
|
+
import{defineComponent,h,shallowRef,watch}from'vue';import{createSpatialLayout,spatialLayoutStrategy}from'@sectile/virtual/spatial-layout';import{}from'@sectile/dom/virtual';import{VirtualizerFooter,VirtualizerHeader,VirtualizerRoot,VirtualizerSurface}from'./virtual-core.js';import{createVirtualCollectionExpose,prepareVirtualCollection,renderHighLevelItems,updatePreparedVirtualCollection,virtualCollectionRootStyle}from'./virtual-collection.js';const VirtualSpatialRuntime=/* @__PURE__ */defineComponent({name:'SectileVirtualSpatial',inheritAttrs:false,props:{items:{type:Array,required:true},getID:{type:Function,required:true},getRect:{type:Function,required:true},getZIndex:{type:[Number,Function],default:0},sizeOwnership:{type:String,required:true},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 initialViewport=props.initialViewport===undefined?undefined:Object.freeze({...props.initialViewport});const sizeOwnership=props.sizeOwnership;const prepared=shallowRef(prepareVirtualCollection(props.items,props.getID,props.maxItems));const initialState=createVirtualSpatialState(prepared.value,props.items,props);const root=shallowRef();const measure=sizeOwnership==='mounted'?({element,placement,state})=>{const bounds=element.getBoundingClientRect();if(bounds.width<=0||bounds.height<=0)return null;const current=state.items.at(placement.index);if(current===undefined)return null;if(current.rect.width===bounds.width&¤t.rect.height===bounds.height)return null;return Object.freeze({id:placement.id,rect:Object.freeze({x:current.rect.x,y:current.rect.y,width:bounds.width,height:bounds.height})})}:undefined;watch(()=>[props.items,props.getID,props.getRect,props.getZIndex],(current,previous)=>{const exposed=root.value;if(exposed===undefined)return;const next=updatePreparedVirtualCollection(prepared.value,props.items,props.getID);const state=exposed.state;const resolverChanged=current[2]!==previous[2]||current[3]!==previous[3];const valuePatch=next.valueChange===null?null:Object.freeze({index:next.valueChange.index,deleteCount:next.valueChange.count,inserted:Object.freeze(next.domain.ids.slice(next.valueChange.index,next.valueChange.index+next.valueChange.count))});const collectionPatch=next.change??valuePatch;const result=resolverChanged||collectionPatch===null?resolverChanged?exposed.mutate(Object.freeze({type:'replace',items:preserveMountedSpatialSizes(createSpatialItems(next,props.items,props),state,sizeOwnership)})):null:exposed.mutate(Object.freeze({type:'patch',patch:Object.freeze({type:'splice',index:collectionPatch.index,deleteCount:collectionPatch.deleteCount,inserted:collectionPatch.inserted}),inserted:preserveMountedSpatialSizes(createSpatialItemsRange(next,props.items,props,collectionPatch.index,collectionPatch.inserted.length),state,sizeOwnership)}));if(result===null){prepared.value=next;return}if(result.ok)prepared.value=next},{flush:'post'});let sizeOwnershipWarningShown=false;watch(()=>props.sizeOwnership,value=>{if(sizeOwnershipWarningShown||value===sizeOwnership)return;sizeOwnershipWarningShown=true;console.warn('[Sectile] Remount VirtualSpatial to change sizeOwnership.')},{flush:'sync'});expose(createVirtualCollectionExpose(root,initialState,()=>prepared.value.domain.size===0?'empty':'ready'));return()=>h(VirtualizerRoot,{...attrs,style:virtualCollectionRootStyle(attrs),ref:root,defaultState:initialState,strategy:spatialLayoutStrategy,overscan:props.overscan,...props.viewportInsets===undefined?{}:{viewportInsets:props.viewportInsets},...initialViewport===undefined?{}:{initialViewport},...measure===undefined?{}:{measure},as:props.as,'data-virtual-layout':'virtual-spatial','data-phase':prepared.value.domain.size===0?'empty':'ready',onStateChange:state=>emit('stateChange',state),onPlanChange:plan=>emit('planChange',plan),onError:error=>emit('error',error)},{default:({placements})=>[slots['header']===undefined?null:h(VirtualizerHeader,{},{default:()=>slots['header']?.()}),h(VirtualizerSurface,{as:props.contentAs},{default:()=>renderHighLevelItems('virtual-spatial',placements,prepared.value,props.items,props.itemAs,props.itemAttributes,sizeOwnership==='mounted'?'none':'both',(value,id,index,placement)=>{const spatialPlacement=placement;return slots['item']?.({value,id,index,placement:spatialPlacement,zIndex:spatialPlacement.zIndex})},slots['empty'])}),slots['footer']===undefined?null:h(VirtualizerFooter,{},{default:()=>slots['footer']?.()})]})}});export const VirtualSpatial=VirtualSpatialRuntime;function createVirtualSpatialState(prepared,items,props){return createSpatialLayout(createSpatialItems(prepared,items,props),{maxItems:props.maxItems,domain:prepared.domain})}function createSpatialItems(prepared,items,props){return createSpatialItemsRange(prepared,items,props,0,prepared.domain.size)}function createSpatialItemsRange(prepared,items,props,start,count){const spatialItems=Array(count);for(let localIndex=0;localIndex<count;localIndex+=1){const index=start+localIndex;spatialItems[localIndex]={id:prepared.domain.at(index),rect:props.getRect(items[index],index),zIndex:typeof props.getZIndex==='number'?props.getZIndex:props.getZIndex(items[index],index)}}return spatialItems}function preserveMountedSpatialSizes(items,state,sizeOwnership){if(sizeOwnership!=='mounted')return items;return items.map(item=>{const previousIndex=state.domain.indexOf(item.id);const previous=previousIndex===null?undefined:state.items.at(previousIndex);return previous===undefined?item:{...item,rect:{...item.rect,width:previous.rect.width,height:previous.rect.height}}})}
|
|
2
2
|
//# sourceMappingURL=virtual-spatial.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"virtual-spatial.js","names":["defineComponent","h","shallowRef","watch","createSpatialLayout","spatialLayoutStrategy","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","createVirtualCollectionExpose","prepareVirtualCollection","renderHighLevelItems","updatePreparedVirtualCollection","VirtualSpatialRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","getRect","getZIndex","Number","default","sizeOwnership","String","overscan","Object","viewportInsets","undefined","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialState","createVirtualSpatialState","value","root","measure","element","placement","state","bounds","getBoundingClientRect","width","height","current","at","index","rect","id","x","y","previous","exposed","next","resolverChanged","valuePatch","valueChange","deleteCount","count","inserted","domain","ids","slice","collectionPatch","change","result","mutate","preserveMountedSpatialSizes","createSpatialItems","patch","createSpatialItemsRange","length","ok","flush","sizeOwnershipWarningShown","console","warn","size","ref","defaultState","strategy","onStateChange","onPlanChange","plan","onError","placements","spatialPlacement","zIndex","VirtualSpatial","start","spatialItems","localIndex","map","item","previousIndex","indexOf"],"sources":["../../src/virtual/virtual-spatial.ts"],"mappings":"OAASA,gBAAiBC,EAAGC,WAAYC,UAAqI,aAErKC,oBAAqBC,0BAA8I,8CACJ,8BAC/JC,kBAAmBC,kBAAmBC,gBAAiBC,uBAAqF,2BAC5IC,8BAA+BC,yBAA0BC,qBAAsBC,
|
|
1
|
+
{"version":3,"file":"virtual-spatial.js","names":["defineComponent","h","shallowRef","watch","createSpatialLayout","spatialLayoutStrategy","VirtualizerFooter","VirtualizerHeader","VirtualizerRoot","VirtualizerSurface","createVirtualCollectionExpose","prepareVirtualCollection","renderHighLevelItems","updatePreparedVirtualCollection","virtualCollectionRootStyle","VirtualSpatialRuntime","name","inheritAttrs","props","items","type","Array","required","getID","Function","getRect","getZIndex","Number","default","sizeOwnership","String","overscan","Object","viewportInsets","undefined","maxItems","initialViewport","as","contentAs","itemAs","itemAttributes","emits","stateChange","_state","planChange","_plan","error","_error","slots","setup","attrs","emit","expose","freeze","prepared","initialState","createVirtualSpatialState","value","root","measure","element","placement","state","bounds","getBoundingClientRect","width","height","current","at","index","rect","id","x","y","previous","exposed","next","resolverChanged","valuePatch","valueChange","deleteCount","count","inserted","domain","ids","slice","collectionPatch","change","result","mutate","preserveMountedSpatialSizes","createSpatialItems","patch","createSpatialItemsRange","length","ok","flush","sizeOwnershipWarningShown","console","warn","size","style","ref","defaultState","strategy","onStateChange","onPlanChange","plan","onError","placements","spatialPlacement","zIndex","VirtualSpatial","start","spatialItems","localIndex","map","item","previousIndex","indexOf"],"sources":["../../src/virtual/virtual-spatial.ts"],"mappings":"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","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sectile/vue",
|
|
3
|
-
"version": "0.18.
|
|
3
|
+
"version": "0.18.3",
|
|
4
4
|
"description": "Headless Vue components for Sectile DOM interaction semantics.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -414,16 +414,16 @@
|
|
|
414
414
|
"./package.json": "./package.json"
|
|
415
415
|
},
|
|
416
416
|
"dependencies": {
|
|
417
|
-
"@sectile/core": "^0.14.
|
|
418
|
-
"@sectile/dom": "^0.18.
|
|
417
|
+
"@sectile/core": "^0.14.8",
|
|
418
|
+
"@sectile/dom": "^0.18.3"
|
|
419
419
|
},
|
|
420
420
|
"peerDependencies": {
|
|
421
|
-
"@sectile/chart": "^0.15.
|
|
422
|
-
"@sectile/form": "^0.14.
|
|
423
|
-
"@sectile/tabular": "^0.16.
|
|
424
|
-
"@sectile/virtual": "^0.15.
|
|
421
|
+
"@sectile/chart": "^0.15.7",
|
|
422
|
+
"@sectile/form": "^0.14.10",
|
|
423
|
+
"@sectile/tabular": "^0.16.3",
|
|
424
|
+
"@sectile/virtual": "^0.15.6",
|
|
425
425
|
"vue": "^3.5.0",
|
|
426
|
-
"@sectile/temporal": "^0.14.
|
|
426
|
+
"@sectile/temporal": "^0.14.10"
|
|
427
427
|
},
|
|
428
428
|
"peerDependenciesMeta": {
|
|
429
429
|
"@sectile/chart": {
|
|
@@ -444,10 +444,10 @@
|
|
|
444
444
|
},
|
|
445
445
|
"devDependencies": {
|
|
446
446
|
"@sectile/tooling": "0.0.0",
|
|
447
|
-
"@sectile/chart": "0.15.
|
|
448
|
-
"@sectile/form": "0.14.
|
|
449
|
-
"@sectile/tabular": "0.16.
|
|
450
|
-
"@sectile/virtual": "0.15.
|
|
447
|
+
"@sectile/chart": "0.15.7",
|
|
448
|
+
"@sectile/form": "0.14.10",
|
|
449
|
+
"@sectile/tabular": "0.16.3",
|
|
450
|
+
"@sectile/virtual": "0.15.6",
|
|
451
451
|
"@vue/server-renderer": "^3.5.0",
|
|
452
452
|
"happy-dom": "^20.11.6",
|
|
453
453
|
"typescript": "7.0.2",
|
|
@@ -455,7 +455,7 @@
|
|
|
455
455
|
"vite": "5.4.21",
|
|
456
456
|
"vue": "^3.5.0",
|
|
457
457
|
"vue-tsc": "^3.0.6",
|
|
458
|
-
"@sectile/temporal": "0.14.
|
|
458
|
+
"@sectile/temporal": "0.14.10"
|
|
459
459
|
},
|
|
460
460
|
"scripts": {
|
|
461
461
|
"build": "sectile-build production",
|