@sitecore-feaas/clientside 0.3.2 → 0.3.4

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 (66) hide show
  1. package/README.md +1 -1
  2. package/build/dom/html.js +7 -2
  3. package/build/dom/html.js.map +1 -1
  4. package/build/dom/rendering.js +4 -3
  5. package/build/dom/rendering.js.map +1 -1
  6. package/build/ui/FEAASExternal.js +1 -3
  7. package/build/ui/FEAASExternal.js.map +1 -1
  8. package/build/ui/FEAASPicker.js +8 -5
  9. package/build/ui/FEAASPicker.js.map +1 -1
  10. package/build/ui/react.js +31 -11
  11. package/build/ui/react.js.map +1 -1
  12. package/build/utils/data.js +4 -3
  13. package/build/utils/data.js.map +1 -1
  14. package/dist/browser/headless.cjs +6 -6
  15. package/dist/browser/headless.cjs.map +3 -3
  16. package/dist/browser/headless.esm.js +6 -6
  17. package/dist/browser/headless.esm.js.map +1 -1
  18. package/dist/browser/index.cjs +6 -6
  19. package/dist/browser/index.cjs.map +3 -3
  20. package/dist/browser/index.esm.js +6 -6
  21. package/dist/browser/index.esm.js.map +1 -1
  22. package/dist/browser/react.cjs +7 -7
  23. package/dist/browser/react.cjs.map +3 -3
  24. package/dist/browser/react.esm.js +7 -7
  25. package/dist/browser/react.esm.js.map +1 -1
  26. package/dist/node/headless.cjs +4 -4
  27. package/dist/node/headless.cjs.map +3 -3
  28. package/dist/node/headless.esm.js +4 -4
  29. package/dist/node/headless.esm.js.map +3 -3
  30. package/dist/node/index.cjs +5 -5
  31. package/dist/node/index.cjs.map +3 -3
  32. package/dist/node/index.esm.js +4 -4
  33. package/dist/node/index.esm.js.map +3 -3
  34. package/dist/node/react.cjs +5 -5
  35. package/dist/node/react.cjs.map +3 -3
  36. package/dist/node/react.esm.js +4 -4
  37. package/dist/node/react.esm.js.map +3 -3
  38. package/headless.cjs +4 -4
  39. package/headless.cjs.map +3 -3
  40. package/headless.js +4 -4
  41. package/headless.js.map +3 -3
  42. package/package.json +1 -1
  43. package/react.cjs +7 -7
  44. package/react.cjs.map +3 -3
  45. package/react.js +7 -7
  46. package/react.js.map +3 -3
  47. package/src/dom/html.ts +9 -3
  48. package/src/dom/rendering.ts +4 -3
  49. package/src/ui/FEAASExternal.tsx +1 -3
  50. package/src/ui/FEAASPicker.tsx +9 -5
  51. package/src/ui/react.tsx +44 -12
  52. package/src/utils/data.ts +3 -3
  53. package/test/ServerComponent.test.tsx +56 -2
  54. package/types/dom/html.d.ts +3 -3
  55. package/types/dom/html.d.ts.map +1 -1
  56. package/types/dom/rendering.d.ts.map +1 -1
  57. package/types/tsbuildinfo +1 -1
  58. package/types/ui/FEAASExternal.d.ts +1 -3
  59. package/types/ui/FEAASExternal.d.ts.map +1 -1
  60. package/types/ui/FEAASPicker.d.ts +4 -1
  61. package/types/ui/FEAASPicker.d.ts.map +1 -1
  62. package/types/ui/react.d.ts +7 -2
  63. package/types/ui/react.d.ts.map +1 -1
  64. package/types/ui/tsbuildinfo +1 -1
  65. package/types/utils/data.d.ts +1 -1
  66. package/types/utils/data.d.ts.map +1 -1
package/src/dom/html.ts CHANGED
@@ -3,9 +3,9 @@
3
3
  import { DataScopes } from '../utils/settings.js'
4
4
  import { FEAASCustomizations, renderDOMElement } from './rendering.js'
5
5
 
6
- type HTMLAttribute = { name: string; value: string }
6
+ export type HTMLAttribute = { name: string; value: string }
7
7
 
