Compare commits

..

4 Commits

Author SHA1 Message Date
bab9124ad9 3.0.9 2020-11-05 18:36:09 +00:00
fda71ac3e6 fix(core): update 2020-11-05 18:36:08 +00:00
3d6a421d25 3.0.8 2020-11-05 17:56:36 +00:00
a7fca4e0c1 fix(core): update 2020-11-05 17:56:35 +00:00
6 changed files with 37 additions and 20 deletions

2
package-lock.json generated
View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/websetup",
"version": "3.0.7",
"version": "3.0.9",
"lockfileVersion": 1,
"requires": true,
"dependencies": {

View File

@ -1,6 +1,6 @@
{
"name": "@pushrocks/websetup",
"version": "3.0.7",
"version": "3.0.9",
"private": false,
"description": "setup basic page properties",
"main": "dist_ts/index.js",

View File

@ -2,7 +2,7 @@ import * as plugins from '../websetup.plugins';
export interface IMetaObject {
title: string;
description: string;
description?: string;
canonicalDomain?: string;
ldCompany?: plugins.tsclass.business.ICompany;
ldProduct?: any;

View File

@ -11,7 +11,17 @@ export type TLevelState = 'enabled' | 'disabled';
export class TagLevel {
public tagManagerRef: TagManager;
public title: string;
private titleStore: string;
public set title(titleArg: string) {
this.titleStore = titleArg;
if (this.state === 'enabled') {
document.title = this.titleStore;
}
}
public get title() {
return this.titleStore;
}
public type: TBaseLevelType;
public tags: Tag[] = [];

View File

@ -6,22 +6,22 @@ import { JsonLdTag } from './websetup.classes.tag.jsonldtag';
import { OpengraphTag } from './websetup.classes.tag.opengraphtag';
export class TagManager {
public globalLevel: TagLevel;
public globalLevel: TagLevel = new TagLevel(this, 'global');
public baseLevel: TagLevel;
public baseLevel: TagLevel = new TagLevel(this, 'base');
public activeLevel: TagLevel;
public async setup(metaObjectArg: interfaces.IMetaObject) {
// global tag level
this.globalLevel = new TagLevel(this, 'global');
this.globalLevel.addTag(new MetaTag('google', 'notranslate'));
this.globalLevel.addTag(new MetaTag('revisit-after', '1 days'));
// base tag level
this.baseLevel = new TagLevel(this, 'base');
this.baseLevel.title = metaObjectArg.title;
this.baseLevel.addTag(new MetaTag('description', metaObjectArg.description));
if (metaObjectArg.description) {
this.baseLevel.addTag(new MetaTag('description', metaObjectArg.description));
}
if (metaObjectArg.canonicalDomain) {
this.baseLevel.addTag(new MetaTag('canonical', metaObjectArg.canonicalDomain));
@ -31,24 +31,27 @@ export class TagManager {
this.baseLevel.addCompanyInfo(metaObjectArg.ldCompany);
}
await this.globalLevel.enable();
await this.baseLevel.enable();
this.activeLevel = this.baseLevel;
await this.activeLevel.enable();
}
public setSubPageLevel(metaObjectArg: interfaces.IMetaObject) {
public async setSubPageLevel(metaObjectArg: interfaces.IMetaObject) {
const subPageLevel = new TagLevel(this, 'subpage');
subPageLevel.title = metaObjectArg.title;
subPageLevel.addTag(new MetaTag('description', metaObjectArg.description));
this.activeLevel.disable();
if (metaObjectArg.description) {
this.baseLevel.addTag(new MetaTag('description', metaObjectArg.description));
}
await this.activeLevel.disable();
this.activeLevel = subPageLevel;
this.activeLevel.enable();
await this.activeLevel.enable();
return subPageLevel;
}
public revertToBaseLevel() {
public async revertToBaseLevel() {
if (this.activeLevel !== this.baseLevel) {
this.activeLevel.disable();
await this.activeLevel.disable();
this.activeLevel = this.baseLevel;
this.activeLevel.enable();
await this.activeLevel.enable();
}
}
}

View File

@ -25,7 +25,10 @@ export class WebSetup {
/**
* an async setup called by the constructor
*/
private async setup() {
public async setup(optionsArg?: IWebSetupConstructorOptions) {
if (optionsArg) {
this.options = optionsArg;
}
await this.tagManager.setup(this.options.metaObject);
}
@ -40,7 +43,8 @@ export class WebSetup {
* sets a subpage
* @param metaObjectArg
*/
public setSubLevel(metaObjectArg: interfaces.IMetaObject) {
return this.tagManager.setSubPageLevel(metaObjectArg);
public async setSubLevel(metaObjectArg: interfaces.IMetaObject) {
const subLevel = await this.tagManager.setSubPageLevel(metaObjectArg);
return subLevel;
}
}