@wisemen/wise-invoicing-web 0.0.3 → 0.0.4

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.
Files changed (52) hide show
  1. package/dist/{BillingDocumentDetailViewDataProvider-CwonTh2r.js → BillingDocumentDetailViewDataProvider-pePmiXWb.js} +332 -332
  2. package/dist/{BillingDocumentPdf-GWCCjE6F.js → BillingDocumentPdf-Dg5JlQE1.js} +8 -8
  3. package/dist/{CreditNoteDetailViewDataProvider-CaucKK9o.js → CreditNoteDetailViewDataProvider-C-A0jyVr.js} +5 -5
  4. package/dist/{CreditNotePdfViewDataProvider-CDkvm-3m.js → CreditNotePdfViewDataProvider-DNUvFVDj.js} +2 -2
  5. package/dist/{CustomFieldValueText-CC9spLWf.js → CustomFieldValueText-DDQq-975.js} +1 -1
  6. package/dist/{DunningCaseDetailViewDataProvider-1Ui9yqUb.js → DunningCaseDetailViewDataProvider-0WV-7-vg.js} +110 -113
  7. package/dist/DunningCaseOverviewView-CHdzfbhb.js +553 -0
  8. package/dist/{DunningCaseReminderPdfViewDataProvider-CVnr9ge6.js → DunningCaseReminderPdfViewDataProvider-DcM-7ECg.js} +4 -1
  9. package/dist/DunningCaseSendDialog-DBtwr2ue.js +350 -0
  10. package/dist/{InvoiceDetailViewDataProvider-DfRDFCEb.js → InvoiceDetailViewDataProvider-BDL9lAWe.js} +175 -174
  11. package/dist/{InvoiceOverviewViewDataProvider-CNK7H5r2.js → InvoiceOverviewViewDataProvider-B_jrcC_8.js} +54 -54
  12. package/dist/{InvoicePdfView-CrWU8Xa-.js → InvoicePdfView-Bygb-9z6.js} +2 -2
  13. package/dist/{InvoicePdfViewDataProvider-nHZoeRxn.js → InvoicePdfViewDataProvider-nBk3XNrE.js} +2 -2
  14. package/dist/{InvoicePublicPdfViewDataProvider-CXWSg2pq.js → InvoicePublicPdfViewDataProvider-DHJP_-7-.js} +2 -2
  15. package/dist/{IssuerSettingsViewDataProvider-DcA6rgOJ.js → IssuerSettingsViewDataProvider-Dk_Q6w6f.js} +2 -2
  16. package/dist/ReminderSettingsViewDataProvider-CDBjfU7R.js +668 -0
  17. package/dist/{billingDocumentDetail.transformer-tmy9Tf_b.js → billingDocumentDetail.transformer-zMTbka5p.js} +1 -1
  18. package/dist/composables/invoicingConfig.composable.d.ts +0 -2
  19. package/dist/{creditNoteDetail.query-BM2saU0n.js → creditNoteDetail.query-BZqgZRSu.js} +2 -2
  20. package/dist/{documentTitle.composable-D7XA-8iJ.js → documentTitle.composable-CeaFddr1.js} +28 -30
  21. package/dist/{invoicingConfig.composable-AjojW4qE.js → i18n.lib-DUbAMBRb.js} +8 -66
  22. package/dist/index.js +156 -157
  23. package/dist/{invoice.service-PsmVGGTR.js → invoice.service-ChHEtXBA.js} +13 -13
  24. package/dist/{invoiceDeliveryStatus.util-CL8K78pD.js → invoiceDeliveryStatus.util-BsA-MlA3.js} +27 -27
  25. package/dist/{invoiceDetail.query-D2eFdE0j.js → invoiceDetail.query-O_CGvdwg.js} +1 -1
  26. package/dist/invoicingConfig.composable-c6w_aMm1.js +60 -0
  27. package/dist/{issuerSettings.query-d5i7Wd7j.js → issuerSettings.query-RqtrZFaB.js} +1 -1
  28. package/dist/modules/dunning-case/api/queries/dunningCaseIndex.query.d.ts +0 -1
  29. package/dist/modules/dunning-case/use-cases/send/components/DunningCaseBulkSendStat.vue.d.ts +9 -0
  30. package/dist/modules/dunning-case/use-cases/send/components/DunningCaseBulkSendSummary.vue.d.ts +8 -0
  31. package/dist/modules/dunning-case/use-cases/send/components/DunningCaseSendFeeRow.vue.d.ts +8 -0
  32. package/dist/modules/dunning-case/use-cases/send/components/DunningCaseSendInvoiceRow.vue.d.ts +8 -0
  33. package/dist/modules/dunning-case/use-cases/send/components/DunningCaseSendInvoiceSummary.vue.d.ts +8 -0
  34. package/dist/modules/dunning-case/use-cases/send/components/DunningCaseSendRecipientAlert.vue.d.ts +7 -0
  35. package/dist/modules/dunning-case/use-cases/send/composables/dunningCaseReminderSubject.composable.d.ts +6 -0
  36. package/dist/modules/dunning-case/use-cases/send/composables/dunningCaseSendRecipient.composable.d.ts +16 -0
  37. package/dist/modules/dunning-case/use-cases/send/utils/dunningCaseSend.util.d.ts +13 -0
  38. package/dist/modules/dunning-case/use-cases/settings/components/ReminderLadderFeeNotice.vue.d.ts +3 -0
  39. package/dist/modules/dunning-case/use-cases/settings/components/ReminderLadderPanel.vue.d.ts +12 -0
  40. package/dist/modules/dunning-case/use-cases/settings/components/ReminderLadderRow.vue.d.ts +26 -0
  41. package/dist/modules/dunning-case/use-cases/settings/components/ReminderLadderTimeline.vue.d.ts +13 -0
  42. package/dist/modules/dunning-case/use-cases/settings/components/ReminderTemplateTabs.vue.d.ts +20 -0
  43. package/dist/modules/dunning-case/use-cases/settings/components/ReminderTemplatesPanel.vue.d.ts +24 -0
  44. package/dist/modules/dunning-case/use-cases/settings/composables/reminderLadder.composable.d.ts +41 -0
  45. package/dist/{reminderConfig.query-C7I3M2pu.js → reminderConfig.query-DzTN2AvU.js} +87 -100
  46. package/package.json +1 -1
  47. package/dist/DunningCaseOverviewView-Bvwaj4_y.js +0 -507
  48. package/dist/PermissionGuard-DDw-lDGL.js +0 -301
  49. package/dist/ReminderSettingsViewDataProvider-C4qz2Rli.js +0 -502
  50. package/dist/composables/permission-guard/permissionGuard.composable.d.ts +0 -4
  51. package/dist/modules/dunning-case/api/queries/dunningCaseIndex.query.spec.d.ts +0 -1
  52. package/dist/ui/permission-guard/PermissionGuard.vue.d.ts +0 -22
