@servicetitan/web-components 31.3.2 → 31.4.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.
@@ -1,9 +1,11 @@
1
1
  import type { Entries } from './common';
2
+ import type { EventBus } from './event-bus';
2
3
  import { Serializable } from './types';
3
- type HeadlessCallbackArgs<T> = Pick<Entries, 'ldService' | 'logService' | 'eventBus'> & {
4
- mfeData?: Serializable<T>;
4
+ type HeadlessCallbackArgs<TMfeData, TEventBus extends EventBus = EventBus> = Pick<Entries, 'ldService' | 'logService'> & {
5
+ eventBus?: TEventBus;
6
+ mfeData?: Serializable<TMfeData>;
5
7
  };
6
- export type HeadlessCallback<T = undefined> = (params: HeadlessCallbackArgs<T>) => void;
7
- export declare function registerHeadless(connectedCallback?: HeadlessCallback<unknown>, disconnectedCallback?: HeadlessCallback<unknown>): void;
8
+ export type HeadlessCallback<TMfeData = any, TEventBus extends EventBus = EventBus> = (params: HeadlessCallbackArgs<TMfeData, TEventBus>) => void;
9
+ export declare function registerHeadless(connectedCallback?: HeadlessCallback, disconnectedCallback?: HeadlessCallback): void;
8
10
  export {};
9
11
  //# sourceMappingURL=register-headless.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"register-headless.d.ts","sourceRoot":"","sources":["../src/register-headless.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AAGvD,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,KAAK,oBAAoB,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,YAAY,GAAG,UAAU,CAAC,GAAG;IACpF,OAAO,CAAC,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,SAAS,IAAI,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;AAExF,wBAAgB,gBAAgB,CAC5B,iBAAiB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,EAC7C,oBAAoB,CAAC,EAAE,gBAAgB,CAAC,OAAO,CAAC,QAmEnD"}
1
+ {"version":3,"file":"register-headless.d.ts","sourceRoot":"","sources":["../src/register-headless.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,UAAU,CAAC;AACvD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAE5C,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAEvC,KAAK,oBAAoB,CAAC,QAAQ,EAAE,SAAS,SAAS,QAAQ,GAAG,QAAQ,IAAI,IAAI,CAC7E,OAAO,EACP,WAAW,GAAG,YAAY,CAC7B,GAAG;IACA,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,OAAO,CAAC,EAAE,YAAY,CAAC,QAAQ,CAAC,CAAC;CACpC,CAAC;AACF,MAAM,MAAM,gBAAgB,CAAC,QAAQ,GAAG,GAAG,EAAE,SAAS,SAAS,QAAQ,GAAG,QAAQ,IAAI,CAClF,MAAM,EAAE,oBAAoB,CAAC,QAAQ,EAAE,SAAS,CAAC,KAChD,IAAI,CAAC;AAEV,wBAAgB,gBAAgB,CAC5B,iBAAiB,CAAC,EAAE,gBAAgB,EACpC,oBAAoB,CAAC,EAAE,gBAAgB,QAmE1C"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/register-headless.ts"],"sourcesContent":["import type { LDService } from '@servicetitan/launchdarkly-service';\nimport type { Entries, IWebComponent } from './common';\nimport type { EventBus } from './event-bus';\nimport type { Log } from '@servicetitan/log-service';\nimport { Serializable } from './types';\n\ntype HeadlessCallbackArgs<T> = Pick<Entries, 'ldService' | 'logService' | 'eventBus'> & {\n mfeData?: Serializable<T>;\n};\nexport type HeadlessCallback<T = undefined> = (params: HeadlessCallbackArgs<T>) => void;\n\nexport function registerHeadless(\n connectedCallback?: HeadlessCallback<unknown>,\n disconnectedCallback?: HeadlessCallback<unknown>\n) {\n class Headless extends HTMLElement implements IWebComponent {\n private ldService?: LDService;\n private logService?: Log;\n private eventBus?: EventBus;\n private readonly readyPromise: Promise<void>;\n private resolveReadyPromise!: () => void;\n\n constructor() {\n super();\n this.readyPromise = new Promise(resolve => {\n this.resolveReadyPromise = resolve;\n });\n }\n\n provide = (entries: Entries) => {\n this.ldService = entries.ldService;\n this.logService = entries.logService;\n this.eventBus = entries.eventBus;\n this.resolveReadyPromise();\n };\n\n async connectedCallback() {\n await this.readyPromise;\n connectedCallback?.({\n ...this.services,\n mfeData: this.mfeData,\n });\n }\n\n async disconnectedCallback() {\n await this.readyPromise;\n disconnectedCallback?.({\n ...this.services,\n mfeData: this.mfeData,\n });\n }\n\n connectedMoveCallback() {\n /*\n * Defining connectedMoveCallback prevents connectedCallback or disconnectedCallback\n * from running when the element is moved in the DOM\n * https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#custom_element_lifecycle_callbacks\n */\n }\n\n private get services() {\n return {\n ldService: this.ldService,\n logService: this.logService,\n eventBus: this.eventBus,\n };\n }\n\n private get mfeData() {\n return JSON.parse(this.dataset.mfeData ?? '{}');\n }\n }\n\n if (!WEB_COMPONENT_NAME) {\n // eslint-disable-next-line no-console\n console.error('\"WEB_COMPONENT_NAME\" is not defined!');\n return;\n }\n\n window.customElements.define(`headless-${WEB_COMPONENT_NAME}`, Headless);\n}\n"],"names":["registerHeadless","connectedCallback","disconnectedCallback","Headless","HTMLElement","readyPromise","services","mfeData","connectedMoveCallback","ldService","logService","eventBus","JSON","parse","dataset","constructor","resolveReadyPromise","provide","entries","Promise","resolve","WEB_COMPONENT_NAME","console","error","window","customElements","define"],"mappings":";;;;;;;;;;;;;AAWA,OAAO,SAASA,iBACZC,iBAA6C,EAC7CC,oBAAgD;IAEhD,MAAMC,iBAAiBC;QAqBnB,MAAMH,oBAAoB;YACtB,MAAM,IAAI,CAACI,YAAY;YACvBJ,8BAAAA,wCAAAA,kBAAoB;gBAChB,GAAG,IAAI,CAACK,QAAQ;gBAChBC,SAAS,IAAI,CAACA,OAAO;YACzB;QACJ;QAEA,MAAML,uBAAuB;YACzB,MAAM,IAAI,CAACG,YAAY;YACvBH,iCAAAA,2CAAAA,qBAAuB;gBACnB,GAAG,IAAI,CAACI,QAAQ;gBAChBC,SAAS,IAAI,CAACA,OAAO;YACzB;QACJ;QAEAC,wBAAwB;QACpB;;;;aAIC,GACL;QAEA,IAAYF,WAAW;YACnB,OAAO;gBACHG,WAAW,IAAI,CAACA,SAAS;gBACzBC,YAAY,IAAI,CAACA,UAAU;gBAC3BC,UAAU,IAAI,CAACA,QAAQ;YAC3B;QACJ;QAEA,IAAYJ,UAAU;gBACA;YAAlB,OAAOK,KAAKC,KAAK,CAAC,CAAA,wBAAA,IAAI,CAACC,OAAO,CAACP,OAAO,cAApB,mCAAA,wBAAwB;QAC9C;QAhDAQ,aAAc;YACV,KAAK,IAPT,uBAAQN,aAAR,KAAA,IACA,uBAAQC,cAAR,KAAA,IACA,uBAAQC,YAAR,KAAA,IACA,uBAAiBN,gBAAjB,KAAA,IACA,uBAAQW,uBAAR,KAAA,IASAC,uBAAAA,WAAU,CAACC;gBACP,IAAI,CAACT,SAAS,GAAGS,QAAQT,SAAS;gBAClC,IAAI,CAACC,UAAU,GAAGQ,QAAQR,UAAU;gBACpC,IAAI,CAACC,QAAQ,GAAGO,QAAQP,QAAQ;gBAChC,IAAI,CAACK,mBAAmB;YAC5B;YAVI,IAAI,CAACX,YAAY,GAAG,IAAIc,QAAQC,CAAAA;gBAC5B,IAAI,CAACJ,mBAAmB,GAAGI;YAC/B;QACJ;IA4CJ;IAEA,IAAI,CAACC,oBAAoB;QACrB,sCAAsC;QACtCC,QAAQC,KAAK,CAAC;QACd;IACJ;IAEAC,OAAOC,cAAc,CAACC,MAAM,CAAC,CAAC,SAAS,EAAEL,oBAAoB,EAAElB;AACnE"}
1
+ {"version":3,"sources":["../src/register-headless.ts"],"sourcesContent":["import type { LDService } from '@servicetitan/launchdarkly-service';\nimport type { Entries, IWebComponent } from './common';\nimport type { EventBus } from './event-bus';\nimport type { Log } from '@servicetitan/log-service';\nimport { Serializable } from './types';\n\ntype HeadlessCallbackArgs<TMfeData, TEventBus extends EventBus = EventBus> = Pick<\n Entries,\n 'ldService' | 'logService'\n> & {\n eventBus?: TEventBus;\n mfeData?: Serializable<TMfeData>;\n};\nexport type HeadlessCallback<TMfeData = any, TEventBus extends EventBus = EventBus> = (\n params: HeadlessCallbackArgs<TMfeData, TEventBus>\n) => void;\n\nexport function registerHeadless(\n connectedCallback?: HeadlessCallback,\n disconnectedCallback?: HeadlessCallback\n) {\n class Headless extends HTMLElement implements IWebComponent {\n private ldService?: LDService;\n private logService?: Log;\n private eventBus?: EventBus;\n private readonly readyPromise: Promise<void>;\n private resolveReadyPromise!: () => void;\n\n constructor() {\n super();\n this.readyPromise = new Promise(resolve => {\n this.resolveReadyPromise = resolve;\n });\n }\n\n provide = (entries: Entries) => {\n this.ldService = entries.ldService;\n this.logService = entries.logService;\n this.eventBus = entries.eventBus;\n this.resolveReadyPromise();\n };\n\n async connectedCallback() {\n await this.readyPromise;\n connectedCallback?.({\n ...this.services,\n mfeData: this.mfeData,\n });\n }\n\n async disconnectedCallback() {\n await this.readyPromise;\n disconnectedCallback?.({\n ...this.services,\n mfeData: this.mfeData,\n });\n }\n\n connectedMoveCallback() {\n /*\n * Defining connectedMoveCallback prevents connectedCallback or disconnectedCallback\n * from running when the element is moved in the DOM\n * https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#custom_element_lifecycle_callbacks\n */\n }\n\n private get services() {\n return {\n ldService: this.ldService,\n logService: this.logService,\n eventBus: this.eventBus,\n };\n }\n\n private get mfeData() {\n return JSON.parse(this.dataset.mfeData ?? '{}');\n }\n }\n\n if (!WEB_COMPONENT_NAME) {\n // eslint-disable-next-line no-console\n console.error('\"WEB_COMPONENT_NAME\" is not defined!');\n return;\n }\n\n window.customElements.define(`headless-${WEB_COMPONENT_NAME}`, Headless);\n}\n"],"names":["registerHeadless","connectedCallback","disconnectedCallback","Headless","HTMLElement","readyPromise","services","mfeData","connectedMoveCallback","ldService","logService","eventBus","JSON","parse","dataset","constructor","resolveReadyPromise","provide","entries","Promise","resolve","WEB_COMPONENT_NAME","console","error","window","customElements","define"],"mappings":";;;;;;;;;;;;;AAiBA,OAAO,SAASA,iBACZC,iBAAoC,EACpCC,oBAAuC;IAEvC,MAAMC,iBAAiBC;QAqBnB,MAAMH,oBAAoB;YACtB,MAAM,IAAI,CAACI,YAAY;YACvBJ,8BAAAA,wCAAAA,kBAAoB;gBAChB,GAAG,IAAI,CAACK,QAAQ;gBAChBC,SAAS,IAAI,CAACA,OAAO;YACzB;QACJ;QAEA,MAAML,uBAAuB;YACzB,MAAM,IAAI,CAACG,YAAY;YACvBH,iCAAAA,2CAAAA,qBAAuB;gBACnB,GAAG,IAAI,CAACI,QAAQ;gBAChBC,SAAS,IAAI,CAACA,OAAO;YACzB;QACJ;QAEAC,wBAAwB;QACpB;;;;aAIC,GACL;QAEA,IAAYF,WAAW;YACnB,OAAO;gBACHG,WAAW,IAAI,CAACA,SAAS;gBACzBC,YAAY,IAAI,CAACA,UAAU;gBAC3BC,UAAU,IAAI,CAACA,QAAQ;YAC3B;QACJ;QAEA,IAAYJ,UAAU;gBACA;YAAlB,OAAOK,KAAKC,KAAK,CAAC,CAAA,wBAAA,IAAI,CAACC,OAAO,CAACP,OAAO,cAApB,mCAAA,wBAAwB;QAC9C;QAhDAQ,aAAc;YACV,KAAK,IAPT,uBAAQN,aAAR,KAAA,IACA,uBAAQC,cAAR,KAAA,IACA,uBAAQC,YAAR,KAAA,IACA,uBAAiBN,gBAAjB,KAAA,IACA,uBAAQW,uBAAR,KAAA,IASAC,uBAAAA,WAAU,CAACC;gBACP,IAAI,CAACT,SAAS,GAAGS,QAAQT,SAAS;gBAClC,IAAI,CAACC,UAAU,GAAGQ,QAAQR,UAAU;gBACpC,IAAI,CAACC,QAAQ,GAAGO,QAAQP,QAAQ;gBAChC,IAAI,CAACK,mBAAmB;YAC5B;YAVI,IAAI,CAACX,YAAY,GAAG,IAAIc,QAAQC,CAAAA;gBAC5B,IAAI,CAACJ,mBAAmB,GAAGI;YAC/B;QACJ;IA4CJ;IAEA,IAAI,CAACC,oBAAoB;QACrB,sCAAsC;QACtCC,QAAQC,KAAK,CAAC;QACd;IACJ;IAEAC,OAAOC,cAAc,CAACC,MAAM,CAAC,CAAC,SAAS,EAAEL,oBAAoB,EAAElB;AACnE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@servicetitan/web-components",
3
- "version": "31.3.2",
3
+ "version": "31.4.0",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -15,17 +15,17 @@
15
15
  "src"
16
16
  ],
17
17
  "dependencies": {
18
- "@servicetitan/error-boundary": "31.3.2",
18
+ "@servicetitan/error-boundary": "31.4.0",
19
19
  "lodash.get": "~4.4.2",
20
20
  "mitt": "~3.0.1",
21
21
  "semver": "~7.7.2"
22
22
  },
23
23
  "devDependencies": {
24
- "@servicetitan/anvil2": "^1.39.0",
24
+ "@servicetitan/anvil2": "^1.40.3",
25
25
  "@servicetitan/design-system": "~14.5.3",
26
- "@servicetitan/launchdarkly-service": "31.3.2",
27
- "@servicetitan/log-service": "31.3.2",
28
- "@servicetitan/react-ioc": "31.3.2",
26
+ "@servicetitan/launchdarkly-service": "31.4.0",
27
+ "@servicetitan/log-service": "31.4.0",
28
+ "@servicetitan/react-ioc": "31.4.0",
29
29
  "@testing-library/dom": "^10.4.0",
30
30
  "@testing-library/jest-dom": "^6.6.3",
31
31
  "@testing-library/react": "^16.3.0",
@@ -41,11 +41,11 @@
41
41
  "shadow-dom-testing-library": "^1.12.0"
42
42
  },
43
43
  "peerDependencies": {
44
- "@servicetitan/anvil2": ">=1.39.0",
44
+ "@servicetitan/anvil2": ">=1.40.3",
45
45
  "@servicetitan/design-system": ">=14.5.3",
46
- "@servicetitan/launchdarkly-service": "31.3.2",
47
- "@servicetitan/log-service": "31.3.2",
48
- "@servicetitan/react-ioc": "31.3.2",
46
+ "@servicetitan/launchdarkly-service": "31.4.0",
47
+ "@servicetitan/log-service": "31.4.0",
48
+ "@servicetitan/react-ioc": "31.4.0",
49
49
  "history": "~4.10.1",
50
50
  "react": ">=17.0.2",
51
51
  "react-dom": ">=17.0.2"
@@ -67,5 +67,5 @@
67
67
  "cli": {
68
68
  "webpack": false
69
69
  },
70
- "gitHead": "c9909c13f221700fe9d3adb043d2faa26472e921"
70
+ "gitHead": "21360511d426098c7231809ca33b13ecd11f16dd"
71
71
  }
@@ -4,14 +4,20 @@ import type { EventBus } from './event-bus';
4
4
  import type { Log } from '@servicetitan/log-service';
5
5
  import { Serializable } from './types';
6
6
 
7
- type HeadlessCallbackArgs<T> = Pick<Entries, 'ldService' | 'logService' | 'eventBus'> & {
8
- mfeData?: Serializable<T>;
7
+ type HeadlessCallbackArgs<TMfeData, TEventBus extends EventBus = EventBus> = Pick<
8
+ Entries,
9
+ 'ldService' | 'logService'
10
+ > & {
11
+ eventBus?: TEventBus;
12
+ mfeData?: Serializable<TMfeData>;
9
13
  };
10
- export type HeadlessCallback<T = undefined> = (params: HeadlessCallbackArgs<T>) => void;
14
+ export type HeadlessCallback<TMfeData = any, TEventBus extends EventBus = EventBus> = (
15
+ params: HeadlessCallbackArgs<TMfeData, TEventBus>
16
+ ) => void;
11
17
 
12
18
  export function registerHeadless(
13
- connectedCallback?: HeadlessCallback<unknown>,
14
- disconnectedCallback?: HeadlessCallback<unknown>
19
+ connectedCallback?: HeadlessCallback,
20
+ disconnectedCallback?: HeadlessCallback
15
21
  ) {
16
22
  class Headless extends HTMLElement implements IWebComponent {
17
23
  private ldService?: LDService;