46 lines
1.4 KiB
TypeScript
46 lines
1.4 KiB
TypeScript
import * as plugins from './websetup.plugins';
|
|
import * as interfaces from './interfaces';
|
|
|
|
import { Tag } from './websetup.classes.tag';
|
|
|
|
export class JsonLdTag extends Tag {
|
|
public static createCompanyLd(companyDataArg: plugins.tsclass.business.ICompany) {
|
|
// lets care about linked data
|
|
const companyLd = {
|
|
'@context': 'https://schema.org',
|
|
'@type': 'Corporation',
|
|
name: companyDataArg.name,
|
|
alternateName: companyDataArg.name.replace(' GmbH', ''),
|
|
url: companyDataArg.contact.website,
|
|
logo: companyDataArg.contact.logoUrl,
|
|
contactPoint: {
|
|
'@type': 'ContactPoint',
|
|
telephone: companyDataArg.contact.phone,
|
|
contactType: 'customer service',
|
|
areaServed: 'DE',
|
|
availableLanguage: ['en', 'German'],
|
|
},
|
|
sameAs: [],
|
|
};
|
|
|
|
if (companyDataArg.contact.facebookUrl) {
|
|
companyLd.sameAs.push(companyDataArg.contact.facebookUrl);
|
|
}
|
|
|
|
if (companyDataArg.contact.twitterUrl) {
|
|
companyLd.sameAs.push(companyDataArg.contact.twitterUrl);
|
|
}
|
|
|
|
const ldTag = new JsonLdTag(companyLd);
|
|
return ldTag;
|
|
}
|
|
|
|
constructor(ldObjectArg: any) {
|
|
super();
|
|
const jsonLdElement = document.createElement('script');
|
|
jsonLdElement.type = 'application/ld+json';
|
|
jsonLdElement.text = JSON.stringify(JSON.stringify(ldObjectArg));
|
|
this.elementRef = jsonLdElement;
|
|
}
|
|
}
|