@@ -1,9 +1,9 @@
1
1
  import { A as e, C as t, D as n, F as r, H as ee, M as te, S as ne, T as i, U as a, W as o, Y as s, _ as c, b as l, c as u, d, f, h as p, i as m, j as re, n as ie, o as ae, p as oe, q as se, r as ce, t as h, u as le, v as ue, x as de, y as fe } from "./api.util-Dm_TQedZ.js";
2
- import { d as g, h as pe, l as me, r as he, w as _ } from "./documentTitle.composable-D7XA-8iJ.js";
2
+ import { C as g, d as _, h as pe, l as me, r as he } from "./documentTitle.composable-CeaFddr1.js";
3
3
  import { n as ge } from "./useCurrencyFormat.composable-MtZaqKnO.js";
4
4
  import { r as v } from "./src-BFgnUugN.js";
5
5
  import { n as y, t as b } from "./plainDate.transformer-BxvJpJOv.js";
6
- import { a as x, i as S, n as C, o as w, r as T, s as E, t as D } from "./billingDocumentDetail.transformer-tmy9Tf_b.js";
6
+ import { a as x, i as S, n as C, o as w, r as T, s as E, t as D } from "./billingDocumentDetail.transformer-zMTbka5p.js";
7
7
  import { n as O, t as k } from "./address.transformer-B8C0pwT1.js";
8
8
  import A from "zod";
9
9
  import { ref as j } from "vue";
