winui-svelte 0.0.2 → 0.0.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 (108) hide show
  1. package/API.md +120 -6
  2. package/README.md +70 -90
  3. package/dist/bindings/.dynwinrt-managed +1 -1
  4. package/dist/components/convert.d.ts +3 -3
  5. package/dist/components/convert.d.ts.map +1 -1
  6. package/dist/components/fluent-glyph.d.ts +4 -0
  7. package/dist/components/fluent-glyph.d.ts.map +1 -1
  8. package/dist/components/generated/controls/FontIcon.svelte.d.ts +1 -1
  9. package/dist/components/generated/controls/FontIconSource.svelte.d.ts +1 -1
  10. package/dist/components/generated/controls/UIElement.svelte.d.ts +1 -1
  11. package/dist/components/index.d.ts +4 -2
  12. package/dist/components/index.d.ts.map +1 -1
  13. package/dist/components/index.js.map +1 -1
  14. package/dist/css/runtime/resources.d.ts +1 -1
  15. package/dist/dev/dev-window.d.ts +23 -0
  16. package/dist/dev/dev-window.d.ts.map +1 -0
  17. package/dist/dev/dev-window.js +42 -0
  18. package/dist/dev/dev-window.js.map +1 -0
  19. package/dist/dev/index.d.ts +3 -0
  20. package/dist/dev/index.d.ts.map +1 -0
  21. package/dist/dev/index.js +2 -0
  22. package/dist/dev/index.js.map +1 -0
  23. package/dist/dev/start-dev.d.ts +47 -0
  24. package/dist/dev/start-dev.d.ts.map +1 -0
  25. package/dist/dev/start-dev.js +81 -0
  26. package/dist/dev/start-dev.js.map +1 -0
  27. package/dist/enums.d.ts +2 -0
  28. package/dist/enums.d.ts.map +1 -1
  29. package/dist/enums.js +2 -0
  30. package/dist/enums.js.map +1 -1
  31. package/dist/media/media-player.d.ts +8 -0
  32. package/dist/media/media-player.d.ts.map +1 -1
  33. package/dist/media/media-player.js +15 -0
  34. package/dist/media/media-player.js.map +1 -1
  35. package/dist/web-apis/window-geometry.d.ts +39 -0
  36. package/dist/web-apis/window-geometry.d.ts.map +1 -0
  37. package/dist/web-apis/window-geometry.js +95 -0
  38. package/dist/web-apis/window-geometry.js.map +1 -0
  39. package/dist/win2d/Canvas.svelte +1 -0
  40. package/dist/window/anchor.d.ts +92 -0
  41. package/dist/window/anchor.d.ts.map +1 -0
  42. package/dist/window/anchor.js +100 -0
  43. package/dist/window/anchor.js.map +1 -0
  44. package/dist/window/backdrop.d.ts +4 -1
  45. package/dist/window/backdrop.d.ts.map +1 -1
  46. package/dist/window/backdrop.js +10 -2
  47. package/dist/window/backdrop.js.map +1 -1
  48. package/dist/window/create-window.d.ts +1 -1
  49. package/dist/window/create-window.d.ts.map +1 -1
  50. package/dist/window/create-window.js +3 -1
  51. package/dist/window/create-window.js.map +1 -1
  52. package/dist/window/css-pixels.d.ts +14 -0
  53. package/dist/window/css-pixels.d.ts.map +1 -0
  54. package/dist/window/css-pixels.js +12 -0
  55. package/dist/window/css-pixels.js.map +1 -0
  56. package/dist/window/dock.d.ts +51 -0
  57. package/dist/window/dock.d.ts.map +1 -0
  58. package/dist/window/dock.js +69 -0
  59. package/dist/window/dock.js.map +1 -0
  60. package/dist/window/index.d.ts +4 -0
  61. package/dist/window/index.d.ts.map +1 -1
  62. package/dist/window/index.js +2 -0
  63. package/dist/window/index.js.map +1 -1
  64. package/dist/window/native.d.ts +2 -0
  65. package/dist/window/native.d.ts.map +1 -1
  66. package/dist/window/native.js +10 -0
  67. package/dist/window/native.js.map +1 -1
  68. package/dist/window/transparent-backdrop.d.ts +11 -0
  69. package/dist/window/transparent-backdrop.d.ts.map +1 -0
  70. package/dist/window/transparent-backdrop.js +35 -0
  71. package/dist/window/transparent-backdrop.js.map +1 -0
  72. package/dist/window/window-handle.d.ts +17 -0
  73. package/dist/window/window-handle.d.ts.map +1 -1
  74. package/dist/window/window-handle.js +23 -0
  75. package/dist/window/window-handle.js.map +1 -1
  76. package/dist/window/window-host.svelte.d.ts +17 -12
  77. package/dist/window/window-host.svelte.d.ts.map +1 -1
  78. package/dist/window/window-host.svelte.js +208 -23
  79. package/dist/window/window-host.svelte.js.map +1 -1
  80. package/dist/winui.d.ts +5 -0
  81. package/dist/winui.d.ts.map +1 -1
  82. package/dist/winui.js +5 -0
  83. package/dist/winui.js.map +1 -1
  84. package/package.json +25 -7
  85. package/src/components/convert.ts +3 -3
  86. package/src/components/fluent-glyph.ts +6 -0
  87. package/src/components/generated/controls/FontIcon.svelte.ts +1 -1
  88. package/src/components/generated/controls/FontIconSource.svelte.ts +1 -1
  89. package/src/components/generated/controls/UIElement.svelte.ts +1 -1
  90. package/src/components/index.ts +13 -2
  91. package/src/dev/dev-window.ts +63 -0
  92. package/src/dev/index.ts +2 -0
  93. package/src/dev/start-dev.ts +120 -0
  94. package/src/enums.ts +2 -0
  95. package/src/media/media-player.ts +17 -0
  96. package/src/web-apis/window-geometry.ts +106 -0
  97. package/src/window/anchor.ts +156 -0
  98. package/src/window/backdrop.ts +11 -2
  99. package/src/window/create-window.ts +5 -1
  100. package/src/window/css-pixels.ts +18 -0
  101. package/src/window/dock.ts +99 -0
  102. package/src/window/index.ts +4 -0
  103. package/src/window/native.ts +12 -0
  104. package/src/window/transparent-backdrop.ts +38 -0
  105. package/src/window/window-handle.ts +26 -0
  106. package/src/window/window-host.svelte.ts +256 -36
  107. package/src/winui.ts +5 -0
  108. package/web-types.json +3203 -1507
@@ -1,4 +1,6 @@
1
+ import type { DockOptions } from "./dock.js";
1
2
  import type { OpenFilePickerOptions, PickerOptions, SaveFilePickerOptions } from "./pickers.js";
3
+ import { WindowGeometry } from "../web-apis/window-geometry.js";
2
4
  import type { Window } from "../winui.js";
3
5
  import { OverlappedPresenter } from "../winui.js";
