Compare commits

...

19 Commits

Author SHA1 Message Date
dbca81987c 1.6.7
Some checks failed
Default (tags) / security (push) Failing after 0s
Default (tags) / test (push) Failing after 0s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-07 14:22:42 +01:00
2e3739e765 fix(document rendering): Fixed overflow issues in document and page elements 2024-12-07 14:22:42 +01:00
76d829f5c7 1.6.6
Some checks failed
Default (tags) / security (push) Failing after 0s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-07 13:55:10 +01:00
f0e4fe0521 fix(page-render): Fix layout scaling adjustment for page component 2024-12-07 13:55:10 +01:00
5b3b1f4624 1.6.5
Some checks failed
Default (tags) / security (push) Failing after 0s
Default (tags) / test (push) Failing after 0s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-05 20:23:20 +01:00
cf29de5650 fix(contentinvoice): Fix VAT group item number formatting and remove custom font style in invoice sums. 2024-12-05 20:23:19 +01:00
15573a85ec 1.6.4
Some checks failed
Default (tags) / security (push) Failing after 1s
Default (tags) / test (push) Failing after 0s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-05 20:20:30 +01:00
20abb7f837 fix(styling): Consolidated shared styles for consistent font applied across various components. 2024-12-05 20:20:29 +01:00
ebb6622637 1.6.3
Some checks failed
Default (tags) / security (push) Failing after 0s
Default (tags) / test (push) Failing after 1s
Default (tags) / release (push) Has been skipped
Default (tags) / metadata (push) Has been skipped
2024-12-05 19:31:17 +01:00
dead3eeaec fix(ui): Corrects font family in contentinvoice element. 2024-12-05 19:31:17 +01:00
23031d06b7 1.6.2 2024-12-05 01:42:06 +01:00
5b849b316f fix(translation): Corrected missing translation keys for VAT short form across multiple languages. 2024-12-05 01:42:05 +01:00
47b6d4f0b9 1.6.1 2024-12-05 01:39:42 +01:00
2464d28a19 fix(core): Ensure consistent project structure and code organization without additional changes. 2024-12-05 01:39:42 +01:00
784fe9ca74 1.6.0 2024-12-05 01:36:27 +01:00
83efcdd2b8 feat(documentSettings + translations + vat in itemLines): implements and fixes #2 2024-12-05 01:36:27 +01:00
f2d585ed36 update 2024-12-05 01:33:16 +01:00
9517687902 1.5.3 2024-12-02 17:05:03 +01:00
b5d3a72733 fix(elements): Update viewer attributes and fix font integration 2024-12-02 17:05:03 +01:00
20 changed files with 207 additions and 74 deletions

2
.npmrc
View File

@ -1 +1 @@
registry=https://verdaccio.nevermind.cloud/
registry=https://registry.npmjs.org/

View File

@ -1,5 +1,56 @@
# Changelog
## 2024-12-07 - 1.6.7 - fix(document rendering)
Fixed overflow issues in document and page elements
- Ensured content overflow handling in document.ts
- Adjusted page element overflow settings in page.ts
## 2024-12-07 - 1.6.6 - fix(page-render)
Fix layout scaling adjustment for page component
- Ensure `font-family` is no longer explicitly set to inherit in `DePage` component.
- Adjust scaling logic to properly set width and overflow based on calculated scale.
## 2024-12-05 - 1.6.5 - fix(contentinvoice)
Fix VAT group item number formatting and remove custom font style in invoice sums.
- Removed custom font-family style from the invoice sums.
- Corrected VAT group item numbers display by properly formatting and removing trailing comma.
## 2024-12-05 - 1.6.4 - fix(styling)
Consolidated shared styles for consistent font applied across various components.
- Added a shared style file for consistent font family across components
- Applied shared style to contentinvoice, letterheader, pagecontent, pagefooter, and pageheader components
## 2024-12-05 - 1.6.3 - fix(ui)
Corrects font family in contentinvoice element.
- Updated the font-family for line items in contentinvoice.ts
## 2024-12-05 - 1.6.2 - fix(translation)
Corrected missing translation keys for VAT short form across multiple languages.
- Fixed missing 'vatShort' translation for English, German, Spanish, French, and Italian in translation.ts file.
## 2024-12-05 - 1.6.1 - fix(core)
Ensure consistent project structure and code organization without additional changes.
## 2024-12-05 - 1.6.0 - feat(documentSettings + translations + vat in itemLines)
Updated dependencies in package.json
- Updated @types/node to version ^22.10.1
- Updated qrcode package to version ^1.5.4
## 2024-12-02 - 1.5.3 - fix(elements)
Update viewer attributes and fix font integration
- Updated viewer.ts to add missing property decorators for letterData and documentSettings.
- Fixed font loading by correcting URLs in index.html.
- Set demoDocumentSettings default header and footer to false.
## 2024-12-02 - 1.5.2 - fix(workflow)
Corrected Docker image references and package scope in YAML workflows for compatibility.

