@saasicat/ui-vue 0.3.0 → 0.5.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.
- package/README.md +47 -4
- package/dist/action-registry-CQ2wL3R-.d.cts +85 -0
- package/dist/action-registry-CQ2wL3R-.d.ts +85 -0
- package/dist/chunk-3YP2ZAOD.js +63 -0
- package/dist/chunk-EH7TOD4H.js +718 -0
- package/dist/chunk-LVGUSD3T.js +26 -0
- package/dist/client/index.cjs +785 -0
- package/dist/client/index.d.cts +295 -0
- package/dist/client/index.d.ts +295 -0
- package/dist/client/index.js +52 -0
- package/dist/index.cjs +787 -834
- package/dist/index.d.cts +267 -841
- package/dist/index.d.ts +267 -841
- package/dist/index.js +284 -1059
- package/dist/quasar/index.cjs +159 -0
- package/dist/quasar/index.d.cts +86 -0
- package/dist/quasar/index.d.ts +86 -0
- package/dist/quasar/index.js +91 -0
- package/dist/ui-notify-COUzXEQ4.d.ts +178 -0
- package/dist/ui-notify-D_eAAwRh.d.cts +178 -0
- package/package.json +23 -3
- package/src/client/index.ts +25 -0
- package/src/components/FeatureGate.vue +1 -1
- package/src/components/plan/PlanCycleToggle.vue +1 -1
- package/src/components/plan/PlanGrid.vue +2 -2
- package/src/components/plan/PriceSummary.vue +1 -1
- package/src/components/plan/PromoCodeInput.vue +1 -1
- package/src/components/plan/PublicBundleGrid.vue +1 -1
- package/src/index.ts +82 -79
- package/src/pages-standard/AdminLayout.vue +2 -2
- package/src/pages-standard/DashboardPage.vue +2 -2
- package/src/pages-standard/EmailHistoryPage.vue +9 -13
- package/src/pages-standard/MarketingCatalogPage.vue +5 -5
- package/src/pages-standard/PilotsPage.vue +9 -13
- package/src/pages-standard/PlanVersionsPage.vue +2 -2
- package/src/pages-standard/PlansPage.vue +2 -2
- package/src/pages-standard/PlatformEmailPage.vue +7 -5
- package/src/pages-standard/PromoCodesPage.vue +8 -22
- package/src/pages-standard/SuperAdminLoginPage.vue +3 -3
- package/src/pages-standard/SuperAdminSetupWizard.vue +2 -2
- package/src/pages-standard/TenantDetailPage.vue +4 -4
- package/src/pages-standard/TenantsPage.vue +3 -3
- package/src/pages-standard/UsersPage.vue +6 -12
- package/src/pages-standard/plan-versions/PlanVersionHeader.vue +1 -1
- package/src/pages-standard/plan-versions/PlanVersionsAudit.vue +1 -1
- package/src/pages-standard/plan-versions/PlanVersionsDiff.vue +1 -1
- package/src/pages-standard/plan-versions/PlanVersionsList.vue +1 -1
- package/src/pages-standard/plan-versions/PlanVersionsMatrix.vue +1 -1
- package/src/pages-standard/plan-versions/PlanVersionsTimeline.vue +1 -1
- package/src/pages-tenant/MySubscriptionBundlesPage.vue +1 -1
- package/src/pages-tenant/OnboardingConfigurator.vue +3 -3
- package/src/pages-tenant/PackageSnapshotPanel.vue +1 -1
- package/src/pages-tenant/PlanChangeWizard.vue +2 -2
- package/src/pages-tenant/TenantPlanSection.vue +3 -3
- package/src/pages-tenant/tenant-plan-section/BundlePreviewDialog.vue +1 -1
- package/src/pages-tenant/tenant-plan-section/TenantBundleStore.vue +2 -2
- package/src/pages-tenant/tenant-plan-section/TenantPlanCardHeader.vue +1 -1
- package/src/pages-tenant/tenant-plan-section/TenantUsageGrid.vue +1 -1
- package/src/quasar/create-super-admin-app.ts +173 -0
- package/src/quasar/index.ts +11 -0
- package/src/quasar/notify.ts +30 -0
- package/src/{manifest-store-factory.ts → vue/manifest-store-factory.ts} +1 -1
- package/src/{platform-loaders.ts → vue/platform-loaders.ts} +4 -4
- package/src/{project-page-host.ts → vue/project-page-host.ts} +1 -1
- package/src/{create-super-admin-app.ts → vue/super-admin-context.ts} +20 -139
- package/src/vue/ui-notify.ts +30 -0
- package/src/{use-actions.ts → vue/use-actions.ts} +1 -1
- package/src/{use-api-list.ts → vue/use-api-list.ts} +1 -1
- package/src/{use-batch-columns.ts → vue/use-batch-columns.ts} +1 -1
- package/src/{use-bulk-publish.ts → vue/use-bulk-publish.ts} +1 -1
- package/src/{use-bundle-versions-map.ts → vue/use-bundle-versions-map.ts} +1 -1
- package/src/{use-bundles.ts → vue/use-bundles.ts} +1 -1
- package/src/{use-business-types.ts → vue/use-business-types.ts} +1 -1
- package/src/{use-catalog-entries.ts → vue/use-catalog-entries.ts} +1 -1
- package/src/{use-discovery.ts → vue/use-discovery.ts} +1 -1
- package/src/{use-entitlement.ts → vue/use-entitlement.ts} +1 -1
- package/src/{use-live-plan-versions.ts → vue/use-live-plan-versions.ts} +1 -1
- package/src/{use-manifest.ts → vue/use-manifest.ts} +1 -1
- package/src/{use-marketing-projections.ts → vue/use-marketing-projections.ts} +1 -1
- package/src/{use-nav.ts → vue/use-nav.ts} +1 -1
- package/src/{use-plans.ts → vue/use-plans.ts} +1 -1
- package/src/{use-promotions.ts → vue/use-promotions.ts} +1 -1
- package/src/{use-public-boot.ts → vue/use-public-boot.ts} +1 -1
- package/src/{use-super-admin-context.ts → vue/use-super-admin-context.ts} +2 -2
- package/src/{use-tenant-action-flow.ts → vue/use-tenant-action-flow.ts} +1 -1
- package/src/{use-tenant-billing-catalog.ts → vue/use-tenant-billing-catalog.ts} +2 -2
- package/src/{use-tenant-billing.ts → vue/use-tenant-billing.ts} +2 -2
- package/src/{use-tenant-manifest.ts → vue/use-tenant-manifest.ts} +1 -1
- package/src/{use-tenant-subscription-bundles.ts → vue/use-tenant-subscription-bundles.ts} +1 -1
- package/dist/testing-e2e/admin-pages-suite.d.cts +0 -37
- package/dist/testing-e2e/admin-pages-suite.d.ts +0 -37
- /package/src/{action-registry.ts → client/action-registry.ts} +0 -0
- /package/src/{batch-column-fetcher.ts → client/batch-column-fetcher.ts} +0 -0
- /package/src/{boot-loader.ts → client/boot-loader.ts} +0 -0
- /package/src/{http-json.ts → client/http-json.ts} +0 -0
- /package/src/{manifest-loader.ts → client/manifest-loader.ts} +0 -0
- /package/src/{nav-builder.ts → client/nav-builder.ts} +0 -0
- /package/src/{plan-versions-catalog.ts → client/plan-versions-catalog.ts} +0 -0
- /package/src/{types.ts → client/types.ts} +0 -0
- /package/src/{version.ts → client/version.ts} +0 -0
- /package/src/{create-admin-routes.ts → vue/create-admin-routes.ts} +0 -0
- /package/src/{entitlement-provider.ts → vue/entitlement-provider.ts} +0 -0
- /package/src/{feature-router-guard.ts → vue/feature-router-guard.ts} +0 -0
- /package/src/{use-audit-entries.ts → vue/use-audit-entries.ts} +0 -0
- /package/src/{use-plan-editor.ts → vue/use-plan-editor.ts} +0 -0
- /package/src/{use-plan-versions.ts → vue/use-plan-versions.ts} +0 -0
- /package/src/{use-platform-tenant-actions.ts → vue/use-platform-tenant-actions.ts} +0 -0
- /package/src/{use-subscription-draft.ts → vue/use-subscription-draft.ts} +0 -0
- /package/src/{use-tenants.ts → vue/use-tenants.ts} +0 -0
package/dist/index.d.ts
CHANGED
|
@@ -1,66 +1,47 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { BootLoaderOptions, ManifestLoaderOptions, BuildRouteEntry, SidebarSection, NavBuilderOptions, BatchColumnData, BatchColumnFetcherOptions, BootLoader, ManifestLoader } from './client/index.js';
|
|
2
|
+
export { ADMIN_UI_VERSION, BatchColumnDriftError, BatchColumnFetcher, BatchColumnRow, BatchColumnValue, BootLoadError, BuildSnapshotsOptions, CachedManifestEntry, CatalogSnapshot, DEFAULT_SECTION_ORDER, DEFAULT_STANDARD_PAGE_ROUTES, HttpJsonError, ManifestLoadError, ParamStyle, RawCatalogData, ResolvedPlan, SidebarItem, SnapshotKind, buildRoutes, buildSidebar, buildSnapshots, getJson, listOpenDrafts, postJson, resolveExtension, trimTrailingSlashes } from './client/index.js';
|
|
3
|
+
import { H as HttpClient, a as ActionRegistry, A as ActionHandler, K as KvStore } from './action-registry-CQ2wL3R-.js';
|
|
4
|
+
export { b as ActionDefNotInManifestError, c as HttpResponse, M as MissingHandlerError, R as ResolvedAction, d as defaultHttpClient, e as defaultKvStore } from './action-registry-CQ2wL3R-.js';
|
|
5
|
+
import { A as ActionsMap, a as SuperAdminBrand, b as SuperAdminEndpoints, E as ExtensionsMap, c as SuperAdminLoginAdapter } from './ui-notify-COUzXEQ4.js';
|
|
6
|
+
export { d as ExtensionLoader, I as InstallPlugin, e as SUPER_ADMIN_ACTIONS_KEY, f as SUPER_ADMIN_BRAND_KEY, g as SUPER_ADMIN_ENDPOINTS_KEY, h as SUPER_ADMIN_EXTENSIONS_KEY, i as SUPER_ADMIN_HTTP_KEY, j as SUPER_ADMIN_LOGIN_ADAPTER_KEY, k as SUPER_ADMIN_MANIFEST_KEY, l as SUPER_ADMIN_NOTIFY_KEY, m as SuperAdminAuthGuardOptions, S as SuperAdminGuardOptions, n as SuperAdminLoginResult, o as SuperAdminManifestGuardOptions, U as UiNotify, p as UiNotifyKind, q as UiNotifyOptions, r as buildNavigationGuard } from './ui-notify-COUzXEQ4.js';
|
|
7
|
+
import { AdminManifest, TenantListFilter, TenantDto, AuditQuery, AuditEntry, FeatureUiRegistry, PromoPreviewResponse, OnboardingSelectionRequest, PublicMarketingBundle, FeatureDef, FeatureKey, PublicBootResponse, DiscoverySnapshot, CapabilityCatalogEntryRow, FeatureCatalogEntryRow, QuotaCatalogEntryRow, ReviewCatalogEntryData, CatalogEntryI18n, UpdateCatalogEntryBaseData, SyncDiscoveryResult, BundleVersionRow, CreateBundleVersionDraftData, BundleVersionMutationResult, UpdateBundleVersionDraftData, BundleRow, CreateBundleData, UpdateBundleData, SubscriptionBundleRecord, BusinessTypeVersionRow, CreateBusinessTypeVersionDraftData, BusinessTypeVersionMutationResult, UpdateBusinessTypeVersionDraftData, BusinessTypeRow, CreateBusinessTypeData, UpdateBusinessTypeData, MarketingProjectionFilter, MarketingProjectionRow, CreateMarketingProjectionData, UpdateMarketingProjectionData, PromotionRow, CreatePromotionData, UpdatePromotionData, PlanVersionRow as PlanVersionRow$1, CreatePlanVersionDraftData, PlanVersionMutationResult, UpdatePlanVersionDraftData, PlanRow, CreatePlanData, UpdatePlanData, TenantActionDef } from '@saasicat/types';
|
|
8
|
+
import { RouteRecordRaw, NavigationGuardWithThis } from 'vue-router';
|
|
3
9
|
import * as vue from 'vue';
|
|
4
|
-
import { Ref, InjectionKey, App, ComputedRef
|
|
5
|
-
import {
|
|
6
|
-
import { Pinia, StoreDefinition } from 'pinia';
|
|
10
|
+
import { Ref, InjectionKey, App, ComputedRef } from 'vue';
|
|
11
|
+
import { StoreDefinition } from 'pinia';
|
|
7
12
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
/**
|
|
11
|
-
|
|
12
|
-
* implementation (e.g. an axios wrapper that already injects auth headers
|
|
13
|
-
* and tenant headers).
|
|
14
|
-
*/
|
|
15
|
-
type HttpClient = (url: string, init?: {
|
|
16
|
-
method?: string;
|
|
17
|
-
headers?: Record<string, string>;
|
|
18
|
-
body?: string;
|
|
19
|
-
}) => Promise<HttpResponse>;
|
|
20
|
-
interface HttpResponse {
|
|
21
|
-
status: number;
|
|
22
|
-
headers: {
|
|
23
|
-
get(name: string): string | null;
|
|
24
|
-
};
|
|
25
|
-
json(): Promise<unknown>;
|
|
26
|
-
text(): Promise<string>;
|
|
27
|
-
}
|
|
28
|
-
/** Simple persistence adapter; default is `localStorage`. */
|
|
29
|
-
interface KvStore {
|
|
30
|
-
get(key: string): string | null;
|
|
31
|
-
set(key: string, value: string): void;
|
|
32
|
-
remove(key: string): void;
|
|
33
|
-
}
|
|
13
|
+
/** Returns the `extensions:` map registered in `createSuperAdminApp()`. */
|
|
14
|
+
declare function useSuperAdminExtensions(): ExtensionsMap;
|
|
15
|
+
/** Returns the `actions:` map registered in `createSuperAdminApp()`. */
|
|
16
|
+
declare function useSuperAdminActions(): ActionsMap;
|
|
34
17
|
/**
|
|
35
|
-
* Returns
|
|
36
|
-
*
|
|
18
|
+
* Returns the app branding. Throws when the component is rendered outside a
|
|
19
|
+
* `createSuperAdminApp()` shell — that is a setup bug, not a runtime
|
|
20
|
+
* problem.
|
|
37
21
|
*/
|
|
38
|
-
declare function
|
|
22
|
+
declare function useSuperAdminBrand(): SuperAdminBrand;
|
|
23
|
+
/** Returns the app endpoints (apiBase, publicBootEndpoint, manifestEndpoint). */
|
|
24
|
+
declare function useSuperAdminEndpoints(): Required<SuperAdminEndpoints>;
|
|
39
25
|
/**
|
|
40
|
-
*
|
|
41
|
-
*
|
|
26
|
+
* Returns the manifest accessor that was provided via
|
|
27
|
+
* `createSuperAdminApp({ manifestGuard: { getManifest } })`.
|
|
28
|
+
* Returns `null` if the app did not pass an accessor — components
|
|
29
|
+
* (e.g. `<ProjectPageHost>`) must handle the null case cleanly, because
|
|
30
|
+
* the accessor is optional.
|
|
42
31
|
*/
|
|
43
|
-
declare function
|
|
44
|
-
|
|
32
|
+
declare function useSuperAdminManifest(): AdminManifest | null;
|
|
45
33
|
/**
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
*
|
|
34
|
+
* Returns the login adapter the app registered via
|
|
35
|
+
* `createSuperAdminApp({ loginAdapter })`. Throws when none was
|
|
36
|
+
* set — the shared `<SuperAdminLoginPage>` needs it.
|
|
49
37
|
*/
|
|
50
|
-
declare
|
|
51
|
-
readonly status: number;
|
|
52
|
-
readonly code?: string | undefined;
|
|
53
|
-
constructor(status: number, code?: string | undefined);
|
|
54
|
-
}
|
|
38
|
+
declare function useSuperAdminLoginAdapter(): SuperAdminLoginAdapter;
|
|
55
39
|
/**
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* end in many slashes.
|
|
40
|
+
* Returns the pre-login `HttpClient` (boot, first-run setup) the app registered
|
|
41
|
+
* via `createSuperAdminApp({ http })`. Falls back to `defaultHttpClient()`
|
|
42
|
+
* if none was provided (e.g. in isolated tests).
|
|
60
43
|
*/
|
|
61
|
-
declare function
|
|
62
|
-
declare function getJson<T>(http: HttpClient, url: string): Promise<T>;
|
|
63
|
-
declare function postJson<T>(http: HttpClient, url: string, body: unknown): Promise<T>;
|
|
44
|
+
declare function useSuperAdminHttp(): HttpClient;
|
|
64
45
|
|
|
65
46
|
/** Eager or lazy component loader (`() => import(...)`). */
|
|
66
47
|
type RouteComponent = NonNullable<RouteRecordRaw['component']>;
|
|
@@ -86,265 +67,6 @@ interface CreateAdminRoutesOptions {
|
|
|
86
67
|
}
|
|
87
68
|
declare function createAdminRoutes(options: CreateAdminRoutesOptions): RouteRecordRaw[];
|
|
88
69
|
|
|
89
|
-
interface BootLoaderOptions {
|
|
90
|
-
/**
|
|
91
|
-
* Fully-qualified boot endpoint incl. app globalPrefix
|
|
92
|
-
* (`/api/admin/boot`, `/api/v1/admin/boot`, …). Mandatory.
|
|
93
|
-
*/
|
|
94
|
-
endpoint: string;
|
|
95
|
-
/** Defaults to `defaultHttpClient()` (= `fetch`). */
|
|
96
|
-
http?: HttpClient;
|
|
97
|
-
}
|
|
98
|
-
declare class BootLoadError extends Error {
|
|
99
|
-
readonly status: number;
|
|
100
|
-
constructor(status: number, message: string);
|
|
101
|
-
}
|
|
102
|
-
declare class BootLoader {
|
|
103
|
-
private readonly endpoint;
|
|
104
|
-
private readonly http;
|
|
105
|
-
constructor(options: BootLoaderOptions);
|
|
106
|
-
load(): Promise<PublicBootResponse>;
|
|
107
|
-
}
|
|
108
|
-
|
|
109
|
-
interface ManifestLoaderOptions {
|
|
110
|
-
/**
|
|
111
|
-
* Fully-qualified manifest endpoint incl. app globalPrefix
|
|
112
|
-
* (`/api/admin/manifest`, `/api/v1/admin/manifest`, …). Mandatory.
|
|
113
|
-
*/
|
|
114
|
-
endpoint: string;
|
|
115
|
-
http?: HttpClient;
|
|
116
|
-
storage?: KvStore;
|
|
117
|
-
/**
|
|
118
|
-
* Storage key prefix — consumers with multiple apps under one domain
|
|
119
|
-
* set this to e.g. `'ma:'` or `'da:'`, so that the caches
|
|
120
|
-
* are separated.
|
|
121
|
-
*/
|
|
122
|
-
storageKeyPrefix?: string;
|
|
123
|
-
/**
|
|
124
|
-
* Auth header for `Authorization: Bearer <token>`. Sent with every
|
|
125
|
-
* request. The consumer supplies a function that pulls the
|
|
126
|
-
* current token from the auth store.
|
|
127
|
-
*/
|
|
128
|
-
getAuthToken?: () => string | null;
|
|
129
|
-
}
|
|
130
|
-
declare class ManifestLoadError extends Error {
|
|
131
|
-
readonly status: number;
|
|
132
|
-
constructor(status: number, message: string);
|
|
133
|
-
}
|
|
134
|
-
interface CachedManifestEntry {
|
|
135
|
-
etag: string;
|
|
136
|
-
body: AdminManifest;
|
|
137
|
-
}
|
|
138
|
-
declare class ManifestLoader {
|
|
139
|
-
private readonly endpoint;
|
|
140
|
-
private readonly http;
|
|
141
|
-
private readonly storage;
|
|
142
|
-
private readonly bodyKey;
|
|
143
|
-
private readonly etagKey;
|
|
144
|
-
private readonly getAuthToken?;
|
|
145
|
-
constructor(options: ManifestLoaderOptions);
|
|
146
|
-
/**
|
|
147
|
-
* Loads the current manifest. On a cache hit (304) the cached
|
|
148
|
-
* body is returned — otherwise the fresh server body.
|
|
149
|
-
*/
|
|
150
|
-
load(): Promise<AdminManifest>;
|
|
151
|
-
/** Reads the cached manifest body from storage; null if absent. */
|
|
152
|
-
readCachedBody(): CachedManifestEntry | null;
|
|
153
|
-
/** Clears the cache — e.g. on logout or after `manifest reload`. */
|
|
154
|
-
clearCache(): void;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
/**
|
|
158
|
-
* Default routes for the platform standard pages. Consumers may override this
|
|
159
|
-
* via the `standardPageRoutes` option (e.g. `/admin/users` →
|
|
160
|
-
* `/admin/team`).
|
|
161
|
-
*/
|
|
162
|
-
declare const DEFAULT_STANDARD_PAGE_ROUTES: Record<StandardPageKey, string>;
|
|
163
|
-
interface BuildRouteEntry {
|
|
164
|
-
/** Stable identifier — the key for standard pages, the `id` for project pages. */
|
|
165
|
-
id: string;
|
|
166
|
-
/** Route path (`/admin/...`). */
|
|
167
|
-
path: string;
|
|
168
|
-
/** Visible for the UI. */
|
|
169
|
-
label: string;
|
|
170
|
-
icon?: string;
|
|
171
|
-
/** Sort key for drawer groups. */
|
|
172
|
-
navSection?: string;
|
|
173
|
-
/** Lookup key in the `extensions:` map (project) or the platform standard map. */
|
|
174
|
-
componentKey: string;
|
|
175
|
-
/** Required capability or null. */
|
|
176
|
-
requiredCapability: string | null;
|
|
177
|
-
/** Platform standard page (`true`) or project page (`false`). */
|
|
178
|
-
isStandard: boolean;
|
|
179
|
-
/** Hint for anticipatory lazy loading. */
|
|
180
|
-
prefetchOnIdle?: boolean;
|
|
181
|
-
}
|
|
182
|
-
interface NavBuilderOptions {
|
|
183
|
-
/**
|
|
184
|
-
* Optional: overrides the default routes for certain standard pages.
|
|
185
|
-
* Consumers set this if they want an alternative URL structure.
|
|
186
|
-
*/
|
|
187
|
-
standardPageRoutes?: Partial<Record<StandardPageKey, string>>;
|
|
188
|
-
/**
|
|
189
|
-
* Default labels for standard pages — consumers may localize.
|
|
190
|
-
*/
|
|
191
|
-
standardPageLabels?: Partial<Record<StandardPageKey, string>>;
|
|
192
|
-
/** Default icons for standard pages. */
|
|
193
|
-
standardPageIcons?: Partial<Record<StandardPageKey, string>>;
|
|
194
|
-
/** Default `navSection` for standard pages. */
|
|
195
|
-
standardPageNavSection?: Partial<Record<StandardPageKey, string>>;
|
|
196
|
-
/**
|
|
197
|
-
* Optional: set of known `componentKey`s from the shell's `extensions:`
|
|
198
|
-
* map. ProjectPages whose `componentKey` is not contained here
|
|
199
|
-
* are filtered out — they would otherwise appear in the sidebar but on
|
|
200
|
-
* click be redirected by the catch-all (silent dead link).
|
|
201
|
-
* Consumers without an `extensions:` map omit the field → as before.
|
|
202
|
-
*/
|
|
203
|
-
availableExtensions?: Set<string>;
|
|
204
|
-
}
|
|
205
|
-
declare const DEFAULT_SECTION_ORDER: readonly string[];
|
|
206
|
-
/**
|
|
207
|
-
* Returns the list of all routes defined by the current manifest —
|
|
208
|
-
* filtered to the capabilities that the logged-in user has.
|
|
209
|
-
*
|
|
210
|
-
* The consumer shell then builds its Vue router configuration and its
|
|
211
|
-
* sidebar drawer from it.
|
|
212
|
-
*/
|
|
213
|
-
declare function buildRoutes(manifest: AdminManifest, options?: NavBuilderOptions): BuildRouteEntry[];
|
|
214
|
-
interface SidebarItem {
|
|
215
|
-
id: string;
|
|
216
|
-
path: string;
|
|
217
|
-
label: string;
|
|
218
|
-
icon?: string;
|
|
219
|
-
}
|
|
220
|
-
interface SidebarSection {
|
|
221
|
-
/** `null` for the default section (items without `navSection`). */
|
|
222
|
-
section: string | null;
|
|
223
|
-
items: SidebarItem[];
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Groups the routes by `navSection` for the drawer.
|
|
227
|
-
*
|
|
228
|
-
* Section order:
|
|
229
|
-
* 1. Default section (`null`) — items without `navSection`.
|
|
230
|
-
* 2. Sections from `sectionOrder` in exactly this order.
|
|
231
|
-
* 3. Remaining sections alphabetically.
|
|
232
|
-
*
|
|
233
|
-
* The default order matches the plan simulation layout (Übersicht →
|
|
234
|
-
* Produktkatalog → Kunden → System); consumers can override it.
|
|
235
|
-
*/
|
|
236
|
-
declare function buildSidebar(routes: BuildRouteEntry[], sectionOrder?: readonly string[]): SidebarSection[];
|
|
237
|
-
/**
|
|
238
|
-
* Returns the Vue component registered for the given `componentKey`.
|
|
239
|
-
* The consumer shell calls this function with its own `extensions:` map.
|
|
240
|
-
* For unknown keys → `null` (the UI then renders a fallback
|
|
241
|
-
* component, e.g. "Component not found in shell build").
|
|
242
|
-
*
|
|
243
|
-
* `extensions` is `Record<string, T>` — `T` is typically a
|
|
244
|
-
* Vue component (either imported directly or as a
|
|
245
|
-
* `defineAsyncComponent` wrapper).
|
|
246
|
-
*/
|
|
247
|
-
declare function resolveExtension<T>(componentKey: string, extensions: Record<string, T>): T | null;
|
|
248
|
-
|
|
249
|
-
/** Consumer implementation; receives the action inputs as a generic object. */
|
|
250
|
-
type ActionHandler<TInput = unknown, TResult = unknown> = (input: TInput) => Promise<TResult>;
|
|
251
|
-
interface ResolvedAction<TInput = unknown, TResult = unknown> {
|
|
252
|
-
def: TenantActionDef;
|
|
253
|
-
handler: ActionHandler<TInput, TResult>;
|
|
254
|
-
}
|
|
255
|
-
declare class MissingHandlerError extends Error {
|
|
256
|
-
constructor(actionKey: string);
|
|
257
|
-
}
|
|
258
|
-
declare class ActionDefNotInManifestError extends Error {
|
|
259
|
-
constructor(actionKey: string);
|
|
260
|
-
}
|
|
261
|
-
declare class ActionRegistry {
|
|
262
|
-
private readonly defs;
|
|
263
|
-
private readonly handlers;
|
|
264
|
-
constructor(manifest: AdminManifest, handlers?: Record<string, ActionHandler>);
|
|
265
|
-
/**
|
|
266
|
-
* Registers a handler after the fact (e.g. when consumer code loads
|
|
267
|
-
* lazily). Throws `ActionDefNotInManifestError` if the `actionKey` is not
|
|
268
|
-
* declared in the manifest — prevents dead registrations.
|
|
269
|
-
*/
|
|
270
|
-
register<TInput, TResult>(actionKey: string, handler: ActionHandler<TInput, TResult>): void;
|
|
271
|
-
/**
|
|
272
|
-
* Returns the `{def, handler}` pair. Throws if the key is missing from
|
|
273
|
-
* the manifest or no handler is registered. The shell's UI layer calls
|
|
274
|
-
* the method, checks `def.requiresMfa` / `def.confirmType` for the
|
|
275
|
-
* pre-flow, and then calls `handler(input)`.
|
|
276
|
-
*/
|
|
277
|
-
get<TInput = unknown, TResult = unknown>(actionKey: string): ResolvedAction<TInput, TResult>;
|
|
278
|
-
/**
|
|
279
|
-
* Convenience: `get(key).handler(input)`. UI convenience for actions
|
|
280
|
-
* that need neither MFA nor confirm.
|
|
281
|
-
*/
|
|
282
|
-
dispatch<TInput, TResult>(actionKey: string, input: TInput): Promise<TResult>;
|
|
283
|
-
/**
|
|
284
|
-
* List of actionKeys that are declared in the manifest but have no
|
|
285
|
-
* handler. Consumers use this in a doctor check to detect drift between
|
|
286
|
-
* the manifest and the shell build.
|
|
287
|
-
*/
|
|
288
|
-
listOrphanedDefs(): string[];
|
|
289
|
-
/**
|
|
290
|
-
* List of registered handlers that are missing from the manifest. Drift
|
|
291
|
-
* in the other direction.
|
|
292
|
-
*/
|
|
293
|
-
listOrphanedHandlers(): string[];
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
type BatchColumnValue = unknown;
|
|
297
|
-
/** One value per `tenantId` (freely structured). */
|
|
298
|
-
type BatchColumnRow = Record<string, BatchColumnValue>;
|
|
299
|
-
/** One `tenantId → value` map per column key. */
|
|
300
|
-
type BatchColumnData = Record<string, BatchColumnRow>;
|
|
301
|
-
type ParamStyle = 'comma' | 'repeat';
|
|
302
|
-
interface BatchColumnFetcherOptions {
|
|
303
|
-
http?: HttpClient;
|
|
304
|
-
/**
|
|
305
|
-
* How the `tenantIds` are passed to the endpoint. Default `'comma'` →
|
|
306
|
-
* `?tenantIds=t1,t2,t3`. `'repeat'` → `?tenantIds=t1&tenantIds=t2`.
|
|
307
|
-
* Consumer backends decide based on their framework (NestJS accepts
|
|
308
|
-
* comma-separated strings by default, or via `@Query() ids: string[]`).
|
|
309
|
-
*/
|
|
310
|
-
paramStyle?: ParamStyle;
|
|
311
|
-
/**
|
|
312
|
-
* Auth-token provider for `Authorization: Bearer <token>`. The consumer
|
|
313
|
-
* supplies a function that pulls the current token from the auth store.
|
|
314
|
-
*/
|
|
315
|
-
getAuthToken?: () => string | null;
|
|
316
|
-
}
|
|
317
|
-
declare class BatchColumnDriftError extends Error {
|
|
318
|
-
readonly column: TenantColumnDef;
|
|
319
|
-
constructor(column: TenantColumnDef, reason: string);
|
|
320
|
-
}
|
|
321
|
-
declare class BatchColumnFetcher {
|
|
322
|
-
private readonly http;
|
|
323
|
-
private readonly paramStyle;
|
|
324
|
-
private readonly getAuthToken?;
|
|
325
|
-
constructor(options?: BatchColumnFetcherOptions);
|
|
326
|
-
/**
|
|
327
|
-
* Loads the data for all columns declared in the manifest in parallel
|
|
328
|
-
* (one request per column, all `tenantIds` in the batch). Columns without
|
|
329
|
-
* a satisfied capability are ignored.
|
|
330
|
-
*/
|
|
331
|
-
fetchAll(manifest: AdminManifest, tenantIds: string[]): Promise<BatchColumnData>;
|
|
332
|
-
/** Fetch a single column (consumers may also use this directly). */
|
|
333
|
-
fetchOne(column: TenantColumnDef, tenantIds: string[]): Promise<BatchColumnRow>;
|
|
334
|
-
/**
|
|
335
|
-
* Column drift against the manifest. Consumers use this for CI smoke
|
|
336
|
-
* tests of the manifest-vs-shell build.
|
|
337
|
-
*/
|
|
338
|
-
listDriftIssues(manifest: AdminManifest): BatchColumnDriftError[];
|
|
339
|
-
/**
|
|
340
|
-
* Which columns have a satisfied `requiredCapability`? Manifest =
|
|
341
|
-
* discovery, so a local check is enough.
|
|
342
|
-
*/
|
|
343
|
-
eligibleColumns(manifest: AdminManifest): TenantColumnDef[];
|
|
344
|
-
private validateBatchEndpoint;
|
|
345
|
-
private buildUrl;
|
|
346
|
-
}
|
|
347
|
-
|
|
348
70
|
interface ApiListResponse<T> {
|
|
349
71
|
items: T[];
|
|
350
72
|
page?: number;
|
|
@@ -901,147 +623,6 @@ interface SubscriptionDraft {
|
|
|
901
623
|
}
|
|
902
624
|
declare function useSubscriptionDraft(options: UseSubscriptionDraftOptions): SubscriptionDraft;
|
|
903
625
|
|
|
904
|
-
interface TenantPlanSectionI18n {
|
|
905
|
-
sectionTitle: string;
|
|
906
|
-
sectionSubtitle: string;
|
|
907
|
-
loading: string;
|
|
908
|
-
noSubscription: string;
|
|
909
|
-
activePlan: string;
|
|
910
|
-
cycleMonthly: string;
|
|
911
|
-
cycleYearly: string;
|
|
912
|
-
statusActive: string;
|
|
913
|
-
statusTrial: string;
|
|
914
|
-
statusPastDue: string;
|
|
915
|
-
statusCanceled: string;
|
|
916
|
-
statusPendingSales: string;
|
|
917
|
-
trialEndsAt: string;
|
|
918
|
-
pilotEndsAt: string;
|
|
919
|
-
nextBillingDate: string;
|
|
920
|
-
pendingChange: string;
|
|
921
|
-
changeFromTo: string;
|
|
922
|
-
changeEffectiveAt: string;
|
|
923
|
-
changePlanButton: string;
|
|
924
|
-
cancelSubscriptionButton: string;
|
|
925
|
-
usageTitle: string;
|
|
926
|
-
/** #18 — feature / scope-of-services matrix (included + locked). */
|
|
927
|
-
featuresOverviewTitle: string;
|
|
928
|
-
featuresActive: string;
|
|
929
|
-
featuresLocked: string;
|
|
930
|
-
/** #15 — bundle store (booked + available bundles). */
|
|
931
|
-
bundlesStoreTitle: string;
|
|
932
|
-
bundlesBookedTitle: string;
|
|
933
|
-
bundlesAvailableTitle: string;
|
|
934
|
-
bundlesAvailableEmpty: string;
|
|
935
|
-
bundlesPerMonth: string;
|
|
936
|
-
bundleBookAction: string;
|
|
937
|
-
bundleBookInProgress: string;
|
|
938
|
-
bundleCancelAction: string;
|
|
939
|
-
bundleReactivateAction: string;
|
|
940
|
-
bundleReactivateConfirmTitle: string;
|
|
941
|
-
bundleReactivateConfirmBody: string;
|
|
942
|
-
bundleCanceledAt: string;
|
|
943
|
-
bundleMinimumTermUntil: string;
|
|
944
|
-
bundleIncludesLabel: string;
|
|
945
|
-
bundleAlreadyBooked: string;
|
|
946
|
-
bundleIncompatible: string;
|
|
947
|
-
/** #37/#61 — requires graying-out + booking/cancellation preview. */
|
|
948
|
-
bundleMissingRequires: string;
|
|
949
|
-
bundlePreviewAddTitle: string;
|
|
950
|
-
bundlePreviewCancelTitle: string;
|
|
951
|
-
bundlePreviewLoading: string;
|
|
952
|
-
bundlePreviewProrationTitle: string;
|
|
953
|
-
bundlePreviewProratedNow: string;
|
|
954
|
-
bundlePreviewProrationDays: string;
|
|
955
|
-
bundlePreviewNextPeriod: string;
|
|
956
|
-
bundlePreviewTrialNote: string;
|
|
957
|
-
bundlePreviewNoPrice: string;
|
|
958
|
-
bundlePreviewMinimumTermLabel: string;
|
|
959
|
-
bundlePreviewMinimumTermMonths: string;
|
|
960
|
-
bundlePreviewMinimumTermNone: string;
|
|
961
|
-
bundlePreviewRedundantTitle: string;
|
|
962
|
-
bundlePreviewRedundantCoveredByPlan: string;
|
|
963
|
-
bundlePreviewRedundantCoveredByBundle: string;
|
|
964
|
-
bundlePreviewMissingRequiresTitle: string;
|
|
965
|
-
bundlePreviewBlockersTitle: string;
|
|
966
|
-
bundlePreviewWarningsTitle: string;
|
|
967
|
-
bundlePreviewEffectiveAt: string;
|
|
968
|
-
bundlePreviewSavings: string;
|
|
969
|
-
bundlePreviewConfirmAdd: string;
|
|
970
|
-
bundlePreviewConfirmCancel: string;
|
|
971
|
-
bundlePreviewInProgress: string;
|
|
972
|
-
bundlePreviewClose: string;
|
|
973
|
-
pendingVersionTitle: string;
|
|
974
|
-
pendingVersionChipNonRegressive: string;
|
|
975
|
-
pendingVersionChipRegressive: string;
|
|
976
|
-
pendingVersionEffectiveAt: string;
|
|
977
|
-
pendingVersionAcceptAction: string;
|
|
978
|
-
pendingVersionAcceptInProgress: string;
|
|
979
|
-
pendingVersionAcceptedAt: string;
|
|
980
|
-
wizardTitle: string;
|
|
981
|
-
wizardClose: string;
|
|
982
|
-
wizardCurrent: string;
|
|
983
|
-
wizardBadgeCurrent: string;
|
|
984
|
-
wizardBadgePopular: string;
|
|
985
|
-
wizardPriceUnitMonthly: string;
|
|
986
|
-
wizardPriceUnitYearly: string;
|
|
987
|
-
wizardPriceOnRequest: string;
|
|
988
|
-
wizardStepChoose: string;
|
|
989
|
-
wizardStepChooseIntro: string;
|
|
990
|
-
wizardStepPreview: string;
|
|
991
|
-
wizardStepConfirm: string;
|
|
992
|
-
wizardNext: string;
|
|
993
|
-
wizardBack: string;
|
|
994
|
-
wizardPreviewLoading: string;
|
|
995
|
-
wizardEffectiveAtLabel: string;
|
|
996
|
-
wizardEffectiveImmediate: string;
|
|
997
|
-
wizardProrationTitle: string;
|
|
998
|
-
wizardProrationLine: string;
|
|
999
|
-
wizardProrationDays: string;
|
|
1000
|
-
wizardLimitsTitle: string;
|
|
1001
|
-
wizardLimitsUsed: string;
|
|
1002
|
-
wizardLimitsCurrent: string;
|
|
1003
|
-
wizardLimitsTarget: string;
|
|
1004
|
-
wizardFeaturesGained: string;
|
|
1005
|
-
wizardFeaturesLost: string;
|
|
1006
|
-
wizardBlockersTitle: string;
|
|
1007
|
-
wizardConfirmImmediate: string;
|
|
1008
|
-
wizardConfirmScheduled: string;
|
|
1009
|
-
wizardConfirmAction: string;
|
|
1010
|
-
wizardConfirmInProgress: string;
|
|
1011
|
-
/** #17 — price overview in the confirm step. */
|
|
1012
|
-
wizardConfirmPriceTitle: string;
|
|
1013
|
-
wizardConfirmProratedNow: string;
|
|
1014
|
-
wizardConfirmRecurringNext: string;
|
|
1015
|
-
wizardConfirmRecurringFrom: string;
|
|
1016
|
-
wizardConfirmPerCycleMonthly: string;
|
|
1017
|
-
wizardConfirmPerCycleYearly: string;
|
|
1018
|
-
/** #17 — trial case in the confirm step (nothing due during the trial). */
|
|
1019
|
-
wizardConfirmTrialNote: string;
|
|
1020
|
-
wizardConfirmRecurringTrialEnd: string;
|
|
1021
|
-
wizardChangeTypeUpgrade: string;
|
|
1022
|
-
wizardChangeTypeDowngrade: string;
|
|
1023
|
-
wizardChangeTypeCycle: string;
|
|
1024
|
-
wizardChangeTypeNoop: string;
|
|
1025
|
-
/** P11.4: read-only display of the package snapshot. */
|
|
1026
|
-
packageSnapshotTitle: string;
|
|
1027
|
-
packageSnapshotSubtitle: string;
|
|
1028
|
-
packageSnapshotCapturedAt: string;
|
|
1029
|
-
packageSnapshotOfferRef: string;
|
|
1030
|
-
packageSnapshotPlanLabel: string;
|
|
1031
|
-
packageSnapshotPlanVersionLabel: string;
|
|
1032
|
-
packageSnapshotCycleLabel: string;
|
|
1033
|
-
packageSnapshotBundlesLabel: string;
|
|
1034
|
-
packageSnapshotBundlesEmpty: string;
|
|
1035
|
-
packageSnapshotPriceMonthly: string;
|
|
1036
|
-
packageSnapshotPriceYearly: string;
|
|
1037
|
-
packageSnapshotPriceTotal: string;
|
|
1038
|
-
packageSnapshotNone: string;
|
|
1039
|
-
packageSnapshotShowRaw: string;
|
|
1040
|
-
packageSnapshotHideRaw: string;
|
|
1041
|
-
}
|
|
1042
|
-
/** German default strings — apps can override them selectively. */
|
|
1043
|
-
declare const DEFAULT_I18N_DE: TenantPlanSectionI18n;
|
|
1044
|
-
|
|
1045
626
|
/**
|
|
1046
627
|
* Generic filter shape for versions lists.
|
|
1047
628
|
* `state`: 'draft' (publishedAt null), 'live' (publishedAt set, supersededAt null),
|
|
@@ -1783,61 +1364,104 @@ interface UseBatchColumnsResult {
|
|
|
1783
1364
|
}
|
|
1784
1365
|
declare function useBatchColumns(manifest: Ref<AdminManifest | null>, tenantIds: Ref<string[]>, options?: BatchColumnFetcherOptions): UseBatchColumnsResult;
|
|
1785
1366
|
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
|
|
1796
|
-
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
|
|
1803
|
-
|
|
1804
|
-
|
|
1805
|
-
interface ResolvedPlan<P extends PlanVersionRow$1 = PlanVersionRow$1> {
|
|
1806
|
-
/** Which PlanVersionRow was selected to represent this slot. */
|
|
1807
|
-
source: P;
|
|
1808
|
-
/** Live predecessor (only set when `source` is a DRAFT; otherwise null). */
|
|
1809
|
-
liveBase: P | null;
|
|
1810
|
-
isDraft: boolean;
|
|
1811
|
-
planId: string;
|
|
1812
|
-
features: string[];
|
|
1813
|
-
/** Quota map (from `source.quotas` or legacy fields; empty if none). */
|
|
1814
|
-
quotas: Record<string, number>;
|
|
1815
|
-
monthlyNet: number;
|
|
1816
|
-
yearlyNet: number;
|
|
1817
|
-
marketed: boolean;
|
|
1818
|
-
version: number;
|
|
1819
|
-
/** @deprecated Read from `quotas['users']`. */
|
|
1820
|
-
maxUsers?: number;
|
|
1821
|
-
/** @deprecated Legacy field; read from `quotas['vehicles']`. */
|
|
1822
|
-
maxVehicles?: number;
|
|
1823
|
-
/** @deprecated Read from `quotas['storageGb']`. */
|
|
1824
|
-
maxStorageGb?: number;
|
|
1367
|
+
interface CreatePlatformLoadersOptions {
|
|
1368
|
+
/**
|
|
1369
|
+
* Same endpoint configuration as for `createSuperAdminApp()`.
|
|
1370
|
+
* `publicBootEndpoint` / `manifestEndpoint` are derived from `apiBase`
|
|
1371
|
+
* when not set explicitly.
|
|
1372
|
+
*/
|
|
1373
|
+
endpoints: SuperAdminEndpoints;
|
|
1374
|
+
/** HTTP adapter. App-specific, because auth-header / base-URL conventions vary. */
|
|
1375
|
+
http: HttpClient;
|
|
1376
|
+
/** Storage for the `ManifestLoader` ETag cache. Defaults to `defaultKvStore()`. */
|
|
1377
|
+
storage?: KvStore;
|
|
1378
|
+
/**
|
|
1379
|
+
* Storage key prefix — consumers with multiple apps under one domain
|
|
1380
|
+
* set this to e.g. `'ma:'` or `'da:'` so the caches stay separate.
|
|
1381
|
+
* Only forwarded to the `ManifestLoader`.
|
|
1382
|
+
*/
|
|
1383
|
+
storageKeyPrefix?: string;
|
|
1384
|
+
/** Auth-token provider for `Authorization: Bearer …` (ManifestLoader only). */
|
|
1385
|
+
getAuthToken?: () => string | null;
|
|
1825
1386
|
}
|
|
1826
|
-
interface
|
|
1827
|
-
|
|
1387
|
+
interface PlatformLoaders {
|
|
1388
|
+
bootLoader: BootLoader;
|
|
1389
|
+
manifestLoader: ManifestLoader;
|
|
1390
|
+
}
|
|
1391
|
+
/**
|
|
1392
|
+
* Builds `BootLoader` + `ManifestLoader` from a single endpoint constant.
|
|
1393
|
+
* Apps use the same constant for `createSuperAdminApp({ endpoints })`.
|
|
1394
|
+
*/
|
|
1395
|
+
declare function createPlatformLoaders(options: CreatePlatformLoadersOptions): PlatformLoaders;
|
|
1396
|
+
|
|
1397
|
+
declare const ProjectPageHost: vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
1398
|
+
[key: string]: any;
|
|
1399
|
+
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
1400
|
+
/**
|
|
1401
|
+
* Returns a Vue Router child route that is registered as a catch-all under
|
|
1402
|
+
* the app's `/admin` layout. Children defined statically in the app router
|
|
1403
|
+
* (e.g. `/admin/dashboard`) win, because
|
|
1404
|
+
* Vue Router 4 matches specific routes before wildcard children.
|
|
1405
|
+
*
|
|
1406
|
+
* Example (simplified):
|
|
1407
|
+
*
|
|
1408
|
+
* {
|
|
1409
|
+
* path: '/admin',
|
|
1410
|
+
* component: AdminLayout,
|
|
1411
|
+
* children: [
|
|
1412
|
+
* { path: '', redirect: '/admin/dashboard' },
|
|
1413
|
+
* { path: 'dashboard', component: DashboardPage },
|
|
1414
|
+
* // ...more static children
|
|
1415
|
+
* createProjectPageHostRoute(),
|
|
1416
|
+
* ],
|
|
1417
|
+
* }
|
|
1418
|
+
*/
|
|
1419
|
+
declare function createProjectPageHostRoute(options?: {
|
|
1420
|
+
/**
|
|
1421
|
+
* Path pattern of the catch-all route. Default `:projectPagePath(.+)`, so
|
|
1422
|
+
* that `/admin` and `/admin/` are not swallowed by the ProjectPageHost,
|
|
1423
|
+
* but the dashboard redirect child can take effect.
|
|
1424
|
+
*/
|
|
1425
|
+
path?: string;
|
|
1426
|
+
}): RouteRecordRaw;
|
|
1427
|
+
|
|
1428
|
+
interface ManifestStoreState {
|
|
1429
|
+
manifest: Ref<AdminManifest | null>;
|
|
1430
|
+
loading: Ref<boolean>;
|
|
1431
|
+
error: Ref<Error | null>;
|
|
1432
|
+
loaded: Ref<boolean>;
|
|
1828
1433
|
}
|
|
1829
|
-
interface
|
|
1434
|
+
interface ManifestStoreActions {
|
|
1830
1435
|
/**
|
|
1831
|
-
*
|
|
1832
|
-
*
|
|
1833
|
-
*
|
|
1436
|
+
* Loads once per session. Concurrent calls share the promise.
|
|
1437
|
+
*
|
|
1438
|
+
* **Behavior on loader error:** the store caches the error in
|
|
1439
|
+
* `error.value` and resets `loaded = false`/`manifest = null`, and the
|
|
1440
|
+
* promise REJECTS with the original error. Callers must either
|
|
1441
|
+
* call `.catch(...)` (defensive behavior) or let the rejection
|
|
1442
|
+
* propagate. The platform router guard
|
|
1443
|
+
* (`createSuperAdminApp({ manifestGuard.errorRoute })`) provides a
|
|
1444
|
+
* fail-closed path with a redirect to a dedicated error route.
|
|
1834
1445
|
*/
|
|
1835
|
-
|
|
1446
|
+
ensureLoaded: () => Promise<void>;
|
|
1447
|
+
/** Discards cache + state (logout path). */
|
|
1448
|
+
clearCache: () => void;
|
|
1449
|
+
/** Forces a server refresh (e.g. after `manifest reload`). */
|
|
1450
|
+
reload: () => Promise<void>;
|
|
1451
|
+
}
|
|
1452
|
+
interface CreateManifestStoreOptions {
|
|
1453
|
+
/** Platform `ManifestLoader` instance (typically via `createPlatformLoaders()`). */
|
|
1454
|
+
loader: ManifestLoader;
|
|
1455
|
+
/** Pinia store ID. Default `admin-manifest`. */
|
|
1456
|
+
id?: string;
|
|
1836
1457
|
}
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1458
|
+
type ManifestStoreDefinition = StoreDefinition<string, ManifestStoreState, Record<string, never>, ManifestStoreActions>;
|
|
1459
|
+
/**
|
|
1460
|
+
* Returns a `useStore` function for the manifest store. Apps call the
|
|
1461
|
+
* factory once at module top level and export the result as
|
|
1462
|
+
* `useManifestStore`.
|
|
1463
|
+
*/
|
|
1464
|
+
declare function createManifestStore(options: CreateManifestStoreOptions): ManifestStoreDefinition;
|
|
1841
1465
|
|
|
1842
1466
|
interface PilotCreatePayload {
|
|
1843
1467
|
tenant: {
|
|
@@ -2053,343 +1677,145 @@ interface EmailHistoryResendResult {
|
|
|
2053
1677
|
message?: string;
|
|
2054
1678
|
}
|
|
2055
1679
|
|
|
2056
|
-
|
|
2057
|
-
|
|
2058
|
-
|
|
2059
|
-
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
2064
|
-
|
|
2065
|
-
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2070
|
-
|
|
2071
|
-
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2079
|
-
|
|
2080
|
-
|
|
2081
|
-
|
|
2082
|
-
|
|
2083
|
-
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2092
|
-
|
|
2093
|
-
|
|
2094
|
-
|
|
2095
|
-
|
|
2096
|
-
|
|
2097
|
-
|
|
2098
|
-
|
|
2099
|
-
|
|
2100
|
-
|
|
2101
|
-
|
|
2102
|
-
|
|
2103
|
-
|
|
2104
|
-
|
|
2105
|
-
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
|
|
2111
|
-
|
|
2112
|
-
|
|
2113
|
-
|
|
2114
|
-
|
|
2115
|
-
|
|
2116
|
-
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
|
|
2121
|
-
|
|
2122
|
-
|
|
2123
|
-
|
|
2124
|
-
|
|
2125
|
-
|
|
2126
|
-
|
|
2127
|
-
|
|
2128
|
-
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
|
|
2133
|
-
|
|
2134
|
-
|
|
2135
|
-
|
|
2136
|
-
|
|
2137
|
-
|
|
2138
|
-
|
|
2139
|
-
|
|
2140
|
-
|
|
2141
|
-
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2147
|
-
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
|
|
2167
|
-
|
|
2168
|
-
|
|
2169
|
-
|
|
2170
|
-
|
|
2171
|
-
|
|
2172
|
-
|
|
2173
|
-
|
|
2174
|
-
|
|
2175
|
-
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
*/
|
|
2194
|
-
manifestGuard?: SuperAdminManifestGuardOptions;
|
|
2195
|
-
/**
|
|
2196
|
-
* Optional: login adapter. When set, it is exposed via `provide()` for the
|
|
2197
|
-
* shared `<SuperAdminLoginPage>` (from `pages-standard/`) — the app no
|
|
2198
|
-
* longer needs to hold its own LoginPage Vue component.
|
|
2199
|
-
*/
|
|
2200
|
-
loginAdapter?: SuperAdminLoginAdapter;
|
|
2201
|
-
/**
|
|
2202
|
-
* Optional: router history variant, default `createWebHistory()`.
|
|
2203
|
-
* Apps with a subpath mount override this.
|
|
2204
|
-
*/
|
|
2205
|
-
routerHistory?: RouterHistory;
|
|
2206
|
-
/**
|
|
2207
|
-
* Optional: Quasar configuration. Default loads `Notify`/`Dialog`/`Loading`
|
|
2208
|
-
* with the established consumer convention (`top-right`, 3 s).
|
|
2209
|
-
*/
|
|
2210
|
-
quasarOptions?: Partial<QuasarPluginOptions>;
|
|
2211
|
-
/**
|
|
2212
|
-
* Optional: additional Vue plugins (e.g. an app's own NotificationCenter)
|
|
2213
|
-
* that are installed after the platform setup, before the mount.
|
|
2214
|
-
*/
|
|
2215
|
-
installPlugins?: Array<(app: App) => void>;
|
|
2216
|
-
/**
|
|
2217
|
-
* Optional: `HttpClient` for all pre-login calls (boot, first-run setup).
|
|
2218
|
-
* Default `defaultHttpClient()` (= `fetch`). Consumers pass their own
|
|
2219
|
-
* variant through (auth header, baseURL, retry) — it then applies uniformly,
|
|
2220
|
-
* including for the setup wizard. Consumed via `useSuperAdminHttp()`.
|
|
2221
|
-
*/
|
|
2222
|
-
http?: HttpClient;
|
|
2223
|
-
}
|
|
2224
|
-
interface SuperAdminAppHandle {
|
|
2225
|
-
app: App;
|
|
2226
|
-
router: Router;
|
|
2227
|
-
pinia: Pinia;
|
|
2228
|
-
/** Mounts the app on a selector. Returns the root component instance. */
|
|
2229
|
-
mount: (selector: string | Element) => ReturnType<App['mount']>;
|
|
2230
|
-
}
|
|
2231
|
-
/** Vue inject key for `useSuperAdminBrand()`. */
|
|
2232
|
-
declare const SUPER_ADMIN_BRAND_KEY: InjectionKey<SuperAdminBrand>;
|
|
2233
|
-
/** Vue inject key for `useSuperAdminEndpoints()`. */
|
|
2234
|
-
declare const SUPER_ADMIN_ENDPOINTS_KEY: InjectionKey<Required<SuperAdminEndpoints>>;
|
|
2235
|
-
/** Vue inject key for `useSuperAdminExtensions()`. */
|
|
2236
|
-
declare const SUPER_ADMIN_EXTENSIONS_KEY: InjectionKey<ExtensionsMap>;
|
|
2237
|
-
/** Vue inject key for `useSuperAdminActions()`. */
|
|
2238
|
-
declare const SUPER_ADMIN_ACTIONS_KEY: InjectionKey<ActionsMap>;
|
|
2239
|
-
/**
|
|
2240
|
-
* Vue inject key for the manifest accessor. Only provided when
|
|
2241
|
-
* `manifestGuard.getManifest` was passed to `createSuperAdminApp()` — the
|
|
2242
|
-
* `<ProjectPageHost>` needs it to resolve project pages.
|
|
2243
|
-
*/
|
|
2244
|
-
declare const SUPER_ADMIN_MANIFEST_KEY: InjectionKey<() => AdminManifest | null>;
|
|
2245
|
-
/** Vue inject key for `useSuperAdminLoginAdapter()`. */
|
|
2246
|
-
declare const SUPER_ADMIN_LOGIN_ADAPTER_KEY: InjectionKey<SuperAdminLoginAdapter>;
|
|
2247
|
-
/** Vue inject key for `useSuperAdminHttp()` (pre-login HttpClient). */
|
|
2248
|
-
declare const SUPER_ADMIN_HTTP_KEY: InjectionKey<HttpClient>;
|
|
2249
|
-
/**
|
|
2250
|
-
* Universal bootstrap function for SuperAdmin apps. Replaces the `main.ts`
|
|
2251
|
-
* boilerplate duplicated per app today (Quasar + Pinia + Router + manifest
|
|
2252
|
-
* guard) and exposes the platform maps via `provide()` for downstream
|
|
2253
|
-
* components.
|
|
2254
|
-
*/
|
|
2255
|
-
declare function createSuperAdminApp(options: CreateSuperAdminAppOptions): SuperAdminAppHandle;
|
|
2256
|
-
/**
|
|
2257
|
-
* Internal helper, exported for isolated unit tests of the navigation
|
|
2258
|
-
* behavior (auth redirect, manifest fail-closed path). Consumers should call
|
|
2259
|
-
* `createSuperAdminApp()`, not this helper directly.
|
|
2260
|
-
*/
|
|
2261
|
-
declare function buildNavigationGuard(options: Pick<CreateSuperAdminAppOptions, 'authGuard' | 'manifestGuard'>): NavigationGuardWithThis<undefined> | null;
|
|
2262
|
-
|
|
2263
|
-
/** Returns the `extensions:` map registered in `createSuperAdminApp()`. */
|
|
2264
|
-
declare function useSuperAdminExtensions(): ExtensionsMap;
|
|
2265
|
-
/** Returns the `actions:` map registered in `createSuperAdminApp()`. */
|
|
2266
|
-
declare function useSuperAdminActions(): ActionsMap;
|
|
2267
|
-
/**
|
|
2268
|
-
* Returns the app branding. Throws when the component is rendered outside a
|
|
2269
|
-
* `createSuperAdminApp()` shell — that is a setup bug, not a runtime
|
|
2270
|
-
* problem.
|
|
2271
|
-
*/
|
|
2272
|
-
declare function useSuperAdminBrand(): SuperAdminBrand;
|
|
2273
|
-
/** Returns the app endpoints (apiBase, publicBootEndpoint, manifestEndpoint). */
|
|
2274
|
-
declare function useSuperAdminEndpoints(): Required<SuperAdminEndpoints>;
|
|
2275
|
-
/**
|
|
2276
|
-
* Returns the manifest accessor that was provided via
|
|
2277
|
-
* `createSuperAdminApp({ manifestGuard: { getManifest } })`.
|
|
2278
|
-
* Returns `null` if the app did not pass an accessor — components
|
|
2279
|
-
* (e.g. `<ProjectPageHost>`) must handle the null case cleanly, because
|
|
2280
|
-
* the accessor is optional.
|
|
2281
|
-
*/
|
|
2282
|
-
declare function useSuperAdminManifest(): AdminManifest | null;
|
|
2283
|
-
/**
|
|
2284
|
-
* Returns the login adapter the app registered via
|
|
2285
|
-
* `createSuperAdminApp({ loginAdapter })`. Throws when none was
|
|
2286
|
-
* set — the shared `<SuperAdminLoginPage>` needs it.
|
|
2287
|
-
*/
|
|
2288
|
-
declare function useSuperAdminLoginAdapter(): SuperAdminLoginAdapter;
|
|
2289
|
-
/**
|
|
2290
|
-
* Returns the pre-login `HttpClient` (boot, first-run setup) the app registered
|
|
2291
|
-
* via `createSuperAdminApp({ http })`. Falls back to `defaultHttpClient()`
|
|
2292
|
-
* if none was provided (e.g. in isolated tests).
|
|
2293
|
-
*/
|
|
2294
|
-
declare function useSuperAdminHttp(): HttpClient;
|
|
2295
|
-
|
|
2296
|
-
interface CreatePlatformLoadersOptions {
|
|
2297
|
-
/**
|
|
2298
|
-
* Same endpoint configuration as for `createSuperAdminApp()`.
|
|
2299
|
-
* `publicBootEndpoint` / `manifestEndpoint` are derived from `apiBase`
|
|
2300
|
-
* when not set explicitly.
|
|
2301
|
-
*/
|
|
2302
|
-
endpoints: SuperAdminEndpoints;
|
|
2303
|
-
/** HTTP adapter. App-specific, because auth-header / base-URL conventions vary. */
|
|
2304
|
-
http: HttpClient;
|
|
2305
|
-
/** Storage for the `ManifestLoader` ETag cache. Defaults to `defaultKvStore()`. */
|
|
2306
|
-
storage?: KvStore;
|
|
2307
|
-
/**
|
|
2308
|
-
* Storage key prefix — consumers with multiple apps under one domain
|
|
2309
|
-
* set this to e.g. `'ma:'` or `'da:'` so the caches stay separate.
|
|
2310
|
-
* Only forwarded to the `ManifestLoader`.
|
|
2311
|
-
*/
|
|
2312
|
-
storageKeyPrefix?: string;
|
|
2313
|
-
/** Auth-token provider for `Authorization: Bearer …` (ManifestLoader only). */
|
|
2314
|
-
getAuthToken?: () => string | null;
|
|
2315
|
-
}
|
|
2316
|
-
interface PlatformLoaders {
|
|
2317
|
-
bootLoader: BootLoader;
|
|
2318
|
-
manifestLoader: ManifestLoader;
|
|
2319
|
-
}
|
|
2320
|
-
/**
|
|
2321
|
-
* Builds `BootLoader` + `ManifestLoader` from a single endpoint constant.
|
|
2322
|
-
* Apps use the same constant for `createSuperAdminApp({ endpoints })`.
|
|
2323
|
-
*/
|
|
2324
|
-
declare function createPlatformLoaders(options: CreatePlatformLoadersOptions): PlatformLoaders;
|
|
2325
|
-
|
|
2326
|
-
declare const ProjectPageHost: vue.DefineComponent<{}, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
|
|
2327
|
-
[key: string]: any;
|
|
2328
|
-
}>, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
|
|
2329
|
-
/**
|
|
2330
|
-
* Returns a Vue Router child route that is registered as a catch-all under
|
|
2331
|
-
* the app's `/admin` layout. Children defined statically in the app router
|
|
2332
|
-
* (e.g. `/admin/dashboard`) win, because
|
|
2333
|
-
* Vue Router 4 matches specific routes before wildcard children.
|
|
2334
|
-
*
|
|
2335
|
-
* Example (simplified):
|
|
2336
|
-
*
|
|
2337
|
-
* {
|
|
2338
|
-
* path: '/admin',
|
|
2339
|
-
* component: AdminLayout,
|
|
2340
|
-
* children: [
|
|
2341
|
-
* { path: '', redirect: '/admin/dashboard' },
|
|
2342
|
-
* { path: 'dashboard', component: DashboardPage },
|
|
2343
|
-
* // ...more static children
|
|
2344
|
-
* createProjectPageHostRoute(),
|
|
2345
|
-
* ],
|
|
2346
|
-
* }
|
|
2347
|
-
*/
|
|
2348
|
-
declare function createProjectPageHostRoute(options?: {
|
|
2349
|
-
/**
|
|
2350
|
-
* Path pattern of the catch-all route. Default `:projectPagePath(.+)`, so
|
|
2351
|
-
* that `/admin` and `/admin/` are not swallowed by the ProjectPageHost,
|
|
2352
|
-
* but the dashboard redirect child can take effect.
|
|
2353
|
-
*/
|
|
2354
|
-
path?: string;
|
|
2355
|
-
}): RouteRecordRaw;
|
|
2356
|
-
|
|
2357
|
-
interface ManifestStoreState {
|
|
2358
|
-
manifest: Ref<AdminManifest | null>;
|
|
2359
|
-
loading: Ref<boolean>;
|
|
2360
|
-
error: Ref<Error | null>;
|
|
2361
|
-
loaded: Ref<boolean>;
|
|
2362
|
-
}
|
|
2363
|
-
interface ManifestStoreActions {
|
|
2364
|
-
/**
|
|
2365
|
-
* Loads once per session. Concurrent calls share the promise.
|
|
2366
|
-
*
|
|
2367
|
-
* **Behavior on loader error:** the store caches the error in
|
|
2368
|
-
* `error.value` and resets `loaded = false`/`manifest = null`, and the
|
|
2369
|
-
* promise REJECTS with the original error. Callers must either
|
|
2370
|
-
* call `.catch(...)` (defensive behavior) or let the rejection
|
|
2371
|
-
* propagate. The platform router guard
|
|
2372
|
-
* (`createSuperAdminApp({ manifestGuard.errorRoute })`) provides a
|
|
2373
|
-
* fail-closed path with a redirect to a dedicated error route.
|
|
2374
|
-
*/
|
|
2375
|
-
ensureLoaded: () => Promise<void>;
|
|
2376
|
-
/** Discards cache + state (logout path). */
|
|
2377
|
-
clearCache: () => void;
|
|
2378
|
-
/** Forces a server refresh (e.g. after `manifest reload`). */
|
|
2379
|
-
reload: () => Promise<void>;
|
|
2380
|
-
}
|
|
2381
|
-
interface CreateManifestStoreOptions {
|
|
2382
|
-
/** Platform `ManifestLoader` instance (typically via `createPlatformLoaders()`). */
|
|
2383
|
-
loader: ManifestLoader;
|
|
2384
|
-
/** Pinia store ID. Default `admin-manifest`. */
|
|
2385
|
-
id?: string;
|
|
1680
|
+
interface TenantPlanSectionI18n {
|
|
1681
|
+
sectionTitle: string;
|
|
1682
|
+
sectionSubtitle: string;
|
|
1683
|
+
loading: string;
|
|
1684
|
+
noSubscription: string;
|
|
1685
|
+
activePlan: string;
|
|
1686
|
+
cycleMonthly: string;
|
|
1687
|
+
cycleYearly: string;
|
|
1688
|
+
statusActive: string;
|
|
1689
|
+
statusTrial: string;
|
|
1690
|
+
statusPastDue: string;
|
|
1691
|
+
statusCanceled: string;
|
|
1692
|
+
statusPendingSales: string;
|
|
1693
|
+
trialEndsAt: string;
|
|
1694
|
+
pilotEndsAt: string;
|
|
1695
|
+
nextBillingDate: string;
|
|
1696
|
+
pendingChange: string;
|
|
1697
|
+
changeFromTo: string;
|
|
1698
|
+
changeEffectiveAt: string;
|
|
1699
|
+
changePlanButton: string;
|
|
1700
|
+
cancelSubscriptionButton: string;
|
|
1701
|
+
usageTitle: string;
|
|
1702
|
+
/** #18 — feature / scope-of-services matrix (included + locked). */
|
|
1703
|
+
featuresOverviewTitle: string;
|
|
1704
|
+
featuresActive: string;
|
|
1705
|
+
featuresLocked: string;
|
|
1706
|
+
/** #15 — bundle store (booked + available bundles). */
|
|
1707
|
+
bundlesStoreTitle: string;
|
|
1708
|
+
bundlesBookedTitle: string;
|
|
1709
|
+
bundlesAvailableTitle: string;
|
|
1710
|
+
bundlesAvailableEmpty: string;
|
|
1711
|
+
bundlesPerMonth: string;
|
|
1712
|
+
bundleBookAction: string;
|
|
1713
|
+
bundleBookInProgress: string;
|
|
1714
|
+
bundleCancelAction: string;
|
|
1715
|
+
bundleReactivateAction: string;
|
|
1716
|
+
bundleReactivateConfirmTitle: string;
|
|
1717
|
+
bundleReactivateConfirmBody: string;
|
|
1718
|
+
bundleCanceledAt: string;
|
|
1719
|
+
bundleMinimumTermUntil: string;
|
|
1720
|
+
bundleIncludesLabel: string;
|
|
1721
|
+
bundleAlreadyBooked: string;
|
|
1722
|
+
bundleIncompatible: string;
|
|
1723
|
+
/** #37/#61 — requires graying-out + booking/cancellation preview. */
|
|
1724
|
+
bundleMissingRequires: string;
|
|
1725
|
+
bundlePreviewAddTitle: string;
|
|
1726
|
+
bundlePreviewCancelTitle: string;
|
|
1727
|
+
bundlePreviewLoading: string;
|
|
1728
|
+
bundlePreviewProrationTitle: string;
|
|
1729
|
+
bundlePreviewProratedNow: string;
|
|
1730
|
+
bundlePreviewProrationDays: string;
|
|
1731
|
+
bundlePreviewNextPeriod: string;
|
|
1732
|
+
bundlePreviewTrialNote: string;
|
|
1733
|
+
bundlePreviewNoPrice: string;
|
|
1734
|
+
bundlePreviewMinimumTermLabel: string;
|
|
1735
|
+
bundlePreviewMinimumTermMonths: string;
|
|
1736
|
+
bundlePreviewMinimumTermNone: string;
|
|
1737
|
+
bundlePreviewRedundantTitle: string;
|
|
1738
|
+
bundlePreviewRedundantCoveredByPlan: string;
|
|
1739
|
+
bundlePreviewRedundantCoveredByBundle: string;
|
|
1740
|
+
bundlePreviewMissingRequiresTitle: string;
|
|
1741
|
+
bundlePreviewBlockersTitle: string;
|
|
1742
|
+
bundlePreviewWarningsTitle: string;
|
|
1743
|
+
bundlePreviewEffectiveAt: string;
|
|
1744
|
+
bundlePreviewSavings: string;
|
|
1745
|
+
bundlePreviewConfirmAdd: string;
|
|
1746
|
+
bundlePreviewConfirmCancel: string;
|
|
1747
|
+
bundlePreviewInProgress: string;
|
|
1748
|
+
bundlePreviewClose: string;
|
|
1749
|
+
pendingVersionTitle: string;
|
|
1750
|
+
pendingVersionChipNonRegressive: string;
|
|
1751
|
+
pendingVersionChipRegressive: string;
|
|
1752
|
+
pendingVersionEffectiveAt: string;
|
|
1753
|
+
pendingVersionAcceptAction: string;
|
|
1754
|
+
pendingVersionAcceptInProgress: string;
|
|
1755
|
+
pendingVersionAcceptedAt: string;
|
|
1756
|
+
wizardTitle: string;
|
|
1757
|
+
wizardClose: string;
|
|
1758
|
+
wizardCurrent: string;
|
|
1759
|
+
wizardBadgeCurrent: string;
|
|
1760
|
+
wizardBadgePopular: string;
|
|
1761
|
+
wizardPriceUnitMonthly: string;
|
|
1762
|
+
wizardPriceUnitYearly: string;
|
|
1763
|
+
wizardPriceOnRequest: string;
|
|
1764
|
+
wizardStepChoose: string;
|
|
1765
|
+
wizardStepChooseIntro: string;
|
|
1766
|
+
wizardStepPreview: string;
|
|
1767
|
+
wizardStepConfirm: string;
|
|
1768
|
+
wizardNext: string;
|
|
1769
|
+
wizardBack: string;
|
|
1770
|
+
wizardPreviewLoading: string;
|
|
1771
|
+
wizardEffectiveAtLabel: string;
|
|
1772
|
+
wizardEffectiveImmediate: string;
|
|
1773
|
+
wizardProrationTitle: string;
|
|
1774
|
+
wizardProrationLine: string;
|
|
1775
|
+
wizardProrationDays: string;
|
|
1776
|
+
wizardLimitsTitle: string;
|
|
1777
|
+
wizardLimitsUsed: string;
|
|
1778
|
+
wizardLimitsCurrent: string;
|
|
1779
|
+
wizardLimitsTarget: string;
|
|
1780
|
+
wizardFeaturesGained: string;
|
|
1781
|
+
wizardFeaturesLost: string;
|
|
1782
|
+
wizardBlockersTitle: string;
|
|
1783
|
+
wizardConfirmImmediate: string;
|
|
1784
|
+
wizardConfirmScheduled: string;
|
|
1785
|
+
wizardConfirmAction: string;
|
|
1786
|
+
wizardConfirmInProgress: string;
|
|
1787
|
+
/** #17 — price overview in the confirm step. */
|
|
1788
|
+
wizardConfirmPriceTitle: string;
|
|
1789
|
+
wizardConfirmProratedNow: string;
|
|
1790
|
+
wizardConfirmRecurringNext: string;
|
|
1791
|
+
wizardConfirmRecurringFrom: string;
|
|
1792
|
+
wizardConfirmPerCycleMonthly: string;
|
|
1793
|
+
wizardConfirmPerCycleYearly: string;
|
|
1794
|
+
/** #17 — trial case in the confirm step (nothing due during the trial). */
|
|
1795
|
+
wizardConfirmTrialNote: string;
|
|
1796
|
+
wizardConfirmRecurringTrialEnd: string;
|
|
1797
|
+
wizardChangeTypeUpgrade: string;
|
|
1798
|
+
wizardChangeTypeDowngrade: string;
|
|
1799
|
+
wizardChangeTypeCycle: string;
|
|
1800
|
+
wizardChangeTypeNoop: string;
|
|
1801
|
+
/** P11.4: read-only display of the package snapshot. */
|
|
1802
|
+
packageSnapshotTitle: string;
|
|
1803
|
+
packageSnapshotSubtitle: string;
|
|
1804
|
+
packageSnapshotCapturedAt: string;
|
|
1805
|
+
packageSnapshotOfferRef: string;
|
|
1806
|
+
packageSnapshotPlanLabel: string;
|
|
1807
|
+
packageSnapshotPlanVersionLabel: string;
|
|
1808
|
+
packageSnapshotCycleLabel: string;
|
|
1809
|
+
packageSnapshotBundlesLabel: string;
|
|
1810
|
+
packageSnapshotBundlesEmpty: string;
|
|
1811
|
+
packageSnapshotPriceMonthly: string;
|
|
1812
|
+
packageSnapshotPriceYearly: string;
|
|
1813
|
+
packageSnapshotPriceTotal: string;
|
|
1814
|
+
packageSnapshotNone: string;
|
|
1815
|
+
packageSnapshotShowRaw: string;
|
|
1816
|
+
packageSnapshotHideRaw: string;
|
|
2386
1817
|
}
|
|
2387
|
-
|
|
2388
|
-
|
|
2389
|
-
* Returns a `useStore` function for the manifest store. Apps call the
|
|
2390
|
-
* factory once at module top level and export the result as
|
|
2391
|
-
* `useManifestStore`.
|
|
2392
|
-
*/
|
|
2393
|
-
declare function createManifestStore(options: CreateManifestStoreOptions): ManifestStoreDefinition;
|
|
1818
|
+
/** German default strings — apps can override them selectively. */
|
|
1819
|
+
declare const DEFAULT_I18N_DE: TenantPlanSectionI18n;
|
|
2394
1820
|
|
|
2395
|
-
export {
|
|
1821
|
+
export { ActionHandler, ActionRegistry, ActionsMap, type ApiListResponse, BatchColumnData, BatchColumnFetcherOptions, type BillingCycleStr, BootLoader, BootLoaderOptions, BuildRouteEntry, type BulkItemKind, type BulkItemStatus, type BulkPublishItem, type BundleAddPreviewShape, type BundleCancelPreviewShape, type BundlePreviewIssueShape, type BundlePreviewShape, type BundlePreviewSnapshotShape, BundlesApiError, BusinessTypesApiError, CATALOG_DEFAULT_LOCALE, type CatalogBundle, CatalogEntriesApiError, type CatalogPlan, type ConfirmDialogState, type CreateAdminRoutesOptions, type CreateManifestStoreOptions, type CreatePlatformLoadersOptions, DEFAULT_I18N_DE, DEFAULT_PILOT_COPY, DEFAULT_YEARLY_FACTOR, DiscoveryLoadError, type DraftPricing, ENTITLEMENT_INJECTION_KEY, type EmailHistoryDetail, type EmailHistoryFilter, type EmailHistoryListResult, type EmailHistoryResendResult, type EmailHistoryRow, type EmailHistoryStatus, type EntitlementSnapshotShape, ExtensionsMap, type FeatureRegistryEntry, type FeatureRouterGuardOptions, type FeatureRowMarkers, HttpClient, KvStore, ManifestLoader, ManifestLoaderOptions, type ManifestStoreActions, type ManifestStoreDefinition, type ManifestStoreState, MarketingProjectionsApiError, type MfaDialogState, NavBuilderOptions, type PackageSnapshotShape, type PilotCopy, type PilotCreatePayload, type PilotCreateResult, type PilotEditPayload, type PilotEditResult, type PlanChangePreviewShape, type PlanSnapshotShape, type PlanVersionListFilter, type PlanVersionRow, PlannedOnlyFeatureError, PlansApiError, type PlatformEmailProvider, type PlatformEmailTestInput, type PlatformEmailTestResult, type PlatformEmailWriteInput, type PlatformLoaders, type PlatformTenantActionRow, type PlatformTenantActionTone, type PlatformTenantActionsOptions, type PlatformTenantActionsResult, type PriceLineItem, ProjectPageHost, type PromoCodeCreatePayload, type PromoCodeDurationType, type PromoCodePlanOption, type PromoCodeUpdatePayload, type PromoCodeValueType, type PromoState, type PromoStatus, PromotionsApiError, type QuotaMeta, type RedundantFeatureHintShape, type ResolvedTenantAction, SidebarSection, type SubscriptionBundleShape, type SubscriptionDraft, SuperAdminBrand, SuperAdminEndpoints, SuperAdminLoginAdapter, type TenantActionFlowProviders, type TenantActionInput, type TenantManifestNavItem, type TenantManifestShape, type TenantPlanSectionI18n, type TenantRowLike, TenantSubscriptionBundlesApiError, type UsageSnapshotShape, type UseActionsResult, type UseApiListOptions, type UseApiListResult, type UseAuditEntriesOptions, type UseAuditEntriesResult, type UseBatchColumnsResult, type UseBulkPublishOptions, type UseBulkPublishResult, type UseBundleVersionsMapOptions, type UseBundleVersionsMapResult, type UseBundleVersionsOptions, type UseBundleVersionsResult, type UseBundlesOptions, type UseBundlesResult, type UseBusinessTypeVersionsOptions, type UseBusinessTypeVersionsResult, type UseBusinessTypesOptions, type UseBusinessTypesResult, type UseCatalogEntriesOptions, type UseCatalogEntriesResult, type UseDiscoveryOptions, type UseDiscoveryResult, type UseEntitlementOptions, type UseEntitlementResult, type UseLivePlanVersionsOptions, type UseLivePlanVersionsResult, type UseManifestResult, type UseMarketingProjectionsOptions, type UseMarketingProjectionsResult, type UseNavResult, type UsePlanEditorOptions, type UsePlanEditorResult, type UsePlanVersionsOptions, type UsePlanVersionsResult, type UsePlansOptions, type UsePlansResult, type UsePromotionsOptions, type UsePromotionsResult, type UsePublicBootResult, type UseSubscriptionDraftOptions, type UseTenantActionFlowResult, type UseTenantBillingCatalogOptions, type UseTenantBillingCatalogResult, type UseTenantBillingOptions, type UseTenantBillingResult, type UseTenantManifestOptions, type UseTenantManifestResult, type UseTenantSubscriptionBundlesOptions, type UseTenantSubscriptionBundlesResult, type UseTenantsOptions, type UseTenantsResult, type VersionsOptions, type VersionsResult, buildFeatureRegistry, buildFeatureRouterGuard, buildQuotaRegistry, createAdminRoutes, createManifestStore, createPlatformLoaders, createProjectPageHostRoute, defaultIconForActionKey, defaultToneForActionKey, provideEntitlement, useActions, useApiList, useAuditEntries, useBatchColumns, useBulkPublish, useBundleVersions, useBundleVersionsMap, useBundles, useBusinessTypeVersions, useBusinessTypes, useCatalogEntries, useDiscovery, useEntitlement, useInjectedEntitlement, useLivePlanVersions, useManifest, useMarketingProjections, useNav, usePlanEditor, usePlanVersions, usePlanVersionsCatalog, usePlans, usePlatformTenantActions, usePromotions, usePublicBoot, useSubscriptionDraft, useSuperAdminActions, useSuperAdminBrand, useSuperAdminEndpoints, useSuperAdminExtensions, useSuperAdminHttp, useSuperAdminLoginAdapter, useSuperAdminManifest, useTenantActionFlow, useTenantBilling, useTenantBillingCatalog, useTenantManifest, useTenantSubscriptionBundles, useTenants };
|