UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.73 kB
import*as TextUtils from"../../models/text_utils/text_utils.js";import{CSSQuery}from"./CSSQuery.js";export class CSSContainerQuery extends CSSQuery{name;physicalAxes;logicalAxes;static parseContainerQueriesPayload(e,t){return t.map((t=>new CSSContainerQuery(e,t)))}constructor(e,t){super(e),this.reinitialize(t)}reinitialize(e){this.text=e.text,this.range=e.range?TextUtils.TextRange.TextRange.fromObject(e.range):null,this.styleSheetId=e.styleSheetId,this.name=e.name,this.physicalAxes=e.physicalAxes,this.logicalAxes=e.logicalAxes}active(){return!0}async getContainerForNode(e){const t=await this.cssModel.domModel().getContainerForNode(e,this.name,this.physicalAxes,this.logicalAxes);if(t)return new CSSContainerQueryContainer(t)}}export class CSSContainerQueryContainer{containerNode;constructor(e){this.containerNode=e}async getContainerSizeDetails(){const e=await this.containerNode.domModel().cssModel().getComputedStyle(this.containerNode.id);if(!e)return;const t=e.get("container-type"),i=e.get("contain"),s=e.get("writing-mode");if(!t||!i||!s)return;const r=getQueryAxis(`${t} ${i}`),n=getPhysicalAxisFromQueryAxis(r,s);let o,a;return"Both"!==n&&"Horizontal"!==n||(o=e.get("width")),"Both"!==n&&"Vertical"!==n||(a=e.get("height")),{queryAxis:r,physicalAxis:n,width:o,height:a}}}export const getQueryAxis=e=>{const t=e.split(" ");let i=!1,s=!1;for(const e of t){if("size"===e)return"size";i=i||"inline-size"===e,s=s||"block-size"===e}return i&&s?"size":i?"inline-size":s?"block-size":""};export const getPhysicalAxisFromQueryAxis=(e,t)=>{const i=t.startsWith("vertical");switch(e){case"":return"";case"size":return"Both";case"inline-size":return i?"Vertical":"Horizontal";case"block-size":return i?"Horizontal":"Vertical"}};