@servicetitan/web-components 23.5.1 → 23.6.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/loader.d.ts CHANGED
@@ -16,6 +16,8 @@ export interface LoaderProps<T> {
16
16
  retries?: number;
17
17
  onRequestError?(error: GetJsonError): boolean;
18
18
  }
19
- export declare type LoaderDataProps = Pick<LoaderProps<{}>, 'data' | 'className'>;
19
+ export declare type LoaderDataProps = Pick<LoaderProps<{}>, 'data' | 'className'> & {
20
+ LoadingFallback: () => JSX.Element;
21
+ };
20
22
  export declare const Loader: import("react").ForwardRefExoticComponent<LoaderProps<{}> & import("react").RefAttributes<EventBus>>;
21
23
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EAOZ,MAAM,OAAO,CAAC;AAKf,OAAO,EAGH,YAAY,EAEf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAgC,MAAM,aAAa,CAAC;AAIrE,oBAAY,SAAS,GAAG,QAAQ,CAAC;AAEjC,oBAAY,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAEzD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uHAAuH;IACvH,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;CACjD;AAED,oBAAY,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,CAAC;AAE1E,eAAO,MAAM,MAAM,sGAqDjB,CAAC"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAEH,SAAS,EAOZ,MAAM,OAAO,CAAC;AAKf,OAAO,EAGH,YAAY,EAEf,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAgC,MAAM,aAAa,CAAC;AAIrE,oBAAY,SAAS,GAAG,QAAQ,CAAC;AAEjC,oBAAY,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;AAEzD,MAAM,WAAW,WAAW,CAAC,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uHAAuH;IACvH,IAAI,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,YAAY,CAAC;IAC/B,aAAa,CAAC,EAAE,YAAY,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;CACjD;AAED,oBAAY,eAAe,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,EAAE,MAAM,GAAG,WAAW,CAAC,GAAG;IACxE,eAAe,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CACtC,CAAC;AAEF,eAAO,MAAM,MAAM,sGAwDjB,CAAC"}
package/dist/loader.js CHANGED
@@ -34,7 +34,6 @@ export const Loader = forwardRef((props, ref) => {
34
34
  onRequestError,
35
35
  retries,
36
36
  src,
37
- LoadingFallback,
38
37
  }), [
39
38
  basename,
40
39
  cancelation,
@@ -45,9 +44,8 @@ export const Loader = forwardRef((props, ref) => {
45
44
  fallbackSrc,
46
45
  retries,
47
46
  src,
48
- LoadingFallback,
49
47
  ]);
50
- return (_jsx(ErrorBoundary, Object.assign({ moduleName: src, fallback: ErrorFallback }, { children: _jsx(Suspense, Object.assign({ fallback: _jsx(LoadingFallback, {}) }, { children: _jsx(Loader, { ref: ref, data: (_a = props.data) !== null && _a !== void 0 ? _a : {}, className: props.className }) })) })));
48
+ return (_jsx(ErrorBoundary, Object.assign({ moduleName: src, fallback: ErrorFallback }, { children: _jsx(Suspense, Object.assign({ fallback: _jsx(LoadingFallback, {}) }, { children: _jsx(Loader, { ref: ref, data: (_a = props.data) !== null && _a !== void 0 ? _a : {}, className: props.className, LoadingFallback: LoadingFallback }) })) })));
51
49
  });
52
50
  function lazyLoader(props) {
53
51
  const { cancelation, eventBus } = props;
@@ -59,11 +57,11 @@ function lazyLoader(props) {
59
57
  cancelation.abort();
60
58
  };
61
59
  }, []);
62
- return _jsx(LazyWebComponent, { data: props.data, className: props.className });
60
+ return (_jsx(LazyWebComponent, { data: props.data, className: props.className, LoadingFallback: props.LoadingFallback }));
63
61
  });
64
62
  }
