@servicetitan/web-components 15.0.0 → 16.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/common.d.ts CHANGED
@@ -6,6 +6,7 @@ export declare const RENDER_ROOT_TOKEN: import("@servicetitan/react-ioc").Symbol
6
6
  export interface Entries {
7
7
  logService?: Log;
8
8
  historyManager?: HistoryManager;
9
+ eventBus?: EventBus;
9
10
  basename?: string;
10
11
  onReady: () => void;
11
12
  }
@@ -22,5 +23,13 @@ export declare function getJson<T = any>(url: string, { retries, retryDelay, ...
22
23
  headers: Headers;
23
24
  }>;
24
25
  export declare function useCancelation(): AbortController;
26
+ export declare type EventHandler = () => void;
27
+ export declare class EventBus {
28
+ private emitter;
29
+ on: (type: string, handler: EventHandler) => void;
30
+ off: (type: string, handler: EventHandler) => void;
31
+ emit: (type: string) => void;
32
+ }
33
+ export declare function useEventBus(): EventBus;
25
34
  export {};
26
35
  //# sourceMappingURL=common.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,cAAc,uDAAwC,CAAC;AACpE,eAAO,MAAM,sBAAsB,wDAAiD,CAAC;AACrF,eAAO,MAAM,iBAAiB,2DAA+C,CAAC;AAE9E,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAkCvE;AAED,UAAU,cAAe,SAAQ,WAAW;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,OAAW,EAAE,UAAiB,EAAE,GAAG,MAAM,EAAE,GAAE,cAAmB,GACnE,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAmCxC;AAED,wBAAgB,cAAc,oBAE7B"}
1
+ {"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,GAAG,EAAE,MAAM,2BAA2B,CAAC;AAEhD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,eAAO,MAAM,cAAc,uDAAwC,CAAC;AACpE,eAAO,MAAM,sBAAsB,wDAAiD,CAAC;AACrF,eAAO,MAAM,iBAAiB,2DAA+C,CAAC;AAE9E,MAAM,WAAW,OAAO;IACpB,UAAU,CAAC,EAAE,GAAG,CAAC;IACjB,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC1B,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACnC;AAED,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,WAkCvE;AAED,UAAU,cAAe,SAAQ,WAAW;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,wBAAsB,OAAO,CAAC,CAAC,GAAG,GAAG,EACjC,GAAG,EAAE,MAAM,EACX,EAAE,OAAW,EAAE,UAAiB,EAAE,GAAG,MAAM,EAAE,GAAE,cAAmB,GACnE,OAAO,CAAC;IAAE,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAmCxC;AAED,wBAAgB,cAAc,oBAE7B;AAED,oBAAY,YAAY,GAAG,MAAM,IAAI,CAAC;AAEtC,qBAAa,QAAQ;IACjB,OAAO,CAAC,OAAO,CAAU;IAEzB,EAAE,SAAU,MAAM,WAAW,YAAY,UAEvC;IAEF,GAAG,SAAU,MAAM,WAAW,YAAY,UAExC;IAEF,IAAI,SAAU,MAAM,UAElB;CACL;AAED,wBAAgB,WAAW,aAE1B"}
package/dist/common.js CHANGED
@@ -23,8 +23,9 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
23
23
  return (mod && mod.__esModule) ? mod : { "default": mod };
24
24
  };
25
25
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.useCancelation = exports.getJson = exports.isCompatible = exports.RENDER_ROOT_TOKEN = exports.IS_WEB_COMPONENT_TOKEN = exports.BASENAME_TOKEN = void 0;
26
+ exports.useEventBus = exports.EventBus = exports.useCancelation = exports.getJson = exports.isCompatible = exports.RENDER_ROOT_TOKEN = exports.IS_WEB_COMPONENT_TOKEN = exports.BASENAME_TOKEN = void 0;
27
27
  const semver_1 = __importDefault(require("semver"));
28
+ const mitt_1 = __importDefault(require("mitt"));
28
29
  const react_1 = require("react");