@@ -84,11 +84,11 @@ var P = class e {
84
84
  pagination: e.pagination,
85
85
  search: R.toDto(e.search),
86
86
  sort: M.toDto(e.sort, {
87
- created_at: _.CREATED_AT,
88
- issued_on: _.ISSUED_ON,
89
- customer: _.CUSTOMER,
90
- netAmount: _.NET_AMOUNT,
91
- sequence: _.SEQUENCE
87
+ created_at: g.CREATED_AT,
88
+ issued_on: g.ISSUED_ON,
89
+ customer: g.CUSTOMER,
90
+ netAmount: g.NET_AMOUNT,
91
+ sequence: g.SEQUENCE
92
92
  })
93
93
  };
94
94
  }
@@ -481,19 +481,19 @@ var Ee = class {
481
481
  }
482
482
  static async bulkFinalize(e) {
483
483
  return (await h.fromPromise(ce({ query: { filter: { invoiceUuids: {
484
- scope: g.INCLUDE,
484
+ scope: _.INCLUDE,
485
485
  values: e
486
486
  } } } }))).map((e) => e.data);
487
487
  }
488
488
  static async bulkMarkAsReady(e) {
489
489
  return (await h.fromPromise(m({ query: { filter: { invoiceUuids: {
490
- scope: g.INCLUDE,
490
+ scope: _.INCLUDE,
491
491
  values: e
492
492
  } } } }))).map((e) => e.data);
493
493
  }
494
494
  static async bulkSend(e) {
495
495
  return (await h.fromPromise(ae({ query: { filter: { invoiceUuids: {
496
- scope: g.INCLUDE,
496
+ scope: _.INCLUDE,
497
497
  values: e
498
498
  } } } }))).map((e) => e.data);
499
499
  }
@@ -579,19 +579,19 @@ var Ee = class {
579
579
  }
580
580
  static async previewBulkFinalize(e) {
581
581
  return (await h.fromPromise(ne({ query: { filter: { invoiceUuids: {
582
- scope: g.INCLUDE,
582
+ scope: _.INCLUDE,
583
583
  values: e
584
584
  } } } }))).map((e) => e.data);
585
585
  }
586
586
  static async previewBulkMarkAsReady(e) {
587
587
  return (await h.fromPromise(t({ query: { filter: { invoiceUuids: {
588
- scope: g.INCLUDE,
588
+ scope: _.INCLUDE,
589
589
  values: e
590
590
  } } } }))).map((e) => e.data);
591
591
  }
592
592
  static async previewBulkSend(e) {
593
593
  return (await h.fromPromise(i({ query: { filter: { invoiceUuids: {
594
- scope: g.INCLUDE,
594
+ scope: _.INCLUDE,
595
595
  values: e
596
596
  } } } }))).map((e) => e.data);
597
597
  }
@@ -1,8 +1,8 @@
1
1
  import { L as e, R as t, t as n } from "./api.util-Dm_TQedZ.js";
2
- import { b as r, f as i } from "./documentTitle.composable-D7XA-8iJ.js";
2
+ import { f as r, y as i } from "./documentTitle.composable-CeaFddr1.js";
3
3
  import { r as a } from "./useCurrencyFormat.composable-MtZaqKnO.js";
4
- import { o } from "./invoice.service-PsmVGGTR.js";
5
- import { i as s } from "./CustomFieldValueText-CC9spLWf.js";
4
+ import { o } from "./invoice.service-ChHEtXBA.js";
5
+ import { i as s } from "./CustomFieldValueText-DDQq-975.js";
6
6
  import { t as c } from "./_plugin-vue_export-helper-B3ysoDQm.js";
7
7
  import "./AlertTriangleIcon-DtYLCC-Y.js";
8
8
  import "./ArrowNarrowRightIcon-2-Sml68f.js";
@@ -59,34 +59,34 @@ var T = class {
59
59
  return (await n.fromPromise(e({ path: { uuid: t } }))).map((e) => T.fromDto(e.data));
60
60
  }
