@saasicat/ui-vue 0.7.0 → 0.8.0

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 (40) hide show
  1. package/dist/{chunk-A3W2N26K.js → chunk-7N3CJTOA.js} +7 -227
  2. package/dist/{chunk-X5SQ5HMB.js → chunk-TBLXKSTR.js} +0 -137
  3. package/dist/{chunk-QZOSDCNP.js → chunk-TY2WYKME.js} +1 -1
  4. package/dist/client/index.cjs +112 -467
  5. package/dist/client/index.d.cts +4 -62
  6. package/dist/client/index.d.ts +4 -62
  7. package/dist/client/index.js +2 -6
  8. package/dist/index.cjs +204 -583
  9. package/dist/index.d.cts +10 -55
  10. package/dist/index.d.ts +10 -55
  11. package/dist/index.js +74 -101
  12. package/dist/{messages-7b0P8W75.d.ts → messages-BIYw32u1.d.cts} +0 -67
  13. package/dist/{messages-7b0P8W75.d.cts → messages-BIYw32u1.d.ts} +0 -67
  14. package/dist/quasar/index.cjs +0 -136
  15. package/dist/quasar/index.d.cts +2 -2
  16. package/dist/quasar/index.d.ts +2 -2
  17. package/dist/quasar/index.js +2 -2
  18. package/dist/{use-super-admin-i18n-B3v3-SWZ.d.ts → use-super-admin-i18n-CWNu_W3u.d.ts} +1 -1
  19. package/dist/{use-super-admin-i18n-DMktRVEt.d.cts → use-super-admin-i18n-DL_qI1BY.d.cts} +1 -1
  20. package/package.json +2 -2
  21. package/src/client/i18n/messages/nav.ts +0 -2
  22. package/src/client/i18n/messages/plan-versions.ts +0 -143
  23. package/src/client/index.ts +0 -2
  24. package/src/client/nav-builder.ts +9 -4
  25. package/src/index.ts +0 -1
  26. package/src/pages-standard/AdminLayout.vue +1 -1
  27. package/src/pages-standard/plan-versions/PlanVersionsDiff.vue +1 -1
  28. package/src/pages-standard/plan-versions/PlanVersionsTimeline.vue +1 -1
  29. package/src/pages-standard/plan-versions/catalog-history.types.ts +37 -0
  30. package/src/pages-standard/plan-versions/format.ts +2 -38
  31. package/src/client/plan-versions-catalog.ts +0 -380
  32. package/src/pages-standard/PlanVersionsPage.vue +0 -220
  33. package/src/pages-standard/plan-versions/PlanVersionHeader.vue +0 -309
  34. package/src/pages-standard/plan-versions/PlanVersionStatusBadge.vue +0 -48
  35. package/src/pages-standard/plan-versions/PlanVersionsAudit.vue +0 -326
  36. package/src/pages-standard/plan-versions/PlanVersionsKpi.vue +0 -65
  37. package/src/pages-standard/plan-versions/PlanVersionsList.vue +0 -315
  38. package/src/pages-standard/plan-versions/PlanVersionsMatrix.vue +0 -261
  39. package/src/pages-standard/plan-versions/types.ts +0 -33
  40. package/src/vue/use-plan-versions.ts +0 -83
@@ -1,12 +1,9 @@
1
1
  import {
2
2
  DEFAULT_SA_LOCALE,
3
- SA_INTL_LOCALES,
4
3
  defaultHttpClient,
5
4
  defaultKvStore,
6
- formatMessage,
7
- navMessages,
8
- planVersionsMessages
9
- } from "./chunk-X5SQ5HMB.js";
5
+ navMessages
6
+ } from "./chunk-TBLXKSTR.js";
10
7
 
11
8
  // src/client/version.ts
12
9
  var ADMIN_UI_VERSION = "1.2.0";