29
30
  const react_ioc_1 = require("@servicetitan/react-ioc");
30
31
  exports.BASENAME_TOKEN = react_ioc_1.symbolToken('BASENAME_TOKEN');
@@ -94,4 +95,43 @@ function useCancelation() {
94
95
  return react_1.useRef(new AbortController()).current;
95
96
  }
96
97
  exports.useCancelation = useCancelation;
98
+ class EventBus {
99
+ constructor() {
100
+ Object.defineProperty(this, "emitter", {
101
+ enumerable: true,
102
+ configurable: true,
103
+ writable: true,
104
+ value: mitt_1.default()
105
+ });
106
+ Object.defineProperty(this, "on", {
107
+ enumerable: true,
108
+ configurable: true,
109
+ writable: true,
110
+ value: (type, handler) => {
111
+ this.emitter.on(type, handler);
112
+ }
113
+ });
114
+ Object.defineProperty(this, "off", {
115
+ enumerable: true,
116
+ configurable: true,
117
+ writable: true,
118
+ value: (type, handler) => {
119
+ this.emitter.off(type, handler);
120
+ }
121
+ });
122
+ Object.defineProperty(this, "emit", {
123
+ enumerable: true,
124
+ configurable: true,
125
+ writable: true,
126
+ value: (type) => {
127
+ this.emitter.emit(type);
128
+ }
129
+ });
130
+ }
131
+ }
132
+ exports.EventBus = EventBus;
133
+ function useEventBus() {
134
+ return react_1.useRef(new EventBus()).current;
135
+ }
136
+ exports.useEventBus = useEventBus;
97
137
  //# sourceMappingURL=common.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAE5B,iCAA+B;AAE/B,uDAAsD;AAKzC,QAAA,cAAc,GAAG,uBAAW,CAAS,gBAAgB,CAAC,CAAC;AACvD,QAAA,sBAAsB,GAAG,uBAAW,CAAU,wBAAwB,CAAC,CAAC;AACxE,QAAA,iBAAiB,GAAG,uBAAW,CAAa,mBAAmB,CAAC,CAAC;AAa9E,SAAgB,YAAY,CAAC,WAAmB,EAAE,cAAsB;IACpE,IAAI,WAAW,KAAK,cAAc,EAAE;QAChC,OAAO,IAAI,CAAC;KACf;IAED,IAAI,WAAW,KAAK,GAAG,EAAE;QACrB,OAAO,KAAK,CAAC;KAChB;IAED,IAAI,cAAc,KAAK,GAAG,EAAE;QACxB,OAAO,IAAI,CAAC;KACf;IAED,iDAAiD;IACjD,IAAI,gBAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,gBAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;QAC3D,OAAO,KAAK,CAAC;KAChB;IAED,+DAA+D;IAC/D,IAAI,gBAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,gBAAM,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;QAChE,OAAO,KAAK,CAAC;KAChB;IAED,8CAA8C;IAC9C,IAAI,gBAAM,CAAC,KAAK,CAAC,WAAW,CAAC,IAAI,gBAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;QAChE,OAAO,gBAAM,CAAC,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;KACxD;IAED,qDAAqD;IACrD,IAAI,gBAAM,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,gBAAM,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE;QACrE,OAAO,gBAAM,CAAC,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;KACrD;IAED,OAAO,KAAK,CAAC;AACjB,CAAC;AAlCD,oCAkCC;AAOD,SAAsB,OAAO,CACzB,GAAW,EACX,KAAgE,EAAE;QAAlE,EAAE,OAAO,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI,OAAkC,EAA7B,MAAM,cAA3C,yBAA6C,CAAF;;QAE3C,IAAI,QAAkB,CAAC;QACvB,IAAI;YACA,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;SACvC;QAAC,WAAM;YACJ,IAAI,OAAO,GAAG,CAAC,EAAE;gBACb,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;oBACnC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;oBAE1B,MAAM,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE;wBACrC,OAAO,CAAC,GAAG,kCACJ,MAAM,KACT,OAAO,EAAE,OAAO,GAAG,CAAC,EACpB,UAAU,EAAE,UAAU,GAAG,CAAC,IAC5B,CAAC,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;oBAC7B,CAAC,EAAE,UAAU,CAAC,CAAC;oBAEf,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC;gBAC5E,CAAC,CAAC,CAAC;aACN;YAED,MAAM,IAAI,KAAK,CAAC,qBAAqB,GAAG,IAAI,CAAC,CAAC;SACjD;QAED,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE;YACd,IAAI,OAAO,GAAG,eAAe,GAAG,6BAA6B,QAAQ,CAAC,MAAM,GAAG,CAAC;YAEhF,IAAI;gBACA,OAAO,IAAI,aAAa,MAAM,QAAQ,CAAC,IAAI,EAAE,GAAG,CAAC;aACpD;YAAC,WAAM,GAAE,CAAC,+BAA+B;YAE1C,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;SAC5B;QAED,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,CAAC;;CACrE;AAtCD,0BAsCC;AAED,SAAgB,cAAc;IAC1B,OAAO,cAAM,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC,OAAO,CAAC;AACjD,CAAC;AAFD,wCAEC"}
