UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.49 kB
import*as Common from"../../core/common/common.js";import*as Platform from"../../core/platform/platform.js";export class ListModel extends Common.ObjectWrapper.ObjectWrapper{items;constructor(e){super(),this.items=e||[]}[Symbol.iterator](){return this.items[Symbol.iterator]()}get length(){return this.items.length}at(e){return this.items[e]}every(e){return this.items.every(e)}filter(e){return this.items.filter(e)}find(e){return this.items.find(e)}findIndex(e){return this.items.findIndex(e)}indexOf(e,t){return this.items.indexOf(e,t)}insert(e,t){this.items.splice(e,0,t),this.replaced(e,[],1)}insertWithComparator(e,t){this.insert(Platform.ArrayUtilities.lowerBound(this.items,e,t),e)}join(e){return this.items.join(e)}remove(e){const t=this.items[e];return this.items.splice(e,1),this.replaced(e,[t],0),t}replace(e,t,s){const i=this.items[e];return this.items[e]=t,this.replaced(e,[i],1,s),i}replaceRange(e,t,s){let i;if(s.length<1e4)i=this.items.splice(e,t-e,...s);else{i=this.items.slice(e,t);const r=this.items.slice(0,e),n=this.items.slice(t);this.items=[...r,...s,...n]}return this.replaced(e,i,s.length),i}replaceAll(e){const t=this.items.slice();return this.items=e,this.replaced(0,t,e.length),t}slice(e,t){return this.items.slice(e,t)}some(e){return this.items.some(e)}replaced(e,t,s,i){this.dispatchEventToListeners(Events.ItemsReplaced,{index:e,removed:t,inserted:s,keepSelectedIndex:i})}}export var Events;!function(e){e.ItemsReplaced="ItemsReplaced"}(Events||(Events={}));