react-three-map 0.7.2 → 0.8.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 (151) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +57 -4
  3. package/dist/cjs/main.js +386 -181
  4. package/dist/es/main.mjs +9 -3
  5. package/dist/es/main.mjs.map +1 -1
  6. package/dist/es/main10.mjs +8 -20
  7. package/dist/es/main10.mjs.map +1 -1
  8. package/dist/es/main11.mjs +33 -19
  9. package/dist/es/main11.mjs.map +1 -1
  10. package/dist/es/main12.mjs +11 -87
  11. package/dist/es/main12.mjs.map +1 -1
  12. package/dist/es/main13.mjs +23 -9
  13. package/dist/es/main13.mjs.map +1 -1
  14. package/dist/es/main14.mjs +2 -68
  15. package/dist/es/main14.mjs.map +1 -1
  16. package/dist/es/main15.mjs +33 -0
  17. package/dist/es/main15.mjs.map +1 -0
  18. package/dist/es/main16.mjs +26 -0
  19. package/dist/es/main16.mjs.map +1 -0
  20. package/dist/es/main17.mjs +98 -0
  21. package/dist/es/main17.mjs.map +1 -0
  22. package/dist/es/main18.mjs +66 -0
  23. package/dist/es/main18.mjs.map +1 -0
  24. package/dist/es/main19.mjs +23 -0
  25. package/dist/es/main19.mjs.map +1 -0
  26. package/dist/es/main2.mjs.map +1 -1
  27. package/dist/es/main20.mjs +27 -0
  28. package/dist/es/main20.mjs.map +1 -0
  29. package/dist/es/main21.mjs +19 -0
  30. package/dist/es/main21.mjs.map +1 -0
  31. package/dist/es/main22.mjs +83 -0
  32. package/dist/es/main22.mjs.map +1 -0
  33. package/dist/es/main3.mjs +43 -50
  34. package/dist/es/main3.mjs.map +1 -1
  35. package/dist/es/main4.mjs +50 -24
  36. package/dist/es/main4.mjs.map +1 -1
  37. package/dist/es/main5.mjs +12 -3
  38. package/dist/es/main5.mjs.map +1 -1
  39. package/dist/es/main6.mjs +19 -34
  40. package/dist/es/main6.mjs.map +1 -1
  41. package/dist/es/main7.mjs +10 -11
  42. package/dist/es/main7.mjs.map +1 -1
  43. package/dist/es/main8.mjs +17 -16
  44. package/dist/es/main8.mjs.map +1 -1
  45. package/dist/es/main9.mjs +27 -15
  46. package/dist/es/main9.mjs.map +1 -1
  47. package/dist/maplibre/cjs/main.js +386 -181
  48. package/dist/maplibre/es/main.mjs +9 -3
  49. package/dist/maplibre/es/main.mjs.map +1 -1
  50. package/dist/maplibre/es/main10.mjs +9 -20
  51. package/dist/maplibre/es/main10.mjs.map +1 -1
  52. package/dist/maplibre/es/main11.mjs +33 -14
  53. package/dist/maplibre/es/main11.mjs.map +1 -1
  54. package/dist/maplibre/es/main12.mjs +11 -87
  55. package/dist/maplibre/es/main12.mjs.map +1 -1
  56. package/dist/maplibre/es/main13.mjs +23 -9
  57. package/dist/maplibre/es/main13.mjs.map +1 -1
  58. package/dist/maplibre/es/main14.mjs +2 -68
  59. package/dist/maplibre/es/main14.mjs.map +1 -1
  60. package/dist/maplibre/es/main15.mjs +33 -0
  61. package/dist/maplibre/es/main15.mjs.map +1 -0
  62. package/dist/maplibre/es/main16.mjs +26 -0
  63. package/dist/maplibre/es/main16.mjs.map +1 -0
  64. package/dist/maplibre/es/main17.mjs +98 -0
  65. package/dist/maplibre/es/main17.mjs.map +1 -0
  66. package/dist/maplibre/es/main18.mjs +66 -0
  67. package/dist/maplibre/es/main18.mjs.map +1 -0
  68. package/dist/maplibre/es/main19.mjs +23 -0
  69. package/dist/maplibre/es/main19.mjs.map +1 -0
  70. package/dist/maplibre/es/main2.mjs.map +1 -1
  71. package/dist/maplibre/es/main20.mjs +27 -0
  72. package/dist/maplibre/es/main20.mjs.map +1 -0
  73. package/dist/maplibre/es/main21.mjs +19 -0
  74. package/dist/maplibre/es/main21.mjs.map +1 -0
  75. package/dist/maplibre/es/main22.mjs +83 -0
  76. package/dist/maplibre/es/main22.mjs.map +1 -0
  77. package/dist/maplibre/es/main3.mjs +43 -50
  78. package/dist/maplibre/es/main3.mjs.map +1 -1
  79. package/dist/maplibre/es/main4.mjs +50 -24
  80. package/dist/maplibre/es/main4.mjs.map +1 -1
  81. package/dist/maplibre/es/main5.mjs +12 -3
  82. package/dist/maplibre/es/main5.mjs.map +1 -1
  83. package/dist/maplibre/es/main6.mjs +19 -34
  84. package/dist/maplibre/es/main6.mjs.map +1 -1
  85. package/dist/maplibre/es/main7.mjs +10 -11
  86. package/dist/maplibre/es/main7.mjs.map +1 -1
  87. package/dist/maplibre/es/main8.mjs +17 -16
  88. package/dist/maplibre/es/main8.mjs.map +1 -1
  89. package/dist/maplibre/es/main9.mjs +25 -19
  90. package/dist/maplibre/es/main9.mjs.map +1 -1
  91. package/dist/maplibre/types/api/canvas-props.d.ts +4 -4
  92. package/dist/maplibre/types/api/coords-to-vector-3.d.ts +3 -0
  93. package/dist/maplibre/types/api/coords.d.ts +5 -0
  94. package/dist/maplibre/types/api/index.d.ts +6 -0
  95. package/dist/maplibre/types/api/near-coordinates.d.ts +3 -0
  96. package/dist/maplibre/types/api/use-map.d.ts +1 -1
  97. package/dist/maplibre/types/api/vector-3-to-coords.d.ts +3 -0
  98. package/dist/maplibre/types/core/canvas-in-layer/use-canvas-in-layer.d.ts +11 -0
  99. package/dist/maplibre/types/core/canvas-in-layer/use-render.d.ts +12 -0
  100. package/dist/maplibre/types/core/canvas-in-layer/use-root.d.ts +7 -0
  101. package/dist/maplibre/types/core/canvas-overlay/canvas-portal.d.ts +11 -0
  102. package/dist/maplibre/types/core/canvas-overlay/init-canvas-fc.d.ts +12 -0
  103. package/dist/maplibre/types/core/canvas-overlay/init-r3m.d.ts +10 -0
  104. package/dist/maplibre/types/core/canvas-overlay/render.d.ts +1 -0
  105. package/dist/maplibre/types/core/canvas-overlay/sync-camera-fc.d.ts +14 -0
  106. package/dist/maplibre/types/core/coords-to-matrix.d.ts +2 -4
  107. package/dist/maplibre/types/core/earth-radius.d.ts +1 -0
  108. package/dist/maplibre/types/core/events.d.ts +4 -0
  109. package/dist/maplibre/types/core/use-coords-to-matrix.d.ts +5 -0
  110. package/dist/maplibre/types/core/use-coords.d.ts +7 -5
  111. package/dist/maplibre/types/core/use-r3m.d.ts +22 -0
  112. package/dist/maplibre/types/{maplibre → mapbox}/canvas.d.ts +1 -1
  113. package/dist/maplibre/types/maplibre.index.d.ts +3 -4
  114. package/dist/types/api/canvas-props.d.ts +4 -4
  115. package/dist/types/api/coords-to-vector-3.d.ts +3 -0
  116. package/dist/types/api/coords.d.ts +5 -0
  117. package/dist/types/api/index.d.ts +6 -0
  118. package/dist/types/api/near-coordinates.d.ts +3 -0
  119. package/dist/types/api/use-map.d.ts +1 -1
  120. package/dist/types/api/vector-3-to-coords.d.ts +3 -0
  121. package/dist/types/core/canvas-in-layer/use-canvas-in-layer.d.ts +11 -0
  122. package/dist/types/core/canvas-in-layer/use-render.d.ts +12 -0
  123. package/dist/types/core/canvas-in-layer/use-root.d.ts +7 -0
  124. package/dist/types/core/canvas-overlay/canvas-portal.d.ts +11 -0
  125. package/dist/types/core/canvas-overlay/init-canvas-fc.d.ts +12 -0
  126. package/dist/types/core/canvas-overlay/init-r3m.d.ts +10 -0
  127. package/dist/types/core/canvas-overlay/render.d.ts +1 -0
  128. package/dist/types/core/canvas-overlay/sync-camera-fc.d.ts +14 -0
  129. package/dist/types/core/coords-to-matrix.d.ts +2 -4
  130. package/dist/types/core/earth-radius.d.ts +1 -0
  131. package/dist/types/core/events.d.ts +4 -0
  132. package/dist/types/core/use-coords-to-matrix.d.ts +5 -0
  133. package/dist/types/core/use-coords.d.ts +7 -5
  134. package/dist/types/core/use-r3m.d.ts +22 -0
  135. package/dist/types/mapbox.index.d.ts +2 -3
  136. package/package.json +12 -12
  137. package/stories/package.json +15 -8
  138. package/stories/yarn.lock +2033 -1194
  139. package/vitest.config.ts +1 -5
  140. package/dist/maplibre/types/core/create-events.d.ts +0 -3
  141. package/dist/maplibre/types/core/store.d.ts +0 -12
  142. package/dist/maplibre/types/core/use-canvas.d.ts +0 -11
  143. package/dist/maplibre/types/core/use-create-root.d.ts +0 -13
  144. package/dist/maplibre/types/core/use-on-add.d.ts +0 -10
  145. package/dist/maplibre/types/core/use-render.d.ts +0 -4
  146. package/dist/types/core/create-events.d.ts +0 -3
  147. package/dist/types/core/store.d.ts +0 -12
  148. package/dist/types/core/use-canvas.d.ts +0 -11
  149. package/dist/types/core/use-create-root.d.ts +0 -13
  150. package/dist/types/core/use-on-add.d.ts +0 -10
  151. package/dist/types/core/use-render.d.ts +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"main7.mjs","sources":["../../src/core/use-coords.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport { coordsToMatrix } from \"./coords-to-matrix\";\n\ntype Props = Parameters<typeof coordsToMatrix>[0];\n\n/** calculate matrix from coordinates */\nexport function useCoords({latitude, longitude, altitude, fromLngLat}: Props) {\n const m4 = useMemo(() => coordsToMatrix({\n latitude, longitude, altitude, fromLngLat,\n }), [latitude, longitude, altitude, fromLngLat]);\n\n return m4;\n}"],"names":[],"mappings":";;AAMO,SAAS,UAAU,EAAC,UAAU,WAAW,UAAU,cAAoB;AACtE,QAAA,KAAK,QAAQ,MAAM,eAAe;AAAA,IACtC;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,EAAA,CAChC,GAAG,CAAC,UAAU,WAAW,UAAU,UAAU,CAAC;AAExC,SAAA;AACT;"}
