websetup/ts/websetup.classes.websetup.ts

53 lines
1.4 KiB
TypeScript
Raw Normal View History

2020-11-04 18:01:04 +00:00
import * as plugins from './websetup.plugins';
import * as interfaces from './interfaces';
import { TagManager } from './websetup.classes.tagmanager';
import { TagLevel } from './websetup.classes.taglevel';
export interface IWebSetupConstructorOptions {
metaObject: interfaces.IMetaObject;
}
/**
* the main WebSetup class
*/
export class WebSetup {
public tagManager: TagManager = new TagManager();
public options: IWebSetupConstructorOptions;
private readyDeferred = plugins.smartpromise.defer();
public readyPromise = this.readyDeferred.promise;
constructor(optionsArg: IWebSetupConstructorOptions) {
this.options = optionsArg;
2020-11-04 18:09:07 +00:00
this.setup().then(() => {
this.readyDeferred.resolve();
});
2020-11-04 18:01:04 +00:00
}
/**
* an async setup called by the constructor
*/
2020-11-05 17:56:35 +00:00
public async setup(optionsArg?: IWebSetupConstructorOptions) {
if (optionsArg) {
this.options = optionsArg;
}
2020-11-04 18:01:04 +00:00
await this.tagManager.setup(this.options.metaObject);
}
/**
* reverts the active level and returns to the base level
*/
public revertToBaseLevel() {
this.tagManager.revertToBaseLevel();
}
/**
* sets a subpage
2020-11-05 15:35:31 +00:00
* @param metaObjectArg
2020-11-04 18:01:04 +00:00
*/
2020-11-05 18:36:08 +00:00
public async setSubLevel(metaObjectArg: interfaces.IMetaObject) {
const subLevel = await this.tagManager.setSubPageLevel(metaObjectArg);
return subLevel;
2020-11-05 15:35:31 +00:00
}
2020-11-05 20:03:12 +00:00
public flashTitle(flashTextArg: string) {}
2020-11-04 18:01:04 +00:00
}