1
+ {"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
package/dist/loader.d.ts CHANGED
@@ -1,10 +1,13 @@
1
- import { FC } from 'react';
1
+ /// <reference types="react" />
2
2
  declare global {
3
3
  export const EXPOSED_DEPENDENCIES: Record<string, {
4
4
  version: string;
5
5
  variable: string;
6
6
  }>;
7
7
  }
8
+ export interface LoaderRef {
9
+ emit(type: string): void;
10
+ }
8
11
  export interface LoaderProps {
9
12
  src: string;
10
13
  data?: Record<string, string>;
@@ -12,5 +15,5 @@ export interface LoaderProps {
12
15
  fallback?: JSX.Element;
13
16
  className?: string;
14
17
  }
15
- export declare const Loader: FC<LoaderProps>;
18
+ export declare const Loader: import("react").ForwardRefExoticComponent<LoaderProps & import("react").RefAttributes<LoaderRef>>;
16
19
  //# sourceMappingURL=loader.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAgD,EAAE,EAAE,MAAM,OAAO,CAAC;AAWzE,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F;AA0DD,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM,EAAE,EAAE,CAAC,WAAW,CAwHlC,CAAC"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":";AAmBA,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC5F;AA0DD,MAAM,WAAW,SAAS;IACtB,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED,MAAM,WAAW,WAAW;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM,mGAsIlB,CAAC"}
package/dist/loader.js CHANGED
@@ -55,7 +55,7 @@ function getBundleInfo(packageUrl, signal) {
55
55
  };
56
56
  });
57
57
  }