View File

@ -8,8 +8,8 @@
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!--Lets load standard fonts-->
<link rel="preconnect" href="https://" crossorigin>
<link rel="stylesheet" href="https:///fonts/fonts.css">
<link rel="preconnect" href="https://assetbroker.lossless.one/" crossorigin>
<link rel="stylesheet" href="https://assetbroker.lossless.one/fonts/fonts.css">
<style>
body {

View File

@ -1,6 +1,6 @@
{
"name": "@design.estate/dees-document",
"version": "1.5.2",
"version": "1.6.7",
"private": false,
"description": "A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.",
"main": "dist_ts_web/index.js",
@ -39,7 +39,7 @@
"@git.zone/tsbuild": "^2.2.0",
"@git.zone/tsbundle": "^2.1.0",
"@git.zone/tstest": "^1.0.90",
"@git.zone/tswatch": "^2.0.25",
"@git.zone/tswatch": "^2.0.34",
"@push.rocks/projectinfo": "^5.0.2",
"@push.rocks/tapbundle": "^5.5.3"
},

13
pnpm-lock.yaml generated
View File

@ -58,8 +58,8 @@ importers:
specifier: ^1.0.90
version: 1.0.90(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0))(@aws-sdk/credential-providers@3.699.0(@aws-sdk/client-sso-oidc@3.699.0(@aws-sdk/client-sts@3.699.0)))(socks@2.8.3)
'@git.zone/tswatch':
specifier: ^2.0.25
version: 2.0.25
specifier: ^2.0.34
version: 2.0.34
'@push.rocks/projectinfo':
specifier: ^5.0.2
version: 5.0.2
@ -607,8 +607,8 @@ packages:
resolution: {integrity: sha512-McytXK46GiReEps7wHWW6zOHYCFF4sywjj6auHjhGqzOogA2Wju1YtZRL+o+OAUb61kQxNFRras6Xg/4Zth0Bw==}
hasBin: true
'@git.zone/tswatch@2.0.25':
resolution: {integrity: sha512-2A2TzJhw5AHI2BUOEjtZJzNgmRDMKZc4+p+yCdgj3mYcD7l1XeM6HTTcyRTxGDrDXggVIWN1O+UxU6ftHg94ag==}
'@git.zone/tswatch@2.0.34':
resolution: {integrity: sha512-nwrJffX3aAf8DOfbWPXErskn4RTdQVaE4WLnV8QEU2WdNehI3KQCdVPYHcskl7eqatjbZdQEck39DItmNacGxw==}
hasBin: true
'@hapi/bourne@3.0.0':
@ -5070,7 +5070,7 @@ snapshots:
- supports-color
- utf-8-validate
'@git.zone/tswatch@2.0.25':
'@git.zone/tswatch@2.0.34':
dependencies:
'@api.global/typedserver': 3.0.51
'@git.zone/tsbundle': 2.1.0
@ -5080,12 +5080,15 @@ snapshots:
'@push.rocks/smartchok': 1.0.34
'@push.rocks/smartcli': 4.0.11
'@push.rocks/smartdelay': 3.0.5
'@push.rocks/smartfile': 11.0.21
'@push.rocks/smartlog': 3.0.7
'@push.rocks/smartlog-destination-local': 9.0.2
'@push.rocks/smartshell': 3.0.6
'@push.rocks/taskbuffer': 3.1.7
transitivePeerDependencies:
- bufferutil
- supports-color
- utf-8-validate
'@hapi/bourne@3.0.0': {}

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@design.estate/dees-document',
version: '1.5.2',
version: '1.6.7',
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
}