65
63
  function lazyWebComponent(props) {
66
- const { basename, cancelation, exposedDependencies, eventBus, fallbackSrc, logService, onRequestError, retries, src, LoadingFallback, } = props;
64
+ const { basename, cancelation, exposedDependencies, eventBus, fallbackSrc, logService, onRequestError, retries, src, } = props;
67
65
  return lazy(() => __awaiter(this, void 0, void 0, function* () {
68
66
  let bundleInfo;
69
67
  try {
@@ -86,7 +84,6 @@ function lazyWebComponent(props) {
86
84
  eventBus,
87
85
  exposedDependencies,
88
86
  logService,
89
- LoadingFallback,
90
87
  }),
91
88
  };
92
89
  }));
@@ -1 +1 @@
1
- {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { ComponentType } from 'react';
2
2
  export interface RegisterOptions {
3
3
  legacyRoot?: boolean;
4
+ sharedDependenciesNames?: string[];
4
5
  }
5
6
  export declare function register(Component: ComponentType, light: boolean, options?: RegisterOptions): void;
6
7
  //# sourceMappingURL=register.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAa,MAAM,OAAO,CAAC;AAmCrD,MAAM,WAAW,eAAe;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,QAsM3F"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAa,MAAM,OAAO,CAAC;AAmCrD,MAAM,WAAW,eAAe;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,uBAAuB,CAAC,EAAE,MAAM,EAAE,CAAC;CACtC;AAED,wBAAgB,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,eAAe,QA4L3F"}
package/dist/register.js CHANGED
@@ -98,10 +98,8 @@ export function register(Component, light, options) {
98
98
  for (const [key, value] of Object.entries(entries)) {
99
99
  this[key] = value;
100
100
  }
101
- if (this.styles.loaded === this.styles.total) {
102
- if (Object.values(entries).some(v => !!v)) {
103
- this.render();
104
- }
101
+ if (this.styles.loaded === this.styles.total && Object.values(entries).some(v => !!v)) {
102
+ this.render();
105
103
  }
106
104
  }
107
105
  });
