@servicetitan/web-components 30.3.0 → 31.0.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/dist/__mocks__/test-component.d.ts.map +1 -1
- package/dist/common.js +17 -13
- package/dist/common.js.map +1 -1
- package/dist/contexts/index.js +1 -0
- package/dist/contexts/index.js.map +1 -1
- package/dist/contexts/mfe-data-context.js +2 -2
- package/dist/contexts/mfe-data-context.js.map +1 -1
- package/dist/contexts/mfe-metadata-context.js +1 -0
- package/dist/contexts/mfe-metadata-context.js.map +1 -1
- package/dist/delayed.js +8 -5
- package/dist/delayed.js.map +1 -1
- package/dist/event-bus.js +79 -96
- package/dist/event-bus.js.map +1 -1
- package/dist/get-value-for-environment.js +9 -4
- package/dist/get-value-for-environment.js.map +1 -1
- package/dist/globals.js +7 -7
- package/dist/globals.js.map +1 -1
- package/dist/history-manager.js +59 -69
- package/dist/history-manager.js.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.js +92 -49
- package/dist/loader.js.map +1 -1
- package/dist/register.js +182 -218
- package/dist/register.js.map +1 -1
- package/dist/render.js +11 -12
- package/dist/render.js.map +1 -1
- package/dist/types.js +2 -1
- package/dist/types.js.map +1 -1
- package/dist/utils/get-bundle-info.js +18 -16
- package/dist/utils/get-bundle-info.js.map +1 -1
- package/dist/utils/get-element-name.js +1 -0
- package/dist/utils/get-element-name.js.map +1 -1
- package/dist/utils/get-entry-points.js +11 -4
- package/dist/utils/get-entry-points.js.map +1 -1
- package/dist/utils/get-ld-service-token.js +3 -3
- package/dist/utils/get-ld-service-token.js.map +1 -1
- package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js +4 -4
- package/dist/utils/get-mfe-has-compatible-launchdarkly-version.js.map +1 -1
- package/dist/utils/get-mfe-has-unique-chunk-namespace.js +1 -0
- package/dist/utils/get-mfe-has-unique-chunk-namespace.js.map +1 -1
- package/dist/utils/get-mfe-supports-rerendering.js +4 -4
- package/dist/utils/get-mfe-supports-rerendering.js.map +1 -1
- package/dist/utils/get-version-mismatches.js +18 -11
- package/dist/utils/get-version-mismatches.js.map +1 -1
- package/dist/utils/index.js +1 -0
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/is-compatible.js +1 -0
- package/dist/utils/is-compatible.js.map +1 -1
- package/dist/utils/is-versioned-url.js +2 -1
- package/dist/utils/is-versioned-url.js.map +1 -1
- package/dist/utils/load-scripts.js +7 -6
- package/dist/utils/load-scripts.js.map +1 -1
- package/dist/utils/ttl-cache.js +26 -27
- package/dist/utils/ttl-cache.js.map +1 -1
- package/dist/utils/validate-bundle-info.js +13 -10
- package/dist/utils/validate-bundle-info.js.map +1 -1
- package/dist/utils/web-component.js +46 -22
- package/dist/utils/web-component.js.map +1 -1
- package/package.json +11 -11
- package/src/__mocks__/test-component.tsx +2 -0
- package/src/__tests__/event-bus.test.ts +1 -0
- package/src/__tests__/loader.test.tsx +3 -3
- package/src/event-bus.ts +1 -0
- package/dist/__mocks__/expect-styles-in-dom.js +0 -9
- package/dist/__mocks__/expect-styles-in-dom.js.map +0 -1
- package/dist/__mocks__/index.js +0 -4
- package/dist/__mocks__/index.js.map +0 -1
- package/dist/__mocks__/register-component.js +0 -14
- package/dist/__mocks__/register-component.js.map +0 -1
- package/dist/__mocks__/test-component.js +0 -15
- package/dist/__mocks__/test-component.js.map +0 -1
- package/dist/contexts/tests/mfe-data-context.test.js +0 -24
- package/dist/contexts/tests/mfe-data-context.test.js.map +0 -1
- package/dist/contexts/tests/mfe-metadata-context.test.js +0 -26
- package/dist/contexts/tests/mfe-metadata-context.test.js.map +0 -1
package/dist/register.js
CHANGED
|
@@ -1,8 +1,21 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
} else {
|
|
10
|
+
obj[key] = value;
|
|
11
|
+
}
|
|
12
|
+
return obj;
|
|
13
|
+
}
|
|
1
14
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
15
|
import { useEffect } from 'react';
|
|
3
16
|
import { Log } from '@servicetitan/log-service';
|
|
4
17
|
import { Provider } from '@servicetitan/react-ioc';
|
|
5
|
-
import { BASENAME_TOKEN, EXPOSED_DEPENDENCIES_TOKEN, EXPOSED_INSTANCE_DEPENDENCIES_TOKEN, IS_WEB_COMPONENT_TOKEN, RENDER_ROOT_TOKEN
|
|
18
|
+
import { BASENAME_TOKEN, EXPOSED_DEPENDENCIES_TOKEN, EXPOSED_INSTANCE_DEPENDENCIES_TOKEN, IS_WEB_COMPONENT_TOKEN, RENDER_ROOT_TOKEN } from './common';
|
|
6
19
|
import { MFEDataContext } from './contexts/mfe-data-context';
|
|
7
20
|
import { MFEMetadataContext } from './contexts/mfe-metadata-context';
|
|
8
21
|
import { EVENT_BUS_TOKEN } from './event-bus';
|
|
@@ -19,239 +32,74 @@ function createLink(url, onLoad) {
|
|
|
19
32
|
element.onerror = onLoad;
|
|
20
33
|
return element;
|
|
21
34
|
}
|
|
22
|
-
const Placeholder = ()
|
|
35
|
+
const Placeholder = ()=>/*#__PURE__*/ _jsx("div", {
|
|
36
|
+
style: {
|
|
37
|
+
display: 'none'
|
|
38
|
+
}
|
|
39
|
+
});
|
|
23
40
|
export function register(Component, light, options) {
|
|
24
41
|
class WebComponent extends HTMLElement {
|
|
25
|
-
constructor() {
|
|
26
|
-
super(...arguments);
|
|
27
|
-
Object.defineProperty(this, "root", {
|
|
28
|
-
enumerable: true,
|
|
29
|
-
configurable: true,
|
|
30
|
-
writable: true,
|
|
31
|
-
value: void 0
|
|
32
|
-
});
|
|
33
|
-
Object.defineProperty(this, "portal", {
|
|
34
|
-
enumerable: true,
|
|
35
|
-
configurable: true,
|
|
36
|
-
writable: true,
|
|
37
|
-
value: void 0
|
|
38
|
-
});
|
|
39
|
-
Object.defineProperty(this, "portalAnvilContainer", {
|
|
40
|
-
enumerable: true,
|
|
41
|
-
configurable: true,
|
|
42
|
-
writable: true,
|
|
43
|
-
value: void 0
|
|
44
|
-
});
|
|
45
|
-
Object.defineProperty(this, "styles", {
|
|
46
|
-
enumerable: true,
|
|
47
|
-
configurable: true,
|
|
48
|
-
writable: true,
|
|
49
|
-
value: { total: 0, loaded: 0, elements: [] }
|
|
50
|
-
});
|
|
51
|
-
Object.defineProperty(this, "ldService", {
|
|
52
|
-
enumerable: true,
|
|
53
|
-
configurable: true,
|
|
54
|
-
writable: true,
|
|
55
|
-
value: void 0
|
|
56
|
-
});
|
|
57
|
-
Object.defineProperty(this, "logService", {
|
|
58
|
-
enumerable: true,
|
|
59
|
-
configurable: true,
|
|
60
|
-
writable: true,
|
|
61
|
-
value: void 0
|
|
62
|
-
});
|
|
63
|
-
Object.defineProperty(this, "historyManager", {
|
|
64
|
-
enumerable: true,
|
|
65
|
-
configurable: true,
|
|
66
|
-
writable: true,
|
|
67
|
-
value: void 0
|
|
68
|
-
});
|
|
69
|
-
Object.defineProperty(this, "exposedDependencies", {
|
|
70
|
-
enumerable: true,
|
|
71
|
-
configurable: true,
|
|
72
|
-
writable: true,
|
|
73
|
-
value: void 0
|
|
74
|
-
});
|
|
75
|
-
Object.defineProperty(this, "exposedInstanceDependencies", {
|
|
76
|
-
enumerable: true,
|
|
77
|
-
configurable: true,
|
|
78
|
-
writable: true,
|
|
79
|
-
value: void 0
|
|
80
|
-
});
|
|
81
|
-
Object.defineProperty(this, "eventBus", {
|
|
82
|
-
enumerable: true,
|
|
83
|
-
configurable: true,
|
|
84
|
-
writable: true,
|
|
85
|
-
value: void 0
|
|
86
|
-
});
|
|
87
|
-
Object.defineProperty(this, "basename", {
|
|
88
|
-
enumerable: true,
|
|
89
|
-
configurable: true,
|
|
90
|
-
writable: true,
|
|
91
|
-
value: void 0
|
|
92
|
-
});
|
|
93
|
-
Object.defineProperty(this, "onReady", {
|
|
94
|
-
enumerable: true,
|
|
95
|
-
configurable: true,
|
|
96
|
-
writable: true,
|
|
97
|
-
value: void 0
|
|
98
|
-
});
|
|
99
|
-
Object.defineProperty(this, "onDispose", {
|
|
100
|
-
enumerable: true,
|
|
101
|
-
configurable: true,
|
|
102
|
-
writable: true,
|
|
103
|
-
value: void 0
|
|
104
|
-
});
|
|
105
|
-
Object.defineProperty(this, "view", {
|
|
106
|
-
enumerable: true,
|
|
107
|
-
configurable: true,
|
|
108
|
-
writable: true,
|
|
109
|
-
value: void 0
|
|
110
|
-
});
|
|
111
|
-
Object.defineProperty(this, "provide", {
|
|
112
|
-
enumerable: true,
|
|
113
|
-
configurable: true,
|
|
114
|
-
writable: true,
|
|
115
|
-
value: (entries) => {
|
|
116
|
-
for (const [key, value] of Object.entries(entries)) {
|
|
117
|
-
this[key] = value;
|
|
118
|
-
}
|
|
119
|
-
if (this.styles.loaded === this.styles.total && Object.values(entries).some(v => !!v)) {
|
|
120
|
-
this.render();
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
});
|
|
124
|
-
Object.defineProperty(this, "handleLoad", {
|
|
125
|
-
enumerable: true,
|
|
126
|
-
configurable: true,
|
|
127
|
-
writable: true,
|
|
128
|
-
value: () => {
|
|
129
|
-
this.styles.loaded++;
|
|
130
|
-
if (this.styles.loaded === this.styles.total) {
|
|
131
|
-
this.render();
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
});
|
|
135
|
-
Object.defineProperty(this, "attachStyles", {
|
|
136
|
-
enumerable: true,
|
|
137
|
-
configurable: true,
|
|
138
|
-
writable: true,
|
|
139
|
-
value: (node, urls) => {
|
|
140
|
-
const elements = [];
|
|
141
|
-
for (const url of urls) {
|
|
142
|
-
const element = createLink(url, this.handleLoad);
|
|
143
|
-
node.appendChild(element);
|
|
144
|
-
elements.push(element);
|
|
145
|
-
}
|
|
146
|
-
return elements;
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
Object.defineProperty(this, "render", {
|
|
150
|
-
enumerable: true,
|
|
151
|
-
configurable: true,
|
|
152
|
-
writable: true,
|
|
153
|
-
value: () => {
|
|
154
|
-
var _a;
|
|
155
|
-
/*
|
|
156
|
-
* Check for this.root first, otherwise we get error when
|
|
157
|
-
* attributeChangedCallback happens on load
|
|
158
|
-
*/
|
|
159
|
-
if (this.root) {
|
|
160
|
-
const mfeData = this.dataset.mfeData
|
|
161
|
-
? /*
|
|
162
|
-
* Data was stringified in order to come through the data-mfe-data attribute
|
|
163
|
-
* So we must JSON.parse it here to get an object back
|
|
164
|
-
*/
|
|
165
|
-
JSON.parse(this.dataset.mfeData)
|
|
166
|
-
: /*
|
|
167
|
-
* If mfeData isn't there, then the Host may not be up to date with web-components
|
|
168
|
-
* and is instead passing data through separate data-attributes, so we want to
|
|
169
|
-
* spread all of those instead
|
|
170
|
-
*/
|
|
171
|
-
{ ...this.dataset };
|
|
172
|
-
const metadata = {
|
|
173
|
-
shadowRoot: this.root,
|
|
174
|
-
portalShadowRoot: this.portal,
|
|
175
|
-
};
|
|
176
|
-
(_a = this.view) === null || _a === void 0 ? void 0 : _a.rerender(_jsx(Provider, { singletons: [
|
|
177
|
-
{ provide: IS_WEB_COMPONENT_TOKEN, useValue: true },
|
|
178
|
-
{ provide: RENDER_ROOT_TOKEN, useValue: this.root },
|
|
179
|
-
], children: _jsx(Provider, { singletons: [
|
|
180
|
-
{ provide: Log, useValue: this.logService },
|
|
181
|
-
{
|
|
182
|
-
provide: HistoryManager,
|
|
183
|
-
useValue: this.historyManager,
|
|
184
|
-
},
|
|
185
|
-
{
|
|
186
|
-
provide: EXPOSED_DEPENDENCIES_TOKEN,
|
|
187
|
-
useValue: this.exposedDependencies,
|
|
188
|
-
},
|
|
189
|
-
{
|
|
190
|
-
provide: EXPOSED_INSTANCE_DEPENDENCIES_TOKEN,
|
|
191
|
-
useValue: this.exposedInstanceDependencies,
|
|
192
|
-
},
|
|
193
|
-
{ provide: BASENAME_TOKEN, useValue: this.basename },
|
|
194
|
-
{ provide: EVENT_BUS_TOKEN, useValue: this.eventBus },
|
|
195
|
-
{ provide: getLDServiceToken(), useValue: this.ldService },
|
|
196
|
-
].filter(({ provide, useValue }) => useValue !== undefined && provide !== undefined), children: _jsx(MFEDataContext.Provider, { value: { ...mfeData }, children: _jsxs(MFEMetadataContext.Provider, { value: metadata, children: [this.withProviders(_jsx(Component, { ...mfeData })), this.onReady && _jsx(RenderCallback, { callback: this.onReady })] }) }) }) }));
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
});
|
|
200
|
-
}
|
|
201
42
|
connectedCallback() {
|
|
202
|
-
var
|
|
43
|
+
var _this_root;
|
|
203
44
|
/*
|
|
204
45
|
* connectedCallback can be called when DOM element has moved
|
|
205
46
|
* check that root is still connected to the DOM
|
|
206
47
|
* if that's the case we don't need to reconnect MFE
|
|
207
|
-
*/
|
|
208
|
-
if ((_a = this.root) === null || _a === void 0 ? void 0 : _a.isConnected) {
|
|
48
|
+
*/ if ((_this_root = this.root) === null || _this_root === void 0 ? void 0 : _this_root.isConnected) {
|
|
209
49
|
return;
|
|
210
50
|
}
|
|
211
|
-
|
|
51
|
+
var _options_sharedDependenciesNames;
|
|
52
|
+
const sharedDependenciesNames = (_options_sharedDependenciesNames = options === null || options === void 0 ? void 0 : options.sharedDependenciesNames) !== null && _options_sharedDependenciesNames !== void 0 ? _options_sharedDependenciesNames : [];
|
|
212
53
|
const styleUrls = getStyleUrls(light, sharedDependenciesNames, this);
|
|
213
54
|
this.styles = {
|
|
214
55
|
total: styleUrls.length * 2,
|
|
215
56
|
loaded: 0,
|
|
216
|
-
elements: []
|
|
57
|
+
elements: []
|
|
217
58
|
};
|
|
218
|
-
|
|
59
|
+
var _this_shadowRoot;
|
|
60
|
+
this.root = (_this_shadowRoot = this.shadowRoot) !== null && _this_shadowRoot !== void 0 ? _this_shadowRoot : this.attachShadow({
|
|
61
|
+
mode: 'open'
|
|
62
|
+
});
|
|
219
63
|
/*
|
|
220
64
|
* Portal shadow dom is created at the bottom of the body in order to be used as
|
|
221
65
|
* the element for the design system components to attach modals and popups to.
|
|
222
66
|
* This element is passed down the tree through context, and used within
|
|
223
67
|
* the design system components.
|
|
224
|
-
*/
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
68
|
+
*/ const portalElement = document.createElement('div');
|
|
69
|
+
portalElement.setAttribute('data-mfe-portal-name', getElementName({
|
|
70
|
+
WebComponent: WEB_COMPONENT_NAME
|
|
71
|
+
}));
|
|
72
|
+
this.portal = document.body.appendChild(portalElement).attachShadow({
|
|
73
|
+
mode: 'open'
|
|
74
|
+
});
|
|
228
75
|
/*
|
|
229
76
|
* Add element inside of portal so that Anvil 2 can attach modals and popups to it
|
|
230
77
|
* since floating-ui does not support attaching straight to shadow dom
|
|
231
|
-
*/
|
|
232
|
-
this.portalAnvilContainer = document.createElement('div');
|
|
78
|
+
*/ this.portalAnvilContainer = document.createElement('div');
|
|
233
79
|
this.portal.appendChild(this.portalAnvilContainer);
|
|
234
|
-
this.view = render(_jsx(Placeholder, {}), this.root, options);
|
|
80
|
+
this.view = render(/*#__PURE__*/ _jsx(Placeholder, {}), this.root, options);
|
|
235
81
|
this.styles.elements.push(...this.attachStyles(this.root, styleUrls), ...this.attachStyles(this.portal, styleUrls));
|
|
236
82
|
}
|
|
237
83
|
disconnectedCallback() {
|
|
238
|
-
var
|
|
239
|
-
if (!this.root || ((
|
|
84
|
+
var _this_root, _this_view, _this_onDispose, _this;
|
|
85
|
+
if (!this.root || ((_this_root = this.root) === null || _this_root === void 0 ? void 0 : _this_root.isConnected)) {
|
|
240
86
|
return;
|
|
241
87
|
}
|
|
242
|
-
for (const element of this.styles.elements)
|
|
88
|
+
for (const element of this.styles.elements){
|
|
243
89
|
element.remove();
|
|
244
90
|
}
|
|
245
|
-
(
|
|
91
|
+
(_this_view = this.view) === null || _this_view === void 0 ? void 0 : _this_view.unmount();
|
|
246
92
|
document.body.removeChild(this.portal.host);
|
|
247
93
|
this.root = undefined;
|
|
248
94
|
this.portal = undefined;
|
|
249
95
|
this.portalAnvilContainer = undefined;
|
|
250
|
-
(
|
|
96
|
+
(_this_onDispose = (_this = this).onDispose) === null || _this_onDispose === void 0 ? void 0 : _this_onDispose.call(_this);
|
|
251
97
|
}
|
|
252
98
|
// Observe changes to the data-mfe-data attribute so that we can re-render when it changes
|
|
253
99
|
static get observedAttributes() {
|
|
254
|
-
return [
|
|
100
|
+
return [
|
|
101
|
+
'data-mfe-data'
|
|
102
|
+
];
|
|
255
103
|
}
|
|
256
104
|
attributeChangedCallback() {
|
|
257
105
|
this.render();
|
|
@@ -261,14 +109,18 @@ export function register(Component, light, options) {
|
|
|
261
109
|
/**
|
|
262
110
|
* Note, the webpack.IgnorePlugin must be configured to ignore this dependency.
|
|
263
111
|
* @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}
|
|
264
|
-
*/
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
112
|
+
*/ const { DefaultPortalContext, TablePopupPropsContext } = require('@servicetitan/design-system');
|
|
113
|
+
return /*#__PURE__*/ _jsx(DefaultPortalContext.Provider, {
|
|
114
|
+
value: this.portal,
|
|
115
|
+
children: /*#__PURE__*/ _jsx(TablePopupPropsContext.Provider, {
|
|
116
|
+
value: (props)=>({
|
|
117
|
+
...props,
|
|
118
|
+
appendTo: this.root
|
|
119
|
+
}),
|
|
120
|
+
children: children
|
|
121
|
+
})
|
|
122
|
+
});
|
|
123
|
+
} catch (e) {
|
|
272
124
|
return children;
|
|
273
125
|
}
|
|
274
126
|
}
|
|
@@ -277,17 +129,126 @@ export function register(Component, light, options) {
|
|
|
277
129
|
/**
|
|
278
130
|
* Note, the webpack.IgnorePlugin must be configured to ignore this dependency.
|
|
279
131
|
* @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}
|
|
280
|
-
*/
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
132
|
+
*/ const { PortalProvider } = require('@servicetitan/anvil2');
|
|
133
|
+
return /*#__PURE__*/ _jsx(PortalProvider, {
|
|
134
|
+
root: this.portalAnvilContainer,
|
|
135
|
+
children: children
|
|
136
|
+
});
|
|
137
|
+
} catch (e) {
|
|
285
138
|
return children;
|
|
286
139
|
}
|
|
287
140
|
}
|
|
288
141
|
withProviders(children) {
|
|
289
142
|
return this.withAnvil2Providers(this.withAnvil1Providers(children));
|
|
290
143
|
}
|
|
144
|
+
constructor(...args){
|
|
145
|
+
super(...args), _define_property(this, "root", void 0), _define_property(this, "portal", void 0), _define_property(this, "portalAnvilContainer", void 0), _define_property(this, "styles", {
|
|
146
|
+
total: 0,
|
|
147
|
+
loaded: 0,
|
|
148
|
+
elements: []
|
|
149
|
+
}), _define_property(this, "ldService", void 0), _define_property(this, "logService", void 0), _define_property(this, "historyManager", void 0), _define_property(this, "exposedDependencies", void 0), _define_property(this, "exposedInstanceDependencies", void 0), _define_property(this, "eventBus", void 0), _define_property(this, "basename", void 0), _define_property(this, "onReady", void 0), _define_property(this, "onDispose", void 0), _define_property(this, "view", void 0), _define_property(this, "provide", (entries)=>{
|
|
150
|
+
for (const [key, value] of Object.entries(entries)){
|
|
151
|
+
this[key] = value;
|
|
152
|
+
}
|
|
153
|
+
if (this.styles.loaded === this.styles.total && Object.values(entries).some((v)=>!!v)) {
|
|
154
|
+
this.render();
|
|
155
|
+
}
|
|
156
|
+
}), _define_property(this, "handleLoad", ()=>{
|
|
157
|
+
this.styles.loaded++;
|
|
158
|
+
if (this.styles.loaded === this.styles.total) {
|
|
159
|
+
this.render();
|
|
160
|
+
}
|
|
161
|
+
}), _define_property(this, "attachStyles", (node, urls)=>{
|
|
162
|
+
const elements = [];
|
|
163
|
+
for (const url of urls){
|
|
164
|
+
const element = createLink(url, this.handleLoad);
|
|
165
|
+
node.appendChild(element);
|
|
166
|
+
elements.push(element);
|
|
167
|
+
}
|
|
168
|
+
return elements;
|
|
169
|
+
}), _define_property(this, "render", ()=>{
|
|
170
|
+
/*
|
|
171
|
+
* Check for this.root first, otherwise we get error when
|
|
172
|
+
* attributeChangedCallback happens on load
|
|
173
|
+
*/ if (this.root) {
|
|
174
|
+
var _this_view;
|
|
175
|
+
const mfeData = this.dataset.mfeData ? /*
|
|
176
|
+
* Data was stringified in order to come through the data-mfe-data attribute
|
|
177
|
+
* So we must JSON.parse it here to get an object back
|
|
178
|
+
*/ JSON.parse(this.dataset.mfeData) : /*
|
|
179
|
+
* If mfeData isn't there, then the Host may not be up to date with web-components
|
|
180
|
+
* and is instead passing data through separate data-attributes, so we want to
|
|
181
|
+
* spread all of those instead
|
|
182
|
+
*/ {
|
|
183
|
+
...this.dataset
|
|
184
|
+
};
|
|
185
|
+
const metadata = {
|
|
186
|
+
shadowRoot: this.root,
|
|
187
|
+
portalShadowRoot: this.portal
|
|
188
|
+
};
|
|
189
|
+
(_this_view = this.view) === null || _this_view === void 0 ? void 0 : _this_view.rerender(/*#__PURE__*/ _jsx(Provider, {
|
|
190
|
+
singletons: [
|
|
191
|
+
{
|
|
192
|
+
provide: IS_WEB_COMPONENT_TOKEN,
|
|
193
|
+
useValue: true
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
provide: RENDER_ROOT_TOKEN,
|
|
197
|
+
useValue: this.root
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
children: /*#__PURE__*/ _jsx(Provider, {
|
|
201
|
+
singletons: [
|
|
202
|
+
{
|
|
203
|
+
provide: Log,
|
|
204
|
+
useValue: this.logService
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
provide: HistoryManager,
|
|
208
|
+
useValue: this.historyManager
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
provide: EXPOSED_DEPENDENCIES_TOKEN,
|
|
212
|
+
useValue: this.exposedDependencies
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
provide: EXPOSED_INSTANCE_DEPENDENCIES_TOKEN,
|
|
216
|
+
useValue: this.exposedInstanceDependencies
|
|
217
|
+
},
|
|
218
|
+
{
|
|
219
|
+
provide: BASENAME_TOKEN,
|
|
220
|
+
useValue: this.basename
|
|
221
|
+
},
|
|
222
|
+
{
|
|
223
|
+
provide: EVENT_BUS_TOKEN,
|
|
224
|
+
useValue: this.eventBus
|
|
225
|
+
},
|
|
226
|
+
{
|
|
227
|
+
provide: getLDServiceToken(),
|
|
228
|
+
useValue: this.ldService
|
|
229
|
+
}
|
|
230
|
+
].filter(({ provide, useValue })=>useValue !== undefined && provide !== undefined),
|
|
231
|
+
children: /*#__PURE__*/ _jsx(MFEDataContext.Provider, {
|
|
232
|
+
value: {
|
|
233
|
+
...mfeData
|
|
234
|
+
},
|
|
235
|
+
children: /*#__PURE__*/ _jsxs(MFEMetadataContext.Provider, {
|
|
236
|
+
value: metadata,
|
|
237
|
+
children: [
|
|
238
|
+
this.withProviders(/*#__PURE__*/ _jsx(Component, {
|
|
239
|
+
...mfeData
|
|
240
|
+
})),
|
|
241
|
+
this.onReady && /*#__PURE__*/ _jsx(RenderCallback, {
|
|
242
|
+
callback: this.onReady
|
|
243
|
+
})
|
|
244
|
+
]
|
|
245
|
+
})
|
|
246
|
+
})
|
|
247
|
+
})
|
|
248
|
+
}));
|
|
249
|
+
}
|
|
250
|
+
});
|
|
251
|
+
}
|
|
291
252
|
}
|
|
292
253
|
if (!WEB_COMPONENT_NAME) {
|
|
293
254
|
// eslint-disable-next-line no-console
|
|
@@ -298,24 +259,27 @@ export function register(Component, light, options) {
|
|
|
298
259
|
}
|
|
299
260
|
function getStyleUrls(light, sharedDependenciesNames, el) {
|
|
300
261
|
function getCssUrl(dependencyName, cssFileRegEx) {
|
|
301
|
-
var _a;
|
|
302
262
|
if (light && sharedDependenciesNames.includes(dependencyName)) {
|
|
303
|
-
|
|
263
|
+
var _Array_from_find;
|
|
264
|
+
return (_Array_from_find = Array.from(document.getElementsByTagName('link')).find(({ href })=>href && cssFileRegEx.test(href))) === null || _Array_from_find === void 0 ? void 0 : _Array_from_find.href;
|
|
304
265
|
}
|
|
305
266
|
}
|
|
306
267
|
const designSystemUrl = getCssUrl('@servicetitan/design-system', /design-system(\..+)?\.bundle\.css/);
|
|
307
268
|
const anvil2CssUrl = getCssUrl('@servicetitan/anvil2', /anvil2(\..+)?\.bundle\.css/);
|
|
308
269
|
return [
|
|
309
|
-
...
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
270
|
+
...designSystemUrl ? [
|
|
271
|
+
designSystemUrl
|
|
272
|
+
] : [],
|
|
273
|
+
...anvil2CssUrl ? [
|
|
274
|
+
anvil2CssUrl
|
|
275
|
+
] : [],
|
|
276
|
+
...el.hasAttribute('style-urls') ? JSON.parse(decodeURIComponent(el.getAttribute('style-urls'))) : []
|
|
314
277
|
];
|
|
315
278
|
}
|
|
316
279
|
function RenderCallback({ callback }) {
|
|
317
280
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
318
|
-
useEffect(()
|
|
281
|
+
useEffect(()=>callback(), []);
|
|
319
282
|
return null;
|
|
320
283
|
}
|
|
284
|
+
|
|
321
285
|
//# sourceMappingURL=register.js.map
|
package/dist/register.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"sources":["../src/register.tsx"],"sourcesContent":["import { FC, ComponentType, ReactElement, useEffect } from 'react';\nimport { type LDService } from '@servicetitan/launchdarkly-service';\nimport { Log } from '@servicetitan/log-service';\nimport { Provider } from '@servicetitan/react-ioc';\n\nimport {\n BASENAME_TOKEN,\n EXPOSED_DEPENDENCIES_TOKEN,\n EXPOSED_INSTANCE_DEPENDENCIES_TOKEN,\n IS_WEB_COMPONENT_TOKEN,\n RENDER_ROOT_TOKEN,\n Entries,\n ExposedDependencies,\n ExposedInstanceDependencies,\n IWebComponent,\n} from './common';\nimport { MFEDataContext } from './contexts/mfe-data-context';\nimport { MFEMetadataContext } from './contexts/mfe-metadata-context';\nimport { EventBus, EVENT_BUS_TOKEN } from './event-bus';\nimport { WEB_COMPONENT_NAME } from './globals';\nimport { HistoryManager } from './history-manager';\nimport { render } from './render';\nimport { getElementName, getLDServiceToken } from './utils';\n\nfunction createLink(url: string, onLoad: () => void) {\n const element = document.createElement('link');\n\n element.href = url;\n element.rel = 'stylesheet';\n element.crossOrigin = 'anonymous';\n element.onload = onLoad;\n element.onerror = onLoad;\n\n return element;\n}\n\nconst Placeholder: FC = () => <div style={{ display: 'none' }} />;\n\nexport interface RegisterOptions {\n legacyRoot?: boolean;\n sharedDependenciesNames?: string[];\n}\n\nexport function register(Component: ComponentType, light: boolean, options?: RegisterOptions) {\n class WebComponent extends HTMLElement implements IWebComponent {\n private root?: ShadowRoot;\n private portal?: ShadowRoot;\n private portalAnvilContainer?: HTMLDivElement;\n\n private styles: {\n total: number;\n loaded: number;\n elements: HTMLElement[];\n } = { total: 0, loaded: 0, elements: [] };\n\n private ldService?: LDService;\n private logService?: Log;\n private historyManager?: HistoryManager;\n private exposedDependencies?: ExposedDependencies;\n private exposedInstanceDependencies?: ExposedInstanceDependencies;\n private eventBus?: EventBus;\n private basename?: string;\n private onReady?: () => void;\n private onDispose?: () => void;\n private view?: ReturnType<typeof render>;\n\n connectedCallback() {\n /*\n * connectedCallback can be called when DOM element has moved\n * check that root is still connected to the DOM\n * if that's the case we don't need to reconnect MFE\n */\n if (this.root?.isConnected) {\n return;\n }\n const sharedDependenciesNames = options?.sharedDependenciesNames ?? [];\n const styleUrls = getStyleUrls(light, sharedDependenciesNames, this);\n\n this.styles = {\n total: styleUrls.length * 2,\n loaded: 0,\n elements: [],\n };\n\n this.root = this.shadowRoot ?? this.attachShadow({ mode: 'open' });\n /*\n * Portal shadow dom is created at the bottom of the body in order to be used as\n * the element for the design system components to attach modals and popups to.\n * This element is passed down the tree through context, and used within\n * the design system components.\n */\n const portalElement = document.createElement('div');\n portalElement.setAttribute(\n 'data-mfe-portal-name',\n getElementName({ WebComponent: WEB_COMPONENT_NAME! })\n );\n this.portal = document.body.appendChild(portalElement).attachShadow({ mode: 'open' });\n /*\n * Add element inside of portal so that Anvil 2 can attach modals and popups to it\n * since floating-ui does not support attaching straight to shadow dom\n */\n this.portalAnvilContainer = document.createElement('div');\n this.portal.appendChild(this.portalAnvilContainer);\n\n this.view = render(<Placeholder />, this.root, options);\n\n this.styles.elements.push(\n ...this.attachStyles(this.root, styleUrls),\n ...this.attachStyles(this.portal, styleUrls)\n );\n }\n\n disconnectedCallback() {\n if (!this.root || this.root?.isConnected) {\n return;\n }\n for (const element of this.styles.elements) {\n element.remove();\n }\n\n this.view?.unmount();\n document.body.removeChild(this.portal!.host);\n this.root = undefined;\n this.portal = undefined;\n this.portalAnvilContainer = undefined;\n\n this.onDispose?.();\n }\n\n // Observe changes to the data-mfe-data attribute so that we can re-render when it changes\n static get observedAttributes() {\n return ['data-mfe-data'];\n }\n\n attributeChangedCallback() {\n this.render();\n }\n\n provide = (entries: Entries) => {\n for (const [key, value] of Object.entries(entries)) {\n this[key as keyof IWebComponent] = value;\n }\n\n if (this.styles.loaded === this.styles.total && Object.values(entries).some(v => !!v)) {\n this.render();\n }\n };\n\n private handleLoad = () => {\n this.styles.loaded++;\n\n if (this.styles.loaded === this.styles.total) {\n this.render();\n }\n };\n\n private attachStyles = (node: ShadowRoot, urls: string[]) => {\n const elements: HTMLElement[] = [];\n\n for (const url of urls) {\n const element = createLink(url, this.handleLoad);\n node.appendChild(element);\n elements.push(element);\n }\n\n return elements;\n };\n\n private withAnvil1Providers(children: ReactElement): ReactElement {\n try {\n /**\n * Note, the webpack.IgnorePlugin must be configured to ignore this dependency.\n * @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}\n */\n const { DefaultPortalContext, TablePopupPropsContext } =\n require('@servicetitan/design-system') as typeof import('@servicetitan/design-system');\n return (\n <DefaultPortalContext.Provider value={this.portal as unknown as HTMLElement}>\n <TablePopupPropsContext.Provider\n value={props => ({\n ...props,\n appendTo: this.root as unknown as HTMLElement,\n })}\n >\n {children}\n </TablePopupPropsContext.Provider>\n </DefaultPortalContext.Provider>\n );\n } catch {\n return children;\n }\n }\n\n private withAnvil2Providers(children: ReactElement): ReactElement {\n try {\n /**\n * Note, the webpack.IgnorePlugin must be configured to ignore this dependency.\n * @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}\n */\n const { PortalProvider } =\n require('@servicetitan/anvil2') as typeof import('@servicetitan/anvil2');\n return <PortalProvider root={this.portalAnvilContainer}>{children}</PortalProvider>;\n } catch {\n return children;\n }\n }\n\n private withProviders(children: ReactElement): ReactElement {\n return this.withAnvil2Providers(this.withAnvil1Providers(children));\n }\n\n private render = () => {\n /*\n * Check for this.root first, otherwise we get error when\n * attributeChangedCallback happens on load\n */\n if (this.root) {\n const mfeData = this.dataset.mfeData\n ? /*\n * Data was stringified in order to come through the data-mfe-data attribute\n * So we must JSON.parse it here to get an object back\n */\n JSON.parse(this.dataset.mfeData)\n : /*\n * If mfeData isn't there, then the Host may not be up to date with web-components\n * and is instead passing data through separate data-attributes, so we want to\n * spread all of those instead\n */\n { ...this.dataset };\n\n const metadata = {\n shadowRoot: this.root,\n portalShadowRoot: this.portal!,\n };\n\n this.view?.rerender(\n <Provider\n singletons={[\n { provide: IS_WEB_COMPONENT_TOKEN, useValue: true },\n { provide: RENDER_ROOT_TOKEN, useValue: this.root },\n ]}\n >\n <Provider\n singletons={[\n { provide: Log, useValue: this.logService },\n {\n provide: HistoryManager,\n useValue: this.historyManager,\n },\n {\n provide: EXPOSED_DEPENDENCIES_TOKEN,\n useValue: this.exposedDependencies,\n },\n {\n provide: EXPOSED_INSTANCE_DEPENDENCIES_TOKEN,\n useValue: this.exposedInstanceDependencies,\n },\n { provide: BASENAME_TOKEN, useValue: this.basename },\n { provide: EVENT_BUS_TOKEN, useValue: this.eventBus },\n { provide: getLDServiceToken(), useValue: this.ldService },\n ].filter(\n ({ provide, useValue }) =>\n useValue !== undefined && provide !== undefined\n )}\n >\n <MFEDataContext.Provider value={{ ...mfeData }}>\n <MFEMetadataContext.Provider value={metadata}>\n {this.withProviders(<Component {...mfeData} />)}\n {this.onReady && <RenderCallback callback={this.onReady} />}\n </MFEMetadataContext.Provider>\n </MFEDataContext.Provider>\n </Provider>\n </Provider>\n );\n }\n };\n }\n\n if (!WEB_COMPONENT_NAME) {\n // eslint-disable-next-line no-console\n console.error('\"WEB_COMPONENT_NAME\" is not defined!');\n return;\n }\n\n window.customElements.define(WEB_COMPONENT_NAME, WebComponent);\n}\n\nfunction getStyleUrls(light: boolean, sharedDependenciesNames: string[], el: HTMLElement) {\n function getCssUrl(dependencyName: string, cssFileRegEx: RegExp) {\n if (light && sharedDependenciesNames.includes(dependencyName)) {\n return Array.from(document.getElementsByTagName('link')).find(\n ({ href }) => href && cssFileRegEx.test(href)\n )?.href;\n }\n }\n\n const designSystemUrl = getCssUrl(\n '@servicetitan/design-system',\n /design-system(\\..+)?\\.bundle\\.css/\n );\n const anvil2CssUrl = getCssUrl('@servicetitan/anvil2', /anvil2(\\..+)?\\.bundle\\.css/);\n\n return [\n ...(designSystemUrl ? [designSystemUrl] : []),\n ...(anvil2CssUrl ? [anvil2CssUrl] : []),\n ...(el.hasAttribute('style-urls')\n ? JSON.parse(decodeURIComponent(el.getAttribute('style-urls')!))\n : []),\n ];\n}\n\nfunction RenderCallback({ callback }: { callback: () => void }) {\n // eslint-disable-next-line react-hooks/exhaustive-deps\n useEffect(() => callback(), []);\n return null;\n}\n"],"names":["useEffect","Log","Provider","BASENAME_TOKEN","EXPOSED_DEPENDENCIES_TOKEN","EXPOSED_INSTANCE_DEPENDENCIES_TOKEN","IS_WEB_COMPONENT_TOKEN","RENDER_ROOT_TOKEN","MFEDataContext","MFEMetadataContext","EVENT_BUS_TOKEN","WEB_COMPONENT_NAME","HistoryManager","render","getElementName","getLDServiceToken","createLink","url","onLoad","element","document","createElement","href","rel","crossOrigin","onload","onerror","Placeholder","div","style","display","register","Component","light","options","WebComponent","HTMLElement","connectedCallback","root","isConnected","sharedDependenciesNames","styleUrls","getStyleUrls","styles","total","length","loaded","elements","shadowRoot","attachShadow","mode","portalElement","setAttribute","portal","body","appendChild","portalAnvilContainer","view","push","attachStyles","disconnectedCallback","remove","unmount","removeChild","host","undefined","onDispose","observedAttributes","attributeChangedCallback","withAnvil1Providers","children","DefaultPortalContext","TablePopupPropsContext","require","value","props","appendTo","withAnvil2Providers","PortalProvider","withProviders","ldService","logService","historyManager","exposedDependencies","exposedInstanceDependencies","eventBus","basename","onReady","provide","entries","key","Object","values","some","v","handleLoad","node","urls","mfeData","dataset","JSON","parse","metadata","portalShadowRoot","rerender","singletons","useValue","filter","RenderCallback","callback","console","error","window","customElements","define","el","getCssUrl","dependencyName","cssFileRegEx","includes","Array","from","getElementsByTagName","find","test","designSystemUrl","anvil2CssUrl","hasAttribute","decodeURIComponent","getAttribute"],"mappings":"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"}
|
package/dist/render.js
CHANGED
|
@@ -1,14 +1,12 @@
|
|
|
1
|
-
import ReactDOM from 'react-dom';
|
|
1
|
+
/* eslint-disable react/no-deprecated */ import ReactDOM from 'react-dom';
|
|
2
2
|
let createRoot;
|
|
3
3
|
try {
|
|
4
4
|
/**
|
|
5
5
|
* Note, the webpack.IgnorePlugin must be configured to ignore this dependency.
|
|
6
6
|
* @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}
|
|
7
|
-
*/
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
catch (_a) {
|
|
11
|
-
// ignore
|
|
7
|
+
*/ createRoot = require('react-dom/client').createRoot;
|
|
8
|
+
} catch (e) {
|
|
9
|
+
// ignore
|
|
12
10
|
}
|
|
13
11
|
export function render(element, container, options) {
|
|
14
12
|
if (typeof createRoot !== 'function' || (options === null || options === void 0 ? void 0 : options.legacyRoot)) {
|
|
@@ -17,23 +15,24 @@ export function render(element, container, options) {
|
|
|
17
15
|
const root = createRoot(container);
|
|
18
16
|
root.render(element);
|
|
19
17
|
return {
|
|
20
|
-
rerender(element) {
|
|
18
|
+
rerender (element) {
|
|
21
19
|
root.render(element);
|
|
22
20
|
},
|
|
23
|
-
unmount() {
|
|
21
|
+
unmount () {
|
|
24
22
|
root.unmount();
|
|
25
|
-
}
|
|
23
|
+
}
|
|
26
24
|
};
|
|
27
25
|
}
|
|
28
26
|
function renderLegacyRoot(element, container) {
|
|
29
27
|
ReactDOM.render(element, container);
|
|
30
28
|
return {
|
|
31
|
-
rerender(element) {
|
|
29
|
+
rerender (element) {
|
|
32
30
|
ReactDOM.render(element, container);
|
|
33
31
|
},
|
|
34
|
-
unmount() {
|
|
32
|
+
unmount () {
|
|
35
33
|
ReactDOM.unmountComponentAtNode(container);
|
|
36
|
-
}
|
|
34
|
+
}
|
|
37
35
|
};
|
|
38
36
|
}
|
|
37
|
+
|
|
39
38
|
//# sourceMappingURL=render.js.map
|
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/render.ts"],"sourcesContent":["/* eslint-disable react/no-deprecated */\nimport { ReactElement } from 'react';\nimport ReactDOM from 'react-dom';\nimport type ReactDOMClient from 'react-dom/client';\n\nlet createRoot: typeof ReactDOMClient.createRoot;\ntry {\n /**\n * Note, the webpack.IgnorePlugin must be configured to ignore this dependency.\n * @see {@link file://./../../startup/src/webpack/configs/plugins/ignore-plugin/ignore-plugin.ts}\n */\n createRoot = require('react-dom/client').createRoot;\n} catch {\n // ignore\n}\n\ninterface RenderOptions {\n legacyRoot?: boolean;\n}\n\ninterface RenderResult {\n rerender(element: ReactElement): void;\n unmount(): void;\n}\n\nexport function render(\n element: ReactElement,\n container: Element | DocumentFragment,\n options?: RenderOptions\n): RenderResult {\n if (typeof createRoot !== 'function' || options?.legacyRoot) {\n return renderLegacyRoot(element, container);\n }\n\n const root = createRoot(container);\n root.render(element);\n\n return {\n rerender(element: ReactElement) {\n root.render(element);\n },\n unmount() {\n root.unmount();\n },\n };\n}\n\nfunction renderLegacyRoot(\n element: ReactElement,\n container: Element | DocumentFragment\n): RenderResult {\n ReactDOM.render(element, container);\n\n return {\n rerender(element: ReactElement) {\n ReactDOM.render(element, container);\n },\n unmount() {\n ReactDOM.unmountComponentAtNode(container);\n },\n };\n}\n"],"names":["ReactDOM","createRoot","require","render","element","container","options","legacyRoot","renderLegacyRoot","root","rerender","unmount","unmountComponentAtNode"],"mappings":"AAAA,sCAAsC,GAEtC,OAAOA,cAAc,YAAY;AAGjC,IAAIC;AACJ,IAAI;IACA;;;KAGC,GACDA,aAAaC,QAAQ,oBAAoBD,UAAU;AACvD,EAAE,UAAM;AACJ,SAAS;AACb;AAWA,OAAO,SAASE,OACZC,OAAqB,EACrBC,SAAqC,EACrCC,OAAuB;IAEvB,IAAI,OAAOL,eAAe,eAAcK,oBAAAA,8BAAAA,QAASC,UAAU,GAAE;QACzD,OAAOC,iBAAiBJ,SAASC;IACrC;IAEA,MAAMI,OAAOR,WAAWI;IACxBI,KAAKN,MAAM,CAACC;IAEZ,OAAO;QACHM,UAASN,OAAqB;YAC1BK,KAAKN,MAAM,CAACC;QAChB;QACAO;YACIF,KAAKE,OAAO;QAChB;IACJ;AACJ;AAEA,SAASH,iBACLJ,OAAqB,EACrBC,SAAqC;IAErCL,SAASG,MAAM,CAACC,SAASC;IAEzB,OAAO;QACHK,UAASN,OAAqB;YAC1BJ,SAASG,MAAM,CAACC,SAASC;QAC7B;QACAM;YACIX,SAASY,sBAAsB,CAACP;QACpC;IACJ;AACJ"}
|
package/dist/types.js
CHANGED
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"
|
|
1
|
+
{"version":3,"sources":["../src/types.ts"],"sourcesContent":["export type JSONPrimitive = string | number | boolean | null | undefined;\n\nexport type JSON = JSONPrimitive | { [key: string | number]: JSON } | JSON[];\n\nexport type Serializable<T> = {\n [P in keyof T]: T[P] extends JSONPrimitive\n ? T[P]\n : T[P] extends Function | Date | Map<any, any> | Set<any> | symbol\n ? never\n : T[P] extends (infer U)[]\n ? Serializable<U>[]\n : Serializable<T[P]>;\n};\n"],"names":[],"mappings":"AAIA,WAQE"}
|