4
6
  /**
@@ -8,6 +10,11 @@ import { OverlappedPresenter } from "../winui.js";
8
10
  export declare class WindowHandle {
9
11
  /** The native WinUI window. */
10
12
  readonly window: Window;
13
+ /**
14
+ * The window's size and place as the web has them: `outerWidth`,
15
+ * `screenX`, `resizeTo`, `moveBy` and the rest, in CSS pixels.
16
+ */
17
+ readonly geometry: WindowGeometry;
11
18
  private isClosed;
12
19
  private closeGuard;
13
20
  constructor(window: Window);
@@ -27,6 +34,16 @@ export declare class WindowHandle {
27
34
  * button to hide.
28
35
  */
29
36
  setShownInSwitchers(isShown: boolean): void;
37
+ /**
38
+ * Moves the window against a corner of a display's work area (the display
39
+ * minus the taskbar), `inset` device pixels in from both edges: an overlay
40
+ * that sits bottom-right above the taskbar of the display the user is on.
41
+ * With `sizeToContent` and the same `anchor` on the window, the corner stays
42
+ * as the content grows.
43
+ *
44
+ * @param options - The corner, the inset in device pixels and the display (the active one by default).
45
+ */
46
+ dock(options: DockOptions): void;
30
47
  /** Shows the window and gives it focus. */
31
48
  activate(): void;
32
49
  /** Minimizes the window. */
@@ -1 +1 @@
1
- {"version":3,"file":"window-handle.d.ts","sourceRoot":"","sources":["../../src/window/window-handle.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEhG,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAIL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,qBAAa,YAAY;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAe;gBAErB,MAAM,EAAE,MAAM;IAO1B,oFAAoF;IACpF,IAAI,SAAS,sCAEZ;IAED,6EAA6E;IAC7E,IAAI,KAAK,WAER;IAED;;;;OAIG;IACH,IAAI,SAAS,wBAEZ;IAED;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO;IAOpC,2CAA2C;IAC3C,QAAQ;IAIR,4BAA4B;IAC5B,QAAQ;IAIR,4BAA4B;IAC5B,QAAQ;IAIR,wDAAwD;IACxD,OAAO;IAIP,qEAAqE;IACrE,YAAY;IAKZ;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,GAAE,qBAA0B;IAO5C;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,GAAE,qBAA0B;IAO7C;;;;;OAKG;IACH,UAAU,CAAC,OAAO,GAAE,aAAkB;IAOtC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,GAAE,qBAA0B;IAO5C;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,OAAO;IAI/B,sHAAsH;IACtH,KAAK;CAMN"}
1
+ {"version":3,"file":"window-handle.d.ts","sourceRoot":"","sources":["../../src/window/window-handle.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAG7C,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAEhG,OAAO,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAIL,mBAAmB,EAEpB,MAAM,eAAe,CAAC;AAEvB;;;GAGG;AACH,qBAAa,YAAY;IACvB,+BAA+B;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IAExB;;;OAGG;IACH,QAAQ,CAAC,QAAQ,EAAE,cAAc,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAe;gBAErB,MAAM,EAAE,MAAM;IAQ1B,oFAAoF;IACpF,IAAI,SAAS,sCAEZ;IAED,6EAA6E;IAC7E,IAAI,KAAK,WAER;IAED;;;;OAIG;IACH,IAAI,SAAS,wBAEZ;IAED;;;;OAIG;IACH,mBAAmB,CAAC,OAAO,EAAE,OAAO;IAOpC;;;;;;;;OAQG;IACH,IAAI,CAAC,OAAO,EAAE,WAAW;IAOzB,2CAA2C;IAC3C,QAAQ;IAIR,4BAA4B;IAC5B,QAAQ;IAIR,4BAA4B;IAC5B,QAAQ;IAIR,wDAAwD;IACxD,OAAO;IAIP,qEAAqE;IACrE,YAAY;IAKZ;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,GAAE,qBAA0B;IAO5C;;;;;;OAMG;IACH,SAAS,CAAC,OAAO,GAAE,qBAA0B;IAO7C;;;;;OAKG;IACH,UAAU,CAAC,OAAO,GAAE,aAAkB;IAOtC;;;;;;OAMG;IACH,QAAQ,CAAC,OAAO,GAAE,qBAA0B;IAO5C;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAAE,MAAM,OAAO;IAI/B,sHAAsH;IACtH,KAAK;CAMN"}
@@ -1,6 +1,8 @@
1
1
  import { applyShownInSwitchers } from "./apply-chrome.js";
2
+ import { dockWindow } from "./dock.js";
2
3
  import { scaleOf } from "./native.js";
3
4
  import { pickFile, pickFilePaths, pickFolder, saveFile } from "./pickers.js";
5
+ import { WindowGeometry } from "../web-apis/window-geometry.js";
4
6
  import { FileOpenPicker, FileSavePicker, FolderPicker, OverlappedPresenter, projectAs } from "../winui.js";
5
7
  /**
6
8
  * What app code does with an open window: `bind:handle` on `<Window>` gives it
@@ -9,10 +11,16 @@ import { FileOpenPicker, FileSavePicker, FolderPicker, OverlappedPresenter, proj
9
11
  export class WindowHandle {
10
12
  /** The native WinUI window. */
11
13
  window;
14
+ /**
15
+ * The window's size and place as the web has them: `outerWidth`,
16
+ * `screenX`, `resizeTo`, `moveBy` and the rest, in CSS pixels.
17
+ */
18
+ geometry;
12
19
  isClosed = false;
13
20
  closeGuard = () => false;
14
21
  constructor(window) {
15
22
  this.window = window;
23
+ this.geometry = new WindowGeometry(window.appWindow, () => this.scale);
16
24
  window.onClosed(() => {
17
25
  this.isClosed = true;
18
26
  });
@@ -44,6 +52,21 @@ export class WindowHandle {
44
52
  isShown
45
53
  });
46
54
  }
55
+ /**
56
+ * Moves the window against a corner of a display's work area (the display
57
+ * minus the taskbar), `inset` device pixels in from both edges: an overlay
58
+ * that sits bottom-right above the taskbar of the display the user is on.
59
+ * With `sizeToContent` and the same `anchor` on the window, the corner stays
60
+ * as the content grows.
61
+ *
62
+ * @param options - The corner, the inset in device pixels and the display (the active one by default).
63
+ */
64
+ dock(options) {
65
+ dockWindow({
66
+ appWindow: this.appWindow,
67
+ ...options
68
+ });
69
+ }
47
70
  /** Shows the window and gives it focus. */
48
71
  activate() {
49
72
  this.window.activate();
@@ -1 +1 @@
1
- {"version":3,"file":"window-handle.js","sourceRoot":"","sources":["../../src/window/window-handle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"window-handle.js","sourceRoot":"","sources":["../../src/window/window-handle.ts"],"names":[],"mappings":"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"}
@@ -1,15 +1,10 @@
1
+ import type { SizeToContent, WindowAnchor, WindowBounds, WindowSize } from "./anchor.js";
1
2
  import type { Backdrop } from "./backdrop.js";
2
3
  import type { CaptionButtonColors, TitleBarHeight, WindowRegion } from "./chrome.js";
3
4
  import { WindowPresentation, WindowTheme } from "./chrome.js";
4
5
  import { WindowHandle } from "./window-handle.js";
5
6
  import type { FrameworkElement } from "../winui.js";
6
- /** The window's position and size, in device pixels, as AppWindow has them. */
7
- export interface WindowBounds {
8
- x: number;
9
- y: number;
10
- width: number;
11
- height: number;
12
- }
7
+ export type { WindowBounds, WindowSize } from "./anchor.js";
13
8
  /**
14
9
  * Where the window opens, in device pixels; a size left out is the width or
15
10
  * height prop's.
@@ -64,6 +59,21 @@ export interface WindowProps {
64
59
  */
65
60
  width?: number;
66
61
  height?: number;
62
+ /**
63
+ * Which sides of the window follow its content: the content is measured
64
+ * after every layout pass and the window is resized to it (frame included,
65
+ * within the size limits) with one `AppWindow.MoveAndResize`, so a growing
66
+ * content never flickers. A side that follows the content ignores the
67
+ * `width` or `height` prop and the user's resizing. Windowed presentation
68
+ * only; the default is `none`.
69
+ */
70
+ sizeToContent?: SizeToContent | undefined;
71
+ /**
72
+ * The corner that stays where it is when the window is sized to its content
73
+ * (and when the scale changes the size): a window docked bottom-right whose
74
+ * content grows taller grows upward. The default is `topLeft`.
75
+ */
76
+ anchor?: WindowAnchor | undefined;
67
77
  /** The least the user can resize to, in device-independent pixels. */
68
78
  minWidth?: number;
69
79
  minHeight?: number;
@@ -162,11 +172,6 @@ export interface WindowProps {
162
172
  */
163
173
  onboundschanged?: (bounds: WindowBounds) => void;
164
174
  }
165
- /** A size in device pixels. */
166
- export interface WindowSize {
167
- width: number;
168
- height: number;
169
- }
170
175
  /** What `attachWindow` opens a window around, and how. */
171
176
  export interface AttachOptions {
172
177
  content: FrameworkElement;
@@ -1 +1 @@
1
- {"version":3,"file":"window-host.svelte.d.ts","sourceRoot":"","sources":["../../src/window/window-host.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"window-host.svelte.d.ts","sourceRoot":"","sources":["../../src/window/window-host.svelte.ts"],"names":[],"mappings":"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"}
@@ -1,21 +1,47 @@
1
+ import { fittedBounds, SizeToContent as SizeToContentKind, WindowAnchor as WindowAnchorKind } from "./anchor.js";
1
2
  import { applyCaptionButtonColors, applyPresentation, applyRegions, applyShownInSwitchers, applyTheme, applyTitleBarHeight } from "./apply-chrome.js";
2
3
  import { applyFrameStyle } from "./apply-frame.js";
3
4
  import { applyBackdrop, Backdrop as BackdropKind } from "./backdrop.js";
4
5
  import { isBackgroundRun } from "./background-mode.js";
5
6
  import { backgroundPlacement, keepInBackground } from "./background.js";
6
7
  import { TitleBarHeight as TitleBarHeightKind, WindowPresentation, WindowTheme } from "./chrome.js";
8
+ import { toDevicePixels } from "./css-pixels.js";
7
9
  import { clearWindowClip, clipToRoundedRectangle, excludeFromCapture, ExtendedStyle, joinAppUserModel, ownWindow } from "./native.js";
8
10
  import { createScaleTracker } from "./scale.js";
9
11
  import { onTeardown } from "./teardown.js";
10
12
  import { WindowHandle } from "./window-handle.js";
11
- import { DisplayArea, DisplayAreaFallback, NonClientRegionKind, Window, WindowActivationState } from "../winui.js";
12
- function round({ value, scale }) {
13
- return Math.round(value * scale);
13
+ import { DisplayArea, DisplayAreaFallback, Grid, NonClientRegionKind, ScrollBarVisibility, ScrollMode, ScrollViewer, Window, WindowActivationState } from "../winui.js";
14
+ // A side of the window in device pixels: the prop's, unless the prop is left
15
+ // out or the content sets that side.
16
+ function sideOf({ value, current, isFitted, scale }) {
17
+ const isKept = value === undefined || isFitted;
18
+ if (isKept) {
19
+ return current;
20
+ }
21
+ return toDevicePixels({
22
+ value,
23
+ scale
24
+ });
25
+ }
26
+ // A size limit in device pixels; `fallback` when the app names none.
27
+ function limitOf({ value, fallback, scale }) {
28
+ const isNamed = value !== undefined;
29
+ if (!isNamed) {
30
+ return fallback;
31
+ }
32
+ return toDevicePixels({
33
+ value,
34
+ scale
35
+ });
14
36
  }
15
37
  // A prop the app left out is undefined; a guard names the test.
16
38
  function isGiven(value) {
17
39
  return value !== undefined;
18
40
  }
41
+ // Windows whose component is gone while the application goes on, waiting one
42
+ // tick for the component that replaces it (a hot update re-creates it) to take
43
+ // the same window over; a window nobody takes is closed.
44
+ const orphans = [];
19
45
  class WindowHost {
20
46
  handle;
21
47
  props;
@@ -36,9 +62,12 @@ class WindowHost {
36
62
  isClipApplied = false;
37
63
  isTopApplied = false;
38
64
  hasShown = false;
65
+ isFitting = false;
66
+ scroller = null;
67
+ isTakenOver;
39
68
  openSize;
40
69
  appliedSize;
41
- constructor({ content, props, titleBar, size }) {
70
+ constructor({ content, props, titleBar, size }, orphan) {
42
71
  this.props = props;
43
72
  this.openSize = size;
44
73
  this.content = content;
@@ -51,13 +80,16 @@ class WindowHost {
51
80
  if (isGiven(appUserModelId)) {
52
81
  joinAppUserModel(appUserModelId);
53
82
  }
54
- const window = new Window();
83
+ const window = orphan ?? new Window();
84
+ this.isTakenOver = orphan !== undefined;
55
85
  this.handle = new WindowHandle(window);
56
- if (isBackgroundRun()) {
86
+ const isNewBackgroundWindow = isBackgroundRun() && !this.isTakenOver;
87
+ if (isNewBackgroundWindow) {
57
88
  keepInBackground(this.handle.appWindow.id.value);
58
89
  }
59
90
  this.handle.guardClose(() => this.isCloseRefused());
60
91
  window.content = content;
92
+ this.keepInLine(() => this.syncContainer());
61
93
  this.keepInLine(() => this.syncText());
62
94
  this.keepInLine(() => this.syncBackdrop());
63
95
  this.keepInLine(() => this.syncTheme());
@@ -68,29 +100,93 @@ class WindowHost {
68
100
  this.keepInLine(() => this.syncLimits());
69
101
  this.keepInLine(() => this.syncFrame());
70
102
  this.keepInLine(() => this.syncShape());
71
- this.placeFirst();
103
+ if (!this.isTakenOver) {
104
+ this.placeFirst();
105
+ }
72
106
  $effect(() => this.syncSize());
107
+ $effect(() => this.fitToContent());
73
108
  this.syncOwner();
74
109
  this.listen();
75
110
  this.watchScale();
76
111
  this.show();
77
112
  $effect(() => this.syncVisibility());
78
113
  }
79
- dispose() {
114
+ /**
115
+ * Ends the host. `isClosedLater`: its component is going while the
116
+ * application goes on (a hot update re-creates it). The window is not closed
117
+ * but offered for one tick to the component that replaces it, which takes it
118
+ * over (no relaunch), and closed if nobody does. Closing it during the
119
+ * component's teardown is no option: WinUI aborts Window.Close (E_ABORT).
120
+ */
121
+ dispose(isClosedLater) {
80
122
  this.releaseBackdrop?.();
81
123
  this.releaseBackdrop = null;
82
124
  for (const unsubscribe of this.unsubscribe.splice(0)) {
83
125
  unsubscribe();
84
126
  }
85
127
  this.handle.guardClose(() => false);
128
+ if (isClosedLater) {
129
+ const { window } = this.handle;
130
+ orphans.push(window);
131
+ setTimeout(() => this.closeIfOrphan(window), 0);
132
+ return;
133
+ }
86
134
  this.handle.close();
87
135
  }
136
+ closeIfOrphan(window) {
137
+ const index = orphans.indexOf(window);
138
+ const isOrphan = index !== -1;
139
+ if (isOrphan) {
140
+ orphans.splice(index, 1);
141
+ this.handle.close();
142
+ }
143
+ }
88
144
  // Applied now, so the window opens as it is meant to, and again whenever
89
145
  // what `sync` reads changes.
90
146
  keepInLine(sync) {
91
147
  sync();
92
148
  $effect(sync);
93
149
  }
150
+ // A measure offers an element the space it has and clamps what it asks for
151
+ // to that, so a root as large as the window could never ask for more or
152
+ // less than the window is. Inside a ScrollViewer that may scroll along a
153
+ // side the content sets, the root is offered all the room there (the
154
+ // scroll bars stay hidden), and what it asks for is what it needs.
155
+ syncContainer() {
156
+ const { isWidthFitted, isHeightFitted } = this.fittedSides;
157
+ const isAnySideFitted = isWidthFitted || isHeightFitted;
158
+ const isFitted = isAnySideFitted && this.isWindowed;
159
+ const { window } = this.handle;
160
+ if (!isFitted) {
161
+ this.uncontain();
162
+ return;
163
+ }
164
+ const scroller = this.scroller ?? new ScrollViewer();
165
+ scroller.horizontalScrollBarVisibility = isWidthFitted ? ScrollBarVisibility.Hidden : ScrollBarVisibility.Disabled;
166
+ scroller.horizontalScrollMode = isWidthFitted ? ScrollMode.Enabled : ScrollMode.Disabled;
167
+ scroller.verticalScrollBarVisibility = isHeightFitted ? ScrollBarVisibility.Hidden : ScrollBarVisibility.Disabled;
168
+ scroller.verticalScrollMode = isHeightFitted ? ScrollMode.Enabled : ScrollMode.Disabled;
169
+ const isContained = this.scroller !== null;
170
+ if (isContained) {
171
+ return;
172
+ }
173
+ window.content = new Grid();
174
+ scroller.content = this.content;
175
+ window.content = scroller;
176
+ this.scroller = scroller;
177
+ }
178
+ uncontain() {
179
+ const { scroller } = this;
180
+ const isContained = scroller !== null;
181
+ if (!isContained) {
182
+ return;
183
+ }
184
+ const { window } = this.handle;
185
+ window.content = new Grid();
186
+ scroller.content = null;
187
+ window.content = this.content;
188
+ this.scroller = null;
189
+ }
94
190
  syncText() {
95
191
  const { window } = this.handle;
96
192
  window.title = this.props.title ?? "";
@@ -230,25 +326,25 @@ class WindowHost {
230
326
  presenter.isMinimizable = isMinimizable;
231
327
  }
232
328
  if (isGiven(minWidth)) {
233
- presenter.preferredMinimumWidth = round({
329
+ presenter.preferredMinimumWidth = toDevicePixels({
234
330
  value: minWidth,
235
331
  scale
236
332
  });
237
333
  }
238
334
  if (isGiven(minHeight)) {
239
- presenter.preferredMinimumHeight = round({
335
+ presenter.preferredMinimumHeight = toDevicePixels({
240
336
  value: minHeight,
241
337
  scale
242
338
  });
243
339
  }
244
340
  if (isGiven(maxWidth)) {
245
- presenter.preferredMaximumWidth = round({
341
+ presenter.preferredMaximumWidth = toDevicePixels({
246
342
  value: maxWidth,
247
343
  scale
248
344
  });
249
345
  }
250
346
  if (isGiven(maxHeight)) {
251
- presenter.preferredMaximumHeight = round({
347
+ presenter.preferredMaximumHeight = toDevicePixels({
252
348
  value: maxHeight,
253
349
  scale
254
350
  });
@@ -342,7 +438,7 @@ class WindowHost {
342
438
  hwnd,
343
439
  width,
344
440
  height,
345
- radius: round({
441
+ radius: toDevicePixels({
346
442
  value: cornerRadius,
347
443
  scale: this.handle.scale
348
444
  })
@@ -390,11 +486,11 @@ class WindowHost {
390
486
  const { scale } = this.handle;
391
487
  const current = this.openSize ?? appWindow.size;
392
488
  const size = {
393
- width: props.width === undefined ? current.width : round({
489
+ width: props.width === undefined ? current.width : toDevicePixels({
394
490
  value: props.width,
395
491
  scale
396
492
  }),
397
- height: props.height === undefined ? current.height : round({
493
+ height: props.height === undefined ? current.height : toDevicePixels({
398
494
  value: props.height,
399
495
  scale
400
496
  })
@@ -433,7 +529,8 @@ class WindowHost {
433
529
  });
434
530
  }
435
531
  // A new width or height resizes the window; the user's own resizing is not
436
- // undone, since the props did not change.
532
+ // undone, since the props did not change. A side that follows the content
533
+ // (sizeToContent) is the content's to set.
437
534
  syncSize() {
438
535
  const { width, height } = this.props;
439
536
  const isChanged = width !== this.appliedSize.width || height !== this.appliedSize.height;
@@ -446,17 +543,103 @@ class WindowHost {
446
543
  };
447
544
  const { appWindow } = this.handle.window;
448
545
  const { scale } = this.handle;
546
+ const { isWidthFitted, isHeightFitted } = this.fittedSides;
449
547
  appWindow.resize({
450
- width: width === undefined ? appWindow.size.width : round({
548
+ width: sideOf({
451
549
  value: width,
550
+ current: appWindow.size.width,
551
+ isFitted: isWidthFitted,
452
552
  scale
453
553
  }),
454
- height: height === undefined ? appWindow.size.height : round({
554
+ height: sideOf({
455
555
  value: height,
556
+ current: appWindow.size.height,
557
+ isFitted: isHeightFitted,
456
558
  scale
457
559
  })
458
560
  });
459
561
  }
562
+ get fittedSides() {
563
+ const mode = this.props.sizeToContent ?? SizeToContentKind.none;
564
+ return {
565
+ isWidthFitted: mode === SizeToContentKind.width || mode === SizeToContentKind.both,
566
+ isHeightFitted: mode === SizeToContentKind.height || mode === SizeToContentKind.both
567
+ };
568
+ }
569
+ // Sizes the window to what its content asks for, whenever the prop, the
570
+ // limits, the scale or a layout pass changes it: one MoveAndResize, so the
571
+ // anchor corner never moves between the size and the position.
572
+ fitToContent() {
573
+ const mode = this.props.sizeToContent ?? SizeToContentKind.none;
574
+ const anchor = this.props.anchor ?? WindowAnchorKind.topLeft;
575
+ const { minWidth, minHeight, maxWidth, maxHeight } = this.props;
576
+ const isIdle = mode === SizeToContentKind.none || !this.isWindowed || this.isFitting;
577
+ if (isIdle) {
578
+ return;
579
+ }
580
+ const { desiredSize } = this.content;
581
+ const isMeasured = desiredSize.width > 0 && desiredSize.height > 0;
582
+ if (!isMeasured) {
583
+ return;
584
+ }
585
+ const { appWindow, scale } = this.handle;
586
+ const { size, position, clientSize } = appWindow;
587
+ const frame = {
588
+ width: size.width - clientSize.width,
589
+ height: size.height - clientSize.height
590
+ };
591
+ const target = fittedBounds({
592
+ bounds: {
593
+ ...position,
594
+ ...size
595
+ },
596
+ desired: {
597
+ width: toDevicePixels({
598
+ value: desiredSize.width,
599
+ scale
600
+ }) + frame.width,
601
+ height: toDevicePixels({
602
+ value: desiredSize.height,
603
+ scale
604
+ }) + frame.height
605
+ },
606
+ mode,
607
+ anchor,
608
+ limits: {
609
+ minWidth: limitOf({
610
+ value: minWidth,
611
+ fallback: 0,
612
+ scale
613
+ }),
614
+ minHeight: limitOf({
615
+ value: minHeight,
616
+ fallback: 0,
617
+ scale
618
+ }),
619
+ maxWidth: limitOf({
620
+ value: maxWidth,
621
+ fallback: Infinity,
622
+ scale
623
+ }),
624
+ maxHeight: limitOf({
625
+ value: maxHeight,
626
+ fallback: Infinity,
627
+ scale
628
+ })
629
+ }
630
+ });
631
+ const hasTarget = target !== null;
632
+ if (!hasTarget) {
633
+ return;
634
+ }
635
+ this.isFitting = true;
636
+ try {
637
+ appWindow.moveAndResize(target);
638
+ }
639
+ finally {
640
+ this.isFitting = false;
641
+ }
642
+ }
460
643
  isCloseRefused() {
461
644
  return this.props.onclosing?.() === true;
462
645
  }
@@ -472,7 +655,7 @@ class WindowHost {
472
655
  this.releaseBackdrop?.();
473
656
  this.releaseBackdrop = null;
474
657
  this.props.onclosed?.();
475
- }), window.appWindow.onChanged((_sender, event) => {
658
+ }), this.content.onLayoutUpdated(() => this.fitToContent()), window.appWindow.onChanged((_sender, event) => {
476
659
  const isMoved = event.didPositionChange || event.didSizeChange;
477
660
  if (isMoved) {
478
661
  this.reportBounds();
@@ -490,6 +673,7 @@ class WindowHost {
490
673
  this.syncLimits();
491
674
  this.syncRegions();
492
675
  this.syncShape();
676
+ this.fitToContent();
493
677
  this.props.onscalechanged?.(scale);
494
678
  }
495
679
  });
@@ -510,7 +694,8 @@ class WindowHost {
510
694
  // them (to reopen where the window was) needs them before the user moves it.
511
695
  show() {
512
696
  const isHidden = this.props.isHidden === true;
513
- if (!isHidden) {
697
+ const isToShow = !isHidden && !this.isTakenOver;
698
+ if (isToShow) {
514
699
  this.showWindow();
515
700
  }
516
701
  this.hasShown = true;
@@ -534,14 +719,14 @@ class WindowHost {
534
719
  * where an effect can be created (a component, or an effect root).
535
720
  */
536
721
  export function attachWindow(options) {
537
- const host = new WindowHost(options);
538
- const forget = onTeardown(() => host.dispose());
722
+ const host = new WindowHost(options, orphans.shift());
723
+ const forget = onTeardown(() => host.dispose(false));
539
724
  host.handle.window.onClosed(forget);
540
725
  return {
541
726
  handle: host.handle,
542
727
  dispose() {
543
728
  forget();
544
- host.dispose();
729
+ host.dispose(true);
545
730
  }
546
731
  };
547
732
  }
@@ -1 +1 @@
1
- {"version":3,"file":"window-host.svelte.js","sourceRoot":"","sources":["../../src/window/window-host.svelte.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"window-host.svelte.js","sourceRoot":"","sources":["../../src/window/window-host.svelte.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,aAAa,IAAI,iBAAiB,EAAE,YAAY,IAAI,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACjH,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,qBAAqB,EACrB,UAAU,EACV,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,aAAa,EAAE,QAAQ,IAAI,YAAY,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExE,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACpG,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,kBAAkB,EAClB,aAAa,EACb,gBAAgB,EAChB,SAAS,EACV,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EACL,WAAW,EACX,mBAAmB,EACnB,IAAI,EACJ,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,MAAM,EACN,qBAAqB,EACtB,MAAM,eAAe,CAAC;AA0NvB,6EAA6E;AAC7E,qCAAqC;AACrC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAKhD;IACC,MAAM,MAAM,GAAG,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,cAAc,CAAC;QACpB,KAAK;QACL,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,qEAAqE;AACrE,SAAS,OAAO,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAIxC;IACC,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC;IACpC,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,OAAO,cAAc,CAAC;QACpB,KAAK;QACL,KAAK;KACN,CAAC,CAAC;AACL,CAAC;AAED,gEAAgE;AAChE,SAAS,OAAO,CAAQ,KAAwB;IAC9C,OAAO,KAAK,KAAK,SAAS,CAAC;AAC7B,CAAC;AAED,6EAA6E;AAC7E,+EAA+E;AAC/E,yDAAyD;AACzD,MAAM,OAAO,GAAa,EAAE,CAAC;AAE7B,MAAM,UAAU;IACL,MAAM,CAAe;IACb,KAAK,CAAc;IACnB,QAAQ,CAAgC;IACxC,OAAO,CAAmB;IAC1B,WAAW,GAAsB,EAAE,CAAC;IAC7C,eAAe,GAAoB,IAAI,CAAC;IACxC,eAAe,GAAwB,IAAI,CAAC;IAC5C,cAAc,GAAG,KAAK,CAAC;IACvB,qBAAqB,GAAG,KAAK,CAAC;IAC9B,aAAa,GAA0B,IAAI,CAAC;IAC5C,qBAAqB,GAAuC,IAAI,GAAG,EAAE,CAAC;IAC7D,cAAc,GAAG,IAAI,GAAG,EAAuB,CAAC;IAChD,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IAC3C,eAAe,GAAG,KAAK,CAAC;IACxB,gBAAgB,GAAG,KAAK,CAAC;IACzB,iBAAiB,GAAG,KAAK,CAAC;IAC1B,aAAa,GAAG,KAAK,CAAC;IACtB,YAAY,GAAG,KAAK,CAAC;IACrB,QAAQ,GAAG,KAAK,CAAC;IACjB,SAAS,GAAG,KAAK,CAAC;IAClB,QAAQ,GAAwB,IAAI,CAAC;IAC5B,WAAW,CAAU;IACrB,QAAQ,CAAyB;IAC1C,WAAW,CAGjB;IAEF,YAAY,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAiB,EAAE,MAA0B;QACvF,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,CAAC;QAEF,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAC;QACjC,IAAI,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;YAC5B,gBAAgB,CAAC,cAAc,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,IAAI,MAAM,EAAE,CAAC;QACtC,IAAI,CAAC,WAAW,GAAG,MAAM,KAAK,SAAS,CAAC;QACxC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAC;QAEvC,MAAM,qBAAqB,GAAG,eAAe,EAAE,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QACrE,IAAI,qBAAqB,EAAE,CAAC;YAC1B,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;QACpD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;QACzB,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAC/C,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QACxC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAED,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC/B,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,CAAC;QACnC,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,UAAU,EAAE,CAAC;QAClB,IAAI,CAAC,IAAI,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC;IACvC,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CAAC,aAAsB;QAC5B,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;QACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,KAAK,MAAM,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;YACrD,WAAW,EAAE,CAAC;QAChB,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;QAEpC,IAAI,aAAa,EAAE,CAAC;YAClB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACrB,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAEO,aAAa,CAAC,MAAc;QAClC,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC;QAC9B,IAAI,QAAQ,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;YACzB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACtB,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,6BAA6B;IACrB,UAAU,CAAC,IAAgB;QACjC,IAAI,EAAE,CAAC;QACP,OAAO,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,2EAA2E;IAC3E,wEAAwE;IACxE,yEAAyE;IACzE,qEAAqE;IACrE,mEAAmE;IAC3D,aAAa;QACnB,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,MAAM,eAAe,GAAG,aAAa,IAAI,cAAc,CAAC;QACxD,MAAM,QAAQ,GAAG,eAAe,IAAI,IAAI,CAAC,UAAU,CAAC;QACpD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,YAAY,EAAE,CAAC;QACrD,QAAQ,CAAC,6BAA6B,GAAG,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QACnH,QAAQ,CAAC,oBAAoB,GAAG,aAAa,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QACzF,QAAQ,CAAC,2BAA2B,GAAG,cAAc,CAAC,CAAC,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC;QAClH,QAAQ,CAAC,kBAAkB,GAAG,cAAc,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC;QACxF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAChC,MAAM,CAAC,OAAO,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAEO,SAAS;QACf,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;QAC1B,MAAM,WAAW,GAAG,QAAQ,KAAK,IAAI,CAAC;QACtC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,OAAO,GAAG,IAAI,IAAI,EAAE,CAAC;QAC5B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAEO,QAAQ;QACd,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE,CAAC;QACtC,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC5B,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAClB,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,IAAI,YAAY,CAAC,IAAI,CAAC;QAC1D,MAAM,SAAS,GAAG,QAAQ,KAAK,IAAI,CAAC,eAAe,CAAC;QACpD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,aAAa,CAAC;gBACnC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC1B,OAAO,EAAE,IAAI,CAAC,OAAO;gBACrB,QAAQ;aACT,CAAC,CAAC;YACH,IAAI,CAAC,eAAe,GAAG,QAAQ,CAAC;QAClC,CAAC;IACH,CAAC;IAEO,YAAY;QAClB,MAAM,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;QAC5B,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,mBAAmB,IAAI,GAAG,KAAK,IAAI,CAAC;QAClE,MAAM,CAAC,0BAA0B,GAAG,UAAU,CAAC;QAC/C,MAAM,QAAQ,GAAG,UAAU,IAAI,GAAG,KAAK,IAAI,CAAC;QAC5C,IAAI,QAAQ,EAAE,CAAC;YACb,MAAM,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,yEAAyE;IACzE,2BAA2B;IACnB,SAAS;QACf,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7B,MAAM,OAAO,GAAG,KAAK,KAAK,SAAS,CAAC;QACpC,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QACrD,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,UAAU,CAAC;YACT,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,KAAK,EAAE,KAAK,IAAI,WAAW,CAAC,MAAM;SACnC,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB;QACtB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAClC,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtD,MAAM,WAAW,GAAG,cAAc,KAAK,SAAS,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,CAAC;QAChF,IAAI,WAAW,EAAE,CAAC;YAChB,mBAAmB,CAAC;gBAClB,SAAS;gBACT,MAAM,EAAE,cAAc,IAAI,kBAAkB,CAAC,QAAQ;aACtD,CAAC,CAAC;YACH,IAAI,CAAC,aAAa,GAAG,cAAc,IAAI,IAAI,CAAC;QAC9C,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,wBAAwB,CAAC;YACpD,SAAS;YACT,MAAM,EAAE,cAAc;YACtB,OAAO,EAAE,IAAI,CAAC,qBAAqB;SACpC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW;QACjB,MAAM,EAAE,WAAW,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,mBAAmB,CAAC,OAAO;YACjC,OAAO,EAAE,WAAW;SACrB,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC;YACd,IAAI,EAAE,mBAAmB,CAAC,WAAW;YACrC,OAAO,EAAE,kBAAkB;SAC5B,CAAC,CAAC;IACL,CAAC;IAEO,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAGjC;QACC,MAAM,OAAO,GAAG,OAAO,KAAK,SAAS,CAAC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChD,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,CAAC,SAAS,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,YAAY,CAAC;YACX,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,IAAI;YACJ,OAAO,EAAE,OAAO,IAAI,EAAE;YACtB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;SACzB,CAAC,CAAC;QAEH,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;IAED,IAAY,UAAU;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,IAAI,kBAAkB,CAAC,QAAQ,CAAC;QAC5E,OAAO,YAAY,KAAK,kBAAkB,CAAC,QAAQ,CAAC;IACtD,CAAC;IAED,2DAA2D;IACnD,gBAAgB;QACtB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,MAAM,OAAO,GAAG,YAAY,KAAK,SAAS,CAAC;QAC3C,MAAM,WAAW,GAAG,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC;QAC5D,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,qBAAqB,GAAG,OAAO,CAAC;QACrC,iBAAiB,CAAC;YAChB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;YAChC,YAAY,EAAE,YAAY,IAAI,kBAAkB,CAAC,QAAQ;SAC1D,CAAC,CAAC;QAEH,IAAI,eAAe,EAAE,EAAE,CAAC;YACtB,2EAA2E;YAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;QACvF,CAAC;IACH,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChF,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACzC,MAAM,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,YAAY,CAAC;QACjE,IAAI,YAAY,EAAE,CAAC;YACjB,SAAS,CAAC,aAAa,GAAG,aAAa,IAAI,KAAK,CAAC;YACjD,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;YACzB,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;YAC3B,SAAS,CAAC,aAAa,GAAG,aAAa,CAAC;QAC1C,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,qBAAqB,GAAG,cAAc,CAAC;gBAC/C,KAAK,EAAE,QAAQ;gBACf,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,sBAAsB,GAAG,cAAc,CAAC;gBAChD,KAAK,EAAE,SAAS;gBAChB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,qBAAqB,GAAG,cAAc,CAAC;gBAC/C,KAAK,EAAE,QAAQ;gBACf,KAAK;aACN,CAAC,CAAC;QACL,CAAC;QAED,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACvB,SAAS,CAAC,sBAAsB,GAAG,cAAc,CAAC;gBAChD,KAAK,EAAE,SAAS;gBAChB,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,uCAAuC;IAC/B,SAAS;QACf,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5C,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC9G,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;QAC9C,MAAM,WAAW,GAAG;YAClB;gBACE,KAAK,EAAE;oBACL,MAAM,EAAE,aAAa,CAAC,UAAU;oBAChC,kBAAkB,EAAE,IAAI;iBACzB;gBACD,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,SAAS;aAClD;YACD;gBACE,KAAK,EAAE;oBACL,MAAM,EAAE,aAAa,CAAC,UAAU;oBAChC,kBAAkB,EAAE,IAAI;iBACzB;gBACD,IAAI,EAAE,YAAY;aACnB;YACD;gBACE,KAAK,EAAE;oBACL,MAAM,EAAE,aAAa,CAAC,WAAW;oBACjC,SAAS,EAAE,IAAI;iBAChB;gBACD,IAAI,EAAE,cAAc;aACrB;SACF,CAAC;QACF,KAAK,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,WAAW,EAAE,CAAC;YAC1C,eAAe,CAAC;gBACd,IAAI;gBACJ,KAAK;gBACL,IAAI;gBACJ,OAAO,EAAE,IAAI,CAAC,aAAa;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,MAAM,cAAc,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;QACtD,MAAM,gBAAgB,GAAG,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC;QACjE,IAAI,gBAAgB,EAAE,CAAC;YACrB,kBAAkB,CAAC;gBACjB,IAAI;gBACJ,UAAU,EAAE,qBAAqB,KAAK,IAAI;aAC3C,CAAC,CAAC;YACH,IAAI,CAAC,gBAAgB,GAAG,cAAc,CAAC;QACzC,CAAC;QAED,MAAM,eAAe,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC;QACpD,MAAM,iBAAiB,GAAG,eAAe,IAAI,IAAI,CAAC,iBAAiB,CAAC;QACpE,IAAI,iBAAiB,EAAE,CAAC;YACtB,qBAAqB,CAAC;gBACpB,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;gBAChC,OAAO,EAAE,kBAAkB,IAAI,IAAI;aACpC,CAAC,CAAC;YACH,IAAI,CAAC,iBAAiB,GAAG,eAAe,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAEO,UAAU;QAChB,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,MAAM,UAAU,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACzC,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,eAAe,CAAC,CAAC;QAC1E,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,KAAK,IAAI,CAAC;QACvC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC/D,IAAI,CAAC,eAAe,GAAG,UAAU,CAAC;IACpC,CAAC;IAED,yEAAyE;IACzE,wCAAwC;IAChC,SAAS;QACf,MAAM,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACpC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC;QAClD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC;QAC5C,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,eAAe,CAAC,IAAI,CAAC,CAAC;YACtB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;QACrD,sBAAsB,CAAC;YACrB,IAAI;YACJ,KAAK;YACL,MAAM;YACN,MAAM,EAAE,cAAc,CAAC;gBACrB,KAAK,EAAE,YAAY;gBACnB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;aACzB,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,8BAA8B;IACtB,cAAc;QACpB,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAClC,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,IAAI,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,SAAS,CAAC,SAAS,CAAC;QACzC,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAEO,SAAS;QACf,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACtC,MAAM,QAAQ,GAAG,KAAK,KAAK,SAAS,CAAC;QACrC,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC;gBACR,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK;gBACpC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK;aAChC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,mBAAmB,GAAG,OAAO,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC;QAC1D,IAAI,mBAAmB,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;QACnD,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,GAAG,OAAO,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,wEAAwE;IACxE,gDAAgD;IACxC,UAAU;QAChB,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,IAAI,SAAS,CAAC,IAAI,CAAC;QAChD,MAAM,IAAI,GAAG;YACX,KAAK,EAAE,KAAK,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;gBAChE,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,KAAK;aACN,CAAC;YACF,MAAM,EAAE,KAAK,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,cAAc,CAAC;gBACnE,KAAK,EAAE,KAAK,CAAC,MAAM;gBACnB,KAAK;aACN,CAAC;SACH,CAAC;QACF,IAAI,eAAe,EAAE,EAAE,CAAC;YACtB,SAAS,CAAC,aAAa,CACrB,mBAAmB,CAAC;gBAClB,KAAK,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,IAAI,IAAI,CAAC,KAAK;gBAC3C,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,IAAI,CAAC,MAAM;aAC/C,CAAC,CACH,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC;QAC1C,MAAM,QAAQ,GAAG,SAAS,KAAK,IAAI,CAAC;QACpC,IAAI,QAAQ,EAAE,CAAC;YACb,SAAS,CAAC,aAAa,CAAC;gBACtB,CAAC,EAAE,SAAS,CAAC,CAAC;gBACd,CAAC,EAAE,SAAS,CAAC,CAAC;gBACd,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK;gBACpC,MAAM,EAAE,SAAS,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM;aACxC,CAAC,CAAC;YACH,OAAO;QACT,CAAC;QAED,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC;QAC5C,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,EAAE,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,MAAM;QACZ,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,MAAM,OAAO,GAAG,WAAW,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,EAAE,mBAAmB,CAAC,OAAO,CAAC,CAAC;QACvF,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC9B,SAAS,CAAC,IAAI,CAAC;YACb,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAC/D,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SAClE,CAAC,CAAC;IACL,CAAC;IAED,2EAA2E;IAC3E,0EAA0E;IAC1E,2CAA2C;IACnC,QAAQ;QACd,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,IAAI,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;QACzF,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,WAAW,GAAG;YACjB,KAAK;YACL,MAAM;SACP,CAAC;QACF,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC9B,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,WAAW,CAAC;QAC3D,SAAS,CAAC,MAAM,CAAC;YACf,KAAK,EAAE,MAAM,CAAC;gBACZ,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,KAAK;gBAC7B,QAAQ,EAAE,aAAa;gBACvB,KAAK;aACN,CAAC;YACF,MAAM,EAAE,MAAM,CAAC;gBACb,KAAK,EAAE,MAAM;gBACb,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,MAAM;gBAC9B,QAAQ,EAAE,cAAc;gBACxB,KAAK;aACN,CAAC;SACH,CAAC,CAAC;IACL,CAAC;IAED,IAAY,WAAW;QACrB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAChE,OAAO;YACL,aAAa,EAAE,IAAI,KAAK,iBAAiB,CAAC,KAAK,IAAI,IAAI,KAAK,iBAAiB,CAAC,IAAI;YAClF,cAAc,EAAE,IAAI,KAAK,iBAAiB,CAAC,MAAM,IAAI,IAAI,KAAK,iBAAiB,CAAC,IAAI;SACrF,CAAC;IACJ,CAAC;IAED,wEAAwE;IACxE,2EAA2E;IAC3E,+DAA+D;IACvD,YAAY;QAClB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,IAAI,iBAAiB,CAAC,IAAI,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,gBAAgB,CAAC,OAAO,CAAC;QAC7D,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAChE,MAAM,MAAM,GAAG,IAAI,KAAK,iBAAiB,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,SAAS,CAAC;QACrF,IAAI,MAAM,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QAED,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC;QACrC,MAAM,UAAU,GAAG,WAAW,CAAC,KAAK,GAAG,CAAC,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;QACnE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO;QACT,CAAC;QAED,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QACzC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;QACjD,MAAM,KAAK,GAAG;YACZ,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK;YACpC,MAAM,EAAE,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM;SACxC,CAAC;QACF,MAAM,MAAM,GAAG,YAAY,CAAC;YAC1B,MAAM,EAAE;gBACN,GAAG,QAAQ;gBACX,GAAG,IAAI;aACR;YACD,OAAO,EAAE;gBACP,KAAK,EAAE,cAAc,CAAC;oBACpB,KAAK,EAAE,WAAW,CAAC,KAAK;oBACxB,KAAK;iBACN,CAAC,GAAG,KAAK,CAAC,KAAK;gBAChB,MAAM,EAAE,cAAc,CAAC;oBACrB,KAAK,EAAE,WAAW,CAAC,MAAM;oBACzB,KAAK;iBACN,CAAC,GAAG,KAAK,CAAC,MAAM;aAClB;YACD,IAAI;YACJ,MAAM;YACN,MAAM,EAAE;gBACN,QAAQ,EAAE,OAAO,CAAC;oBAChB,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE,CAAC;oBACX,KAAK;iBACN,CAAC;gBACF,SAAS,EAAE,OAAO,CAAC;oBACjB,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,CAAC;oBACX,KAAK;iBACN,CAAC;gBACF,QAAQ,EAAE,OAAO,CAAC;oBAChB,KAAK,EAAE,QAAQ;oBACf,QAAQ,EAAE,QAAQ;oBAClB,KAAK;iBACN,CAAC;gBACF,SAAS,EAAE,OAAO,CAAC;oBACjB,KAAK,EAAE,SAAS;oBAChB,QAAQ,EAAE,QAAQ;oBAClB,KAAK;iBACN,CAAC;aACH;SACF,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,MAAM,KAAK,IAAI,CAAC;QAClC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO;QACT,CAAC;QAED,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACH,SAAS,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;QAClC,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACzB,CAAC;IACH,CAAC;IAEO,cAAc;QACpB,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,EAAE,KAAK,IAAI,CAAC;IAC3C,CAAC;IAEO,MAAM;QACZ,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,MAAM,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YACpC,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC,KAAK,CAAC,qBAAqB,KAAK,qBAAqB,CAAC,WAAW,CAAC,CAAC;QAClG,CAAC,CAAC,EACF,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5C,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC;QACvC,CAAC,CAAC,EACF,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAE;YACnB,wEAAwE;YACxE,0CAA0C;YAC1C,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC;YACzB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC5B,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,EAAE,CAAC;QAC1B,CAAC,CAAC,EACF,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC,EACvD,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,CAAC,aAAa,CAAC;YAC/D,IAAI,OAAO,EAAE,CAAC;gBACZ,IAAI,CAAC,YAAY,EAAE,CAAC;YACtB,CAAC;YAED,IAAI,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAED,wEAAwE;IAChE,UAAU;QAChB,MAAM,OAAO,GAAG,kBAAkB,CAAC;YACjC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK;YAClC,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAChB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAClB,IAAI,CAAC,WAAW,EAAE,CAAC;gBACnB,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjB,IAAI,CAAC,YAAY,EAAE,CAAC;gBACpB,IAAI,CAAC,KAAK,CAAC,cAAc,EAAE,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC;SACF,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,EAAE;YAC3B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QAChF,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;IAEO,YAAY;QAClB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;YAC3B,CAAC,EAAE,QAAQ,CAAC,CAAC;YACb,CAAC,EAAE,QAAQ,CAAC,CAAC;YACb,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC,CAAC;IACL,CAAC;IAED,4EAA4E;IAC5E,6EAA6E;IACrE,IAAI;QACV,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,IAAI,CAAC;QAC9C,MAAM,QAAQ,GAAG,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC;QAChD,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,IAAI,CAAC,YAAY,EAAE,CAAC;IACtB,CAAC;IAEO,UAAU;QAChB,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC;QAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,KAAK,KAAK,IAAI,eAAe,EAAE,CAAC;QACxE,IAAI,YAAY,EAAE,CAAC;YACjB,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,UAAU,YAAY,CAAC,OAAsB;IACjD,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACtD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IACrD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IACpC,OAAO;QACL,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,OAAO;YACL,MAAM,EAAE,CAAC;YACT,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,OAAsB;IAC3D,MAAM,QAAQ,GAA2C,EAAE,CAAC;IAC5D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE;QAC7B,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,MAAM,CAAC,GAAG,QAAQ,CAAC;IAC1B,MAAM,MAAM,GAAG,MAAM,KAAK,SAAS,CAAC;IACpC,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,EAAE,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACpC,OAAO,MAAM,CAAC;AAChB,CAAC"}