@yuebai008/cli
Version:
Command line interface for rapid qg-minigame development
1 lines • 2.53 kB
JavaScript
export var RegisteredAdorners;!function(e){e.GRID="grid",e.SUBGRID="subgrid",e.FLEX="flex",e.AD="ad",e.SCROLL_SNAP="scroll-snap",e.CONTAINER="container",e.SLOT="slot",e.TOP_LAYER="top-layer",e.REVEAL="reveal"}(RegisteredAdorners||(RegisteredAdorners={}));export function getRegisteredAdorner(e){switch(e){case RegisteredAdorners.GRID:return{name:"grid",category:"Layout",enabledByDefault:!0};case RegisteredAdorners.SUBGRID:return{name:"subgrid",category:"Layout",enabledByDefault:!0};case RegisteredAdorners.FLEX:return{name:"flex",category:"Layout",enabledByDefault:!0};case RegisteredAdorners.AD:return{name:"ad",category:"Security",enabledByDefault:!0};case RegisteredAdorners.SCROLL_SNAP:return{name:"scroll-snap",category:"Layout",enabledByDefault:!0};case RegisteredAdorners.CONTAINER:return{name:"container",category:"Layout",enabledByDefault:!0};case RegisteredAdorners.SLOT:return{name:"slot",category:"Layout",enabledByDefault:!0};case RegisteredAdorners.TOP_LAYER:return{name:"top-layer",category:"Layout",enabledByDefault:!0};case RegisteredAdorners.REVEAL:return{name:"reveal",category:"Default",enabledByDefault:!0}}}let adornerNameToCategoryMap;function getCategoryFromAdornerName(e){if(!adornerNameToCategoryMap){adornerNameToCategoryMap=new Map;for(const{name:e,category:r}of Object.values(RegisteredAdorners).map(getRegisteredAdorner))adornerNameToCategoryMap.set(e,r)}return adornerNameToCategoryMap.get(e)||"Default"}export const DefaultAdornerSettings=Object.values(RegisteredAdorners).map(getRegisteredAdorner).map((({name:e,enabledByDefault:r})=>({adorner:e,isEnabled:r})));export class AdornerManager{#e=new Map;#r;constructor(e){this.#r=e,this.#t()}updateSettings(e){this.#e=e,this.#n()}getSettings(){return this.#e}isAdornerEnabled(e){return this.#e.get(e)||!1}#n(){const e=[];for(const[r,t]of this.#e)e.push({adorner:r,isEnabled:t});this.#r.set(e)}#a(){const e=this.#r.get();for(const r of e)this.#e.set(r.adorner,r.isEnabled)}#t(){this.#a();const e=new Set(this.#e.keys());for(const{adorner:r,isEnabled:t}of DefaultAdornerSettings)e.delete(r),this.#e.has(r)||this.#e.set(r,t);for(const r of e)this.#e.delete(r);this.#n()}}const OrderedAdornerCategories=["Security","Layout","Default"];export const AdornerCategoryOrder=new Map(OrderedAdornerCategories.map(((e,r)=>[e,r+1])));export function compareAdornerNamesByCategory(e,r){return(AdornerCategoryOrder.get(getCategoryFromAdornerName(e))||Number.POSITIVE_INFINITY)-(AdornerCategoryOrder.get(getCategoryFromAdornerName(r))||Number.POSITIVE_INFINITY)}