View File

@ -5,4 +5,5 @@ export interface IDocumentSettings {
enableDefaultHeader?: boolean;
enableDefaultFooter?: boolean;
languageCode?: translation.TLanguageCode;
vatGroupPositions?: boolean;
}

View File

@ -1,2 +1 @@
export * from './document.js';
export * from './translation.js';

View File

@ -1,19 +0,0 @@
export interface IDeDocumentTranslations {
address: string;
bankConnection: string;
contactInfo: string;
description: string;
invoice: string;
itemPos: string;
quantity: string;
registrationInfo: string;
reverseVatNote: string;
totalNetPrice: string;
unitNetPrice: string;
unitType: string;
yourCustomerId: string;
yourVatId: string;
continuesOnPage: string;
finalPageStatement: string;
page: string;
}

View File

@ -1,10 +1,7 @@
import * as interfaces from './interfaces/index.js';
type TTranslationImplementation = {
[key in keyof interfaces.IDeDocumentTranslations]: string;
}
export const EN_translations: TTranslationImplementation = {
// Define English translations without enforcing TTranslationImplementation yet
export const EN_translations = {
address: 'Address',
bankConnection: 'Bank Connection',
contactInfo: 'Contact Info',
@ -22,8 +19,18 @@ export const EN_translations: TTranslationImplementation = {
continuesOnPage: 'Continues on page',
finalPageStatement: 'This is the final page of this document.',
page: 'Page',
vatShort: 'VAT',
} as const;
// Infer keys of EN_translations
export type TTranslationKey = keyof typeof EN_translations;
// Define the type for all translations based on EN_translations keys
export type TTranslationImplementation = {
[key in TTranslationKey]: string;
};
// Define German translations
export const DE_translations: TTranslationImplementation = {
address: 'Adresse',
bankConnection: 'Bankverbindung',
@ -33,17 +40,20 @@ export const DE_translations: TTranslationImplementation = {
itemPos: 'Pos.',
quantity: 'Anzahl',
registrationInfo: 'HRA/HRB Info',
reverseVatNote: 'Umkehr der Umsatzsteuerpflicht: Der Rechnungsempfänger ist für die korrekte Abrechnung der Umsatzsteuer zuständig.',
totalNetPrice: 'Nettopreis Summe',
unitNetPrice: 'Nettopreis',
reverseVatNote:
'Umkehr der Umsatzsteuerpflicht: Der Rechnungsempfänger ist für die korrekte Abrechnung der Umsatzsteuer zuständig.',
totalNetPrice: 'Summe netto',
unitNetPrice: 'Einheit netto',
unitType: 'Einheit',
yourCustomerId: 'Ihre Kundennummer:',
yourVatId: 'Ihre Umsatzsteuer-ID:',
continuesOnPage: 'Fortsetzung auf Seite',
finalPageStatement: 'Dies ist die letzte Seite dieses Dokuments.',
page: 'Seite',
vatShort: 'USt',
};
// Define Spanish translations
export const ES_translations: TTranslationImplementation = {
address: 'Dirección',
bankConnection: 'Conexión bancaria',
@ -62,8 +72,10 @@ export const ES_translations: TTranslationImplementation = {
continuesOnPage: 'Continúa en la página',
finalPageStatement: 'Esta es la última página de este documento.',
page: 'Página',
vatShort: 'IVA',
};
// Define French translations
export const FR_translations: TTranslationImplementation = {
address: 'Adresse',
bankConnection: 'Coordonnées bancaires',
@ -72,18 +84,21 @@ export const FR_translations: TTranslationImplementation = {
invoice: 'Facture',
itemPos: 'Position',
quantity: 'Quantité',
registrationInfo: 'Informations d\'enregistrement',
reverseVatNote: 'La TVA s\'applique selon le mécanisme d\'autoliquidation et est à payer par le client.',
registrationInfo: "Informations d'enregistrement",
reverseVatNote:
"La TVA s'applique selon le mécanisme d'autoliquidation et est à payer par le client.",
totalNetPrice: 'Prix net total',
unitNetPrice: 'Prix unitaire net',
unitType: 'Type d\'unité',
unitType: "Type d'unité",
yourCustomerId: 'Votre numéro de client :',
yourVatId: 'Votre numéro de TVA :',
continuesOnPage: 'Continue sur la page',
finalPageStatement: 'Ceci est la dernière page de ce document.',
page: 'Page',
vatShort: 'TVA',
};
// Define Italian translations
export const IT_translations: TTranslationImplementation = {
address: 'Indirizzo',
bankConnection: 'Coordinate bancarie',
@ -93,7 +108,7 @@ export const IT_translations: TTranslationImplementation = {
itemPos: 'Pos.',
quantity: 'Quantità',
registrationInfo: 'Informazioni di registrazione',
reverseVatNote: 'L\'IVA è applicata con inversione contabile ed è a carico del cliente.',
reverseVatNote: "L'IVA è applicata con inversione contabile ed è a carico del cliente.",
totalNetPrice: 'Prezzo netto totale',
unitNetPrice: 'Prezzo netto unitario',
unitType: 'Tipo di unità',
@ -102,23 +117,27 @@ export const IT_translations: TTranslationImplementation = {
continuesOnPage: 'Continua alla pagina',
finalPageStatement: 'Questa è l\'ultima pagina di questo documento.',
page: 'Pagina',
vatShort: 'IVA',
};
export const languageCodeMap = {
'DE': DE_translations,
'EN': EN_translations,
'ES': ES_translations,
'FR': FR_translations,
'IT': IT_translations,
// Language Code Map
export const languageCodeMap: Record<string, TTranslationImplementation> = {
EN: EN_translations,
DE: DE_translations,
ES: ES_translations,
FR: FR_translations,
IT: IT_translations,
};
// Language Code Type
export type TLanguageCode = keyof typeof languageCodeMap;
export const translate = (languageCode: TLanguageCode, key: string, defaultValue: string) => {
// Translate Function
export const translate = (
languageCode: TLanguageCode,
key: TTranslationKey,
defaultValue: string
): string => {
const translations = languageCodeMap[languageCode] || EN_translations;
if (translations && translations[key]) {
return translations[key];
} else {
return defaultValue;
}
return translations[key] || defaultValue;
};

View File

@ -3,6 +3,6 @@
*/
export const commitinfo = {
name: '@design.estate/dees-document',
version: '1.5.2',
version: '1.6.7',
description: 'A sophisticated framework for dynamically generating and rendering business documents like invoices with modern web technologies, featuring PDF creation, templating, and automation.'
}

View File

@ -16,6 +16,8 @@ import {
} from '@design.estate/dees-element';
import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global {
interface HTMLElementTagNameMap {
@ -56,6 +58,7 @@ export class DeContentInvoice extends DeesElement {
public static styles = [
domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css`
:host {
color: #333;
@ -204,7 +207,7 @@ export class DeContentInvoice extends DeesElement {
<style>
.grid {
display: grid;
grid-template-columns: 40px auto 80px 80px 90px 90px;
grid-template-columns: 40px auto 60px 60px 84px 84px 46px;
}
.topLine {
margin-top: 5px;
@ -214,6 +217,11 @@ export class DeContentInvoice extends DeesElement {
.lineItem {
font-size: 12px;
padding: 5px;
border-right: 1px dashed #ccc;
}
.lineItem.rightAlign {
text-align: right;
}
.invoiceLine {
@ -279,26 +287,30 @@ export class DeContentInvoice extends DeesElement {
</style>
<div>We hereby invoice products and services provided to you by Lossless GmbH:</div>
<div class="grid topLine dataHeader">
<div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'itemPos', 'Item Pos.')}</div>
<div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'itemPos', 'Item Pos.')}</div>
<div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'description', 'Description')}</div>
<div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'quantity', 'Quantity')}</div>
<div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'quantity', 'Quantity')}</div>
<div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'unitType', 'Unit Type')}</div>
<div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'unitNetPrice', 'Unit Net Price')}</div>
<div class="lineItem">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'totalNetPrice', 'Total Net Price')}</div>
<div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'unitNetPrice', 'Unit Net Price')}</div>
<div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'totalNetPrice', 'Total Net Price')}</div>
<div class="lineItem rightAlign">${plugins.shared.translation.translate(this.documentSettings.languageCode, 'vatShort', 'VAT')}</div>
</div>
${(() => {
let counter = 1;
return this.letterData?.content.invoiceData?.items?.map(
(invoiceItem) => html`
<div class="grid invoiceLine needsDataHeader">
<div class="lineItem">${counter++}</div>
<div class="lineItem rightAlign">${counter++}</div>
<div class="lineItem">${invoiceItem.name}</div>
<div class="lineItem">${invoiceItem.unitQuantity}</div>
<div class="lineItem rightAlign">${invoiceItem.unitQuantity}</div>
<div class="lineItem">${invoiceItem.unitType}</div>
<div class="lineItem">${invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}</div>
<div class="lineItem">
<div class="lineItem rightAlign">${invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}</div>
<div class="lineItem rightAlign">
${invoiceItem.unitQuantity * invoiceItem.unitNetPrice} ${this.letterData?.content.invoiceData.currency}
</div>
<div class="lineItem rightAlign">
${invoiceItem.vatPercentage}%
</div>
</div>
`
);
@ -310,15 +322,19 @@ export class DeContentInvoice extends DeesElement {
</div>
${this.getVatGroups().map((vatGroupArg) => {
let itemNumbers = '';
let first = true;
for (const item of vatGroupArg.items) {
const itemIndex = this.letterData.content.invoiceData.items.indexOf(item);
itemNumbers += ` ${itemIndex + 1},`;
itemNumbers += `${first ? '' : ', '}${itemIndex + 1}`;
first = false;
}
return html`
<div class="sumline">
<div class="label">
Vat ${vatGroupArg.vatPercentage}%<br />
<span style="font-weight: normal">(on item positions: ${itemNumbers})</span>
Vat ${vatGroupArg.vatPercentage}%
${this.documentSettings.vatGroupPositions ? html`
<br /><span style="font-weight: normal">(on item positions: ${itemNumbers})</span>
` : html``}
</div>
<div class="value">${vatGroupArg.vatAmountSum} EUR</div>
</div>

View File

@ -16,6 +16,8 @@ export const defaultDocumentSettings: plugins.shared.interfaces.IDocumentSetting
enableTopDraftText: true,
enableDefaultHeader: true,
enableDefaultFooter: true,
languageCode: 'EN',
vatGroupPositions: true,
};
@ -97,6 +99,7 @@ export class DeDocument extends DeesElement {
color: #333;
padding: 0px;
position: relative;
font-family: 'Dees Sans', sans-serif;
}
.betweenPagesSpacer {
@ -112,6 +115,36 @@ export class DeDocument extends DeesElement {
}
public async firstUpdated(_changedProperties: Map<string | number | symbol, unknown>) {
domtools.plugins.smartdelay.delayFor(0).then(async () => {
this.documentSettings = {
...defaultDocumentSettings,
...this.documentSettings,
}
while (false) {
await domtools.plugins.smartdelay.delayFor(1000);
this.letterData = {
...this.letterData,
content: {
...this.letterData.content,
invoiceData: {
...this.letterData.content.invoiceData,
items: [
...this.letterData.content.invoiceData.items,
{
name: 'Test Item',
unitQuantity: 1,
unitNetPrice: 100,
unitType: 'hours',
vatPercentage: 19,
position: 1,
},
],
},
}
}
}
});
const resizeObserver = new ResizeObserver((entries) => {
for (const entry of entries) {
const width = entry.contentRect.width;
@ -126,13 +159,19 @@ export class DeDocument extends DeesElement {
})
}
public latestDocumentSettings: plugins.shared.interfaces.IDocumentSettings = null;
public latestRenderedLetterData: plugins.tsclass.business.ILetter = null;
public async renderDocument() {
this.latestDocumentSettings = this.documentSettings;
this.latestRenderedLetterData = this.letterData;
console.log(`rendering with settings:`);
console.log(this.latestDocumentSettings);
const domtools = await this.domtoolsPromise;
const documentBuildContainer = document.createElement('div');
document.body.appendChild(documentBuildContainer);
@ -199,13 +238,13 @@ export class DeDocument extends DeesElement {
}
}
this.adjustDePageScaling();
this.latestRenderedLetterData = this.letterData;
}
async updated(changedProperties: Map<string | number | symbol, unknown>): Promise<void> {
super.updated(changedProperties);
const domtools = await this.domtoolsPromise;
const renderedDocIsUpToDate = domtools.convenience.smartjson.deepEqualObjects(this.letterData, this.latestRenderedLetterData);
let renderedDocIsUpToDate = domtools.convenience.smartjson.deepEqualObjects(this.letterData, this.latestRenderedLetterData)
&& domtools.convenience.smartjson.deepEqualObjects(this.documentSettings, this.latestDocumentSettings);
if (!renderedDocIsUpToDate) {
this.renderDocument();
}

View File

@ -11,6 +11,7 @@ import {
} from '@design.estate/dees-element';
import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global {
interface HTMLElementTagNameMap {
@ -49,6 +50,7 @@ export class DeLetterHeader extends DeesElement {
public static styles = [
domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css`
:host {
color: #333;

View File

@ -77,6 +77,7 @@ export class DePage extends DeesElement {
css`
:host {
display: block;
overflow: hidden;
}
#scaleWrapper {
@ -211,7 +212,7 @@ export class DePage extends DeesElement {
// Adjust the outer dimensions so they match the scaled content
// this.style.width = `${shared.a4Width * scale}px`;
this.style.width = `${plugins.shared.a4Width * scale}px`;
this.style.height = `${plugins.shared.a4Height * scale}px`;
}
}

View File

@ -11,6 +11,7 @@ import {
} from '@design.estate/dees-element';
import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global {
interface HTMLElementTagNameMap {
@ -46,6 +47,7 @@ export class DePageContent extends DeesElement {
public static styles = [
domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css`
:host {
color: #333;

View File

@ -11,6 +11,7 @@ import {
} from '@design.estate/dees-element';
import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global {
interface HTMLElementTagNameMap {
@ -52,6 +53,7 @@ export class DePageFooter extends DeesElement {
public static styles = [
domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css`
:host {
color: #333;

View File

@ -11,6 +11,7 @@ import {
} from '@design.estate/dees-element';
import * as plugins from '../plugins.js';
import { dedocumentSharedStyle } from '../style.js';
declare global {
interface HTMLElementTagNameMap {
@ -52,6 +53,7 @@ export class DePageHeader extends DeesElement {
public static styles = [
domtools.elementBasic.staticStyles,
dedocumentSharedStyle,
css`
:host {
color: #333;

View File

@ -1,6 +1,6 @@
import * as plugins from '../plugins.js';
import { DeesElement, css, cssManager, customElement, html } from '@design.estate/dees-element';
import { DeesElement, css, cssManager, customElement, html, property } from '@design.estate/dees-element';
import { demoFunc } from './viewer.demo.js';
declare global {
@ -15,8 +15,16 @@ export class DeDocumentViewer extends DeesElement {
public static demo = demoFunc;
// INSTANCE
@property({
type: Object,
reflect: true,
})
public letterData: plugins.tsclass.business.ILetter = null;
@property({
type: Object,
reflect: true,
})
public documentSettings: plugins.shared.interfaces.IDocumentSettings;
public static styles = [

7
ts_web/style.ts Normal file
View File

@ -0,0 +1,7 @@
import { css } from '@design.estate/dees-element';
export const dedocumentSharedStyle = css`
:host {
font-family: 'Exo 2';
}
`;