@bwp-web/canvas 0.15.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +307 -0
- package/dist/hooks/useCanvasTooltip.d.ts +13 -1
- package/dist/hooks/useCanvasTooltip.d.ts.map +1 -1
- package/dist/hooks/useEditCanvas.d.ts +2 -2
- package/dist/hooks/useViewCanvas.d.ts +2 -2
- package/dist/index.cjs +215 -93
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +220 -94
- package/dist/index.js.map +1 -1
- package/dist/overlay/FixedSizeContent.d.ts.map +1 -1
- package/dist/overlay/ObjectOverlay.d.ts +4 -0
- package/dist/overlay/ObjectOverlay.d.ts.map +1 -1
- package/dist/overlay/OverlayBadge.d.ts +2 -2
- package/dist/overlay/OverlayBadge.d.ts.map +1 -1
- package/dist/overlay/OverlayContainer.d.ts +43 -0
- package/dist/overlay/OverlayContainer.d.ts.map +1 -0
- package/dist/overlay/OverlayContent.d.ts +2 -2
- package/dist/overlay/OverlayContent.d.ts.map +1 -1
- package/dist/overlay/index.d.ts +2 -0
- package/dist/overlay/index.d.ts.map +1 -1
- package/dist/viewport.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FixedSizeContent.d.ts","sourceRoot":"","sources":["../../src/overlay/FixedSizeContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,cAAqB,EACrB,iBAAqB,EACrB,EAAE,EACF,GAAG,IAAI,EACR,EAAE,qBAAqB,
|
|
1
|
+
{"version":3,"file":"FixedSizeContent.d.ts","sourceRoot":"","sources":["../../src/overlay/FixedSizeContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,WAAW,qBAAsB,SAAQ,UAAU;IACvD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;OAKG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,cAAqB,EACrB,iBAAqB,EACrB,EAAE,EACF,GAAG,IAAI,EACR,EAAE,qBAAqB,2CAiHvB"}
|
|
@@ -18,6 +18,10 @@ export interface ObjectOverlayProps extends StackProps {
|
|
|
18
18
|
* the object's screen-space dimensions and kept in sync with pan, zoom, move,
|
|
19
19
|
* scale, and rotate transforms.
|
|
20
20
|
*
|
|
21
|
+
* When rendered inside an {@link OverlayContainer}, positioning excludes the
|
|
22
|
+
* viewport translation (the container handles it), and position is cached so
|
|
23
|
+
* that pan-only frames require **zero DOM writes** on individual overlays.
|
|
24
|
+
*
|
|
21
25
|
* Default styles: `position: absolute`, `pointerEvents: none`,
|
|
22
26
|
* `alignItems: center`, `justifyContent: center`, `zIndex: 1`.
|
|
23
27
|
* All can be overridden via the `sx` prop.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ObjectOverlay.d.ts","sourceRoot":"","sources":["../../src/overlay/ObjectOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"ObjectOverlay.d.ts","sourceRoot":"","sources":["../../src/overlay/ObjectOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAqB,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1E,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAKnE,MAAM,WAAW,kBAAmB,SAAQ,UAAU;IACpD;;;;;OAKG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC3C,8EAA8E;IAC9E,MAAM,EAAE,YAAY,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,wBAAgB,aAAa,CAAC,EAC5B,SAAS,EAAE,aAAa,EACxB,MAAM,EACN,EAAE,EACF,QAAQ,EACR,GAAG,IAAI,EACR,EAAE,kBAAkB,kDAuGpB"}
|
|
@@ -3,11 +3,11 @@ import { type ReactNode } from 'react';
|
|
|
3
3
|
export interface OverlayBadgeProps extends StackProps {
|
|
4
4
|
children?: ReactNode;
|
|
5
5
|
/**
|
|
6
|
-
* Maximum scale factor applied to the badge. Default:
|
|
6
|
+
* Maximum scale factor applied to the badge. Default: 1.5
|
|
7
7
|
*/
|
|
8
8
|
maxScale?: number;
|
|
9
9
|
/**
|
|
10
|
-
* Minimum scale factor applied to the badge. Default: 0.
|
|
10
|
+
* Minimum scale factor applied to the badge. Default: 0.5
|
|
11
11
|
*/
|
|
12
12
|
minScale?: number;
|
|
13
13
|
/** Top offset. Number values are interpreted as pixels. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayBadge.d.ts","sourceRoot":"","sources":["../../src/overlay/OverlayBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"OverlayBadge.d.ts","sourceRoot":"","sources":["../../src/overlay/OverlayBadge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,WAAW,iBAAkB,SAAQ,UAAU;IACnD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,2DAA2D;IAC3D,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACxB,8DAA8D;IAC9D,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,4DAA4D;IAC5D,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AA4DD;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,YAAY,CAAC,EAC3B,QAAQ,EACR,QAAc,EACd,QAAc,EACd,GAAG,EACH,KAAK,EACL,MAAM,EACN,IAAI,EACJ,QAAgB,EAChB,EAAE,EACF,GAAG,IAAI,EACR,EAAE,iBAAiB,2CA6GnB"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type ReactNode, type RefObject } from 'react';
|
|
2
|
+
import type { Canvas as FabricCanvas } from 'fabric';
|
|
3
|
+
/**
|
|
4
|
+
* Context flag set by `OverlayContainer`. When `true`, `ObjectOverlay`
|
|
5
|
+
* positions itself relative to the canvas origin (without viewport
|
|
6
|
+
* translation), because the container already applies the translation.
|
|
7
|
+
*/
|
|
8
|
+
export declare const OverlayContainerContext: import("react").Context<boolean>;
|
|
9
|
+
export declare function useIsInsideOverlayContainer(): boolean;
|
|
10
|
+
export interface OverlayContainerProps {
|
|
11
|
+
/**
|
|
12
|
+
* Ref to the Fabric canvas instance. Optional when rendered inside a
|
|
13
|
+
* {@link ViewCanvasProvider} or {@link EditCanvasProvider}.
|
|
14
|
+
*/
|
|
15
|
+
canvasRef?: RefObject<FabricCanvas | null>;
|
|
16
|
+
children?: ReactNode;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Wrapper for `ObjectOverlay` elements that optimises panning performance.
|
|
20
|
+
*
|
|
21
|
+
* During pan, every overlay moves by the same pixel delta (the viewport
|
|
22
|
+
* translation changes, but object positions and zoom stay the same).
|
|
23
|
+
* `OverlayContainer` applies the viewport translation on a single wrapper
|
|
24
|
+
* element, so panning requires **one DOM write** instead of one per overlay.
|
|
25
|
+
*
|
|
26
|
+
* Individual `ObjectOverlay` elements inside the container position
|
|
27
|
+
* themselves relative to the canvas origin (without viewport translation)
|
|
28
|
+
* and cache their position to skip redundant writes during pan.
|
|
29
|
+
* Only when zoom changes or an object moves do they update.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```tsx
|
|
33
|
+
* <OverlayContainer canvasRef={canvas.canvasRef}>
|
|
34
|
+
* {objects.map((obj) => (
|
|
35
|
+
* <ObjectOverlay key={obj.data?.id} object={obj}>
|
|
36
|
+
* <OverlayContent>…</OverlayContent>
|
|
37
|
+
* </ObjectOverlay>
|
|
38
|
+
* ))}
|
|
39
|
+
* </OverlayContainer>
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
export declare function OverlayContainer({ canvasRef: canvasRefProp, children, }: OverlayContainerProps): import("react/jsx-runtime").JSX.Element;
|
|
43
|
+
//# sourceMappingURL=OverlayContainer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OverlayContainer.d.ts","sourceRoot":"","sources":["../../src/overlay/OverlayContainer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAKL,KAAK,SAAS,EACd,KAAK,SAAS,EACf,MAAM,OAAO,CAAC;AAEf,OAAO,KAAK,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,QAAQ,CAAC;AAGrD;;;;GAIG;AACH,eAAO,MAAM,uBAAuB,kCAAuB,CAAC;AAE5D,wBAAgB,2BAA2B,IAAI,OAAO,CAErD;AAED,MAAM,WAAW,qBAAqB;IACpC;;;OAGG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;IAC3C,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EAAE,aAAa,EACxB,QAAQ,GACT,EAAE,qBAAqB,2CA4CvB"}
|
|
@@ -2,7 +2,7 @@ import { StackProps } from '@mui/material';
|
|
|
2
2
|
import { type ReactNode } from 'react';
|
|
3
3
|
export interface OverlayContentProps extends StackProps {
|
|
4
4
|
children?: ReactNode;
|
|
5
|
-
/** Padding in pixels between the content and the parent bounds. Default:
|
|
5
|
+
/** Padding in pixels between the content and the parent bounds. Default: 6 */
|
|
6
6
|
padding?: number;
|
|
7
7
|
/** Maximum scale factor applied to the content. Default: 2 */
|
|
8
8
|
maxScale?: number;
|
|
@@ -16,7 +16,7 @@ export interface OverlayContentProps extends StackProps {
|
|
|
16
16
|
* @example
|
|
17
17
|
* ```tsx
|
|
18
18
|
* <ObjectOverlay object={obj}>
|
|
19
|
-
* <OverlayContent padding={
|
|
19
|
+
* <OverlayContent padding={6} maxScale={2}>
|
|
20
20
|
* <MyBadge>{label}</MyBadge>
|
|
21
21
|
* </OverlayContent>
|
|
22
22
|
* </ObjectOverlay>
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OverlayContent.d.ts","sourceRoot":"","sources":["../../src/overlay/OverlayContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,OAAW,EACX,QAAY,EACZ,EAAE,EACF,GAAG,IAAI,EACR,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"OverlayContent.d.ts","sourceRoot":"","sources":["../../src/overlay/OverlayContent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAS,UAAU,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,EAAqB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1D,MAAM,WAAW,mBAAoB,SAAQ,UAAU;IACrD,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,OAAW,EACX,QAAY,EACZ,EAAE,EACF,GAAG,IAAI,EACR,EAAE,mBAAmB,2CA0FrB"}
|
package/dist/overlay/index.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
export { ObjectOverlay } from './ObjectOverlay';
|
|
2
2
|
export type { ObjectOverlayProps } from './ObjectOverlay';
|
|
3
|
+
export { OverlayContainer } from './OverlayContainer';
|
|
4
|
+
export type { OverlayContainerProps } from './OverlayContainer';
|
|
3
5
|
export { OverlayContent } from './OverlayContent';
|
|
4
6
|
export type { OverlayContentProps } from './OverlayContent';
|
|
5
7
|
export { FixedSizeContent } from './FixedSizeContent';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/overlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/overlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAE1D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEhE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC"}
|
package/dist/viewport.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,YAAY,EACtB,KAAK,YAAY,EAGlB,MAAM,QAAQ,CAAC;AAQhB,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACtC,qCAAqC;IACrC,OAAO,EAAE,MAAM,YAAY,CAAC;IAC5B,2EAA2E;IAC3E,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1E;;;OAGG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtE,kCAAkC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;
|
|
1
|
+
{"version":3,"file":"viewport.d.ts","sourceRoot":"","sources":["../src/viewport.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,MAAM,IAAI,YAAY,EACtB,KAAK,YAAY,EAGlB,MAAM,QAAQ,CAAC;AAQhB,MAAM,MAAM,YAAY,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE5C,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,wCAAwC;IACxC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uCAAuC;IACvC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,WAAW,CAAC,EAAE,YAAY,CAAC;CAC5B;AAED,MAAM,WAAW,gBAAgB;IAC/B,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,2CAA2C;IAC3C,OAAO,EAAE,CAAC,IAAI,EAAE,YAAY,KAAK,IAAI,CAAC;IACtC,qCAAqC;IACrC,OAAO,EAAE,MAAM,YAAY,CAAC;IAC5B,2EAA2E;IAC3E,UAAU,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACvC;;;OAGG;IACH,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAClC;;;OAGG;IACH,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC;;;;OAIG;IACH,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;IAC1E;;;OAGG;IACH,SAAS,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,gBAAgB,KAAK,IAAI,CAAC;IACtE,kCAAkC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AA8MD;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,YAAY,EACpB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,kBAAkB,CA2KpB;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAExD"}
|