@webiny/website-builder-sdk 6.3.0 → 6.4.0-beta.1

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 (154) hide show
  1. package/BindingsApi.js +29 -36
  2. package/BindingsApi.js.map +1 -1
  3. package/BindingsProcessor.js +34 -43
  4. package/BindingsProcessor.js.map +1 -1
  5. package/BindingsProcessor.test.js +82 -78
  6. package/BindingsProcessor.test.js.map +1 -1
  7. package/BindingsResolver.js +92 -119
  8. package/BindingsResolver.js.map +1 -1
  9. package/BindingsResolver.test.js +399 -363
  10. package/BindingsResolver.test.js.map +1 -1
  11. package/ComponentInputTraverser.js +28 -49
  12. package/ComponentInputTraverser.js.map +1 -1
  13. package/ComponentManifestToAstConverter.js +20 -21
  14. package/ComponentManifestToAstConverter.js.map +1 -1
  15. package/ComponentRegistry.js +26 -45
  16. package/ComponentRegistry.js.map +1 -1
  17. package/ComponentResolver.js +25 -29
  18. package/ComponentResolver.js.map +1 -1
  19. package/ConstraintEvaluator.js +246 -353
  20. package/ConstraintEvaluator.js.map +1 -1
  21. package/ConstraintEvaluator.test.js +1616 -1438
  22. package/ConstraintEvaluator.test.js.map +1 -1
  23. package/ContentSdk.js +83 -90
  24. package/ContentSdk.js.map +1 -1
  25. package/DocumentStore.js +47 -59
  26. package/DocumentStore.js.map +1 -1
  27. package/DocumentStoreManager.js +17 -16
  28. package/DocumentStoreManager.js.map +1 -1
  29. package/EditingSdk.js +87 -121
  30. package/EditingSdk.js.map +1 -1
  31. package/ElementFactory.js +126 -174
  32. package/ElementFactory.js.map +1 -1
  33. package/ElementFactory.test.js +234 -263
  34. package/ElementFactory.test.js.map +1 -1
  35. package/Environment.js +18 -19
  36. package/Environment.js.map +1 -1
  37. package/FunctionConverter.js +8 -7
  38. package/FunctionConverter.js.map +1 -1
  39. package/HashObject.js +11 -26
  40. package/HashObject.js.map +1 -1
  41. package/HotkeyManager.js +40 -47
  42. package/HotkeyManager.js.map +1 -1
  43. package/IBindingsUpdater.js +0 -3
  44. package/IRedirects.js +0 -3
  45. package/InheritanceProcessor.js +99 -139
  46. package/InheritanceProcessor.js.map +1 -1
  47. package/InheritanceProcessor.test.js +178 -179
  48. package/InheritanceProcessor.test.js.map +1 -1
  49. package/InheritedValueResolver.js +15 -20
  50. package/InheritedValueResolver.js.map +1 -1
  51. package/InputBindingsProcessor.js +187 -307
  52. package/InputBindingsProcessor.js.map +1 -1
  53. package/InputsBindingsProcessor.test.js +334 -315
  54. package/InputsBindingsProcessor.test.js.map +1 -1
  55. package/InputsUpdater.js +23 -26
  56. package/InputsUpdater.js.map +1 -1
  57. package/LiveSdk.js +12 -13
  58. package/LiveSdk.js.map +1 -1
  59. package/Logger.js +9 -8
  60. package/Logger.js.map +1 -1
  61. package/MouseTracker.js +77 -83
  62. package/MouseTracker.js.map +1 -1
  63. package/NullSdk.js +22 -21
  64. package/NullSdk.js.map +1 -1
  65. package/PreviewDocument.js +27 -30
  66. package/PreviewDocument.js.map +1 -1
  67. package/PreviewSdk.js +16 -17
  68. package/PreviewSdk.js.map +1 -1
  69. package/PreviewViewport.js +51 -63
  70. package/PreviewViewport.js.map +1 -1
  71. package/ResizeObserver.js +24 -31
  72. package/ResizeObserver.js.map +1 -1
  73. package/StylesBindingsProcessor.js +40 -79
  74. package/StylesBindingsProcessor.js.map +1 -1
  75. package/StylesUpdater.js +20 -25
  76. package/StylesUpdater.js.map +1 -1
  77. package/Theme.js +28 -25
  78. package/Theme.js.map +1 -1
  79. package/ViewportManager.js +89 -101
  80. package/ViewportManager.js.map +1 -1
  81. package/constants.js +7 -6
  82. package/constants.js.map +1 -1
  83. package/createElement.js +5 -6
  84. package/createElement.js.map +1 -1
  85. package/createInput.js +85 -143
  86. package/createInput.js.map +1 -1
  87. package/createTheme.js +2 -3
  88. package/createTheme.js.map +1 -1
  89. package/dataProviders/ApiClient.js +40 -49
  90. package/dataProviders/ApiClient.js.map +1 -1
  91. package/dataProviders/DefaultDataProvider.js +56 -58
  92. package/dataProviders/DefaultDataProvider.js.map +1 -1
  93. package/dataProviders/GET_PAGE_BY_ID.js +2 -1
  94. package/dataProviders/GET_PAGE_BY_ID.js.map +1 -1
  95. package/dataProviders/GET_PAGE_BY_PATH.js +2 -1
  96. package/dataProviders/GET_PAGE_BY_PATH.js.map +1 -1
  97. package/dataProviders/LIST_PUBLISHED_PAGES.js +2 -1
  98. package/dataProviders/LIST_PUBLISHED_PAGES.js.map +1 -1
  99. package/dataProviders/NullDataProvider.js +21 -20
  100. package/dataProviders/NullDataProvider.js.map +1 -1
  101. package/dataProviders/RedirectsProvider.js +24 -27
  102. package/dataProviders/RedirectsProvider.js.map +1 -1
  103. package/defaultBreakpoints.js +23 -22
  104. package/defaultBreakpoints.js.map +1 -1
  105. package/documentOperations/$addElementReferenceToParent.js +29 -32
  106. package/documentOperations/$addElementReferenceToParent.js.map +1 -1
  107. package/documentOperations/AddElement.js +8 -7
  108. package/documentOperations/AddElement.js.map +1 -1
  109. package/documentOperations/AddToParent.js +14 -13
  110. package/documentOperations/AddToParent.js.map +1 -1
  111. package/documentOperations/IDocumentOperation.js +0 -3
  112. package/documentOperations/RemoveElement.js +9 -15
  113. package/documentOperations/RemoveElement.js.map +1 -1
  114. package/documentOperations/SetGlobalInputBinding.js +23 -22
  115. package/documentOperations/SetGlobalInputBinding.js.map +1 -1
  116. package/documentOperations/SetGlobalStyleBinding.js +23 -23
  117. package/documentOperations/SetGlobalStyleBinding.js.map +1 -1
  118. package/documentOperations/SetInputBindingOverride.js +30 -29
  119. package/documentOperations/SetInputBindingOverride.js.map +1 -1
  120. package/documentOperations/SetStyleBindingOverride.js +30 -31
  121. package/documentOperations/SetStyleBindingOverride.js.map +1 -1
  122. package/documentOperations/index.js +9 -8
  123. package/documentOperations/index.js.map +1 -1
  124. package/findMatchingAstNode.js +11 -13
  125. package/findMatchingAstNode.js.map +1 -1
  126. package/generateElementId.js +2 -1
  127. package/generateElementId.js.map +1 -1
  128. package/headersProvider.js +4 -3
  129. package/headersProvider.js.map +1 -1
  130. package/index.js +0 -2
  131. package/jsonPatch.js +5 -9
  132. package/jsonPatch.js.map +1 -1
  133. package/messages.js +12 -11
  134. package/messages.js.map +1 -1
  135. package/messenger/MessageOrigin.js +12 -11
  136. package/messenger/MessageOrigin.js.map +1 -1
  137. package/messenger/Messenger.js +58 -69
  138. package/messenger/Messenger.js.map +1 -1
  139. package/messenger/index.js +0 -2
  140. package/package.json +5 -5
  141. package/registerComponentGroup.js +5 -6
  142. package/registerComponentGroup.js.map +1 -1
  143. package/types/ShorthandCssProperties.js +0 -3
  144. package/types/WebsiteBuilderTheme.js +0 -3
  145. package/types.d.ts +3 -0
  146. package/types.js +0 -3
  147. package/IBindingsUpdater.js.map +0 -1
  148. package/IRedirects.js.map +0 -1
  149. package/documentOperations/IDocumentOperation.js.map +0 -1
  150. package/index.js.map +0 -1
  151. package/messenger/index.js.map +0 -1
  152. package/types/ShorthandCssProperties.js.map +0 -1
  153. package/types/WebsiteBuilderTheme.js.map +0 -1
  154. package/types.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"names":["describe","it","expect","InputsBindingsProcessor","ElementFactory","simpleAst","name","type","list","path","children","input","label","fields","withSlotAst","breakpoints","baseBindings","inputs","title","id","static","styles","overrides","tablet","mobile","getInputsBindingsProcessor","bindings","ast","elementFactory","tags","acceptsChildren","renderer","defaultValue","processor","deep","toDeepInputs","toEqual","items","newInputs","updater","createUpdate","rebuilt","elementId","applyToDocument","elementBindings","toBe","toBeUndefined","rawBindings","patch","createJsonPatch","arrayContaining","objectContaining","op","value","deepInputs","push","action","params","component","elements","toMatchObject","any","String"],"sources":["InputsBindingsProcessor.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { InputsBindingsProcessor } from \"./InputBindingsProcessor.js\";\nimport type { InputAstNode } from \"~/ComponentManifestToAstConverter.js\";\nimport type { DocumentElementBindings } from \"~/types.js\";\nimport { ElementFactory } from \"~/ElementFactory.js\";\n\ndescribe(\"InputsBindingsProcessor\", () => {\n // Example simple AST (you can expand as needed)\n const simpleAst: InputAstNode[] = [\n {\n name: \"title\",\n type: \"text\",\n list: false,\n path: \"title\",\n children: [],\n input: {\n type: \"text\",\n name: \"title\",\n label: \"Title\"\n }\n },\n {\n name: \"items\",\n type: \"object\",\n list: true,\n path: \"items\",\n children: [\n {\n name: \"label\",\n type: \"text\",\n list: false,\n path: \"items.label\",\n children: [],\n input: {\n type: \"text\",\n name: \"label\",\n label: \"Label\"\n }\n }\n ],\n input: {\n type: \"object\",\n name: \"items\",\n list: true,\n fields: [\n {\n type: \"text\",\n name: \"label\",\n label: \"Label\"\n }\n ]\n }\n }\n ];\n\n const withSlotAst: InputAstNode[] = [\n {\n path: \"children\",\n children: [],\n name: \"children\",\n type: \"slot\",\n list: false,\n input: {\n type: \"slot\",\n name: \"children\",\n label: \"Children\"\n }\n }\n ];\n\n const breakpoints = [\"desktop\", \"tablet\", \"mobile\"];\n\n const baseBindings: DocumentElementBindings = {\n inputs: {\n title: { id: \"title\", static: \"Base Title\", type: \"text\" },\n \"items/0/label\": {\n id: \"label0\",\n static: \"Base Label 1\",\n type: \"text\"\n },\n \"items/1/label\": {\n id: \"label1\",\n static: \"Base Label 2\",\n type: \"text\"\n }\n },\n styles: {}\n };\n\n const overrides: DocumentElementBindings[\"overrides\"] = {\n tablet: {\n inputs: {\n title: { id: \"title\", static: \"Tablet Title\", type: \"text\" },\n \"items/0/label\": {\n id: \"label0\",\n static: \"Tablet Label 1\",\n type: \"text\"\n }\n }\n },\n mobile: {\n inputs: {\n title: { id: \"title\", static: \"Mobile Title\", type: \"text\" }\n }\n }\n };\n\n const getInputsBindingsProcessor = (\n bindings: DocumentElementBindings = baseBindings,\n ast = simpleAst\n ) => {\n const elementFactory = new ElementFactory({\n \"Webiny/GridColumn\": {\n name: \"Webiny/GridColumn\",\n label: \"Column\",\n tags: [],\n acceptsChildren: true,\n inputs: [\n {\n type: \"slot\",\n list: true,\n renderer: \"Webiny/Slot\",\n name: \"children\",\n defaultValue: []\n }\n ]\n }\n });\n const processor = new InputsBindingsProcessor(\n \"elementId\",\n ast,\n breakpoints,\n bindings,\n elementFactory\n );\n\n return { processor, bindings };\n };\n\n it(\"toDeep should convert flat bindings to nested object\", () => {\n const { processor } = getInputsBindingsProcessor();\n\n const deep = processor.toDeepInputs(baseBindings.inputs ?? {});\n expect(deep).toEqual({\n title: \"Base Title\",\n items: [{ label: \"Base Label 1\" }, { label: \"Base Label 2\" }]\n });\n });\n\n it(\"applyInputs should assign base breakpoint inputs correctly\", () => {\n const { processor } = getInputsBindingsProcessor();\n\n const newInputs = {\n title: \"New Base Title\",\n items: [{ label: \"New Label 1\" }, { label: \"New Label 2\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } } };\n updater.applyToDocument(rebuilt);\n\n const elementBindings = rebuilt.bindings.elementId;\n\n expect(elementBindings.inputs.title.static).toBe(\"New Base Title\");\n expect(elementBindings.inputs[\"items/0/label\"].static).toBe(\"New Label 1\");\n expect(elementBindings.inputs[\"items/1/label\"].static).toBe(\"New Label 2\");\n expect(elementBindings.overrides).toBeUndefined();\n });\n\n it(\"applyInputs should assign overrides correctly, skipping inherited values\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: baseBindings.inputs,\n overrides,\n styles: {}\n };\n const { processor } = getInputsBindingsProcessor(rawBindings);\n\n const newInputs = {\n title: \"Mobile Title\",\n items: [{ label: \"Base Label 1\" }, { label: \"Base Label 2\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } } };\n updater.applyToDocument(rebuilt);\n\n const elementBindings = rebuilt.bindings.elementId;\n\n expect(elementBindings.inputs.title.static).toBe(\"Mobile Title\");\n // Items are same as base, so should not be in overrides\n expect(elementBindings.overrides?.mobile.inputs?.[\"items/0/label\"]).toBeUndefined();\n });\n\n it(\"createPatch should create correct json patch for input changes\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: baseBindings.inputs,\n overrides,\n styles: {}\n };\n const { processor, bindings } = getInputsBindingsProcessor(rawBindings);\n\n const newInputs = {\n title: \"Changed Title\",\n items: [{ label: \"Changed Label 1\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const patch = updater.createJsonPatch(bindings);\n\n // You're seeing the weird `~1` delimiter because that's what fast-json-patch does with indexes.\n expect(patch).toEqual(\n expect.arrayContaining([\n expect.objectContaining({\n op: \"remove\",\n path: \"/inputs/items~11~1label\"\n }),\n expect.objectContaining({\n op: \"replace\",\n path: \"/inputs/title/static\",\n value: \"Changed Title\"\n }),\n expect.objectContaining({\n op: \"replace\",\n path: \"/inputs/items~10~1label/static\",\n value: \"Changed Label 1\"\n })\n ])\n );\n });\n\n it(\"applyInputs removes keys missing in new inputs\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: {\n ...baseBindings.inputs,\n \"some/key\": { id: \"someKey\", static: \"toRemove\", type: \"text\" }\n },\n overrides,\n styles: {}\n };\n const { processor } = getInputsBindingsProcessor(rawBindings);\n\n const newInputs = {\n title: \"Base Title\",\n items: [{ label: \"Base Label 1\" }, { label: \"Base Label 2\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } } };\n updater.applyToDocument(rebuilt);\n\n const elementBindings = rebuilt.bindings.elementId;\n\n expect(elementBindings.inputs[\"some/key\"]).toBeUndefined();\n });\n\n it(\"createUpdate should apply correct changes to the document\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: baseBindings.inputs,\n overrides,\n styles: {}\n };\n const { processor } = getInputsBindingsProcessor(rawBindings, [\n ...simpleAst,\n ...withSlotAst\n ]);\n\n const deepInputs = processor.toDeepInputs(rawBindings.inputs!);\n\n deepInputs.items.push({ label: \"New Label 1\" });\n deepInputs.children = {\n action: \"CreateElement\",\n params: {\n component: \"Webiny/GridColumn\"\n }\n };\n\n const updater = processor.createUpdate(deepInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } }, elements: {} };\n updater.applyToDocument(rebuilt);\n\n expect(rebuilt.bindings.elementId.inputs).toMatchObject({\n title: { id: \"title\", static: \"Base Title\", type: \"text\" },\n \"items/0/label\": {\n id: \"label0\",\n static: \"Base Label 1\",\n type: \"text\"\n },\n \"items/1/label\": {\n id: \"label1\",\n static: \"Base Label 2\",\n type: \"text\"\n },\n \"items/2/label\": {\n id: expect.any(String),\n static: \"New Label 1\",\n type: \"text\"\n },\n children: {\n id: expect.any(String),\n static: expect.any(String),\n type: \"slot\"\n }\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"InputsBindingsProcessor.test.js","sources":["../src/InputsBindingsProcessor.test.ts"],"sourcesContent":["import { describe, it, expect } from \"vitest\";\nimport { InputsBindingsProcessor } from \"./InputBindingsProcessor.js\";\nimport type { InputAstNode } from \"~/ComponentManifestToAstConverter.js\";\nimport type { DocumentElementBindings } from \"~/types.js\";\nimport { ElementFactory } from \"~/ElementFactory.js\";\n\ndescribe(\"InputsBindingsProcessor\", () => {\n // Example simple AST (you can expand as needed)\n const simpleAst: InputAstNode[] = [\n {\n name: \"title\",\n type: \"text\",\n list: false,\n path: \"title\",\n children: [],\n input: {\n type: \"text\",\n name: \"title\",\n label: \"Title\"\n }\n },\n {\n name: \"items\",\n type: \"object\",\n list: true,\n path: \"items\",\n children: [\n {\n name: \"label\",\n type: \"text\",\n list: false,\n path: \"items.label\",\n children: [],\n input: {\n type: \"text\",\n name: \"label\",\n label: \"Label\"\n }\n }\n ],\n input: {\n type: \"object\",\n name: \"items\",\n list: true,\n fields: [\n {\n type: \"text\",\n name: \"label\",\n label: \"Label\"\n }\n ]\n }\n }\n ];\n\n const withSlotAst: InputAstNode[] = [\n {\n path: \"children\",\n children: [],\n name: \"children\",\n type: \"slot\",\n list: false,\n input: {\n type: \"slot\",\n name: \"children\",\n label: \"Children\"\n }\n }\n ];\n\n const breakpoints = [\"desktop\", \"tablet\", \"mobile\"];\n\n const baseBindings: DocumentElementBindings = {\n inputs: {\n title: { id: \"title\", static: \"Base Title\", type: \"text\" },\n \"items/0/label\": {\n id: \"label0\",\n static: \"Base Label 1\",\n type: \"text\"\n },\n \"items/1/label\": {\n id: \"label1\",\n static: \"Base Label 2\",\n type: \"text\"\n }\n },\n styles: {}\n };\n\n const overrides: DocumentElementBindings[\"overrides\"] = {\n tablet: {\n inputs: {\n title: { id: \"title\", static: \"Tablet Title\", type: \"text\" },\n \"items/0/label\": {\n id: \"label0\",\n static: \"Tablet Label 1\",\n type: \"text\"\n }\n }\n },\n mobile: {\n inputs: {\n title: { id: \"title\", static: \"Mobile Title\", type: \"text\" }\n }\n }\n };\n\n const getInputsBindingsProcessor = (\n bindings: DocumentElementBindings = baseBindings,\n ast = simpleAst\n ) => {\n const elementFactory = new ElementFactory({\n \"Webiny/GridColumn\": {\n name: \"Webiny/GridColumn\",\n label: \"Column\",\n tags: [],\n acceptsChildren: true,\n inputs: [\n {\n type: \"slot\",\n list: true,\n renderer: \"Webiny/Slot\",\n name: \"children\",\n defaultValue: []\n }\n ]\n }\n });\n const processor = new InputsBindingsProcessor(\n \"elementId\",\n ast,\n breakpoints,\n bindings,\n elementFactory\n );\n\n return { processor, bindings };\n };\n\n it(\"toDeep should convert flat bindings to nested object\", () => {\n const { processor } = getInputsBindingsProcessor();\n\n const deep = processor.toDeepInputs(baseBindings.inputs ?? {});\n expect(deep).toEqual({\n title: \"Base Title\",\n items: [{ label: \"Base Label 1\" }, { label: \"Base Label 2\" }]\n });\n });\n\n it(\"applyInputs should assign base breakpoint inputs correctly\", () => {\n const { processor } = getInputsBindingsProcessor();\n\n const newInputs = {\n title: \"New Base Title\",\n items: [{ label: \"New Label 1\" }, { label: \"New Label 2\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } } };\n updater.applyToDocument(rebuilt);\n\n const elementBindings = rebuilt.bindings.elementId;\n\n expect(elementBindings.inputs.title.static).toBe(\"New Base Title\");\n expect(elementBindings.inputs[\"items/0/label\"].static).toBe(\"New Label 1\");\n expect(elementBindings.inputs[\"items/1/label\"].static).toBe(\"New Label 2\");\n expect(elementBindings.overrides).toBeUndefined();\n });\n\n it(\"applyInputs should assign overrides correctly, skipping inherited values\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: baseBindings.inputs,\n overrides,\n styles: {}\n };\n const { processor } = getInputsBindingsProcessor(rawBindings);\n\n const newInputs = {\n title: \"Mobile Title\",\n items: [{ label: \"Base Label 1\" }, { label: \"Base Label 2\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } } };\n updater.applyToDocument(rebuilt);\n\n const elementBindings = rebuilt.bindings.elementId;\n\n expect(elementBindings.inputs.title.static).toBe(\"Mobile Title\");\n // Items are same as base, so should not be in overrides\n expect(elementBindings.overrides?.mobile.inputs?.[\"items/0/label\"]).toBeUndefined();\n });\n\n it(\"createPatch should create correct json patch for input changes\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: baseBindings.inputs,\n overrides,\n styles: {}\n };\n const { processor, bindings } = getInputsBindingsProcessor(rawBindings);\n\n const newInputs = {\n title: \"Changed Title\",\n items: [{ label: \"Changed Label 1\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const patch = updater.createJsonPatch(bindings);\n\n // You're seeing the weird `~1` delimiter because that's what fast-json-patch does with indexes.\n expect(patch).toEqual(\n expect.arrayContaining([\n expect.objectContaining({\n op: \"remove\",\n path: \"/inputs/items~11~1label\"\n }),\n expect.objectContaining({\n op: \"replace\",\n path: \"/inputs/title/static\",\n value: \"Changed Title\"\n }),\n expect.objectContaining({\n op: \"replace\",\n path: \"/inputs/items~10~1label/static\",\n value: \"Changed Label 1\"\n })\n ])\n );\n });\n\n it(\"applyInputs removes keys missing in new inputs\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: {\n ...baseBindings.inputs,\n \"some/key\": { id: \"someKey\", static: \"toRemove\", type: \"text\" }\n },\n overrides,\n styles: {}\n };\n const { processor } = getInputsBindingsProcessor(rawBindings);\n\n const newInputs = {\n title: \"Base Title\",\n items: [{ label: \"Base Label 1\" }, { label: \"Base Label 2\" }]\n };\n\n const updater = processor.createUpdate(newInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } } };\n updater.applyToDocument(rebuilt);\n\n const elementBindings = rebuilt.bindings.elementId;\n\n expect(elementBindings.inputs[\"some/key\"]).toBeUndefined();\n });\n\n it(\"createUpdate should apply correct changes to the document\", () => {\n const rawBindings: DocumentElementBindings = {\n inputs: baseBindings.inputs,\n overrides,\n styles: {}\n };\n const { processor } = getInputsBindingsProcessor(rawBindings, [\n ...simpleAst,\n ...withSlotAst\n ]);\n\n const deepInputs = processor.toDeepInputs(rawBindings.inputs!);\n\n deepInputs.items.push({ label: \"New Label 1\" });\n deepInputs.children = {\n action: \"CreateElement\",\n params: {\n component: \"Webiny/GridColumn\"\n }\n };\n\n const updater = processor.createUpdate(deepInputs, \"mobile\");\n const rebuilt: any = { bindings: { elementId: { inputs: {}, styles: {} } }, elements: {} };\n updater.applyToDocument(rebuilt);\n\n expect(rebuilt.bindings.elementId.inputs).toMatchObject({\n title: { id: \"title\", static: \"Base Title\", type: \"text\" },\n \"items/0/label\": {\n id: \"label0\",\n static: \"Base Label 1\",\n type: \"text\"\n },\n \"items/1/label\": {\n id: \"label1\",\n static: \"Base Label 2\",\n type: \"text\"\n },\n \"items/2/label\": {\n id: expect.any(String),\n static: \"New Label 1\",\n type: \"text\"\n },\n children: {\n id: expect.any(String),\n static: expect.any(String),\n type: \"slot\"\n }\n });\n });\n});\n"],"names":["describe","simpleAst","withSlotAst","breakpoints","baseBindings","overrides","getInputsBindingsProcessor","bindings","ast","elementFactory","ElementFactory","processor","InputsBindingsProcessor","it","deep","expect","newInputs","updater","rebuilt","elementBindings","rawBindings","patch","deepInputs","String"],"mappings":"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"}
