@webiny/website-builder-sdk 0.0.0-unstable.e53eceafb5 → 0.0.0-unstable.e6f0dc8ca7

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.
Files changed (183) hide show
  1. package/BindingsApi.d.ts +4 -4
  2. package/BindingsApi.js +3 -3
  3. package/BindingsApi.js.map +1 -1
  4. package/BindingsProcessor.d.ts +1 -1
  5. package/BindingsProcessor.js.map +1 -1
  6. package/BindingsProcessor.test.js +2 -1
  7. package/BindingsProcessor.test.js.map +1 -1
  8. package/BindingsResolver.d.ts +2 -2
  9. package/BindingsResolver.js +3 -6
  10. package/BindingsResolver.js.map +1 -1
  11. package/BindingsResolver.test.js +4 -3
  12. package/BindingsResolver.test.js.map +1 -1
  13. package/ComponentInputTraverser.d.ts +1 -1
  14. package/ComponentInputTraverser.js.map +1 -1
  15. package/ComponentManifestToAstConverter.d.ts +1 -1
  16. package/ComponentManifestToAstConverter.js.map +1 -1
  17. package/ComponentRegistry.js +30 -0
  18. package/ComponentRegistry.js.map +1 -1
  19. package/ComponentResolver.d.ts +2 -2
  20. package/ComponentResolver.js +3 -3
  21. package/ComponentResolver.js.map +1 -1
  22. package/ConstraintEvaluator.d.ts +36 -0
  23. package/ConstraintEvaluator.js +395 -0
  24. package/ConstraintEvaluator.js.map +1 -0
  25. package/ConstraintEvaluator.test.d.ts +1 -0
  26. package/ConstraintEvaluator.test.js +1456 -0
  27. package/ConstraintEvaluator.test.js.map +1 -0
  28. package/ContentSdk.d.ts +13 -7
  29. package/ContentSdk.js +26 -10
  30. package/ContentSdk.js.map +1 -1
  31. package/DocumentStore.d.ts +3 -3
  32. package/DocumentStore.js +1 -1
  33. package/DocumentStore.js.map +1 -1
  34. package/DocumentStoreManager.d.ts +2 -2
  35. package/DocumentStoreManager.js +1 -1
  36. package/DocumentStoreManager.js.map +1 -1
  37. package/EditingSdk.d.ts +4 -4
  38. package/EditingSdk.js +12 -15
  39. package/EditingSdk.js.map +1 -1
  40. package/ElementFactory.d.ts +5 -6
  41. package/ElementFactory.js +25 -16
  42. package/ElementFactory.js.map +1 -1
  43. package/ElementFactory.test.d.ts +1 -0
  44. package/ElementFactory.test.js +280 -0
  45. package/ElementFactory.test.js.map +1 -0
  46. package/HashObject.js +14 -0
  47. package/HashObject.js.map +1 -1
  48. package/HotkeyManager.js +1 -1
  49. package/HotkeyManager.js.map +1 -1
  50. package/IBindingsUpdater.d.ts +2 -2
  51. package/IBindingsUpdater.js.map +1 -1
  52. package/IRedirects.d.ts +5 -0
  53. package/IRedirects.js +3 -0
  54. package/IRedirects.js.map +1 -0
  55. package/InheritanceProcessor.d.ts +4 -4
  56. package/InheritanceProcessor.js.map +1 -1
  57. package/InheritanceProcessor.test.js +2 -1
  58. package/InheritanceProcessor.test.js.map +1 -1
  59. package/InheritedValueResolver.d.ts +1 -1
  60. package/InheritedValueResolver.js.map +1 -1
  61. package/InputBindingsProcessor.d.ts +4 -4
  62. package/InputBindingsProcessor.js +29 -11
  63. package/InputBindingsProcessor.js.map +1 -1
  64. package/InputsBindingsProcessor.test.js +4 -2
  65. package/InputsBindingsProcessor.test.js.map +1 -1
  66. package/InputsUpdater.d.ts +5 -5
  67. package/InputsUpdater.js +2 -2
  68. package/InputsUpdater.js.map +1 -1
  69. package/LiveSdk.d.ts +2 -2
  70. package/LiveSdk.js +1 -1
  71. package/LiveSdk.js.map +1 -1
  72. package/Logger.d.ts +2 -1
  73. package/Logger.js +7 -4
  74. package/Logger.js.map +1 -1
  75. package/NullSdk.d.ts +5 -3
  76. package/NullSdk.js +10 -0
  77. package/NullSdk.js.map +1 -1
  78. package/PreviewDocument.js +1 -1
  79. package/PreviewDocument.js.map +1 -1
  80. package/PreviewSdk.d.ts +2 -2
  81. package/PreviewSdk.js +3 -3
  82. package/PreviewSdk.js.map +1 -1
  83. package/PreviewViewport.d.ts +1 -2
  84. package/PreviewViewport.js +1 -21
  85. package/PreviewViewport.js.map +1 -1
  86. package/README.md +10 -2
  87. package/StylesBindingsProcessor.d.ts +2 -2
  88. package/StylesBindingsProcessor.js +4 -4
  89. package/StylesBindingsProcessor.js.map +1 -1
  90. package/StylesUpdater.d.ts +4 -4
  91. package/StylesUpdater.js +2 -2
  92. package/StylesUpdater.js.map +1 -1
  93. package/Theme.d.ts +1 -1
  94. package/Theme.js +6 -11
  95. package/Theme.js.map +1 -1
  96. package/ViewportManager.d.ts +3 -1
  97. package/ViewportManager.js +8 -1
  98. package/ViewportManager.js.map +1 -1
  99. package/constants.d.ts +1 -0
  100. package/constants.js +2 -1
  101. package/constants.js.map +1 -1
  102. package/createElement.d.ts +1 -1
  103. package/createElement.js.map +1 -1
  104. package/createInput.d.ts +124 -16
  105. package/createInput.js +33 -1
  106. package/createInput.js.map +1 -1
  107. package/createTheme.d.ts +2 -1
  108. package/createTheme.js.map +1 -1
  109. package/dataProviders/ApiClient.d.ts +6 -1
  110. package/dataProviders/ApiClient.js +19 -8
  111. package/dataProviders/ApiClient.js.map +1 -1
  112. package/dataProviders/DefaultDataProvider.d.ts +4 -3
  113. package/dataProviders/DefaultDataProvider.js +32 -6
  114. package/dataProviders/DefaultDataProvider.js.map +1 -1
  115. package/dataProviders/GET_PAGE_BY_ID.d.ts +1 -1
  116. package/dataProviders/GET_PAGE_BY_ID.js +2 -0
  117. package/dataProviders/GET_PAGE_BY_ID.js.map +1 -1
  118. package/dataProviders/GET_PAGE_BY_PATH.d.ts +1 -1
  119. package/dataProviders/GET_PAGE_BY_PATH.js +2 -0
  120. package/dataProviders/GET_PAGE_BY_PATH.js.map +1 -1
  121. package/dataProviders/LIST_PUBLISHED_PAGES.d.ts +1 -1
  122. package/dataProviders/LIST_PUBLISHED_PAGES.js +15 -4
  123. package/dataProviders/LIST_PUBLISHED_PAGES.js.map +1 -1
  124. package/dataProviders/NullDataProvider.d.ts +13 -4
  125. package/dataProviders/NullDataProvider.js +11 -1
  126. package/dataProviders/NullDataProvider.js.map +1 -1
  127. package/dataProviders/RedirectsProvider.d.ts +11 -0
  128. package/dataProviders/RedirectsProvider.js +32 -0
  129. package/dataProviders/RedirectsProvider.js.map +1 -0
  130. package/defaultBreakpoints.d.ts +1 -1
  131. package/defaultBreakpoints.js.map +1 -1
  132. package/documentOperations/$addElementReferenceToParent.d.ts +1 -1
  133. package/documentOperations/$addElementReferenceToParent.js +9 -2
  134. package/documentOperations/$addElementReferenceToParent.js.map +1 -1
  135. package/documentOperations/AddElement.d.ts +1 -1
  136. package/documentOperations/AddElement.js.map +1 -1
  137. package/documentOperations/AddToParent.d.ts +3 -3
  138. package/documentOperations/AddToParent.js.map +1 -1
  139. package/documentOperations/RemoveElement.d.ts +1 -1
  140. package/documentOperations/RemoveElement.js +9 -0
  141. package/documentOperations/RemoveElement.js.map +1 -1
  142. package/documentOperations/SetGlobalInputBinding.d.ts +1 -1
  143. package/documentOperations/SetGlobalInputBinding.js.map +1 -1
  144. package/documentOperations/SetGlobalStyleBinding.d.ts +1 -1
  145. package/documentOperations/SetGlobalStyleBinding.js.map +1 -1
  146. package/documentOperations/SetInputBindingOverride.d.ts +1 -1
  147. package/documentOperations/SetInputBindingOverride.js.map +1 -1
  148. package/documentOperations/SetStyleBindingOverride.d.ts +1 -1
  149. package/documentOperations/SetStyleBindingOverride.js.map +1 -1
  150. package/documentOperations/index.d.ts +8 -8
  151. package/documentOperations/index.js +7 -7
  152. package/documentOperations/index.js.map +1 -1
  153. package/findMatchingAstNode.d.ts +1 -1
  154. package/findMatchingAstNode.js.map +1 -1
  155. package/generateElementId.d.ts +1 -1
  156. package/generateElementId.js +0 -1
  157. package/generateElementId.js.map +1 -1
  158. package/index.d.ts +3 -3
  159. package/index.js +2 -3
  160. package/index.js.map +1 -1
  161. package/jsonPatch.d.ts +1 -1
  162. package/messenger/Messenger.js +6 -6
  163. package/messenger/Messenger.js.map +1 -1
  164. package/package.json +14 -20
  165. package/registerComponentGroup.d.ts +1 -1
  166. package/registerComponentGroup.js +1 -1
  167. package/registerComponentGroup.js.map +1 -1
  168. package/types/WebsiteBuilderTheme.d.ts +52 -42
  169. package/types/WebsiteBuilderTheme.js.map +1 -1
  170. package/types.d.ts +207 -20
  171. package/types.js.map +1 -1
  172. package/lexical/createDefaultLexicalTheme.d.ts +0 -2
  173. package/lexical/createDefaultLexicalTheme.js +0 -84
  174. package/lexical/createDefaultLexicalTheme.js.map +0 -1
  175. package/lexical/createLexicalTheme.d.ts +0 -2
  176. package/lexical/createLexicalTheme.js +0 -7
  177. package/lexical/createLexicalTheme.js.map +0 -1
  178. package/lexical/deepMerge.d.ts +0 -1
  179. package/lexical/deepMerge.js +0 -23
  180. package/lexical/deepMerge.js.map +0 -1
  181. package/types/LexicalEditorTheme.d.ts +0 -2
  182. package/types/LexicalEditorTheme.js +0 -3
  183. package/types/LexicalEditorTheme.js.map +0 -1
@@ -6,7 +6,17 @@ export class NullDataProvider {
6
6
  return Promise.resolve(null);
7
7
  }