@@ -183,15 +181,8 @@ export function register(Component, light, options) {
183
181
  if ((_a = this.root) === null || _a === void 0 ? void 0 : _a.isConnected) {
184
182
  return;
185
183
  }
186
- const designSystemUrl = light
187
- ? (_b = Array.from(document.getElementsByTagName('link')).find(({ href }) => href && /design-system(\..+)?\.bundle\.css/.test(href))) === null || _b === void 0 ? void 0 : _b.href
188
- : undefined;
189
- const styleUrls = [
190
- ...(designSystemUrl ? [designSystemUrl] : []),
191
- ...(this.hasAttribute('style-urls')
192
- ? JSON.parse(decodeURIComponent(this.getAttribute('style-urls')))
193
- : []),
194
- ];
184
+ const sharedDependenciesNames = (_b = options === null || options === void 0 ? void 0 : options.sharedDependenciesNames) !== null && _b !== void 0 ? _b : [];
185
+ const styleUrls = getStyleUrls(light, sharedDependenciesNames, this);
195
186
  this.styles = {
196
187
  total: styleUrls.length * 2,
197
188
  loaded: 0,
@@ -208,8 +199,7 @@ export function register(Component, light, options) {
208
199
  .appendChild(document.createElement('div'))
209
200
  .attachShadow({ mode: 'open' });
210
201
  this.view = render(_jsx(Placeholder, {}), this.root, options);
211
- this.styles.elements.push(...this.attachStyles(this.root, styleUrls));
212
- this.styles.elements.push(...this.attachStyles(this.portal, styleUrls));
202
+ this.styles.elements.push(...this.attachStyles(this.root, styleUrls), ...this.attachStyles(this.portal, styleUrls));
213
203
  }
214
204
  disconnectedCallback() {
215
205
  var _a, _b, _c;
@@ -240,6 +230,23 @@ export function register(Component, light, options) {
240
230
  }
241
231
  window.customElements.define(WEB_COMPONENT_NAME, WebComponent);
242
232
  }
233
+ function getStyleUrls(light, sharedDependenciesNames, el) {
234
+ function getCssUrl(dependencyName, cssFileRegEx) {
235
+ var _a;
236
+ if (light && sharedDependenciesNames.includes(dependencyName)) {
237
+ return (_a = Array.from(document.getElementsByTagName('link')).find(({ href }) => href && cssFileRegEx.test(href))) === null || _a === void 0 ? void 0 : _a.href;
238
+ }
239
+ }
240
+ const designSystemUrl = getCssUrl('@servicetitan/design-system', /design-system(\..+)?\.bundle\.css/);
241
+ const anvil2CssUrl = getCssUrl('@servicetitan/anvil2', /anvil2(\..+)?\.bundle\.css/);
242
+ return [
243
+ ...(designSystemUrl ? [designSystemUrl] : []),
244
+ ...(anvil2CssUrl ? [anvil2CssUrl] : []),
245
+ ...(el.hasAttribute('style-urls')
246
+ ? JSON.parse(decodeURIComponent(el.getAttribute('style-urls')))
247
+ : []),
248
+ ];
249
+ }
243
250
  function RenderCallback({ callback }) {
244
251
  // eslint-disable-next-line react-hooks/exhaustive-deps
245
252
  useEffect(() => callback(), []);
@@ -1 +1 @@
1
- {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Log } from '@servicetitan/log-service';
3
2
  import { ExposedDependencies } from '../common';
4
3
  import { EventBus } from '../event-bus';
@@ -10,8 +9,7 @@ interface WebComponentProps {
10
9
  eventBus: EventBus;
11
10
  exposedDependencies?: ExposedDependencies;
12
11
  logService?: Log;
13
- LoadingFallback: () => JSX.Element;
14
12
  }
15
- export declare function webComponent(props: WebComponentProps): (props: LoaderDataProps) => import("react/jsx-runtime").JSX.Element;
13
+ export declare function webComponent(props: WebComponentProps): ({ LoadingFallback, ...props }: LoaderDataProps) => import("react/jsx-runtime").JSX.Element;
16
14
  export {};
17
15
  //# sourceMappingURL=web-component.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"web-component.d.ts","sourceRoot":"","sources":["../../src/utils/web-component.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAiB,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,UAAU,iBAAiB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,eAAe,EAAE,MAAM,GAAG,CAAC,OAAO,CAAC;CACtC;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,WAMlC,eAAe,6CAoDjC"}
1
+ {"version":3,"file":"web-component.d.ts","sourceRoot":"","sources":["../../src/utils/web-component.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAGhD,OAAO,EAAE,mBAAmB,EAAiB,MAAM,WAAW,CAAC;AAE/D,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAE/C,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAE5C,UAAU,iBAAiB;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,UAAU,CAAC,EAAE,GAAG,CAAC;CACpB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,iBAAiB,mCAKV,eAAe,6CAoDzD"}
@@ -1,12 +1,24 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
1
12
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
13
  import { Fragment, useMemo, useState } from 'react';
3
14
  import { useOptionalDependencies } from '@servicetitan/react-ioc';
4
15
  import { HistoryManager } from '../history-manager';
5
16
  export function webComponent(props) {
6
- const { basename, bundleInfo, eventBus, exposedDependencies, logService, LoadingFallback } = props;
17
+ const { basename, bundleInfo, eventBus, exposedDependencies, logService } = props;
7
18
  const { WebComponent, disposer, mfeSupportsRerendering } = bundleInfo;
8
19
  const elementName = getElementName(bundleInfo);
9
- return (props) => {
20
+ return (_a) => {
21
+ var { LoadingFallback } = _a, props = __rest(_a, ["LoadingFallback"]);
10
22
  const [isLoading, setIsLoading] = useState(true);
11
23
  const [historyManager] = useOptionalDependencies(HistoryManager);
12
24
  const handleRef = (webComponent) => {
@@ -1 +1 @@
1
- {"version":3,"file":"web-component.js","sourceRoot":"","sources":["../../src/utils/web-component.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web-component.js","sourceRoot":"","sources":["../../src/utils/web-component.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/web-components",
3
- "version": "23.5.1",
3
+ "version": "23.6.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,18 +15,18 @@
15
15
  "src"
16
16
  ],
17
17
  "dependencies": {
18
- "@servicetitan/error-boundary": "23.5.1",
18
+ "@servicetitan/error-boundary": "23.6.0",
19
19
  "lodash.get": "~4.4.2",
20
20
  "mitt": "~3.0.1",
21
21
  "semver": "~7.5.4"
22
22
  },
23
23
  "devDependencies": {
24
24
  "@servicetitan/design-system": "~14.0.0",
25
- "@servicetitan/log-service": "23.5.1",
26
- "@servicetitan/react-ioc": "23.5.1",
25
+ "@servicetitan/log-service": "23.6.0",
26
+ "@servicetitan/react-ioc": "23.6.0",
27
27
  "@testing-library/dom": "^9.0.0",
28
- "@testing-library/jest-dom": "^6.4.2",
29
- "@testing-library/react": "^15.0.6",
28
+ "@testing-library/jest-dom": "^6.4.5",
29
+ "@testing-library/react": "^15.0.7",
30
30
  "@types/history": "~4.7.10",
31
31
  "@types/lodash.get": "~4.4.6",
32
32
  "@types/react": "~18.3.0",
@@ -39,8 +39,8 @@
39
39
  },
40
40
  "peerDependencies": {
41
41
  "@servicetitan/design-system": ">=12.6.2",
42
- "@servicetitan/log-service": "23.5.1",
43
- "@servicetitan/react-ioc": "23.5.1",
42
+ "@servicetitan/log-service": "23.6.0",
43
+ "@servicetitan/react-ioc": "23.6.0",
44
44
  "history": "~4.10.1",
45
45
  "react": ">=17.0.2",
46
46
  "react-dom": ">=17.0.2"
@@ -51,5 +51,5 @@
51
51
  "cli": {
52
52
  "webpack": false
53
53
  },
54
- "gitHead": "afaf6f83281aa08beea5d57952c712108894654b"
54
+ "gitHead": "d7e765992dd65d46e2dca48c150bd611af6a034f"
55
55
  }
@@ -118,12 +118,14 @@ describe('[web-components] Loader', () => {
118
118
  jest.mocked(getVersionMismatches).mockReturnValue({});
119
119
  });
120
120
 
121
+ const Root = () => (
122
+ <Provider singletons={singletons}>
123
+ <Loader {...props} />
124
+ </Provider>
125
+ );
126
+
121
127
  function subject() {
122
- return render(
123
- <Provider singletons={singletons}>
124
- <Loader {...props} />
125
- </Provider>
126
- );
128
+ return render(<Root />);
127
129
  }
128
130
 
129
131
  test('renders default loading fallback', () => {
@@ -140,6 +142,14 @@ describe('[web-components] Loader', () => {
140
142
  subject();
141
143
  expect(screen.getByText('foo')).toBeInTheDocument();
142
144
  });
145
+
146
+ test('preserves component state when loading fallback is updated', () => {
147
+ const renderResult = subject();
148
+ expect(common.getJson).toHaveBeenCalledTimes(1);
149
+ props.loadingFallback = <div>foo</div>;
150
+ renderResult.rerender(<Root />);
151
+ expect(common.getJson).toHaveBeenCalledTimes(1);
152
+ });
143
153
  });
144
154
 
145
155
  describe('when the loadingFallback throws an error', () => {
@@ -0,0 +1,70 @@
1
+ import '@testing-library/jest-dom';
2
+ import { render } from '@testing-library/react';
3
+
4
+ import { MockComponent, registerComponent } from '../__mocks__';
5
+
6
+ describe('[web-components] register - anvil2 css', () => {
7
+ const componentName = 'mock-anvil2-app';
8
+
9
+ class Page {
10
+ static get componentShadowRoot() {
11
+ return document.querySelector(componentName)!.shadowRoot!;
12
+ }
13
+
14
+ static get portalShadowRoot() {
15
+ return document.querySelector('body')!.lastElementChild!.shadowRoot!;
16
+ }
17
+ }
18
+
19
+ beforeAll(() => {
20
+ registerComponent(MockComponent, componentName, {
21
+ sharedDependenciesNames: ['@servicetitan/anvil2'],
22
+ legacyRoot: true,
23
+ });
24
+ });
25
+
26
+ const subject = () => {
27
+ jest.spyOn(console, 'error').mockImplementation(jest.fn()); // suppress "ReactDOM.render deprecated" error
28
+ const Component: any = componentName;
29
+ return render(<Component />);
30
+ };
31
+
32
+ describe(`when anvil2.bundle.css is present in the DOM`, () => {
33
+ let cssLink: HTMLLinkElement;
34
+
35
+ beforeEach(() => {
36
+ cssLink = Object.assign(document.createElement('link'), {
37
+ href: 'http://localhost/anvil2.bundle.css',
38
+ rel: 'stylesheet',
39
+ });
40
+ document.body.appendChild(cssLink);
41
+ const designSystemCssLink = Object.assign(document.createElement('link'), {
42
+ href: 'http://localhost/design-system.bundle.css',
43
+ rel: 'stylesheet',
44
+ });
45
+ document.body.appendChild(designSystemCssLink);
46
+ });
47
+
48
+ afterEach(() => {
49
+ cssLink.remove();
50
+ });
51
+
52
+ function expectStyleInDom(styleUrl: string, shadowRootFn: () => ShadowRoot) {
53
+ expect(shadowRootFn().querySelectorAll('link').length).toBe(1);
54
+ const link = shadowRootFn().querySelector(
55
+ `link[href='${styleUrl}'][rel='stylesheet'][crossorigin='anonymous']`
56
+ );
57
+ expect(link).toBeInTheDocument();
58
+ }
59
+
60
+ test(`loads anvil2.bundle.css into the component shadow DOM`, () => {
61
+ subject();
62
+ expectStyleInDom(cssLink.href, () => Page.componentShadowRoot);
63
+ });
64
+
65
+ test(`loads anvil2.bundle.css into the portal shadow DOM`, () => {
66
+ subject();
67
+ expectStyleInDom(cssLink.href, () => Page.portalShadowRoot);
68
+ });
69
+ });
70
+ });
@@ -1,5 +1,5 @@
1
1
  import '@testing-library/jest-dom';
2
- import { render } from '@testing-library/react';
2
+ import { render, waitFor } from '@testing-library/react';
3
3
  // eslint-disable-next-line @typescript-eslint/ban-ts-comment
4
4
  // @ts-ignore because Jest mistakenly complains that "'shadow-dom-testing-library' cannot be imported using this construct".
5
5
  import { screen } from 'shadow-dom-testing-library';
@@ -27,10 +27,12 @@ describe('[web-components] register', () => {
27
27
  webComponent[0]?.setAttribute('data-mfe-data', JSON.stringify({ string: 'baz' }));
28
28
  };
29
29
 
30
- test('useMFEDataContext provides updated data', () => {
30
+ test('useMFEDataContext provides updated data', async () => {
31
31
  setup();
32
32
 
33
- expect(screen.getByShadowText(`Prop: string, Value: "baz"`)).toBeInTheDocument();
33
+ await waitFor(() => {
34
+ expect(screen.getByShadowText(`Prop: string, Value: "baz"`)).toBeInTheDocument();
35
+ });
34
36
  expect(screen.getByShadowText(`Data: string, Value: "baz"`)).toBeInTheDocument();
35
37
  });
36
38
  });
@@ -28,7 +28,9 @@ describe('[web-components] register', () => {
28
28
  }
29
29
 
30
30
  beforeAll(() => {
31
- registerComponent(MockComponent, componentName);
31
+ registerComponent(MockComponent, componentName, {
32
+ sharedDependenciesNames: ['@servicetitan/design-system'],
33
+ });
32
34
  /*
33
35
  * mock <link>'s onload so that we can call it directly from the test,
34
36
  * because it won't call itself in the test environment
package/src/loader.tsx CHANGED
@@ -40,7 +40,9 @@ export interface LoaderProps<T> {
40
40
  onRequestError?(error: GetJsonError): boolean;
41
41
  }
42
42
 
43
- export type LoaderDataProps = Pick<LoaderProps<{}>, 'data' | 'className'>;
43
+ export type LoaderDataProps = Pick<LoaderProps<{}>, 'data' | 'className'> & {
44
+ LoadingFallback: () => JSX.Element;
45
+ };
44
46
 
45
47
  export const Loader = forwardRef<LoaderRef, LoaderProps<{}>>((props, ref) => {
46
48
  const { basename, fallbackSrc, onRequestError, retries, src } = props;
@@ -72,7 +74,6 @@ export const Loader = forwardRef<LoaderRef, LoaderProps<{}>>((props, ref) => {
72
74
  onRequestError,
73
75
  retries,
74
76
  src,
75
- LoadingFallback,
76
77
  }),
77
78
  [
78
79
  basename,
@@ -84,25 +85,28 @@ export const Loader = forwardRef<LoaderRef, LoaderProps<{}>>((props, ref) => {
84
85
  fallbackSrc,
85
86
  retries,
86
87
  src,
87
- LoadingFallback,
88
88
  ]
89
89
  );
90
90
 
91
91
  return (
92
92
  <ErrorBoundary moduleName={src} fallback={ErrorFallback}>
93
93
  <Suspense fallback={<LoadingFallback />}>
94
- <Loader ref={ref} data={props.data ?? {}} className={props.className} />
94
+ <Loader
95
+ ref={ref}
96
+ data={props.data ?? {}}
97
+ className={props.className}
98
+ LoadingFallback={LoadingFallback}
99
+ />
95
100
  </Suspense>
96
101
  </ErrorBoundary>
97
102
  );
98
103
  });
99
104
 
100
- type LazyLoaderProps = Omit<LoaderProps<any>, 'loadingFallback'> & {
105
+ type LazyLoaderProps = LoaderProps<any> & {
101
106
  cancelation: AbortController;
102
107
  exposedDependencies?: ExposedDependencies;
103
108
  eventBus: EventBus;
104
109
  logService?: Log;
105
- LoadingFallback: () => JSX.Element;
106
110
  };
107
111
 
108
112
  function lazyLoader(props: LazyLoaderProps) {
@@ -119,7 +123,13 @@ function lazyLoader(props: LazyLoaderProps) {
119
123
  };
120
124
  }, []);
121
125
 
122
- return <LazyWebComponent data={props.data} className={props.className} />;
126
+ return (
127
+ <LazyWebComponent
128
+ data={props.data}
129
+ className={props.className}
130
+ LoadingFallback={props.LoadingFallback}
131
+ />
132
+ );
123
133
  });
124
134
  }
125
135
 
@@ -134,7 +144,6 @@ function lazyWebComponent(props: LazyLoaderProps) {
134
144
  onRequestError,
135
145
  retries,
136
146
  src,
137
- LoadingFallback,
138
147
  } = props;
139
148
 
140
149
  return lazy<(props: LoaderDataProps) => JSX.Element | null>(async () => {
@@ -169,7 +178,6 @@ function lazyWebComponent(props: LazyLoaderProps) {
169
178
  eventBus,
170
179
  exposedDependencies,
171
180
  logService,
172
- LoadingFallback,
173
181
  }),
174
182
  };
175
183
  });
package/src/register.tsx CHANGED
@@ -35,6 +35,7 @@ const Placeholder: FC = () => <div style={{ display: 'none' }} />;
35
35
 
36
36
  export interface RegisterOptions {
37
37
  legacyRoot?: boolean;
38
+ sharedDependenciesNames?: string[];
38
39
  }
39
40
 
40
41
  export function register(Component: ComponentType, light: boolean, options?: RegisterOptions) {
@@ -66,18 +67,8 @@ export function register(Component: ComponentType, light: boolean, options?: Reg
66
67
  if (this.root?.isConnected) {
67
68
  return;
68
69
  }
69
- const designSystemUrl = light
70
- ? Array.from(document.getElementsByTagName('link')).find(
71
- ({ href }) => href && /design-system(\..+)?\.bundle\.css/.test(href)
72
- )?.href
73
- : undefined;
74
-
75
- const styleUrls = [
76
- ...(designSystemUrl ? [designSystemUrl] : []),
77
- ...(this.hasAttribute('style-urls')
78
- ? JSON.parse(decodeURIComponent(this.getAttribute('style-urls')!))
79
- : []),
80
- ];
70
+ const sharedDependenciesNames = options?.sharedDependenciesNames ?? [];
71
+ const styleUrls = getStyleUrls(light, sharedDependenciesNames, this);
81
72
 
82
73
  this.styles = {
83
74
  total: styleUrls.length * 2,
@@ -98,8 +89,10 @@ export function register(Component: ComponentType, light: boolean, options?: Reg
98
89
 
99
90
  this.view = render(<Placeholder />, this.root, options);
100
91
 
101
- this.styles.elements.push(...this.attachStyles(this.root, styleUrls));
102
- this.styles.elements.push(...this.attachStyles(this.portal, styleUrls));
92
+ this.styles.elements.push(
93
+ ...this.attachStyles(this.root, styleUrls),
94
+ ...this.attachStyles(this.portal, styleUrls)
95
+ );
103
96
  }
104
97
 
105
98
  disconnectedCallback() {
@@ -132,10 +125,8 @@ export function register(Component: ComponentType, light: boolean, options?: Reg
132
125
  this[key as keyof IWebComponent] = value;
133
126
  }
134
127
 
135
- if (this.styles.loaded === this.styles.total) {
136
- if (Object.values(entries).some(v => !!v)) {
137
- this.render();
138
- }
128
+ if (this.styles.loaded === this.styles.total && Object.values(entries).some(v => !!v)) {
129
+ this.render();
139
130
  }
140
131
  };
141
132
 
@@ -237,6 +228,30 @@ export function register(Component: ComponentType, light: boolean, options?: Reg
237
228
  window.customElements.define(WEB_COMPONENT_NAME, WebComponent);
238
229
  }
239
230
 
231
+ function getStyleUrls(light: boolean, sharedDependenciesNames: string[], el: HTMLElement) {
232
+ function getCssUrl(dependencyName: string, cssFileRegEx: RegExp) {
233
+ if (light && sharedDependenciesNames.includes(dependencyName)) {
234
+ return Array.from(document.getElementsByTagName('link')).find(
235
+ ({ href }) => href && cssFileRegEx.test(href)
236
+ )?.href;
237
+ }
238
+ }
239
+
240
+ const designSystemUrl = getCssUrl(
241
+ '@servicetitan/design-system',
242
+ /design-system(\..+)?\.bundle\.css/
243
+ );
244
+ const anvil2CssUrl = getCssUrl('@servicetitan/anvil2', /anvil2(\..+)?\.bundle\.css/);
245
+
246
+ return [
247
+ ...(designSystemUrl ? [designSystemUrl] : []),
248
+ ...(anvil2CssUrl ? [anvil2CssUrl] : []),
249
+ ...(el.hasAttribute('style-urls')
250
+ ? JSON.parse(decodeURIComponent(el.getAttribute('style-urls')!))
251
+ : []),
252
+ ];
253
+ }
254
+
240
255
  function RenderCallback({ callback }: { callback: () => void }) {
241
256
  // eslint-disable-next-line react-hooks/exhaustive-deps
242
257
  useEffect(() => callback(), []);
@@ -15,16 +15,14 @@ interface WebComponentProps {
15
15
  eventBus: EventBus;
16
16
  exposedDependencies?: ExposedDependencies;
17
17
  logService?: Log;
18
- LoadingFallback: () => JSX.Element;
19
18
  }
20
19
 
21
20
  export function webComponent(props: WebComponentProps) {
22
- const { basename, bundleInfo, eventBus, exposedDependencies, logService, LoadingFallback } =
23
- props;
21
+ const { basename, bundleInfo, eventBus, exposedDependencies, logService } = props;
24
22
  const { WebComponent, disposer, mfeSupportsRerendering } = bundleInfo;
25
23
  const elementName = getElementName(bundleInfo);
26
24
 
27
- return (props: LoaderDataProps) => {
25
+ return ({ LoadingFallback, ...props }: LoaderDataProps) => {
28
26
  const [isLoading, setIsLoading] = useState(true);
29
27
  const [historyManager] = useOptionalDependencies(HistoryManager);
30
28