116 lines
2.4 KiB
TypeScript
116 lines
2.4 KiB
TypeScript
import {
|
|
DeesElement,
|
|
property,
|
|
html,
|
|
customElement,
|
|
type TemplateResult,
|
|
css,
|
|
cssManager,
|
|
unsafeCSS,
|
|
domtools,
|
|
} from "@design.estate/dees-element";
|
|
|
|
import * as plugins from "../plugins.js";
|
|
import { dedocumentSharedStyle } from "../style.js";
|
|
|
|
declare global {
|
|
interface HTMLElementTagNameMap {
|
|
"dedocument-pageheader": DePageHeader;
|
|
}
|
|
}
|
|
|
|
@customElement("dedocument-pageheader")
|
|
export class DePageHeader extends DeesElement {
|
|
public static demo = () => html`
|
|
<dedocument-pageheader .format="${"a4"}"></dedocument-pageheader>
|
|
`;
|
|
|
|
@property({
|
|
type: Object,
|
|
})
|
|
public letterData: plugins.tsclass.business.TLetter = null;
|
|
|
|
@property({
|
|
type: Object,
|
|
reflect: true,
|
|
})
|
|
documentSettings: plugins.shared.interfaces.IDocumentSettings;
|
|
|
|
@property({
|
|
type: Number,
|
|
})
|
|
public pageNumber: number = 1;
|
|
|
|
@property({
|
|
type: Number,
|
|
})
|
|
public pageTotalNumber: number = 1;
|
|
|
|
constructor() {
|
|
super();
|
|
domtools.DomTools.setupDomTools();
|
|
}
|
|
|
|
public static styles = [
|
|
domtools.elementBasic.staticStyles,
|
|
dedocumentSharedStyle,
|
|
css`
|
|
:host {
|
|
color: #333;
|
|
}
|
|
|
|
.topstripe {
|
|
position: absolute;
|
|
overflow: hidden;
|
|
top: 0px;
|
|
left: 0px;
|
|
right: 0px;
|
|
height: 130px;
|
|
color: #333;
|
|
text-align: center;
|
|
border-bottom: 2px solid #00000020;
|
|
}
|
|
.topstripe2 {
|
|
position: absolute;
|
|
overflow: hidden;
|
|
top: 130px;
|
|
left: auto;
|
|
right: var(--RIGHT-MARGIN);
|
|
height: 20px;
|
|
line-height: 20px;
|
|
color: #333;
|
|
font-size: 10px;
|
|
}
|
|
.topstripe .logo {
|
|
position: absolute;
|
|
bottom: 10px;
|
|
height: 25px;
|
|
left: auto;
|
|
right: var(--RIGHT-MARGIN);
|
|
font-family: "Courier New", Courier, monospace;
|
|
}
|
|
.topstripe .logo img {
|
|
position: relative;
|
|
height: 25px;
|
|
}
|
|
`,
|
|
];
|
|
|
|
public render(): TemplateResult {
|
|
return html`
|
|
<div class="topstripe">
|
|
<div class="logo">
|
|
${plugins.shared.translation.translate(
|
|
this.documentSettings.languageCode,
|
|
"empty.logo"
|
|
)}
|
|
</div>
|
|
</div>
|
|
<div class="topstripe2">
|
|
${this.letterData?.from?.description ||
|
|
"[no letterData.from.description set]"}
|
|
</div>
|
|
`;
|
|
}
|
|
}
|