1
+ {"version":3,"file":"main7.mjs","sources":["../../src/api/vector-3-to-coords.ts"],"sourcesContent":["import { MathUtils, Vector3Tuple } from \"three\";\nimport { Coords } from \"./coords\";\nimport { earthRadius } from \"../core/earth-radius\";\n\nexport function vector3ToCoords(position: Vector3Tuple, origin: Coords): Coords {\n const [x, y, z] = position;\n const latitude = origin.latitude + (-z / earthRadius) * MathUtils.RAD2DEG;\n const longitude = origin.longitude + (x / earthRadius) * MathUtils.RAD2DEG / Math.cos(origin.latitude * MathUtils.DEG2RAD);\n const altitude = (origin.altitude || 0) + y;\n const coords: Coords = { latitude, longitude, altitude };\n return coords;\n}"],"names":[],"mappings":";;AAIgB,SAAA,gBAAgB,UAAwB,QAAwB;AAC9E,QAAM,CAAC,GAAG,GAAG,CAAC,IAAI;AAClB,QAAM,WAAW,OAAO,WAAY,CAAC,IAAI,cAAe,UAAU;AAClE,QAAM,YAAY,OAAO,YAAa,IAAI,cAAe,UAAU,UAAU,KAAK,IAAI,OAAO,WAAW,UAAU,OAAO;AACnH,QAAA,YAAY,OAAO,YAAY,KAAK;AAC1C,QAAM,SAAiB,EAAE,UAAU,WAAW,SAAS;AAChD,SAAA;AACT;"}
package/dist/es/main8.mjs CHANGED
@@ -1,25 +1,26 @@
1
- import { useCoords } from "./main7.mjs";
2
- import { useCreateRoot } from "./main10.mjs";
3
- import { useRender } from "./main11.mjs";
4
- function useCanvas({
5
- longitude,
6
- latitude,
7
- altitude = 0,
8
- frameloop = "always",
9
- fromLngLat,
10
- ...renderProps
11
- }) {
12
- const m4 = useCoords({
1
+ import { useCoordsToMatrix } from "./main12.mjs";
2
+ import { useRender } from "./main16.mjs";
3
+ import { useRoot } from "./main17.mjs";
4
+ function useCanvasInLayer(props, fromLngLat, map) {
5
+ const { latitude, longitude, altitude, frameloop } = props;
6
+ const origin = useCoordsToMatrix({
13
7
  latitude,
14
8
  longitude,
15
9
  altitude,
16
10
  fromLngLat
17
11
  });
18
- const { id, onAdd, onRemove, r3mRef } = useCreateRoot({ frameloop, fromLngLat, ...renderProps });
19
- const render = useRender(m4, r3mRef, frameloop);
20
- return { id, onAdd, onRemove, render };
12
+ const { onRemove, useThree, r3m } = useRoot(fromLngLat, map, props);
13
+ const render = useRender({ origin, frameloop, useThree, map, r3m });
14
+ return {
15
+ id: props.id,
16
+ beforeId: props.beforeId,
17
+ onRemove,
18
+ render,
19
+ type: "custom",
20
+ renderingMode: "3d"
21
+ };
21
22
  }
22
23
  export {
23
- useCanvas
24
+ useCanvasInLayer
24
25
  };
25
26
  //# sourceMappingURL=main8.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"main8.mjs","sources":["../../src/core/use-canvas.ts"],"sourcesContent":["import { CanvasProps } from \"../api/canvas-props\";\nimport { FromLngLat } from \"./generic-map\";\nimport { useCoords } from \"./use-coords\";\nimport { useCreateRoot } from \"./use-create-root\";\nimport { useRender } from \"./use-render\";\n\nexport interface useCanvasProps extends Omit<CanvasProps, 'id'|'beforeId'> {\n fromLngLat: FromLngLat,\n}\n\nexport function useCanvas({\n longitude, latitude, altitude = 0,\n frameloop = 'always',\n fromLngLat,\n ...renderProps\n}: useCanvasProps) {\n\n const m4 = useCoords({\n latitude, longitude, altitude, fromLngLat,\n });\n\n const { id, onAdd, onRemove, r3mRef } = useCreateRoot({ frameloop, fromLngLat, ...renderProps });\n\n const render = useRender(m4, r3mRef, frameloop);\n\n return { id, onAdd, onRemove, render }\n}"],"names":[],"mappings":";;;AAUO,SAAS,UAAU;AAAA,EACxB;AAAA,EAAW;AAAA,EAAU,WAAW;AAAA,EAChC,YAAY;AAAA,EACZ;AAAA,EACA,GAAG;AACL,GAAmB;AAEjB,QAAM,KAAK,UAAU;AAAA,IACnB;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,EAAA,CAChC;AAED,QAAM,EAAE,IAAI,OAAO,UAAU,OAAO,IAAI,cAAc,EAAE,WAAW,YAAY,GAAG,YAAa,CAAA;AAE/F,QAAM,SAAS,UAAU,IAAI,QAAQ,SAAS;AAE9C,SAAO,EAAE,IAAI,OAAO,UAAU,OAAO;AACvC;"}
1
+ {"version":3,"file":"main8.mjs","sources":["../../src/core/canvas-in-layer/use-canvas-in-layer.tsx"],"sourcesContent":["import { CanvasProps } from \"../../api/canvas-props\";\nimport { FromLngLat, MapInstance } from \"../generic-map\";\nimport { useCoordsToMatrix } from \"../use-coords-to-matrix\";\nimport { useRender } from \"./use-render\";\nimport { useRoot } from \"./use-root\";\n\n/** get all the properties that you need to render as a map `<Layer>` */\nexport function useCanvasInLayer(props: CanvasProps,fromLngLat: FromLngLat, map: MapInstance) {\n\n const {latitude, longitude, altitude, frameloop } = props;\n\n const origin = useCoordsToMatrix({\n latitude, longitude, altitude, fromLngLat,\n });\n\n const { onRemove, useThree, r3m } = useRoot(fromLngLat, map, props);\n \n const render = useRender({origin, frameloop, useThree, map, r3m});\n \n return {\n id: props.id,\n beforeId: props.beforeId,\n onRemove,\n render,\n type: 'custom',\n renderingMode: '3d'\n } as const\n\n}"],"names":[],"mappings":";;;AAOgB,SAAA,iBAAiB,OAAmB,YAAwB,KAAkB;AAE5F,QAAM,EAAC,UAAU,WAAW,UAAU,cAAc;AAElD,QAAM,SAAS,kBAAkB;AAAA,IAC/B;AAAA,IAAU;AAAA,IAAW;AAAA,IAAU;AAAA,EAAA,CAChC;AAEK,QAAA,EAAE,UAAU,UAAU,IAAA,IAAQ,QAAQ,YAAY,KAAK,KAAK;AAE5D,QAAA,SAAS,UAAU,EAAC,QAAQ,WAAW,UAAU,KAAK,KAAI;AAEzD,SAAA;AAAA,IACL,IAAI,MAAM;AAAA,IACV,UAAU,MAAM;AAAA,IAChB;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,eAAe;AAAA,EAAA;AAGrB;"}
package/dist/es/main9.mjs CHANGED
@@ -1,18 +1,30 @@
1
- import { Quaternion, Euler, Vector3, Matrix4 } from "three";
2
- const quat = new Quaternion();
3
- const euler = new Euler();
4
- const pos = new Vector3();
5
- const scale = new Vector3();
6
- const m4 = new Matrix4();
7
- function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }) {
8
- const center = fromLngLat([longitude, latitude], altitude);
9
- const scaleUnit = center.meterInMercatorCoordinateUnits();
10
- pos.set(center.x, center.y, center.z || 0);
11
- scale.set(scaleUnit, -scaleUnit, scaleUnit);
12
- quat.setFromEuler(euler.set(-Math.PI * 0.5, 0, 0));
13
- return m4.compose(pos, quat, scale).toArray();
14
- }
1
+ import { jsx, Fragment } from "react/jsx-runtime";
2
+ import { memo, useState, useEffect } from "react";
3
+ import { createPortal } from "react-dom";
4
+ import { CanvasPortal } from "./main18.mjs";
5
+ const InitCanvasFC = memo((props) => {
6
+ const canvas = props.map.getCanvas();
7
+ const [el] = useState(() => {
8
+ const el2 = document.createElement("div");
9
+ el2.style.position = "absolute";
10
+ el2.style.top = "0";
11
+ el2.style.bottom = "0";
12
+ el2.style.left = "0";
13
+ el2.style.right = "0";
14
+ el2.style.pointerEvents = "none";
15
+ return el2;
16
+ });
17
+ useEffect(() => {
18
+ const parent = canvas.parentElement;
19
+ parent.appendChild(el);
20
+ return () => {
21
+ parent.removeChild(el);
22
+ };
23
+ }, []);
24
+ return /* @__PURE__ */ jsx(Fragment, { children: createPortal(/* @__PURE__ */ jsx(CanvasPortal, { ...props }), el) });
25
+ });
26
+ InitCanvasFC.displayName = "InitCanvasFC";
15
27
  export {
16
- coordsToMatrix
28
+ InitCanvasFC
17
29
  };
18
30
  //# sourceMappingURL=main9.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"main9.mjs","sources":["../../src/core/coords-to-matrix.ts"],"sourcesContent":["import { Euler, Matrix4, Quaternion, Vector3 } from \"three\";\nimport { FromLngLat } from \"./generic-map\";\n\nconst quat = new Quaternion();\nconst euler = new Euler();\nconst pos = new Vector3();\nconst scale = new Vector3();\nconst m4 = new Matrix4();\n\n/** calculate Matrix4 from coordinates */\nexport function coordsToMatrix({ longitude, latitude, altitude, fromLngLat }: {\n longitude: number, latitude: number, altitude: number, fromLngLat: FromLngLat\n}) {\n const center = fromLngLat([longitude, latitude], altitude);\n const scaleUnit = center.meterInMercatorCoordinateUnits();\n pos.set(center.x, center.y, center.z || 0);\n scale.set(scaleUnit, -scaleUnit, scaleUnit);\n quat.setFromEuler(euler.set(-Math.PI * .5, 0, 0));\n return m4.compose(pos, quat, scale).toArray();\n}\n"],"names":[],"mappings":";AAGA,MAAM,OAAO,IAAI;AACjB,MAAM,QAAQ,IAAI;AAClB,MAAM,MAAM,IAAI;AAChB,MAAM,QAAQ,IAAI;AAClB,MAAM,KAAK,IAAI;AAGR,SAAS,eAAe,EAAE,WAAW,UAAU,UAAU,cAE7D;AACD,QAAM,SAAS,WAAW,CAAC,WAAW,QAAQ,GAAG,QAAQ;AACnD,QAAA,YAAY,OAAO;AACzB,MAAI,IAAI,OAAO,GAAG,OAAO,GAAG,OAAO,KAAK,CAAC;AACzC,QAAM,IAAI,WAAW,CAAC,WAAW,SAAS;AACrC,OAAA,aAAa,MAAM,IAAI,CAAC,KAAK,KAAK,KAAI,GAAG,CAAC,CAAC;AAChD,SAAO,GAAG,QAAQ,KAAK,MAAM,KAAK,EAAE;AACtC;"}
1
+ {"version":3,"file":"main9.mjs","sources":["../../src/core/canvas-overlay/init-canvas-fc.tsx"],"sourcesContent":["import { memo, useEffect, useState } from \"react\";\nimport { createPortal } from 'react-dom';\nimport { Matrix4Tuple } from \"three\";\nimport { CanvasProps } from \"../../api/canvas-props\";\nimport { FromLngLat, MapInstance } from \"../generic-map\";\nimport { CanvasPortal } from \"./canvas-portal\";\n\ninterface InitCanvasFCProps extends CanvasProps {\n map: MapInstance,\n setOnRender: (callback: () => (mx: Matrix4Tuple) => void) => void,\n frameloop?: 'always' | 'demand',\n fromLngLat: FromLngLat,\n}\nexport const InitCanvasFC = memo<InitCanvasFCProps>((props) => {\n const canvas = props.map.getCanvas() // eslint-disable-line @typescript-eslint/no-non-null-assertion\n\n const [el] = useState(() => {\n const el = document.createElement('div');\n el.style.position = 'absolute';\n el.style.top = '0';\n el.style.bottom = '0';\n el.style.left = '0';\n el.style.right = '0';\n el.style.pointerEvents = 'none';\n return el\n })\n\n useEffect(() => {\n const parent = canvas.parentElement!; // eslint-disable-line @typescript-eslint/no-non-null-assertion\n parent.appendChild(el);\n return () => {\n parent.removeChild(el);\n }\n }, []) // eslint-disable-line react-hooks/exhaustive-deps\n return <>\n {createPortal((\n <CanvasPortal {...props} />\n ), el)}\n </>\n})\nInitCanvasFC.displayName = 'InitCanvasFC';\n"],"names":["el"],"mappings":";;;;AAaa,MAAA,eAAe,KAAwB,CAAC,UAAU;AACvD,QAAA,SAAS,MAAM,IAAI,UAAU;AAEnC,QAAM,CAAC,EAAE,IAAI,SAAS,MAAM;AACpBA,UAAAA,MAAK,SAAS,cAAc,KAAK;AACvCA,QAAG,MAAM,WAAW;AACpBA,QAAG,MAAM,MAAM;AACfA,QAAG,MAAM,SAAS;AAClBA,QAAG,MAAM,OAAO;AAChBA,QAAG,MAAM,QAAQ;AACjBA,QAAG,MAAM,gBAAgB;AAClBA,WAAAA;AAAAA,EAAA,CACR;AAED,YAAU,MAAM;AACd,UAAM,SAAS,OAAO;AACtB,WAAO,YAAY,EAAE;AACrB,WAAO,MAAM;AACX,aAAO,YAAY,EAAE;AAAA,IAAA;AAAA,EAEzB,GAAG,CAAE,CAAA;AACE,SAAA,oBAAA,UAAA,EACJ,uBACE,oBAAA,cAAA,EAAc,GAAG,MAAO,CAAA,GACxB,EAAE,EACP,CAAA;AACF,CAAC;AACD,aAAa,cAAc;"}