58
- const Loader = ({ src, data = {}, basename, fallback = jsx_runtime_1.jsx("h2", { children: "Loading..." }, void 0), className, }) => {
58
+ exports.Loader = react_1.forwardRef(({ src, data = {}, basename, fallback, className }, ref) => {
59
59
  const [isLoading, setIsLoading] = react_1.useState(true);
60
60
  const [logService, historyManager] = react_ioc_1.useOptionalDependencies(log_service_1.Log, history_manager_1.HistoryManager);
61
61
  const dataAttrs = react_1.useMemo(() => Object.fromEntries(Object.entries(data).map(([key, value]) => [
@@ -64,8 +64,15 @@ const Loader = ({ src, data = {}, basename, fallback = jsx_runtime_1.jsx("h2", {
64
64
  ])), [...Object.entries(data).map(v => v.join())] // eslint-disable-line react-hooks/exhaustive-deps
65
65
  );
66
66
  const Loader = react_1.useMemo(() => {
67
- const Component = () => {
67
+ const Component = react_1.forwardRef((_0, ref) => {
68
68
  const cancelation = common_1.useCancelation();
69
+ const eventBus = common_1.useEventBus();
70
+ react_1.useImperativeHandle(ref, () => ({
71
+ emit(type) {
72
+ eventBus.emit(type);
73
+ },
74
+ }), [] // eslint-disable-line react-hooks/exhaustive-deps
75
+ );
69
76
  react_1.useEffect(() => {
70
77
  setIsLoading(true);
71
78
  return () => {
@@ -119,6 +126,7 @@ const Loader = ({ src, data = {}, basename, fallback = jsx_runtime_1.jsx("h2", {
119
126
  webComponent === null || webComponent === void 0 ? void 0 : webComponent.provide({
120
127
  logService,
121
128
  historyManager,
129
+ eventBus,
122
130
  basename,
123
131
  onReady: () => {
124
132
  setIsLoading(false);
@@ -131,10 +139,9 @@ const Loader = ({ src, data = {}, basename, fallback = jsx_runtime_1.jsx("h2", {
131
139
  })), [] // eslint-disable-line react-hooks/exhaustive-deps
132
140
  );
133
141
  return jsx_runtime_1.jsx(Lazy, {}, void 0);
134
- };
142
+ });
135
143
  return Component;
136
144
  }, [src, className, logService, historyManager, basename, dataAttrs]);
137
- return (jsx_runtime_1.jsxs(error_boundary_1.ErrorBoundary, Object.assign({ moduleName: src }, { children: [isLoading && fallback, jsx_runtime_1.jsx(react_1.Suspense, Object.assign({ fallback: null }, { children: jsx_runtime_1.jsx(Loader, {}, void 0) }), void 0)] }), void 0));
138
- };
139
- exports.Loader = Loader;
145
+ return (jsx_runtime_1.jsxs(error_boundary_1.ErrorBoundary, Object.assign({ moduleName: src }, { children: [isLoading && (fallback !== undefined ? fallback : jsx_runtime_1.jsx("h2", { children: "Loading..." }, void 0)), jsx_runtime_1.jsx(react_1.Suspense, Object.assign({ fallback: null }, { children: jsx_runtime_1.jsx(Loader, { ref: ref }, void 0) }), void 0)] }), void 0));
146
+ });
140
147
  //# sourceMappingURL=loader.js.map
@@ -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 +1 @@
1
- {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAE,MAAM,OAAO,CAAC;AAiB1C,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,kBAAkB,EAAE,MAAM,CAAC;CAC3C;AAeD,wBAAgB,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,QAuGhE"}
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAE,MAAM,OAAO,CAAC;AAkB1C,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,kBAAkB,EAAE,MAAM,CAAC;CAC3C;AAeD,wBAAgB,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,QA0GhE"}
package/dist/register.js CHANGED
@@ -64,6 +64,12 @@ function register(Component, light) {
64
64
  writable: true,
65
65
  value: void 0
66
66
  });
67
+ Object.defineProperty(this, "eventBus", {
68
+ enumerable: true,
69
+ configurable: true,
70
+ writable: true,
71
+ value: void 0
72
+ });
67
73
  Object.defineProperty(this, "basename", {
68
74
  enumerable: true,
69
75
  configurable: true,
@@ -121,7 +127,7 @@ function register(Component, light) {
121
127
  react_dom_1.render(jsx_runtime_1.jsx(react_ioc_1.Provider, Object.assign({ singletons: [
122
128
  { provide: common_1.IS_WEB_COMPONENT_TOKEN, useValue: true },
123
129
  { provide: common_1.RENDER_ROOT_TOKEN, useValue: this.root },
124
- ] }, { children: jsx_runtime_1.jsx(design_system_1.DefaultPortalContext.Provider, Object.assign({ value: this.portal }, { children: jsx_runtime_1.jsx(optional_value_provider_1.OptionalValueProvider, Object.assign({ provide: log_service_1.Log, useValue: this.logService }, { children: jsx_runtime_1.jsx(optional_value_provider_1.OptionalValueProvider, Object.assign({ provide: history_manager_1.HistoryManager, useValue: this.historyManager }, { children: jsx_runtime_1.jsx(optional_value_provider_1.OptionalValueProvider, Object.assign({ provide: common_1.BASENAME_TOKEN, useValue: this.basename }, { children: jsx_runtime_1.jsx(Component, Object.assign({}, this.dataset), void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0), this.root, this.onReady);
130
+ ] }, { children: jsx_runtime_1.jsx(design_system_1.DefaultPortalContext.Provider, Object.assign({ value: this.portal }, { children: jsx_runtime_1.jsx(optional_value_provider_1.OptionalValueProvider, Object.assign({ provide: log_service_1.Log, useValue: this.logService }, { children: jsx_runtime_1.jsx(optional_value_provider_1.OptionalValueProvider, Object.assign({ provide: history_manager_1.HistoryManager, useValue: this.historyManager }, { children: jsx_runtime_1.jsx(optional_value_provider_1.OptionalValueProvider, Object.assign({ provide: common_1.EventBus, useValue: this.eventBus }, { children: jsx_runtime_1.jsx(optional_value_provider_1.OptionalValueProvider, Object.assign({ provide: common_1.BASENAME_TOKEN, useValue: this.basename }, { children: jsx_runtime_1.jsx(Component, Object.assign({}, this.dataset), void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0) }), void 0), this.root, this.onReady);
125
131
  }
126
132
  });
127
133
  }
@@ -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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/web-components",
3
- "version": "15.0.0",
3
+ "version": "16.0.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -14,15 +14,16 @@
14
14
  "src"
15
15
  ],
16
16
  "dependencies": {
17
- "@servicetitan/error-boundary": "^15.0.0",
17
+ "@servicetitan/error-boundary": "^16.0.0",
18
+ "mitt": "~3.0.0",
18
19
  "semver": "~7.3.5"
19
20
  },
20
21
  "devDependencies": {
21
- "@servicetitan/design-system": "~10.1.0",
22
- "@servicetitan/log-service": "^15.0.0",
23
- "@servicetitan/react-ioc": "^15.0.0",
22
+ "@servicetitan/design-system": "~10.2.1",
23
+ "@servicetitan/log-service": "^16.0.0",
24
+ "@servicetitan/react-ioc": "^16.0.0",
24
25
  "@types/history": "~4.7.9",
25
- "@types/react": "~17.0.19",
26
+ "@types/react": "~17.0.24",
26
27
  "@types/react-dom": "~17.0.9",
27
28
  "@types/semver": "~7.3.8",
28
29
  "history": "~4.10.1",
@@ -30,7 +31,7 @@
30
31
  "react-dom": "~17.0.2"
31
32
  },
32
33
  "peerDependencies": {
33
- "@servicetitan/design-system": "~10.1.0",
34
+ "@servicetitan/design-system": "~10.2.1",
34
35
  "@servicetitan/log-service": "^14.0.0",
35
36
  "@servicetitan/react-ioc": "^14.0.0",
36
37
  "history": "~4.10.1",
@@ -43,5 +44,5 @@
43
44
  "cli": {
44
45
  "webpack": false
45
46
  },
46
- "gitHead": "7f95474c0d864c033e0c68c63243eaacd13082e0"
47
+ "gitHead": "d2d6e21f4f639bcde5a9ab274a6fd47b14b26974"
47
48
  }
package/src/common.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  import semver from 'semver';
2
2
 
3
+ import mitt from 'mitt';
4
+
3
5
  import { useRef } from 'react';
4
6
 
5
7
  import { symbolToken } from '@servicetitan/react-ioc';
@@ -14,6 +16,7 @@ export const RENDER_ROOT_TOKEN = symbolToken<ShadowRoot>('RENDER_ROOT_TOKEN');
14
16
  export interface Entries {
15
17
  logService?: Log;
16
18
  historyManager?: HistoryManager;
19
+ eventBus?: EventBus;
17
20
  basename?: string;
18
21
  onReady: () => void;
19
22
  }
@@ -106,3 +109,25 @@ export async function getJson<T = any>(
106
109
  export function useCancelation() {
107
110
  return useRef(new AbortController()).current;
108
111
  }
112
+
113
+ export type EventHandler = () => void;
114
+
115
+ export class EventBus {
116
+ private emitter = mitt();
117
+
118
+ on = (type: string, handler: EventHandler) => {
119
+ this.emitter.on(type, handler);
120
+ };
121
+
122
+ off = (type: string, handler: EventHandler) => {
123
+ this.emitter.off(type, handler);
124
+ };
125
+
126
+ emit = (type: string) => {
127
+ this.emitter.emit(type);
128
+ };
129
+ }
130
+
131
+ export function useEventBus() {
132
+ return useRef(new EventBus()).current;
133
+ }
package/src/loader.tsx CHANGED
@@ -1,10 +1,18 @@
1
- import { lazy, Suspense, useEffect, useMemo, useState, FC } from 'react';
1
+ import {
2
+ lazy,
3
+ Suspense,
4
+ useEffect,
5
+ useMemo,
6
+ useState,
7
+ forwardRef,
8
+ useImperativeHandle,
9
+ } from 'react';
2
10
 
3
11
  import { ErrorBoundary } from '@servicetitan/error-boundary';
4
12
  import { Log } from '@servicetitan/log-service';
5
13
  import { useOptionalDependencies } from '@servicetitan/react-ioc';
6
14
 
7
- import { useCancelation, getJson, isCompatible, IWebComponent } from './common';
15
+ import { useCancelation, useEventBus, getJson, isCompatible, IWebComponent } from './common';
8
16
  import { HistoryManager } from './history-manager';
9
17
 
10
18
  type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;
@@ -69,6 +77,10 @@ async function getBundleInfo(packageUrl: string, signal?: AbortSignal) {
69
77
  };
70
78
  }
71
79
 
80
+ export interface LoaderRef {
81
+ emit(type: string): void;
82
+ }
83
+
72
84
  export interface LoaderProps {
73
85
  src: string;
74
86
  data?: Record<string, string>;
@@ -77,124 +89,138 @@ export interface LoaderProps {
77
89
  className?: string;
78
90
  }
79
91
 
80
- export const Loader: FC<LoaderProps> = ({
81
- src,
82
- data = {},
83
- basename,
84
- fallback = <h2>Loading...</h2>,
85
- className,
86
- }) => {
87
- const [isLoading, setIsLoading] = useState(true);
88
-
89
- const [logService, historyManager] = useOptionalDependencies(Log, HistoryManager);
90
-
91
- const dataAttrs = useMemo(
92
- () =>
93
- Object.fromEntries(
94
- Object.entries(data).map(([key, value]) => [
95
- 'data-' + key.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()),
96
- value,
97
- ])
98
- ),
99
-
100
- [...Object.entries(data).map(v => v.join())] // eslint-disable-line react-hooks/exhaustive-deps
101
- );
92
+ export const Loader = forwardRef<LoaderRef, LoaderProps>(
93
+ ({ src, data = {}, basename, fallback, className }, ref) => {
94
+ const [isLoading, setIsLoading] = useState(true);
95
+
96
+ const [logService, historyManager] = useOptionalDependencies(Log, HistoryManager);
97
+
98
+ const dataAttrs = useMemo(
99
+ () =>
100
+ Object.fromEntries(
101
+ Object.entries(data).map(([key, value]) => [
102
+ 'data-' + key.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()),
103
+ value,
104
+ ])
105
+ ),
106
+
107
+ [...Object.entries(data).map(v => v.join())] // eslint-disable-line react-hooks/exhaustive-deps
108
+ );
109
+
110
+ const Loader = useMemo(() => {
111
+ const Component = forwardRef<LoaderRef>((_0, ref) => {
112
+ const cancelation = useCancelation();
113
+ const eventBus = useEventBus();
114
+
115
+ useImperativeHandle(
116
+ ref,
117
+ () => ({
118
+ emit(type) {
119
+ eventBus.emit(type);
120
+ },
121
+ }),
122
+ [] // eslint-disable-line react-hooks/exhaustive-deps
123
+ );
124
+
125
+ useEffect(() => {
126
+ setIsLoading(true);
127
+
128
+ return () => {
129
+ cancelation.abort();
130
+ };
131
+ }, []); // eslint-disable-line react-hooks/exhaustive-deps
132
+
133
+ const Lazy = useMemo(
134
+ () =>
135
+ lazy<() => JSX.Element | null>(async () => {
136
+ let bundleInfo: Awaited<ReturnType<typeof getBundleInfo>>;
137
+ try {
138
+ bundleInfo = await getBundleInfo(src, cancelation.signal);
139
+ } catch (e) {
140
+ if (cancelation.signal.aborted) {
141
+ return {
142
+ default: () => null,
143
+ };
144
+ }
145
+
146
+ throw e;
147
+ }
148
+
149
+ const { url, WebComponent, mismatch } = bundleInfo;
102
150
 
103
- const Loader = useMemo(() => {
104
- const Component: React.FC = () => {
105
- const cancelation = useCancelation();
106
-
107
- useEffect(() => {
108
- setIsLoading(true);
109
-
110
- return () => {
111
- cancelation.abort();
112
- };
113
- }, []); // eslint-disable-line react-hooks/exhaustive-deps
114
-
115
- const Lazy = useMemo(
116
- () =>
117
- lazy<() => JSX.Element | null>(async () => {
118
- let bundleInfo: Awaited<ReturnType<typeof getBundleInfo>>;
119
- try {
120
- bundleInfo = await getBundleInfo(src, cancelation.signal);
121
- } catch (e) {
122
- if (cancelation.signal.aborted) {
123
- return {
124
- default: () => null,
125
- };
151
+ if (mismatch) {
152
+ logService?.warning({
153
+ category: 'MicroFrontends.DependenciesMismatch',
154
+ message:
155
+ 'Some of the package dependencies have incompatible versions.',
156
+ data: { package: src, dependencies: JSON.stringify(mismatch) },
157
+ });
126
158
  }
127
159
 
128
- throw e;
129
- }
130
-
131
- const { url, WebComponent, mismatch } = bundleInfo;
132
-
133
- if (mismatch) {
134
- logService?.warning({
135
- category: 'MicroFrontends.DependenciesMismatch',
136
- message:
137
- 'Some of the package dependencies have incompatible versions.',
138
- data: { package: src, dependencies: JSON.stringify(mismatch) },
139
- });
140
- }
141
-
142
- const script = Array.from(document.scripts).find(({ src }) => src === url);
143
- if (!script) {
144
- await new Promise<void>(resolve => {
145
- const script = document.createElement('script');
146
-
147
- script.onload = () => {
148
- script.dataset.webComponent = WebComponent;
149
- resolve();
150
- };
151
- script.async = true;
152
- script.src = url;
153
-
154
- document.body.append(script);
155
- });
156
- } else if (!script.dataset.webComponent) {
157
- await new Promise<void>(resolve => {
158
- const originalOnload = script.onload;
159
- script.onload = (...args) => {
160
- originalOnload?.call(script, ...args);
161
- resolve();
162
- };
163
- });
164
- }
165
-
166
- const handleRef = (webComponent: IWebComponent | null) => {
167
- webComponent?.provide({
168
- logService,
169
- historyManager,
170
- basename,
171
- onReady: () => {
172
- setIsLoading(false);
173
- },
174
- });
175
- };
176
-
177
- return {
178
- default: () => (
179
- <WebComponent ref={handleRef} class={className} {...dataAttrs} />
180
- ),
181
- };
182
- }),
183
- [] // eslint-disable-line react-hooks/exhaustive-deps
184
- );
185
-
186
- return <Lazy />;
187
- };
188
-
189
- return Component;
190
- }, [src, className, logService, historyManager, basename, dataAttrs]);
191
-
192
- return (
193
- <ErrorBoundary moduleName={src}>
194
- {isLoading && fallback}
195
- <Suspense fallback={null}>
196
- <Loader />
197
- </Suspense>
198
- </ErrorBoundary>
199
- );
200
- };
160
+ const script = Array.from(document.scripts).find(
161
+ ({ src }) => src === url
162
+ );
163
+ if (!script) {
164
+ await new Promise<void>(resolve => {
165
+ const script = document.createElement('script');
166
+
167
+ script.onload = () => {
168
+ script.dataset.webComponent = WebComponent;
169
+ resolve();
170
+ };
171
+ script.async = true;
172
+ script.src = url;
173
+
174
+ document.body.append(script);
175
+ });
176
+ } else if (!script.dataset.webComponent) {
177
+ await new Promise<void>(resolve => {
178
+ const originalOnload = script.onload;
179
+ script.onload = (...args) => {
180
+ originalOnload?.call(script, ...args);
181
+ resolve();
182
+ };
183
+ });
184
+ }
185
+
186
+ const handleRef = (webComponent: IWebComponent | null) => {
187
+ webComponent?.provide({
188
+ logService,
189
+ historyManager,
190
+ eventBus,
191
+ basename,
192
+ onReady: () => {
193
+ setIsLoading(false);
194
+ },
195
+ });
196
+ };
197
+
198
+ return {
199
+ default: () => (
200
+ <WebComponent
201
+ ref={handleRef}
202
+ class={className}
203
+ {...dataAttrs}
204
+ />
205
+ ),
206
+ };
207
+ }),
208
+ [] // eslint-disable-line react-hooks/exhaustive-deps
209
+ );
210
+
211
+ return <Lazy />;
212
+ });
213
+
214
+ return Component;
215
+ }, [src, className, logService, historyManager, basename, dataAttrs]);
216
+
217
+ return (
218
+ <ErrorBoundary moduleName={src}>
219
+ {isLoading && (fallback !== undefined ? fallback : <h2>Loading...</h2>)}
220
+ <Suspense fallback={null}>
221
+ <Loader ref={ref} />
222
+ </Suspense>
223
+ </ErrorBoundary>
224
+ );
225
+ }
226
+ );
package/src/register.tsx CHANGED
@@ -8,6 +8,7 @@ import { Provider } from '@servicetitan/react-ioc';
8
8
  import { OptionalValueProvider } from './optional-value-provider';
9
9
  import {
10
10
  Entries,
11
+ EventBus,
11
12
  IWebComponent,
12
13
  BASENAME_TOKEN,
13
14
  IS_WEB_COMPONENT_TOKEN,
@@ -56,6 +57,7 @@ export function register(Component: ComponentType, light: boolean) {
56
57
 
57
58
  private logService?: Log;
58
59
  private historyManager?: HistoryManager;
60
+ private eventBus?: EventBus;
59
61
  private basename?: string;
60
62
  private onReady?: () => void;
61
63
 
@@ -118,11 +120,13 @@ export function register(Component: ComponentType, light: boolean) {
118
120
  provide={HistoryManager}
119
121
  useValue={this.historyManager}
120
122
  >
121
- <OptionalValueProvider
122
- provide={BASENAME_TOKEN}
123
- useValue={this.basename}
124
- >
125
- <Component {...this.dataset} />
123
+ <OptionalValueProvider provide={EventBus} useValue={this.eventBus}>
124
+ <OptionalValueProvider
125
+ provide={BASENAME_TOKEN}
126
+ useValue={this.basename}
127
+ >
128
+ <Component {...this.dataset} />
129
+ </OptionalValueProvider>
126
130
  </OptionalValueProvider>
127
131
  </OptionalValueProvider>
128
132
  </OptionalValueProvider>