8
- class HTMLNode {
8
+ export class HTMLNode {
9
9
  nodeName: string
10
10
  nodeType: number
11
11
  textContent?: string
@@ -324,7 +324,13 @@ export function serializeHTML(nodes: HTMLNode[]): string {
324
324
  }
325
325
 
326
326
  export function renderHTMLContent(template: string, data?: DataScopes, config?: FEAASCustomizations) {
327
+ return parseHTMLContent(template, data, config)[0].outerHTML
328
+ }
329
+
330
+ export function parseHTMLContent(template: string, data?: DataScopes, config?: FEAASCustomizations) {
327
331
  const newTemplate = config?.processTemplate?.(null, template, data) || template
328
332
  const nodes = parseHTML(newTemplate)
329
- return renderDOMElement(nodes[0] as unknown as HTMLElement, data, config).outerHTML
333
+ return nodes.map((node) => {
334
+ return renderDOMElement(node as unknown as HTMLElement, data, config)
335
+ }) as unknown as HTMLNode[]
330
336
  }
@@ -128,8 +128,9 @@ export function setDOMAttribute(element: HTMLElement, attribute: string, value:
128
128
 
129
129
  if (value != null) {
130
130
  if (prop == 'innerHTML') {
131
- if (target.innerHTML != value) {
132
- target.innerHTML = value
131
+ var str = String(value)
132
+ if (target.innerHTML != str) {
133
+ target.innerHTML = str
133
134
  }
134
135
  } else {
135
136
  if (target.getAttribute(prop) != value) {
@@ -161,7 +162,7 @@ export function renderDOMElement(
161
162
  const datascope = element.getAttribute('data-path-scope')
162
163
  if (datascope) {
163
164
  const index = getDOMCollectionIndex(element)
164
- const collection = queryScopes(datascopes, datascope, false) || []
165
+ const collection = queryScopes(datascopes, datascope, false)
165
166
  if (index == 0) {
166
167
  updateDOMClones(element, config?.shouldRepeat?.(element, collection) === false ? 1 : collection.length, config)
167
168
  }
@@ -258,7 +258,5 @@ declare global {
258
258
  FEAASExternal.register('feaas-external')
259
259
  FEAASExternal.setRegistrationCallback()
260
260
 
261
- export const registerComponent = FEAASExternal.registerComponent
262
- export const linkComponents = FEAASExternal.linkComponents
263
- export const getComponent = FEAASExternal.getComponent
261
+ export const { getComponent, linkComponents, registerComponent } = FEAASExternal
264
262
  export { FEAASExternal as External }
@@ -6,6 +6,7 @@ export function FEAASPickerProps(element: FEAASElement<any, any>) {
6
6
  part: element?.getAttribute('part') || 'picker',
7
7
  slot: element?.getAttribute('part') || 'picker',
8
8
  mode: element?.getAttribute('mode') as FEAASPickerImports.PickerProps['mode'],
9
+ dialog: element?.getAttribute('dialog') as FEAASPickerImports.PickerProps['dialog'],
9
10
  placeholder: element?.getAttribute('placeholder') || 'No theme',
10
11
  frontend: element?.getContextAttribute('frontend') ?? 'https://components.sitecorecloud.io',
11
12
  src: element?.getAttribute('src') ?? '/picker.js',
@@ -20,7 +21,7 @@ export function FEAASPickerProps(element: FEAASElement<any, any>) {
20
21
  export type FEAASPickerProps = ReturnType<typeof FEAASPickerProps>
21
22
 
22
23
  export class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof FEAASPickerImports> {
23
- static observedAttributes = ['library', 'mode', 'frontend', 'src', 'hidden', 'variant']
24
+ static observedAttributes = ['library', 'mode', 'frontend', 'src', 'hidden', 'variant', 'dialog']
24
25
 
25
26
  defaultProps = {
26
27
  hidden: false
@@ -38,12 +39,13 @@ export class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof FEAASPick
38
39
  super.connectedCallback()
39
40
  }
40
41
  render(
41
- { placeholder, context, mode, children, variant }: React.PropsWithChildren<FEAASPickerProps>,
42
- { Picker, React, useLibrary }: typeof FEAASPickerImports
42
+ { placeholder, context, mode, dialog, children, variant }: React.PropsWithChildren<FEAASPickerProps>,
43
+ { Picker, React, useLibrary, useSDK }: typeof FEAASPickerImports
43
44
  ) {
44
45
  const [renders, forceRender] = React.useReducer((c) => c + 1, 0)
45
46
  const collections = useLibrary('collections')
46
47
  const components = useLibrary('components')
48
+ const datasources = useSDK('datasources')
47
49
  const rules = useLibrary('stylesheet.styles')
48
50
  const component = components.find((c) => c.id == context?.getAttribute('component'))
49
51
  var settings = context?.getAttribute('data')
@@ -52,6 +54,7 @@ export class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof FEAASPick
52
54
  settings = JSON.parse(settings)
53
55
  } catch (e) {}
54
56
  }
57
+ const datasource = mode == 'datasources' ? datasources.find((d) => d.id == dialog) : null
55
58
  return (
56
59
  <Picker
57
60
  rules={rules}
@@ -59,6 +62,7 @@ export class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof FEAASPick
59
62
  themeContext={context}
60
63
  placeholder={placeholder}
61
64
  component={component}
65
+ datasource={datasource}
62
66
  data={settings}
63
67
  versionId={context?.getAttribute('version')}
64
68
  mode={mode || (component ? 'component' : null)}
@@ -69,8 +73,8 @@ export class FEAASPicker extends FEAASElement<FEAASPickerProps, typeof FEAASPick
69
73
  }}
70
74
  context={context}
71
75
  variant={variant}
72
- onModeChange={(mode) => {
73
- this.set({ mode })
76
+ onModeChange={(mode, dialog) => {
77
+ this.set({ mode, dialog })
74
78
  }}
75
79
  >
76
80
  {children}
package/src/ui/react.tsx CHANGED
@@ -6,10 +6,10 @@ import {
6
6
  parseComponentSource
7
7
  } from './index.js'
8
8
  import React from 'react'
9
- import { renderHTMLContent } from '../dom/html.js'
9
+ import { renderHTMLContent, HTMLNode, parseHTMLContent } from '../dom/html.js'
10
10
  import { DataSettings } from '../utils/settings.js'
11
-
12
11
  export { renderHTMLContent }
12
+ import { getComponent } from './FEAASExternal.js'
13
13
  export { External, linkComponents, registerComponent, getComponent } from './FEAASExternal.js'
14
14
  export * from './index.js'
15
15
  export * from '../headless.js'
@@ -37,20 +37,20 @@ export const ServerComponent = async (props: FEAASComponentProps) => {
37
37
  export function FEAASReactComponent({ data, ...props }: FEAASReactComponentProps) {
38
38
  let html = ''
39
39
  let preload = null
40
+ let children: null | React.ReactNode
40
41
 
41
42
  if ('template' in props && props.template) {
42
- html = renderHTMLContent(props.template, data || {})
43
+ children = parseHTMLContent(props.template, data || {}).map((node) =>
44
+ HTMLNodeToReact(node, (node) => {
45
+ if (node.localName == 'feaas-external' && getComponent(node.getAttribute('data-external-id'))) {
46
+ return [FEAASReactExternal, {}]
47
+ }
48
+ })
49
+ )
43
50
  }
44
51
 
45
52
  if ('src' in props) {
46
53
  props = { ...parseComponentSource(props.src), ...props }
47
- } else if (!('template' in props)) {
48
- if (!props.version) {
49
- props = {
50
- ...props,
51
- version: 'responsive'
52
- }
53
- }
54
54
  }
55
55
 
56
56
  return (
@@ -66,10 +66,42 @@ export function FEAASReactComponent({ data, ...props }: FEAASReactComponentProps
66
66
  suppressHydrationWarning={true}
67
67
  template={null}
68
68
  data={typeof data == 'string' ? data : data ? JSON.stringify(data) : null}
69
- dangerouslySetInnerHTML={{ __html: html || '' }}
70
- />
69
+ >
70
+ {children}
71
+ </feaas-component>
71
72
  </>
72
73
  )
73
74
  }
74
75
 
76
+ export function FEAASReactExternal(props: { 'data-external-id': string }) {
77
+ const Component = getComponent(props['data-external-id'])?.component
78
+ return (
79
+ <feaas-external {...props}>
80
+ <Component {...props} />
81
+ </feaas-external>
82
+ )
83
+ }
84
+
85
+ /** Turn HTMLNode into React tree. It accepts callback to customize the behavior */
86
+ export function HTMLNodeToReact(
87
+ node: HTMLNode,
88
+ callback?: (node: HTMLNode) => [tagName: any, attributes: Record<string, any>]
89
+ ): React.ReactNode {
90
+ if (node.nodeType === 3) {
91
+ return node.textContent
92
+ }
93
+ const children = Array.from(node.childNodes).map((child) => HTMLNodeToReact(child, callback))
94
+
95
+ const attributes: { [key: string]: string } = {}
96
+ for (let i = 0; i < node.attributes.length; i++) {
97
+ const { name, value } = node.attributes[i]
98
+ attributes[name] = value
99
+ }
100
+
101
+ const reactNode = callback?.(node)
102
+ const reactName = reactNode?.[0] || node.nodeName.toLowerCase()
103
+ const reactAttributes = Object.assign(attributes, reactName?.[1] || {})
104
+ return React.createElement(reactName, reactAttributes, ['img', 'br', 'input'].includes(reactName) ? null : children)
105
+ }
106
+
75
107
  export const Component = FEAASReactComponent
package/src/utils/data.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { JSONPath } from 'jsonpath-plus'
2
2
 
3
3
  export function queryObject(json: any, path: string) {
4
- return JSONPath({ path, json })
4
+ return JSONPath<any[]>({ path, json })?.flat(Infinity) || []
5
5
  }
6
6
 
7
7
  export function queryScopes(scopes: any, datapath: string, singleValue = false, json: any = scopes) {
@@ -23,7 +23,7 @@ export function queryScopes(scopes: any, datapath: string, singleValue = false,
23
23
  }
24
24
  }
25
25
 
26
- var collection = JSONPath({ path, json })
26
+ var collection = queryObject(json, path)
27
27
 
28
28
  // If regular path didn't match any data, try fallbacks
29
29
  // datasourceId.wrapper.$.path
@@ -49,7 +49,7 @@ export function queryScopes(scopes: any, datapath: string, singleValue = false,
49
49
  ]
50
50
  .filter((v, i, a) => a.indexOf(v) === i)
51
51
  .reduce((v, path) => {
52
- return v.length > 0 ? v : JSONPath({ path, json })
52
+ return v.length > 0 ? v : queryObject(json, path)
53
53
  }, [] as any[])
54
54
  }
55
55
 
@@ -1,6 +1,6 @@
1
- import React from 'react'
1
+ import React, { useContext } from 'react'
2
2
  import { beforeAll, beforeEach, describe, expect, it, vi } from 'vitest'
3
- import { ServerComponent } from '../src/ui/react.js'
3
+ import { ServerComponent, registerComponent } from '../src/ui/react.js'
4
4
  import { FEAASComponent } from '../src/components/FEAASComponent.js'
5
5
  import { test } from './FEAASComponent.react.test.js'
6
6
 
@@ -41,4 +41,58 @@ describe('React Server', () => {
41
41
  `<feaas-component library="library" component="test" src="library/test" data="{&quot;data&quot;:&quot;2&quot;}">Test</feaas-component>`
42
42
  )
43
43
  })
44
+ it('pre-render data', async () => {
45
+ vi.spyOn(global, 'fetch').mockImplementation(
46
+ async (url: string, options: Parameters<typeof fetch>[1] = {}) =>
47
+ new Response('Hey: <var data-path="value"></var>!')
48
+ )
49
+
50
+ const Component = await ServerComponent({ src: 'library/test', data: { value: 0 } })
51
+ await test(
52
+ <>{Component}</>,
53
+ `<feaas-component library="library" component="test" src="library/test" data="{&quot;value&quot;:0}">Hey: <var data-path="value">0</var>!</feaas-component>`
54
+ )
55
+ })
56
+ it('render external component', async () => {
57
+ function MyComponent() {
58
+ return <h1>My Component</h1>
59
+ }
60
+ registerComponent(MyComponent, {
61
+ name: 'test-server-external'
62
+ })
63
+ vi.spyOn(global, 'fetch').mockImplementation(
64
+ async (url: string, options: Parameters<typeof fetch>[1] = {}) =>
65
+ new Response('<p>This?</p><feaas-external data-external-id="test-server-external"></feaas-external>')
66
+ )
67
+
68
+ const Component = await ServerComponent({ src: 'library/test', data: { value: 0 } })
69
+ await test(
70
+ <>{Component}</>,
71
+ `<feaas-component library="library" component="test" src="library/test" data="{&quot;value&quot;:0}"><p>This?</p><feaas-external data-external-id="test-server-external"><h1>My Component</h1></feaas-external></feaas-component>`
72
+ )
73
+ })
74
+ it('render external component with context', async () => {
75
+ const Context = React.createContext({
76
+ test: 'abc'
77
+ })
78
+ function MyComponent() {
79
+ const { test } = useContext(Context)
80
+ return <h1>My Component: {test}</h1>
81
+ }
82
+ registerComponent(MyComponent, {
83
+ name: 'test-server-external-context'
84
+ })
85
+ vi.spyOn(global, 'fetch').mockImplementation(
86
+ async (url: string, options: Parameters<typeof fetch>[1] = {}) =>
87
+ new Response('<p>This?</p><feaas-external data-external-id="test-server-external-context"></feaas-external>')
88
+ )
89
+
90
+ const Component = await ServerComponent({ src: 'library/test', data: { value: 0 } })
91
+ await test(
92
+ <Context.Provider value={{ test: 'cde' }}>
93
+ <>{Component}</>
94
+ </Context.Provider>,
95
+ `<feaas-component library="library" component="test" src="library/test" data="{&quot;value&quot;:0}"><p>This?</p><feaas-external data-external-id="test-server-external-context"><h1>My Component: cde</h1></feaas-external></feaas-component>`
96
+ )
97
+ })
44
98
  })
@@ -1,11 +1,11 @@
1
1
  /** Lightweight DOM parser and serializer to use in server environments */
2
2
  import { DataScopes } from '../utils/settings.js';
3
3
  import { FEAASCustomizations } from './rendering.js';
4
- type HTMLAttribute = {
4
+ export type HTMLAttribute = {
5
5
  name: string;
6
6
  value: string;
7
7
  };
8
- declare class HTMLNode {
8
+ export declare class HTMLNode {
9
9
  nodeName: string;
10
10
  nodeType: number;
11
11
  textContent?: string;
@@ -43,5 +43,5 @@ export declare function parseHTML(html: string): HTMLNode[];
43
43
  export declare function escapeHTML(input: string): string;
44
44
  export declare function serializeHTML(nodes: HTMLNode[]): string;
45
45
  export declare function renderHTMLContent(template: string, data?: DataScopes, config?: FEAASCustomizations): string;
46
- export {};
46
+ export declare function parseHTMLContent(template: string, data?: DataScopes, config?: FEAASCustomizations): HTMLNode[];
47
47
  //# sourceMappingURL=html.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/dom/html.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAoB,MAAM,gBAAgB,CAAA;AAEtE,KAAK,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpD,cAAM,QAAQ;IACZ,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAA;gBAET,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,WAAW,CAAC,EAAE,MAAM;IAQxE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IASxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK9C,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAG,IAAI;IAY9D,eAAe,CAAC,QAAQ,EAAE,MAAM;IAOhC,WAAW,CAAC,OAAO,EAAE,QAAQ;IAK7B,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,IAGO,MAAM,CADzB;IACD,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAEzB;IACD,IAAI,SAAS,WAEZ;IACD,IAAI,QAAQ,eAEX;IAED,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAc1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAwB9C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAIzC,OAAO,CAAC,WAAW;IAgBnB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ;IAQtC,IAAI,eAAe,IAAI,QAAQ,GAAG,IAAI,CAErC;IAED,IAAI,WAAW,IAAI,QAAQ,GAAG,IAAI,CAEjC;IAED,IAAI,sBAAsB,IAAI,QAAQ,GAAG,IAAI,CAE5C;IAED,IAAI,kBAAkB,IAAI,QAAQ,GAAG,IAAI,CAExC;IACD,SAAS,CAAC,IAAI,GAAE,OAAe,GAAG,QAAQ;IAiB1C,IAAI,aAAa,aAEhB;IAED,aAAa;4BACS,MAAM,GAAG,QAAQ;MAGtC;CACF;AA+CD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAgDlD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AAWD,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAmBvD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,mBAAmB,UAIlG"}
1
+ {"version":3,"file":"html.d.ts","sourceRoot":"","sources":["../../src/dom/html.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAE1E,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,EAAE,mBAAmB,EAAoB,MAAM,gBAAgB,CAAA;AAEtE,MAAM,MAAM,aAAa,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAA;AAE3D,qBAAa,QAAQ;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,UAAU,EAAE,aAAa,EAAE,CAAA;IAC3B,UAAU,EAAE,QAAQ,EAAE,CAAA;IACtB,UAAU,CAAC,EAAE,QAAQ,CAAA;gBAET,QAAQ,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAU,EAAE,WAAW,CAAC,EAAE,MAAM;IAQxE,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM;IASxC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAK9C,YAAY,CAAC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,QAAQ,GAAG,IAAI;IAY9D,eAAe,CAAC,QAAQ,EAAE,MAAM;IAOhC,WAAW,CAAC,OAAO,EAAE,QAAQ;IAK7B,IAAI,OAAO,WAEV;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,SAAS,IAGO,MAAM,CADzB;IACD,IAAI,SAAS,CAAC,IAAI,EAAE,MAAM,EAEzB;IACD,IAAI,SAAS,WAEZ;IACD,IAAI,QAAQ,eAEX;IAED,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAc1C,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,EAAE;IAwB9C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ;IAIzC,OAAO,CAAC,WAAW;IAgBnB,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,QAAQ;IAQtC,IAAI,eAAe,IAAI,QAAQ,GAAG,IAAI,CAErC;IAED,IAAI,WAAW,IAAI,QAAQ,GAAG,IAAI,CAEjC;IAED,IAAI,sBAAsB,IAAI,QAAQ,GAAG,IAAI,CAE5C;IAED,IAAI,kBAAkB,IAAI,QAAQ,GAAG,IAAI,CAExC;IACD,SAAS,CAAC,IAAI,GAAE,OAAe,GAAG,QAAQ;IAiB1C,IAAI,aAAa,aAEhB;IAED,aAAa;4BACS,MAAM,GAAG,QAAQ;MAGtC;CACF;AA+CD,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,QAAQ,EAAE,CAgDlD;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAOhD;AAWD,wBAAgB,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,CAmBvD;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,mBAAmB,UAElG;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,mBAAmB,cAMjG"}
@@ -1 +1 @@
1
- {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../../src/dom/rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,MAAM,CAAA;IACtF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,KAAK,GAAG,CAAA;IAC7D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;IAC1E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;CAC5D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG;IAC7E,IAAI,CAAC,EAAE,CAAC,CAAA;CACT,GAAG,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,GAC7C,mBAAmB,CAAA;AAsDrB,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,mBAAmB,QAoEhH;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,GAAG,gBAAgB,EACrC,UAAU,CAAC,EAAE,GAAG,EAChB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,OAAO,eA0CnB;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,mBAAmB,eAc9G;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE,OAAO,UAAQ,UAW7G"}
1
+ {"version":3,"file":"rendering.d.ts","sourceRoot":"","sources":["../../src/dom/rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAA;AAElD,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAIvD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAA;AAE5C,MAAM,WAAW,mBAAmB;IAClC,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,MAAM,CAAA;IACtF,WAAW,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,KAAK,GAAG,CAAA;IAC7D,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,GAAG,CAAA;IAC1E,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,GAAG,KAAK,OAAO,CAAA;IAC5D,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAA;CAC5D;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,MAAM,mBAAmB,CAAC,CAAC,GAAG,WAAW,IAAI,OAAO,CAAC,gBAAgB,CAAC,GAAG;IAC7E,IAAI,CAAC,EAAE,CAAC,CAAA;CACT,GAAG,CAAC,gBAAgB,GAAG,sBAAsB,CAAC,GAC7C,mBAAmB,CAAA;AAsDrB,wBAAgB,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,CAAC,EAAE,mBAAmB,QAqEhH;AAID,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,GAAG,gBAAgB,EACrC,UAAU,CAAC,EAAE,GAAG,EAChB,MAAM,CAAC,EAAE,mBAAmB,EAC5B,QAAQ,CAAC,EAAE,OAAO,eA0CnB;AAMD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,mBAAmB,eAc9G;AAED,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,EAAE,mBAAmB,EAAE,OAAO,UAAQ,UAW7G"}