import { AppObjectEntity, getSingletonComponent, MemoizedBoolean, MemoizedNumber, MemoizedString, } from "@vived/core";
export class BaseAppState extends AppObjectEntity {
}
BaseAppState.type = "BaseAppState";
BaseAppState.get = (appObjects) => getSingletonComponent(BaseAppState.type, appObjects);
export function makeBaseAppState(appObject) {
    return new AppStateImp(appObject);
}
class AppStateImp extends BaseAppState {
    get isAuthoring() {
        return this.memoizedIsAuthoring.val;
    }
    set isAuthoring(val) {
        this.memoizedIsAuthoring.val = val;
    }
    get isReviewing() {
        return this.memoizedIsReviewing.val;
    }
    set isReviewing(val) {
        this.memoizedIsReviewing.val = val;
    }
    get slideText() {
        return this.memoizedSlideText.val;
    }
    set slideText(text) {
        this.memoizedSlideText.val = text;
    }
    set hasNextState(state) {
        this.memoizedHasNextState.val = state;
    }
    get hasNextState() {
        return this.memoizedHasNextState.val;
    }
    set hasPreviousState(state) {
        this.memoizedHasPreviousState.val = state;
    }
    get hasPreviousState() {
        return this.memoizedHasPreviousState.val;
    }
    set hideSlideNavigation(state) {
        this.memoizedHideSlideNavigation.val = state;
    }
    get hideSlideNavigation() {
        return this.memoizedHideSlideNavigation.val;
    }
    get slideInfoContentHeight() {
        return this.memoizedContentSize.val;
    }
    set slideInfoContentHeight(val) {
        this.memoizedContentSize.val = val;
    }
    constructor(appObject) {
        super(appObject, BaseAppState.type);
        this.memoizedIsAuthoring = new MemoizedBoolean(false, this.notifyOnChange);
        this.memoizedIsReviewing = new MemoizedBoolean(false, this.notifyOnChange);
        this.memoizedSlideText = new MemoizedString("", this.notifyOnChange);
        this.memoizedHasNextState = new MemoizedBoolean(false, this.notifyOnChange);
        this.memoizedHasPreviousState = new MemoizedBoolean(false, this.notifyOnChange);
        this.memoizedHideSlideNavigation = new MemoizedBoolean(false, this.notifyOnChange);
        this.memoizedContentSize = new MemoizedNumber(0, this.notifyOnChange);
    }
}
//# sourceMappingURL=BaseAppState.js.map