61
61
  }, k = {
62
- [r.CREDITED]: {
62
+ [i.CREDITED]: {
63
63
  tone: "success",
64
64
  translationKey: "wise_invoicing.invoice.settlement_status.credited"
65
65
  },
66
- [r.OVERPAID]: {
66
+ [i.OVERPAID]: {
67
67
  tone: "warning",
68
68
  translationKey: "wise_invoicing.invoice.settlement_status.paid"
69
69
  },
70
- [r.PAID]: {
70
+ [i.PAID]: {
71
71
  tone: "success",
72
72
  translationKey: "wise_invoicing.invoice.settlement_status.paid"
73
73
  },
74
- [r.PARTIALLY_PAID]: {
74
+ [i.PARTIALLY_PAID]: {
75
75
  tone: "blue",
76
76
  translationKey: "wise_invoicing.invoice.settlement_status.partially_paid"
77
77
  },
78
- [r.SETTLED]: {
78
+ [i.SETTLED]: {
79
79
  tone: "brand",
80
80
  translationKey: "wise_invoicing.invoice.settlement_status.settled"
81
81
  },
82
- [r.UNPAID]: {
82
+ [i.UNPAID]: {
83
83
  tone: "gray",
84
84
  translationKey: "wise_invoicing.invoice.settlement_status.unpaid"
85
85
  }
86
86
  }, A = {
87
87
  tone: "warning",
88
88
  translationKey: "wise_invoicing.invoice.settlement_status.awaiting_payment"
89
- }, j = /* @__PURE__ */ new Set([r.PARTIALLY_PAID, r.UNPAID]), M = class e {
89
+ }, j = /* @__PURE__ */ new Set([i.PARTIALLY_PAID, i.UNPAID]), M = class e {
90
90
  static getCreditedAmount(e) {
91
91
  if (e.totalCreditedAmount !== null) return e.totalCreditedAmount.amount > 0 ? e.totalCreditedAmount : null;
92
92
  if (e.balanceDueAmount == null) return null;
@@ -100,9 +100,9 @@ var T = class {
100
100
  return t && j.has(e) ? A : k[e];
101
101
  }
102
102
  static getSubtextParts(t) {
103
- let n = t.paidAmount, i = e.getCreditedAmount(t);
103
+ let n = t.paidAmount, r = e.getCreditedAmount(t);
104
104
  switch (t.settlementStatus) {
105
- case r.OVERPAID: {
105
+ case i.OVERPAID: {
106
106
  if (n === null) return null;
107
107
  let e = Math.max(n.amount - t.grossAmount.amount, 0), r = Math.min(n.amount, t.grossAmount.amount);
108
108
  return e > 0 ? {
@@ -117,9 +117,9 @@ var T = class {
117
117
  }
118
118
  } : null;
119
119
  }
120
- case r.PARTIALLY_PAID:
121
- case r.SETTLED: return n === null && i === null ? null : {
122
- creditedAmount: i,
120
+ case i.PARTIALLY_PAID:
121
+ case i.SETTLED: return n === null && r === null ? null : {
122
+ creditedAmount: r,
123
123
  overpaidAmount: null,
124
124
  paidAmount: n ?? null
125
125
  };
@@ -240,7 +240,7 @@ var Z = /* @__PURE__ */ g({
240
240
  totalCreditedAmount: {}
241
241
  },
242
242
  setup(e) {
243
- let t = e, n = l(), i = a(), o = u(() => t.isSent || t.settlementStatus !== r.UNPAID), s = u(() => M.getMetadata(t.settlementStatus, t.isSent)), c = u(() => n.t(s.value.translationKey)), p = u(() => {
243
+ let t = e, n = l(), r = a(), o = u(() => t.isSent || t.settlementStatus !== i.UNPAID), s = u(() => M.getMetadata(t.settlementStatus, t.isSent)), c = u(() => n.t(s.value.translationKey)), p = u(() => {
244
244
  let e = M.getSubtextParts({
245
245
  balanceDueAmount: t.balanceDueAmount,
246
246
  grossAmount: t.grossAmount,
@@ -249,12 +249,12 @@ var Z = /* @__PURE__ */ g({
249
249
  totalCreditedAmount: t.totalCreditedAmount
250
250
  });
251
251
  return e == null ? null : e.paidAmount !== null && e.overpaidAmount !== null ? n.t("wise_invoicing.invoice.status_subtext.paid_overpaid", {
252
- overpaidAmount: i.formatMonetary(e.overpaidAmount),
253
- paidAmount: i.formatMonetary(e.paidAmount)
252
+ overpaidAmount: r.formatMonetary(e.overpaidAmount),
253
+ paidAmount: r.formatMonetary(e.paidAmount)
254
254
  }) : e.paidAmount !== null && e.creditedAmount !== null ? n.t("wise_invoicing.invoice.status_subtext.paid_credited", {
255
- creditedAmount: i.formatMonetary(e.creditedAmount),
256
- paidAmount: i.formatMonetary(e.paidAmount)
257
- }) : e.paidAmount === null ? e.creditedAmount === null ? null : n.t("wise_invoicing.invoice.status_subtext.credited", { creditedAmount: i.formatMonetary(e.creditedAmount) }) : n.t("wise_invoicing.invoice.status_subtext.paid", { paidAmount: i.formatMonetary(e.paidAmount) });
255
+ creditedAmount: r.formatMonetary(e.creditedAmount),
256
+ paidAmount: r.formatMonetary(e.paidAmount)
257
+ }) : e.paidAmount === null ? e.creditedAmount === null ? null : n.t("wise_invoicing.invoice.status_subtext.credited", { creditedAmount: r.formatMonetary(e.creditedAmount) }) : n.t("wise_invoicing.invoice.status_subtext.paid", { paidAmount: r.formatMonetary(e.paidAmount) });
258
258
  }), m = u(() => t.showSubtext && p.value !== null), g = u(() => p.value ?? "");
259
259
  return (e, n) => o.value ? (_(), d(v(x), {
260
260
  key: 0,
@@ -299,23 +299,23 @@ var Z = /* @__PURE__ */ g({
299
299
  })) : f("", !0);
300
300
  }
301
301
  }), Q = {
302
- [i.FAILED]: {
302
+ [r.FAILED]: {
303
303
  tone: "error",
304
304
  translationKey: "wise_invoicing.invoice.delivery_status.failed"
305
305
  },
306
- [i.PROCESSING]: {
306
+ [r.PROCESSING]: {
307
307
  tone: "blue",
308
308
  translationKey: "wise_invoicing.invoice.delivery_status.processing"
309
309
  },
310
- [i.SENT]: {
310
+ [r.SENT]: {
311
311
  tone: "brand",
312
312
  translationKey: "wise_invoicing.invoice.delivery_status.sent"
313
313
  },
314
- [i.UNSENT]: {
314
+ [r.UNSENT]: {
315
315
  tone: "gray",
316
316
  translationKey: "wise_invoicing.invoice.delivery_status.unsent"
317
317
  },
318
- [i.VIEWED]: {
318
+ [r.VIEWED]: {
319
319
  tone: "success",
320
320
  translationKey: "wise_invoicing.invoice.delivery_status.viewed"
321
321
  }
@@ -324,7 +324,7 @@ var Z = /* @__PURE__ */ g({
324
324
  return Q[e];
325
325
  }
326
326
  static isSent(e) {
327
- return [i.SENT, i.VIEWED].includes(e);
327
+ return [r.SENT, r.VIEWED].includes(e);
328
328
  }
329
329
  };
330
330
  //#endregion
@@ -1,4 +1,4 @@
1
- import { t as e } from "./invoice.service-PsmVGGTR.js";
1
+ import { t as e } from "./invoice.service-ChHEtXBA.js";
2
2
  import { useQuery as t } from "@wisemen/vue-core-api-utils";
3
3
  //#region src/modules/invoice/api/queries/invoiceDetail.query.ts
4
4
  function n(n) {
@@ -0,0 +1,60 @@
1
+ import { t as e } from "./i18n.lib-DUbAMBRb.js";
2
+ import { X as t } from "./api.util-Dm_TQedZ.js";
3
+ import { useI18n as n } from "vue-i18n";
4
+ import { computed as r, ref as i, toValue as a, watch as o } from "vue";
5
+ //#region src/libs/http.lib.ts
6
+ var s = !1, c = null, l = null;
7
+ function u(e, t = "") {
8
+ return Object.keys(e).map((n) => {
9
+ let r = e[n], i = t ? `${t}[${n}]` : n;
10
+ return typeof r == "object" && r && !Array.isArray(r) ? u(r, i) : Array.isArray(r) ? r.map((e, t) => typeof e == "object" ? u(e, `${i}[${t}]`) : `${encodeURIComponent(`${i}[${t}]`)}=${encodeURIComponent(e)}`).join("&") : r == null ? "" : `${encodeURIComponent(i)}=${encodeURIComponent(r)}`;
11
+ }).filter((e) => e !== "").join("&");
12
+ }
13
+ function d(e) {
14
+ c = e.getAccessToken ?? null, l = e.getLocale ?? null, t.setConfig({
15
+ baseUrl: e.apiInvoicingBaseUrl,
16
+ headers: { "Accept-Language": l?.() ?? "en-US" },
17
+ querySerializer: u
18
+ }), !s && (s = !0, t.interceptors.request.use(async (e) => {
19
+ if (l && e.headers.set("Accept-Language", l()), c) {
20
+ let t = await c();
21
+ t !== null && e.headers.set("Authorization", `Bearer ${t}`);
22
+ }
23
+ return e;
24
+ }));
25
+ }
26
+ //#endregion
27
+ //#region src/composables/invoicingConfig.composable.ts
28
+ var f = i(!1), p = i(!0), m = i(!0), h = i(!0);
29
+ function g(e) {
30
+ return null;
31
+ }
32
+ var _ = i(g);
33
+ function v(t) {
34
+ return o(() => a(t.locale), (t) => {
35
+ e.global.locale.value = t;
36
+ }), d({
37
+ apiInvoicingBaseUrl: t.apiInvoicingBaseUrl,
38
+ getAccessToken: t.getAccessToken,
39
+ getLocale: () => a(t.locale)
40
+ }), p.value = t.config?.isDeliveryDateVisible ?? !0, m.value = t.config?.isGlobalDiscountEnabled ?? !0, h.value = t.config?.isLineDiscountEnabled ?? !0, _.value = t.getCustomerDetailRoute ?? g, f.value = !0, Promise.resolve();
41
+ }
42
+ function y() {
43
+ let e = n();
44
+ function t(t) {
45
+ return v({
46
+ ...t,
47
+ locale: e.locale
48
+ });
49
+ }
50
+ return {
51
+ isDeliveryDateVisible: r(() => p.value),
52
+ isGlobalDiscountEnabled: r(() => m.value),
53
+ isInitialized: r(() => f.value),
54
+ isLineDiscountEnabled: r(() => h.value),
55
+ getCustomerDetailRoute: (e) => _.value(e),
56
+ init: t
57
+ };
58
+ }
59
+ //#endregion
60
+ export { y as n, v as t };
@@ -1,5 +1,5 @@
1
1
  import { G as e, N as t, t as n } from "./api.util-Dm_TQedZ.js";
2
- import { u as r } from "./documentTitle.composable-D7XA-8iJ.js";
2
+ import { u as r } from "./documentTitle.composable-CeaFddr1.js";
3
3
  import { n as i, r as a, t as o } from "./address.transformer-B8C0pwT1.js";
4
4
  import { useQuery as s } from "@wisemen/vue-core-api-utils";
5
5
  //#region src/models/address/addressForm.transformer.ts
@@ -4,6 +4,5 @@ import { DunningCaseIndexQueryParams } from '../query-keys/dunningCase.queryKeys
4
4
  type DunningCaseIndexQueryOptions = InfiniteQueryOptions<DunningCaseIndexQueryParams> & {
5
5
  isEnabled?: Ref<boolean>;
6
6
  };
7
- export declare function isDunningCaseIndexQueryEnabled(hasReadPermission: boolean, isRequestedEnabled: boolean): boolean;
8
7
  export declare function useDunningCaseIndexQuery(options: DunningCaseIndexQueryOptions): import('@wisemen/vue-core-api-utils').UseOffsetInfiniteQueryReturnType<import('../..').DunningCaseIndex, string>;
9
8
  export {};
@@ -0,0 +1,9 @@
1
+ type __VLS_Props = {
2
+ hasSeparator: boolean;
3
+ label: string;
4
+ tone: 'default' | 'success' | 'warning';
5
+ value: number;
6
+ };
7
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
8
+ declare const _default: typeof __VLS_export;
9
+ export default _default;
@@ -0,0 +1,8 @@
1
+ type __VLS_Props = {
2
+ processableCount: number;
3
+ skippedCount: number;
4
+ totalCount: number;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { Monetary } from '../../../../../utils/monetary/monetary.model.ts';
2
+ type __VLS_Props = {
3
+ fee: Monetary;
4
+ level: number;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { DunningCaseInvoice } from '../../../models/dunningCase.model.ts';
2
+ type __VLS_Props = {
3
+ hasSeparator: boolean;
4
+ invoice: DunningCaseInvoice;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,8 @@
1
+ import { DunningCaseDetail } from '../../../models/dunningCase.model.ts';
2
+ type __VLS_Props = {
3
+ dunningCase: DunningCaseDetail;
4
+ subject: string | null;
5
+ };
6
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
7
+ declare const _default: typeof __VLS_export;
8
+ export default _default;
@@ -0,0 +1,7 @@
1
+ import { RouteLocationRaw } from 'vue-router';
2
+ type __VLS_Props = {
3
+ customerDetailRoute: RouteLocationRaw | null;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
6
+ declare const _default: typeof __VLS_export;
7
+ export default _default;
@@ -0,0 +1,6 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ /**
3
+ * Resolves the configured reminder subject for a dunning case level, in the locale the user is
4
+ * currently viewing the application in.
5
+ */
6
+ export declare function useDunningCaseReminderSubject(level: Ref<number | null>): ComputedRef<string | null>;
@@ -0,0 +1,16 @@
1
+ import { ComputedRef, Ref } from 'vue';
2
+ interface DunningCaseSendRecipient {
3
+ isMissing: ComputedRef<boolean>;
4
+ isPending: Ref<boolean>;
5
+ /**
6
+ * `undefined` while the lookup has not completed yet. `null` once the lookup completed without a
7
+ * default recipient, which blocks sending.
8
+ */
9
+ defaultEmail: Ref<string | null | undefined>;
10
+ }
11
+ /**
12
+ * Resolves the default recipient of a customer, which the send dialog needs to explain who the
13
+ * reminder is grouped to and to block sending when no default recipient is configured.
14
+ */
15
+ export declare function useDunningCaseSendRecipient(customerUuid: Ref<string | null>): DunningCaseSendRecipient;
16
+ export {};
@@ -1,3 +1,16 @@
1
1
  import { DunningCaseInvoice } from '../../../models/dunningCase.model.ts';
2
+ export type DunningCaseSendSummaryRow = {
3
+ invoice: DunningCaseInvoice;
4
+ type: 'invoice';
5
+ } | {
6
+ type: 'fee';
7
+ };
8
+ export declare function isDunningCaseInvoiceNotYetDue(invoice: DunningCaseInvoice): boolean;
2
9
  export declare function isDunningCaseSendEligibleInvoice(invoice: DunningCaseInvoice): boolean;
3
10
  export declare function getDunningCaseSendEligibleInvoices(invoices: readonly DunningCaseInvoice[]): DunningCaseInvoice[];
11
+ /**
12
+ * Builds the rows of the send dialog summary: every invoice in order, with the reminder fee
13
+ * inserted just before the first invoice that is not due yet, or appended when every invoice
14
+ * is already due.
15
+ */
16
+ export declare function getDunningCaseSendSummaryRows(invoices: readonly DunningCaseInvoice[], hasReminderFee: boolean): DunningCaseSendSummaryRow[];
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,12 @@
1
+ import { SelectItem } from '@wisemen/vue-core-design-system';
2
+ import { ReminderSchedule } from '../../../../../client/index.ts';
3
+ import { ReminderLadderController, ReminderLadderFields } from '../composables/reminderLadder.composable.ts';
4
+ type __VLS_Props = {
5
+ canUpdate: boolean;
6
+ fields: readonly ReminderLadderFields[];
7
+ ladder: ReminderLadderController;
8
+ scheduleItems: SelectItem<ReminderSchedule>[];
9
+ };
10
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
@@ -0,0 +1,26 @@
1
+ import { SelectItem } from '@wisemen/vue-core-design-system';
2
+ import { Field } from 'formango';
3
+ import { Currency, ReminderSchedule } from '../../../../../client/index.ts';
4
+ type __VLS_Props = {
5
+ absoluteDay: number;
6
+ canUpdate: boolean;
7
+ feeCurrency: Currency | undefined;
8
+ feeField: Field<number>;
9
+ level: number;
10
+ offsetField: Field<number>;
11
+ scheduleField: Field<ReminderSchedule>;
12
+ scheduleItems: SelectItem<ReminderSchedule>[];
13
+ };
14
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
+ commitOffset: (event: FocusEvent) => any;
16
+ updateOffset: (value: number | null) => any;
17
+ updateOffsetFromInput: (event: Event) => any;
18
+ updateSchedule: (value: ReminderSchedule | null) => any;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
20
+ onCommitOffset?: ((event: FocusEvent) => any) | undefined;
21
+ onUpdateOffset?: ((value: number | null) => any) | undefined;
22
+ onUpdateOffsetFromInput?: ((event: Event) => any) | undefined;
23
+ onUpdateSchedule?: ((value: ReminderSchedule | null) => any) | undefined;
24
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { ReminderLadderMarker } from '../composables/reminderLadder.composable.ts';
2
+ type __VLS_Props = {
3
+ canUpdate: boolean;
4
+ markers: ReminderLadderMarker[];
5
+ timelineDays: number;
6
+ };
7
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
8
+ moveTo: (index: number, absoluteDay: number) => any;
9
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
10
+ onMoveTo?: ((index: number, absoluteDay: number) => any) | undefined;
11
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
@@ -0,0 +1,20 @@
1
+ export interface ReminderTemplateTabItem {
2
+ hasMissingContent: boolean;
3
+ label: string;
4
+ value: string;
5
+ }
6
+ type __VLS_Props = {
7
+ caption: string;
8
+ items: ReminderTemplateTabItem[];
9
+ };
10
+ type __VLS_ModelProps = {
11
+ modelValue: string;
12
+ };
13
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
14
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
+ "update:modelValue": (value: string) => any;
16
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
17
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
18
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
19
+ declare const _default: typeof __VLS_export;
20
+ export default _default;
@@ -0,0 +1,24 @@
1
+ import { Field } from 'formango';
2
+ import { ReminderTemplateTabItem } from './ReminderTemplateTabs.vue';
3
+ type __VLS_Props = {
4
+ bodyField: Field<string> | undefined;
5
+ canUpdate: boolean;
6
+ cardTitle: string;
7
+ levelItems: ReminderTemplateTabItem[];
8
+ localeItems: ReminderTemplateTabItem[];
9
+ subjectField: Field<string> | undefined;
10
+ };
11
+ type __VLS_ModelProps = {
12
+ 'activeLevel': string;
13
+ 'activeLocale': string;
14
+ };
15
+ type __VLS_PublicProps = __VLS_Props & __VLS_ModelProps;
16
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_PublicProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
+ "update:activeLevel": (value: string) => any;
18
+ "update:activeLocale": (value: string) => any;
19
+ }, string, import('vue').PublicProps, Readonly<__VLS_PublicProps> & Readonly<{
20
+ "onUpdate:activeLevel"?: ((value: string) => any) | undefined;
21
+ "onUpdate:activeLocale"?: ((value: string) => any) | undefined;
22
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
@@ -0,0 +1,41 @@
1
+ import { Field } from 'formango';
2
+ import { ComputedRef, Ref } from 'vue';
3
+ import { Currency, ReminderSchedule } from '../../../../../client/index.ts';
4
+ export interface ReminderLadderFields {
5
+ feeAmount: Field<number>;
6
+ offsetDays: Field<number>;
7
+ schedule: Field<ReminderSchedule>;
8
+ }
9
+ export interface ReminderLadderItem {
10
+ feeCurrency: Currency | undefined;
11
+ offsetDays: number;
12
+ schedule: ReminderSchedule;
13
+ sequence: number;
14
+ }
15
+ export interface ReminderLadderMarker {
16
+ absoluteDay: number;
17
+ minimumDay: number;
18
+ sequence: number;
19
+ }
20
+ export interface ReminderLadderController {
21
+ commitOffset: (index: number, event?: FocusEvent) => void;
22
+ getAbsoluteDay: (index: number) => number;
23
+ items: Ref<ReminderLadderItem[]>;
24
+ markers: ComputedRef<ReminderLadderMarker[]>;
25
+ reset: () => void;
26
+ setAbsoluteDay: (index: number, absoluteDay: number) => void;
27
+ timelineDays: ComputedRef<number>;
28
+ updateOffset: (index: number, value: number | null) => void;
29
+ updateOffsetFromInput: (index: number, event: Event) => void;
30
+ updateSchedule: (index: number, value: ReminderSchedule | null) => void;
31
+ }
32
+ /**
33
+ * Drives the reminder ladder: the timeline positions are derived from committed reminders rather
34
+ * than from live form state, so typing an offset only moves the timeline marker once the value is
35
+ * committed on blur or through the stepper.
36
+ */
37
+ export declare function useReminderLadder(options: {
38
+ canUpdate: Ref<boolean>;
39
+ fields: readonly ReminderLadderFields[];
40
+ items: Ref<ReminderLadderItem[]>;
41
+ }): ReminderLadderController;