8
8
  async listPages() {
9
- return [];
9
+ return {
10
+ data: [],
11
+ meta: {
12
+ hasMoreItems: false,
13
+ totalCount: 0,
14
+ cursor: null
15
+ }
16
+ };
17
+ }
18
+ listRedirects() {
19
+ return Promise.resolve([]);
10
20
  }
11
21
  }
12
22
 
@@ -1 +1 @@
1
- {"version":3,"names":["NullDataProvider","getPageById","Promise","resolve","getPageByPath","listPages"],"sources":["NullDataProvider.ts"],"sourcesContent":["import type { IDataProvider, Page } from \"~/types.js\";\n\nexport class NullDataProvider implements IDataProvider {\n getPageById(): Promise<Page | null> {\n return Promise.resolve(null);\n }\n\n getPageByPath(): Promise<Page | null> {\n return Promise.resolve(null);\n }\n\n public async listPages() {\n return [];\n }\n}\n"],"mappings":"AAEA,OAAO,MAAMA,gBAAgB,CAA0B;EACnDC,WAAWA,CAAA,EAAyB;IAChC,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAChC;EAEAC,aAAaA,CAAA,EAAyB;IAClC,OAAOF,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAChC;EAEA,MAAaE,SAASA,CAAA,EAAG;IACrB,OAAO,EAAE;EACb;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["NullDataProvider","getPageById","Promise","resolve","getPageByPath","listPages","data","meta","hasMoreItems","totalCount","cursor","listRedirects"],"sources":["NullDataProvider.ts"],"sourcesContent":["import type { IDataProvider, PublicRedirect } from \"~/types.js\";\nimport type { PublicPage } from \"~/types.js\";\n\nexport class NullDataProvider implements IDataProvider {\n getPageById(): Promise<PublicPage | null> {\n return Promise.resolve(null);\n }\n\n getPageByPath(): Promise<PublicPage | null> {\n return Promise.resolve(null);\n }\n\n public async listPages() {\n return { data: [], meta: { hasMoreItems: false, totalCount: 0, cursor: null } };\n }\n\n listRedirects(): Promise<PublicRedirect[]> {\n return Promise.resolve([]);\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,gBAAgB,CAA0B;EACnDC,WAAWA,CAAA,EAA+B;IACtC,OAAOC,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAChC;EAEAC,aAAaA,CAAA,EAA+B;IACxC,OAAOF,OAAO,CAACC,OAAO,CAAC,IAAI,CAAC;EAChC;EAEA,MAAaE,SAASA,CAAA,EAAG;IACrB,OAAO;MAAEC,IAAI,EAAE,EAAE;MAAEC,IAAI,EAAE;QAAEC,YAAY,EAAE,KAAK;QAAEC,UAAU,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAK;IAAE,CAAC;EACnF;EAEAC,aAAaA,CAAA,EAA8B;IACvC,OAAOT,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC;EAC9B;AACJ","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import type { ApiClient } from "./ApiClient.js";
2
+ import type { IRedirects } from "../IRedirects.js";
3
+ import type { PublicRedirect } from "../types.js";
4
+ export declare class RedirectsProvider implements IRedirects {
5
+ private redirectsCache;
6
+ private apiClient;
7
+ constructor(apiClient: ApiClient);
8
+ getRedirectByPath(path: string): Promise<PublicRedirect | undefined>;
9
+ getAllRedirects(): Promise<Map<string, PublicRedirect>>;
10
+ private populateCache;
11
+ }
@@ -0,0 +1,32 @@
1
+ export class RedirectsProvider {
2
+ redirectsCache = undefined;
3
+ constructor(apiClient) {
4
+ this.apiClient = apiClient;
5
+ }
6
+ async getRedirectByPath(path) {
7
+ await this.populateCache();
8
+ if (!this.redirectsCache) {
9
+ return undefined;
10
+ }
11
+ return this.redirectsCache.get(path);
12
+ }
13
+ async getAllRedirects() {
14
+ await this.populateCache();
15
+ return this.redirectsCache ?? new Map();
16
+ }
17
+ async populateCache() {
18
+ const redirects = await this.apiClient.fetch({
19
+ path: "/wb/redirects",
20
+ cache: "no-cache",
21
+ next: {
22
+ revalidate: 0
23
+ }
24
+ });
25
+ this.redirectsCache = new Map();
26
+ for (const redirect of redirects) {
27
+ this.redirectsCache.set(redirect.from, redirect);
28
+ }
29
+ }
30
+ }
31
+
32
+ //# sourceMappingURL=RedirectsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["RedirectsProvider","redirectsCache","undefined","constructor","apiClient","getRedirectByPath","path","populateCache","get","getAllRedirects","Map","redirects","fetch","cache","next","revalidate","redirect","set","from"],"sources":["RedirectsProvider.ts"],"sourcesContent":["import type { ApiClient } from \"./ApiClient.js\";\nimport type { IRedirects } from \"~/IRedirects.js\";\nimport type { PublicRedirect } from \"~/types.js\";\n\nexport class RedirectsProvider implements IRedirects {\n private redirectsCache: Map<string, PublicRedirect> | undefined = undefined;\n private apiClient: ApiClient;\n\n constructor(apiClient: ApiClient) {\n this.apiClient = apiClient;\n }\n\n async getRedirectByPath(path: string): Promise<PublicRedirect | undefined> {\n await this.populateCache();\n\n if (!this.redirectsCache) {\n return undefined;\n }\n\n return this.redirectsCache.get(path);\n }\n\n async getAllRedirects(): Promise<Map<string, PublicRedirect>> {\n await this.populateCache();\n return this.redirectsCache ?? new Map();\n }\n\n private async populateCache() {\n const redirects: PublicRedirect[] = await this.apiClient.fetch({\n path: \"/wb/redirects\",\n cache: \"no-cache\",\n next: {\n revalidate: 0\n }\n });\n\n this.redirectsCache = new Map();\n for (const redirect of redirects) {\n this.redirectsCache.set(redirect.from, redirect);\n }\n }\n}\n"],"mappings":"AAIA,OAAO,MAAMA,iBAAiB,CAAuB;EACzCC,cAAc,GAA4CC,SAAS;EAG3EC,WAAWA,CAACC,SAAoB,EAAE;IAC9B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEA,MAAMC,iBAAiBA,CAACC,IAAY,EAAuC;IACvE,MAAM,IAAI,CAACC,aAAa,CAAC,CAAC;IAE1B,IAAI,CAAC,IAAI,CAACN,cAAc,EAAE;MACtB,OAAOC,SAAS;IACpB;IAEA,OAAO,IAAI,CAACD,cAAc,CAACO,GAAG,CAACF,IAAI,CAAC;EACxC;EAEA,MAAMG,eAAeA,CAAA,EAAyC;IAC1D,MAAM,IAAI,CAACF,aAAa,CAAC,CAAC;IAC1B,OAAO,IAAI,CAACN,cAAc,IAAI,IAAIS,GAAG,CAAC,CAAC;EAC3C;EAEA,MAAcH,aAAaA,CAAA,EAAG;IAC1B,MAAMI,SAA2B,GAAG,MAAM,IAAI,CAACP,SAAS,CAACQ,KAAK,CAAC;MAC3DN,IAAI,EAAE,eAAe;MACrBO,KAAK,EAAE,UAAU;MACjBC,IAAI,EAAE;QACFC,UAAU,EAAE;MAChB;IACJ,CAAC,CAAC;IAEF,IAAI,CAACd,cAAc,GAAG,IAAIS,GAAG,CAAC,CAAC;IAC/B,KAAK,MAAMM,QAAQ,IAAIL,SAAS,EAAE;MAC9B,IAAI,CAACV,cAAc,CAACgB,GAAG,CAACD,QAAQ,CAACE,IAAI,EAAEF,QAAQ,CAAC;IACpD;EACJ;AACJ","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import type { WebsiteBuilderThemeInput } from "./types/WebsiteBuilderTheme";
1
+ import type { WebsiteBuilderThemeInput } from "./types/WebsiteBuilderTheme.js";
2
2
  export declare const defaultBreakpoints: NonNullable<WebsiteBuilderThemeInput["breakpoints"]>;
@@ -1 +1 @@
1
- {"version":3,"names":["defaultBreakpoints","desktop","title","description","icon","minWidth","maxWidth","tablet","mobile"],"sources":["defaultBreakpoints.ts"],"sourcesContent":["import type { WebsiteBuilderThemeInput } from \"~/types/WebsiteBuilderTheme\";\n\nexport const defaultBreakpoints: NonNullable<WebsiteBuilderThemeInput[\"breakpoints\"]> = {\n desktop: {\n title: \"Desktop\",\n description: `Desktop styles apply at all breakpoints, unless they're edited at a lower breakpoint. Start your styling here.`,\n icon: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"/></svg>`,\n minWidth: 0,\n maxWidth: 4000\n },\n tablet: {\n title: \"Tablet\",\n description: `Styles added here will apply at 991px and below, unless they're edited at a smaller breakpoint.`,\n icon: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M18.5 0h-14A2.5 2.5 0 0 0 2 2.5v19A2.5 2.5 0 0 0 4.5 24h14a2.5 2.5 0 0 0 2.5-2.5v-19A2.5 2.5 0 0 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z\"/></svg>`,\n minWidth: 0,\n maxWidth: 991\n },\n mobile: {\n title: \"Mobile\",\n description: `Styles added here will apply at 430px and below.`,\n icon: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M15.5 1h-8A2.5 2.5 0 0 0 5 3.5v17A2.5 2.5 0 0 0 7.5 23h8a2.5 2.5 0 0 0 2.5-2.5v-17A2.5 2.5 0 0 0 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z\"/></svg>`,\n minWidth: 0,\n maxWidth: 430\n }\n};\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwE,GAAG;EACpFC,OAAO,EAAE;IACLC,KAAK,EAAE,SAAS;IAChBC,WAAW,EAAE,gHAAgH;IAC7HC,IAAI,EAAE,mSAAmS;IACzSC,QAAQ,EAAE,CAAC;IACXC,QAAQ,EAAE;EACd,CAAC;EACDC,MAAM,EAAE;IACJL,KAAK,EAAE,QAAQ;IACfC,WAAW,EAAE,iGAAiG;IAC9GC,IAAI,EAAE,+SAA+S;IACrTC,QAAQ,EAAE,CAAC;IACXC,QAAQ,EAAE;EACd,CAAC;EACDE,MAAM,EAAE;IACJN,KAAK,EAAE,QAAQ;IACfC,WAAW,EAAE,kDAAkD;IAC/DC,IAAI,EAAE,4SAA4S;IAClTC,QAAQ,EAAE,CAAC;IACXC,QAAQ,EAAE;EACd;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["defaultBreakpoints","desktop","title","description","icon","minWidth","maxWidth","tablet","mobile"],"sources":["defaultBreakpoints.ts"],"sourcesContent":["import type { WebsiteBuilderThemeInput } from \"~/types/WebsiteBuilderTheme.js\";\n\nexport const defaultBreakpoints: NonNullable<WebsiteBuilderThemeInput[\"breakpoints\"]> = {\n desktop: {\n title: \"Desktop\",\n description: `Desktop styles apply at all breakpoints, unless they're edited at a lower breakpoint. Start your styling here.`,\n icon: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M20 18c1.1 0 1.99-.9 1.99-2L22 5c0-1.1-.9-2-2-2H4c-1.1 0-2 .9-2 2v11c0 1.1.9 2 2 2H0c0 1.1.9 2 2 2h20c1.1 0 2-.9 2-2h-4zM4 5h16v11H4V5zm8 14c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z\"/></svg>`,\n minWidth: 0,\n maxWidth: 4000\n },\n tablet: {\n title: \"Tablet\",\n description: `Styles added here will apply at 991px and below, unless they're edited at a smaller breakpoint.`,\n icon: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M18.5 0h-14A2.5 2.5 0 0 0 2 2.5v19A2.5 2.5 0 0 0 4.5 24h14a2.5 2.5 0 0 0 2.5-2.5v-19A2.5 2.5 0 0 0 18.5 0zm-7 23c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm7.5-4H4V3h15v16z\"/></svg>`,\n minWidth: 0,\n maxWidth: 991\n },\n mobile: {\n title: \"Mobile\",\n description: `Styles added here will apply at 430px and below.`,\n icon: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"><path d=\"M15.5 1h-8A2.5 2.5 0 0 0 5 3.5v17A2.5 2.5 0 0 0 7.5 23h8a2.5 2.5 0 0 0 2.5-2.5v-17A2.5 2.5 0 0 0 15.5 1zm-4 21c-.83 0-1.5-.67-1.5-1.5s.67-1.5 1.5-1.5 1.5.67 1.5 1.5-.67 1.5-1.5 1.5zm4.5-4H7V4h9v14z\"/></svg>`,\n minWidth: 0,\n maxWidth: 430\n }\n};\n"],"mappings":"AAEA,OAAO,MAAMA,kBAAwE,GAAG;EACpFC,OAAO,EAAE;IACLC,KAAK,EAAE,SAAS;IAChBC,WAAW,EAAE,gHAAgH;IAC7HC,IAAI,EAAE,mSAAmS;IACzSC,QAAQ,EAAE,CAAC;IACXC,QAAQ,EAAE;EACd,CAAC;EACDC,MAAM,EAAE;IACJL,KAAK,EAAE,QAAQ;IACfC,WAAW,EAAE,iGAAiG;IAC9GC,IAAI,EAAE,+SAA+S;IACrTC,QAAQ,EAAE,CAAC;IACXC,QAAQ,EAAE;EACd,CAAC;EACDE,MAAM,EAAE;IACJN,KAAK,EAAE,QAAQ;IACfC,WAAW,EAAE,kDAAkD;IAC/DC,IAAI,EAAE,4SAA4S;IAClTC,QAAQ,EAAE,CAAC;IACXC,QAAQ,EAAE;EACd;AACJ,CAAC","ignoreList":[]}
@@ -3,7 +3,7 @@ interface Params {
3
3
  elementId: string;
4
4
  parentId: string;
5
5
  slot: string;
6
- index: number;
6
+ index?: number;
7
7
  }
8
8
  export declare function $addElementReferenceToParent(document: Document, { elementId, parentId, slot, index }: Params): void;
9
9
  export {};
@@ -6,7 +6,7 @@ export function $addElementReferenceToParent(document, {
6
6
  }) {
7
7
  const bindings = document.bindings[parentId] ?? {};
8
8
  const inputs = bindings.inputs ?? {};
9
- if (index < 0) {
9
+ if (index !== undefined && index < 0) {
10
10
  // Single value slot
11
11
  inputs[slot] = {
12
12
  ...inputs[slot],
@@ -15,11 +15,18 @@ export function $addElementReferenceToParent(document, {
15
15
  };
16
16
  } else {
17
17
  const slotElements = inputs[slot];
18
+ const existing = slotElements?.static ?? [];
19
+ let staticValue;
20
+ if (index === undefined) {
21
+ staticValue = [...existing, elementId];
22
+ } else {
23
+ staticValue = [...existing.slice(0, index), elementId, ...existing.slice(index)];
24
+ }
18
25
  inputs[slot] = {
19
26
  ...inputs[slot],
20
27
  type: "slot",
21
28
  list: true,
22
- static: [...(slotElements?.static ?? []).slice(0, index), elementId, ...(slotElements?.static ?? []).slice(index)]
29
+ static: staticValue
23
30
  };
24
31
  }
25
32
  document.bindings[parentId] = {
@@ -1 +1 @@
1
- {"version":3,"names":["$addElementReferenceToParent","document","elementId","parentId","slot","index","bindings","inputs","type","static","slotElements","list","slice"],"sources":["$addElementReferenceToParent.ts"],"sourcesContent":["import type { Document } from \"~/types.js\";\nimport type { InputValueBinding } from \"~/types\";\n\ninterface Params {\n elementId: string;\n parentId: string;\n slot: string;\n index: number;\n}\n\nexport function $addElementReferenceToParent(\n document: Document,\n { elementId, parentId, slot, index }: Params\n) {\n const bindings = document.bindings[parentId] ?? {};\n const inputs = bindings.inputs ?? {};\n\n if (index < 0) {\n // Single value slot\n inputs[slot] = {\n ...inputs[slot],\n type: \"slot\",\n static: elementId\n };\n } else {\n const slotElements = inputs[slot] as InputValueBinding;\n inputs[slot] = {\n ...inputs[slot],\n type: \"slot\",\n list: true,\n static: [\n ...(slotElements?.static ?? []).slice(0, index),\n elementId,\n ...(slotElements?.static ?? []).slice(index)\n ]\n };\n }\n\n document.bindings[parentId] = {\n ...bindings,\n inputs\n };\n}\n"],"mappings":"AAUA,OAAO,SAASA,4BAA4BA,CACxCC,QAAkB,EAClB;EAAEC,SAAS;EAAEC,QAAQ;EAAEC,IAAI;EAAEC;AAAc,CAAC,EAC9C;EACE,MAAMC,QAAQ,GAAGL,QAAQ,CAACK,QAAQ,CAACH,QAAQ,CAAC,IAAI,CAAC,CAAC;EAClD,MAAMI,MAAM,GAAGD,QAAQ,CAACC,MAAM,IAAI,CAAC,CAAC;EAEpC,IAAIF,KAAK,GAAG,CAAC,EAAE;IACX;IACAE,MAAM,CAACH,IAAI,CAAC,GAAG;MACX,GAAGG,MAAM,CAACH,IAAI,CAAC;MACfI,IAAI,EAAE,MAAM;MACZC,MAAM,EAAEP;IACZ,CAAC;EACL,CAAC,MAAM;IACH,MAAMQ,YAAY,GAAGH,MAAM,CAACH,IAAI,CAAsB;IACtDG,MAAM,CAACH,IAAI,CAAC,GAAG;MACX,GAAGG,MAAM,CAACH,IAAI,CAAC;MACfI,IAAI,EAAE,MAAM;MACZG,IAAI,EAAE,IAAI;MACVF,MAAM,EAAE,CACJ,GAAG,CAACC,YAAY,EAAED,MAAM,IAAI,EAAE,EAAEG,KAAK,CAAC,CAAC,EAAEP,KAAK,CAAC,EAC/CH,SAAS,EACT,GAAG,CAACQ,YAAY,EAAED,MAAM,IAAI,EAAE,EAAEG,KAAK,CAACP,KAAK,CAAC;IAEpD,CAAC;EACL;EAEAJ,QAAQ,CAACK,QAAQ,CAACH,QAAQ,CAAC,GAAG;IAC1B,GAAGG,QAAQ;IACXC;EACJ,CAAC;AACL","ignoreList":[]}
1
+ {"version":3,"names":["$addElementReferenceToParent","document","elementId","parentId","slot","index","bindings","inputs","undefined","type","static","slotElements","existing","staticValue","slice","list"],"sources":["$addElementReferenceToParent.ts"],"sourcesContent":["import type { Document } from \"~/types.js\";\nimport type { InputValueBinding } from \"~/types.js\";\n\ninterface Params {\n elementId: string;\n parentId: string;\n slot: string;\n index?: number;\n}\n\nexport function $addElementReferenceToParent(\n document: Document,\n { elementId, parentId, slot, index }: Params\n) {\n const bindings = document.bindings[parentId] ?? {};\n const inputs = bindings.inputs ?? {};\n\n if (index !== undefined && index < 0) {\n // Single value slot\n inputs[slot] = {\n ...inputs[slot],\n type: \"slot\",\n static: elementId\n };\n } else {\n const slotElements = inputs[slot] as InputValueBinding;\n const existing = slotElements?.static ?? [];\n\n let staticValue;\n if (index === undefined) {\n staticValue = [...existing, elementId];\n } else {\n staticValue = [...existing.slice(0, index), elementId, ...existing.slice(index)];\n }\n\n inputs[slot] = {\n ...inputs[slot],\n type: \"slot\",\n list: true,\n static: staticValue\n };\n }\n\n document.bindings[parentId] = {\n ...bindings,\n inputs\n };\n}\n"],"mappings":"AAUA,OAAO,SAASA,4BAA4BA,CACxCC,QAAkB,EAClB;EAAEC,SAAS;EAAEC,QAAQ;EAAEC,IAAI;EAAEC;AAAc,CAAC,EAC9C;EACE,MAAMC,QAAQ,GAAGL,QAAQ,CAACK,QAAQ,CAACH,QAAQ,CAAC,IAAI,CAAC,CAAC;EAClD,MAAMI,MAAM,GAAGD,QAAQ,CAACC,MAAM,IAAI,CAAC,CAAC;EAEpC,IAAIF,KAAK,KAAKG,SAAS,IAAIH,KAAK,GAAG,CAAC,EAAE;IAClC;IACAE,MAAM,CAACH,IAAI,CAAC,GAAG;MACX,GAAGG,MAAM,CAACH,IAAI,CAAC;MACfK,IAAI,EAAE,MAAM;MACZC,MAAM,EAAER;IACZ,CAAC;EACL,CAAC,MAAM;IACH,MAAMS,YAAY,GAAGJ,MAAM,CAACH,IAAI,CAAsB;IACtD,MAAMQ,QAAQ,GAAGD,YAAY,EAAED,MAAM,IAAI,EAAE;IAE3C,IAAIG,WAAW;IACf,IAAIR,KAAK,KAAKG,SAAS,EAAE;MACrBK,WAAW,GAAG,CAAC,GAAGD,QAAQ,EAAEV,SAAS,CAAC;IAC1C,CAAC,MAAM;MACHW,WAAW,GAAG,CAAC,GAAGD,QAAQ,CAACE,KAAK,CAAC,CAAC,EAAET,KAAK,CAAC,EAAEH,SAAS,EAAE,GAAGU,QAAQ,CAACE,KAAK,CAACT,KAAK,CAAC,CAAC;IACpF;IAEAE,MAAM,CAACH,IAAI,CAAC,GAAG;MACX,GAAGG,MAAM,CAACH,IAAI,CAAC;MACfK,IAAI,EAAE,MAAM;MACZM,IAAI,EAAE,IAAI;MACVL,MAAM,EAAEG;IACZ,CAAC;EACL;EAEAZ,QAAQ,CAACK,QAAQ,CAACH,QAAQ,CAAC,GAAG;IAC1B,GAAGG,QAAQ;IACXC;EACJ,CAAC;AACL","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Document, DocumentElement } from "../types.js";
2
- import type { IDocumentOperation } from "./IDocumentOperation";
2
+ import type { IDocumentOperation } from "./IDocumentOperation.js";
3
3
  export declare class AddElement implements IDocumentOperation {
4
4
  private readonly element;
5
5
  constructor(element: DocumentElement);
@@ -1 +1 @@
1
- {"version":3,"names":["AddElement","constructor","element","apply","document","elements","id"],"sources":["AddElement.ts"],"sourcesContent":["import type { Document, DocumentElement } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation\";\n\nexport class AddElement implements IDocumentOperation {\n private readonly element: DocumentElement;\n\n constructor(element: DocumentElement) {\n this.element = element;\n }\n\n apply(document: Document) {\n document.elements[this.element.id] = this.element;\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,UAAU,CAA+B;EAGlDC,WAAWA,CAACC,OAAwB,EAAE;IAClC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtBA,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACH,OAAO,CAACI,EAAE,CAAC,GAAG,IAAI,CAACJ,OAAO;EACrD;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["AddElement","constructor","element","apply","document","elements","id"],"sources":["AddElement.ts"],"sourcesContent":["import type { Document, DocumentElement } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation.js\";\n\nexport class AddElement implements IDocumentOperation {\n private readonly element: DocumentElement;\n\n constructor(element: DocumentElement) {\n this.element = element;\n }\n\n apply(document: Document) {\n document.elements[this.element.id] = this.element;\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,UAAU,CAA+B;EAGlDC,WAAWA,CAACC,OAAwB,EAAE;IAClC,IAAI,CAACA,OAAO,GAAGA,OAAO;EAC1B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtBA,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACH,OAAO,CAACI,EAAE,CAAC,GAAG,IAAI,CAACJ,OAAO;EACrD;AACJ","ignoreList":[]}
@@ -1,8 +1,8 @@
1
1
  import type { Document, DocumentElement } from "../types.js";
2
- import type { IDocumentOperation } from "./IDocumentOperation";
2
+ import type { IDocumentOperation } from "./IDocumentOperation.js";
3
3
  export declare class AddToParent implements IDocumentOperation {
4
4
  private element;
5
- private readonly index;
6
- constructor(element: DocumentElement, index: number);
5
+ private readonly index?;
6
+ constructor(element: DocumentElement, index?: number);
7
7
  apply(document: Document): void;
8
8
  }
@@ -1 +1 @@
1
- {"version":3,"names":["$addElementReferenceToParent","AddToParent","constructor","element","index","apply","document","elementId","id","parentId","parent","slot"],"sources":["AddToParent.ts"],"sourcesContent":["import type { Document, DocumentElement } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation\";\nimport { $addElementReferenceToParent } from \"./$addElementReferenceToParent.js\";\n\nexport class AddToParent implements IDocumentOperation {\n private element: DocumentElement;\n private readonly index: number;\n\n constructor(element: DocumentElement, index: number) {\n this.element = element;\n this.index = index;\n }\n\n apply(document: Document) {\n $addElementReferenceToParent(document, {\n elementId: this.element.id,\n parentId: this.element.parent!.id,\n slot: this.element.parent!.slot,\n index: this.index\n });\n }\n}\n"],"mappings":"AAEA,SAASA,4BAA4B;AAErC,OAAO,MAAMC,WAAW,CAA+B;EAInDC,WAAWA,CAACC,OAAwB,EAAEC,KAAa,EAAE;IACjD,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACtB;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtBN,4BAA4B,CAACM,QAAQ,EAAE;MACnCC,SAAS,EAAE,IAAI,CAACJ,OAAO,CAACK,EAAE;MAC1BC,QAAQ,EAAE,IAAI,CAACN,OAAO,CAACO,MAAM,CAAEF,EAAE;MACjCG,IAAI,EAAE,IAAI,CAACR,OAAO,CAACO,MAAM,CAAEC,IAAI;MAC/BP,KAAK,EAAE,IAAI,CAACA;IAChB,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["$addElementReferenceToParent","AddToParent","constructor","element","index","apply","document","elementId","id","parentId","parent","slot"],"sources":["AddToParent.ts"],"sourcesContent":["import type { Document, DocumentElement } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation.js\";\nimport { $addElementReferenceToParent } from \"./$addElementReferenceToParent.js\";\n\nexport class AddToParent implements IDocumentOperation {\n private element: DocumentElement;\n private readonly index?: number;\n\n constructor(element: DocumentElement, index?: number) {\n this.element = element;\n this.index = index;\n }\n\n apply(document: Document) {\n $addElementReferenceToParent(document, {\n elementId: this.element.id,\n parentId: this.element.parent!.id,\n slot: this.element.parent!.slot,\n index: this.index\n });\n }\n}\n"],"mappings":"AAEA,SAASA,4BAA4B;AAErC,OAAO,MAAMC,WAAW,CAA+B;EAInDC,WAAWA,CAACC,OAAwB,EAAEC,KAAc,EAAE;IAClD,IAAI,CAACD,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,KAAK,GAAGA,KAAK;EACtB;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtBN,4BAA4B,CAACM,QAAQ,EAAE;MACnCC,SAAS,EAAE,IAAI,CAACJ,OAAO,CAACK,EAAE;MAC1BC,QAAQ,EAAE,IAAI,CAACN,OAAO,CAACO,MAAM,CAAEF,EAAE;MACjCG,IAAI,EAAE,IAAI,CAACR,OAAO,CAACO,MAAM,CAAEC,IAAI;MAC/BP,KAAK,EAAE,IAAI,CAACA;IAChB,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Document } from "../types.js";
2
- import type { IDocumentOperation } from "./IDocumentOperation";
2
+ import type { IDocumentOperation } from "./IDocumentOperation.js";
3
3
  export declare class RemoveElement implements IDocumentOperation {
4
4
  private readonly elementId;
5
5
  constructor(elementId: string);
@@ -3,6 +3,15 @@ export class RemoveElement {
3
3
  this.elementId = elementId;
4
4
  }
5
5
  apply(document) {
6
+ // Recursively remove all descendants first.
7
+ for (const id in document.elements) {
8
+ if (document.elements[id].parent?.id === this.elementId) {
9
+ new RemoveElement(id).apply(document);
10
+ }
11
+ }
12
+
13
+ // Remove bindings and the element itself.
14
+ delete document.bindings[this.elementId];
6
15
  delete document.elements[this.elementId];
7
16
  }
8
17
  }
@@ -1 +1 @@
1
- {"version":3,"names":["RemoveElement","constructor","elementId","apply","document","elements"],"sources":["RemoveElement.ts"],"sourcesContent":["import type { Document } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation\";\n\nexport class RemoveElement implements IDocumentOperation {\n private readonly elementId: string;\n\n constructor(elementId: string) {\n this.elementId = elementId;\n }\n\n apply(document: Document) {\n delete document.elements[this.elementId];\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,aAAa,CAA+B;EAGrDC,WAAWA,CAACC,SAAiB,EAAE;IAC3B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,OAAOA,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACH,SAAS,CAAC;EAC5C;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["RemoveElement","constructor","elementId","apply","document","id","elements","parent","bindings"],"sources":["RemoveElement.ts"],"sourcesContent":["import type { Document } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation.js\";\n\nexport class RemoveElement implements IDocumentOperation {\n private readonly elementId: string;\n\n constructor(elementId: string) {\n this.elementId = elementId;\n }\n\n apply(document: Document) {\n // Recursively remove all descendants first.\n for (const id in document.elements) {\n if (document.elements[id].parent?.id === this.elementId) {\n new RemoveElement(id).apply(document);\n }\n }\n\n // Remove bindings and the element itself.\n delete document.bindings[this.elementId];\n delete document.elements[this.elementId];\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,aAAa,CAA+B;EAGrDC,WAAWA,CAACC,SAAiB,EAAE;IAC3B,IAAI,CAACA,SAAS,GAAGA,SAAS;EAC9B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB;IACA,KAAK,MAAMC,EAAE,IAAID,QAAQ,CAACE,QAAQ,EAAE;MAChC,IAAIF,QAAQ,CAACE,QAAQ,CAACD,EAAE,CAAC,CAACE,MAAM,EAAEF,EAAE,KAAK,IAAI,CAACH,SAAS,EAAE;QACrD,IAAIF,aAAa,CAACK,EAAE,CAAC,CAACF,KAAK,CAACC,QAAQ,CAAC;MACzC;IACJ;;IAEA;IACA,OAAOA,QAAQ,CAACI,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC;IACxC,OAAOE,QAAQ,CAACE,QAAQ,CAAC,IAAI,CAACJ,SAAS,CAAC;EAC5C;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Document, InputValueBinding } from "../types.js";
2
- import type { IDocumentOperation } from "./IDocumentOperation";
2
+ import type { IDocumentOperation } from "./IDocumentOperation.js";
3
3
  export declare class SetGlobalInputBinding implements IDocumentOperation {
4
4
  private readonly elementId;
5
5
  private readonly bindingPath;
@@ -1 +1 @@
1
- {"version":3,"names":["SetGlobalInputBinding","constructor","elementId","bindingPath","binding","apply","document","bindings","inputs"],"sources":["SetGlobalInputBinding.ts"],"sourcesContent":["import type { Document, InputValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation\";\n\nexport class SetGlobalInputBinding implements IDocumentOperation {\n private readonly elementId: string;\n private readonly bindingPath: string;\n private readonly binding: InputValueBinding;\n\n constructor(elementId: string, bindingPath: string, binding: InputValueBinding) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? { inputs: {} };\n const binding = bindings.inputs ? bindings.inputs[this.bindingPath] : {};\n document.bindings[this.elementId] = {\n ...bindings,\n inputs: {\n ...(bindings.inputs ?? {}),\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,qBAAqB,CAA+B;EAK7DC,WAAWA,CAACC,SAAiB,EAAEC,WAAmB,EAAEC,OAA0B,EAAE;IAC5E,IAAI,CAACF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,IAAI;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IACpE,MAAMJ,OAAO,GAAGG,QAAQ,CAACC,MAAM,GAAGD,QAAQ,CAACC,MAAM,CAAC,IAAI,CAACL,WAAW,CAAC,GAAG,CAAC,CAAC;IACxEG,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,GAAG;MAChC,GAAGK,QAAQ;MACXC,MAAM,EAAE;QACJ,IAAID,QAAQ,CAACC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC,IAAI,CAACL,WAAW,GAAG;UAChB,GAAGC,OAAO;UACV,GAAG,IAAI,CAACA;QACZ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["SetGlobalInputBinding","constructor","elementId","bindingPath","binding","apply","document","bindings","inputs"],"sources":["SetGlobalInputBinding.ts"],"sourcesContent":["import type { Document, InputValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation.js\";\n\nexport class SetGlobalInputBinding implements IDocumentOperation {\n private readonly elementId: string;\n private readonly bindingPath: string;\n private readonly binding: InputValueBinding;\n\n constructor(elementId: string, bindingPath: string, binding: InputValueBinding) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? { inputs: {} };\n const binding = bindings.inputs ? bindings.inputs[this.bindingPath] : {};\n document.bindings[this.elementId] = {\n ...bindings,\n inputs: {\n ...(bindings.inputs ?? {}),\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,qBAAqB,CAA+B;EAK7DC,WAAWA,CAACC,SAAiB,EAAEC,WAAmB,EAAEC,OAA0B,EAAE;IAC5E,IAAI,CAACF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,IAAI;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IACpE,MAAMJ,OAAO,GAAGG,QAAQ,CAACC,MAAM,GAAGD,QAAQ,CAACC,MAAM,CAAC,IAAI,CAACL,WAAW,CAAC,GAAG,CAAC,CAAC;IACxEG,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,GAAG;MAChC,GAAGK,QAAQ;MACXC,MAAM,EAAE;QACJ,IAAID,QAAQ,CAACC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC1B,CAAC,IAAI,CAACL,WAAW,GAAG;UAChB,GAAGC,OAAO;UACV,GAAG,IAAI,CAACA;QACZ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Document, StyleValueBinding } from "../types.js";
2
- import type { IDocumentOperation } from "./IDocumentOperation";
2
+ import type { IDocumentOperation } from "./IDocumentOperation.js";
3
3
  export declare class SetGlobalStyleBinding implements IDocumentOperation {
4
4
  private readonly elementId;
5
5
  private readonly bindingPath;
@@ -1 +1 @@
1
- {"version":3,"names":["SetGlobalStyleBinding","constructor","elementId","bindingPath","binding","apply","document","bindings","styles"],"sources":["SetGlobalStyleBinding.ts"],"sourcesContent":["import type { Document, StyleValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation\";\n\nexport class SetGlobalStyleBinding implements IDocumentOperation {\n private readonly elementId: string;\n private readonly bindingPath: string;\n private readonly binding: StyleValueBinding;\n\n constructor(elementId: string, bindingPath: string, binding: StyleValueBinding) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? { styles: {} };\n // @ts-expect-error String doesn't play well with CSSProperties.\n const binding = bindings.styles ? bindings.styles[this.bindingPath] ?? {} : {};\n document.bindings[this.elementId] = {\n ...bindings,\n styles: {\n ...bindings.styles,\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,qBAAqB,CAA+B;EAK7DC,WAAWA,CAACC,SAAiB,EAAEC,WAAmB,EAAEC,OAA0B,EAAE;IAC5E,IAAI,CAACF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,IAAI;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IACpE;IACA,MAAMJ,OAAO,GAAGG,QAAQ,CAACC,MAAM,GAAGD,QAAQ,CAACC,MAAM,CAAC,IAAI,CAACL,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IAC9EG,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,GAAG;MAChC,GAAGK,QAAQ;MACXC,MAAM,EAAE;QACJ,GAAGD,QAAQ,CAACC,MAAM;QAClB,CAAC,IAAI,CAACL,WAAW,GAAG;UAChB,GAAGC,OAAO;UACV,GAAG,IAAI,CAACA;QACZ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["SetGlobalStyleBinding","constructor","elementId","bindingPath","binding","apply","document","bindings","styles"],"sources":["SetGlobalStyleBinding.ts"],"sourcesContent":["import type { Document, StyleValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation.js\";\n\nexport class SetGlobalStyleBinding implements IDocumentOperation {\n private readonly elementId: string;\n private readonly bindingPath: string;\n private readonly binding: StyleValueBinding;\n\n constructor(elementId: string, bindingPath: string, binding: StyleValueBinding) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? { styles: {} };\n // @ts-expect-error String doesn't play well with CSSProperties.\n const binding = bindings.styles ? (bindings.styles[this.bindingPath] ?? {}) : {};\n document.bindings[this.elementId] = {\n ...bindings,\n styles: {\n ...bindings.styles,\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,qBAAqB,CAA+B;EAK7DC,WAAWA,CAACC,SAAiB,EAAEC,WAAmB,EAAEC,OAA0B,EAAE;IAC5E,IAAI,CAACF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;EAC1B;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,IAAI;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IACpE;IACA,MAAMJ,OAAO,GAAGG,QAAQ,CAACC,MAAM,GAAID,QAAQ,CAACC,MAAM,CAAC,IAAI,CAACL,WAAW,CAAC,IAAI,CAAC,CAAC,GAAI,CAAC,CAAC;IAChFG,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACL,SAAS,CAAC,GAAG;MAChC,GAAGK,QAAQ;MACXC,MAAM,EAAE;QACJ,GAAGD,QAAQ,CAACC,MAAM;QAClB,CAAC,IAAI,CAACL,WAAW,GAAG;UAChB,GAAGC,OAAO;UACV,GAAG,IAAI,CAACA;QACZ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Document, InputValueBinding } from "../types.js";
2
- import type { IDocumentOperation } from "./IDocumentOperation";
2
+ import type { IDocumentOperation } from "./IDocumentOperation.js";
3
3
  export declare class SetInputBindingOverride implements IDocumentOperation {
4
4
  private readonly elementId;
5
5
  private breakpoint;
@@ -1 +1 @@
1
- {"version":3,"names":["SetInputBindingOverride","constructor","elementId","bindingPath","binding","breakpoint","apply","document","bindings","breakpointOverrides","overrides","inputs"],"sources":["SetInputBindingOverride.ts"],"sourcesContent":["import type { Document, InputValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation\";\n\nexport class SetInputBindingOverride implements IDocumentOperation {\n private readonly elementId: string;\n private breakpoint: string;\n private readonly bindingPath: string;\n private readonly binding: InputValueBinding;\n\n constructor(\n elementId: string,\n bindingPath: string,\n binding: InputValueBinding,\n breakpoint: string\n ) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n this.breakpoint = breakpoint;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? {};\n const breakpointOverrides = bindings.overrides\n ? bindings.overrides[this.breakpoint] ?? {}\n : { inputs: {} };\n\n const binding = breakpointOverrides.inputs\n ? breakpointOverrides.inputs[this.bindingPath]\n : {};\n\n document.bindings[this.elementId] = {\n ...bindings,\n overrides: {\n ...(bindings.overrides || {}),\n [this.breakpoint]: {\n ...breakpointOverrides,\n inputs: {\n ...(breakpointOverrides.inputs || {}),\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,CAA+B;EAM/DC,WAAWA,CACPC,SAAiB,EACjBC,WAAmB,EACnBC,OAA0B,EAC1BC,UAAkB,EACpB;IACE,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAChC;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,MAAMO,mBAAmB,GAAGD,QAAQ,CAACE,SAAS,GACxCF,QAAQ,CAACE,SAAS,CAAC,IAAI,CAACL,UAAU,CAAC,IAAI,CAAC,CAAC,GACzC;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IAEpB,MAAMP,OAAO,GAAGK,mBAAmB,CAACE,MAAM,GACpCF,mBAAmB,CAACE,MAAM,CAAC,IAAI,CAACR,WAAW,CAAC,GAC5C,CAAC,CAAC;IAERI,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,GAAG;MAChC,GAAGM,QAAQ;MACXE,SAAS,EAAE;QACP,IAAIF,QAAQ,CAACE,SAAS,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC,IAAI,CAACL,UAAU,GAAG;UACf,GAAGI,mBAAmB;UACtBE,MAAM,EAAE;YACJ,IAAIF,mBAAmB,CAACE,MAAM,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC,IAAI,CAACR,WAAW,GAAG;cAChB,GAAGC,OAAO;cACV,GAAG,IAAI,CAACA;YACZ;UACJ;QACJ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["SetInputBindingOverride","constructor","elementId","bindingPath","binding","breakpoint","apply","document","bindings","breakpointOverrides","overrides","inputs"],"sources":["SetInputBindingOverride.ts"],"sourcesContent":["import type { Document, InputValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation.js\";\n\nexport class SetInputBindingOverride implements IDocumentOperation {\n private readonly elementId: string;\n private breakpoint: string;\n private readonly bindingPath: string;\n private readonly binding: InputValueBinding;\n\n constructor(\n elementId: string,\n bindingPath: string,\n binding: InputValueBinding,\n breakpoint: string\n ) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n this.breakpoint = breakpoint;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? {};\n const breakpointOverrides = bindings.overrides\n ? (bindings.overrides[this.breakpoint] ?? {})\n : { inputs: {} };\n\n const binding = breakpointOverrides.inputs\n ? breakpointOverrides.inputs[this.bindingPath]\n : {};\n\n document.bindings[this.elementId] = {\n ...bindings,\n overrides: {\n ...(bindings.overrides || {}),\n [this.breakpoint]: {\n ...breakpointOverrides,\n inputs: {\n ...(breakpointOverrides.inputs || {}),\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,CAA+B;EAM/DC,WAAWA,CACPC,SAAiB,EACjBC,WAAmB,EACnBC,OAA0B,EAC1BC,UAAkB,EACpB;IACE,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAChC;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,MAAMO,mBAAmB,GAAGD,QAAQ,CAACE,SAAS,GACvCF,QAAQ,CAACE,SAAS,CAAC,IAAI,CAACL,UAAU,CAAC,IAAI,CAAC,CAAC,GAC1C;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IAEpB,MAAMP,OAAO,GAAGK,mBAAmB,CAACE,MAAM,GACpCF,mBAAmB,CAACE,MAAM,CAAC,IAAI,CAACR,WAAW,CAAC,GAC5C,CAAC,CAAC;IAERI,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,GAAG;MAChC,GAAGM,QAAQ;MACXE,SAAS,EAAE;QACP,IAAIF,QAAQ,CAACE,SAAS,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC,IAAI,CAACL,UAAU,GAAG;UACf,GAAGI,mBAAmB;UACtBE,MAAM,EAAE;YACJ,IAAIF,mBAAmB,CAACE,MAAM,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC,IAAI,CAACR,WAAW,GAAG;cAChB,GAAGC,OAAO;cACV,GAAG,IAAI,CAACA;YACZ;UACJ;QACJ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,5 +1,5 @@
1
1
  import type { Document, StyleValueBinding } from "../types.js";
2
- import type { IDocumentOperation } from "./IDocumentOperation";
2
+ import type { IDocumentOperation } from "./IDocumentOperation.js";
3
3
  export declare class SetStyleBindingOverride implements IDocumentOperation {
4
4
  private readonly elementId;
5
5
  private breakpoint;
@@ -1 +1 @@
1
- {"version":3,"names":["SetStyleBindingOverride","constructor","elementId","bindingPath","binding","breakpoint","apply","document","bindings","breakpointOverrides","overrides","styles"],"sources":["SetStyleBindingOverride.ts"],"sourcesContent":["import type { Document, StyleValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation\";\n\nexport class SetStyleBindingOverride implements IDocumentOperation {\n private readonly elementId: string;\n private breakpoint: string;\n private readonly bindingPath: string;\n private readonly binding: StyleValueBinding;\n\n constructor(\n elementId: string,\n bindingPath: string,\n binding: StyleValueBinding,\n breakpoint: string\n ) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n this.breakpoint = breakpoint;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? {};\n const breakpointOverrides = bindings.overrides\n ? bindings.overrides[this.breakpoint] ?? {}\n : { styles: {} };\n\n const binding = breakpointOverrides.styles\n ? // @ts-expect-error String doesn't play well with CSSProperties.\n breakpointOverrides.styles[this.bindingPath]\n : {};\n\n document.bindings[this.elementId] = {\n ...bindings,\n overrides: {\n ...(bindings.overrides || {}),\n [this.breakpoint]: {\n ...breakpointOverrides,\n styles: {\n ...(breakpointOverrides.styles || {}),\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,CAA+B;EAM/DC,WAAWA,CACPC,SAAiB,EACjBC,WAAmB,EACnBC,OAA0B,EAC1BC,UAAkB,EACpB;IACE,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAChC;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,MAAMO,mBAAmB,GAAGD,QAAQ,CAACE,SAAS,GACxCF,QAAQ,CAACE,SAAS,CAAC,IAAI,CAACL,UAAU,CAAC,IAAI,CAAC,CAAC,GACzC;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IAEpB,MAAMP,OAAO,GAAGK,mBAAmB,CAACE,MAAM;IACpC;IACAF,mBAAmB,CAACE,MAAM,CAAC,IAAI,CAACR,WAAW,CAAC,GAC5C,CAAC,CAAC;IAERI,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,GAAG;MAChC,GAAGM,QAAQ;MACXE,SAAS,EAAE;QACP,IAAIF,QAAQ,CAACE,SAAS,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC,IAAI,CAACL,UAAU,GAAG;UACf,GAAGI,mBAAmB;UACtBE,MAAM,EAAE;YACJ,IAAIF,mBAAmB,CAACE,MAAM,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC,IAAI,CAACR,WAAW,GAAG;cAChB,GAAGC,OAAO;cACV,GAAG,IAAI,CAACA;YACZ;UACJ;QACJ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
1
+ {"version":3,"names":["SetStyleBindingOverride","constructor","elementId","bindingPath","binding","breakpoint","apply","document","bindings","breakpointOverrides","overrides","styles"],"sources":["SetStyleBindingOverride.ts"],"sourcesContent":["import type { Document, StyleValueBinding } from \"~/types.js\";\nimport type { IDocumentOperation } from \"./IDocumentOperation.js\";\n\nexport class SetStyleBindingOverride implements IDocumentOperation {\n private readonly elementId: string;\n private breakpoint: string;\n private readonly bindingPath: string;\n private readonly binding: StyleValueBinding;\n\n constructor(\n elementId: string,\n bindingPath: string,\n binding: StyleValueBinding,\n breakpoint: string\n ) {\n this.elementId = elementId;\n this.bindingPath = bindingPath;\n this.binding = binding;\n this.breakpoint = breakpoint;\n }\n\n apply(document: Document) {\n const bindings = document.bindings[this.elementId] ?? {};\n const breakpointOverrides = bindings.overrides\n ? (bindings.overrides[this.breakpoint] ?? {})\n : { styles: {} };\n\n const binding = breakpointOverrides.styles\n ? // @ts-expect-error String doesn't play well with CSSProperties.\n breakpointOverrides.styles[this.bindingPath]\n : {};\n\n document.bindings[this.elementId] = {\n ...bindings,\n overrides: {\n ...(bindings.overrides || {}),\n [this.breakpoint]: {\n ...breakpointOverrides,\n styles: {\n ...(breakpointOverrides.styles || {}),\n [this.bindingPath]: {\n ...binding,\n ...this.binding\n }\n }\n }\n }\n };\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,uBAAuB,CAA+B;EAM/DC,WAAWA,CACPC,SAAiB,EACjBC,WAAmB,EACnBC,OAA0B,EAC1BC,UAAkB,EACpB;IACE,IAAI,CAACH,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACC,WAAW,GAAGA,WAAW;IAC9B,IAAI,CAACC,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,UAAU,GAAGA,UAAU;EAChC;EAEAC,KAAKA,CAACC,QAAkB,EAAE;IACtB,MAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,IAAI,CAAC,CAAC;IACxD,MAAMO,mBAAmB,GAAGD,QAAQ,CAACE,SAAS,GACvCF,QAAQ,CAACE,SAAS,CAAC,IAAI,CAACL,UAAU,CAAC,IAAI,CAAC,CAAC,GAC1C;MAAEM,MAAM,EAAE,CAAC;IAAE,CAAC;IAEpB,MAAMP,OAAO,GAAGK,mBAAmB,CAACE,MAAM;IACpC;IACAF,mBAAmB,CAACE,MAAM,CAAC,IAAI,CAACR,WAAW,CAAC,GAC5C,CAAC,CAAC;IAERI,QAAQ,CAACC,QAAQ,CAAC,IAAI,CAACN,SAAS,CAAC,GAAG;MAChC,GAAGM,QAAQ;MACXE,SAAS,EAAE;QACP,IAAIF,QAAQ,CAACE,SAAS,IAAI,CAAC,CAAC,CAAC;QAC7B,CAAC,IAAI,CAACL,UAAU,GAAG;UACf,GAAGI,mBAAmB;UACtBE,MAAM,EAAE;YACJ,IAAIF,mBAAmB,CAACE,MAAM,IAAI,CAAC,CAAC,CAAC;YACrC,CAAC,IAAI,CAACR,WAAW,GAAG;cAChB,GAAGC,OAAO;cACV,GAAG,IAAI,CAACA;YACZ;UACJ;QACJ;MACJ;IACJ,CAAC;EACL;AACJ","ignoreList":[]}
@@ -1,11 +1,11 @@
1
- export type { IDocumentOperation } from "./IDocumentOperation";
2
- import { AddElement } from "./AddElement";
3
- import { AddToParent } from "./AddToParent";
4
- import { RemoveElement } from "./RemoveElement";
5
- import { SetGlobalInputBinding } from "./SetGlobalInputBinding";
6
- import { SetGlobalStyleBinding } from "./SetGlobalStyleBinding";
7
- import { SetInputBindingOverride } from "./SetInputBindingOverride";
8
- import { SetStyleBindingOverride } from "./SetStyleBindingOverride";
1
+ export type { IDocumentOperation } from "./IDocumentOperation.js";
2
+ import { AddElement } from "./AddElement.js";
3
+ import { AddToParent } from "./AddToParent.js";
4
+ import { RemoveElement } from "./RemoveElement.js";
5
+ import { SetGlobalInputBinding } from "./SetGlobalInputBinding.js";
6
+ import { SetGlobalStyleBinding } from "./SetGlobalStyleBinding.js";
7
+ import { SetInputBindingOverride } from "./SetInputBindingOverride.js";
8
+ import { SetStyleBindingOverride } from "./SetStyleBindingOverride.js";
9
9
  export declare const DocumentOperations: {
10
10
  AddElement: typeof AddElement;
11
11
  AddToParent: typeof AddToParent;
@@ -1,10 +1,10 @@
1
- import { AddElement } from "./AddElement";
2
- import { AddToParent } from "./AddToParent";
3
- import { RemoveElement } from "./RemoveElement";
4
- import { SetGlobalInputBinding } from "./SetGlobalInputBinding";
5
- import { SetGlobalStyleBinding } from "./SetGlobalStyleBinding";
6
- import { SetInputBindingOverride } from "./SetInputBindingOverride";
7
- import { SetStyleBindingOverride } from "./SetStyleBindingOverride";
1
+ import { AddElement } from "./AddElement.js";
2
+ import { AddToParent } from "./AddToParent.js";
3
+ import { RemoveElement } from "./RemoveElement.js";
4
+ import { SetGlobalInputBinding } from "./SetGlobalInputBinding.js";
5
+ import { SetGlobalStyleBinding } from "./SetGlobalStyleBinding.js";
6
+ import { SetInputBindingOverride } from "./SetInputBindingOverride.js";
7
+ import { SetStyleBindingOverride } from "./SetStyleBindingOverride.js";
8
8
  export const DocumentOperations = {
9
9
  AddElement,
10
10
  AddToParent,
@@ -1 +1 @@
1
- {"version":3,"names":["AddElement","AddToParent","RemoveElement","SetGlobalInputBinding","SetGlobalStyleBinding","SetInputBindingOverride","SetStyleBindingOverride","DocumentOperations"],"sources":["index.ts"],"sourcesContent":["export type { IDocumentOperation } from \"./IDocumentOperation\";\nimport { AddElement } from \"./AddElement\";\nimport { AddToParent } from \"./AddToParent\";\nimport { RemoveElement } from \"./RemoveElement\";\nimport { SetGlobalInputBinding } from \"./SetGlobalInputBinding\";\nimport { SetGlobalStyleBinding } from \"./SetGlobalStyleBinding\";\nimport { SetInputBindingOverride } from \"./SetInputBindingOverride\";\nimport { SetStyleBindingOverride } from \"./SetStyleBindingOverride\";\n\nexport const DocumentOperations = {\n AddElement,\n AddToParent,\n RemoveElement,\n SetGlobalInputBinding,\n SetGlobalStyleBinding,\n SetInputBindingOverride,\n SetStyleBindingOverride\n};\n"],"mappings":"AACA,SAASA,UAAU;AACnB,SAASC,WAAW;AACpB,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,uBAAuB;AAChC,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,kBAAkB,GAAG;EAC9BP,UAAU;EACVC,WAAW;EACXC,aAAa;EACbC,qBAAqB;EACrBC,qBAAqB;EACrBC,uBAAuB;EACvBC;AACJ,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["AddElement","AddToParent","RemoveElement","SetGlobalInputBinding","SetGlobalStyleBinding","SetInputBindingOverride","SetStyleBindingOverride","DocumentOperations"],"sources":["index.ts"],"sourcesContent":["export type { IDocumentOperation } from \"./IDocumentOperation.js\";\nimport { AddElement } from \"./AddElement.js\";\nimport { AddToParent } from \"./AddToParent.js\";\nimport { RemoveElement } from \"./RemoveElement.js\";\nimport { SetGlobalInputBinding } from \"./SetGlobalInputBinding.js\";\nimport { SetGlobalStyleBinding } from \"./SetGlobalStyleBinding.js\";\nimport { SetInputBindingOverride } from \"./SetInputBindingOverride.js\";\nimport { SetStyleBindingOverride } from \"./SetStyleBindingOverride.js\";\n\nexport const DocumentOperations = {\n AddElement,\n AddToParent,\n RemoveElement,\n SetGlobalInputBinding,\n SetGlobalStyleBinding,\n SetInputBindingOverride,\n SetStyleBindingOverride\n};\n"],"mappings":"AACA,SAASA,UAAU;AACnB,SAASC,WAAW;AACpB,SAASC,aAAa;AACtB,SAASC,qBAAqB;AAC9B,SAASC,qBAAqB;AAC9B,SAASC,uBAAuB;AAChC,SAASC,uBAAuB;AAEhC,OAAO,MAAMC,kBAAkB,GAAG;EAC9BP,UAAU;EACVC,WAAW;EACXC,aAAa;EACbC,qBAAqB;EACrBC,qBAAqB;EACrBC,uBAAuB;EACvBC;AACJ,CAAC","ignoreList":[]}
@@ -1,2 +1,2 @@
1
- import type { InputAstNode } from "./ComponentManifestToAstConverter";
1
+ import type { InputAstNode } from "./ComponentManifestToAstConverter.js";
2
2
  export declare function findMatchingAstNode(path: string, ast: InputAstNode[]): InputAstNode | undefined;
@@ -1 +1 @@
1
- {"version":3,"names":["findMatchingAstNode","path","ast","cleanedPath","replace","pathParts","split","nodes","currentNode","part","find","n","name","undefined","children"],"sources":["findMatchingAstNode.ts"],"sourcesContent":["import type { InputAstNode } from \"~/ComponentManifestToAstConverter\";\n\nexport function findMatchingAstNode(path: string, ast: InputAstNode[]): InputAstNode | undefined {\n // Remove all array indices, e.g. columns[0].children → columns.children\n const cleanedPath = path.replace(/\\[\\d+\\]/g, \"\");\n const pathParts = cleanedPath.split(\".\");\n\n let nodes = ast;\n let currentNode: InputAstNode | undefined;\n\n for (const part of pathParts) {\n currentNode = nodes.find(n => n.name === part);\n if (!currentNode) {\n return undefined;\n }\n\n nodes = currentNode.children;\n }\n\n return currentNode;\n}\n"],"mappings":"AAEA,OAAO,SAASA,mBAAmBA,CAACC,IAAY,EAAEC,GAAmB,EAA4B;EAC7F;EACA,MAAMC,WAAW,GAAGF,IAAI,CAACG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;EAChD,MAAMC,SAAS,GAAGF,WAAW,CAACG,KAAK,CAAC,GAAG,CAAC;EAExC,IAAIC,KAAK,GAAGL,GAAG;EACf,IAAIM,WAAqC;EAEzC,KAAK,MAAMC,IAAI,IAAIJ,SAAS,EAAE;IAC1BG,WAAW,GAAGD,KAAK,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAKH,IAAI,CAAC;IAC9C,IAAI,CAACD,WAAW,EAAE;MACd,OAAOK,SAAS;IACpB;IAEAN,KAAK,GAAGC,WAAW,CAACM,QAAQ;EAChC;EAEA,OAAON,WAAW;AACtB","ignoreList":[]}
1
+ {"version":3,"names":["findMatchingAstNode","path","ast","cleanedPath","replace","pathParts","split","nodes","currentNode","part","find","n","name","undefined","children"],"sources":["findMatchingAstNode.ts"],"sourcesContent":["import type { InputAstNode } from \"~/ComponentManifestToAstConverter.js\";\n\nexport function findMatchingAstNode(path: string, ast: InputAstNode[]): InputAstNode | undefined {\n // Remove all array indices, e.g. columns[0].children → columns.children\n const cleanedPath = path.replace(/\\[\\d+\\]/g, \"\");\n const pathParts = cleanedPath.split(\".\");\n\n let nodes = ast;\n let currentNode: InputAstNode | undefined;\n\n for (const part of pathParts) {\n currentNode = nodes.find(n => n.name === part);\n if (!currentNode) {\n return undefined;\n }\n\n nodes = currentNode.children;\n }\n\n return currentNode;\n}\n"],"mappings":"AAEA,OAAO,SAASA,mBAAmBA,CAACC,IAAY,EAAEC,GAAmB,EAA4B;EAC7F;EACA,MAAMC,WAAW,GAAGF,IAAI,CAACG,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;EAChD,MAAMC,SAAS,GAAGF,WAAW,CAACG,KAAK,CAAC,GAAG,CAAC;EAExC,IAAIC,KAAK,GAAGL,GAAG;EACf,IAAIM,WAAqC;EAEzC,KAAK,MAAMC,IAAI,IAAIJ,SAAS,EAAE;IAC1BG,WAAW,GAAGD,KAAK,CAACG,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,IAAI,KAAKH,IAAI,CAAC;IAC9C,IAAI,CAACD,WAAW,EAAE;MACd,OAAOK,SAAS;IACpB;IAEAN,KAAK,GAAGC,WAAW,CAACM,QAAQ;EAChC;EAEA,OAAON,WAAW;AACtB","ignoreList":[]}
@@ -1 +1 @@
1
- export declare const generateElementId: (size?: number | undefined) => string;
1
+ export declare const generateElementId: (size?: number) => string;
@@ -1,5 +1,4 @@
1
1
  import { customAlphabet } from "nanoid";
2
- // @ts-expect-error
3
2
  import { lowercase, numbers } from "nanoid-dictionary";
4
3
  const DEFAULT_SIZE = 21;
5
4
  export const generateElementId = customAlphabet(`${lowercase}${numbers}`, DEFAULT_SIZE);
@@ -1 +1 @@
1
- {"version":3,"names":["customAlphabet","lowercase","numbers","DEFAULT_SIZE","generateElementId"],"sources":["generateElementId.ts"],"sourcesContent":["import { customAlphabet } from \"nanoid\";\n// @ts-expect-error\nimport { lowercase, numbers } from \"nanoid-dictionary\";\n\nconst DEFAULT_SIZE = 21;\n\nexport const generateElementId = customAlphabet(`${lowercase}${numbers}`, DEFAULT_SIZE);\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,QAAQ;AACvC;AACA,SAASC,SAAS,EAAEC,OAAO,QAAQ,mBAAmB;AAEtD,MAAMC,YAAY,GAAG,EAAE;AAEvB,OAAO,MAAMC,iBAAiB,GAAGJ,cAAc,CAAC,GAAGC,SAAS,GAAGC,OAAO,EAAE,EAAEC,YAAY,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["customAlphabet","lowercase","numbers","DEFAULT_SIZE","generateElementId"],"sources":["generateElementId.ts"],"sourcesContent":["import { customAlphabet } from \"nanoid\";\nimport { lowercase, numbers } from \"nanoid-dictionary\";\n\nconst DEFAULT_SIZE = 21;\n\nexport const generateElementId = customAlphabet(`${lowercase}${numbers}`, DEFAULT_SIZE);\n"],"mappings":"AAAA,SAASA,cAAc,QAAQ,QAAQ;AACvC,SAASC,SAAS,EAAEC,OAAO,QAAQ,mBAAmB;AAEtD,MAAMC,YAAY,GAAG,EAAE;AAEvB,OAAO,MAAMC,iBAAiB,GAAGJ,cAAc,CAAC,GAAGC,SAAS,GAAGC,OAAO,EAAE,EAAEC,YAAY,CAAC","ignoreList":[]}
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./createTheme";
1
+ export * from "./createTheme.js";
2
2
  export * from "./EditingSdk.js";
3
3
  export * from "./LiveSdk.js";
4
4
  export * from "./NullSdk.js";
@@ -12,7 +12,7 @@ export * from "./MouseTracker.js";
12
12
  export * from "./ViewportManager.js";
13
13
  export * from "./messenger/Messenger.js";
14
14
  export * from "./messenger/MessageOrigin.js";
15
- export * from "./types.js";
15
+ export type * from "./types.js";
16
16
  export * from "./DocumentStoreManager.js";
17
17
  export * from "./BindingsProcessor.js";
18
18
  export * from "./ResizeObserver.js";
@@ -27,5 +27,5 @@ export * from "./InheritanceProcessor.js";
27
27
  export * from "./InputBindingsProcessor.js";
28
28
  export * from "./StylesBindingsProcessor.js";
29
29
  export * from "./ElementFactory.js";
30
+ export * from "./ConstraintEvaluator.js";
30
31
  export { StyleSettings } from "./constants.js";
31
- export * from "./constants";
package/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./createTheme";
1
+ export * from "./createTheme.js";
2
2
  export * from "./EditingSdk.js";
3
3
  export * from "./LiveSdk.js";
4
4
  export * from "./NullSdk.js";
@@ -12,7 +12,6 @@ export * from "./MouseTracker.js";
12
12
  export * from "./ViewportManager.js";
13
13
  export * from "./messenger/Messenger.js";
14
14
  export * from "./messenger/MessageOrigin.js";
15
- export * from "./types.js";
16
15
  export * from "./DocumentStoreManager.js";
17
16
  export * from "./BindingsProcessor.js";
18
17
  export * from "./ResizeObserver.js";
@@ -27,7 +26,7 @@ export * from "./InheritanceProcessor.js";
27
26
  export * from "./InputBindingsProcessor.js";
28
27
  export * from "./StylesBindingsProcessor.js";
29
28
  export * from "./ElementFactory.js";
29
+ export * from "./ConstraintEvaluator.js";
30
30
  export { StyleSettings } from "./constants.js";
31
- export * from "./constants";
32
31
 
33
32
  //# sourceMappingURL=index.js.map
package/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["StyleSettings"],"sources":["index.ts"],"sourcesContent":["export * from \"./createTheme\";\nexport * from \"./EditingSdk.js\";\nexport * from \"./LiveSdk.js\";\nexport * from \"./NullSdk.js\";\nexport * from \"./ContentSdk.js\";\nexport * from \"./Environment.js\";\nexport * from \"./DocumentStore.js\";\nexport * from \"./Logger.js\";\nexport * from \"./FunctionConverter.js\";\nexport * from \"./createInput.js\";\nexport * from \"./MouseTracker.js\";\nexport * from \"./ViewportManager.js\";\nexport * from \"./messenger/Messenger.js\";\nexport * from \"./messenger/MessageOrigin.js\";\nexport * from \"./types.js\";\nexport * from \"./DocumentStoreManager.js\";\nexport * from \"./BindingsProcessor.js\";\nexport * from \"./ResizeObserver.js\";\nexport * from \"./BindingsResolver.js\";\nexport * from \"./createElement.js\";\nexport * from \"./registerComponentGroup.js\";\nexport * from \"./jsonPatch.js\";\nexport * from \"./headersProvider.js\";\nexport * from \"./ComponentManifestToAstConverter.js\";\nexport * from \"./findMatchingAstNode.js\";\nexport * from \"./InheritanceProcessor.js\";\nexport * from \"./InputBindingsProcessor.js\";\nexport * from \"./StylesBindingsProcessor.js\";\nexport * from \"./ElementFactory.js\";\nexport { StyleSettings } from \"./constants.js\";\nexport * from \"./constants\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa;AACtB","ignoreList":[]}
1
+ {"version":3,"names":["StyleSettings"],"sources":["index.ts"],"sourcesContent":["export * from \"./createTheme.js\";\nexport * from \"./EditingSdk.js\";\nexport * from \"./LiveSdk.js\";\nexport * from \"./NullSdk.js\";\nexport * from \"./ContentSdk.js\";\nexport * from \"./Environment.js\";\nexport * from \"./DocumentStore.js\";\nexport * from \"./Logger.js\";\nexport * from \"./FunctionConverter.js\";\nexport * from \"./createInput.js\";\nexport * from \"./MouseTracker.js\";\nexport * from \"./ViewportManager.js\";\nexport * from \"./messenger/Messenger.js\";\nexport * from \"./messenger/MessageOrigin.js\";\nexport type * from \"./types.js\";\nexport * from \"./DocumentStoreManager.js\";\nexport * from \"./BindingsProcessor.js\";\nexport * from \"./ResizeObserver.js\";\nexport * from \"./BindingsResolver.js\";\nexport * from \"./createElement.js\";\nexport * from \"./registerComponentGroup.js\";\nexport * from \"./jsonPatch.js\";\nexport * from \"./headersProvider.js\";\nexport * from \"./ComponentManifestToAstConverter.js\";\nexport * from \"./findMatchingAstNode.js\";\nexport * from \"./InheritanceProcessor.js\";\nexport * from \"./InputBindingsProcessor.js\";\nexport * from \"./StylesBindingsProcessor.js\";\nexport * from \"./ElementFactory.js\";\nexport * from \"./ConstraintEvaluator.js\";\nexport { StyleSettings } from \"./constants.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASA,aAAa","ignoreList":[]}
package/jsonPatch.d.ts CHANGED
@@ -2,5 +2,5 @@ import type { Operation, Validator, PatchResult } from "fast-json-patch";
2
2
  export type { Operation as JsonPatchOperation, PatchResult as JsonPatchResult };
3
3
  export declare const jsonPatch: {
4
4
  compare: (tree1: object | any[], tree2: object | any[], invertible?: boolean) => Operation[];
5
- applyPatch: <T>(document: T, patch: Operation[], validateOperation?: boolean | Validator<T> | undefined, mutateDocument?: boolean, banPrototypeModifications?: boolean) => PatchResult<T>;
5
+ applyPatch: <T>(document: T, patch: Operation[], validateOperation?: boolean | Validator<T>, mutateDocument?: boolean, banPrototypeModifications?: boolean) => PatchResult<T>;
6
6
  };
@@ -1,4 +1,4 @@
1
- import micromatch from "micromatch";
1
+ import { isMatch } from "matcher";
2
2
  import { logger } from "../Logger.js";
3
3
  const ignored = ["preview.mouse.move", "preview.component.register", "preview.scroll", "preview.viewport", "preview.viewport.change.start", "preview.viewport.change.end"];
4
4
  export class Messenger {
@@ -21,15 +21,15 @@ export class Messenger {
21
21
  if (!this.target.matches(event)) {
22
22
  return;
23
23
  }
24
- if (!type || !micromatch.isMatch(type, this.pattern)) {
24
+ if (!type || !isMatch(type, this.pattern)) {
25
25
  return;
26
26
  }
27
27
  const logicalType = this.stripPrefix(type);
28
28
  if (!this.isIgnored(logicalType)) {
29
- logger.debug(`${this.getTime()} --> [${this.source.origin}][${logicalType}]`, {
29
+ logger.debug({
30
30
  type,
31
31
  payload
32
- });
32
+ }, `${this.getTime()} --> [${this.source.origin}][${logicalType}]`);
33
33
  }
34
34
  const handlers = this.listeners.get(logicalType);
35
35
  if (handlers) {
@@ -57,10 +57,10 @@ export class Messenger {
57
57
  send(logicalType, payload) {
58
58
  const fullType = this.prefixGlob + logicalType;
59
59
  if (!this.isIgnored(logicalType)) {
60
- logger.debug(`${this.getTime()} <-- [${this.source.origin}][${logicalType}]`, {
60
+ logger.debug({
61
61
  type: fullType,
62
62
  payload
63
- });
63
+ }, `${this.getTime()} <-- [${this.source.origin}][${logicalType}]`);
64
64
  }
65
65
  this.target.window.postMessage({
66
66
  type: fullType,
@@ -1 +1 @@
1
- {"version":3,"names":["micromatch","logger","ignored","Messenger","listeners","Map","constructor","source","target","pattern","prefixGlob","replace","handleMessage","bind","window","addEventListener","event","type","payload","data","matches","isMatch","logicalType","stripPrefix","isIgnored","debug","getTime","origin","handlers","get","forEach","fn","fullType","startsWith","slice","length","includes","on","handler","has","set","Set","add","delete","send","postMessage","dispose","removeEventListener","clear","date","Date","getHours","getMinutes","getSeconds","getMilliseconds"],"sources":["Messenger.ts"],"sourcesContent":["import micromatch from \"micromatch\";\nimport type { MessageOrigin } from \"./MessageOrigin.js\";\nimport { logger } from \"../Logger.js\";\n\nexport type Message<T = any> = {\n type: string;\n payload: T;\n};\n\ntype Handler<T = any> = (payload: T, logicalType: string, wildcardMatch?: string) => void;\n\nconst ignored = [\n \"preview.mouse.move\",\n \"preview.component.register\",\n \"preview.scroll\",\n \"preview.viewport\",\n \"preview.viewport.change.start\",\n \"preview.viewport.change.end\"\n];\n\nexport class Messenger {\n private listeners = new Map<string, Set<Handler>>();\n private readonly pattern: string;\n private readonly prefixGlob: string;\n\n constructor(\n private source: MessageOrigin,\n private target: MessageOrigin,\n // Pattern to filter events this Messenger handles.\n pattern: string\n ) {\n this.pattern = pattern;\n this.prefixGlob = pattern.replace(/\\*+$/, \"\");\n this.handleMessage = this.handleMessage.bind(this);\n this.source.window.addEventListener(\"message\", this.handleMessage);\n }\n\n private handleMessage(event: MessageEvent) {\n const { type, payload } = event.data || {};\n if (!this.target.matches(event)) {\n return;\n }\n\n if (!type || !micromatch.isMatch(type, this.pattern)) {\n return;\n }\n\n const logicalType = this.stripPrefix(type);\n\n if (!this.isIgnored(logicalType)) {\n logger.debug(`${this.getTime()} --> [${this.source.origin}][${logicalType}]`, {\n type,\n payload\n });\n }\n\n const handlers = this.listeners.get(logicalType);\n if (handlers) {\n handlers.forEach(fn => fn(payload, logicalType));\n }\n }\n\n private stripPrefix(fullType: string): string {\n return fullType.startsWith(this.prefixGlob)\n ? fullType.slice(this.prefixGlob.length)\n : fullType;\n }\n\n private isIgnored(logicalType: string): boolean {\n return ignored.includes(logicalType);\n }\n\n on<T = any>(logicalType: string, handler: Handler<T>) {\n if (!this.listeners.has(logicalType)) {\n this.listeners.set(logicalType, new Set());\n }\n this.listeners.get(logicalType)!.add(handler);\n return () => {\n const listeners = this.listeners.get(logicalType);\n if (listeners) {\n listeners.delete(handler);\n }\n };\n }\n\n send<T = any>(logicalType: string, payload?: T) {\n const fullType = this.prefixGlob + logicalType;\n\n if (!this.isIgnored(logicalType)) {\n logger.debug(`${this.getTime()} <-- [${this.source.origin}][${logicalType}]`, {\n type: fullType,\n payload\n });\n }\n\n this.target.window.postMessage({ type: fullType, payload }, this.target.origin);\n }\n\n dispose() {\n this.source.window.removeEventListener(\"message\", this.handleMessage);\n this.listeners.clear();\n }\n\n getTime() {\n const date = new Date();\n return `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}.${date.getMilliseconds()}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["isMatch","logger","ignored","Messenger","listeners","Map","constructor","source","target","pattern","prefixGlob","replace","handleMessage","bind","window","addEventListener","event","type","payload","data","matches","logicalType","stripPrefix","isIgnored","debug","getTime","origin","handlers","get","forEach","fn","fullType","startsWith","slice","length","includes","on","handler","has","set","Set","add","delete","send","postMessage","dispose","removeEventListener","clear","date","Date","getHours","getMinutes","getSeconds","getMilliseconds"],"sources":["Messenger.ts"],"sourcesContent":["import { isMatch } from \"matcher\";\nimport type { MessageOrigin } from \"./MessageOrigin.js\";\nimport { logger } from \"../Logger.js\";\n\nexport type Message<T = any> = {\n type: string;\n payload: T;\n};\n\ntype Handler<T = any> = (payload: T, logicalType: string, wildcardMatch?: string) => void;\n\nconst ignored = [\n \"preview.mouse.move\",\n \"preview.component.register\",\n \"preview.scroll\",\n \"preview.viewport\",\n \"preview.viewport.change.start\",\n \"preview.viewport.change.end\"\n];\n\nexport class Messenger {\n private listeners = new Map<string, Set<Handler>>();\n private readonly pattern: string;\n private readonly prefixGlob: string;\n\n constructor(\n private source: MessageOrigin,\n private target: MessageOrigin,\n // Pattern to filter events this Messenger handles.\n pattern: string\n ) {\n this.pattern = pattern;\n this.prefixGlob = pattern.replace(/\\*+$/, \"\");\n this.handleMessage = this.handleMessage.bind(this);\n this.source.window.addEventListener(\"message\", this.handleMessage);\n }\n\n private handleMessage(event: MessageEvent) {\n const { type, payload } = event.data || {};\n if (!this.target.matches(event)) {\n return;\n }\n\n if (!type || !isMatch(type, this.pattern)) {\n return;\n }\n\n const logicalType = this.stripPrefix(type);\n\n if (!this.isIgnored(logicalType)) {\n logger.debug(\n {\n type,\n payload\n },\n `${this.getTime()} --> [${this.source.origin}][${logicalType}]`\n );\n }\n\n const handlers = this.listeners.get(logicalType);\n if (handlers) {\n handlers.forEach(fn => fn(payload, logicalType));\n }\n }\n\n private stripPrefix(fullType: string): string {\n return fullType.startsWith(this.prefixGlob)\n ? fullType.slice(this.prefixGlob.length)\n : fullType;\n }\n\n private isIgnored(logicalType: string): boolean {\n return ignored.includes(logicalType);\n }\n\n on<T = any>(logicalType: string, handler: Handler<T>) {\n if (!this.listeners.has(logicalType)) {\n this.listeners.set(logicalType, new Set());\n }\n this.listeners.get(logicalType)!.add(handler);\n return () => {\n const listeners = this.listeners.get(logicalType);\n if (listeners) {\n listeners.delete(handler);\n }\n };\n }\n\n send<T = any>(logicalType: string, payload?: T) {\n const fullType = this.prefixGlob + logicalType;\n\n if (!this.isIgnored(logicalType)) {\n logger.debug(\n {\n type: fullType,\n payload\n },\n `${this.getTime()} <-- [${this.source.origin}][${logicalType}]`\n );\n }\n\n this.target.window.postMessage({ type: fullType, payload }, this.target.origin);\n }\n\n dispose() {\n this.source.window.removeEventListener(\"message\", this.handleMessage);\n this.listeners.clear();\n }\n\n getTime() {\n const date = new Date();\n return `${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}.${date.getMilliseconds()}`;\n }\n}\n"],"mappings":"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","ignoreList":[]}