@servicetitan/web-components 17.5.1 → 19.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 +7 -8
- package/dist/common.d.ts.map +1 -1
- package/dist/common.js +2 -41
- package/dist/common.js.map +1 -1
- package/dist/event-bus.d.ts +18 -0
- package/dist/event-bus.d.ts.map +1 -0
- package/dist/event-bus.js +76 -0
- package/dist/event-bus.js.map +1 -0
- package/dist/globals.d.ts +10 -0
- package/dist/globals.d.ts.map +1 -0
- package/dist/globals.js +20 -0
- package/dist/globals.js.map +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/loader.d.ts +1 -7
- package/dist/loader.d.ts.map +1 -1
- package/dist/loader.js +15 -9
- package/dist/loader.js.map +1 -1
- package/dist/register.d.ts +0 -3
- package/dist/register.d.ts.map +1 -1
- package/dist/register.js +24 -3
- package/dist/register.js.map +1 -1
- package/package.json +8 -8
- package/src/common.ts +13 -24
- package/src/event-bus.ts +52 -0
- package/src/globals.ts +25 -0
- package/src/index.ts +1 -0
- package/src/loader.tsx +25 -14
- package/src/register.tsx +32 -21
- package/dist/optional-value-provider.d.ts +0 -9
- package/dist/optional-value-provider.d.ts.map +0 -1
- package/dist/optional-value-provider.js +0 -13
- package/dist/optional-value-provider.js.map +0 -1
- package/src/optional-value-provider.tsx +0 -19
package/dist/common.d.ts
CHANGED
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
import { Log } from '@servicetitan/log-service';
|
|
2
|
+
import { EventBus } from './event-bus';
|
|
2
3
|
import { HistoryManager } from './history-manager';
|
|
4
|
+
export declare type ExposedDependencies = Record<string, {
|
|
5
|
+
version: string;
|
|
6
|
+
variable: string;
|
|
7
|
+
}>;
|
|
3
8
|
export declare const BASENAME_TOKEN: import("@servicetitan/react-ioc").SymbolToken<string>;
|
|
9
|
+
export declare const EXPOSED_DEPENDENCIES_TOKEN: import("@servicetitan/react-ioc").SymbolToken<ExposedDependencies>;
|
|
4
10
|
export declare const IS_WEB_COMPONENT_TOKEN: import("@servicetitan/react-ioc").SymbolToken<boolean>;
|
|
5
11
|
export declare const RENDER_ROOT_TOKEN: import("@servicetitan/react-ioc").SymbolToken<ShadowRoot>;
|
|
6
12
|
export interface Entries {
|
|
7
13
|
logService?: Log;
|
|
8
14
|
historyManager?: HistoryManager;
|
|
15
|
+
exposedDependencies?: ExposedDependencies;
|
|
9
16
|
eventBus?: EventBus;
|
|
10
17
|
basename?: string;
|
|
11
18
|
onReady: () => void;
|
|
@@ -24,13 +31,5 @@ export declare function getJson<T = any>(url: string, { retries, retryDelay, ...
|
|
|
24
31
|
headers: Headers;
|
|
25
32
|
}>;
|
|
26
33
|
export declare function useCancelation(): AbortController;
|
|
27
|
-
export declare type EventHandler = () => void;
|
|
28
|
-
export declare class EventBus {
|
|
29
|
-
private emitter;
|
|
30
|
-
on: (type: string, handler: EventHandler) => void;
|
|
31
|
-
off: (type: string, handler: EventHandler) => void;
|
|
32
|
-
emit: (type: string) => void;
|
|
33
|
-
}
|
|
34
|
-
export declare function useEventBus(): EventBus;
|
|
35
34
|
export {};
|
|
36
35
|
//# sourceMappingURL=common.d.ts.map
|
package/dist/common.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"
|
|
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,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEnD,oBAAY,mBAAmB,GAAG,MAAM,CACpC,MAAM,EACN;IACI,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CACpB,CACJ,CAAC;AAEF,eAAO,MAAM,cAAc,uDAAwC,CAAC;AACpE,eAAO,MAAM,0BAA0B,oEAEtC,CAAC;AACF,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,mBAAmB,CAAC,EAAE,mBAAmB,CAAC;IAC1C,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,SAAS,EAAE,MAAM,IAAI,CAAC;CACzB;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"}
|
package/dist/common.js
CHANGED
|
@@ -23,12 +23,12 @@ 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.
|
|
26
|
+
exports.useCancelation = exports.getJson = exports.isCompatible = exports.RENDER_ROOT_TOKEN = exports.IS_WEB_COMPONENT_TOKEN = exports.EXPOSED_DEPENDENCIES_TOKEN = exports.BASENAME_TOKEN = void 0;
|
|
27
27
|
const semver_1 = __importDefault(require("semver"));
|
|
28
|
-
const mitt_1 = __importDefault(require("mitt"));
|
|
29
28
|
const react_1 = require("react");
|
|
30
29
|
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
31
30
|
exports.BASENAME_TOKEN = (0, react_ioc_1.symbolToken)('BASENAME_TOKEN');
|
|
31
|
+
exports.EXPOSED_DEPENDENCIES_TOKEN = (0, react_ioc_1.symbolToken)('EXPOSED_DEPENDENCIES_TOKEN');
|
|
32
32
|
exports.IS_WEB_COMPONENT_TOKEN = (0, react_ioc_1.symbolToken)('IS_WEB_COMPONENT_TOKEN');
|
|
33
33
|
exports.RENDER_ROOT_TOKEN = (0, react_ioc_1.symbolToken)('RENDER_ROOT_TOKEN');
|
|
34
34
|
function isCompatible(hostVersion, packageVersion) {
|
|
@@ -95,43 +95,4 @@ function useCancelation() {
|
|
|
95
95
|
return (0, react_1.useRef)(new AbortController()).current;
|
|
96
96
|
}
|
|
97
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: (0, 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 (0, react_1.useRef)(new EventBus()).current;
|
|
135
|
-
}
|
|
136
|
-
exports.useEventBus = useEventBus;
|
|
137
98
|
//# sourceMappingURL=common.js.map
|
package/dist/common.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAA4B;AAE5B,
|
|
1
|
+
{"version":3,"file":"common.js","sourceRoot":"","sources":["../src/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare type EventHandler = () => void;
|
|
2
|
+
export declare type JobEventHandler = (defer: {
|
|
3
|
+
resolve(): void;
|
|
4
|
+
reject(reason?: string | Error): void;
|
|
5
|
+
}) => void;
|
|
6
|
+
export declare class EventBus {
|
|
7
|
+
job: {
|
|
8
|
+
on: (type: string, handler: JobEventHandler) => void;
|
|
9
|
+
off: (type: string, handler: JobEventHandler) => void;
|
|
10
|
+
emit: (type: string) => Promise<void>;
|
|
11
|
+
};
|
|
12
|
+
private emitter;
|
|
13
|
+
on: (type: string, handler: EventHandler) => void;
|
|
14
|
+
off: (type: string, handler: EventHandler) => void;
|
|
15
|
+
emit: (type: string) => void;
|
|
16
|
+
}
|
|
17
|
+
export declare function useEventBus(): EventBus;
|
|
18
|
+
//# sourceMappingURL=event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":"AAIA,oBAAY,YAAY,GAAG,MAAM,IAAI,CAAC;AACtC,oBAAY,eAAe,GAAG,CAAC,KAAK,EAAE;IAClC,OAAO,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI,CAAC;CACzC,KAAK,IAAI,CAAC;AAEX,qBAAa,QAAQ;IACjB,GAAG;mBACY,MAAM,WAAW,eAAe;oBAG/B,MAAM,WAAW,eAAe;qBAG/B,MAAM;MAcrB;IAEF,OAAO,CAAC,OAAO,CAAe;IAE9B,EAAE,SAAU,MAAM,WAAW,YAAY,UAEvC;IAEF,GAAG,SAAU,MAAM,WAAW,YAAY,UAExC;IAEF,IAAI,SAAU,MAAM,UAElB;CACL;AAED,wBAAgB,WAAW,aAE1B"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.useEventBus = exports.EventBus = void 0;
|
|
7
|
+
const mitt_1 = __importDefault(require("mitt"));
|
|
8
|
+
const react_1 = require("react");
|
|
9
|
+
class EventBus {
|
|
10
|
+
constructor() {
|
|
11
|
+
Object.defineProperty(this, "job", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
configurable: true,
|
|
14
|
+
writable: true,
|
|
15
|
+
value: {
|
|
16
|
+
on: (type, handler) => {
|
|
17
|
+
this.emitter.on(type, handler);
|
|
18
|
+
},
|
|
19
|
+
off: (type, handler) => {
|
|
20
|
+
this.emitter.off(type, handler);
|
|
21
|
+
},
|
|
22
|
+
emit: (type) => {
|
|
23
|
+
return new Promise((resolve, reject) => {
|
|
24
|
+
this.emitter.emit(type, {
|
|
25
|
+
resolve: () => resolve(),
|
|
26
|
+
reject: (reason) => {
|
|
27
|
+
if (typeof reason === 'string' || reason instanceof Error) {
|
|
28
|
+
reject(reason);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
reject();
|
|
32
|
+
}
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
});
|
|
36
|
+
},
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(this, "emitter", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
configurable: true,
|
|
42
|
+
writable: true,
|
|
43
|
+
value: (0, mitt_1.default)()
|
|
44
|
+
});
|
|
45
|
+
Object.defineProperty(this, "on", {
|
|
46
|
+
enumerable: true,
|
|
47
|
+
configurable: true,
|
|
48
|
+
writable: true,
|
|
49
|
+
value: (type, handler) => {
|
|
50
|
+
this.emitter.on(type, handler);
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
Object.defineProperty(this, "off", {
|
|
54
|
+
enumerable: true,
|
|
55
|
+
configurable: true,
|
|
56
|
+
writable: true,
|
|
57
|
+
value: (type, handler) => {
|
|
58
|
+
this.emitter.off(type, handler);
|
|
59
|
+
}
|
|
60
|
+
});
|
|
61
|
+
Object.defineProperty(this, "emit", {
|
|
62
|
+
enumerable: true,
|
|
63
|
+
configurable: true,
|
|
64
|
+
writable: true,
|
|
65
|
+
value: (type) => {
|
|
66
|
+
this.emitter.emit(type);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
exports.EventBus = EventBus;
|
|
72
|
+
function useEventBus() {
|
|
73
|
+
return (0, react_1.useRef)(new EventBus()).current;
|
|
74
|
+
}
|
|
75
|
+
exports.useEventBus = useEventBus;
|
|
76
|
+
//# sourceMappingURL=event-bus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.js","sourceRoot":"","sources":["../src/event-bus.ts"],"names":[],"mappings":";;;;;;AAAA,gDAAwB;AAExB,iCAA+B;AAQ/B,MAAa,QAAQ;IAArB;QACI;;;;mBAAM;gBACF,EAAE,EAAE,CAAC,IAAY,EAAE,OAAwB,EAAE,EAAE;oBAC3C,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACnC,CAAC;gBACD,GAAG,EAAE,CAAC,IAAY,EAAE,OAAwB,EAAE,EAAE;oBAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;gBACpC,CAAC;gBACD,IAAI,EAAE,CAAC,IAAY,EAAE,EAAE;oBACnB,OAAO,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;wBACzC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;4BACpB,OAAO,EAAE,GAAG,EAAE,CAAC,OAAO,EAAE;4BACxB,MAAM,EAAE,CAAC,MAAuB,EAAE,EAAE;gCAChC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,YAAY,KAAK,EAAE;oCACvD,MAAM,CAAC,MAAM,CAAC,CAAC;iCAClB;qCAAM;oCACH,MAAM,EAAE,CAAC;iCACZ;4BACL,CAAC;yBACJ,CAAC,CAAC;oBACP,CAAC,CAAC,CAAC;gBACP,CAAC;aACJ;WAAC;QAEF;;;;mBAAkB,IAAA,cAAI,GAAO;WAAC;QAE9B;;;;mBAAK,CAAC,IAAY,EAAE,OAAqB,EAAE,EAAE;gBACzC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACnC,CAAC;WAAC;QAEF;;;;mBAAM,CAAC,IAAY,EAAE,OAAqB,EAAE,EAAE;gBAC1C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACpC,CAAC;WAAC;QAEF;;;;mBAAO,CAAC,IAAY,EAAE,EAAE;gBACpB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,CAAC;WAAC;IACN,CAAC;CAAA;AArCD,4BAqCC;AAED,SAAgB,WAAW;IACvB,OAAO,IAAA,cAAM,EAAC,IAAI,QAAQ,EAAE,CAAC,CAAC,OAAO,CAAC;AAC1C,CAAC;AAFD,kCAEC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ExposedDependencies } from './common';
|
|
2
|
+
declare global {
|
|
3
|
+
export const EXPOSED_DEPENDENCIES: ExposedDependencies | undefined;
|
|
4
|
+
export const WEB_COMPONENT_NAME: string | undefined;
|
|
5
|
+
}
|
|
6
|
+
declare const _EXPOSED_DEPENDENCIES: ExposedDependencies | undefined;
|
|
7
|
+
export { _EXPOSED_DEPENDENCIES as EXPOSED_DEPENDENCIES };
|
|
8
|
+
declare const _WEB_COMPONENT_NAME: string | undefined;
|
|
9
|
+
export { _WEB_COMPONENT_NAME as WEB_COMPONENT_NAME };
|
|
10
|
+
//# sourceMappingURL=globals.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.d.ts","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C,OAAO,CAAC,MAAM,CAAC;IACX,MAAM,CAAC,MAAM,oBAAoB,EAAE,mBAAmB,GAAG,SAAS,CAAC;IACnE,MAAM,CAAC,MAAM,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;CACvD;AAUD,QAAA,MAAM,qBAAqB,iCAEzB,CAAC;AACH,OAAO,EAAE,qBAAqB,IAAI,oBAAoB,EAAE,CAAC;AAEzD,QAAA,MAAM,mBAAmB,oBAEvB,CAAC;AACH,OAAO,EAAE,mBAAmB,IAAI,kBAAkB,EAAE,CAAC"}
|
package/dist/globals.js
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WEB_COMPONENT_NAME = exports.EXPOSED_DEPENDENCIES = void 0;
|
|
4
|
+
function get(fetch) {
|
|
5
|
+
try {
|
|
6
|
+
return fetch();
|
|
7
|
+
}
|
|
8
|
+
catch (_a) {
|
|
9
|
+
return undefined;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
const _EXPOSED_DEPENDENCIES = get(() => {
|
|
13
|
+
return EXPOSED_DEPENDENCIES;
|
|
14
|
+
});
|
|
15
|
+
exports.EXPOSED_DEPENDENCIES = _EXPOSED_DEPENDENCIES;
|
|
16
|
+
const _WEB_COMPONENT_NAME = get(() => {
|
|
17
|
+
return WEB_COMPONENT_NAME;
|
|
18
|
+
});
|
|
19
|
+
exports.WEB_COMPONENT_NAME = _WEB_COMPONENT_NAME;
|
|
20
|
+
//# sourceMappingURL=globals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":";;;AAQA,SAAS,GAAG,CAAI,KAAc;IAC1B,IAAI;QACA,OAAO,KAAK,EAAE,CAAC;KAClB;IAAC,WAAM;QACJ,OAAO,SAAS,CAAC;KACpB;AACL,CAAC;AAED,MAAM,qBAAqB,GAAG,GAAG,CAAC,GAAG,EAAE;IACnC,OAAO,oBAAoB,CAAC;AAChC,CAAC,CAAC,CAAC;AAC+B,qDAAoB;AAEtD,MAAM,mBAAmB,GAAG,GAAG,CAAC,GAAG,EAAE;IACjC,OAAO,kBAAkB,CAAC;AAC9B,CAAC,CAAC,CAAC;AAC6B,iDAAkB"}
|
package/dist/index.d.ts
CHANGED
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,aAAa,CAAC;AAC5B,cAAc,mBAAmB,CAAC;AAClC,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
11
11
|
};
|
|
12
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
13
|
__exportStar(require("./common"), exports);
|
|
14
|
+
__exportStar(require("./event-bus"), exports);
|
|
14
15
|
__exportStar(require("./history-manager"), exports);
|
|
15
16
|
__exportStar(require("./register"), exports);
|
|
16
17
|
__exportStar(require("./loader"), exports);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,oDAAkC;AAClC,6CAA2B;AAC3B,2CAAyB"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAyB;AACzB,8CAA4B;AAC5B,oDAAkC;AAClC,6CAA2B;AAC3B,2CAAyB"}
|
package/dist/loader.d.ts
CHANGED
|
@@ -1,11 +1,5 @@
|
|
|
1
1
|
import { ReactNode } from 'react';
|
|
2
|
-
import { EventBus } from './
|
|
3
|
-
declare global {
|
|
4
|
-
export const EXPOSED_DEPENDENCIES: Record<string, {
|
|
5
|
-
version: string;
|
|
6
|
-
variable: string;
|
|
7
|
-
}>;
|
|
8
|
-
}
|
|
2
|
+
import { EventBus } from './event-bus';
|
|
9
3
|
export declare type LoaderRef = EventBus;
|
|
10
4
|
export interface LoaderProps {
|
|
11
5
|
src: string;
|
package/dist/loader.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EASH,SAAS,EACZ,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":"AAAA,OAAO,EASH,SAAS,EACZ,MAAM,OAAO,CAAC;AAkBf,OAAO,EAAE,QAAQ,EAAe,MAAM,aAAa,CAAC;AA2EpD,oBAAY,SAAS,GAAG,QAAQ,CAAC;AAEjC,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,eAAe,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAChD,aAAa,CAAC,EAAE,WAAW,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,eAAO,MAAM,MAAM,kGAoKlB,CAAC"}
|
package/dist/loader.js
CHANGED
|
@@ -21,7 +21,9 @@ const error_boundary_1 = require("@servicetitan/error-boundary");
|
|
|
21
21
|
const log_service_1 = require("@servicetitan/log-service");
|
|
22
22
|
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
23
23
|
const common_1 = require("./common");
|
|
24
|
+
const event_bus_1 = require("./event-bus");
|
|
24
25
|
const history_manager_1 = require("./history-manager");
|
|
26
|
+
const globals_1 = require("./globals");
|
|
25
27
|
function omitPackageVersion(packageUrl) {
|
|
26
28
|
const chunks = packageUrl.split('@');
|
|
27
29
|
if (chunks.length > 2) {
|
|
@@ -29,7 +31,7 @@ function omitPackageVersion(packageUrl) {
|
|
|
29
31
|
}
|
|
30
32
|
return packageUrl;
|
|
31
33
|
}
|
|
32
|
-
function getBundleInfo(packageUrl, signal) {
|
|
34
|
+
function getBundleInfo(packageUrl, exposedDependencies = {}, signal) {
|
|
33
35
|
var _a;
|
|
34
36
|
return __awaiter(this, void 0, void 0, function* () {
|
|
35
37
|
const { data: { dependencies, version }, headers, } = yield (0, common_1.getJson)(`${packageUrl}/package.json`, { cache: 'no-store', signal });
|
|
@@ -37,7 +39,7 @@ function getBundleInfo(packageUrl, signal) {
|
|
|
37
39
|
? `${omitPackageVersion(packageUrl)}@${version}`
|
|
38
40
|
: packageUrl;
|
|
39
41
|
const { data: metadata } = yield (0, common_1.getJson)(`${exactPackageUrl}/dist/metadata.json`, { signal });
|
|
40
|
-
const mismatch = Object.entries(
|
|
42
|
+
const mismatch = Object.entries(exposedDependencies).reduce((result, [dependency, { version: hostVersion }]) => {
|
|
41
43
|
const packageVersion = dependencies[dependency];
|
|
42
44
|
if (packageVersion && !(0, common_1.isCompatible)(hostVersion, packageVersion)) {
|
|
43
45
|
result[dependency] = { host: hostVersion, package: packageVersion };
|
|
@@ -46,10 +48,10 @@ function getBundleInfo(packageUrl, signal) {
|
|
|
46
48
|
}, {});
|
|
47
49
|
for (const [dependency, variable] of Object.entries(metadata.sharedDependencies)) {
|
|
48
50
|
const packageVersion = dependencies[dependency];
|
|
49
|
-
if (!
|
|
51
|
+
if (!exposedDependencies[dependency]) {
|
|
50
52
|
mismatch[dependency] = { host: 'missing', package: packageVersion };
|
|
51
53
|
}
|
|
52
|
-
else if (
|
|
54
|
+
else if (exposedDependencies[dependency].variable !== variable) {
|
|
53
55
|
mismatch[dependency] = { host: 'wrong global variable', package: packageVersion };
|
|
54
56
|
}
|
|
55
57
|
}
|
|
@@ -74,7 +76,7 @@ function getBundleInfo(packageUrl, signal) {
|
|
|
74
76
|
}
|
|
75
77
|
exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFallback, errorFallback, className }, ref) => {
|
|
76
78
|
const [isLoading, setIsLoading] = (0, react_1.useState)(true);
|
|
77
|
-
const [logService, historyManager] = (0, react_ioc_1.useOptionalDependencies)(log_service_1.Log, history_manager_1.HistoryManager);
|
|
79
|
+
const [logService, historyManager, exposedDependencies = globals_1.EXPOSED_DEPENDENCIES] = (0, react_ioc_1.useOptionalDependencies)(log_service_1.Log, history_manager_1.HistoryManager, common_1.EXPOSED_DEPENDENCIES_TOKEN);
|
|
78
80
|
const dataAttrs = (0, react_1.useMemo)(() => Object.fromEntries(Object.entries(data).map(([key, value]) => [
|
|
79
81
|
'data-' + key.replace(/[A-Z]/g, letter => '-' + letter.toLowerCase()),
|
|
80
82
|
value,
|
|
@@ -83,7 +85,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
83
85
|
const Loader = (0, react_1.useMemo)(() => {
|
|
84
86
|
const Component = (0, react_1.forwardRef)((_0, ref) => {
|
|
85
87
|
const cancelation = (0, common_1.useCancelation)();
|
|
86
|
-
const eventBus = (0,
|
|
88
|
+
const eventBus = (0, event_bus_1.useEventBus)();
|
|
87
89
|
(0, react_1.useImperativeHandle)(ref, () => eventBus, [] // eslint-disable-line react-hooks/exhaustive-deps
|
|
88
90
|
);
|
|
89
91
|
(0, react_1.useEffect)(() => {
|
|
@@ -95,7 +97,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
95
97
|
const Lazy = (0, react_1.useMemo)(() => (0, react_1.lazy)(() => __awaiter(void 0, void 0, void 0, function* () {
|
|
96
98
|
let bundleInfo;
|
|
97
99
|
try {
|
|
98
|
-
bundleInfo = yield getBundleInfo(src, cancelation.signal);
|
|
100
|
+
bundleInfo = yield getBundleInfo(src, exposedDependencies, cancelation.signal);
|
|
99
101
|
}
|
|
100
102
|
catch (e) {
|
|
101
103
|
if (cancelation.signal.aborted) {
|
|
@@ -110,7 +112,10 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
110
112
|
logService === null || logService === void 0 ? void 0 : logService.warning({
|
|
111
113
|
category: 'MicroFrontends.DependenciesMismatch',
|
|
112
114
|
message: 'Some of the package dependencies have incompatible versions.',
|
|
113
|
-
data: {
|
|
115
|
+
data: {
|
|
116
|
+
package: src,
|
|
117
|
+
dependencies: JSON.stringify(mismatch),
|
|
118
|
+
},
|
|
114
119
|
});
|
|
115
120
|
}
|
|
116
121
|
const script = Array.from(document.scripts).find(({ src }) => src === url);
|
|
@@ -140,6 +145,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
140
145
|
webComponent === null || webComponent === void 0 ? void 0 : webComponent.provide({
|
|
141
146
|
logService,
|
|
142
147
|
historyManager,
|
|
148
|
+
exposedDependencies,
|
|
143
149
|
eventBus,
|
|
144
150
|
basename,
|
|
145
151
|
onReady: () => {
|
|
@@ -158,7 +164,7 @@ exports.Loader = (0, react_1.forwardRef)(({ src, data = {}, basename, loadingFal
|
|
|
158
164
|
return (0, jsx_runtime_1.jsx)(Lazy, {}, void 0);
|
|
159
165
|
});
|
|
160
166
|
return Component;
|
|
161
|
-
}, [src, className, logService, historyManager, basename, dataAttrs]);
|
|
167
|
+
}, [src, className, logService, historyManager, exposedDependencies, basename, dataAttrs]);
|
|
162
168
|
const LoadingFallback = (0, react_1.useMemo)(() => () => {
|
|
163
169
|
if (loadingFallback !== undefined) {
|
|
164
170
|
return loadingFallback;
|
package/dist/loader.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAUe;AAEf,oDAA4B;AAE5B,4DAA6B;AAE7B,iEAA6D;AAC7D,2DAAgD;AAChD,uDAAkE;AAElE,qCAOkB;AAClB,uDAAmD;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../src/loader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iCAUe;AAEf,oDAA4B;AAE5B,4DAA6B;AAE7B,iEAA6D;AAC7D,2DAAgD;AAChD,uDAAkE;AAElE,qCAOkB;AAClB,2CAAoD;AACpD,uDAAmD;AACnD,uCAAiD;AAIjD,SAAS,kBAAkB,CAAC,UAAkB;IAC1C,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;QACnB,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACxC;IAED,OAAO,UAAU,CAAC;AACtB,CAAC;AAED,SAAe,aAAa,CACxB,UAAkB,EAClB,sBAA2C,EAAE,EAC7C,MAAoB;;;QAEpB,MAAM,EACF,IAAI,EAAE,EAAE,YAAY,EAAE,OAAO,EAAE,EAC/B,OAAO,GACV,GAAG,MAAM,IAAA,gBAAO,EAAC,GAAG,UAAU,eAAe,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;QAE/E,MAAM,eAAe,GACjB,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,OAAO;YACrC,CAAC,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,IAAI,OAAO,EAAE;YAChD,CAAC,CAAC,UAAU,CAAC;QAErB,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,MAAM,IAAA,gBAAO,EAAC,GAAG,eAAe,qBAAqB,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;QAE9F,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,CACvD,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,CAAC,EAAE,EAAE;YAC/C,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAEhD,IAAI,cAAc,IAAI,CAAC,IAAA,qBAAY,EAAC,WAAW,EAAE,cAAc,CAAC,EAAE;gBAC9D,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;aACvE;YAED,OAAO,MAAM,CAAC;QAClB,CAAC,EACD,EAAuD,CAC1D,CAAC;QAEF,KAAK,MAAM,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE;YAC9E,MAAM,cAAc,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;YAEhD,IAAI,CAAC,mBAAmB,CAAC,UAAU,CAAC,EAAE;gBAClC,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;aACvE;iBAAM,IAAI,mBAAmB,CAAC,UAAU,CAAC,CAAC,QAAQ,KAAK,QAAQ,EAAE;gBAC9D,QAAQ,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC;aACrF;SACJ;QAED,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC;QACnD,MAAM,cAAc,GAAG,MAAA,QAAQ,CAAC,WAAW,0CAAG,uBAAuB,CAAC,CAAC;QACvE,MAAM,mBAAmB,GAAG,cAAc,IAAI,gBAAM,CAAC,GAAG,CAAC,cAAc,EAAE,QAAQ,CAAC,CAAC;QACnF,MAAM,KAAK,GAAG,CAAC,WAAW,IAAI,mBAAmB,CAAC;QAClD,OAAO;YACH,GAAG,EAAE,GAAG,eAAe,gBAAgB,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,WAAW;YAC1E,YAAY,EAAE,QAAQ,CAAC,IAAI;YAC3B,QAAQ,EAAE,GAAG,EAAE;gBACX,IAAI,KAAK,EAAE;oBACP,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAS,QAAQ,CAAC,kBAAkB,CAAC,CAAC,KAAK,EAAE,CAAC;oBACxE,IAAI,IAAI,EAAE;wBACN,IAAA,oBAAG,EAAC,MAAM,EAAE,IAAI,CAAC,CAAC,UAAU,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;qBACvD;iBACJ;YACL,CAAC;YACD,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS;SAC/C,CAAC;;CACL;AAaY,QAAA,MAAM,GAAG,IAAA,kBAAU,EAC5B,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE;IAC7E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,IAAA,gBAAQ,EAAC,IAAI,CAAC,CAAC;IAEjD,MAAM,CAAC,UAAU,EAAE,cAAc,EAAE,mBAAmB,GAAG,8BAAoB,CAAC,GAC1E,IAAA,mCAAuB,EAAC,iBAAG,EAAE,gCAAc,EAAE,mCAA0B,CAAC,CAAC;IAE7E,MAAM,SAAS,GAAG,IAAA,eAAO,EACrB,GAAG,EAAE,CACD,MAAM,CAAC,WAAW,CACd,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC;QACvC,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,MAAM,CAAC,EAAE,CAAC,GAAG,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;QACrE,KAAK;KACR,CAAC,CACL,EACL,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,kDAAkD;KAClG,CAAC;IAEF,MAAM,MAAM,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACxB,MAAM,SAAS,GAAG,IAAA,kBAAU,EAAY,CAAC,EAAE,EAAE,GAAG,EAAE,EAAE;YAChD,MAAM,WAAW,GAAG,IAAA,uBAAc,GAAE,CAAC;YACrC,MAAM,QAAQ,GAAG,IAAA,uBAAW,GAAE,CAAC;YAE/B,IAAA,2BAAmB,EACf,GAAG,EACH,GAAG,EAAE,CAAC,QAAQ,EACd,EAAE,CAAC,kDAAkD;aACxD,CAAC;YAEF,IAAA,iBAAS,EAAC,GAAG,EAAE;gBACX,YAAY,CAAC,IAAI,CAAC,CAAC;gBAEnB,OAAO,GAAG,EAAE;oBACR,WAAW,CAAC,KAAK,EAAE,CAAC;gBACxB,CAAC,CAAC;YACN,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,kDAAkD;YAE1D,MAAM,IAAI,GAAG,IAAA,eAAO,EAChB,GAAG,EAAE,CACD,IAAA,YAAI,EAA2B,GAAS,EAAE;gBACtC,IAAI,UAAqD,CAAC;gBAC1D,IAAI;oBACA,UAAU,GAAG,MAAM,aAAa,CAC5B,GAAG,EACH,mBAAmB,EACnB,WAAW,CAAC,MAAM,CACrB,CAAC;iBACL;gBAAC,OAAO,CAAC,EAAE;oBACR,IAAI,WAAW,CAAC,MAAM,CAAC,OAAO,EAAE;wBAC5B,OAAO;4BACH,OAAO,EAAE,GAAG,EAAE,CAAC,IAAI;yBACtB,CAAC;qBACL;oBAED,MAAM,CAAC,CAAC;iBACX;gBAED,MAAM,EAAE,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC;gBAE7D,IAAI,QAAQ,EAAE;oBACV,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAC;wBAChB,QAAQ,EAAE,qCAAqC;wBAC/C,OAAO,EACH,8DAA8D;wBAClE,IAAI,EAAE;4BACF,OAAO,EAAE,GAAG;4BACZ,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;yBACzC;qBACJ,CAAC,CAAC;iBACN;gBAED,MAAM,MAAM,GAAG,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,IAAI,CAC5C,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,GAAG,CAC3B,CAAC;gBACF,IAAI,CAAC,MAAM,EAAE;oBACT,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;wBAC9B,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;wBAEhD,MAAM,CAAC,WAAW,GAAG,WAAW,CAAC;wBACjC,MAAM,CAAC,MAAM,GAAG,GAAG,EAAE;4BACjB,MAAM,CAAC,OAAO,CAAC,YAAY,GAAG,YAAY,CAAC;4BAC3C,OAAO,EAAE,CAAC;wBACd,CAAC,CAAC;wBACF,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;wBACpB,MAAM,CAAC,GAAG,GAAG,GAAG,CAAC;wBAEjB,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBACjC,CAAC,CAAC,CAAC;iBACN;qBAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,EAAE;oBACrC,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;wBAC9B,MAAM,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC;wBACrC,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,IAAI,EAAE,EAAE;4BACxB,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;4BACtC,OAAO,EAAE,CAAC;wBACd,CAAC,CAAC;oBACN,CAAC,CAAC,CAAC;iBACN;gBAED,MAAM,SAAS,GAAG,CAAC,YAAkC,EAAE,EAAE;oBACrD,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,OAAO,CAAC;wBAClB,UAAU;wBACV,cAAc;wBACd,mBAAmB;wBACnB,QAAQ;wBACR,QAAQ;wBACR,OAAO,EAAE,GAAG,EAAE;4BACV,YAAY,CAAC,KAAK,CAAC,CAAC;wBACxB,CAAC;wBACD,SAAS,EAAE,GAAG,EAAE;4BACZ,QAAQ,EAAE,CAAC;wBACf,CAAC;qBACJ,CAAC,CAAC;gBACP,CAAC,CAAC;gBAEF,OAAO;oBACH,OAAO,EAAE,GAAG,EAAE,CAAC,CACX,uBAAC,YAAY,kBACT,GAAG,EAAE,SAAS,EACd,KAAK,EAAE,SAAS,IACZ,SAAS,UACf,CACL;iBACJ,CAAC;YACN,CAAC,CAAA,CAAC,EACN,EAAE,CAAC,kDAAkD;aACxD,CAAC;YAEF,OAAO,uBAAC,IAAI,aAAG,CAAC;QACpB,CAAC,CAAC,CAAC;QAEH,OAAO,SAAS,CAAC;IACrB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,cAAc,EAAE,mBAAmB,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC,CAAC;IAE3F,MAAM,eAAe,GAAG,IAAA,eAAO,EAC3B,GAAG,EAAE,CAAC,GAAG,EAAE;QACP,IAAI,eAAe,KAAK,SAAS,EAAE;YAC/B,OAAO,eAA+B,CAAC;SAC1C;QAED,OAAO,gEAAmB,CAAC;IAC/B,CAAC,EACD,CAAC,eAAe,CAAC,CACpB,CAAC;IAEF,MAAM,aAAa,GAAG,IAAA,eAAO,EACzB,GAAG,EAAE,CAAC,GAAG,EAAE;QACP,IAAI,aAAa,KAAK,SAAS,EAAE;YAC7B,OAAO,aAA6B,CAAC;SACxC;QAED,OAAO,0EAA6B,CAAC;IACzC,CAAC,EACD,CAAC,aAAa,CAAC,CAClB,CAAC;IAEF,OAAO,CACH,wBAAC,8BAAa,kBAAC,UAAU,EAAE,GAAG,EAAE,QAAQ,EAAE,aAAa,iBAClD,SAAS,IAAI,uBAAC,eAAe,aAAG,EACjC,uBAAC,gBAAQ,kBAAC,QAAQ,EAAE,IAAI,gBACpB,uBAAC,MAAM,IAAC,GAAG,EAAE,GAAG,WAAI,YACb,aACC,CACnB,CAAC;AACN,CAAC,CACJ,CAAC"}
|
package/dist/register.d.ts
CHANGED
package/dist/register.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../src/register.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAM,aAAa,EAAE,MAAM,OAAO,CAAC;AAkC1C,wBAAgB,QAAQ,CAAC,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,OAAO,QAyHhE"}
|
package/dist/register.js
CHANGED
|
@@ -6,9 +6,10 @@ const react_dom_1 = require("react-dom");
|
|
|
6
6
|
const log_service_1 = require("@servicetitan/log-service");
|
|
7
7
|
const design_system_1 = require("@servicetitan/design-system");
|
|
8
8
|
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
9
|
-
const optional_value_provider_1 = require("./optional-value-provider");
|
|
10
9
|
const common_1 = require("./common");
|
|
10
|
+
const event_bus_1 = require("./event-bus");
|
|
11
11
|
const history_manager_1 = require("./history-manager");
|
|
12
|
+
const globals_1 = require("./globals");
|
|
12
13
|
function createLink(url, onLoad) {
|
|
13
14
|
const element = document.createElement('link');
|
|
14
15
|
element.href = url;
|
|
@@ -65,6 +66,12 @@ function register(Component, light) {
|
|
|
65
66
|
writable: true,
|
|
66
67
|
value: void 0
|
|
67
68
|
});
|
|
69
|
+
Object.defineProperty(this, "exposedDependencies", {
|
|
70
|
+
enumerable: true,
|
|
71
|
+
configurable: true,
|
|
72
|
+
writable: true,
|
|
73
|
+
value: void 0
|
|
74
|
+
});
|
|
68
75
|
Object.defineProperty(this, "eventBus", {
|
|
69
76
|
enumerable: true,
|
|
70
77
|
configurable: true,
|
|
@@ -134,7 +141,16 @@ function register(Component, light) {
|
|
|
134
141
|
(0, react_dom_1.render)((0, jsx_runtime_1.jsx)(react_ioc_1.Provider, Object.assign({ singletons: [
|
|
135
142
|
{ provide: common_1.IS_WEB_COMPONENT_TOKEN, useValue: true },
|
|
136
143
|
{ provide: common_1.RENDER_ROOT_TOKEN, useValue: this.root },
|
|
137
|
-
] }, { children: (0, jsx_runtime_1.jsx)(design_system_1.DefaultPortalContext.Provider, Object.assign({ value: this.portal }, { children: (0, jsx_runtime_1.jsx)(
|
|
144
|
+
] }, { children: (0, jsx_runtime_1.jsx)(design_system_1.DefaultPortalContext.Provider, Object.assign({ value: this.portal }, { children: (0, jsx_runtime_1.jsx)(design_system_1.TablePopupPropsContext.Provider, Object.assign({ value: props => (Object.assign(Object.assign({}, props), { appendTo: this.root })) }, { children: (0, jsx_runtime_1.jsx)(react_ioc_1.Provider, Object.assign({ singletons: [
|
|
145
|
+
{ provide: log_service_1.Log, useValue: this.logService },
|
|
146
|
+
{ provide: history_manager_1.HistoryManager, useValue: this.historyManager },
|
|
147
|
+
{
|
|
148
|
+
provide: common_1.EXPOSED_DEPENDENCIES_TOKEN,
|
|
149
|
+
useValue: this.exposedDependencies,
|
|
150
|
+
},
|
|
151
|
+
{ provide: event_bus_1.EventBus, useValue: this.eventBus },
|
|
152
|
+
{ provide: common_1.BASENAME_TOKEN, useValue: this.basename },
|
|
153
|
+
].filter(({ useValue }) => useValue !== undefined) }, { children: (0, jsx_runtime_1.jsx)(Component, Object.assign({}, this.dataset), void 0) }), void 0) }), void 0) }), void 0) }), void 0), this.root, this.onReady);
|
|
138
154
|
}
|
|
139
155
|
});
|
|
140
156
|
}
|
|
@@ -154,7 +170,12 @@ function register(Component, light) {
|
|
|
154
170
|
(_a = this.onDispose) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
155
171
|
}
|
|
156
172
|
}
|
|
157
|
-
|
|
173
|
+
if (!globals_1.WEB_COMPONENT_NAME) {
|
|
174
|
+
// eslint-disable-next-line no-console
|
|
175
|
+
console.error('"WEB_COMPONENT_NAME" is not defined!');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
window.customElements.define(globals_1.WEB_COMPONENT_NAME, WebComponent);
|
|
158
179
|
}
|
|
159
180
|
exports.register = register;
|
|
160
181
|
//# 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":";;;;AACA,yCAA2D;AAE3D,2DAAgD;AAChD,+
|
|
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": "
|
|
3
|
+
"version": "19.0.0",
|
|
4
4
|
"description": "",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,18 +14,18 @@
|
|
|
14
14
|
"src"
|
|
15
15
|
],
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@servicetitan/error-boundary": "^
|
|
17
|
+
"@servicetitan/error-boundary": "^19.0.0",
|
|
18
18
|
"lodash.get": "~4.4.2",
|
|
19
19
|
"mitt": "~3.0.0",
|
|
20
20
|
"semver": "~7.3.5"
|
|
21
21
|
},
|
|
22
22
|
"devDependencies": {
|
|
23
|
-
"@servicetitan/design-system": "~10.
|
|
24
|
-
"@servicetitan/log-service": "^
|
|
25
|
-
"@servicetitan/react-ioc": "^
|
|
23
|
+
"@servicetitan/design-system": "~10.6.0",
|
|
24
|
+
"@servicetitan/log-service": "^19.0.0",
|
|
25
|
+
"@servicetitan/react-ioc": "^19.0.0",
|
|
26
26
|
"@types/history": "~4.7.9",
|
|
27
27
|
"@types/lodash.get": "~4.4.6",
|
|
28
|
-
"@types/react": "~17.0.
|
|
28
|
+
"@types/react": "~17.0.35",
|
|
29
29
|
"@types/react-dom": "~17.0.11",
|
|
30
30
|
"@types/semver": "~7.3.9",
|
|
31
31
|
"history": "~4.10.1",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"react-dom": "~17.0.2"
|
|
34
34
|
},
|
|
35
35
|
"peerDependencies": {
|
|
36
|
-
"@servicetitan/design-system": "~10.
|
|
36
|
+
"@servicetitan/design-system": "~10.6.0",
|
|
37
37
|
"@servicetitan/log-service": "^17.0.0",
|
|
38
38
|
"@servicetitan/react-ioc": "^17.0.0",
|
|
39
39
|
"history": "~4.10.1",
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"cli": {
|
|
47
47
|
"webpack": false
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "efb844833047aa20f082a4f71dfd2c6af06937a9"
|
|
50
50
|
}
|
package/src/common.ts
CHANGED
|
@@ -1,21 +1,32 @@
|
|
|
1
1
|
import semver from 'semver';
|
|
2
2
|
|
|
3
|
-
import mitt from 'mitt';
|
|
4
|
-
|
|
5
3
|
import { useRef } from 'react';
|
|
6
4
|
|
|
7
5
|
import { symbolToken } from '@servicetitan/react-ioc';
|
|
8
6
|
import { Log } from '@servicetitan/log-service';
|
|
9
7
|
|
|
8
|
+
import { EventBus } from './event-bus';
|
|
10
9
|
import { HistoryManager } from './history-manager';
|
|
11
10
|
|
|
11
|
+
export type ExposedDependencies = Record<
|
|
12
|
+
string,
|
|
13
|
+
{
|
|
14
|
+
version: string;
|
|
15
|
+
variable: string;
|
|
16
|
+
}
|
|
17
|
+
>;
|
|
18
|
+
|
|
12
19
|
export const BASENAME_TOKEN = symbolToken<string>('BASENAME_TOKEN');
|
|
20
|
+
export const EXPOSED_DEPENDENCIES_TOKEN = symbolToken<ExposedDependencies>(
|
|
21
|
+
'EXPOSED_DEPENDENCIES_TOKEN'
|
|
22
|
+
);
|
|
13
23
|
export const IS_WEB_COMPONENT_TOKEN = symbolToken<boolean>('IS_WEB_COMPONENT_TOKEN');
|
|
14
24
|
export const RENDER_ROOT_TOKEN = symbolToken<ShadowRoot>('RENDER_ROOT_TOKEN');
|
|
15
25
|
|
|
16
26
|
export interface Entries {
|
|
17
27
|
logService?: Log;
|
|
18
28
|
historyManager?: HistoryManager;
|
|
29
|
+
exposedDependencies?: ExposedDependencies;
|
|
19
30
|
eventBus?: EventBus;
|
|
20
31
|
basename?: string;
|
|
21
32
|
onReady: () => void;
|
|
@@ -110,25 +121,3 @@ export async function getJson<T = any>(
|
|
|
110
121
|
export function useCancelation() {
|
|
111
122
|
return useRef(new AbortController()).current;
|
|
112
123
|
}
|
|
113
|
-
|
|
114
|
-
export type EventHandler = () => void;
|
|
115
|
-
|
|
116
|
-
export class EventBus {
|
|
117
|
-
private emitter = mitt();
|
|
118
|
-
|
|
119
|
-
on = (type: string, handler: EventHandler) => {
|
|
120
|
-
this.emitter.on(type, handler);
|
|
121
|
-
};
|
|
122
|
-
|
|
123
|
-
off = (type: string, handler: EventHandler) => {
|
|
124
|
-
this.emitter.off(type, handler);
|
|
125
|
-
};
|
|
126
|
-
|
|
127
|
-
emit = (type: string) => {
|
|
128
|
-
this.emitter.emit(type);
|
|
129
|
-
};
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
export function useEventBus() {
|
|
133
|
-
return useRef(new EventBus()).current;
|
|
134
|
-
}
|
package/src/event-bus.ts
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import mitt from 'mitt';
|
|
2
|
+
|
|
3
|
+
import { useRef } from 'react';
|
|
4
|
+
|
|
5
|
+
export type EventHandler = () => void;
|
|
6
|
+
export type JobEventHandler = (defer: {
|
|
7
|
+
resolve(): void;
|
|
8
|
+
reject(reason?: string | Error): void;
|
|
9
|
+
}) => void;
|
|
10
|
+
|
|
11
|
+
export class EventBus {
|
|
12
|
+
job = {
|
|
13
|
+
on: (type: string, handler: JobEventHandler) => {
|
|
14
|
+
this.emitter.on(type, handler);
|
|
15
|
+
},
|
|
16
|
+
off: (type: string, handler: JobEventHandler) => {
|
|
17
|
+
this.emitter.off(type, handler);
|
|
18
|
+
},
|
|
19
|
+
emit: (type: string) => {
|
|
20
|
+
return new Promise<void>((resolve, reject) => {
|
|
21
|
+
this.emitter.emit(type, {
|
|
22
|
+
resolve: () => resolve(),
|
|
23
|
+
reject: (reason?: string | Error) => {
|
|
24
|
+
if (typeof reason === 'string' || reason instanceof Error) {
|
|
25
|
+
reject(reason);
|
|
26
|
+
} else {
|
|
27
|
+
reject();
|
|
28
|
+
}
|
|
29
|
+
},
|
|
30
|
+
});
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
private emitter = mitt<any>();
|
|
36
|
+
|
|
37
|
+
on = (type: string, handler: EventHandler) => {
|
|
38
|
+
this.emitter.on(type, handler);
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
off = (type: string, handler: EventHandler) => {
|
|
42
|
+
this.emitter.off(type, handler);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
emit = (type: string) => {
|
|
46
|
+
this.emitter.emit(type);
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export function useEventBus() {
|
|
51
|
+
return useRef(new EventBus()).current;
|
|
52
|
+
}
|
package/src/globals.ts
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
|
2
|
+
import { ExposedDependencies } from './common';
|
|
3
|
+
|
|
4
|
+
declare global {
|
|
5
|
+
export const EXPOSED_DEPENDENCIES: ExposedDependencies | undefined;
|
|
6
|
+
export const WEB_COMPONENT_NAME: string | undefined;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
function get<T>(fetch: () => T) {
|
|
10
|
+
try {
|
|
11
|
+
return fetch();
|
|
12
|
+
} catch {
|
|
13
|
+
return undefined;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
const _EXPOSED_DEPENDENCIES = get(() => {
|
|
18
|
+
return EXPOSED_DEPENDENCIES;
|
|
19
|
+
});
|
|
20
|
+
export { _EXPOSED_DEPENDENCIES as EXPOSED_DEPENDENCIES };
|
|
21
|
+
|
|
22
|
+
const _WEB_COMPONENT_NAME = get(() => {
|
|
23
|
+
return WEB_COMPONENT_NAME;
|
|
24
|
+
});
|
|
25
|
+
export { _WEB_COMPONENT_NAME as WEB_COMPONENT_NAME };
|
package/src/index.ts
CHANGED
package/src/loader.tsx
CHANGED
|
@@ -19,18 +19,16 @@ import { Log } from '@servicetitan/log-service';
|
|
|
19
19
|
import { useOptionalDependencies } from '@servicetitan/react-ioc';
|
|
20
20
|
|
|
21
21
|
import {
|
|
22
|
+
ExposedDependencies,
|
|
23
|
+
EXPOSED_DEPENDENCIES_TOKEN,
|
|
22
24
|
useCancelation,
|
|
23
|
-
EventBus,
|
|
24
|
-
useEventBus,
|
|
25
25
|
getJson,
|
|
26
26
|
isCompatible,
|
|
27
27
|
IWebComponent,
|
|
28
28
|
} from './common';
|
|
29
|
+
import { EventBus, useEventBus } from './event-bus';
|
|
29
30
|
import { HistoryManager } from './history-manager';
|
|
30
|
-
|
|
31
|
-
declare global {
|
|
32
|
-
export const EXPOSED_DEPENDENCIES: Record<string, { version: string; variable: string }>;
|
|
33
|
-
}
|
|
31
|
+
import { EXPOSED_DEPENDENCIES } from './globals';
|
|
34
32
|
|
|
35
33
|
type Awaited<T> = T extends PromiseLike<infer U> ? Awaited<U> : T;
|
|
36
34
|
|
|
@@ -44,7 +42,11 @@ function omitPackageVersion(packageUrl: string) {
|
|
|
44
42
|
return packageUrl;
|
|
45
43
|
}
|
|
46
44
|
|
|
47
|
-
async function getBundleInfo(
|
|
45
|
+
async function getBundleInfo(
|
|
46
|
+
packageUrl: string,
|
|
47
|
+
exposedDependencies: ExposedDependencies = {},
|
|
48
|
+
signal?: AbortSignal
|
|
49
|
+
) {
|
|
48
50
|
const {
|
|
49
51
|
data: { dependencies, version },
|
|
50
52
|
headers,
|
|
@@ -57,7 +59,7 @@ async function getBundleInfo(packageUrl: string, signal?: AbortSignal) {
|
|
|
57
59
|
|
|
58
60
|
const { data: metadata } = await getJson(`${exactPackageUrl}/dist/metadata.json`, { signal });
|
|
59
61
|
|
|
60
|
-
const mismatch = Object.entries(
|
|
62
|
+
const mismatch = Object.entries(exposedDependencies).reduce(
|
|
61
63
|
(result, [dependency, { version: hostVersion }]) => {
|
|
62
64
|
const packageVersion = dependencies[dependency];
|
|
63
65
|
|
|
@@ -73,9 +75,9 @@ async function getBundleInfo(packageUrl: string, signal?: AbortSignal) {
|
|
|
73
75
|
for (const [dependency, variable] of Object.entries(metadata.sharedDependencies)) {
|
|
74
76
|
const packageVersion = dependencies[dependency];
|
|
75
77
|
|
|
76
|
-
if (!
|
|
78
|
+
if (!exposedDependencies[dependency]) {
|
|
77
79
|
mismatch[dependency] = { host: 'missing', package: packageVersion };
|
|
78
|
-
} else if (
|
|
80
|
+
} else if (exposedDependencies[dependency].variable !== variable) {
|
|
79
81
|
mismatch[dependency] = { host: 'wrong global variable', package: packageVersion };
|
|
80
82
|
}
|
|
81
83
|
}
|
|
@@ -114,7 +116,8 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
114
116
|
({ src, data = {}, basename, loadingFallback, errorFallback, className }, ref) => {
|
|
115
117
|
const [isLoading, setIsLoading] = useState(true);
|
|
116
118
|
|
|
117
|
-
const [logService, historyManager
|
|
119
|
+
const [logService, historyManager, exposedDependencies = EXPOSED_DEPENDENCIES] =
|
|
120
|
+
useOptionalDependencies(Log, HistoryManager, EXPOSED_DEPENDENCIES_TOKEN);
|
|
118
121
|
|
|
119
122
|
const dataAttrs = useMemo(
|
|
120
123
|
() =>
|
|
@@ -151,7 +154,11 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
151
154
|
lazy<() => JSX.Element | null>(async () => {
|
|
152
155
|
let bundleInfo: Awaited<ReturnType<typeof getBundleInfo>>;
|
|
153
156
|
try {
|
|
154
|
-
bundleInfo = await getBundleInfo(
|
|
157
|
+
bundleInfo = await getBundleInfo(
|
|
158
|
+
src,
|
|
159
|
+
exposedDependencies,
|
|
160
|
+
cancelation.signal
|
|
161
|
+
);
|
|
155
162
|
} catch (e) {
|
|
156
163
|
if (cancelation.signal.aborted) {
|
|
157
164
|
return {
|
|
@@ -169,7 +176,10 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
169
176
|
category: 'MicroFrontends.DependenciesMismatch',
|
|
170
177
|
message:
|
|
171
178
|
'Some of the package dependencies have incompatible versions.',
|
|
172
|
-
data: {
|
|
179
|
+
data: {
|
|
180
|
+
package: src,
|
|
181
|
+
dependencies: JSON.stringify(mismatch),
|
|
182
|
+
},
|
|
173
183
|
});
|
|
174
184
|
}
|
|
175
185
|
|
|
@@ -204,6 +214,7 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
204
214
|
webComponent?.provide({
|
|
205
215
|
logService,
|
|
206
216
|
historyManager,
|
|
217
|
+
exposedDependencies,
|
|
207
218
|
eventBus,
|
|
208
219
|
basename,
|
|
209
220
|
onReady: () => {
|
|
@@ -232,7 +243,7 @@ export const Loader = forwardRef<LoaderRef, LoaderProps>(
|
|
|
232
243
|
});
|
|
233
244
|
|
|
234
245
|
return Component;
|
|
235
|
-
}, [src, className, logService, historyManager, basename, dataAttrs]);
|
|
246
|
+
}, [src, className, logService, historyManager, exposedDependencies, basename, dataAttrs]);
|
|
236
247
|
|
|
237
248
|
const LoadingFallback = useMemo(
|
|
238
249
|
() => () => {
|
package/src/register.tsx
CHANGED
|
@@ -2,23 +2,21 @@ import { FC, ComponentType } from 'react';
|
|
|
2
2
|
import { render, unmountComponentAtNode } from 'react-dom';
|
|
3
3
|
|
|
4
4
|
import { Log } from '@servicetitan/log-service';
|
|
5
|
-
import { DefaultPortalContext } from '@servicetitan/design-system';
|
|
5
|
+
import { DefaultPortalContext, TablePopupPropsContext } from '@servicetitan/design-system';
|
|
6
6
|
import { Provider } from '@servicetitan/react-ioc';
|
|
7
7
|
|
|
8
|
-
import { OptionalValueProvider } from './optional-value-provider';
|
|
9
8
|
import {
|
|
9
|
+
ExposedDependencies,
|
|
10
|
+
EXPOSED_DEPENDENCIES_TOKEN,
|
|
10
11
|
Entries,
|
|
11
|
-
EventBus,
|
|
12
12
|
IWebComponent,
|
|
13
13
|
BASENAME_TOKEN,
|
|
14
14
|
IS_WEB_COMPONENT_TOKEN,
|
|
15
15
|
RENDER_ROOT_TOKEN,
|
|
16
16
|
} from './common';
|
|
17
|
+
import { EventBus } from './event-bus';
|
|
17
18
|
import { HistoryManager } from './history-manager';
|
|
18
|
-
|
|
19
|
-
declare global {
|
|
20
|
-
export const WEB_COMPONENT_NAME: string;
|
|
21
|
-
}
|
|
19
|
+
import { WEB_COMPONENT_NAME } from './globals';
|
|
22
20
|
|
|
23
21
|
function createLink(url: string, onLoad: () => void) {
|
|
24
22
|
const element = document.createElement('link');
|
|
@@ -58,6 +56,7 @@ export function register(Component: ComponentType, light: boolean) {
|
|
|
58
56
|
|
|
59
57
|
private logService?: Log;
|
|
60
58
|
private historyManager?: HistoryManager;
|
|
59
|
+
private exposedDependencies?: ExposedDependencies;
|
|
61
60
|
private eventBus?: EventBus;
|
|
62
61
|
private basename?: string;
|
|
63
62
|
private onReady?: () => void;
|
|
@@ -118,21 +117,27 @@ export function register(Component: ComponentType, light: boolean) {
|
|
|
118
117
|
]}
|
|
119
118
|
>
|
|
120
119
|
<DefaultPortalContext.Provider value={this.portal as unknown as HTMLElement}>
|
|
121
|
-
<
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
120
|
+
<TablePopupPropsContext.Provider
|
|
121
|
+
value={props => ({
|
|
122
|
+
...props,
|
|
123
|
+
appendTo: this.root as unknown as HTMLElement,
|
|
124
|
+
})}
|
|
125
|
+
>
|
|
126
|
+
<Provider
|
|
127
|
+
singletons={[
|
|
128
|
+
{ provide: Log, useValue: this.logService },
|
|
129
|
+
{ provide: HistoryManager, useValue: this.historyManager },
|
|
130
|
+
{
|
|
131
|
+
provide: EXPOSED_DEPENDENCIES_TOKEN,
|
|
132
|
+
useValue: this.exposedDependencies,
|
|
133
|
+
},
|
|
134
|
+
{ provide: EventBus, useValue: this.eventBus },
|
|
135
|
+
{ provide: BASENAME_TOKEN, useValue: this.basename },
|
|
136
|
+
].filter(({ useValue }) => useValue !== undefined)}
|
|
125
137
|
>
|
|
126
|
-
<
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
useValue={this.basename}
|
|
130
|
-
>
|
|
131
|
-
<Component {...this.dataset} />
|
|
132
|
-
</OptionalValueProvider>
|
|
133
|
-
</OptionalValueProvider>
|
|
134
|
-
</OptionalValueProvider>
|
|
135
|
-
</OptionalValueProvider>
|
|
138
|
+
<Component {...this.dataset} />
|
|
139
|
+
</Provider>
|
|
140
|
+
</TablePopupPropsContext.Provider>
|
|
136
141
|
</DefaultPortalContext.Provider>
|
|
137
142
|
</Provider>,
|
|
138
143
|
this.root,
|
|
@@ -141,5 +146,11 @@ export function register(Component: ComponentType, light: boolean) {
|
|
|
141
146
|
};
|
|
142
147
|
}
|
|
143
148
|
|
|
149
|
+
if (!WEB_COMPONENT_NAME) {
|
|
150
|
+
// eslint-disable-next-line no-console
|
|
151
|
+
console.error('"WEB_COMPONENT_NAME" is not defined!');
|
|
152
|
+
return;
|
|
153
|
+
}
|
|
154
|
+
|
|
144
155
|
window.customElements.define(WEB_COMPONENT_NAME, WebComponent);
|
|
145
156
|
}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { SymbolToken, interfaces } from '@servicetitan/react-ioc';
|
|
3
|
-
export interface OptionalValueProviderProps<T> {
|
|
4
|
-
provide: SymbolToken<T> | interfaces.Abstract<T>;
|
|
5
|
-
useValue: T | undefined;
|
|
6
|
-
children: JSX.Element;
|
|
7
|
-
}
|
|
8
|
-
export declare const OptionalValueProvider: <T extends unknown>({ provide, useValue, children, }: OptionalValueProviderProps<T>) => JSX.Element;
|
|
9
|
-
//# sourceMappingURL=optional-value-provider.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optional-value-provider.d.ts","sourceRoot":"","sources":["../src/optional-value-provider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAY,MAAM,yBAAyB,CAAC;AAE5E,MAAM,WAAW,0BAA0B,CAAC,CAAC;IACzC,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjD,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IACxB,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC;CACzB;AAED,eAAO,MAAM,qBAAqB,qGAUjC,CAAC"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.OptionalValueProvider = void 0;
|
|
4
|
-
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
5
|
-
const react_ioc_1 = require("@servicetitan/react-ioc");
|
|
6
|
-
const OptionalValueProvider = ({ provide, useValue, children, }) => {
|
|
7
|
-
if (useValue) {
|
|
8
|
-
return (0, jsx_runtime_1.jsx)(react_ioc_1.Provider, Object.assign({ singletons: [{ provide, useValue }] }, { children: children }), void 0);
|
|
9
|
-
}
|
|
10
|
-
return children;
|
|
11
|
-
};
|
|
12
|
-
exports.OptionalValueProvider = OptionalValueProvider;
|
|
13
|
-
//# sourceMappingURL=optional-value-provider.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"optional-value-provider.js","sourceRoot":"","sources":["../src/optional-value-provider.tsx"],"names":[],"mappings":";;;;AAAA,uDAA4E;AAQrE,MAAM,qBAAqB,GAAG,CAAgB,EACjD,OAAO,EACP,QAAQ,EACR,QAAQ,GACoB,EAAE,EAAE;IAChC,IAAI,QAAQ,EAAE;QACV,OAAO,uBAAC,oBAAQ,kBAAC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,gBAAG,QAAQ,YAAY,CAAC;KAC/E;IAED,OAAO,QAAQ,CAAC;AACpB,CAAC,CAAC;AAVW,QAAA,qBAAqB,yBAUhC"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { SymbolToken, interfaces, Provider } from '@servicetitan/react-ioc';
|
|
2
|
-
|
|
3
|
-
export interface OptionalValueProviderProps<T> {
|
|
4
|
-
provide: SymbolToken<T> | interfaces.Abstract<T>;
|
|
5
|
-
useValue: T | undefined;
|
|
6
|
-
children: JSX.Element;
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export const OptionalValueProvider = <T extends any>({
|
|
10
|
-
provide,
|
|
11
|
-
useValue,
|
|
12
|
-
children,
|
|
13
|
-
}: OptionalValueProviderProps<T>) => {
|
|
14
|
-
if (useValue) {
|
|
15
|
-
return <Provider singletons={[{ provide, useValue }]}>{children}</Provider>;
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return children;
|
|
19
|
-
};
|