@@ -174,7 +171,6 @@ var DEFAULT_STANDARD_PAGE_ROUTES = {
174
171
  subscriptions: "/admin/subscriptions",
175
172
  promoCodes: "/admin/promo-codes",
176
173
  plans: "/admin/plans",
177
- planVersions: "/admin/plan-versions",
178
174
  audit: "/admin/audit",
179
175
  users: "/admin/users",
180
176
  pilots: "/admin/pilots",
@@ -184,13 +180,15 @@ var DEFAULT_STANDARD_PAGE_ROUTES = {
184
180
  platformEmail: "/admin/platform-email",
185
181
  platformEmailHistory: "/admin/platform-email-history"
186
182
  };
183
+ function isSupportedStandardPageKey(key) {
184
+ return Object.hasOwn(DEFAULT_STANDARD_PAGE_ROUTES, key);
185
+ }
187
186
  var DEFAULT_ICONS = {
188
187
  dashboard: "dashboard",
189
188
  tenants: "business",
190
189
  subscriptions: "card_membership",
191
190
  promoCodes: "local_activity",
192
191
  plans: "workspace_premium",
193
- planVersions: "history_edu",
194
192
  audit: "history",
195
193
  users: "people",
196
194
  pilots: "flight_takeoff",
@@ -205,7 +203,6 @@ var PAGE_SECTIONS = {
205
203
  discovery: "catalog",
206
204
  bundles: "catalog",
207
205
  plans: "catalog",
208
- planVersions: "catalog",
209
206
  marketingCatalog: "catalog",
210
207
  promoCodes: "catalog",
211
208
  tenants: "customers",
@@ -233,6 +230,7 @@ function buildRoutes(manifest, options = {}) {
233
230
  const overrideIcons = { ...DEFAULT_ICONS, ...options.standardPageIcons };
234
231
  const overrideNavSection = { ...defaultNavSections, ...options.standardPageNavSection };
235
232
  for (const key of Object.keys(standard)) {
233
+ if (!isSupportedStandardPageKey(key)) continue;
236
234
  const def = standard[key];
237
235
  if (!def?.enabled) continue;
238
236
  const cap = def.requiredCapability ?? null;
@@ -473,222 +471,6 @@ var BatchColumnFetcher = class {
473
471
  }
474
472
  };
475
473
 
476
- // src/client/plan-versions-catalog.ts
477
- var dec = (s) => Number(s);
478
- function extractQuotas(p) {
479
- if (p.quotas && Object.keys(p.quotas).length > 0) {
480
- return { ...p.quotas };
481
- }
482
- const out = {};
483
- if (typeof p.maxUsers === "number") out.users = p.maxUsers;
484
- if (typeof p.maxVehicles === "number") out.vehicles = p.maxVehicles;
485
- if (typeof p.maxStorageGb === "number") out.storageGb = p.maxStorageGb;
486
- return out;
487
- }
488
- var sortByPublishedDesc = (rows) => [...rows].sort((a, b) => {
489
- const at = a.publishedAt ? Date.parse(a.publishedAt) : Number.POSITIVE_INFINITY;
490
- const bt = b.publishedAt ? Date.parse(b.publishedAt) : Number.POSITIVE_INFINITY;
491
- if (at !== bt) return bt - at;
492
- return b.version - a.version;
493
- });
494
- function findLiveAt(rows, asOfMs) {
495
- const candidates = rows.filter((r) => {
496
- if (r.publishedAt === null) return false;
497
- if (Date.parse(r.publishedAt) > asOfMs) return false;
498
- if (r.supersededAt !== null && Date.parse(r.supersededAt) <= asOfMs) return false;
499
- return true;
500
- });
501
- if (candidates.length === 0) return null;
502
- return [...candidates].sort((a, b) => b.version - a.version)[0] ?? null;
503
- }
504
- function findCurrentLive(rows) {
505
- return rows.find((r) => r.publishedAt !== null && r.supersededAt === null) ?? null;
506
- }
507
- function findDraft(rows) {
508
- return rows.find((r) => r.publishedAt === null) ?? null;
509
- }
510
- function groupBy(rows, keyOf) {
511
- const out = /* @__PURE__ */ new Map();
512
- for (const r of rows) {
513
- const k = keyOf(r);
514
- const list = out.get(k) ?? [];
515
- list.push(r);
516
- out.set(k, list);
517
- }
518
- return out;
519
- }
520
- function resolvePlan(source, liveBase) {
521
- const quotas = extractQuotas(source);
522
- return {
523
- source,
524
- liveBase,
525
- isDraft: source.publishedAt === null,
526
- planId: source.planId,
527
- features: source.features,
528
- quotas,
529
- monthlyNet: dec(source.monthlyNet),
530
- yearlyNet: dec(source.yearlyNet),
531
- marketed: source.marketed,
532
- version: source.version,
533
- maxUsers: quotas.users,
534
- maxVehicles: quotas.vehicles,
535
- maxStorageGb: quotas.storageGb
536
- };
537
- }
538
- function draftsTitle(draftCount, msg) {
539
- if (draftCount === 0) return msg.draftsTitleEmpty;
540
- const template = draftCount === 1 ? msg.draftsTitleOne : msg.draftsTitleMany;
541
- return formatMessage(template, { count: draftCount });
542
- }
543
- function dateLabel(iso, locale) {
544
- return new Date(iso).toLocaleDateString(SA_INTL_LOCALES[locale], {
545
- day: "2-digit",
546
- month: "short",
547
- year: "numeric"
548
- });
549
- }
550
- function buildDraftsSnapshot(data, sortPlansFn, locale) {
551
- const msg = planVersionsMessages[locale].catalog;
552
- const planByKey = groupBy(data.planVersions, (r) => r.planId);
553
- const plans = [];
554
- for (const [, rows] of planByKey) {
555
- const draft = findDraft(rows);
556
- const live = findCurrentLive(rows);
557
- if (draft) plans.push(resolvePlan(draft, live));
558
- else if (live) plans.push(resolvePlan(live, null));
559
- }
560
- const draftCount = plans.filter((p) => p.isDraft).length;
561
- return {
562
- id: "drafts",
563
- kind: "drafts",
564
- status: "DRAFT",
565
- label: msg.draftsLabel,
566
- title: draftsTitle(draftCount, msg),
567
- description: draftCount === 0 ? msg.draftsDescriptionEmpty : msg.draftsDescription,
568
- asOf: null,
569
- createdAt: null,
570
- publishedAt: null,
571
- authorEmail: null,
572
- plans: sortPlansFn(plans),
573
- draftCount,
574
- regressionCount: 0
575
- };
576
- }
577
- function buildActiveSnapshot(data, sortPlansFn, locale) {
578
- const msg = planVersionsMessages[locale].catalog;
579
- const planByKey = groupBy(data.planVersions, (r) => r.planId);
580
- const plans = [];
581
- for (const [, rows] of planByKey) {
582
- const live = findCurrentLive(rows);
583
- if (live) plans.push(resolvePlan(live, null));
584
- }
585
- if (plans.length === 0) return null;
586
- const publishedDates = plans.map((p) => p.source.publishedAt).filter((t) => t !== null).sort();
587
- const latestPublished = publishedDates[publishedDates.length - 1];
588
- return {
589
- id: "active",
590
- kind: "active",
591
- status: "ACTIVE",
592
- label: msg.activeLabel,
593
- title: msg.activeTitle,
594
- description: msg.activeDescription,
595
- asOf: latestPublished ?? null,
596
- createdAt: null,
597
- publishedAt: latestPublished ?? null,
598
- authorEmail: null,
599
- plans: sortPlansFn(plans),
600
- draftCount: 0,
601
- regressionCount: 0
602
- };
603
- }
604
- function buildHistoricalSnapshots(data, sortPlansFn, locale) {
605
- const msg = planVersionsMessages[locale].catalog;
606
- const allPublishedAt = /* @__PURE__ */ new Set();
607
- for (const r of data.planVersions) if (r.publishedAt) allPublishedAt.add(r.publishedAt);
608
- if (allPublishedAt.size === 0) return [];
609
- const planByKey = groupBy(data.planVersions, (r) => r.planId);
610
- const liveTimestamps = /* @__PURE__ */ new Set();
611
- for (const rows of planByKey.values()) {
612
- const live = findCurrentLive(rows);
613
- if (live?.publishedAt) liveTimestamps.add(live.publishedAt);
614
- }
615
- const liveSorted = [...liveTimestamps].sort();
616
- const latestLive = liveSorted[liveSorted.length - 1];
617
- const sortedDesc = [...allPublishedAt].sort((a, b) => Date.parse(b) - Date.parse(a));
618
- const out = [];
619
- for (const ts of sortedDesc) {
620
- if (latestLive && Date.parse(ts) >= Date.parse(latestLive)) continue;
621
- const tMs = Date.parse(ts) + 1;
622
- const plans = [];
623
- for (const [, rows] of planByKey) {
624
- const live = findLiveAt(rows, tMs);
625
- if (live) plans.push(resolvePlan(live, null));
626
- }
627
- if (plans.length === 0) continue;
628
- const publishedAtThisEvent = data.planVersions.filter((r) => r.publishedAt === ts);
629
- const regressionCount = publishedAtThisEvent.filter((r) => !r.nonRegressive).length;
630
- const author = publishedAtThisEvent[0]?.publishedByUserId ?? null;
631
- out.push({
632
- id: `hist-${ts}`,
633
- kind: "historical",
634
- status: "ARCHIVED",
635
- label: dateLabel(ts, locale),
636
- title: summarizeEvent(publishedAtThisEvent, msg),
637
- description: detailEvent(publishedAtThisEvent, msg),
638
- asOf: ts,
639
- createdAt: ts,
640
- publishedAt: ts,
641
- authorEmail: author,
642
- plans: sortPlansFn(plans),
643
- draftCount: 0,
644
- regressionCount
645
- });
646
- }
647
- return out;
648
- }
649
- function summarizeEvent(rows, msg) {
650
- if (rows.length === 0) return msg.publishEvent;
651
- if (rows.length === 1) {
652
- const r = rows[0];
653
- return formatMessage(msg.publishEventSingle, { planId: r.planId, version: r.version });
654
- }
655
- return formatMessage(msg.publishEventMultiple, { count: rows.length });
656
- }
657
- function detailEvent(rows, msg) {
658
- if (rows.length === 0) return "";
659
- const note = rows[0]?.changeNote ?? "";
660
- return note.length > 0 ? note : msg.reconstructedSnapshot;
661
- }
662
- function sortPlansBy(order) {
663
- if (!order || order.length === 0) {
664
- return (rows) => [...rows].sort((a, b) => a.planId.localeCompare(b.planId));
665
- }
666
- const idx = {};
667
- for (let i = 0; i < order.length; i++) idx[order[i]] = i;
668
- return (rows) => [...rows].sort((a, b) => {
669
- const ai = idx[a.planId] ?? Number.POSITIVE_INFINITY;
670
- const bi = idx[b.planId] ?? Number.POSITIVE_INFINITY;
671
- if (ai !== bi) return ai - bi;
672
- return a.planId.localeCompare(b.planId);
673
- });
674
- }
675
- function buildSnapshots(data, options = {}) {
676
- const locale = options.locale ?? DEFAULT_SA_LOCALE;
677
- const sortPlansFn = sortPlansBy(options.planSortOrder);
678
- const drafts = buildDraftsSnapshot(data, sortPlansFn, locale);
679
- const active = buildActiveSnapshot(data, sortPlansFn, locale);
680
- const historical = buildHistoricalSnapshots(data, sortPlansFn, locale);
681
- const out = [drafts];
682
- if (active) out.push(active);
683
- out.push(...historical);
684
- return out;
685
- }
686
- function listOpenDrafts(data) {
687
- return {
688
- plans: sortByPublishedDesc(data.planVersions).filter((r) => r.publishedAt === null)
689
- };
690
- }
691
-
692
474
  export {
693
475
  ADMIN_UI_VERSION,
694
476
  HttpJsonError,
@@ -708,7 +490,5 @@ export {
708
490
  ActionDefNotInManifestError,
709
491
  ActionRegistry,
710
492
  BatchColumnDriftError,
711
- BatchColumnFetcher,
712
- buildSnapshots,
713
- listOpenDrafts
493
+ BatchColumnFetcher
714
494
  };
@@ -1312,7 +1312,6 @@ var navMessages = defineMessages(
1312
1312
  subscriptions: "Abonnements",
1313
1313
  promoCodes: "Promo-Codes",
1314
1314
  plans: "Pl\xE4ne & Versionen",
1315
- planVersions: "Plan-Versionen",
1316
1315
  audit: "Audit-Log",
1317
1316
  users: "Benutzer",
1318
1317
  pilots: "Piloten",
@@ -1336,7 +1335,6 @@ var navMessages = defineMessages(
1336
1335
  subscriptions: "Subscriptions",
1337
1336
  promoCodes: "Promo codes",
1338
1337
  plans: "Plans & versions",
1339
- planVersions: "Plan versions",
1340
1338
  audit: "Audit log",
1341
1339
  users: "Users",
1342
1340
  pilots: "Pilots",
@@ -1979,21 +1977,6 @@ var planEditorMessages = defineMessages(
1979
1977
  var planVersionsMessages = defineMessages(
1980
1978
  {
1981
1979
  compareEnd: "Vergleich beenden",
1982
- page: {
1983
- loadingCatalog: "Catalog wird geladen\u2026",
1984
- noAuditLoader: "Kein Audit-Loader konfiguriert."
1985
- },
1986
- header: {
1987
- modeList: "Plan-Liste",
1988
- modeMatrix: "Feature-Matrix",
1989
- modeAudit: "Aktivit\xE4t",
1990
- publishedOn: "Publiziert {date}",
1991
- openDrafts: "offene Drafts",
1992
- regressionOne: "Regression",
1993
- regressionMany: "Regressionen",
1994
- startPublishFlow: "Publish-Flow starten",
1995
- compareModeHint: "Vergleichsmodus aktiv \u2014 andere Ansichten deaktiviert"
1996
- },
1997
1980
  status: {
1998
1981
  draft: "DRAFT",
1999
1982
  active: "AKTIV",
@@ -2007,29 +1990,6 @@ var planVersionsMessages = defineMessages(
2007
1990
  unknown: "unbekannt",
2008
1991
  compareHint: "Rechtsklick auf Snapshot \u2192 vergleichen"
2009
1992
  },
2010
- list: {
2011
- kpiPlans: "Pakete",
2012
- kpiSelfService: "Self-Service",
2013
- kpiOfTotal: "von {count}",
2014
- kpiFeaturesTotal: "Features gesamt",
2015
- missingPlansLabel: "Fehlende Pakete:",
2016
- missingPlansHint: "\u2014 keine Live-Version in diesem Snapshot.",
2017
- createDraftFor: "Draft f\xFCr {planId}",
2018
- colPlan: "Paket",
2019
- colPriceNet: "Preis (netto)",
2020
- colFeatures: "Features",
2021
- draftHintLabel: "Arbeitsstand:",
2022
- draftHintBefore: "Drafts oben in der Liste. Limits, Preise und Features per Klick auf",
2023
- draftHintEditButton: '\u201EBearbeiten"',
2024
- draftHintMiddle: "\xE4ndern (ohne MFA). Erst",
2025
- draftHintPublishFlow: "Publish-Flow",
2026
- draftHintAfter: "(Validate \u2192 Diff-Review \u2192 MFA \u2192 Apply) macht sie f\xFCr k\xFCnftige Renewals wirksam."
2027
- },
2028
- matrix: {
2029
- colFeature: "Feature",
2030
- perMonthShort: "/Mo",
2031
- fallbackGroup: "Sonstige"
2032
- },
2033
1993
  diff: {
2034
1994
  legend: "Vergleich",
2035
1995
  plansChanged: "Pakete ge\xE4ndert",
@@ -2053,24 +2013,10 @@ var planVersionsMessages = defineMessages(
2053
2013
  yearlyNet: "Preis j\xE4hrlich (netto)",
2054
2014
  unitSize: "Einheitsgr\xF6\xDFe"
2055
2015
  },
2056
- audit: {
2057
- title: "Aktivit\xE4t",
2058
- eventCount: "{count} Events",
2059
- loading: "Audit-Trail wird geladen\u2026",
2060
- empty: "Keine Plan-/Add-on-Events im Audit-Log gefunden.",
2061
- actionPlanPublished: "Plan publiziert",
2062
- actionPlanDraftCreated: "Plan-Draft angelegt",
2063
- actionPlanDraftUpdated: "Plan-Draft ge\xE4ndert",
2064
- actionPlanDraftDeleted: "Plan-Draft gel\xF6scht",
2065
- actionCatalogPublished: "Catalog publiziert",
2066
- detailRegression: "Mit mindestens einer Verschlechterung publiziert.",
2067
- detailFieldsChanged: "{count} Felder ge\xE4ndert."
2068
- },
2069
2016
  bulkPublish: {
2070
2017
  changeNoteRequired: "changeNote ist Pflicht beim Publish."
2071
2018
  },
2072
2019
  format: {
2073
- priceIndividual: "individuell",
2074
2020
  today: "heute",
2075
2021
  yesterday: "gestern",
2076
2022
  daysAgo: "vor {count} Tagen",
@@ -2079,40 +2025,10 @@ var planVersionsMessages = defineMessages(
2079
2025
  monthsAgo: "vor {count} Monaten",
2080
2026
  yearsAgoOne: "vor {count} Jahr",
2081
2027
  yearsAgoMany: "vor {count} Jahren"
2082
- },
2083
- catalog: {
2084
- draftsLabel: "Arbeitsstand",
2085
- draftsTitleEmpty: "Keine offenen Drafts",
2086
- draftsTitleOne: "{count} offener Draft bereit f\xFCr Publish",
2087
- draftsTitleMany: "{count} offene Drafts bereit f\xFCr Publish",
2088
- draftsDescriptionEmpty: "Lege einen Draft an, um Limits, Preise oder Features zu \xE4ndern. Drafts sind ohne MFA editierbar und werden erst beim Publish wirksam.",
2089
- draftsDescription: "Diese Tabelle zeigt, wie der Catalog nach Publish aller Drafts aussehen w\xFCrde. Bestehende Mandanten bleiben auf der vorherigen Version, bis sie aktiv migriert werden.",
2090
- activeLabel: "Aktuell",
2091
- activeTitle: "Live-Catalog",
2092
- activeDescription: "Diese Plan-Versionen sind aktuell f\xFCr neue Onboardings und f\xFCr Renewals nach Stichtag aktiv.",
2093
- publishEvent: "Publish-Event",
2094
- publishEventSingle: "{planId} v{version} publiziert",
2095
- publishEventMultiple: "{count} Versionen publiziert",
2096
- reconstructedSnapshot: "Snapshot rekonstruiert aus per-Entity-Versionen."
2097
2028
  }
2098
2029
  },
2099
2030
  {
2100
2031
  compareEnd: "End comparison",
2101
- page: {
2102
- loadingCatalog: "Loading catalog\u2026",
2103
- noAuditLoader: "No audit loader configured."
2104
- },
2105
- header: {
2106
- modeList: "Plan list",
2107
- modeMatrix: "Feature matrix",
2108
- modeAudit: "Activity",
2109
- publishedOn: "Published {date}",
2110
- openDrafts: "open drafts",
2111
- regressionOne: "regression",
2112
- regressionMany: "regressions",
2113
- startPublishFlow: "Start publish flow",
2114
- compareModeHint: "Comparison mode active \u2014 other views disabled"
2115
- },
2116
2032
  status: {
2117
2033
  draft: "DRAFT",
2118
2034
  active: "ACTIVE",
@@ -2126,29 +2042,6 @@ var planVersionsMessages = defineMessages(
2126
2042
  unknown: "unknown",
2127
2043
  compareHint: "Right-click a snapshot \u2192 compare"
2128
2044
  },
2129
- list: {
2130
- kpiPlans: "Plans",
2131
- kpiSelfService: "Self-service",
2132
- kpiOfTotal: "of {count}",
2133
- kpiFeaturesTotal: "Features total",
2134
- missingPlansLabel: "Missing plans:",
2135
- missingPlansHint: "\u2014 no live version in this snapshot.",
2136
- createDraftFor: "Draft for {planId}",
2137
- colPlan: "Plan",
2138
- colPriceNet: "Price (net)",
2139
- colFeatures: "Features",
2140
- draftHintLabel: "Working state:",
2141
- draftHintBefore: "Drafts at the top of the list. Change limits, prices and features by clicking",
2142
- draftHintEditButton: '"Edit"',
2143
- draftHintMiddle: "(without MFA). Only the",
2144
- draftHintPublishFlow: "publish flow",
2145
- draftHintAfter: "(validate \u2192 diff review \u2192 MFA \u2192 apply) makes them effective for future renewals."
2146
- },
2147
- matrix: {
2148
- colFeature: "Feature",
2149
- perMonthShort: "/mo",
2150
- fallbackGroup: "Other"
2151
- },
2152
2045
  diff: {
2153
2046
  legend: "Comparison",
2154
2047
  plansChanged: "Plans changed",
@@ -2172,24 +2065,10 @@ var planVersionsMessages = defineMessages(
2172
2065
  yearlyNet: "Price yearly (net)",
2173
2066
  unitSize: "Unit size"
2174
2067
  },
2175
- audit: {
2176
- title: "Activity",
2177
- eventCount: "{count} events",
2178
- loading: "Loading audit trail\u2026",
2179
- empty: "No plan/add-on events found in the audit log.",
2180
- actionPlanPublished: "Plan published",
2181
- actionPlanDraftCreated: "Plan draft created",
2182
- actionPlanDraftUpdated: "Plan draft changed",
2183
- actionPlanDraftDeleted: "Plan draft deleted",
2184
- actionCatalogPublished: "Catalog published",
2185
- detailRegression: "Published with at least one regression.",
2186
- detailFieldsChanged: "{count} fields changed."
2187
- },
2188
2068
  bulkPublish: {
2189
2069
  changeNoteRequired: "changeNote is required when publishing."
2190
2070
  },
2191
2071
  format: {
2192
- priceIndividual: "custom",
2193
2072
  today: "today",
2194
2073
  yesterday: "yesterday",
2195
2074
  daysAgo: "{count} days ago",
@@ -2198,21 +2077,6 @@ var planVersionsMessages = defineMessages(
2198
2077
  monthsAgo: "{count} months ago",
2199
2078
  yearsAgoOne: "{count} year ago",
2200
2079
  yearsAgoMany: "{count} years ago"
2201
- },
2202
- catalog: {
2203
- draftsLabel: "Working state",
2204
- draftsTitleEmpty: "No open drafts",
2205
- draftsTitleOne: "{count} open draft ready to publish",
2206
- draftsTitleMany: "{count} open drafts ready to publish",
2207
- draftsDescriptionEmpty: "Create a draft to change limits, prices or features. Drafts are editable without MFA and only take effect when published.",
2208
- draftsDescription: "This table shows what the catalog would look like after publishing all drafts. Existing tenants stay on the previous version until they are actively migrated.",
2209
- activeLabel: "Current",
2210
- activeTitle: "Live catalog",
2211
- activeDescription: "These plan versions are currently active for new onboardings and for renewals after the effective date.",
2212
- publishEvent: "Publish event",
2213
- publishEventSingle: "{planId} v{version} published",
2214
- publishEventMultiple: "{count} versions published",
2215
- reconstructedSnapshot: "Snapshot reconstructed from per-entity versions."
2216
2080
  }
2217
2081
  }
2218
2082
  );
@@ -3224,7 +3088,6 @@ export {
3224
3088
  mergeMessages,
3225
3089
  navMessages,
3226
3090
  formatMessage,
3227
- planVersionsMessages,
3228
3091
  formatCurrency,
3229
3092
  SA_MESSAGES,
3230
3093
  resolveMessages
@@ -2,7 +2,7 @@ import {
2
2
  DEFAULT_SA_LOCALE,
3
3
  SA_INTL_LOCALES,
4
4
  resolveMessages
5
- } from "./chunk-X5SQ5HMB.js";
5
+ } from "./chunk-TBLXKSTR.js";
6
6
 
7
7
  // src/vue/super-admin-context.ts
8
8
  var SUPER_ADMIN_BRAND_KEY = /* @__PURE__ */ Symbol.for(