package/InputsUpdater.js CHANGED
@@ -1,34 +1,31 @@
1
1
  import { jsonPatch } from "./jsonPatch.js";
2
2
  import set from "lodash/set.js";
3
- export class InputsUpdater {
4
- constructor(elementId, bindings, operations) {
5
- this.elementId = elementId;
6
- this.operations = operations;
7
- this.bindings = bindings;
8
- }
9
- applyToDocument(document) {
10
- document.bindings[this.elementId].inputs = structuredClone(this.bindings.inputs);
11
- if (this.bindings.overrides) {
12
- for (const [bp, overrides] of Object.entries(this.bindings.overrides)) {
13
- if (overrides.inputs) {
14
- set(document.bindings, `${this.elementId}.overrides.${bp}.inputs`, structuredClone(this.bindings.overrides[bp].inputs));
3
+ class InputsUpdater {
4
+ constructor(elementId, bindings, operations){
5
+ this.elementId = elementId;
6
+ this.operations = operations;
7
+ this.bindings = bindings;
8
+ }
9
+ applyToDocument(document) {
10
+ document.bindings[this.elementId].inputs = structuredClone(this.bindings.inputs);
11
+ if (this.bindings.overrides) {
12
+ for (const [bp, overrides] of Object.entries(this.bindings.overrides))if (overrides.inputs) set(document.bindings, `${this.elementId}.overrides.${bp}.inputs`, structuredClone(this.bindings.overrides[bp].inputs));
15
13
  }
16
- }
14
+ this.operations.forEach((operation)=>operation.apply(document));
17
15
  }
18
- this.operations.forEach(operation => operation.apply(document));
19
- }
20
- createJsonPatch(bindings) {
21
- const toCompare = {
22
- ...this.bindings
23
- };
24
- if (Object.keys(toCompare.overrides ?? {}).length === 0) {
25
- delete toCompare.overrides;
16
+ createJsonPatch(bindings) {
17
+ const toCompare = {
18
+ ...this.bindings
19
+ };
20
+ if (0 === Object.keys(toCompare.overrides ?? {}).length) delete toCompare.overrides;
21
+ const ignore = [
22
+ "/styles",
23
+ "/overrides/styles",
24
+ "/metadata"
25
+ ];
26
+ return jsonPatch.compare(bindings, toCompare).filter((op)=>!ignore.some((prefix)=>op.path.startsWith(prefix)));
26
27
  }
27
- const ignore = ["/styles", "/overrides/styles", "/metadata"];
28
- return jsonPatch.compare(bindings, toCompare).filter(op => {
29
- return !ignore.some(prefix => op.path.startsWith(prefix));
30
- });
31
- }
32
28
  }
29
+ export { InputsUpdater };
33
30
 
34
31
  //# sourceMappingURL=InputsUpdater.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["jsonPatch","set","InputsUpdater","constructor","elementId","bindings","operations","applyToDocument","document","inputs","structuredClone","overrides","bp","Object","entries","forEach","operation","apply","createJsonPatch","toCompare","keys","length","ignore","compare","filter","op","some","prefix","path","startsWith"],"sources":["InputsUpdater.ts"],"sourcesContent":["import { jsonPatch } from \"~/jsonPatch.js\";\nimport set from \"lodash/set.js\";\nimport type { Document, DocumentElementBindings } from \"./types.js\";\nimport type { IBindingsUpdater } from \"./IBindingsUpdater.js\";\nimport type { ElementInputsBindings } from \"./InputBindingsProcessor.js\";\nimport type { IDocumentOperation } from \"~/documentOperations/index.js\";\n\nexport class InputsUpdater implements IBindingsUpdater {\n private readonly bindings: ElementInputsBindings;\n private operations: IDocumentOperation[];\n private elementId: string;\n\n constructor(\n elementId: string,\n bindings: ElementInputsBindings,\n operations: IDocumentOperation[]\n ) {\n this.elementId = elementId;\n this.operations = operations;\n this.bindings = bindings;\n }\n\n applyToDocument(document: Document) {\n document.bindings[this.elementId].inputs = structuredClone(this.bindings.inputs);\n\n if (this.bindings.overrides) {\n for (const [bp, overrides] of Object.entries(this.bindings.overrides)) {\n if (overrides.inputs) {\n set(\n document.bindings,\n `${this.elementId}.overrides.${bp}.inputs`,\n structuredClone(this.bindings.overrides[bp].inputs)\n );\n }\n }\n }\n\n this.operations.forEach(operation => operation.apply(document));\n }\n\n createJsonPatch(bindings: DocumentElementBindings) {\n const toCompare: Partial<DocumentElementBindings> = { ...this.bindings };\n if (Object.keys(toCompare.overrides ?? {}).length === 0) {\n delete toCompare.overrides;\n }\n\n const ignore = [\"/styles\", \"/overrides/styles\", \"/metadata\"];\n\n return jsonPatch.compare(bindings, toCompare).filter(op => {\n return !ignore.some(prefix => op.path.startsWith(prefix));\n });\n }\n}\n"],"mappings":"AAAA,SAASA,SAAS;AAClB,OAAOC,GAAG,MAAM,eAAe;AAM/B,OAAO,MAAMC,aAAa,CAA6B;EAKnDC,WAAWA,CACPC,SAAiB,EACjBC,QAA+B,EAC/BC,UAAgC,EAClC;IACE,IAAI,CAACF,SAAS,GAAGA,SAAS;IAC1B,IAAI,CAACE,UAAU,GAAGA,UAAU;IAC5B,IAAI,CAACD,QAAQ,GAAGA,QAAQ;EAC5B;EAEAE,eAAeA,CAACC,QAAkB,EAAE;IAChCA,QAAQ,CAACH,QAAQ,CAAC,IAAI,CAACD,SAAS,CAAC,CAACK,MAAM,GAAGC,eAAe,CAAC,IAAI,CAACL,QAAQ,CAACI,MAAM,CAAC;IAEhF,IAAI,IAAI,CAACJ,QAAQ,CAACM,SAAS,EAAE;MACzB,KAAK,MAAM,CAACC,EAAE,EAAED,SAAS,CAAC,IAAIE,MAAM,CAACC,OAAO,CAAC,IAAI,CAACT,QAAQ,CAACM,SAAS,CAAC,EAAE;QACnE,IAAIA,SAAS,CAACF,MAAM,EAAE;UAClBR,GAAG,CACCO,QAAQ,CAACH,QAAQ,EACjB,GAAG,IAAI,CAACD,SAAS,cAAcQ,EAAE,SAAS,EAC1CF,eAAe,CAAC,IAAI,CAACL,QAAQ,CAACM,SAAS,CAACC,EAAE,CAAC,CAACH,MAAM,CACtD,CAAC;QACL;MACJ;IACJ;IAEA,IAAI,CAACH,UAAU,CAACS,OAAO,CAACC,SAAS,IAAIA,SAAS,CAACC,KAAK,CAACT,QAAQ,CAAC,CAAC;EACnE;EAEAU,eAAeA,CAACb,QAAiC,EAAE;IAC/C,MAAMc,SAA2C,GAAG;MAAE,GAAG,IAAI,CAACd;IAAS,CAAC;IACxE,IAAIQ,MAAM,CAACO,IAAI,CAACD,SAAS,CAACR,SAAS,IAAI,CAAC,CAAC,CAAC,CAACU,MAAM,KAAK,CAAC,EAAE;MACrD,OAAOF,SAAS,CAACR,SAAS;IAC9B;IAEA,MAAMW,MAAM,GAAG,CAAC,SAAS,EAAE,mBAAmB,EAAE,WAAW,CAAC;IAE5D,OAAOtB,SAAS,CAACuB,OAAO,CAAClB,QAAQ,EAAEc,SAAS,CAAC,CAACK,MAAM,CAACC,EAAE,IAAI;MACvD,OAAO,CAACH,MAAM,CAACI,IAAI,CAACC,MAAM,IAAIF,EAAE,CAACG,IAAI,CAACC,UAAU,CAACF,MAAM,CAAC,CAAC;IAC7D,CAAC,CAAC;EACN;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"InputsUpdater.js","sources":["../src/InputsUpdater.ts"],"sourcesContent":["import { jsonPatch } from \"~/jsonPatch.js\";\nimport set from \"lodash/set.js\";\nimport type { Document, DocumentElementBindings } from \"./types.js\";\nimport type { IBindingsUpdater } from \"./IBindingsUpdater.js\";\nimport type { ElementInputsBindings } from \"./InputBindingsProcessor.js\";\nimport type { IDocumentOperation } from \"~/documentOperations/index.js\";\n\nexport class InputsUpdater implements IBindingsUpdater {\n private readonly bindings: ElementInputsBindings;\n private operations: IDocumentOperation[];\n private elementId: string;\n\n constructor(\n elementId: string,\n bindings: ElementInputsBindings,\n operations: IDocumentOperation[]\n ) {\n this.elementId = elementId;\n this.operations = operations;\n this.bindings = bindings;\n }\n\n applyToDocument(document: Document) {\n document.bindings[this.elementId].inputs = structuredClone(this.bindings.inputs);\n\n if (this.bindings.overrides) {\n for (const [bp, overrides] of Object.entries(this.bindings.overrides)) {\n if (overrides.inputs) {\n set(\n document.bindings,\n `${this.elementId}.overrides.${bp}.inputs`,\n structuredClone(this.bindings.overrides[bp].inputs)\n );\n }\n }\n }\n\n this.operations.forEach(operation => operation.apply(document));\n }\n\n createJsonPatch(bindings: DocumentElementBindings) {\n const toCompare: Partial<DocumentElementBindings> = { ...this.bindings };\n if (Object.keys(toCompare.overrides ?? {}).length === 0) {\n delete toCompare.overrides;\n }\n\n const ignore = [\"/styles\", \"/overrides/styles\", \"/metadata\"];\n\n return jsonPatch.compare(bindings, toCompare).filter(op => {\n return !ignore.some(prefix => op.path.startsWith(prefix));\n });\n }\n}\n"],"names":["InputsUpdater","elementId","bindings","operations","document","structuredClone","bp","overrides","Object","set","operation","toCompare","ignore","jsonPatch","op","prefix"],"mappings":";;AAOO,MAAMA;IAKT,YACIC,SAAiB,EACjBC,QAA+B,EAC/BC,UAAgC,CAClC;QACE,IAAI,CAAC,SAAS,GAAGF;QACjB,IAAI,CAAC,UAAU,GAAGE;QAClB,IAAI,CAAC,QAAQ,GAAGD;IACpB;IAEA,gBAAgBE,QAAkB,EAAE;QAChCA,SAAS,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,MAAM,GAAGC,gBAAgB,IAAI,CAAC,QAAQ,CAAC,MAAM;QAE/E,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,EACvB;YAAA,KAAK,MAAM,CAACC,IAAIC,UAAU,IAAIC,OAAO,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAChE,IAAID,UAAU,MAAM,EAChBE,IACIL,SAAS,QAAQ,EACjB,GAAG,IAAI,CAAC,SAAS,CAAC,WAAW,EAAEE,GAAG,OAAO,CAAC,EAC1CD,gBAAgB,IAAI,CAAC,QAAQ,CAAC,SAAS,CAACC,GAAG,CAAC,MAAM;QAG9D;QAGJ,IAAI,CAAC,UAAU,CAAC,OAAO,CAACI,CAAAA,YAAaA,UAAU,KAAK,CAACN;IACzD;IAEA,gBAAgBF,QAAiC,EAAE;QAC/C,MAAMS,YAA8C;YAAE,GAAG,IAAI,CAAC,QAAQ;QAAC;QACvE,IAAIH,AAAkD,MAAlDA,OAAO,IAAI,CAACG,UAAU,SAAS,IAAI,CAAC,GAAG,MAAM,EAC7C,OAAOA,UAAU,SAAS;QAG9B,MAAMC,SAAS;YAAC;YAAW;YAAqB;SAAY;QAE5D,OAAOC,UAAU,OAAO,CAACX,UAAUS,WAAW,MAAM,CAACG,CAAAA,KAC1C,CAACF,OAAO,IAAI,CAACG,CAAAA,SAAUD,GAAG,IAAI,CAAC,UAAU,CAACC;IAEzD;AACJ"}
package/LiveSdk.js CHANGED
@@ -1,18 +1,17 @@
1
1
  import { documentStoreManager } from "./DocumentStoreManager.js";
2
- export class LiveSdk {
3
- constructor(dataProvider) {
4
- this.dataProvider = dataProvider;
5
- }
6
- async getPage(path, options) {
7
- const page = await this.dataProvider.getPageByPath(path, options);
8
- if (page) {
9
- documentStoreManager.getStore(page.properties.id).setDocument(page);
2
+ class LiveSdk {
3
+ constructor(dataProvider){
4
+ this.dataProvider = dataProvider;
5
+ }
6
+ async getPage(path, options) {
7
+ const page = await this.dataProvider.getPageByPath(path, options);
8
+ if (page) documentStoreManager.getStore(page.properties.id).setDocument(page);
9
+ return page;
10
+ }
11
+ listPages(options) {
12
+ return this.dataProvider.listPages(options);
10
13
  }
11
- return page;
12
- }
13
- listPages(options) {
14
- return this.dataProvider.listPages(options);
15
- }
16
14
  }
15
+ export { LiveSdk };
17
16
 
18
17
  //# sourceMappingURL=LiveSdk.js.map
package/LiveSdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["documentStoreManager","LiveSdk","constructor","dataProvider","getPage","path","options","page","getPageByPath","getStore","properties","id","setDocument","listPages"],"sources":["LiveSdk.ts"],"sourcesContent":["import type {\n GetPageOptions,\n IContentSdk,\n IDataProvider,\n ListPagesOptions,\n ListPagesResult,\n PublicPage\n} from \"~/types.js\";\nimport { documentStoreManager } from \"~/DocumentStoreManager.js\";\n\nexport class LiveSdk implements IContentSdk {\n private dataProvider: IDataProvider;\n\n constructor(dataProvider: IDataProvider) {\n this.dataProvider = dataProvider;\n }\n\n async getPage(path: string, options?: GetPageOptions): Promise<PublicPage | null> {\n const page = await this.dataProvider.getPageByPath(path, options);\n if (page) {\n documentStoreManager.getStore<PublicPage>(page.properties.id).setDocument(page);\n }\n return page;\n }\n\n listPages(options?: ListPagesOptions): Promise<ListPagesResult> {\n return this.dataProvider.listPages(options);\n }\n}\n"],"mappings":"AAQA,SAASA,oBAAoB;AAE7B,OAAO,MAAMC,OAAO,CAAwB;EAGxCC,WAAWA,CAACC,YAA2B,EAAE;IACrC,IAAI,CAACA,YAAY,GAAGA,YAAY;EACpC;EAEA,MAAMC,OAAOA,CAACC,IAAY,EAAEC,OAAwB,EAA8B;IAC9E,MAAMC,IAAI,GAAG,MAAM,IAAI,CAACJ,YAAY,CAACK,aAAa,CAACH,IAAI,EAAEC,OAAO,CAAC;IACjE,IAAIC,IAAI,EAAE;MACNP,oBAAoB,CAACS,QAAQ,CAAaF,IAAI,CAACG,UAAU,CAACC,EAAE,CAAC,CAACC,WAAW,CAACL,IAAI,CAAC;IACnF;IACA,OAAOA,IAAI;EACf;EAEAM,SAASA,CAACP,OAA0B,EAA4B;IAC5D,OAAO,IAAI,CAACH,YAAY,CAACU,SAAS,CAACP,OAAO,CAAC;EAC/C;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"LiveSdk.js","sources":["../src/LiveSdk.ts"],"sourcesContent":["import type {\n GetPageOptions,\n IContentSdk,\n IDataProvider,\n ListPagesOptions,\n ListPagesResult,\n PublicPage\n} from \"~/types.js\";\nimport { documentStoreManager } from \"~/DocumentStoreManager.js\";\n\nexport class LiveSdk implements IContentSdk {\n private dataProvider: IDataProvider;\n\n constructor(dataProvider: IDataProvider) {\n this.dataProvider = dataProvider;\n }\n\n async getPage(path: string, options?: GetPageOptions): Promise<PublicPage | null> {\n const page = await this.dataProvider.getPageByPath(path, options);\n if (page) {\n documentStoreManager.getStore<PublicPage>(page.properties.id).setDocument(page);\n }\n return page;\n }\n\n listPages(options?: ListPagesOptions): Promise<ListPagesResult> {\n return this.dataProvider.listPages(options);\n }\n}\n"],"names":["LiveSdk","dataProvider","path","options","page","documentStoreManager"],"mappings":";AAUO,MAAMA;IAGT,YAAYC,YAA2B,CAAE;QACrC,IAAI,CAAC,YAAY,GAAGA;IACxB;IAEA,MAAM,QAAQC,IAAY,EAAEC,OAAwB,EAA8B;QAC9E,MAAMC,OAAO,MAAM,IAAI,CAAC,YAAY,CAAC,aAAa,CAACF,MAAMC;QACzD,IAAIC,MACAC,qBAAqB,QAAQ,CAAaD,KAAK,UAAU,CAAC,EAAE,EAAE,WAAW,CAACA;QAE9E,OAAOA;IACX;IAEA,UAAUD,OAA0B,EAA4B;QAC5D,OAAO,IAAI,CAAC,YAAY,CAAC,SAAS,CAACA;IACvC;AACJ"}
package/Logger.js CHANGED
@@ -1,13 +1,14 @@
1
1
  import pino from "pino";
2
- const isProduction = process.env.NODE_ENV === "production";
3
- export const logger = pino({
4
- name: "Website Builder SDK",
5
- level: isProduction ? "silent" : "debug",
6
- ...(isProduction ? {} : {
7
- transport: {
8
- target: "pino-pretty"
2
+ const isProduction = "production" === process.env.NODE_ENV;
3
+ const logger = pino({
4
+ name: "Website Builder SDK",
5
+ level: isProduction ? "silent" : "debug",
6
+ ...isProduction ? {} : {
7
+ transport: {
8
+ target: "pino-pretty"
9
+ }
9
10
  }
10
- })
11
11
  });
12
+ export { logger };
12
13
 
13
14
  //# sourceMappingURL=Logger.js.map
package/Logger.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["pino","isProduction","process","env","NODE_ENV","logger","name","level","transport","target"],"sources":["Logger.ts"],"sourcesContent":["import pino from \"pino\";\n\nconst isProduction = process.env.NODE_ENV === \"production\";\n\nexport const logger = pino({\n name: \"Website Builder SDK\",\n level: isProduction ? \"silent\" : \"debug\",\n ...(isProduction ? {} : { transport: { target: \"pino-pretty\" } })\n});\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AAEvB,MAAMC,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY;AAE1D,OAAO,MAAMC,MAAM,GAAGL,IAAI,CAAC;EACvBM,IAAI,EAAE,qBAAqB;EAC3BC,KAAK,EAAEN,YAAY,GAAG,QAAQ,GAAG,OAAO;EACxC,IAAIA,YAAY,GAAG,CAAC,CAAC,GAAG;IAAEO,SAAS,EAAE;MAAEC,MAAM,EAAE;IAAc;EAAE,CAAC;AACpE,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"file":"Logger.js","sources":["../src/Logger.ts"],"sourcesContent":["import pino from \"pino\";\n\nconst isProduction = process.env.NODE_ENV === \"production\";\n\nexport const logger = pino({\n name: \"Website Builder SDK\",\n level: isProduction ? \"silent\" : \"debug\",\n ...(isProduction ? {} : { transport: { target: \"pino-pretty\" } })\n});\n"],"names":["isProduction","process","logger","pino"],"mappings":";AAEA,MAAMA,eAAeC,AAAyB,iBAAzBA,QAAQ,GAAG,CAAC,QAAQ;AAElC,MAAMC,SAASC,KAAK;IACvB,MAAM;IACN,OAAOH,eAAe,WAAW;IACjC,GAAIA,eAAe,CAAC,IAAI;QAAE,WAAW;YAAE,QAAQ;QAAc;IAAE,CAAC;AACpE"}
package/MouseTracker.js CHANGED
@@ -1,93 +1,87 @@
1
- export class MouseTracker {
2
- latest = null;
3
- lastSent = null;
4
- callbacks = new Set();
5
- frameId = null;
6
- listener = null;
7
- isTracking = false;
8
- constructor(window) {
9
- this.window = window;
10
- }
11
- start() {
12
- if (this.isTracking) {
13
- return;
1
+ class MouseTracker {
2
+ constructor(window1){
3
+ this.latest = null;
4
+ this.lastSent = null;
5
+ this.callbacks = new Set();
6
+ this.frameId = null;
7
+ this.listener = null;
8
+ this.isTracking = false;
9
+ this.window = window1;
14
10
  }
15
- this.isTracking = true;
16
- this.listener = e => {
17
- this.latest = {
18
- x: e.clientX,
19
- y: e.clientY
20
- };
21
- };
22
- this.window.addEventListener("mousemove", this.listener);
23
- const loop = () => {
24
- if (this.latest) {
25
- const {
26
- x,
27
- y
28
- } = this.latest;
29
- if (!this.lastSent || x !== this.lastSent.x || y !== this.lastSent.y) {
30
- this.lastSent = {
31
- x,
32
- y
33
- };
34
- this.callbacks.forEach(cb => cb({
35
- x,
36
- y
37
- }));
11
+ start() {
12
+ if (this.isTracking) return;
13
+ this.isTracking = true;
14
+ this.listener = (e)=>{
15
+ this.latest = {
16
+ x: e.clientX,
17
+ y: e.clientY
18
+ };
19
+ };
20
+ this.window.addEventListener("mousemove", this.listener);
21
+ const loop = ()=>{
22
+ if (this.latest) {
23
+ const { x, y } = this.latest;
24
+ if (!this.lastSent || x !== this.lastSent.x || y !== this.lastSent.y) {
25
+ this.lastSent = {
26
+ x,
27
+ y
28
+ };
29
+ this.callbacks.forEach((cb)=>cb({
30
+ x,
31
+ y
32
+ }));
33
+ }
34
+ }
35
+ this.frameId = this.window.requestAnimationFrame(loop);
36
+ };
37
+ this.frameId = this.window.requestAnimationFrame(loop);
38
+ }
39
+ stop() {
40
+ if (!this.isTracking) return;
41
+ this.isTracking = false;
42
+ if (this.listener) {
43
+ this.window.removeEventListener("mousemove", this.listener);
44
+ this.listener = null;
45
+ }
46
+ if (null !== this.frameId) {
47
+ this.window.cancelAnimationFrame(this.frameId);
48
+ this.frameId = null;
38
49
  }
39
- }
40
- this.frameId = this.window.requestAnimationFrame(loop);
41
- };
42
- this.frameId = this.window.requestAnimationFrame(loop);
43
- }
44
- stop() {
45
- if (!this.isTracking) {
46
- return;
50
+ this.latest = null;
51
+ this.lastSent = null;
52
+ }
53
+ subscribe(cb) {
54
+ this.callbacks.add(cb);
55
+ return ()=>this.callbacks.delete(cb);
47
56
  }
48
- this.isTracking = false;
49
- if (this.listener) {
50
- this.window.removeEventListener("mousemove", this.listener);
51
- this.listener = null;
57
+ get x() {
58
+ return this.latest?.x ?? 0;
52
59
  }
53
- if (this.frameId !== null) {
54
- this.window.cancelAnimationFrame(this.frameId);
55
- this.frameId = null;
60
+ get y() {
61
+ return this.latest?.y ?? 0;
62
+ }
63
+ setPosition(x, y) {
64
+ this.latest = {
65
+ x,
66
+ y
67
+ };
56
68
  }
57
- this.latest = null;
58
- this.lastSent = null;
59
- }
60
- subscribe(cb) {
61
- this.callbacks.add(cb);
62
- return () => this.callbacks.delete(cb);
63
- }
64
- get x() {
65
- return this.latest?.x ?? 0;
66
- }
67
- get y() {
68
- return this.latest?.y ?? 0;
69
- }
70
- setPosition(x, y) {
71
- this.latest = {
72
- x,
73
- y
74
- };
75
- }
76
69
  }
77
70
  class NullMouseTracker {
78
- get x() {
79
- return 0;
80
- }
81
- get y() {
82
- return 0;
83
- }
84
- setPosition() {}
85
- start() {}
86
- stop() {}
87
- subscribe() {
88
- return function () {};
89
- }
71
+ get x() {
72
+ return 0;
73
+ }
74
+ get y() {
75
+ return 0;
76
+ }
77
+ setPosition() {}
78
+ start() {}
79
+ stop() {}
80
+ subscribe() {
81
+ return function() {};
82
+ }
90
83
  }
91
- export const mouseTracker = typeof window !== "undefined" ? new MouseTracker(window) : new NullMouseTracker();
84
+ const mouseTracker = "u" > typeof window ? new MouseTracker(window) : new NullMouseTracker();
85
+ export { MouseTracker, mouseTracker };
92
86
 
93
87
  //# sourceMappingURL=MouseTracker.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["MouseTracker","latest","lastSent","callbacks","Set","frameId","listener","isTracking","constructor","window","start","e","x","clientX","y","clientY","addEventListener","loop","forEach","cb","requestAnimationFrame","stop","removeEventListener","cancelAnimationFrame","subscribe","add","delete","setPosition","NullMouseTracker","mouseTracker"],"sources":["MouseTracker.ts"],"sourcesContent":["type MousePosition = { x: number; y: number };\ntype MousePositionCallback = (pos: MousePosition) => void;\n\ninterface IMouseTracker {\n get x(): number;\n get y(): number;\n start(): void;\n stop(): void;\n subscribe(cb: MousePositionCallback): () => void;\n setPosition(x: number, y: number): void;\n}\n\nexport class MouseTracker implements IMouseTracker {\n private latest: MousePosition | null = null;\n private lastSent: MousePosition | null = null;\n private callbacks = new Set<MousePositionCallback>();\n private frameId: number | null = null;\n private listener: ((e: MouseEvent) => void) | null = null;\n private isTracking = false;\n private readonly window: Window;\n\n constructor(window: Window) {\n this.window = window;\n }\n\n start() {\n if (this.isTracking) {\n return;\n }\n\n this.isTracking = true;\n\n this.listener = (e: MouseEvent) => {\n this.latest = { x: e.clientX, y: e.clientY };\n };\n\n this.window.addEventListener(\"mousemove\", this.listener);\n\n const loop = () => {\n if (this.latest) {\n const { x, y } = this.latest;\n if (!this.lastSent || x !== this.lastSent.x || y !== this.lastSent.y) {\n this.lastSent = { x, y };\n this.callbacks.forEach(cb => cb({ x, y }));\n }\n }\n this.frameId = this.window.requestAnimationFrame(loop);\n };\n\n this.frameId = this.window.requestAnimationFrame(loop);\n }\n\n stop() {\n if (!this.isTracking) {\n return;\n }\n\n this.isTracking = false;\n\n if (this.listener) {\n this.window.removeEventListener(\"mousemove\", this.listener);\n this.listener = null;\n }\n\n if (this.frameId !== null) {\n this.window.cancelAnimationFrame(this.frameId);\n this.frameId = null;\n }\n\n this.latest = null;\n this.lastSent = null;\n }\n\n subscribe(cb: MousePositionCallback): () => void {\n this.callbacks.add(cb);\n return () => this.callbacks.delete(cb);\n }\n\n get x(): number {\n return this.latest?.x ?? 0;\n }\n\n get y(): number {\n return this.latest?.y ?? 0;\n }\n\n setPosition(x: number, y: number) {\n this.latest = { x, y };\n }\n}\n\nclass NullMouseTracker implements IMouseTracker {\n get x(): number {\n return 0;\n }\n\n get y(): number {\n return 0;\n }\n\n setPosition(): void {}\n\n start(): void {}\n\n stop(): void {}\n\n subscribe(): () => void {\n return function () {};\n }\n}\n\nexport const mouseTracker =\n typeof window !== \"undefined\" ? new MouseTracker(window) : new NullMouseTracker();\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"MouseTracker.js","sources":["../src/MouseTracker.ts"],"sourcesContent":["type MousePosition = { x: number; y: number };\ntype MousePositionCallback = (pos: MousePosition) => void;\n\ninterface IMouseTracker {\n get x(): number;\n get y(): number;\n start(): void;\n stop(): void;\n subscribe(cb: MousePositionCallback): () => void;\n setPosition(x: number, y: number): void;\n}\n\nexport class MouseTracker implements IMouseTracker {\n private latest: MousePosition | null = null;\n private lastSent: MousePosition | null = null;\n private callbacks = new Set<MousePositionCallback>();\n private frameId: number | null = null;\n private listener: ((e: MouseEvent) => void) | null = null;\n private isTracking = false;\n private readonly window: Window;\n\n constructor(window: Window) {\n this.window = window;\n }\n\n start() {\n if (this.isTracking) {\n return;\n }\n\n this.isTracking = true;\n\n this.listener = (e: MouseEvent) => {\n this.latest = { x: e.clientX, y: e.clientY };\n };\n\n this.window.addEventListener(\"mousemove\", this.listener);\n\n const loop = () => {\n if (this.latest) {\n const { x, y } = this.latest;\n if (!this.lastSent || x !== this.lastSent.x || y !== this.lastSent.y) {\n this.lastSent = { x, y };\n this.callbacks.forEach(cb => cb({ x, y }));\n }\n }\n this.frameId = this.window.requestAnimationFrame(loop);\n };\n\n this.frameId = this.window.requestAnimationFrame(loop);\n }\n\n stop() {\n if (!this.isTracking) {\n return;\n }\n\n this.isTracking = false;\n\n if (this.listener) {\n this.window.removeEventListener(\"mousemove\", this.listener);\n this.listener = null;\n }\n\n if (this.frameId !== null) {\n this.window.cancelAnimationFrame(this.frameId);\n this.frameId = null;\n }\n\n this.latest = null;\n this.lastSent = null;\n }\n\n subscribe(cb: MousePositionCallback): () => void {\n this.callbacks.add(cb);\n return () => this.callbacks.delete(cb);\n }\n\n get x(): number {\n return this.latest?.x ?? 0;\n }\n\n get y(): number {\n return this.latest?.y ?? 0;\n }\n\n setPosition(x: number, y: number) {\n this.latest = { x, y };\n }\n}\n\nclass NullMouseTracker implements IMouseTracker {\n get x(): number {\n return 0;\n }\n\n get y(): number {\n return 0;\n }\n\n setPosition(): void {}\n\n start(): void {}\n\n stop(): void {}\n\n subscribe(): () => void {\n return function () {};\n }\n}\n\nexport const mouseTracker =\n typeof window !== \"undefined\" ? new MouseTracker(window) : new NullMouseTracker();\n"],"names":["MouseTracker","window1","Set","e","loop","x","y","cb","NullMouseTracker","mouseTracker","window"],"mappings":"AAYO,MAAMA;IAST,YAAYC,OAAc,CAAE;aARpB,MAAM,GAAyB;aAC/B,QAAQ,GAAyB;aACjC,SAAS,GAAG,IAAIC;aAChB,OAAO,GAAkB;aACzB,QAAQ,GAAqC;aAC7C,UAAU,GAAG;QAIjB,IAAI,CAAC,MAAM,GAAGD;IAClB;IAEA,QAAQ;QACJ,IAAI,IAAI,CAAC,UAAU,EACf;QAGJ,IAAI,CAAC,UAAU,GAAG;QAElB,IAAI,CAAC,QAAQ,GAAG,CAACE;YACb,IAAI,CAAC,MAAM,GAAG;gBAAE,GAAGA,EAAE,OAAO;gBAAE,GAAGA,EAAE,OAAO;YAAC;QAC/C;QAEA,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,aAAa,IAAI,CAAC,QAAQ;QAEvD,MAAMC,OAAO;YACT,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,MAAM,EAAEC,CAAC,EAAEC,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM;gBAC5B,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAID,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAIC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;oBAClE,IAAI,CAAC,QAAQ,GAAG;wBAAED;wBAAGC;oBAAE;oBACvB,IAAI,CAAC,SAAS,CAAC,OAAO,CAACC,CAAAA,KAAMA,GAAG;4BAAEF;4BAAGC;wBAAE;gBAC3C;YACJ;YACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAACF;QACrD;QAEA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAACA;IACrD;IAEA,OAAO;QACH,IAAI,CAAC,IAAI,CAAC,UAAU,EAChB;QAGJ,IAAI,CAAC,UAAU,GAAG;QAElB,IAAI,IAAI,CAAC,QAAQ,EAAE;YACf,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,aAAa,IAAI,CAAC,QAAQ;YAC1D,IAAI,CAAC,QAAQ,GAAG;QACpB;QAEA,IAAI,AAAiB,SAAjB,IAAI,CAAC,OAAO,EAAW;YACvB,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO;YAC7C,IAAI,CAAC,OAAO,GAAG;QACnB;QAEA,IAAI,CAAC,MAAM,GAAG;QACd,IAAI,CAAC,QAAQ,GAAG;IACpB;IAEA,UAAUG,EAAyB,EAAc;QAC7C,IAAI,CAAC,SAAS,CAAC,GAAG,CAACA;QACnB,OAAO,IAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAACA;IACvC;IAEA,IAAI,IAAY;QACZ,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK;IAC7B;IAEA,IAAI,IAAY;QACZ,OAAO,IAAI,CAAC,MAAM,EAAE,KAAK;IAC7B;IAEA,YAAYF,CAAS,EAAEC,CAAS,EAAE;QAC9B,IAAI,CAAC,MAAM,GAAG;YAAED;YAAGC;QAAE;IACzB;AACJ;AAEA,MAAME;IACF,IAAI,IAAY;QACZ,OAAO;IACX;IAEA,IAAI,IAAY;QACZ,OAAO;IACX;IAEA,cAAoB,CAAC;IAErB,QAAc,CAAC;IAEf,OAAa,CAAC;IAEd,YAAwB;QACpB,OAAO,YAAa;IACxB;AACJ;AAEO,MAAMC,eACT,AAAkB,MAAlB,OAAOC,SAAyB,IAAIV,aAAaU,UAAU,IAAIF"}
package/NullSdk.js CHANGED
@@ -1,24 +1,25 @@
1
- export class NullSdk {
2
- async getPage() {
3
- return null;
4
- }
5
- listPages() {
6
- return Promise.resolve({
7
- data: [],
8
- meta: {
9
- hasMoreItems: false,
10
- totalCount: 0,
11
- cursor: null
12
- }
13
- });
14
- }
15
- listRedirects() {
16
- return Promise.resolve([]);
17
- }
18
- registerComponent() {}
19
- resolveElement() {
20
- return null;
21
- }
1
+ class NullSdk {
2
+ async getPage() {
3
+ return null;
4
+ }
5
+ listPages() {
6
+ return Promise.resolve({
7
+ data: [],
8
+ meta: {
9
+ hasMoreItems: false,
10
+ totalCount: 0,
11
+ cursor: null
12
+ }
13
+ });
14
+ }
15
+ listRedirects() {
16
+ return Promise.resolve([]);
17
+ }
18
+ registerComponent() {}
19
+ resolveElement() {
20
+ return null;
21
+ }
22
22
  }
23
+ export { NullSdk };
23
24
 
24
25
  //# sourceMappingURL=NullSdk.js.map
package/NullSdk.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["NullSdk","getPage","listPages","Promise","resolve","data","meta","hasMoreItems","totalCount","cursor","listRedirects","registerComponent","resolveElement"],"sources":["NullSdk.ts"],"sourcesContent":["import type { IContentSdk, ListPagesResult, PublicRedirect, ResolvedComponent } from \"./types.js\";\nimport type { PublicPage } from \"./types.js\";\n\nexport class NullSdk implements IContentSdk {\n async getPage(): Promise<PublicPage | null> {\n return null;\n }\n\n listPages(): Promise<ListPagesResult> {\n return Promise.resolve({\n data: [],\n meta: { hasMoreItems: false, totalCount: 0, cursor: null }\n });\n }\n\n listRedirects(): Promise<PublicRedirect[]> {\n return Promise.resolve([]);\n }\n\n registerComponent(): void {}\n\n resolveElement(): ResolvedComponent[] | null {\n return null;\n }\n}\n"],"mappings":"AAGA,OAAO,MAAMA,OAAO,CAAwB;EACxC,MAAMC,OAAOA,CAAA,EAA+B;IACxC,OAAO,IAAI;EACf;EAEAC,SAASA,CAAA,EAA6B;IAClC,OAAOC,OAAO,CAACC,OAAO,CAAC;MACnBC,IAAI,EAAE,EAAE;MACRC,IAAI,EAAE;QAAEC,YAAY,EAAE,KAAK;QAAEC,UAAU,EAAE,CAAC;QAAEC,MAAM,EAAE;MAAK;IAC7D,CAAC,CAAC;EACN;EAEAC,aAAaA,CAAA,EAA8B;IACvC,OAAOP,OAAO,CAACC,OAAO,CAAC,EAAE,CAAC;EAC9B;EAEAO,iBAAiBA,CAAA,EAAS,CAAC;EAE3BC,cAAcA,CAAA,EAA+B;IACzC,OAAO,IAAI;EACf;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"NullSdk.js","sources":["../src/NullSdk.ts"],"sourcesContent":["import type { IContentSdk, ListPagesResult, PublicRedirect, ResolvedComponent } from \"./types.js\";\nimport type { PublicPage } from \"./types.js\";\n\nexport class NullSdk implements IContentSdk {\n async getPage(): Promise<PublicPage | null> {\n return null;\n }\n\n listPages(): Promise<ListPagesResult> {\n return Promise.resolve({\n data: [],\n meta: { hasMoreItems: false, totalCount: 0, cursor: null }\n });\n }\n\n listRedirects(): Promise<PublicRedirect[]> {\n return Promise.resolve([]);\n }\n\n registerComponent(): void {}\n\n resolveElement(): ResolvedComponent[] | null {\n return null;\n }\n}\n"],"names":["NullSdk","Promise"],"mappings":"AAGO,MAAMA;IACT,MAAM,UAAsC;QACxC,OAAO;IACX;IAEA,YAAsC;QAClC,OAAOC,QAAQ,OAAO,CAAC;YACnB,MAAM,EAAE;YACR,MAAM;gBAAE,cAAc;gBAAO,YAAY;gBAAG,QAAQ;YAAK;QAC7D;IACJ;IAEA,gBAA2C;QACvC,OAAOA,QAAQ,OAAO,CAAC,EAAE;IAC7B;IAEA,oBAA0B,CAAC;IAE3B,iBAA6C;QACzC,OAAO;IACX;AACJ"}
@@ -1,35 +1,32 @@
1
1
  import { getHeadersProvider } from "./headersProvider.js";
2
- export class PreviewDocument {
3
- constructor(prefix, query) {
4
- this.props = {};
5
- query.forEach((value, key) => {
6
- if (key.startsWith(prefix + ".")) {
7
- const strippedKey = key.slice(prefix.length + 1); // +1 for the dot
8
- this.props[strippedKey] = value;
9
- }
10
- });
11
- }
12
- static createFromWindow() {
13
- const query = new URLSearchParams(window.location.search);
14
- return new PreviewDocument("wb", query);
15
- }
16
- static async createFromHeaders() {
17
- const headersProvider = getHeadersProvider();
18
- const headers = await headersProvider();
19
- const previewFromHeaders = headers.get("X-Preview-Params");
20
- return new PreviewDocument("wb", new URLSearchParams(previewFromHeaders ?? ""));
21
- }
22
- matches(params) {
23
- for (const [key, value] of Object.entries(params)) {
24
- if (this.props[key] !== value) {
25
- return false;
26
- }
2
+ class PreviewDocument {
3
+ constructor(prefix, query){
4
+ this.props = {};
5
+ query.forEach((value, key)=>{
6
+ if (key.startsWith(prefix + ".")) {
7
+ const strippedKey = key.slice(prefix.length + 1);
8
+ this.props[strippedKey] = value;
9
+ }
10
+ });
11
+ }
12
+ static createFromWindow() {
13
+ const query = new URLSearchParams(window.location.search);
14
+ return new PreviewDocument("wb", query);
15
+ }
16
+ static async createFromHeaders() {
17
+ const headersProvider = getHeadersProvider();
18
+ const headers = await headersProvider();
19
+ const previewFromHeaders = headers.get("X-Preview-Params");
20
+ return new PreviewDocument("wb", new URLSearchParams(previewFromHeaders ?? ""));
21
+ }
22
+ matches(params) {
23
+ for (const [key, value] of Object.entries(params))if (this.props[key] !== value) return false;
24
+ return true;
25
+ }
26
+ getId() {
27
+ return this.props.id;
27
28
  }
28
- return true;
29
- }
30
- getId() {
31
- return this.props.id;
32
- }
33
29
  }
30
+ export { PreviewDocument };
34
31
 
35
32
  //# sourceMappingURL=PreviewDocument.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["getHeadersProvider","PreviewDocument","constructor","prefix","query","props","forEach","value","key","startsWith","strippedKey","slice","length","createFromWindow","URLSearchParams","window","location","search","createFromHeaders","headersProvider","headers","previewFromHeaders","get","matches","params","Object","entries","getId","id"],"sources":["PreviewDocument.ts"],"sourcesContent":["import { getHeadersProvider } from \"./headersProvider.js\";\n\nexport class PreviewDocument {\n public readonly props: Record<string, string>;\n\n private constructor(prefix: string, query: URLSearchParams) {\n this.props = {};\n query.forEach((value, key) => {\n if (key.startsWith(prefix + \".\")) {\n const strippedKey = key.slice(prefix.length + 1); // +1 for the dot\n this.props[strippedKey] = value as string;\n }\n });\n }\n\n static createFromWindow(): PreviewDocument {\n const query = new URLSearchParams(window.location.search);\n return new PreviewDocument(\"wb\", query);\n }\n\n static async createFromHeaders(): Promise<PreviewDocument> {\n const headersProvider = getHeadersProvider();\n const headers = await headersProvider();\n const previewFromHeaders = headers.get(\"X-Preview-Params\");\n\n return new PreviewDocument(\"wb\", new URLSearchParams(previewFromHeaders ?? \"\"));\n }\n\n matches(params: Record<string, string>) {\n for (const [key, value] of Object.entries(params)) {\n if (this.props[key] !== value) {\n return false;\n }\n }\n return true;\n }\n\n getId() {\n return this.props.id;\n }\n}\n"],"mappings":"AAAA,SAASA,kBAAkB;AAE3B,OAAO,MAAMC,eAAe,CAAC;EAGjBC,WAAWA,CAACC,MAAc,EAAEC,KAAsB,EAAE;IACxD,IAAI,CAACC,KAAK,GAAG,CAAC,CAAC;IACfD,KAAK,CAACE,OAAO,CAAC,CAACC,KAAK,EAAEC,GAAG,KAAK;MAC1B,IAAIA,GAAG,CAACC,UAAU,CAACN,MAAM,GAAG,GAAG,CAAC,EAAE;QAC9B,MAAMO,WAAW,GAAGF,GAAG,CAACG,KAAK,CAACR,MAAM,CAACS,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,IAAI,CAACP,KAAK,CAACK,WAAW,CAAC,GAAGH,KAAe;MAC7C;IACJ,CAAC,CAAC;EACN;EAEA,OAAOM,gBAAgBA,CAAA,EAAoB;IACvC,MAAMT,KAAK,GAAG,IAAIU,eAAe,CAACC,MAAM,CAACC,QAAQ,CAACC,MAAM,CAAC;IACzD,OAAO,IAAIhB,eAAe,CAAC,IAAI,EAAEG,KAAK,CAAC;EAC3C;EAEA,aAAac,iBAAiBA,CAAA,EAA6B;IACvD,MAAMC,eAAe,GAAGnB,kBAAkB,CAAC,CAAC;IAC5C,MAAMoB,OAAO,GAAG,MAAMD,eAAe,CAAC,CAAC;IACvC,MAAME,kBAAkB,GAAGD,OAAO,CAACE,GAAG,CAAC,kBAAkB,CAAC;IAE1D,OAAO,IAAIrB,eAAe,CAAC,IAAI,EAAE,IAAIa,eAAe,CAACO,kBAAkB,IAAI,EAAE,CAAC,CAAC;EACnF;EAEAE,OAAOA,CAACC,MAA8B,EAAE;IACpC,KAAK,MAAM,CAAChB,GAAG,EAAED,KAAK,CAAC,IAAIkB,MAAM,CAACC,OAAO,CAACF,MAAM,CAAC,EAAE;MAC/C,IAAI,IAAI,CAACnB,KAAK,CAACG,GAAG,CAAC,KAAKD,KAAK,EAAE;QAC3B,OAAO,KAAK;MAChB;IACJ;IACA,OAAO,IAAI;EACf;EAEAoB,KAAKA,CAAA,EAAG;IACJ,OAAO,IAAI,CAACtB,KAAK,CAACuB,EAAE;EACxB;AACJ","ignoreList":[]}
1
+ {"version":3,"file":"PreviewDocument.js","sources":["../src/PreviewDocument.ts"],"sourcesContent":["import { getHeadersProvider } from \"./headersProvider.js\";\n\nexport class PreviewDocument {\n public readonly props: Record<string, string>;\n\n private constructor(prefix: string, query: URLSearchParams) {\n this.props = {};\n query.forEach((value, key) => {\n if (key.startsWith(prefix + \".\")) {\n const strippedKey = key.slice(prefix.length + 1); // +1 for the dot\n this.props[strippedKey] = value as string;\n }\n });\n }\n\n static createFromWindow(): PreviewDocument {\n const query = new URLSearchParams(window.location.search);\n return new PreviewDocument(\"wb\", query);\n }\n\n static async createFromHeaders(): Promise<PreviewDocument> {\n const headersProvider = getHeadersProvider();\n const headers = await headersProvider();\n const previewFromHeaders = headers.get(\"X-Preview-Params\");\n\n return new PreviewDocument(\"wb\", new URLSearchParams(previewFromHeaders ?? \"\"));\n }\n\n matches(params: Record<string, string>) {\n for (const [key, value] of Object.entries(params)) {\n if (this.props[key] !== value) {\n return false;\n }\n }\n return true;\n }\n\n getId() {\n return this.props.id;\n }\n}\n"],"names":["PreviewDocument","prefix","query","value","key","strippedKey","URLSearchParams","window","headersProvider","getHeadersProvider","headers","previewFromHeaders","params","Object"],"mappings":";AAEO,MAAMA;IAGT,YAAoBC,MAAc,EAAEC,KAAsB,CAAE;QACxD,IAAI,CAAC,KAAK,GAAG,CAAC;QACdA,MAAM,OAAO,CAAC,CAACC,OAAOC;YAClB,IAAIA,IAAI,UAAU,CAACH,SAAS,MAAM;gBAC9B,MAAMI,cAAcD,IAAI,KAAK,CAACH,OAAO,MAAM,GAAG;gBAC9C,IAAI,CAAC,KAAK,CAACI,YAAY,GAAGF;YAC9B;QACJ;IACJ;IAEA,OAAO,mBAAoC;QACvC,MAAMD,QAAQ,IAAII,gBAAgBC,OAAO,QAAQ,CAAC,MAAM;QACxD,OAAO,IAAIP,gBAAgB,MAAME;IACrC;IAEA,aAAa,oBAA8C;QACvD,MAAMM,kBAAkBC;QACxB,MAAMC,UAAU,MAAMF;QACtB,MAAMG,qBAAqBD,QAAQ,GAAG,CAAC;QAEvC,OAAO,IAAIV,gBAAgB,MAAM,IAAIM,gBAAgBK,sBAAsB;IAC/E;IAEA,QAAQC,MAA8B,EAAE;QACpC,KAAK,MAAM,CAACR,KAAKD,MAAM,IAAIU,OAAO,OAAO,CAACD,QACtC,IAAI,IAAI,CAAC,KAAK,CAACR,IAAI,KAAKD,OACpB,OAAO;QAGf,OAAO;IACX;IAEA,QAAQ;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,EAAE;IACxB;AACJ"}