/* * Copyright © HatioLab Inc. All rights reserved. */ import { Container, sceneComponent } from '@hatiolab/things-scene' const NATURE = { mutable: false, resizable: true, rotatable: true, properties: [ { type: 'select', label: 'position-origin', name: 'origin', property: { options: [ { display: '', value: '' }, { display: 'left-top', value: 'left-top' }, { display: 'center-top', value: 'center-top' }, { display: 'right-top', value: 'right-top' }, { display: 'left-middle', value: 'left-middle' }, { display: 'center-middle', value: 'center-middle' }, { display: 'right-middle', value: 'right-middle' }, { display: 'left-bottom', value: 'left-bottom' }, { display: 'center-bottom', value: 'center-bottom' }, { display: 'right-bottom', value: 'right-bottom' } ] } }, { type: 'number', label: 'offset-x', name: 'offsetX' }, { type: 'number', label: 'offset-y', name: 'offsetY' } ] } @sceneComponent('FloatingContainer') export default class FloatingContainer extends Container { // things-scene 의 `declare const Container_base` 패턴이 base 인스턴스 타입의 accessor // 정보를 object-type property 로 평탄화하여 TS2611 발생. 동일 위치를 override 하는 // 케이스가 operato-scene 엔 없어 fmsim 만 영향. things-scene 측 mixin 타입 패턴이 // 개선되면 제거. // @ts-expect-error TS2611 get position() { return this.app?.isViewMode ? 'absolute' : 'static' } get nature() { return NATURE } }