@genesislcap/foundation-shell 14.131.0 → 14.133.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/MODULE_FEDERATION.md +11 -0
- package/README.md +19 -31
- package/dist/{13.13.60f90061d33208d1354b.js → 13.13.cc8f282b2fd08bdaa429.js} +2 -2
- package/dist/{13.4d4d342ba791da63d597e22d6d61f90f.js.map → 13.18ce90986215931e094ef572bdb883d6.js.map} +1 -1
- package/dist/InjectManifest.e1f16063b12a45e391ae7b4f95241ab2.js.map +1 -0
- package/dist/dts/app/app.d.ts +159 -0
- package/dist/dts/app/app.d.ts.map +1 -0
- package/dist/dts/app/behaviors.d.ts +53 -0
- package/dist/dts/app/behaviors.d.ts.map +1 -0
- package/dist/dts/app/config.d.ts +25 -0
- package/dist/dts/app/config.d.ts.map +1 -0
- package/dist/dts/app/index.d.ts +5 -0
- package/dist/dts/app/index.d.ts.map +1 -0
- package/dist/dts/app/types.d.ts +700 -0
- package/dist/dts/app/types.d.ts.map +1 -0
- package/dist/dts/app/utils.d.ts +61 -0
- package/dist/dts/app/utils.d.ts.map +1 -0
- package/dist/dts/index.docs.d.ts +8 -0
- package/dist/dts/index.docs.d.ts.map +1 -0
- package/dist/dts/layouts/default/layout.d.ts.map +1 -1
- package/dist/dts/layouts/formatsExample/layout.d.ts.map +1 -1
- package/dist/dts/main/main.d.ts +3 -0
- package/dist/dts/main/main.d.ts.map +1 -1
- package/dist/dts/main/main.styles.d.ts +3 -0
- package/dist/dts/main/main.styles.d.ts.map +1 -1
- package/dist/dts/main/main.template.d.ts +9 -0
- package/dist/dts/main/main.template.d.ts.map +1 -1
- package/dist/dts/pbc/index.d.ts +2 -0
- package/dist/dts/pbc/index.d.ts.map +1 -0
- package/dist/dts/pbc/pbc.d.ts +68 -0
- package/dist/dts/pbc/pbc.d.ts.map +1 -0
- package/dist/dts/pbc/vite/exports.d.ts +26 -0
- package/dist/dts/pbc/vite/exports.d.ts.map +1 -0
- package/dist/dts/pbc/vite/index.d.ts +2 -0
- package/dist/dts/pbc/vite/index.d.ts.map +1 -0
- package/dist/dts/pbc/vite/utils.d.ts +8 -0
- package/dist/dts/pbc/vite/utils.d.ts.map +1 -0
- package/dist/dts/pbc/webpack/exports.d.ts +26 -0
- package/dist/dts/pbc/webpack/exports.d.ts.map +1 -0
- package/dist/dts/pbc/webpack/index.d.ts +2 -0
- package/dist/dts/pbc/webpack/index.d.ts.map +1 -0
- package/dist/dts/pbc/webpack/utils.d.ts +9 -0
- package/dist/dts/pbc/webpack/utils.d.ts.map +1 -0
- package/dist/dts/serviceWorker/serviceWorker.d.ts +5 -0
- package/dist/dts/serviceWorker/serviceWorker.d.ts.map +1 -1
- package/dist/dts/tsdoc-metadata.json +11 -0
- package/dist/esm/app/app.js +190 -0
- package/dist/esm/app/behaviors.js +126 -0
- package/dist/esm/app/config.js +28 -0
- package/dist/esm/app/index.js +4 -0
- package/dist/esm/app/types.js +1 -0
- package/dist/esm/app/utils.js +102 -0
- package/dist/esm/index.docs.js +7 -0
- package/dist/esm/layouts/default/layout.js +3 -0
- package/dist/esm/layouts/formatsExample/layout.js +3 -0
- package/dist/esm/main/main.js +3 -0
- package/dist/esm/main/main.styles.js +3 -0
- package/dist/esm/main/main.template.js +9 -0
- package/dist/esm/pbc/index.js +1 -0
- package/dist/esm/pbc/pbc.js +82 -0
- package/dist/esm/pbc/vite/exports.js +38 -0
- package/dist/esm/pbc/vite/index.js +1 -0
- package/dist/esm/pbc/vite/utils.js +16 -0
- package/dist/esm/pbc/webpack/exports.js +26 -0
- package/dist/esm/pbc/webpack/index.js +1 -0
- package/dist/esm/pbc/webpack/utils.js +16 -0
- package/dist/esm/serviceWorker/serviceWorker.js +2 -0
- package/dist/foundation-shell.api.json +4415 -0
- package/dist/foundation-shell.d.ts +1098 -0
- package/dist/{foundationShell.36a3b143a4ba39b4f032455d8eb5e502.js.map → foundationShell.fadec38bfa479afb70fbd232cd79236c.js.map} +1 -1
- package/dist/index.html +2 -2
- package/dist/main.3083ee4d28f46e8a3506.js +2 -0
- package/dist/{main.6f018458fb996d9110cc5fd4557cc7b2.js.map → main.4eedb5ca7f0017cbc616ee79b8e61731.js.map} +1 -1
- package/dist/remoteEntry.js +2 -2
- package/dist/sw.js +2 -2
- package/dist/{swRegistration.5825d13b9d973891da34.js → swRegistration.48635f3caa94cdf4bcb2.js} +2 -2
- package/dist/{swRegistration.de691080ebb6f93ca0a423137ad2c19a.js.map → swRegistration.a93f46a92fddad87f178ead7e088ee54.js.map} +1 -1
- package/docs/.gitattributes +2 -0
- package/docs/api/foundation-shell.app.config.md +13 -0
- package/docs/api/foundation-shell.app.deregisterassets.md +17 -0
- package/docs/api/foundation-shell.app.hasassets.md +17 -0
- package/docs/api/foundation-shell.app.md +49 -0
- package/docs/api/foundation-shell.app.registerassets.md +52 -0
- package/docs/api/foundation-shell.appassets.elements.md +13 -0
- package/docs/api/foundation-shell.appassets.md +25 -0
- package/docs/api/foundation-shell.appassets.metadata.md +13 -0
- package/docs/api/foundation-shell.appassets.registrations.md +13 -0
- package/docs/api/foundation-shell.appassets.routes.md +13 -0
- package/docs/api/foundation-shell.appassets.stores.md +13 -0
- package/docs/api/foundation-shell.appassets.styles.md +13 -0
- package/docs/api/foundation-shell.appconfig.context.md +11 -0
- package/docs/api/foundation-shell.appconfig.defaultelementrepeatoptions.md +11 -0
- package/docs/api/foundation-shell.appconfig.md +21 -0
- package/docs/api/foundation-shell.appcontext.md +19 -0
- package/docs/api/foundation-shell.appdependencies.md +15 -0
- package/docs/api/foundation-shell.appdependencyprerequisites.md +15 -0
- package/docs/api/foundation-shell.appelement.md +55 -0
- package/docs/api/foundation-shell.appelementpredicate.md +17 -0
- package/docs/api/foundation-shell.appmetadata.md +45 -0
- package/docs/api/foundation-shell.appregister.deregisterelement.md +31 -0
- package/docs/api/foundation-shell.appregister.deregisterroute.md +31 -0
- package/docs/api/foundation-shell.appregister.deregisterstore.md +31 -0
- package/docs/api/foundation-shell.appregister.deregisterstyle.md +31 -0
- package/docs/api/foundation-shell.appregister.md +37 -0
- package/docs/api/foundation-shell.appregister.registercomponents.md +13 -0
- package/docs/api/foundation-shell.appregister.registerelement.md +31 -0
- package/docs/api/foundation-shell.appregister.registerelementstarget.md +13 -0
- package/docs/api/foundation-shell.appregister.registerroute.md +31 -0
- package/docs/api/foundation-shell.appregister.registerroutecollection.md +13 -0
- package/docs/api/foundation-shell.appregister.registerstore.md +31 -0
- package/docs/api/foundation-shell.appregister.registerstoreroot.md +13 -0
- package/docs/api/foundation-shell.appregister.registerstyle.md +31 -0
- package/docs/api/foundation-shell.appregister.registerstylestarget.md +13 -0
- package/docs/api/foundation-shell.appregistration.md +57 -0
- package/docs/api/foundation-shell.appregistrationcontext.md +15 -0
- package/docs/api/foundation-shell.approute.md +49 -0
- package/docs/api/foundation-shell.approutepredicate.md +17 -0
- package/docs/api/foundation-shell.appstore.md +45 -0
- package/docs/api/foundation-shell.appstorepredicate.md +17 -0
- package/docs/api/foundation-shell.appstyle.md +48 -0
- package/docs/api/foundation-shell.appstylepredicate.md +17 -0
- package/docs/api/foundation-shell.apptargetid.md +43 -0
- package/docs/api/foundation-shell.apptokentypepredicate.md +13 -0
- package/docs/api/foundation-shell.appvalidity.isvalid.md +26 -0
- package/docs/api/foundation-shell.appvalidity.md +20 -0
- package/docs/api/foundation-shell.appvaliditycontext.md +18 -0
- package/docs/api/foundation-shell.assetpredicate.md +12 -0
- package/docs/api/foundation-shell.defaultapp.deregisterassets.md +17 -0
- package/docs/api/foundation-shell.defaultapp.deregisterelement.md +24 -0
- package/docs/api/foundation-shell.defaultapp.deregisterroute.md +24 -0
- package/docs/api/foundation-shell.defaultapp.deregisterstore.md +24 -0
- package/docs/api/foundation-shell.defaultapp.deregisterstyle.md +24 -0
- package/docs/api/foundation-shell.defaultapp.elements.md +13 -0
- package/docs/api/foundation-shell.defaultapp.hasassets.md +17 -0
- package/docs/api/foundation-shell.defaultapp.isvalid.md +26 -0
- package/docs/api/foundation-shell.defaultapp.md +48 -0
- package/docs/api/foundation-shell.defaultapp.metadata.md +13 -0
- package/docs/api/foundation-shell.defaultapp.registerassets.md +24 -0
- package/docs/api/foundation-shell.defaultapp.registercomponents.md +24 -0
- package/docs/api/foundation-shell.defaultapp.registerelement.md +24 -0
- package/docs/api/foundation-shell.defaultapp.registerelementstarget.md +28 -0
- package/docs/api/foundation-shell.defaultapp.registerroute.md +24 -0
- package/docs/api/foundation-shell.defaultapp.registerroutecollection.md +25 -0
- package/docs/api/foundation-shell.defaultapp.registerstore.md +24 -0
- package/docs/api/foundation-shell.defaultapp.registerstoreroot.md +25 -0
- package/docs/api/foundation-shell.defaultapp.registerstyle.md +24 -0
- package/docs/api/foundation-shell.defaultapp.registerstylestarget.md +27 -0
- package/docs/api/foundation-shell.defaultapp.registrations.md +13 -0
- package/docs/api/foundation-shell.defaultapp.routes.md +13 -0
- package/docs/api/foundation-shell.defaultapp.stores.md +13 -0
- package/docs/api/foundation-shell.defaultapp.styles.md +13 -0
- package/docs/api/foundation-shell.defaultappconfig.md +13 -0
- package/docs/api/foundation-shell.dynamictemplate.md +12 -0
- package/docs/api/foundation-shell.getapp.md +30 -0
- package/docs/api/foundation-shell.getqualifiedmoduletokens.md +11 -0
- package/docs/api/foundation-shell.haspredicate.md +17 -0
- package/docs/api/foundation-shell.hastarget.md +15 -0
- package/docs/api/foundation-shell.importpbcassets.md +75 -0
- package/docs/api/foundation-shell.isappelement.md +22 -0
- package/docs/api/foundation-shell.isappmetadata.md +22 -0
- package/docs/api/foundation-shell.isappregistration.md +22 -0
- package/docs/api/foundation-shell.isapproute.md +22 -0
- package/docs/api/foundation-shell.isappstore.md +22 -0
- package/docs/api/foundation-shell.isappstyle.md +22 -0
- package/docs/api/foundation-shell.iscomposablestyles.md +22 -0
- package/docs/api/foundation-shell.isviewtemplate.md +22 -0
- package/docs/api/foundation-shell.loadingtemplate.md +12 -0
- package/docs/api/foundation-shell.mainapplication.connectedcallback.md +15 -0
- package/docs/api/foundation-shell.mainapplication.md +27 -0
- package/docs/api/foundation-shell.mainapplication.ready.md +11 -0
- package/docs/api/foundation-shell.mainapplication.selecttemplate.md +15 -0
- package/docs/api/foundation-shell.maintemplate.md +12 -0
- package/docs/api/foundation-shell.md +81 -0
- package/docs/api/foundation-shell.registercomponents.md +34 -0
- package/docs/api/foundation-shell.registerelementstarget.md +39 -0
- package/docs/api/foundation-shell.registerroutecollection.md +24 -0
- package/docs/api/foundation-shell.registerstoreroot.md +33 -0
- package/docs/api/foundation-shell.registerstylestarget.md +27 -0
- package/docs/api/foundation-shell.registrationpredicate.md +12 -0
- package/docs/api/foundation-shell.targetidpredicate.md +12 -0
- package/docs/api/index.md +12 -0
- package/docs/api-report.md +293 -0
- package/package.json +50 -9
- package/dist/InjectManifest.44b41759e967dfc682a50ab3e02bfaba.js.map +0 -1
- package/dist/main.21fe80be0d6102e2dccf.js +0 -2
|
@@ -0,0 +1,700 @@
|
|
|
1
|
+
import type { StoreRoot } from '@genesislcap/foundation-store';
|
|
2
|
+
import type { FoundationRoute, FoundationRouteCollection } from '@genesislcap/foundation-ui';
|
|
3
|
+
import type { DesignSystemModule } from '@genesislcap/foundation-utils';
|
|
4
|
+
import type { Behavior, ComposableStyles, RepeatOptions, ViewTemplate } from '@microsoft/fast-element';
|
|
5
|
+
import type { HasElement } from '@microsoft/fast-router';
|
|
6
|
+
/**
|
|
7
|
+
* Context passed to predicate functions and other utilities.
|
|
8
|
+
*
|
|
9
|
+
* @privateRemarks
|
|
10
|
+
* Properties are dynamically assigned.
|
|
11
|
+
*
|
|
12
|
+
* @public
|
|
13
|
+
*/
|
|
14
|
+
export type AppContext = {
|
|
15
|
+
env?: string;
|
|
16
|
+
domain?: string;
|
|
17
|
+
user?: {};
|
|
18
|
+
answers?: {};
|
|
19
|
+
featureFlags?: {};
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Context used during component registration.
|
|
23
|
+
*
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
export type AppRegistrationContext = {
|
|
27
|
+
/**
|
|
28
|
+
* Explicitly set by app author via registerComponents.
|
|
29
|
+
*/
|
|
30
|
+
designSystem: DesignSystemModule;
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* @example
|
|
34
|
+
* Simple registration function to include a component and avoid it being tree-shaken out of the build.
|
|
35
|
+
* ```ts
|
|
36
|
+
* // src/pbc/notify/registrations.ts
|
|
37
|
+
*
|
|
38
|
+
* export function registerAlerts() {
|
|
39
|
+
* FoundationAlerts;
|
|
40
|
+
* }
|
|
41
|
+
* ```
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* Combined registration function.
|
|
45
|
+
* ```ts
|
|
46
|
+
* // src/pbc/notify/registrations.ts
|
|
47
|
+
*
|
|
48
|
+
* export function register() {
|
|
49
|
+
* FoundationAlerts;
|
|
50
|
+
* FoundationInbox;
|
|
51
|
+
* ...
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* Using the host application's registration context to register with the design system and import from it if needed.
|
|
57
|
+
* ```ts
|
|
58
|
+
* // src/pbc/notify/registrations.ts
|
|
59
|
+
*
|
|
60
|
+
* export async function registerAlerts(context: AppRegistrationContext) {
|
|
61
|
+
* try {
|
|
62
|
+
* const { provideDesignSystem, tokenX } = context.designSystem;
|
|
63
|
+
* provideDesignSystem().register(foundationAlerts, tokenX);
|
|
64
|
+
* } catch (e) {
|
|
65
|
+
* console.error('Error registering alerts', e);
|
|
66
|
+
* }
|
|
67
|
+
* }
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* When defining `AppRegistration` functions in a PBC context, consider defining separate register functions if various
|
|
71
|
+
* subcomponents may be conditionally included based on user preferences or runtime predicates.
|
|
72
|
+
*
|
|
73
|
+
* @param context - {@link AppRegistrationContext}.
|
|
74
|
+
*
|
|
75
|
+
* @public
|
|
76
|
+
*/
|
|
77
|
+
export type AppRegistration = (context: AppRegistrationContext) => void;
|
|
78
|
+
/**
|
|
79
|
+
* Asset runtime predicate function.
|
|
80
|
+
*
|
|
81
|
+
* @param context - {@link AppContext}.
|
|
82
|
+
*
|
|
83
|
+
* @public
|
|
84
|
+
*/
|
|
85
|
+
export type AssetPredicate = (context?: AppContext) => boolean;
|
|
86
|
+
/**
|
|
87
|
+
* Interface that includes `predicate` function.
|
|
88
|
+
*
|
|
89
|
+
* @public
|
|
90
|
+
*/
|
|
91
|
+
export type HasPredicate = {
|
|
92
|
+
/**
|
|
93
|
+
* Optional runtime predicate to include or exclude the pbc asset.
|
|
94
|
+
*/
|
|
95
|
+
predicate?: AssetPredicate;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* Interface that includes `targetId`.
|
|
99
|
+
*
|
|
100
|
+
* @typeParam TTarget - Optional target id type.
|
|
101
|
+
*
|
|
102
|
+
* @public
|
|
103
|
+
*/
|
|
104
|
+
export type HasTarget<TTarget = string> = {
|
|
105
|
+
/**
|
|
106
|
+
* The target the asset is intended for, such as main, header, header-start, header-end, layout etc.
|
|
107
|
+
*/
|
|
108
|
+
targetId: TTarget;
|
|
109
|
+
};
|
|
110
|
+
/**
|
|
111
|
+
* A targetId string or an array of targetId strings.
|
|
112
|
+
*
|
|
113
|
+
* Apps and micro frontends will predefine integration targets that dynamic app assets can target using a `targetId`
|
|
114
|
+
* property. This creates a pull-like effect where the host can live reload itself should any matching asset be lazily
|
|
115
|
+
* added, removed, or customised.
|
|
116
|
+
*
|
|
117
|
+
* @example
|
|
118
|
+
* Foundation-header example.
|
|
119
|
+
* ```ts
|
|
120
|
+
* // src/main/targetId.ts
|
|
121
|
+
*
|
|
122
|
+
* export type NavTargetId = 'nav-start' | 'nav' | 'nav-end';
|
|
123
|
+
* export type SideNavTargetId = 'side-nav-start' | 'side-nav' | 'side-nav-end';
|
|
124
|
+
* export type ElementTargetId = HeaderTargetId | NavTargetId | SideNavTargetId;
|
|
125
|
+
* export type StyleTargetId = 'header';
|
|
126
|
+
*
|
|
127
|
+
* // src/main/main.template.ts
|
|
128
|
+
*
|
|
129
|
+
* export const NavTemplate = html<Navigation>`
|
|
130
|
+
* ...
|
|
131
|
+
* ${app.registerElementsTarget<NavTargetId>('nav-start')}
|
|
132
|
+
* ...
|
|
133
|
+
* `
|
|
134
|
+
*
|
|
135
|
+
* // src/main/main.styles.ts
|
|
136
|
+
*
|
|
137
|
+
* export const MainStyles = css`
|
|
138
|
+
* ...
|
|
139
|
+
* `.withBehaviors(getApp().registerStylesTarget<StyleTargetId>('header'));
|
|
140
|
+
* ```
|
|
141
|
+
*
|
|
142
|
+
* @typeParam TTarget - Optional target id type.
|
|
143
|
+
*
|
|
144
|
+
* @public
|
|
145
|
+
*/
|
|
146
|
+
export type AppTargetId<TTarget = string> = TTarget | TTarget[];
|
|
147
|
+
/**
|
|
148
|
+
* @example
|
|
149
|
+
* AppStyle definition example.
|
|
150
|
+
* ```ts
|
|
151
|
+
* export const alerts: AppStyle = {
|
|
152
|
+
* targetId: 'layout',
|
|
153
|
+
* styles: css`
|
|
154
|
+
* foundation-alerts {
|
|
155
|
+
* --design-unit: 2.5;
|
|
156
|
+
* --stroke-width: 1;
|
|
157
|
+
* }
|
|
158
|
+
*
|
|
159
|
+
* foundation-alerts::part(filter-button) {
|
|
160
|
+
* --design-unit: 4;
|
|
161
|
+
* }
|
|
162
|
+
* `,
|
|
163
|
+
* };
|
|
164
|
+
* ```
|
|
165
|
+
*
|
|
166
|
+
* @example
|
|
167
|
+
* Optional runtime {@link AssetPredicate} function to determine if the asset should be used.
|
|
168
|
+
* ```ts
|
|
169
|
+
* export const alerts: AppStyle = {
|
|
170
|
+
* targetId: 'layout',
|
|
171
|
+
* predicate: (context: AppContext) => context.user.isAdmin(),
|
|
172
|
+
* styles: css``,
|
|
173
|
+
* ...
|
|
174
|
+
* }
|
|
175
|
+
* ```
|
|
176
|
+
*
|
|
177
|
+
* @typeParam TTarget - Optional target id type.
|
|
178
|
+
*
|
|
179
|
+
* @public
|
|
180
|
+
*/
|
|
181
|
+
export type AppStyle<T = string> = HasTarget<T> & HasPredicate & {
|
|
182
|
+
/**
|
|
183
|
+
* The styles to integrate.
|
|
184
|
+
*/
|
|
185
|
+
styles: ComposableStyles | ComposableStyles[];
|
|
186
|
+
};
|
|
187
|
+
/**
|
|
188
|
+
* @example
|
|
189
|
+
* AppElement definition example.
|
|
190
|
+
* ```ts
|
|
191
|
+
* const store = getNotifyStore();
|
|
192
|
+
* ...
|
|
193
|
+
* export const inboxFlyout: AppElement = {
|
|
194
|
+
* targetId: 'layout',
|
|
195
|
+
* elements: html`
|
|
196
|
+
* <zero-flyout
|
|
197
|
+
* position="right"
|
|
198
|
+
* @closed=${(x, c) => c.parent.$emit('change-inbox-display', false)}
|
|
199
|
+
* ?closed=${() => !store.inboxDisplayState}
|
|
200
|
+
* displayHeader=${false}
|
|
201
|
+
* data-pbc-asset-id="inbox-flyout"
|
|
202
|
+
* >
|
|
203
|
+
* <foundation-inbox
|
|
204
|
+
* @close=${(x, c) => (<Flyout>(<HTMLElement>c.event.target).parentNode).closeFlyout()}
|
|
205
|
+
* ></foundation-inbox>
|
|
206
|
+
* </zero-flyout>
|
|
207
|
+
* `,
|
|
208
|
+
* };
|
|
209
|
+
* ```
|
|
210
|
+
*
|
|
211
|
+
* Note that bindings may need to use `c.parent` to `$emit` or reference properties of the target integration point.
|
|
212
|
+
* The inclusion of a `data-pbc-asset-id` is not a hard requirement, but should be considered for future operations.
|
|
213
|
+
*
|
|
214
|
+
* @example
|
|
215
|
+
* Optional runtime {@link AssetPredicate} function to determine if the asset should be used.
|
|
216
|
+
* ```ts
|
|
217
|
+
* export const inboxFlyout: AppElement = {
|
|
218
|
+
* targetId: 'layout',
|
|
219
|
+
* predicate: (context: AppContext) => true, // < assess the user, permissions, env, domain, etc.
|
|
220
|
+
* elements: html``,
|
|
221
|
+
* }
|
|
222
|
+
* ```
|
|
223
|
+
*
|
|
224
|
+
* @typeParam TSource - Optional ViewTemplate TSource interface.
|
|
225
|
+
* @typeParam TParent - Optional ViewTemplate TParent interface.
|
|
226
|
+
* @typeParam TTarget - Optional target id type.
|
|
227
|
+
*
|
|
228
|
+
* @public
|
|
229
|
+
*/
|
|
230
|
+
export type AppElement<TSource = any, TParent = any, TTarget = string> = HasTarget<TTarget> & HasPredicate & {
|
|
231
|
+
/**
|
|
232
|
+
* The elements to integrate.
|
|
233
|
+
*/
|
|
234
|
+
elements: ViewTemplate<TSource, TParent>;
|
|
235
|
+
/**
|
|
236
|
+
* Optional placement index which influences ordering.
|
|
237
|
+
*/
|
|
238
|
+
placementIndex?: number;
|
|
239
|
+
/**
|
|
240
|
+
* Optional slot id of the target, such as start, end or default/omitted.
|
|
241
|
+
* @privateRemarks
|
|
242
|
+
* Not currently used. We could mirror https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentElement#position here.
|
|
243
|
+
*/
|
|
244
|
+
slotId?: string;
|
|
245
|
+
};
|
|
246
|
+
/**
|
|
247
|
+
* @example
|
|
248
|
+
* AppRoute definition example.
|
|
249
|
+
* ```ts
|
|
250
|
+
* export const reporting: AppRoute = {
|
|
251
|
+
* title: 'Reporting',
|
|
252
|
+
* path: 'reporting',
|
|
253
|
+
* name: 'reporting',
|
|
254
|
+
* element: async () => (await import('@genesislcap/pbc-reporting')).Reporting,
|
|
255
|
+
* navItems: [
|
|
256
|
+
* {
|
|
257
|
+
* navId: 'header',
|
|
258
|
+
* title: 'Reporting',
|
|
259
|
+
* icon: {
|
|
260
|
+
* name: 'file-csv',
|
|
261
|
+
* variant: 'solid',
|
|
262
|
+
* },
|
|
263
|
+
* placementIndex: 15,
|
|
264
|
+
* },
|
|
265
|
+
* ],
|
|
266
|
+
* };
|
|
267
|
+
* ```
|
|
268
|
+
*
|
|
269
|
+
* @example
|
|
270
|
+
* Optional runtime {@link AssetPredicate} function to determine if the asset should be used.
|
|
271
|
+
* ```ts
|
|
272
|
+
* export const reportingAdmin: AppRoute = {
|
|
273
|
+
* path: 'reporting-admin',
|
|
274
|
+
* predicate: (context: AppContext) => context.user.isAdmin(),
|
|
275
|
+
* ...
|
|
276
|
+
* }
|
|
277
|
+
* ```
|
|
278
|
+
*
|
|
279
|
+
* @public
|
|
280
|
+
*/
|
|
281
|
+
export type AppRoute = FoundationRoute & HasElement & HasPredicate;
|
|
282
|
+
/**
|
|
283
|
+
* @example
|
|
284
|
+
* AppStore definition example.
|
|
285
|
+
* ```ts
|
|
286
|
+
* // src/pbc/notify/stores.ts
|
|
287
|
+
*
|
|
288
|
+
* // Setup the foundation stores your PBC needs to function, then include the following for each:
|
|
289
|
+
*
|
|
290
|
+
* export function getNotifyStore(): NotifyStore {
|
|
291
|
+
* return DI.getOrCreateDOMContainer().get(NotifyStore);
|
|
292
|
+
* }
|
|
293
|
+
*
|
|
294
|
+
* // The actual `AppStore` definition
|
|
295
|
+
* export const notifyAppStore: AppStore<NotifyStore> = {
|
|
296
|
+
* store: getNotifyStore(),
|
|
297
|
+
* };
|
|
298
|
+
* ```
|
|
299
|
+
*
|
|
300
|
+
* @example
|
|
301
|
+
* Optional runtime {@link AssetPredicate} function to determine if the asset should be used.
|
|
302
|
+
* ```ts
|
|
303
|
+
* export const notifyAppStore: AppStore<NotifyStore> = {
|
|
304
|
+
* store: getNotifyStore(),
|
|
305
|
+
* predicate: (context: AppContext) => true, // < assess the user, permissions, env, domain, etc.
|
|
306
|
+
* };
|
|
307
|
+
* ```
|
|
308
|
+
*
|
|
309
|
+
* @public
|
|
310
|
+
*/
|
|
311
|
+
export type AppStore<S = any> = HasPredicate & {
|
|
312
|
+
/**
|
|
313
|
+
* A `foundation-store` reference.
|
|
314
|
+
*/
|
|
315
|
+
store: S;
|
|
316
|
+
};
|
|
317
|
+
/**
|
|
318
|
+
* A record of app dependencies.
|
|
319
|
+
* @public
|
|
320
|
+
*/
|
|
321
|
+
export type AppDependencies = {
|
|
322
|
+
[key: string]: string;
|
|
323
|
+
};
|
|
324
|
+
/**
|
|
325
|
+
* A record of app dependency prerequisites.
|
|
326
|
+
* @public
|
|
327
|
+
*/
|
|
328
|
+
export type AppDependencyPrerequisites = {
|
|
329
|
+
[key: string]: string;
|
|
330
|
+
};
|
|
331
|
+
/**
|
|
332
|
+
* @example
|
|
333
|
+
* AppMetadata definition example.
|
|
334
|
+
* ```ts
|
|
335
|
+
* // src/pbc/reporting/metadata.ts
|
|
336
|
+
*
|
|
337
|
+
* export const metadata: AppMetadata = {
|
|
338
|
+
* name: '@genesiscommunitysuccess/pbc-reporting',
|
|
339
|
+
* description: 'Genesis Reporting PBC',
|
|
340
|
+
* version: '1.0.0',
|
|
341
|
+
* prerequisites: {
|
|
342
|
+
* '@genesislcap/foundation-ui': '14.0.0',
|
|
343
|
+
* gsf: '7.1.0-SNAPSHOT',
|
|
344
|
+
* },
|
|
345
|
+
* dependencies: {
|
|
346
|
+
* '@genesislcap/pbc-reporting': '1.0.0',
|
|
347
|
+
* serverDepId: '7.1.0-SNAPSHOT',
|
|
348
|
+
* },
|
|
349
|
+
* };
|
|
350
|
+
* ```
|
|
351
|
+
*
|
|
352
|
+
* @remarks
|
|
353
|
+
* It is not a hard requirement to have a `metadata.ts` file or a `AppMetadata` export token.
|
|
354
|
+
*
|
|
355
|
+
* @public
|
|
356
|
+
*/
|
|
357
|
+
export type AppMetadata = {
|
|
358
|
+
name: string;
|
|
359
|
+
version: string;
|
|
360
|
+
description?: string;
|
|
361
|
+
dependencies?: AppDependencies;
|
|
362
|
+
prerequisites?: AppDependencyPrerequisites;
|
|
363
|
+
};
|
|
364
|
+
/**
|
|
365
|
+
* Context used to assess app validity.
|
|
366
|
+
*
|
|
367
|
+
* @public
|
|
368
|
+
*/
|
|
369
|
+
export type AppValidityContext = {
|
|
370
|
+
dependencies?: AppDependencies;
|
|
371
|
+
prerequisites?: AppDependencyPrerequisites;
|
|
372
|
+
};
|
|
373
|
+
/**
|
|
374
|
+
* Determine if export token should be included in the import all glob.
|
|
375
|
+
*
|
|
376
|
+
* @public
|
|
377
|
+
*/
|
|
378
|
+
export type AppTokenTypePredicate = (token: unknown) => boolean;
|
|
379
|
+
/**
|
|
380
|
+
* Determine if the {@link AppRoute} should be integrated.
|
|
381
|
+
*
|
|
382
|
+
* Provides app, micro frontend, and seed author fine-grained control over what assets they will accept in their
|
|
383
|
+
* target integration points.
|
|
384
|
+
*
|
|
385
|
+
* @public
|
|
386
|
+
*/
|
|
387
|
+
export type AppRoutePredicate = (route: AppRoute, context?: AppContext) => boolean;
|
|
388
|
+
/**
|
|
389
|
+
* Determine if {@link AppStore} should be included during runtime integration.
|
|
390
|
+
*
|
|
391
|
+
* Provides app, micro frontend, and seed author fine-grained control over what assets they will accept in their
|
|
392
|
+
* target integration points.
|
|
393
|
+
*
|
|
394
|
+
* @public
|
|
395
|
+
*/
|
|
396
|
+
export type AppStorePredicate = (store: AppStore, context?: AppContext) => boolean;
|
|
397
|
+
/**
|
|
398
|
+
* Determine if {@link AppElement} should be included during runtime integration.
|
|
399
|
+
*
|
|
400
|
+
* Provides app, micro frontend, and seed author fine-grained control over what assets they will accept in their
|
|
401
|
+
* target integration points. This is a similar concept to {@link @microsoft/fast-element#ElementsFilter} which may be
|
|
402
|
+
* applied to slotted content. For example the accordion accepts slotted accordionItems only.
|
|
403
|
+
*
|
|
404
|
+
* @public
|
|
405
|
+
*/
|
|
406
|
+
export type AppElementPredicate = (element: AppElement, context?: AppContext) => boolean;
|
|
407
|
+
/**
|
|
408
|
+
* Determine if {@link AppStyle} should be included during runtime integration.
|
|
409
|
+
*
|
|
410
|
+
* Provides app, micro frontend, and seed author fine-grained control over what assets they will accept in their
|
|
411
|
+
* target integration points.
|
|
412
|
+
*
|
|
413
|
+
* @public
|
|
414
|
+
*/
|
|
415
|
+
export type AppStylePredicate = (style: AppStyle, context?: AppContext) => boolean;
|
|
416
|
+
/**
|
|
417
|
+
* Dynamically registered assets.
|
|
418
|
+
*
|
|
419
|
+
* @public
|
|
420
|
+
*/
|
|
421
|
+
export interface AppAssets {
|
|
422
|
+
/**
|
|
423
|
+
* All {@link AppElement} tokens.
|
|
424
|
+
*/
|
|
425
|
+
readonly elements: AppElement[];
|
|
426
|
+
/**
|
|
427
|
+
* All {@link AppMetadata} tokens.
|
|
428
|
+
*/
|
|
429
|
+
readonly metadata: AppMetadata[];
|
|
430
|
+
/**
|
|
431
|
+
* All {@link AppRegistration} tokens.
|
|
432
|
+
*/
|
|
433
|
+
readonly registrations: AppRegistration[];
|
|
434
|
+
/**
|
|
435
|
+
* All {@link AppRoute} tokens.
|
|
436
|
+
*/
|
|
437
|
+
readonly routes: AppRoute[];
|
|
438
|
+
/**
|
|
439
|
+
* All {@link AppStyle} tokens.
|
|
440
|
+
*/
|
|
441
|
+
readonly styles: AppStyle[];
|
|
442
|
+
/**
|
|
443
|
+
* All {@link AppStore} tokens.
|
|
444
|
+
*/
|
|
445
|
+
readonly stores: AppStore[];
|
|
446
|
+
}
|
|
447
|
+
/**
|
|
448
|
+
* API for Application and Seed authors to register the main {@link @genesislcap/foundation-ui#FoundationRouteCollection | FoundationRouteCollection}.
|
|
449
|
+
*
|
|
450
|
+
* @example
|
|
451
|
+
* ```ts
|
|
452
|
+
* // src/main/main.ts
|
|
453
|
+
* ...
|
|
454
|
+
* getApp().registerRouteCollection(this.config.routes);
|
|
455
|
+
* ```
|
|
456
|
+
*
|
|
457
|
+
* @param routeCollection - The route collection to register {@link AppRoute | AppRoutes} to.
|
|
458
|
+
* @param predicate - Optional {@link AppRoutePredicate}.
|
|
459
|
+
*
|
|
460
|
+
* @public
|
|
461
|
+
*/
|
|
462
|
+
export type RegisterRouteCollection = (routeCollection: FoundationRouteCollection, predicate?: AppRoutePredicate) => (source: unknown) => void;
|
|
463
|
+
/**
|
|
464
|
+
* API for Application and Seed authors to register the {@link @genesislcap/foundation-store#StoreRoot | StoreRoot}.
|
|
465
|
+
*
|
|
466
|
+
* @example
|
|
467
|
+
* ```ts
|
|
468
|
+
* // src/store/store.ts
|
|
469
|
+
*
|
|
470
|
+
* class DefaultStore extends AbstractStoreRoot<Store, StoreEventDetailMap> implements Store {
|
|
471
|
+
* ...
|
|
472
|
+
* constructor() {
|
|
473
|
+
* super();
|
|
474
|
+
*
|
|
475
|
+
* // Register the store root
|
|
476
|
+
* getApp().registerStoreRoot(this);
|
|
477
|
+
* }
|
|
478
|
+
* ...
|
|
479
|
+
* }
|
|
480
|
+
* ```
|
|
481
|
+
*
|
|
482
|
+
* @param storeRoot - The store root to register {@link AppStore | AppStores} to.
|
|
483
|
+
* @param predicate - Optional {@link AppStorePredicate}.
|
|
484
|
+
*
|
|
485
|
+
* @public
|
|
486
|
+
*/
|
|
487
|
+
export type RegisterStoreRoot = (storeRoot: StoreRoot, predicate?: AppStorePredicate) => (source: unknown) => void;
|
|
488
|
+
/**
|
|
489
|
+
* API for Application and Seed authors to define dynamic {@link AppElement} integration points.
|
|
490
|
+
*
|
|
491
|
+
* @example
|
|
492
|
+
* Register elements targets within a {@link @microsoft/fast-element#html | html} template literal. An array can be used
|
|
493
|
+
* to integrate assets targeting N number of targets to the one integration location, ie. `['layout', 'layout-end']`.
|
|
494
|
+
* ```ts
|
|
495
|
+
* html`
|
|
496
|
+
* ${app.registerElementsTarget('layout-start')}
|
|
497
|
+
* ...
|
|
498
|
+
* ${app.registerElementsTarget(['layout', 'layout-end'])}
|
|
499
|
+
* `
|
|
500
|
+
* ```
|
|
501
|
+
*
|
|
502
|
+
* @example
|
|
503
|
+
* Providing a predicate function to filter what elements you will allow.
|
|
504
|
+
* ```ts
|
|
505
|
+
* html`
|
|
506
|
+
* ${app.registerElementsTarget('admin-tools', (element: AppElement, context: AppContext) => {
|
|
507
|
+
* return context.user.isAdmin();
|
|
508
|
+
* })}
|
|
509
|
+
* `
|
|
510
|
+
* ```
|
|
511
|
+
*
|
|
512
|
+
* @param targetId - {@link AppTargetId}.
|
|
513
|
+
* @param predicate - Optional {@link AppElementPredicate}.
|
|
514
|
+
* @returns A {@link @microsoft/fast-element#html | html} fragment that will stay in sync as elements are registered and deregistered.
|
|
515
|
+
*
|
|
516
|
+
* @public
|
|
517
|
+
*/
|
|
518
|
+
export type RegisterElementsTarget = <T = string>(targetId: AppTargetId<T>, predicate?: AppElementPredicate, repeatOptions?: RepeatOptions) => ViewTemplate;
|
|
519
|
+
/**
|
|
520
|
+
* API for Application and Seed authors to define dynamic {@link AppStyle} integration points.
|
|
521
|
+
*
|
|
522
|
+
* @example
|
|
523
|
+
* Register styles targets as a {@link @microsoft/fast-element#Behavior | Behavior} on a {@link @microsoft/fast-element#css | css} definition.
|
|
524
|
+
* ```ts
|
|
525
|
+
* export const MainStyles = css`
|
|
526
|
+
* :host {
|
|
527
|
+
* contain: content;
|
|
528
|
+
* }
|
|
529
|
+
* `.withBehaviors(getApp().registerStylesTarget('main'));
|
|
530
|
+
* ```
|
|
531
|
+
*
|
|
532
|
+
* @param targetId - {@link AppTargetId}.
|
|
533
|
+
* @param predicate - Optional {@link AppStylePredicate}.
|
|
534
|
+
* @returns A {@link @microsoft/fast-element#Behavior | Behavior} that will stay in sync as styles are registered and deregistered.
|
|
535
|
+
*
|
|
536
|
+
* @public
|
|
537
|
+
*/
|
|
538
|
+
export type RegisterStylesTarget = <T = string>(targetId: AppTargetId<T>, predicate?: AppStylePredicate) => Behavior;
|
|
539
|
+
/**
|
|
540
|
+
* API for Application and Seed authors to register dynamic components.
|
|
541
|
+
*
|
|
542
|
+
* @example
|
|
543
|
+
* Register components.
|
|
544
|
+
* ```ts
|
|
545
|
+
* export async function registerComponents() {
|
|
546
|
+
* const designSystem = await designSystemImport();
|
|
547
|
+
* const { provideDesignSystem, baseComponents } = designSystem;
|
|
548
|
+
* ...
|
|
549
|
+
* // Register any pbc components with the design system
|
|
550
|
+
* getApp().registerComponents({
|
|
551
|
+
* designSystem,
|
|
552
|
+
* });
|
|
553
|
+
* ...
|
|
554
|
+
* provideDesignSystem().register(...);
|
|
555
|
+
* }
|
|
556
|
+
* ```
|
|
557
|
+
*
|
|
558
|
+
* PBCs or other application assets may need to register components with the design system of the application, or simply
|
|
559
|
+
* to ensure they are referenced, so they can be used in template literals without the risk of them being tree-shaken
|
|
560
|
+
* out by the application's build process.
|
|
561
|
+
*
|
|
562
|
+
* @public
|
|
563
|
+
*/
|
|
564
|
+
export type RegisterComponents = AppRegistration;
|
|
565
|
+
/**
|
|
566
|
+
* APIs to register asset targets and assets. These can be lazily registered and deregistered.
|
|
567
|
+
*
|
|
568
|
+
* @public
|
|
569
|
+
*/
|
|
570
|
+
export interface AppRegister {
|
|
571
|
+
/** {@inheritDoc RegisterComponents} */
|
|
572
|
+
registerComponents: RegisterComponents;
|
|
573
|
+
/** {@inheritDoc RegisterElementsTarget} */
|
|
574
|
+
registerElementsTarget: RegisterElementsTarget;
|
|
575
|
+
/**
|
|
576
|
+
* API for developers to register {@link AppElement | AppElements} lazily.
|
|
577
|
+
*
|
|
578
|
+
* @example
|
|
579
|
+
* ```ts
|
|
580
|
+
* getApp().registerElement(someAppElement);
|
|
581
|
+
* ```
|
|
582
|
+
*
|
|
583
|
+
* @param element - The {@link AppElement} to register.
|
|
584
|
+
*
|
|
585
|
+
* @public
|
|
586
|
+
*/
|
|
587
|
+
registerElement(element: AppElement): void;
|
|
588
|
+
/**
|
|
589
|
+
* API for developers to deregister {@link AppElement | AppElements}.
|
|
590
|
+
*
|
|
591
|
+
* @example
|
|
592
|
+
* ```ts
|
|
593
|
+
* getApp().deregisterElement(someAppElement);
|
|
594
|
+
* ```
|
|
595
|
+
*
|
|
596
|
+
* @param element - The {@link AppElement} to deregister.
|
|
597
|
+
*
|
|
598
|
+
* @public
|
|
599
|
+
*/
|
|
600
|
+
deregisterElement(element: AppElement): void;
|
|
601
|
+
/** {@inheritDoc RegisterRouteCollection} */
|
|
602
|
+
registerRouteCollection: RegisterRouteCollection;
|
|
603
|
+
/**
|
|
604
|
+
* API for developers to register {@link AppRoute | AppRoutes} lazily.
|
|
605
|
+
*
|
|
606
|
+
* @example
|
|
607
|
+
* ```ts
|
|
608
|
+
* getApp().registerRoute(someAppRoute);
|
|
609
|
+
* ```
|
|
610
|
+
*
|
|
611
|
+
* @param route - The {@link AppRoute} to register.
|
|
612
|
+
*
|
|
613
|
+
* @public
|
|
614
|
+
*/
|
|
615
|
+
registerRoute(route: AppRoute): void;
|
|
616
|
+
/**
|
|
617
|
+
* API for developers to deregister {@link AppRoute | AppRoutes}.
|
|
618
|
+
*
|
|
619
|
+
* @example
|
|
620
|
+
* ```ts
|
|
621
|
+
* getApp().deregisterRoute(someAppRoute);
|
|
622
|
+
* ```
|
|
623
|
+
*
|
|
624
|
+
* @param route - The {@link AppRoute} to deregister.
|
|
625
|
+
*
|
|
626
|
+
* @public
|
|
627
|
+
*/
|
|
628
|
+
deregisterRoute(route: AppRoute): void;
|
|
629
|
+
/** {@inheritDoc RegisterStylesTarget} */
|
|
630
|
+
registerStylesTarget: RegisterStylesTarget;
|
|
631
|
+
/**
|
|
632
|
+
* API for developers to register {@link AppStyle | AppStyles} lazily.
|
|
633
|
+
*
|
|
634
|
+
* @example
|
|
635
|
+
* ```ts
|
|
636
|
+
* getApp().registerStyle(someAppStyle);
|
|
637
|
+
* ```
|
|
638
|
+
*
|
|
639
|
+
* @param style - The {@link AppStyle} to register.
|
|
640
|
+
*
|
|
641
|
+
* @public
|
|
642
|
+
*/
|
|
643
|
+
registerStyle(style: AppStyle): void;
|
|
644
|
+
/**
|
|
645
|
+
* API for developers to deregister {@link AppStyle | AppStyles}.
|
|
646
|
+
*
|
|
647
|
+
* @example
|
|
648
|
+
* ```ts
|
|
649
|
+
* getApp().deregisterStyle(someAppStyle);
|
|
650
|
+
* ```
|
|
651
|
+
*
|
|
652
|
+
* @param style - The {@link AppStyle} to deregister.
|
|
653
|
+
*
|
|
654
|
+
* @public
|
|
655
|
+
*/
|
|
656
|
+
deregisterStyle(style: AppStyle): void;
|
|
657
|
+
/** {@inheritDoc RegisterStoreRoot} */
|
|
658
|
+
registerStoreRoot: RegisterStoreRoot;
|
|
659
|
+
/**
|
|
660
|
+
* API for developers to register {@link AppStore | AppStores} lazily.
|
|
661
|
+
*
|
|
662
|
+
* @example
|
|
663
|
+
* ```ts
|
|
664
|
+
* getApp().registerStore(someAppStore);
|
|
665
|
+
* ```
|
|
666
|
+
*
|
|
667
|
+
* @param store - The {@link AppStore} to register.
|
|
668
|
+
*
|
|
669
|
+
* @public
|
|
670
|
+
*/
|
|
671
|
+
registerStore(store: AppStore): void;
|
|
672
|
+
/**
|
|
673
|
+
* API for developers to deregister {@link AppStore | AppStores}.
|
|
674
|
+
*
|
|
675
|
+
* @example
|
|
676
|
+
* ```ts
|
|
677
|
+
* getApp().deregisterStore(someAppStore);
|
|
678
|
+
* ```
|
|
679
|
+
*
|
|
680
|
+
* @param store - The {@link AppStore} to deregister.
|
|
681
|
+
*
|
|
682
|
+
* @public
|
|
683
|
+
*/
|
|
684
|
+
deregisterStore(store: AppStore): void;
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* APIs to check app validity.
|
|
688
|
+
*
|
|
689
|
+
* @public
|
|
690
|
+
*/
|
|
691
|
+
export interface AppValidity {
|
|
692
|
+
/**
|
|
693
|
+
* Monitors metadata and other data points as assets are registered and deregistered for app validity.
|
|
694
|
+
*
|
|
695
|
+
* @param context - {@link AppValidityContext}.
|
|
696
|
+
* @returns A boolean to indicate app validity.
|
|
697
|
+
*/
|
|
698
|
+
isValid(context: AppValidityContext): boolean;
|
|
699
|
+
}
|
|
700
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/app/types.ts"],"names":[],"mappings":"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"}
|