@dangl/angular-ava 1.0.1-beta0009 → 1.0.1-beta0021
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/ava-tree/invoice/invoice-display/invoice-display.component.mjs +68 -0
- package/esm2022/lib/ava-tree/tree/constants/defaultTextWordInvoice.mjs +77 -0
- package/esm2022/lib/ava-tree/tree/constants/index.mjs +3 -2
- package/esm2022/lib/ava-tree/tree/model/index.mjs +1 -1
- package/esm2022/lib/ava-tree/tree/model/invoice-models.mjs +46 -0
- package/esm2022/lib/ava-tree/tree/model/invoice-words.model.mjs +2 -0
- package/esm2022/lib/version.mjs +7 -7
- package/esm2022/public-api.mjs +3 -1
- package/fesm2022/dangl-angular-ava.mjs +150 -9
- package/fesm2022/dangl-angular-ava.mjs.map +1 -1
- package/lib/ava-tree/invoice/invoice-display/invoice-display.component.d.ts +54 -0
- package/lib/ava-tree/tree/constants/defaultTextWordInvoice.d.ts +3 -0
- package/lib/ava-tree/tree/constants/index.d.ts +2 -1
- package/lib/ava-tree/tree/model/index.d.ts +2 -1
- package/lib/ava-tree/tree/model/invoice-models.d.ts +389 -0
- package/lib/ava-tree/tree/model/invoice-words.model.d.ts +38 -0
- package/package.json +1 -1
- package/public-api.d.ts +2 -0
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i3 from '@angular/common';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { CommonModule, CurrencyPipe, DatePipe } from '@angular/common';
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
|
-
import { Injectable, inject, Directive, Input, Pipe, Component, EventEmitter, Self, Output, ViewChild, NgModule } from '@angular/core';
|
|
4
|
+
import { Injectable, inject, Directive, Input, Pipe, Component, EventEmitter, Self, Output, ViewChild, NgModule, input, ChangeDetectionStrategy } from '@angular/core';
|
|
5
5
|
import * as i5 from '@angular/forms';
|
|
6
6
|
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
7
7
|
import * as i11 from '@angular/material/button';
|
|
@@ -251,6 +251,83 @@ const DEFAULT_FILTERS = [
|
|
|
251
251
|
}
|
|
252
252
|
];
|
|
253
253
|
|
|
254
|
+
const DEFAULT_TEXT_WORD_INVOICE = {
|
|
255
|
+
invoiceTitle: 'Invoice',
|
|
256
|
+
vatId: 'VAT ID',
|
|
257
|
+
detailsInvoiceNumber: 'Invoice Number',
|
|
258
|
+
detailsInvoiceDate: 'Invoice Date',
|
|
259
|
+
detailsPaymentDueDate: 'Due Date',
|
|
260
|
+
detailsCurrencyCode: 'Currency',
|
|
261
|
+
detailsPaymentTerms: 'Payment Terms',
|
|
262
|
+
referencesTopic: 'References',
|
|
263
|
+
referencesBuyerReference: 'Buyer Reference',
|
|
264
|
+
referencesProjectReference: 'Project Reference',
|
|
265
|
+
referencesContractReference: 'Contract Reference',
|
|
266
|
+
referencesPurchaseOrderReference: 'Purchase Order Reference',
|
|
267
|
+
referencesSalesOrderReference: 'Sales Order Reference',
|
|
268
|
+
referencesReceivingAdviceReference: 'Receiving Advice Reference',
|
|
269
|
+
referencesDispatchAdviceReference: 'Dispatch Advice Reference',
|
|
270
|
+
referencesTenderOrLotReference: 'Tender or Lot Reference',
|
|
271
|
+
referencesInvoicedObjectIdentifier: 'Invoiced Object Identifier',
|
|
272
|
+
tableHeadDescription: 'Description',
|
|
273
|
+
tableHeadQuantity: 'Quantity',
|
|
274
|
+
tableHeadUnit: 'Unit',
|
|
275
|
+
tableHeadNetPrice: 'Net Price',
|
|
276
|
+
tableHeadNetAmount: 'Net Amount',
|
|
277
|
+
totalsTopic: 'Totals',
|
|
278
|
+
totalsTotalNet: 'Total Net',
|
|
279
|
+
totalsTotalAllowances: 'Total Allowances',
|
|
280
|
+
totalsTotalCharges: 'Total Charges',
|
|
281
|
+
totalsTotalAfterDeductions: 'Total After Deductions',
|
|
282
|
+
totalsTotalVatAmount: 'Total VAT Amount',
|
|
283
|
+
totalsTotalGross: 'Total Gross',
|
|
284
|
+
totalsAlreadyPaidTotal: 'Already Paid Total',
|
|
285
|
+
totalsTotalToBePaid: 'Total to be Paid',
|
|
286
|
+
instructionsTopic: 'Payment Instructions',
|
|
287
|
+
instructionsAccountIdentifier: 'Account Identifier',
|
|
288
|
+
instructionsAccountName: 'Account Name',
|
|
289
|
+
instructionsServiceProviderIdentifier: 'Service Provider Identifier',
|
|
290
|
+
notesTopic: 'Notes'
|
|
291
|
+
};
|
|
292
|
+
const germanTextsInvoice = {
|
|
293
|
+
invoiceTitle: 'InvoiceDE',
|
|
294
|
+
vatId: 'VAT_ID DE',
|
|
295
|
+
detailsInvoiceNumber: 'Invoice Number DE',
|
|
296
|
+
detailsInvoiceDate: 'Invoice Date DE',
|
|
297
|
+
detailsPaymentDueDate: 'Due Date DE',
|
|
298
|
+
detailsCurrencyCode: 'Currency DE',
|
|
299
|
+
detailsPaymentTerms: 'Payment Terms DE',
|
|
300
|
+
referencesTopic: 'References DE',
|
|
301
|
+
referencesBuyerReference: 'Buyer Reference DE',
|
|
302
|
+
referencesProjectReference: 'Project Reference DE',
|
|
303
|
+
referencesContractReference: 'Contract Reference DE',
|
|
304
|
+
referencesPurchaseOrderReference: 'Purchase Order Reference DE',
|
|
305
|
+
referencesSalesOrderReference: 'Sales Order Reference DE',
|
|
306
|
+
referencesReceivingAdviceReference: 'Receiving Advice Reference DE',
|
|
307
|
+
referencesDispatchAdviceReference: 'Dispatch Advice Reference DE',
|
|
308
|
+
referencesTenderOrLotReference: 'Tender or Lot Reference DE',
|
|
309
|
+
referencesInvoicedObjectIdentifier: 'Invoiced Object Identifier DE',
|
|
310
|
+
tableHeadDescription: 'Description DE',
|
|
311
|
+
tableHeadQuantity: 'Quantity DE',
|
|
312
|
+
tableHeadUnit: 'Unit DE',
|
|
313
|
+
tableHeadNetPrice: 'Net Price DE',
|
|
314
|
+
tableHeadNetAmount: 'Net Amount DE',
|
|
315
|
+
totalsTopic: 'Totals DE',
|
|
316
|
+
totalsTotalNet: 'Total Net DE',
|
|
317
|
+
totalsTotalAllowances: 'Total Allowances DE',
|
|
318
|
+
totalsTotalCharges: 'Total Charges DE',
|
|
319
|
+
totalsTotalAfterDeductions: 'Total After Deductions DE',
|
|
320
|
+
totalsTotalVatAmount: 'Total VAT Amount DE',
|
|
321
|
+
totalsTotalGross: 'Total Gross DE',
|
|
322
|
+
totalsAlreadyPaidTotal: 'Already Paid Total DE',
|
|
323
|
+
totalsTotalToBePaid: 'Total to be Paid DE',
|
|
324
|
+
instructionsTopic: 'Payment Instructions DE',
|
|
325
|
+
instructionsAccountIdentifier: 'Account Identifier DE',
|
|
326
|
+
instructionsAccountName: 'Account Name DE',
|
|
327
|
+
instructionsServiceProviderIdentifier: 'Service Provider Identifier DE',
|
|
328
|
+
notesTopic: 'Notes DE'
|
|
329
|
+
};
|
|
330
|
+
|
|
254
331
|
const DEFAULT_TEXT_WORDS = {
|
|
255
332
|
textSearch: 'Suche',
|
|
256
333
|
textNothing: 'Nichts',
|
|
@@ -1569,14 +1646,78 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
1569
1646
|
|
|
1570
1647
|
// This file is automatically generated as part of the build process
|
|
1571
1648
|
const version = {
|
|
1572
|
-
version: "1.0.1-
|
|
1573
|
-
commitInfo: "Branch.develop.Sha.
|
|
1574
|
-
commitDate: "2024-
|
|
1575
|
-
commitHash: "
|
|
1576
|
-
informationalVersion: "1.0.1-beta.
|
|
1577
|
-
buildDateUtc: new Date(Date.UTC(2024,
|
|
1649
|
+
version: "1.0.1-beta0021",
|
|
1650
|
+
commitInfo: "Branch.develop.Sha.bd4417c698c3e2911307cc58c7cffd3ed9bde764",
|
|
1651
|
+
commitDate: "2024-07-08",
|
|
1652
|
+
commitHash: "bd4417c698c3e2911307cc58c7cffd3ed9bde764",
|
|
1653
|
+
informationalVersion: "1.0.1-beta.21+Branch.develop.Sha.bd4417c698c3e2911307cc58c7cffd3ed9bde764",
|
|
1654
|
+
buildDateUtc: new Date(Date.UTC(2024, 6, 8, 13, 27, 38))
|
|
1578
1655
|
};
|
|
1579
1656
|
|
|
1657
|
+
class InvoiceDisplayComponent {
|
|
1658
|
+
/**
|
|
1659
|
+
* You can supply a map of strings to be used for the text in the tree. This allows you to translate
|
|
1660
|
+
* the text in the tree to other languages.
|
|
1661
|
+
* {
|
|
1662
|
+
* invoiceTitle?: string;
|
|
1663
|
+
* vatId?: string;
|
|
1664
|
+
* detailsInvoiceNumber?: string;
|
|
1665
|
+
* detailsInvoiceDate?: string;
|
|
1666
|
+
* detailsPaymentDueDate?: string;
|
|
1667
|
+
* detailsCurrencyCode?: string;
|
|
1668
|
+
* detailsPaymentTerms?: string;
|
|
1669
|
+
* referencesTopic?: string;
|
|
1670
|
+
* referencesBuyerReference?: string;
|
|
1671
|
+
* referencesProjectReference?: string;
|
|
1672
|
+
* referencesContractReference?: string;
|
|
1673
|
+
* referencesPurchaseOrderReference?: string;
|
|
1674
|
+
* referencesSalesOrderReference?: string;
|
|
1675
|
+
* referencesReceivingAdviceReference?: string;
|
|
1676
|
+
* referencesDispatchAdviceReference?: string;
|
|
1677
|
+
* referencesTenderOrLotReference?: string;
|
|
1678
|
+
* referencesInvoicedObjectIdentifier?: string;
|
|
1679
|
+
* tableHeadDescription?: string;
|
|
1680
|
+
* tableHeadQuantity?: string;
|
|
1681
|
+
* tableHeadUnit?: string;
|
|
1682
|
+
* tableHeadNetPrice?: string;
|
|
1683
|
+
* tableHeadNetAmount?: string;
|
|
1684
|
+
* totalsTopic?: string;
|
|
1685
|
+
* totalsTotalNet?: string;
|
|
1686
|
+
* totalsTotalAllowances?: string;
|
|
1687
|
+
* totalsTotalCharges?: string;
|
|
1688
|
+
* totalsTotalAfterDeductions?: string;
|
|
1689
|
+
* totalsTotalVatAmount?: string;
|
|
1690
|
+
* totalsTotalGross?: string;
|
|
1691
|
+
* totalsAlreadyPaidTotal?: string;
|
|
1692
|
+
* totalsTotalToBePaid?: string;
|
|
1693
|
+
* instructionsTopic?: string;
|
|
1694
|
+
* instructionsAccountIdentifier?: string;
|
|
1695
|
+
* instructionsAccountName?: string;
|
|
1696
|
+
* instructionsServiceProviderIdentifier?: string;
|
|
1697
|
+
* notesTopic?: string;
|
|
1698
|
+
* }
|
|
1699
|
+
*/
|
|
1700
|
+
set textWords(words) {
|
|
1701
|
+
this._textWords = { ...this.textWords, ...words };
|
|
1702
|
+
} // allow to translate all texts to other language
|
|
1703
|
+
get textWords() {
|
|
1704
|
+
return this._textWords;
|
|
1705
|
+
}
|
|
1706
|
+
constructor() {
|
|
1707
|
+
this.invoice = input.required();
|
|
1708
|
+
this._textWords = null;
|
|
1709
|
+
this._textWords = { ...DEFAULT_TEXT_WORD_INVOICE };
|
|
1710
|
+
}
|
|
1711
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: InvoiceDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1712
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: InvoiceDisplayComponent, isStandalone: true, selector: "ava-invoice-display", inputs: { invoice: { classPropertyName: "invoice", publicName: "invoice", isSignal: true, isRequired: true, transformFunction: null }, textWords: { classPropertyName: "textWords", publicName: "textWords", isSignal: false, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"invoice-container\">\n <!-- Seller and Buyer Information -->\n <h1 class=\"invoice-title\">{{ textWords?.invoiceTitle }}</h1>\n <header class=\"invoice-header\">\n <div class=\"seller-info\">\n <p>\n <strong>{{ invoice().seller?.name }}</strong>\n </p>\n <p>{{ invoice().seller?.address }}</p>\n <p>{{ invoice().seller?.city }}, {{ invoice().seller?.zipCode }}</p>\n <p>{{ invoice().seller?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().seller?.vatId }}\n </p>\n </div>\n <div class=\"invoice-details\">\n <p>\n <strong>{{ textWords?.detailsInvoiceNumber }}:</strong> {{ invoice().invoiceNumber }}\n </p>\n <p>\n <strong>{{ textWords?.detailsInvoiceDate }}:</strong> {{ invoice().invoiceDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentDueDate }}:</strong> {{ invoice().paymentDueDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsCurrencyCode }}:</strong> {{ invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentTerms }}:</strong> {{ invoice().paymentTerms }}\n </p>\n </div>\n <div class=\"buyer-info\">\n <p>\n <strong>{{ invoice().buyer?.name }}</strong>\n </p>\n <p>{{ invoice().buyer?.address }}</p>\n <p>{{ invoice().buyer?.city }}, {{ invoice().buyer?.zipCode }}</p>\n <p>{{ invoice().buyer?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().buyer?.vatId }}\n </p>\n </div>\n </header>\n\n <section class=\"invoice-references\">\n <h2>{{ textWords?.referencesTopic }}</h2>\n <p>\n <strong>{{ textWords?.referencesBuyerReference }}:</strong> {{ invoice().references?.buyerReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesProjectReference }}:</strong> {{ invoice().references?.projectReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesContractReference }}:</strong> {{ invoice().references?.contractReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesPurchaseOrderReference }}:</strong> {{ invoice().references?.purchaseOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesSalesOrderReference }}:</strong> {{ invoice().references?.salesOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesReceivingAdviceReference }}:</strong> {{ invoice().references?.receivingAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesDispatchAdviceReference }}:</strong> {{ invoice().references?.dispatchAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesTenderOrLotReference }}:</strong> {{ invoice().references?.tenderOrLotReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesInvoicedObjectIdentifier }}:</strong> {{ invoice().references?.invoicedObjectIdentifier }}\n </p>\n </section>\n\n <table class=\"invoice-table\">\n <thead>\n <tr>\n <th>#</th>\n <th>{{ textWords?.tableHeadDescription }}</th>\n <th>{{ textWords?.tableHeadQuantity }}</th>\n <th>{{ textWords?.tableHeadUnit }}</th>\n <th>{{ textWords?.tableHeadNetPrice }}</th>\n <th>{{ textWords?.tableHeadNetAmount }}</th>\n </tr>\n </thead>\n <tbody>\n @for (item of invoice().lineItems; track item; let i = $index) {\n <tr>\n <td>{{ i + 1 }}</td>\n <td>{{ item.itemInformation?.description }}</td>\n <td>{{ item.quantity }}</td>\n <td>{{ item.unitCode }}</td>\n <td>{{ item.priceDetails?.netPrice | currency: invoice().currencyCode }}</td>\n <td>{{ item.netAmount | currency: invoice().currencyCode }}</td>\n </tr>\n }\n </tbody>\n </table>\n\n <div class=\"addition-info\">\n <section class=\"invoice-totals\">\n <h2>{{ textWords?.totalsTopic }}</h2>\n <p>\n <strong>{{ textWords?.totalsTotalNet }}:</strong> {{ invoice().totals?.totalNet | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAllowances }}:</strong> {{ invoice().totals?.totalAllowances | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalCharges }}:</strong> {{ invoice().totals?.totalCharges | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAfterDeductions }}:</strong>\n {{ invoice().totals?.totalAfterDeductions | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalVatAmount }}:</strong> {{ invoice().totals?.totalVatAmount | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalGross }}:</strong> {{ invoice().totals?.totalGross | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsAlreadyPaidTotal }}:</strong>\n {{ invoice().totals?.alreadyPaidTotal | currency: invoice().currencyCode }}\n </p>\n <p class=\"total\">\n <strong>{{ textWords?.totalsTotalToBePaid }}:</strong>\n <strong> {{ invoice().totals?.totalToBePaid | currency: invoice().currencyCode }}</strong>\n </p>\n </section>\n\n <section class=\"payment-instructions\">\n <h2>{{ textWords?.instructionsTopic }}</h2>\n <p>{{ invoice().paymentInstructions?.description }}</p>\n @for (means of invoice().paymentInstructions?.paymentMeans; track means) {\n <div>\n <p>\n <strong>{{ textWords?.instructionsAccountIdentifier }}:</strong> {{ means.accountIdentifier }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsAccountName }}:</strong> {{ means.accountName }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsServiceProviderIdentifier }}:</strong> {{ means.serviceProviderIdentifier }}\n </p>\n </div>\n }\n </section>\n </div>\n\n <section class=\"invoice-notes\">\n <h2>{{ textWords?.notesTopic }}</h2>\n @for (note of invoice().invoiceNotes; track note) {\n <div>\n <p>\n <strong>{{ note.shortText }}</strong>\n </p>\n <p>{{ note.longText }}</p>\n </div>\n }\n </section>\n</div>\n", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}.invoice-container{width:100%;max-width:800px;margin:auto;font-family:Arial,sans-serif;line-height:1.5}.invoice-header{display:flex;justify-content:space-between;margin-bottom:20px}.seller-info,.buyer-info,.invoice-details{width:30%}.invoice-title{font-size:48px;margin:20px 0}.invoice-references,.invoice-totals,.payment-instructions,.invoice-notes{margin:20px 0}.invoice-table{width:100%;border-collapse:collapse;margin:20px 0}.invoice-table th,.invoice-table td{border:1px solid #000;padding:8px;text-align:left}.invoice-table th{background-color:#00acc1}.invoice-totals p,.payment-instructions p,.invoice-notes p{margin:5px 0}h2{font-size:18px;margin-bottom:10px}.addition-info{display:flex;justify-content:space-between}.total{background-color:#bdbdbd}\n"], dependencies: [{ kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
1713
|
+
}
|
|
1714
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: InvoiceDisplayComponent, decorators: [{
|
|
1715
|
+
type: Component,
|
|
1716
|
+
args: [{ selector: 'ava-invoice-display', standalone: true, imports: [CurrencyPipe, DatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"invoice-container\">\n <!-- Seller and Buyer Information -->\n <h1 class=\"invoice-title\">{{ textWords?.invoiceTitle }}</h1>\n <header class=\"invoice-header\">\n <div class=\"seller-info\">\n <p>\n <strong>{{ invoice().seller?.name }}</strong>\n </p>\n <p>{{ invoice().seller?.address }}</p>\n <p>{{ invoice().seller?.city }}, {{ invoice().seller?.zipCode }}</p>\n <p>{{ invoice().seller?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().seller?.vatId }}\n </p>\n </div>\n <div class=\"invoice-details\">\n <p>\n <strong>{{ textWords?.detailsInvoiceNumber }}:</strong> {{ invoice().invoiceNumber }}\n </p>\n <p>\n <strong>{{ textWords?.detailsInvoiceDate }}:</strong> {{ invoice().invoiceDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentDueDate }}:</strong> {{ invoice().paymentDueDate | date: 'dd.MM.yyyy' }}\n </p>\n <p>\n <strong>{{ textWords?.detailsCurrencyCode }}:</strong> {{ invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.detailsPaymentTerms }}:</strong> {{ invoice().paymentTerms }}\n </p>\n </div>\n <div class=\"buyer-info\">\n <p>\n <strong>{{ invoice().buyer?.name }}</strong>\n </p>\n <p>{{ invoice().buyer?.address }}</p>\n <p>{{ invoice().buyer?.city }}, {{ invoice().buyer?.zipCode }}</p>\n <p>{{ invoice().buyer?.countryCode }}</p>\n <p>\n <strong>{{ textWords?.vatId }}:</strong> {{ invoice().buyer?.vatId }}\n </p>\n </div>\n </header>\n\n <section class=\"invoice-references\">\n <h2>{{ textWords?.referencesTopic }}</h2>\n <p>\n <strong>{{ textWords?.referencesBuyerReference }}:</strong> {{ invoice().references?.buyerReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesProjectReference }}:</strong> {{ invoice().references?.projectReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesContractReference }}:</strong> {{ invoice().references?.contractReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesPurchaseOrderReference }}:</strong> {{ invoice().references?.purchaseOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesSalesOrderReference }}:</strong> {{ invoice().references?.salesOrderReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesReceivingAdviceReference }}:</strong> {{ invoice().references?.receivingAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesDispatchAdviceReference }}:</strong> {{ invoice().references?.dispatchAdviceReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesTenderOrLotReference }}:</strong> {{ invoice().references?.tenderOrLotReference }}\n </p>\n <p>\n <strong>{{ textWords?.referencesInvoicedObjectIdentifier }}:</strong> {{ invoice().references?.invoicedObjectIdentifier }}\n </p>\n </section>\n\n <table class=\"invoice-table\">\n <thead>\n <tr>\n <th>#</th>\n <th>{{ textWords?.tableHeadDescription }}</th>\n <th>{{ textWords?.tableHeadQuantity }}</th>\n <th>{{ textWords?.tableHeadUnit }}</th>\n <th>{{ textWords?.tableHeadNetPrice }}</th>\n <th>{{ textWords?.tableHeadNetAmount }}</th>\n </tr>\n </thead>\n <tbody>\n @for (item of invoice().lineItems; track item; let i = $index) {\n <tr>\n <td>{{ i + 1 }}</td>\n <td>{{ item.itemInformation?.description }}</td>\n <td>{{ item.quantity }}</td>\n <td>{{ item.unitCode }}</td>\n <td>{{ item.priceDetails?.netPrice | currency: invoice().currencyCode }}</td>\n <td>{{ item.netAmount | currency: invoice().currencyCode }}</td>\n </tr>\n }\n </tbody>\n </table>\n\n <div class=\"addition-info\">\n <section class=\"invoice-totals\">\n <h2>{{ textWords?.totalsTopic }}</h2>\n <p>\n <strong>{{ textWords?.totalsTotalNet }}:</strong> {{ invoice().totals?.totalNet | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAllowances }}:</strong> {{ invoice().totals?.totalAllowances | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalCharges }}:</strong> {{ invoice().totals?.totalCharges | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalAfterDeductions }}:</strong>\n {{ invoice().totals?.totalAfterDeductions | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalVatAmount }}:</strong> {{ invoice().totals?.totalVatAmount | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsTotalGross }}:</strong> {{ invoice().totals?.totalGross | currency: invoice().currencyCode }}\n </p>\n <p>\n <strong>{{ textWords?.totalsAlreadyPaidTotal }}:</strong>\n {{ invoice().totals?.alreadyPaidTotal | currency: invoice().currencyCode }}\n </p>\n <p class=\"total\">\n <strong>{{ textWords?.totalsTotalToBePaid }}:</strong>\n <strong> {{ invoice().totals?.totalToBePaid | currency: invoice().currencyCode }}</strong>\n </p>\n </section>\n\n <section class=\"payment-instructions\">\n <h2>{{ textWords?.instructionsTopic }}</h2>\n <p>{{ invoice().paymentInstructions?.description }}</p>\n @for (means of invoice().paymentInstructions?.paymentMeans; track means) {\n <div>\n <p>\n <strong>{{ textWords?.instructionsAccountIdentifier }}:</strong> {{ means.accountIdentifier }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsAccountName }}:</strong> {{ means.accountName }}\n </p>\n <p>\n <strong>{{ textWords?.instructionsServiceProviderIdentifier }}:</strong> {{ means.serviceProviderIdentifier }}\n </p>\n </div>\n }\n </section>\n </div>\n\n <section class=\"invoice-notes\">\n <h2>{{ textWords?.notesTopic }}</h2>\n @for (note of invoice().invoiceNotes; track note) {\n <div>\n <p>\n <strong>{{ note.shortText }}</strong>\n </p>\n <p>{{ note.longText }}</p>\n </div>\n }\n </section>\n</div>\n", styles: [".mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0,0,.2,1);transform:scale3d(0,0,0);background-color:var(--mat-ripple-color, rgba(0, 0, 0, .1))}.cdk-high-contrast-active .mat-ripple-element{display:none}.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0}.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000;display:flex;max-width:100%;max-height:100%}.cdk-overlay-backdrop{position:absolute;inset:0;z-index:1000;pointer-events:auto;-webkit-tap-highlight-color:transparent;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:1}.cdk-high-contrast-active .cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.6}.cdk-overlay-dark-backdrop{background:#00000052}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;z-index:1000;display:flex;flex-direction:column;min-width:1px;min-height:1px}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll}textarea.cdk-textarea-autosize{resize:none}textarea.cdk-textarea-autosize-measuring{padding:2px 0!important;box-sizing:content-box!important;height:auto!important;overflow:hidden!important}textarea.cdk-textarea-autosize-measuring-firefox{padding:2px 0!important;box-sizing:content-box!important;height:0!important}@keyframes cdk-text-field-autofill-start{}@keyframes cdk-text-field-autofill-end{}.cdk-text-field-autofill-monitored:-webkit-autofill{animation:cdk-text-field-autofill-start 0s 1ms}.cdk-text-field-autofill-monitored:not(:-webkit-autofill){animation:cdk-text-field-autofill-end 0s 1ms}.mat-focus-indicator{position:relative}.mat-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border:var(--mat-focus-indicator-border-width, 3px) var(--mat-focus-indicator-border-style, solid) var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-focus-indicator-display: block}.mat-mdc-focus-indicator{position:relative}.mat-mdc-focus-indicator:before{inset:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-mdc-focus-indicator-display, none);border:var(--mat-mdc-focus-indicator-border-width, 3px) var(--mat-mdc-focus-indicator-border-style, solid) var(--mat-mdc-focus-indicator-border-color, transparent);border-radius:var(--mat-mdc-focus-indicator-border-radius, 4px)}.mat-mdc-focus-indicator:focus:before{content:\"\"}.cdk-high-contrast-active{--mat-mdc-focus-indicator-display: block}.mat-app-background{background-color:var(--mat-app-background-color, transparent);color:var(--mat-app-text-color, inherit)}.invoice-container{width:100%;max-width:800px;margin:auto;font-family:Arial,sans-serif;line-height:1.5}.invoice-header{display:flex;justify-content:space-between;margin-bottom:20px}.seller-info,.buyer-info,.invoice-details{width:30%}.invoice-title{font-size:48px;margin:20px 0}.invoice-references,.invoice-totals,.payment-instructions,.invoice-notes{margin:20px 0}.invoice-table{width:100%;border-collapse:collapse;margin:20px 0}.invoice-table th,.invoice-table td{border:1px solid #000;padding:8px;text-align:left}.invoice-table th{background-color:#00acc1}.invoice-totals p,.payment-instructions p,.invoice-notes p{margin:5px 0}h2{font-size:18px;margin-bottom:10px}.addition-info{display:flex;justify-content:space-between}.total{background-color:#bdbdbd}\n"] }]
|
|
1717
|
+
}], ctorParameters: () => [], propDecorators: { textWords: [{
|
|
1718
|
+
type: Input
|
|
1719
|
+
}] } });
|
|
1720
|
+
|
|
1580
1721
|
/*
|
|
1581
1722
|
* Public API Surface of angular-ava
|
|
1582
1723
|
*/
|
|
@@ -1585,5 +1726,5 @@ const version = {
|
|
|
1585
1726
|
* Generated bundle index. Do not edit.
|
|
1586
1727
|
*/
|
|
1587
1728
|
|
|
1588
|
-
export { AngularAvaModule, AvaTreeComponent, ExchangePhaseDto, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, ModeViewType, OriginDto, PriceRoundingModeDto, PriceTypeDto, version };
|
|
1729
|
+
export { AngularAvaModule, AvaTreeComponent, DEFAULT_FILTERS, DEFAULT_TEXT_WORDS, DEFAULT_TEXT_WORD_INVOICE, ExchangePhaseDto, InvoiceDisplayComponent, ItemNumberSchemaTierTypeDto, ItemNumberTypeDto, ModeViewType, OriginDto, PriceRoundingModeDto, PriceTypeDto, defaults, germanTextsInvoice, version };
|
|
1589
1730
|
//# sourceMappingURL=dangl-angular-ava.mjs.map
|