@base44-preview/vite-plugin 0.2.26-pr.42.7e00d38 → 0.2.26-pr.42.fa53c09

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 (27) hide show
  1. package/dist/capabilities/inline-edit/controller.d.ts +3 -0
  2. package/dist/capabilities/inline-edit/controller.d.ts.map +1 -0
  3. package/dist/capabilities/inline-edit/controller.js +190 -0
  4. package/dist/capabilities/inline-edit/controller.js.map +1 -0
  5. package/dist/capabilities/inline-edit/dom-utils.d.ts +6 -0
  6. package/dist/capabilities/inline-edit/dom-utils.d.ts.map +1 -0
  7. package/dist/capabilities/inline-edit/dom-utils.js +49 -0
  8. package/dist/capabilities/inline-edit/dom-utils.js.map +1 -0
  9. package/dist/capabilities/inline-edit/index.d.ts +3 -0
  10. package/dist/capabilities/inline-edit/index.d.ts.map +1 -0
  11. package/dist/capabilities/inline-edit/index.js +2 -0
  12. package/dist/capabilities/inline-edit/index.js.map +1 -0
  13. package/dist/capabilities/inline-edit/types.d.ts +25 -0
  14. package/dist/capabilities/inline-edit/types.d.ts.map +1 -0
  15. package/dist/capabilities/inline-edit/types.js +2 -0
  16. package/dist/capabilities/inline-edit/types.js.map +1 -0
  17. package/dist/injections/visual-edit-agent.d.ts.map +1 -1
  18. package/dist/injections/visual-edit-agent.js +41 -272
  19. package/dist/injections/visual-edit-agent.js.map +1 -1
  20. package/dist/statics/index.mjs +5 -5
  21. package/dist/statics/index.mjs.map +1 -1
  22. package/package.json +1 -1
  23. package/src/capabilities/inline-edit/controller.ts +241 -0
  24. package/src/capabilities/inline-edit/dom-utils.ts +48 -0
  25. package/src/capabilities/inline-edit/index.ts +2 -0
  26. package/src/capabilities/inline-edit/types.ts +30 -0
  27. package/src/injections/visual-edit-agent.ts +41 -326
@@ -1,6 +1,7 @@
1
1
  import { findElementsById, updateElementClasses, updateElementAttribute, collectAllowedAttributes, ALLOWED_ATTRIBUTES, getElementSelectorId } from "./utils.js";
2
2
  import { createLayerController } from "./layer-dropdown/controller.js";
3
3
  import { LAYER_DROPDOWN_ATTR } from "./layer-dropdown/consts.js";
4
+ import { createInlineEditController } from "../capabilities/inline-edit/index.js";
4
5
  export function setupVisualEditAgent() {
5
6
  // State variables (replacing React useState/useRef)
6
7
  let isVisualEditMode = false;
@@ -10,13 +11,7 @@ export function setupVisualEditAgent() {
10
11
  let selectedOverlays = [];
11
12
  let currentHighlightedElements = [];
12
13
  let selectedElementId = null;
13
- let currentEditingElement = null;
14
- let debouncedSendTimeout = null;
15
- let isInlineEditExperimentEnabled = false;
16
- const INLINE_EDIT_DEBOUNCE_MS = 500;
17
14
  const REPOSITION_DELAY_MS = 50;
18
- // WeakMap to track AbortControllers for each element's input listener
19
- const listenerAbortControllers = new WeakMap();
20
15
  // Create overlay element
21
16
  const createOverlay = (isSelected = false) => {
22
17
  const overlay = document.createElement("div");
@@ -64,203 +59,30 @@ export function setupVisualEditAgent() {
64
59
  overlay.appendChild(label);
65
60
  }
66
61
  };
67
- // --- Inline editing utilities ---
68
- const injectFocusOutlineCSS = () => {
69
- const existingStyle = document.getElementById("visual-edit-focus-styles");
70
- if (existingStyle)
71
- return;
72
- const style = document.createElement("style");
73
- style.id = "visual-edit-focus-styles";
74
- style.textContent = `
75
- [data-selected="true"][contenteditable="true"]:focus {
76
- outline: none !important;
77
- }
78
- `;
79
- document.head.appendChild(style);
80
- };
81
- const removeFocusOutlineCSS = () => {
82
- const style = document.getElementById("visual-edit-focus-styles");
83
- if (style) {
84
- style.remove();
85
- }
86
- };
87
- const selectText = (element) => {
88
- const range = document.createRange();
89
- range.selectNodeContents(element);
90
- const selection = window.getSelection();
91
- selection?.removeAllRanges();
92
- selection?.addRange(range);
93
- };
94
- const isEditableTextElement = (element) => {
95
- if (!(element instanceof HTMLElement)) {
96
- return false;
97
- }
98
- const allowedTags = [
99
- "div", "p", "h1", "h2", "h3", "h4", "h5", "h6",
100
- "span", "li", "td", "a", "button", "label",
101
- ];
102
- if (!allowedTags.includes(element.tagName.toLowerCase())) {
103
- return false;
104
- }
105
- const textContent = element.textContent?.trim() || "";
106
- if (textContent.length === 0) {
107
- return false;
108
- }
109
- if (element.querySelector("img, video, canvas, svg") !== null) {
110
- return false;
111
- }
112
- if (element.children.length > 0) {
113
- return false;
114
- }
115
- if (element.dataset.dynamicContent === "true") {
116
- return false;
117
- }
118
- return true;
119
- };
120
- const shouldEnterInlineEditingMode = (element) => {
121
- if (!(element instanceof HTMLElement) || element.dataset.selected !== "true") {
122
- return false;
123
- }
124
- return isEditableTextElement(element);
125
- };
126
- const handleInputEvent = function () {
127
- onTextInputChange(this);
128
- };
129
- const enterInlineEditingMode = (element) => {
130
- injectFocusOutlineCSS();
131
- element.dataset.originalTextContent = element.textContent || "";
132
- element.dataset.originalCursor = element.style.cursor;
133
- element.contentEditable = "true";
134
- const abortController = new AbortController();
135
- listenerAbortControllers.set(element, abortController);
136
- element.addEventListener("input", handleInputEvent, { signal: abortController.signal });
137
- element.style.cursor = "text";
138
- selectText(element);
139
- setTimeout(() => {
140
- element.focus();
141
- }, 0);
142
- };
143
- const clearInlineEditingMode = (element) => {
144
- const abortController = listenerAbortControllers.get(element);
145
- if (abortController) {
146
- abortController.abort();
147
- listenerAbortControllers.delete(element);
148
- }
149
- if (!element.isConnected) {
150
- return;
151
- }
152
- removeFocusOutlineCSS();
153
- element.contentEditable = "false";
154
- delete element.dataset.originalTextContent;
155
- if (element.dataset.originalCursor !== undefined) {
156
- element.style.cursor = element.dataset.originalCursor;
157
- delete element.dataset.originalCursor;
158
- }
159
- };
160
- const repositionSelectedOverlays = () => {
161
- if (selectedElementId) {
162
- const elements = findElementsById(selectedElementId);
163
- selectedOverlays.forEach((overlay, index) => {
164
- if (index < elements.length) {
165
- positionOverlay(overlay, elements[index]);
166
- }
167
- });
168
- }
169
- };
170
- const handleEnterInlineEditingMode = (element) => {
171
- currentEditingElement = element;
172
- selectedOverlays.forEach((overlay) => {
173
- overlay.style.display = "none";
174
- });
175
- enterInlineEditingMode(element);
176
- window.parent.postMessage({
177
- type: "content-editing-started",
178
- visualSelectorId: selectedElementId,
179
- }, "*");
180
- };
181
- const handleClearInlineEditingMode = () => {
182
- if (!currentEditingElement)
183
- return;
184
- if (debouncedSendTimeout) {
185
- clearTimeout(debouncedSendTimeout);
186
- debouncedSendTimeout = null;
187
- }
188
- const element = currentEditingElement;
189
- clearInlineEditingMode(element);
190
- selectedOverlays.forEach((overlay) => {
191
- overlay.style.display = "";
192
- });
193
- repositionSelectedOverlays();
194
- window.parent.postMessage({
195
- type: "content-editing-ended",
196
- visualSelectorId: selectedElementId,
197
- }, "*");
198
- currentEditingElement = null;
199
- };
200
- const reportInlineEdit = (element) => {
201
- const originalContent = element.dataset.originalTextContent;
202
- const newContent = element.textContent;
203
- const svgElement = element;
204
- const elementInfo = {
205
- tagName: element.tagName,
206
- classes: svgElement.className?.baseVal ||
207
- element.className ||
208
- "",
209
- visualSelectorId: selectedElementId,
210
- content: newContent,
211
- dataSourceLocation: element.dataset.sourceLocation,
212
- isDynamicContent: element.dataset.dynamicContent === "true",
213
- linenumber: element.dataset.linenumber,
214
- filename: element.dataset.filename,
215
- position: (() => {
216
- const rect = element.getBoundingClientRect();
217
- return {
218
- top: rect.top,
219
- left: rect.left,
220
- right: rect.right,
221
- bottom: rect.bottom,
222
- width: rect.width,
223
- height: rect.height,
224
- centerX: rect.left + rect.width / 2,
225
- centerY: rect.top + rect.height / 2,
226
- };
227
- })(),
228
- };
229
- window.parent.postMessage({
230
- type: "inline-edit",
231
- elementInfo,
232
- originalContent,
233
- newContent,
234
- }, "*");
235
- element.dataset.originalTextContent = newContent || "";
236
- };
237
- const debouncedSendInlineEditMessage = (element) => {
238
- if (debouncedSendTimeout) {
239
- clearTimeout(debouncedSendTimeout);
240
- }
241
- debouncedSendTimeout = setTimeout(() => {
242
- reportInlineEdit(element);
243
- }, INLINE_EDIT_DEBOUNCE_MS);
244
- };
245
- const onTextInputChange = (element) => {
246
- repositionSelectedOverlays();
247
- debouncedSendInlineEditMessage(element);
248
- };
249
- const clearSelection = () => {
250
- if (selectedElementId) {
251
- const elements = findElementsById(selectedElementId);
62
+ // --- Inline edit controller ---
63
+ const inlineEdit = createInlineEditController({
64
+ findElementsById,
65
+ getSelectedElementId: () => selectedElementId,
66
+ getSelectedOverlays: () => selectedOverlays,
67
+ positionOverlay,
68
+ clearSelection: () => {
69
+ inlineEdit.clearSelectedMarks(selectedElementId);
70
+ clearSelectedOverlays();
71
+ selectedElementId = null;
72
+ },
73
+ createSelectionOverlays: (elements, elementId) => {
252
74
  elements.forEach((el) => {
253
- if (el instanceof HTMLElement) {
254
- delete el.dataset.selected;
255
- }
75
+ const overlay = createOverlay(true);
76
+ document.body.appendChild(overlay);
77
+ selectedOverlays.push(overlay);
78
+ positionOverlay(overlay, el, true);
256
79
  });
257
- }
258
- selectedOverlays.forEach((overlay) => {
259
- if (overlay && overlay.parentNode) {
260
- overlay.remove();
261
- }
262
- });
263
- selectedOverlays = [];
80
+ selectedElementId = elementId;
81
+ },
82
+ });
83
+ const clearSelection = () => {
84
+ inlineEdit.clearSelectedMarks(selectedElementId);
85
+ clearSelectedOverlays();
264
86
  selectedElementId = null;
265
87
  };
266
88
  // Clear hover overlays
@@ -337,8 +159,7 @@ export function setupVisualEditAgent() {
337
159
  const handleMouseOver = (e) => {
338
160
  if (!isVisualEditMode || isPopoverDragging)
339
161
  return;
340
- // Skip hover effects when inline editing
341
- if (currentEditingElement)
162
+ if (inlineEdit.isEditing())
342
163
  return;
343
164
  const target = e.target;
344
165
  // Prevent hover effects when a dropdown is open
@@ -393,16 +214,17 @@ export function setupVisualEditAgent() {
393
214
  // Let layer dropdown clicks pass through without interference
394
215
  if (target.closest(`[${LAYER_DROPDOWN_ATTR}]`))
395
216
  return;
396
- // Allow normal editing when clicking inside a contentEditable element
397
- if (isInlineEditExperimentEnabled && target instanceof HTMLElement && target.contentEditable === "true") {
217
+ // Let clicks inside the editable element pass through to the browser
218
+ // so the user can reposition the cursor and select text naturally.
219
+ if (inlineEdit.enabled && target instanceof HTMLElement && target.contentEditable === "true") {
398
220
  return;
399
221
  }
400
- // If currently editing, clicking outside should exit editing mode
401
- if (currentEditingElement) {
222
+ // Clicking outside the editable element exits inline editing mode.
223
+ if (inlineEdit.isEditing()) {
402
224
  e.preventDefault();
403
225
  e.stopPropagation();
404
226
  e.stopImmediatePropagation();
405
- handleClearInlineEditingMode();
227
+ inlineEdit.stopEditing();
406
228
  return;
407
229
  }
408
230
  // Close dropdowns when clicking anywhere in iframe if a dropdown is open
@@ -428,35 +250,21 @@ export function setupVisualEditAgent() {
428
250
  }
429
251
  const htmlElement = element;
430
252
  const visualSelectorId = getElementSelectorId(element);
431
- // Check if this element is already selected (second click scenario)
432
253
  const isAlreadySelected = selectedElementId === visualSelectorId &&
433
254
  htmlElement.dataset.selected === "true";
434
- if (isAlreadySelected) {
435
- if (isInlineEditExperimentEnabled && shouldEnterInlineEditingMode(htmlElement)) {
436
- handleEnterInlineEditingMode(htmlElement);
437
- return;
438
- }
439
- }
440
- // Select the element, mark for inline editing, and attach layer dropdown
441
- if (currentEditingElement) {
442
- handleClearInlineEditingMode();
255
+ if (isAlreadySelected && inlineEdit.enabled && inlineEdit.canEdit(htmlElement)) {
256
+ inlineEdit.startEditing(htmlElement);
257
+ return;
443
258
  }
444
- if (isInlineEditExperimentEnabled) {
445
- const elements = findElementsById(visualSelectorId);
446
- elements.forEach((el) => {
447
- if (el instanceof HTMLElement) {
448
- el.dataset.selected = "true";
449
- }
450
- });
259
+ inlineEdit.stopEditing();
260
+ if (inlineEdit.enabled) {
261
+ inlineEdit.markElementsSelected(findElementsById(visualSelectorId));
451
262
  }
452
263
  const selectedOverlay = selectElement(element);
453
264
  layerController.attachToOverlay(selectedOverlay, element);
454
265
  };
455
- // Unselect the current element
456
266
  const unselectElement = () => {
457
- if (currentEditingElement) {
458
- handleClearInlineEditingMode();
459
- }
267
+ inlineEdit.stopEditing();
460
268
  clearSelection();
461
269
  };
462
270
  const updateElementClassesAndReposition = (visualSelectorId, classes) => {
@@ -541,13 +349,10 @@ export function setupVisualEditAgent() {
541
349
  const toggleVisualEditMode = (isEnabled) => {
542
350
  isVisualEditMode = isEnabled;
543
351
  if (!isEnabled) {
544
- if (currentEditingElement) {
545
- handleClearInlineEditingMode();
546
- }
352
+ inlineEdit.stopEditing();
547
353
  clearSelection();
548
354
  layerController.cleanup();
549
355
  clearHoverOverlays();
550
- clearSelectedOverlays();
551
356
  currentHighlightedElements = [];
552
357
  document.body.style.cursor = "default";
553
358
  document.removeEventListener("mouseover", handleMouseOver);
@@ -600,7 +405,7 @@ export function setupVisualEditAgent() {
600
405
  case "toggle-visual-edit-mode":
601
406
  toggleVisualEditMode(message.data.enabled);
602
407
  if (message.data.specs?.newInlineEditEnabled !== undefined) {
603
- isInlineEditExperimentEnabled = message.data.specs.newInlineEditEnabled;
408
+ inlineEdit.enabled = message.data.specs.newInlineEditEnabled;
604
409
  }
605
410
  break;
606
411
  case "update-classes":
@@ -684,44 +489,8 @@ export function setupVisualEditAgent() {
684
489
  }
685
490
  break;
686
491
  case "toggle-inline-edit-mode":
687
- if (!isInlineEditExperimentEnabled)
688
- break;
689
- if (!message.data || !message.data.dataSourceLocation)
690
- break;
691
- {
692
- const elements = findElementsById(message.data.dataSourceLocation);
693
- if (elements.length === 0 || !(elements[0] instanceof HTMLElement))
694
- break;
695
- const element = elements[0];
696
- if (message.data.inlineEditingMode) {
697
- if (shouldEnterInlineEditingMode(element)) {
698
- // Select the element first if not already selected
699
- if (selectedElementId !== message.data.dataSourceLocation) {
700
- if (currentEditingElement) {
701
- handleClearInlineEditingMode();
702
- }
703
- clearSelection();
704
- elements.forEach((el) => {
705
- if (el instanceof HTMLElement) {
706
- el.dataset.selected = "true";
707
- }
708
- });
709
- elements.forEach((el) => {
710
- const overlay = createOverlay(true);
711
- document.body.appendChild(overlay);
712
- selectedOverlays.push(overlay);
713
- positionOverlay(overlay, el, true);
714
- });
715
- selectedElementId = message.data.dataSourceLocation;
716
- }
717
- handleEnterInlineEditingMode(element);
718
- }
719
- }
720
- else {
721
- if (currentEditingElement === element) {
722
- handleClearInlineEditingMode();
723
- }
724
- }
492
+ if (message.data) {
493
+ inlineEdit.handleToggleMessage(message.data);
725
494
  }
726
495
  break;
727
496
  default:
@@ -1 +1 @@
1
- {"version":3,"file":"visual-edit-agent.js","sourceRoot":"","sources":["../../src/injections/visual-edit-agent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAChK,OAAO,EAAE,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AACvE,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE,MAAM,UAAU,oBAAoB;IAClC,oDAAoD;IACpD,IAAI,gBAAgB,GAAG,KAAK,CAAC;IAC7B,IAAI,iBAAiB,GAAG,KAAK,CAAC;IAC9B,IAAI,cAAc,GAAG,KAAK,CAAC;IAC3B,IAAI,aAAa,GAAqB,EAAE,CAAC;IACzC,IAAI,gBAAgB,GAAqB,EAAE,CAAC;IAC5C,IAAI,0BAA0B,GAAc,EAAE,CAAC;IAC/C,IAAI,iBAAiB,GAAkB,IAAI,CAAC;IAC5C,IAAI,qBAAqB,GAAuB,IAAI,CAAC;IACrD,IAAI,oBAAoB,GAAyC,IAAI,CAAC;IACtE,IAAI,6BAA6B,GAAG,KAAK,CAAC;IAE1C,MAAM,uBAAuB,GAAG,GAAG,CAAC;IACpC,MAAM,mBAAmB,GAAG,EAAE,CAAC;IAE/B,sEAAsE;IACtE,MAAM,wBAAwB,GAAG,IAAI,OAAO,EAAgC,CAAC;IAE7E,yBAAyB;IACzB,MAAM,aAAa,GAAG,CAAC,UAAU,GAAG,KAAK,EAAkB,EAAE;QAC3D,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC9C,OAAO,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACpC,OAAO,CAAC,KAAK,CAAC,aAAa,GAAG,MAAM,CAAC;QACrC,OAAO,CAAC,KAAK,CAAC,UAAU,GAAG,sBAAsB,CAAC;QAClD,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAE9B,IAAI,UAAU,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,mBAAmB,CAAC;YAC3C,OAAO,CAAC,KAAK,CAAC,eAAe,GAAG,0BAA0B,CAAC;QAC7D,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,uCAAuC;IACvC,MAAM,eAAe,GAAG,CACtB,OAAuB,EACvB,OAAgB,EAChB,UAAU,GAAG,KAAK,EAClB,EAAE;QACF,IAAI,CAAC,OAAO,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE1C,MAAM,WAAW,GAAG,OAAsB,CAAC;QAC3C,6BAA6B;QAC7B,KAAK,WAAW,CAAC,WAAW,CAAC;QAE7B,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7C,OAAO,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC;QACrD,OAAO,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,CAAC;QACvD,OAAO,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;QACxC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;QAE1C,2CAA2C;QAC3C,IAAI,KAAK,GAAG,OAAO,CAAC,aAAa,CAAC,KAAK,CAA0B,CAAC;QAElE,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YACtC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YAClD,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;YAClC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,OAAO,CAAC;YAC1B,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,MAAM,CAAC;YAC1B,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,SAAS,CAAC;YAChC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC9B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC;YACpD,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACvD,KAAK,CAAC,KAAK,CAAC,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC;YACjE,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;YACjC,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAC;YAC9B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YACjC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;IACH,CAAC,CAAC;IAEF,mCAAmC;IAEnC,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;QAC1E,IAAI,aAAa;YAAE,OAAO;QAE1B,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAC9C,KAAK,CAAC,EAAE,GAAG,0BAA0B,CAAC;QACtC,KAAK,CAAC,WAAW,GAAG;;;;KAInB,CAAC;QACF,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,0BAA0B,CAAC,CAAC;QAClE,IAAI,KAAK,EAAE,CAAC;YACV,KAAK,CAAC,MAAM,EAAE,CAAC;QACjB,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,OAAoB,EAAE,EAAE;QAC1C,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;QACrC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClC,MAAM,SAAS,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACxC,SAAS,EAAE,eAAe,EAAE,CAAC;QAC7B,SAAS,EAAE,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAW,EAAE;QAC1D,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,EAAE,CAAC;YACtC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG;YAClB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI;YAC9C,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO;SAC3C,CAAC;QACF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YACzD,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QACtD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,aAAa,CAAC,yBAAyB,CAAC,KAAK,IAAI,EAAE,CAAC;YAC9D,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,KAAK,MAAM,EAAE,CAAC;YAC9C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CAAC,OAAgB,EAAW,EAAE;QACjE,IAAI,CAAC,CAAC,OAAO,YAAY,WAAW,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC7E,OAAO,KAAK,CAAC;QACf,CAAC;QACD,OAAO,qBAAqB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG;QACvB,iBAAiB,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,OAAoB,EAAE,EAAE;QACtD,qBAAqB,EAAE,CAAC;QAExB,OAAO,CAAC,OAAO,CAAC,mBAAmB,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAC;QAChE,OAAO,CAAC,OAAO,CAAC,cAAc,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;QAEtD,OAAO,CAAC,eAAe,GAAG,MAAM,CAAC;QAEjC,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;QAC9C,wBAAwB,CAAC,GAAG,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;QACvD,OAAO,CAAC,gBAAgB,CAAC,OAAO,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,eAAe,CAAC,MAAM,EAAE,CAAC,CAAC;QAExF,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QAC9B,UAAU,CAAC,OAAO,CAAC,CAAC;QAEpB,UAAU,CAAC,GAAG,EAAE;YACd,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC,EAAE,CAAC,CAAC,CAAC;IACR,CAAC,CAAC;IAEF,MAAM,sBAAsB,GAAG,CAAC,OAAoB,EAAE,EAAE;QACtD,MAAM,eAAe,GAAG,wBAAwB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC9D,IAAI,eAAe,EAAE,CAAC;YACpB,eAAe,CAAC,KAAK,EAAE,CAAC;YACxB,wBAAwB,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QAC3C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,qBAAqB,EAAE,CAAC;QACxB,OAAO,CAAC,eAAe,GAAG,OAAO,CAAC;QAClC,OAAO,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAE3C,IAAI,OAAO,CAAC,OAAO,CAAC,cAAc,KAAK,SAAS,EAAE,CAAC;YACjD,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;YACtD,OAAO,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC;QACxC,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,0BAA0B,GAAG,GAAG,EAAE;QACtC,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACrD,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC5B,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,CAAC,OAAoB,EAAE,EAAE;QAC5D,qBAAqB,GAAG,OAAO,CAAC;QAEhC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEhC,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;YACE,IAAI,EAAE,yBAAyB;YAC/B,gBAAgB,EAAE,iBAAiB;SACpC,EACD,GAAG,CACJ,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,4BAA4B,GAAG,GAAG,EAAE;QACxC,IAAI,CAAC,qBAAqB;YAAE,OAAO;QAEnC,IAAI,oBAAoB,EAAE,CAAC;YACzB,YAAY,CAAC,oBAAoB,CAAC,CAAC;YACnC,oBAAoB,GAAG,IAAI,CAAC;QAC9B,CAAC;QAED,MAAM,OAAO,GAAG,qBAAqB,CAAC;QACtC,sBAAsB,CAAC,OAAO,CAAC,CAAC;QAEhC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC;QAC7B,CAAC,CAAC,CAAC;QAEH,0BAA0B,EAAE,CAAC;QAE7B,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;YACE,IAAI,EAAE,uBAAuB;YAC7B,gBAAgB,EAAE,iBAAiB;SACpC,EACD,GAAG,CACJ,CAAC;QAEF,qBAAqB,GAAG,IAAI,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,gBAAgB,GAAG,CAAC,OAAoB,EAAE,EAAE;QAChD,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC;QAC5D,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;QAEvC,MAAM,UAAU,GAAG,OAAgC,CAAC;QACpD,MAAM,WAAW,GAAG;YAClB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EACJ,UAAU,CAAC,SAA0C,EAAE,OAAO;gBAC/D,OAAO,CAAC,SAAS;gBACjB,EAAE;YACJ,gBAAgB,EAAE,iBAAiB;YACnC,OAAO,EAAE,UAAU;YACnB,kBAAkB,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc;YAClD,gBAAgB,EAAE,OAAO,CAAC,OAAO,CAAC,cAAc,KAAK,MAAM;YAC3D,UAAU,EAAE,OAAO,CAAC,OAAO,CAAC,UAAU;YACtC,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ;YAClC,QAAQ,EAAE,CAAC,GAAG,EAAE;gBACd,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;gBAC7C,OAAO;oBACL,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;oBACnC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;iBACpC,CAAC;YACJ,CAAC,CAAC,EAAE;SACL,CAAC;QAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;YACE,IAAI,EAAE,aAAa;YACnB,WAAW;YACX,eAAe;YACf,UAAU;SACX,EACD,GAAG,CACJ,CAAC;QAEF,OAAO,CAAC,OAAO,CAAC,mBAAmB,GAAG,UAAU,IAAI,EAAE,CAAC;IACzD,CAAC,CAAC;IAEF,MAAM,8BAA8B,GAAG,CAAC,OAAoB,EAAE,EAAE;QAC9D,IAAI,oBAAoB,EAAE,CAAC;YACzB,YAAY,CAAC,oBAAoB,CAAC,CAAC;QACrC,CAAC;QAED,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YACrC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC,EAAE,uBAAuB,CAAC,CAAC;IAC9B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,CAAC,OAAoB,EAAE,EAAE;QACjD,0BAA0B,EAAE,CAAC;QAC7B,8BAA8B,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACrD,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACtB,IAAI,EAAE,YAAY,WAAW,EAAE,CAAC;oBAC9B,OAAO,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC;gBAC7B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,gBAAgB,GAAG,EAAE,CAAC;QACtB,iBAAiB,GAAG,IAAI,CAAC;IAC3B,CAAC,CAAC;IAEF,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAChC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,aAAa,GAAG,EAAE,CAAC;QACnB,0BAA0B,GAAG,EAAE,CAAC;IAClC,CAAC,CAAC;IAEF,MAAM,qBAAqB,GAAG,GAAG,EAAE;QACjC,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACnC,IAAI,OAAO,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBAClC,OAAO,CAAC,MAAM,EAAE,CAAC;YACnB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,gBAAgB,GAAG,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAElF,MAAM,qBAAqB,GAAG,CAAC,OAAgB,EAAE,EAAE;QACjD,MAAM,WAAW,GAAG,OAAsB,CAAC;QAC3C,MAAM,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAqB,CAAC;QACzC,MAAM,aAAa,GAAG,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC;QACzE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;YACxB,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,OAAO,EACJ,UAAU,CAAC,SAA0C,EAAE,OAAO;gBAC/D,OAAO,CAAC,SAAS;gBACjB,EAAE;YACJ,gBAAgB,EAAE,oBAAoB,CAAC,OAAO,CAAC;YAC/C,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YAC1D,kBAAkB,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc;YACtD,gBAAgB,EAAE,WAAW,CAAC,OAAO,CAAC,cAAc,KAAK,MAAM;YAC/D,UAAU,EAAE,WAAW,CAAC,OAAO,CAAC,UAAU;YAC1C,QAAQ,EAAE,WAAW,CAAC,OAAO,CAAC,QAAQ;YACtC,QAAQ,EAAE;gBACR,GAAG,EAAE,IAAI,CAAC,GAAG;gBACb,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;gBACnB,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;gBACnC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;aACpC;YACD,UAAU,EAAE,wBAAwB,CAAC,OAAO,EAAE,kBAAkB,CAAC;YACjE,aAAa;SACd,EAAE,GAAG,CAAC,CAAC;IACV,CAAC,CAAC;IAEF,kEAAkE;IAClE,MAAM,aAAa,GAAG,CAAC,OAAgB,EAA8B,EAAE;QACrE,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEvD,qBAAqB,EAAE,CAAC;QAExB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,IAAI,IAAI,CAAC,CAAC;QAC5D,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACtB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;YACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC/B,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;QAEH,iBAAiB,GAAG,gBAAgB,IAAI,IAAI,CAAC;QAC7C,kBAAkB,EAAE,CAAC;QACrB,qBAAqB,CAAC,OAAO,CAAC,CAAC;QAE/B,OAAO,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAC7B,CAAC,CAAC;IAEF,MAAM,iBAAiB,GAAG,GAAS,EAAE;QACnC,iBAAiB,GAAG,IAAI,CAAC;QACzB,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,EAAE,GAAG,CAAC,CAAC;IAC/D,CAAC,CAAC;IAEF,0BAA0B;IAC1B,MAAM,eAAe,GAAG,CAAC,CAAa,EAAE,EAAE;QACxC,IAAI,CAAC,gBAAgB,IAAI,iBAAiB;YAAE,OAAO;QAEnD,yCAAyC;QACzC,IAAI,qBAAqB;YAAE,OAAO;QAElC,MAAM,MAAM,GAAG,CAAC,CAAC,MAAiB,CAAC;QAEnC,gDAAgD;QAChD,IAAI,cAAc,EAAE,CAAC;YACnB,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,6CAA6C;QAC7C,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YAC5C,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAC5B,mDAAmD,CACpD,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,mEAAmE;QACnE,MAAM,WAAW,GAAG,OAAsB,CAAC;QAC3C,MAAM,UAAU,GACd,WAAW,CAAC,OAAO,CAAC,cAAc;YAClC,WAAW,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAEvC,2CAA2C;QAC3C,IAAI,iBAAiB,KAAK,UAAU,EAAE,CAAC;YACrC,kBAAkB,EAAE,CAAC;YACrB,OAAO;QACT,CAAC;QAED,qCAAqC;QACrC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,UAAU,IAAI,IAAI,CAAC,CAAC;QAEtD,gCAAgC;QAChC,kBAAkB,EAAE,CAAC;QAErB,4CAA4C;QAC5C,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;YACtB,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC5B,eAAe,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;QAC/B,CAAC,CAAC,CAAC;QAEH,0BAA0B,GAAG,QAAQ,CAAC;IACxC,CAAC,CAAC;IAEF,yBAAyB;IACzB,MAAM,cAAc,GAAG,GAAG,EAAE;QAC1B,IAAI,iBAAiB;YAAE,OAAO;QAC9B,kBAAkB,EAAE,CAAC;IACvB,CAAC,CAAC;IAEF,uBAAuB;IACvB,MAAM,kBAAkB,GAAG,CAAC,CAAa,EAAE,EAAE;QAC3C,IAAI,CAAC,gBAAgB;YAAE,OAAO;QAE9B,MAAM,MAAM,GAAG,CAAC,CAAC,MAAiB,CAAC;QAEnC,8DAA8D;QAC9D,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,mBAAmB,GAAG,CAAC;YAAE,OAAO;QAEvD,sEAAsE;QACtE,IAAI,6BAA6B,IAAI,MAAM,YAAY,WAAW,IAAI,MAAM,CAAC,eAAe,KAAK,MAAM,EAAE,CAAC;YACxG,OAAO;QACT,CAAC;QAED,kEAAkE;QAClE,IAAI,qBAAqB,EAAE,CAAC;YAC1B,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAC7B,4BAA4B,EAAE,CAAC;YAC/B,OAAO;QACT,CAAC;QAED,yEAAyE;QACzE,IAAI,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,CAAC,CAAC,wBAAwB,EAAE,CAAC;YAE7B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,GAAG,CAAC,CAAC;YAC5D,OAAO;QACT,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,CAAC,CAAC,wBAAwB,EAAE,CAAC;QAE7B,gEAAgE;QAChE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAC5B,mDAAmD,CACpD,CAAC;QACF,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED,MAAM,WAAW,GAAG,OAAsB,CAAC;QAC3C,MAAM,gBAAgB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;QAEvD,oEAAoE;QACpE,MAAM,iBAAiB,GACrB,iBAAiB,KAAK,gBAAgB;YACtC,WAAW,CAAC,OAAO,CAAC,QAAQ,KAAK,MAAM,CAAC;QAE1C,IAAI,iBAAiB,EAAE,CAAC;YACtB,IAAI,6BAA6B,IAAI,4BAA4B,CAAC,WAAW,CAAC,EAAE,CAAC;gBAC/E,4BAA4B,CAAC,WAAW,CAAC,CAAC;gBAC1C,OAAO;YACT,CAAC;QACH,CAAC;QAED,yEAAyE;QACzE,IAAI,qBAAqB,EAAE,CAAC;YAC1B,4BAA4B,EAAE,CAAC;QACjC,CAAC;QAED,IAAI,6BAA6B,EAAE,CAAC;YAClC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;YACpD,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBACtB,IAAI,EAAE,YAAY,WAAW,EAAE,CAAC;oBAC9B,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;gBAC/B,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,MAAM,eAAe,GAAG,aAAa,CAAC,OAAO,CAAC,CAAC;QAC/C,eAAe,CAAC,eAAe,CAAC,eAAe,EAAE,OAAO,CAAC,CAAC;IAC5D,CAAC,CAAC;IAEF,+BAA+B;IAC/B,MAAM,eAAe,GAAG,GAAG,EAAE;QAC3B,IAAI,qBAAqB,EAAE,CAAC;YAC1B,4BAA4B,EAAE,CAAC;QACjC,CAAC;QACD,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC;IAEF,MAAM,iCAAiC,GAAG,CAAC,gBAAwB,EAAE,OAAe,EAAE,EAAE;QACtF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,oBAAoB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAExC,oFAAoF;QACpF,UAAU,CAAC,GAAG,EAAE;YACd,+BAA+B;YAC/B,IAAI,iBAAiB,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC5B,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;YAED,sCAAsC;YACtC,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC1C,MAAM,cAAc,GAAG,0BAA0B,CAAC,CAAC,CAAgB,CAAC;gBACpE,MAAM,SAAS,GAAG,cAAc,EAAE,OAAO,EAAE,gBAAgB,CAAC;gBAC5D,IAAI,SAAS,KAAK,gBAAgB,EAAE,CAAC;oBACnC,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;wBACvC,IAAI,KAAK,GAAG,0BAA0B,CAAC,MAAM,EAAE,CAAC;4BAC9C,eAAe,CAAC,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAE,CAAC,CAAC;wBAC/D,CAAC;oBACH,CAAC,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,iDAAiD;IACjD,MAAM,mCAAmC,GAAG,CAC1C,gBAAwB,EACxB,SAAiB,EACjB,KAAa,EACb,EAAE;QACF,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO;QAElC,sBAAsB,CAAC,QAAQ,EAAE,SAAS,EAAE,KAAK,CAAC,CAAC;QAEnD,qFAAqF;QACrF,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,iBAAiB,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC5B,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,+CAA+C;IAC/C,MAAM,oBAAoB,GAAG,CAAC,gBAAwB,EAAE,OAAe,EAAE,EAAE;QACzE,MAAM,QAAQ,GAAG,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;QAEpD,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QAED,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC1B,OAAuB,CAAC,SAAS,GAAG,OAAO,CAAC;QAC/C,CAAC,CAAC,CAAC;QAEH,UAAU,CAAC,GAAG,EAAE;YACd,IAAI,iBAAiB,KAAK,gBAAgB,EAAE,CAAC;gBAC3C,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;oBAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;wBAC5B,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;oBAC7C,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,EAAE,mBAAmB,CAAC,CAAC;IAC1B,CAAC,CAAC;IAEF,oCAAoC;IACpC,MAAM,eAAe,GAAG,qBAAqB,CAAC;QAC5C,oBAAoB,EAAE,CAAC,OAAgB,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;YACrC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;YAC9B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACnC,eAAe,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YAClC,OAAO,OAAO,CAAC;QACjB,CAAC;QACD,oBAAoB,EAAE,GAAG,EAAE,CAAC,iBAAiB;QAC7C,aAAa;QACb,UAAU,EAAE,iBAAiB;KAC9B,CAAC,CAAC;IAEH,0BAA0B;IAC1B,MAAM,oBAAoB,GAAG,CAAC,SAAkB,EAAE,EAAE;QAClD,gBAAgB,GAAG,SAAS,CAAC;QAE7B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,IAAI,qBAAqB,EAAE,CAAC;gBAC1B,4BAA4B,EAAE,CAAC;YACjC,CAAC;YACD,cAAc,EAAE,CAAC;YACjB,eAAe,CAAC,OAAO,EAAE,CAAC;YAC1B,kBAAkB,EAAE,CAAC;YACrB,qBAAqB,EAAE,CAAC;YAExB,0BAA0B,GAAG,EAAE,CAAC;YAChC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,CAAC;YAEvC,QAAQ,CAAC,mBAAmB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YAC3D,QAAQ,CAAC,mBAAmB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACzD,QAAQ,CAAC,mBAAmB,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAClE,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;YACzC,QAAQ,CAAC,gBAAgB,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;YACxD,QAAQ,CAAC,gBAAgB,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;YACtD,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC/D,CAAC;IACH,CAAC,CAAC;IAEF,kDAAkD;IAClD,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACrD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAC5B,MAAM,IAAI,GAAG,OAAQ,CAAC,qBAAqB,EAAE,CAAC;gBAE9C,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;gBAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;gBACxC,MAAM,YAAY,GAChB,IAAI,CAAC,GAAG,GAAG,cAAc;oBACzB,IAAI,CAAC,MAAM,GAAG,CAAC;oBACf,IAAI,CAAC,IAAI,GAAG,aAAa;oBACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;gBAEjB,MAAM,eAAe,GAAG;oBACtB,GAAG,EAAE,IAAI,CAAC,GAAG;oBACb,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,KAAK,EAAE,IAAI,CAAC,KAAK;oBACjB,MAAM,EAAE,IAAI,CAAC,MAAM;oBACnB,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;oBACnC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;iBACpC,CAAC;gBAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;oBACE,IAAI,EAAE,yBAAyB;oBAC/B,QAAQ,EAAE,eAAe;oBACzB,YAAY,EAAE,YAAY;oBAC1B,gBAAgB,EAAE,iBAAiB;iBACpC,EACD,GAAG,CACJ,CAAC;YACJ,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,qCAAqC;IACrC,MAAM,aAAa,GAAG,CAAC,KAAmB,EAAE,EAAE;QAC5C,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QAE3B,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,yBAAyB;gBAC5B,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC3C,IAAI,OAAO,CAAC,IAAI,CAAC,KAAK,EAAE,oBAAoB,KAAK,SAAS,EAAE,CAAC;oBAC3D,6BAA6B,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC;gBAC1E,CAAC;gBACD,MAAM;YAER,KAAK,gBAAgB;gBACnB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACvD,iCAAiC,CAC/B,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,CACrB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,mDAAmD,EACnD,OAAO,CACR,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,kBAAkB;gBACrB,IACE,OAAO,CAAC,IAAI;oBACZ,OAAO,CAAC,IAAI,CAAC,gBAAgB;oBAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,KAAK,SAAS;oBACpC,OAAO,CAAC,IAAI,CAAC,KAAK,KAAK,SAAS,EAChC,CAAC;oBACD,mCAAmC,CACjC,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAC7B,OAAO,CAAC,IAAI,CAAC,SAAS,EACtB,OAAO,CAAC,IAAI,CAAC,KAAK,CACnB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,qDAAqD,EACrD,OAAO,CACR,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,kBAAkB;gBACrB,eAAe,EAAE,CAAC;gBAClB,MAAM;YAER,KAAK,cAAc;gBACjB,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBACzB,MAAM;YAER,KAAK,gBAAgB;gBACnB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;oBACvD,oBAAoB,CAClB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAC7B,OAAO,CAAC,IAAI,CAAC,OAAO,CACrB,CAAC;gBACJ,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,IAAI,CACV,mDAAmD,EACnD,OAAO,CACR,CAAC;gBACJ,CAAC;gBACD,MAAM;YAER,KAAK,0BAA0B;gBAC7B,IAAI,iBAAiB,EAAE,CAAC;oBACtB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;oBACrD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxB,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;wBAC5B,MAAM,IAAI,GAAG,OAAQ,CAAC,qBAAqB,EAAE,CAAC;wBAE9C,MAAM,cAAc,GAAG,MAAM,CAAC,WAAW,CAAC;wBAC1C,MAAM,aAAa,GAAG,MAAM,CAAC,UAAU,CAAC;wBACxC,MAAM,YAAY,GAChB,IAAI,CAAC,GAAG,GAAG,cAAc;4BACzB,IAAI,CAAC,MAAM,GAAG,CAAC;4BACf,IAAI,CAAC,IAAI,GAAG,aAAa;4BACzB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC;wBAEjB,MAAM,eAAe,GAAG;4BACtB,GAAG,EAAE,IAAI,CAAC,GAAG;4BACb,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,KAAK,EAAE,IAAI,CAAC,KAAK;4BACjB,MAAM,EAAE,IAAI,CAAC,MAAM;4BACnB,OAAO,EAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC;4BACnC,OAAO,EAAE,IAAI,CAAC,GAAG,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC;yBACpC,CAAC;wBAEF,MAAM,CAAC,MAAM,CAAC,WAAW,CACvB;4BACE,IAAI,EAAE,yBAAyB;4BAC/B,QAAQ,EAAE,eAAe;4BACzB,YAAY,EAAE,YAAY;4BAC1B,gBAAgB,EAAE,iBAAiB;yBACpC,EACD,GAAG,CACJ,CAAC;oBACJ,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,oBAAoB;gBACvB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;oBAC1D,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC;oBAC5C,IAAI,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;wBAC5B,kBAAkB,EAAE,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,gBAAgB;gBACnB,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;oBACtD,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;oBACrC,IAAI,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;wBACxB,kBAAkB,EAAE,CAAC;oBACvB,CAAC;gBACH,CAAC;gBACD,MAAM;YAER,KAAK,yBAAyB;gBAC5B,IAAI,CAAC,6BAA6B;oBAAE,MAAM;gBAC1C,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB;oBAAE,MAAM;gBAE7D,CAAC;oBACC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC;oBACnE,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,YAAY,WAAW,CAAC;wBAAE,MAAM;oBAE1E,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;oBAE5B,IAAI,OAAO,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;wBACnC,IAAI,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;4BAC1C,mDAAmD;4BACnD,IAAI,iBAAiB,KAAK,OAAO,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;gCAC1D,IAAI,qBAAqB,EAAE,CAAC;oCAC1B,4BAA4B,EAAE,CAAC;gCACjC,CAAC;gCACD,cAAc,EAAE,CAAC;gCAEjB,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;oCACtB,IAAI,EAAE,YAAY,WAAW,EAAE,CAAC;wCAC9B,EAAE,CAAC,OAAO,CAAC,QAAQ,GAAG,MAAM,CAAC;oCAC/B,CAAC;gCACH,CAAC,CAAC,CAAC;gCAEH,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;oCACtB,MAAM,OAAO,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;oCACpC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;oCACnC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oCAC/B,eAAe,CAAC,OAAO,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;gCACrC,CAAC,CAAC,CAAC;gCAEH,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC;4BACtD,CAAC;4BACD,4BAA4B,CAAC,OAAO,CAAC,CAAC;wBACxC,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,IAAI,qBAAqB,KAAK,OAAO,EAAE,CAAC;4BACtC,4BAA4B,EAAE,CAAC;wBACjC,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,MAAM;YAER;gBACE,MAAM;QACV,CAAC;IACH,CAAC,CAAC;IAEF,8CAA8C;IAC9C,MAAM,YAAY,GAAG,GAAG,EAAE;QACxB,IAAI,iBAAiB,EAAE,CAAC;YACtB,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,CAAC;YACrD,gBAAgB,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBAC1C,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC;oBAC5B,eAAe,CAAC,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAE,CAAC,CAAC;gBAC7C,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;QAED,IAAI,0BAA0B,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,aAAa,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACvC,IAAI,KAAK,GAAG,0BAA0B,CAAC,MAAM,EAAE,CAAC;oBAC9C,eAAe,CAAC,OAAO,EAAE,0BAA0B,CAAC,KAAK,CAAE,CAAC,CAAC;gBAC/D,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;IAEF,4EAA4E;IAC5E,MAAM,sBAAsB,GAAG,QAAQ,CAAC,gBAAgB,CACtD,kDAAkD,CACnD,CAAC;IACF,sBAAsB,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,MAAM,GAAG,EAAiB,CAAC;QACjC,MAAM,EAAE,GAAG,aAAa,MAAM,CAAC,OAAO,CAAC,QAAQ,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,IAAI,KAAK,EAAE,CAAC;QACxF,MAAM,CAAC,OAAO,CAAC,gBAAgB,GAAG,EAAE,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,oDAAoD;IACpD,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC,CAAC,SAAS,EAAE,EAAE;QAC1D,MAAM,WAAW,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE;YAC9C,MAAM,WAAW,GAAG,CAAC,IAAU,EAAW,EAAE;gBAC1C,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;oBACxC,MAAM,EAAE,GAAG,IAAmB,CAAC;oBAC/B,IAAI,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;wBAC9C,OAAO,IAAI,CAAC;oBACd,CAAC;oBACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;wBAC5C,IAAI,WAAW,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAE,CAAC,EAAE,CAAC;4BACjC,OAAO,IAAI,CAAC;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CAAC;YAEF,MAAM,cAAc,GAClB,QAAQ,CAAC,IAAI,KAAK,YAAY;gBAC9B,CAAC,QAAQ,CAAC,aAAa,KAAK,OAAO;oBACjC,QAAQ,CAAC,aAAa,KAAK,OAAO;oBAClC,QAAQ,CAAC,aAAa,KAAK,OAAO;oBAClC,QAAQ,CAAC,aAAa,KAAK,QAAQ,CAAC,CAAC;YAEzC,OAAO,cAAc,IAAI,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QACxD,CAAC,CAAC,CAAC;QAEH,IAAI,WAAW,EAAE,CAAC;YAChB,UAAU,CAAC,YAAY,EAAE,mBAAmB,CAAC,CAAC;QAChD,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,yBAAyB;IACzB,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACtD,QAAQ,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC;IACxD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAChD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAEhD,gCAAgC;IAChC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;QACtC,UAAU,EAAE,IAAI;QAChB,SAAS,EAAE,IAAI;QACf,OAAO,EAAE,IAAI;QACb,eAAe,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC;KACvD,CAAC,CAAC;IAEH,+BAA+B;IAC/B,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,GAAG,CAAC,CAAC;AACtE,CAAC"}
1
+ {"version":3,"file":"visual-edit-agent.js","sourceRoot":"","sources":["../../src/injections/visual-edit-agent.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- function Y(o){let r=o;return!!(r.dataset?.sourceLocation||r.dataset?.visualSelectorId)}function I(o){let r=o;return r.dataset?.sourceLocation||r.dataset?.visualSelectorId||null}var $=["src"];function L(o){if(!o)return[];let r=Array.from(document.querySelectorAll(`[data-source-location="${o}"]`));return r.length>0?r:Array.from(document.querySelectorAll(`[data-visual-selector-id="${o}"]`))}function oe(o,r){o.forEach(s=>{s.setAttribute("class",r)})}function re(o,r,s){$.includes(r)&&o.forEach(i=>{i.setAttribute(r,s)})}function se(o,r){let s={};for(let i of r){let a=o.getAttribute(i);a!==null&&(s[i]=a)}return s}var ie={position:"absolute",backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"6px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",fontSize:"12px",minWidth:"120px",maxHeight:"200px",overflowY:"auto",zIndex:"10001",padding:"4px 0",pointerEvents:"auto"},ae={padding:"4px 12px",cursor:"pointer",color:"#334155",backgroundColor:"transparent",whiteSpace:"nowrap",lineHeight:"1.5",fontWeight:"400"},W="#526cff",le="#DBEAFE",de="600",G="#f1f5f9",ce=10,x=" \u25BE",N=" \u25B4",ue=12,A="data-layer-dropdown",fe=2,pe=2;function F(o,r){for(let s of Object.keys(r))o.style.setProperty(s.replace(/[A-Z]/g,i=>`-${i.toLowerCase()}`),r[s])}function me(o){return o.tagName}function q(o,r){let s={element:o,tagName:o.tagName.toLowerCase(),selectorId:I(o)};return r!==void 0&&(s.depth=r),s}function Ee(o,r,s){let i=[];function a(f,d){if(!(d>r))for(let u=0;u<f.children.length;u++){let E=f.children[u];if(Y(E)){let m={element:E,tagName:E.tagName.toLowerCase(),selectorId:I(E)};s!==void 0&&(m.depth=s+d-1),i.push(m),a(E,d+1)}else a(E,d)}}return a(o,1),i}function Be(o){let r=[],s=o.parentElement;for(;s&&s!==document.documentElement&&s!==document.body&&r.length<fe;)Y(s)&&r.push(q(s)),s=s.parentElement;return r.reverse(),r}function Xe(o,r){return r.forEach((s,i)=>{o.push({...s,depth:i})}),r.length}function ge(o,r,s){o.push(q(r,s));let i=Ee(r,pe,s+1);o.push(...i)}function Ye(o){return o.at(-1)?.element??null}function $e(o,r){let s=Ee(o,1);return s.some(i=>i.element===r)||s.push(q(r)),s}function Ge(o,r,s,i){let a=I(s),f=new Set;for(let d of r)if(d.element===s)ge(o,s,i),a&&f.add(a);else{let u=d.selectorId;if(u!=null){if(u===a||f.has(u))continue;f.add(u)}o.push({...d,depth:i})}}function he(o){let r=Be(o),s=[],i=Xe(s,r),a=Ye(r);if(a){let f=$e(a,o);Ge(s,f,o,i)}else ge(s,o,i);return s}var O=null,_=null,P=null,V=null,R=null;function Fe(o,r,{onSelect:s,onHover:i,onHoverEnd:a}){let f=document.createElement("div");f.textContent=me(o),F(f,ae);let d=o.depth??0;return d>0&&(f.style.paddingLeft=`${ue+d*ce}px`),r&&(f.style.color=W,f.style.backgroundColor=le,f.style.fontWeight=de),f.addEventListener("mouseenter",()=>{r||(f.style.backgroundColor=G),i&&i(o)}),f.addEventListener("mouseleave",()=>{r||(f.style.backgroundColor="transparent"),a&&a()}),f.addEventListener("click",u=>{u.stopPropagation(),u.preventDefault(),s(o)}),f}function qe(o,r,s){let i=document.createElement("div");return i.setAttribute(A,"true"),F(i,ie),o.forEach(a=>{let f=a.element===r;i.appendChild(Fe(a,f,s))}),i}function ve(o){let r=o.textContent??"";r.endsWith(x)||r.endsWith(N)||(o.textContent=r+x,o.style.cursor="pointer",o.style.userSelect="none",o.style.whiteSpace="nowrap",o.style.pointerEvents="auto",o.setAttribute(A,"true"))}function ze(o,r,s,{onSelect:i,onHover:a,onHoverEnd:f}){let d=Array.from(o.children),u=r.findIndex(m=>m.element===s),E=m=>{if(u>=0&&u<d.length){let C=d[u];C.style.color!==W&&(C.style.backgroundColor="transparent")}if(u=m,u>=0&&u<d.length){let C=d[u];C.style.color!==W&&(C.style.backgroundColor=G),C.scrollIntoView({block:"nearest"}),a&&u>=0&&u<r.length&&a(r[u])}};R=m=>{m.key==="ArrowDown"?(m.preventDefault(),m.stopPropagation(),E(u<d.length-1?u+1:0)):m.key==="ArrowUp"?(m.preventDefault(),m.stopPropagation(),E(u>0?u-1:d.length-1)):m.key==="Enter"&&u>=0&&u<r.length&&(m.preventDefault(),m.stopPropagation(),f&&f(),i(r[u]),D())},document.addEventListener("keydown",R,!0)}function Ke(o,r){let s=!0;P=i=>{if(s){s=!1;return}let a=i.target;!o.contains(a)&&a!==r&&D()},document.addEventListener("mousedown",P,!0)}function ye(o,r,s,i){D();let a=qe(r,s,{...i,onSelect:d=>{i.onHoverEnd&&i.onHoverEnd(),i.onSelect(d),D()}}),f=o.parentElement;f&&(a.style.top=`${o.offsetTop+o.offsetHeight+2}px`,a.style.left=`${o.offsetLeft}px`,f.appendChild(a),O=a,_=o,o.textContent?.endsWith(x.trim())&&(o.textContent=o.textContent.slice(0,-x.length)+N),V=i.onHoverEnd??null,ze(a,r,s,i),Ke(a,o))}function D(){_?.textContent?.includes(N)&&(_.textContent=_.textContent.replace(N,x)),_=null,V&&(V(),V=null),O&&O.parentNode&&O.remove(),O=null,P&&(document.removeEventListener("mousedown",P,!0),P=null),R&&(document.removeEventListener("keydown",R,!0),R=null)}function Le(){return O!==null}function we(o){let r=null,s=null,i=null,a=()=>{r&&r.parentNode&&r.remove(),r=null},f=g=>{a(),I(g.element)!==o.getSelectedElementId()&&(r=o.createPreviewOverlay(g.element))},d=g=>{a(),D(),s&&(document.removeEventListener("keydown",s,!0),s=null),i=null;let w=o.selectElement(g.element);m(w,g.element)},u=()=>{s&&(document.removeEventListener("keydown",s,!0),s=null),i&&(d(i),i=null)},E=(g,w,y,h,H)=>{g.stopPropagation(),g.preventDefault(),Le()?(D(),u()):(i={element:y,tagName:y.tagName.toLowerCase(),selectorId:H},o.onDeselect(),s=M=>{M.key==="Escape"&&(M.stopPropagation(),D(),u())},document.addEventListener("keydown",s,!0),ye(w,h,y,{onSelect:d,onHover:f,onHoverEnd:a}))},m=(g,w)=>{if(!g)return;let y=g.querySelector("div");if(!y)return;let h=he(w);if(h.length<=1)return;let H=I(w);ve(y),y.addEventListener("click",M=>{E(M,y,w,h,H)})};return{attachToOverlay:m,cleanup:()=>{a(),D()}}}function Ue(){let o=!1,r=!1,s=!1,i=[],a=[],f=[],d=null,u=null,E=null,m=!1,C=500,g=50,w=new WeakMap,y=(e=!1)=>{let t=document.createElement("div");return t.style.position="absolute",t.style.pointerEvents="none",t.style.transition="all 0.1s ease-in-out",t.style.zIndex="9999",e?t.style.border="2px solid #2563EB":(t.style.border="2px solid #95a5fc",t.style.backgroundColor="rgba(99, 102, 241, 0.05)"),t},h=(e,t,n=!1)=>{if(!t||!o)return;t.offsetWidth;let l=t.getBoundingClientRect();e.style.top=`${l.top+window.scrollY}px`,e.style.left=`${l.left+window.scrollX}px`,e.style.width=`${l.width}px`,e.style.height=`${l.height}px`;let c=e.querySelector("div");c||(c=document.createElement("div"),c.textContent=t.tagName.toLowerCase(),c.style.position="absolute",c.style.top="-27px",c.style.left="-2px",c.style.padding="2px 8px",c.style.fontSize="11px",c.style.fontWeight=n?"500":"400",c.style.color=n?"#ffffff":"#526cff",c.style.backgroundColor=n?"#526cff":"#DBEAFE",c.style.borderRadius="3px",c.style.minWidth="24px",c.style.textAlign="center",e.appendChild(c))},H=()=>{if(document.getElementById("visual-edit-focus-styles"))return;let t=document.createElement("style");t.id="visual-edit-focus-styles",t.textContent=`
2
- [data-selected="true"][contenteditable="true"]:focus {
3
- outline: none !important;
4
- }
5
- `,document.head.appendChild(t)},M=()=>{let e=document.getElementById("visual-edit-focus-styles");e&&e.remove()},Ie=e=>{let t=document.createRange();t.selectNodeContents(e);let n=window.getSelection();n?.removeAllRanges(),n?.addRange(t)},Te=e=>!(!(e instanceof HTMLElement)||!["div","p","h1","h2","h3","h4","h5","h6","span","li","td","a","button","label"].includes(e.tagName.toLowerCase())||(e.textContent?.trim()||"").length===0||e.querySelector("img, video, canvas, svg")!==null||e.children.length>0||e.dataset.dynamicContent==="true"),z=e=>!(e instanceof HTMLElement)||e.dataset.selected!=="true"?!1:Te(e),be=function(){xe(this)},Ce=e=>{H(),e.dataset.originalTextContent=e.textContent||"",e.dataset.originalCursor=e.style.cursor,e.contentEditable="true";let t=new AbortController;w.set(e,t),e.addEventListener("input",be,{signal:t.signal}),e.style.cursor="text",Ie(e),setTimeout(()=>{e.focus()},0)},De=e=>{let t=w.get(e);t&&(t.abort(),w.delete(e)),e.isConnected&&(M(),e.contentEditable="false",delete e.dataset.originalTextContent,e.dataset.originalCursor!==void 0&&(e.style.cursor=e.dataset.originalCursor,delete e.dataset.originalCursor))},K=()=>{if(d){let e=L(d);a.forEach((t,n)=>{n<e.length&&h(t,e[n])})}},U=e=>{u=e,a.forEach(t=>{t.style.display="none"}),Ce(e),window.parent.postMessage({type:"content-editing-started",visualSelectorId:d},"*")},S=()=>{if(!u)return;E&&(clearTimeout(E),E=null),De(u),a.forEach(t=>{t.style.display=""}),K(),window.parent.postMessage({type:"content-editing-ended",visualSelectorId:d},"*"),u=null},Me=e=>{let t=e.dataset.originalTextContent,n=e.textContent,p=e,l={tagName:e.tagName,classes:p.className?.baseVal||e.className||"",visualSelectorId:d,content:n,dataSourceLocation:e.dataset.sourceLocation,isDynamicContent:e.dataset.dynamicContent==="true",linenumber:e.dataset.linenumber,filename:e.dataset.filename,position:(()=>{let c=e.getBoundingClientRect();return{top:c.top,left:c.left,right:c.right,bottom:c.bottom,width:c.width,height:c.height,centerX:c.left+c.width/2,centerY:c.top+c.height/2}})()};window.parent.postMessage({type:"inline-edit",elementInfo:l,originalContent:t,newContent:n},"*"),e.dataset.originalTextContent=n||""},Se=e=>{E&&clearTimeout(E),E=setTimeout(()=>{Me(e)},C)},xe=e=>{K(),Se(e)},B=()=>{d&&L(d).forEach(t=>{t instanceof HTMLElement&&delete t.dataset.selected}),a.forEach(e=>{e&&e.parentNode&&e.remove()}),a=[],d=null},T=()=>{i.forEach(e=>{e&&e.parentNode&&e.remove()}),i=[],f=[]},j=()=>{a.forEach(e=>{e&&e.parentNode&&e.remove()}),a=[]},Oe=["p","h1","h2","h3","h4","h5","h6","span","a","label"],He=e=>{let t=e,n=e.getBoundingClientRect(),p=e,l=Oe.includes(e.tagName?.toLowerCase());window.parent.postMessage({type:"element-selected",tagName:e.tagName,classes:p.className?.baseVal||e.className||"",visualSelectorId:I(e),content:l?t.innerText:void 0,dataSourceLocation:t.dataset.sourceLocation,isDynamicContent:t.dataset.dynamicContent==="true",linenumber:t.dataset.linenumber,filename:t.dataset.filename,position:{top:n.top,left:n.left,right:n.right,bottom:n.bottom,width:n.width,height:n.height,centerX:n.left+n.width/2,centerY:n.top+n.height/2},attributes:se(e,$),isTextElement:l},"*")},Z=e=>{let t=I(e);return j(),L(t||null).forEach(p=>{let l=y(!0);document.body.appendChild(l),a.push(l),h(l,p,!0)}),d=t||null,T(),He(e),a[0]},Ne=()=>{d=null,window.parent.postMessage({type:"unselect-element"},"*")},J=e=>{if(!o||r||u)return;let t=e.target;if(s){T();return}if(t.tagName.toLowerCase()==="path"){T();return}let n=t.closest("[data-source-location], [data-visual-selector-id]");if(!n){T();return}let p=n,l=p.dataset.sourceLocation||p.dataset.visualSelectorId;if(d===l){T();return}let c=L(l||null);T(),c.forEach(v=>{let b=y(!1);document.body.appendChild(b),i.push(b),h(b,v)}),f=c},Q=()=>{r||T()},ee=e=>{if(!o)return;let t=e.target;if(t.closest(`[${A}]`)||m&&t instanceof HTMLElement&&t.contentEditable==="true")return;if(u){e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),S();return}if(s){e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation(),window.parent.postMessage({type:"close-dropdowns"},"*");return}if(t.tagName.toLowerCase()==="path")return;e.preventDefault(),e.stopPropagation(),e.stopImmediatePropagation();let n=t.closest("[data-source-location], [data-visual-selector-id]");if(!n)return;let p=n,l=I(n);if(d===l&&p.dataset.selected==="true"&&m&&z(p)){U(p);return}u&&S(),m&&L(l).forEach(k=>{k instanceof HTMLElement&&(k.dataset.selected="true")});let v=Z(n);te.attachToOverlay(v,n)},Ae=()=>{u&&S(),B()},_e=(e,t)=>{let n=L(e);n.length!==0&&(oe(n,t),setTimeout(()=>{d===e&&a.forEach((p,l)=>{l<n.length&&h(p,n[l])}),f.length>0&&f[0]?.dataset?.visualSelectorId===e&&i.forEach((c,v)=>{v<f.length&&h(c,f[v])})},g))},Pe=(e,t,n)=>{let p=L(e);p.length!==0&&(re(p,t,n),setTimeout(()=>{d===e&&a.forEach((l,c)=>{c<p.length&&h(l,p[c])})},g))},Re=(e,t)=>{let n=L(e);n.length!==0&&(n.forEach(p=>{p.innerText=t}),setTimeout(()=>{d===e&&a.forEach((p,l)=>{l<n.length&&h(p,n[l])})},g))},te=we({createPreviewOverlay:e=>{let t=y(!1);return t.style.zIndex="9998",document.body.appendChild(t),h(t,e),t},getSelectedElementId:()=>d,selectElement:Z,onDeselect:Ne}),ke=e=>{o=e,e?(document.body.style.cursor="crosshair",document.addEventListener("mouseover",J),document.addEventListener("mouseout",Q),document.addEventListener("click",ee,!0)):(u&&S(),B(),te.cleanup(),T(),j(),f=[],document.body.style.cursor="default",document.removeEventListener("mouseover",J),document.removeEventListener("mouseout",Q),document.removeEventListener("click",ee,!0))},ne=()=>{if(d){let e=L(d);if(e.length>0){let n=e[0].getBoundingClientRect(),p=window.innerHeight,l=window.innerWidth,c=n.top<p&&n.bottom>0&&n.left<l&&n.right>0,v={top:n.top,left:n.left,right:n.right,bottom:n.bottom,width:n.width,height:n.height,centerX:n.left+n.width/2,centerY:n.top+n.height/2};window.parent.postMessage({type:"element-position-update",position:v,isInViewport:c,visualSelectorId:d},"*")}}},We=e=>{let t=e.data;switch(t.type){case"toggle-visual-edit-mode":ke(t.data.enabled),t.data.specs?.newInlineEditEnabled!==void 0&&(m=t.data.specs.newInlineEditEnabled);break;case"update-classes":t.data&&t.data.classes!==void 0?_e(t.data.visualSelectorId,t.data.classes):console.warn("[VisualEditAgent] Invalid update-classes message:",t);break;case"update-attribute":t.data&&t.data.visualSelectorId&&t.data.attribute!==void 0&&t.data.value!==void 0?Pe(t.data.visualSelectorId,t.data.attribute,t.data.value):console.warn("[VisualEditAgent] Invalid update-attribute message:",t);break;case"unselect-element":Ae();break;case"refresh-page":window.location.reload();break;case"update-content":t.data&&t.data.content!==void 0?Re(t.data.visualSelectorId,t.data.content):console.warn("[VisualEditAgent] Invalid update-content message:",t);break;case"request-element-position":if(d){let n=L(d);if(n.length>0){let l=n[0].getBoundingClientRect(),c=window.innerHeight,v=window.innerWidth,b=l.top<c&&l.bottom>0&&l.left<v&&l.right>0,k={top:l.top,left:l.left,right:l.right,bottom:l.bottom,width:l.width,height:l.height,centerX:l.left+l.width/2,centerY:l.top+l.height/2};window.parent.postMessage({type:"element-position-update",position:k,isInViewport:b,visualSelectorId:d},"*")}}break;case"popover-drag-state":t.data&&t.data.isDragging!==void 0&&(r=t.data.isDragging,t.data.isDragging&&T());break;case"dropdown-state":t.data&&t.data.isOpen!==void 0&&(s=t.data.isOpen,t.data.isOpen&&T());break;case"toggle-inline-edit-mode":if(!m||!t.data||!t.data.dataSourceLocation)break;{let n=L(t.data.dataSourceLocation);if(n.length===0||!(n[0]instanceof HTMLElement))break;let p=n[0];t.data.inlineEditingMode?z(p)&&(d!==t.data.dataSourceLocation&&(u&&S(),B(),n.forEach(l=>{l instanceof HTMLElement&&(l.dataset.selected="true")}),n.forEach(l=>{let c=y(!0);document.body.appendChild(c),a.push(c),h(c,l,!0)}),d=t.data.dataSourceLocation),U(p)):u===p&&S()}break;default:break}},X=()=>{if(d){let e=L(d);a.forEach((t,n)=>{n<e.length&&h(t,e[n])})}f.length>0&&i.forEach((e,t)=>{t<f.length&&h(e,f[t])})};document.querySelectorAll("[data-linenumber]:not([data-visual-selector-id])").forEach((e,t)=>{let n=e,p=`visual-id-${n.dataset.filename}-${n.dataset.linenumber}-${t}`;n.dataset.visualSelectorId=p});let Ve=new MutationObserver(e=>{e.some(n=>{let p=c=>{if(c.nodeType===Node.ELEMENT_NODE){let v=c;if(v.dataset&&v.dataset.visualSelectorId)return!0;for(let b=0;b<v.children.length;b++)if(p(v.children[b]))return!0}return!1};return n.type==="attributes"&&(n.attributeName==="style"||n.attributeName==="class"||n.attributeName==="width"||n.attributeName==="height")&&p(n.target)})&&setTimeout(X,g)});window.addEventListener("message",We),window.addEventListener("scroll",ne,!0),document.addEventListener("scroll",ne,!0),window.addEventListener("resize",X),window.addEventListener("scroll",X),Ve.observe(document.body,{attributes:!0,childList:!0,subtree:!0,attributeFilter:["style","class","width","height"]}),window.parent.postMessage({type:"visual-edit-agent-ready"},"*")}export{Ue as setupVisualEditAgent};
1
+ function W(e){let n=e;return!!(n.dataset?.sourceLocation||n.dataset?.visualSelectorId)}function b(e){let n=e;return n.dataset?.sourceLocation||n.dataset?.visualSelectorId||null}var V=["src"];function T(e){if(!e)return[];let n=Array.from(document.querySelectorAll(`[data-source-location="${e}"]`));return n.length>0?n:Array.from(document.querySelectorAll(`[data-visual-selector-id="${e}"]`))}function Z(e,n){e.forEach(o=>{o.setAttribute("class",n)})}function J(e,n,o){V.includes(n)&&e.forEach(l=>{l.setAttribute(n,o)})}function Q(e,n){let o={};for(let l of n){let a=e.getAttribute(l);a!==null&&(o[l]=a)}return o}var ee={position:"absolute",backgroundColor:"#ffffff",border:"1px solid #e2e8f0",borderRadius:"6px",boxShadow:"0 4px 12px rgba(0, 0, 0, 0.15)",fontSize:"12px",minWidth:"120px",maxHeight:"200px",overflowY:"auto",zIndex:"10001",padding:"4px 0",pointerEvents:"auto"},te={padding:"4px 12px",cursor:"pointer",color:"#334155",backgroundColor:"transparent",whiteSpace:"nowrap",lineHeight:"1.5",fontWeight:"400"},P="#526cff",ne="#DBEAFE",oe="600",B="#f1f5f9",re=10,M=" \u25BE",O=" \u25B4",se=12,H="data-layer-dropdown",ie=2,le=2;function X(e,n){for(let o of Object.keys(n))e.style.setProperty(o.replace(/[A-Z]/g,l=>`-${l.toLowerCase()}`),n[o])}function ae(e){return e.tagName}function Y(e,n){let o={element:e,tagName:e.tagName.toLowerCase(),selectorId:b(e)};return n!==void 0&&(o.depth=n),o}function de(e,n,o){let l=[];function a(c,d){if(!(d>n))for(let f=0;f<c.children.length;f++){let y=c.children[f];if(W(y)){let E={element:y,tagName:y.tagName.toLowerCase(),selectorId:b(y)};o!==void 0&&(E.depth=o+d-1),l.push(E),a(y,d+1)}else a(y,d)}}return a(e,1),l}function Me(e){let n=[],o=e.parentElement;for(;o&&o!==document.documentElement&&o!==document.body&&n.length<ie;)W(o)&&n.push(Y(o)),o=o.parentElement;return n.reverse(),n}function xe(e,n){return n.forEach((o,l)=>{e.push({...o,depth:l})}),n.length}function ce(e,n,o){e.push(Y(n,o));let l=de(n,le,o+1);e.push(...l)}function Oe(e){return e.at(-1)?.element??null}function He(e,n){let o=de(e,1);return o.some(l=>l.element===n)||o.push(Y(n)),o}function Ae(e,n,o,l){let a=b(o),c=new Set;for(let d of n)if(d.element===o)ce(e,o,l),a&&c.add(a);else{let f=d.selectorId;if(f!=null){if(f===a||c.has(f))continue;c.add(f)}e.push({...d,depth:l})}}function ue(e){let n=Me(e),o=[],l=xe(o,n),a=Oe(n);if(a){let c=He(a,e);Ae(o,c,e,l)}else ce(o,e,l);return o}var x=null,A=null,N=null,R=null,_=null;function Ne(e,n,{onSelect:o,onHover:l,onHoverEnd:a}){let c=document.createElement("div");c.textContent=ae(e),X(c,te);let d=e.depth??0;return d>0&&(c.style.paddingLeft=`${se+d*re}px`),n&&(c.style.color=P,c.style.backgroundColor=ne,c.style.fontWeight=oe),c.addEventListener("mouseenter",()=>{n||(c.style.backgroundColor=B),l&&l(e)}),c.addEventListener("mouseleave",()=>{n||(c.style.backgroundColor="transparent"),a&&a()}),c.addEventListener("click",f=>{f.stopPropagation(),f.preventDefault(),o(e)}),c}function _e(e,n,o){let l=document.createElement("div");return l.setAttribute(H,"true"),X(l,ee),e.forEach(a=>{let c=a.element===n;l.appendChild(Ne(a,c,o))}),l}function fe(e){let n=e.textContent??"";n.endsWith(M)||n.endsWith(O)||(e.textContent=n+M,e.style.cursor="pointer",e.style.userSelect="none",e.style.whiteSpace="nowrap",e.style.pointerEvents="auto",e.setAttribute(H,"true"))}function Pe(e,n,o,{onSelect:l,onHover:a,onHoverEnd:c}){let d=Array.from(e.children),f=n.findIndex(E=>E.element===o),y=E=>{if(f>=0&&f<d.length){let h=d[f];h.style.color!==P&&(h.style.backgroundColor="transparent")}if(f=E,f>=0&&f<d.length){let h=d[f];h.style.color!==P&&(h.style.backgroundColor=B),h.scrollIntoView({block:"nearest"}),a&&f>=0&&f<n.length&&a(n[f])}};_=E=>{E.key==="ArrowDown"?(E.preventDefault(),E.stopPropagation(),y(f<d.length-1?f+1:0)):E.key==="ArrowUp"?(E.preventDefault(),E.stopPropagation(),y(f>0?f-1:d.length-1)):E.key==="Enter"&&f>=0&&f<n.length&&(E.preventDefault(),E.stopPropagation(),c&&c(),l(n[f]),D())},document.addEventListener("keydown",_,!0)}function Re(e,n){let o=!0;N=l=>{if(o){o=!1;return}let a=l.target;!e.contains(a)&&a!==n&&D()},document.addEventListener("mousedown",N,!0)}function pe(e,n,o,l){D();let a=_e(n,o,{...l,onSelect:d=>{l.onHoverEnd&&l.onHoverEnd(),l.onSelect(d),D()}}),c=e.parentElement;c&&(a.style.top=`${e.offsetTop+e.offsetHeight+2}px`,a.style.left=`${e.offsetLeft}px`,c.appendChild(a),x=a,A=e,e.textContent?.endsWith(M.trim())&&(e.textContent=e.textContent.slice(0,-M.length)+O),R=l.onHoverEnd??null,Pe(a,n,o,l),Re(a,e))}function D(){A?.textContent?.includes(O)&&(A.textContent=A.textContent.replace(O,M)),A=null,R&&(R(),R=null),x&&x.parentNode&&x.remove(),x=null,N&&(document.removeEventListener("mousedown",N,!0),N=null),_&&(document.removeEventListener("keydown",_,!0),_=null)}function me(){return x!==null}function Ee(e){let n=null,o=null,l=null,a=()=>{n&&n.parentNode&&n.remove(),n=null},c=L=>{a(),b(L.element)!==e.getSelectedElementId()&&(n=e.createPreviewOverlay(L.element))},d=L=>{a(),D(),o&&(document.removeEventListener("keydown",o,!0),o=null),l=null;let r=e.selectElement(L.element);E(r,L.element)},f=()=>{o&&(document.removeEventListener("keydown",o,!0),o=null),l&&(d(l),l=null)},y=(L,r,p,I,C)=>{L.stopPropagation(),L.preventDefault(),me()?(D(),f()):(l={element:p,tagName:p.tagName.toLowerCase(),selectorId:C},e.onDeselect(),o=v=>{v.key==="Escape"&&(v.stopPropagation(),D(),f())},document.addEventListener("keydown",o,!0),pe(r,I,p,{onSelect:d,onHover:c,onHoverEnd:a}))},E=(L,r)=>{if(!L)return;let p=L.querySelector("div");if(!p)return;let I=ue(r);if(I.length<=1)return;let C=b(r);fe(p),p.addEventListener("click",v=>{y(v,p,r,I,C)})};return{attachToOverlay:E,cleanup:()=>{a(),D()}}}var G="visual-edit-focus-styles",ke=["div","p","h1","h2","h3","h4","h5","h6","span","li","td","a","button","label"],ge=()=>{if(document.getElementById(G))return;let e=document.createElement("style");e.id=G,e.textContent=`
2
+ [data-selected="true"][contenteditable="true"]:focus {
3
+ outline: none !important;
4
+ }
5
+ `,document.head.appendChild(e)},he=()=>{document.getElementById(G)?.remove()},ve=e=>{let n=document.createRange();n.selectNodeContents(e);let o=window.getSelection();o?.removeAllRanges(),o?.addRange(n)},We=e=>!(!(e instanceof HTMLElement)||!ke.includes(e.tagName.toLowerCase())||!e.textContent?.trim()||e.querySelector("img, video, canvas, svg")||e.children.length>0||e.dataset.dynamicContent==="true"),$=e=>!(e instanceof HTMLElement)||e.dataset.selected!=="true"?!1:We(e);var Ve=500;function F(e){let n=null,o=null,l=!1,a=new WeakMap,c=()=>{let r=e.getSelectedElementId();if(!r)return;let p=e.findElementsById(r);e.getSelectedOverlays().forEach((C,v)=>{v<p.length&&e.positionOverlay(C,p[v])})},d=r=>{let p=r.dataset.originalTextContent,I=r.textContent,C=r,v=r.getBoundingClientRect();window.parent.postMessage({type:"inline-edit",elementInfo:{tagName:r.tagName,classes:C.className?.baseVal||r.className||"",visualSelectorId:e.getSelectedElementId(),content:I,dataSourceLocation:r.dataset.sourceLocation,isDynamicContent:r.dataset.dynamicContent==="true",linenumber:r.dataset.linenumber,filename:r.dataset.filename,position:{top:v.top,left:v.left,right:v.right,bottom:v.bottom,width:v.width,height:v.height,centerX:v.left+v.width/2,centerY:v.top+v.height/2}},originalContent:p,newContent:I},"*"),r.dataset.originalTextContent=I||""},f=r=>{o&&clearTimeout(o),o=setTimeout(()=>d(r),Ve)},y=r=>{c(),f(r)},E=function(){y(this)},h=r=>{ge(),r.dataset.originalTextContent=r.textContent||"",r.dataset.originalCursor=r.style.cursor,r.contentEditable="true";let p=new AbortController;a.set(r,p),r.addEventListener("input",E,{signal:p.signal}),r.style.cursor="text",ve(r),setTimeout(()=>r.focus(),0)},L=r=>{let p=a.get(r);p&&(p.abort(),a.delete(r)),r.isConnected&&(he(),r.contentEditable="false",delete r.dataset.originalTextContent,r.dataset.originalCursor!==void 0&&(r.style.cursor=r.dataset.originalCursor,delete r.dataset.originalCursor))};return{get enabled(){return l},set enabled(r){l=r},isEditing(){return n!==null},getCurrentElement(){return n},canEdit(r){return $(r)},startEditing(r){n=r,e.getSelectedOverlays().forEach(p=>{p.style.display="none"}),h(r),window.parent.postMessage({type:"content-editing-started",visualSelectorId:e.getSelectedElementId()},"*")},stopEditing(){if(!n)return;o&&(clearTimeout(o),o=null),L(n),e.getSelectedOverlays().forEach(p=>{p.style.display=""}),c(),window.parent.postMessage({type:"content-editing-ended",visualSelectorId:e.getSelectedElementId()},"*"),n=null},markElementsSelected(r){r.forEach(p=>{p instanceof HTMLElement&&(p.dataset.selected="true")})},clearSelectedMarks(r){r&&e.findElementsById(r).forEach(p=>{p instanceof HTMLElement&&delete p.dataset.selected})},handleToggleMessage(r){if(!l)return;let p=e.findElementsById(r.dataSourceLocation);if(p.length===0||!(p[0]instanceof HTMLElement))return;let I=p[0];if(r.inlineEditingMode){if(!$(I))return;e.getSelectedElementId()!==r.dataSourceLocation&&(this.stopEditing(),e.clearSelection(),this.markElementsSelected(p),e.createSelectionOverlays(p,r.dataSourceLocation)),this.startEditing(I)}else n===I&&this.stopEditing()},cleanup(){this.stopEditing()}}}function Be(){let e=!1,n=!1,o=!1,l=[],a=[],c=[],d=null,f=50,y=(s=!1)=>{let t=document.createElement("div");return t.style.position="absolute",t.style.pointerEvents="none",t.style.transition="all 0.1s ease-in-out",t.style.zIndex="9999",s?t.style.border="2px solid #2563EB":(t.style.border="2px solid #95a5fc",t.style.backgroundColor="rgba(99, 102, 241, 0.05)"),t},E=(s,t,i=!1)=>{if(!t||!e)return;t.offsetWidth;let u=t.getBoundingClientRect();s.style.top=`${u.top+window.scrollY}px`,s.style.left=`${u.left+window.scrollX}px`,s.style.width=`${u.width}px`,s.style.height=`${u.height}px`;let g=s.querySelector("div");g||(g=document.createElement("div"),g.textContent=t.tagName.toLowerCase(),g.style.position="absolute",g.style.top="-27px",g.style.left="-2px",g.style.padding="2px 8px",g.style.fontSize="11px",g.style.fontWeight=i?"500":"400",g.style.color=i?"#ffffff":"#526cff",g.style.backgroundColor=i?"#526cff":"#DBEAFE",g.style.borderRadius="3px",g.style.minWidth="24px",g.style.textAlign="center",s.appendChild(g))},h=F({findElementsById:T,getSelectedElementId:()=>d,getSelectedOverlays:()=>a,positionOverlay:E,clearSelection:()=>{h.clearSelectedMarks(d),p(),d=null},createSelectionOverlays:(s,t)=>{s.forEach(i=>{let m=y(!0);document.body.appendChild(m),a.push(m),E(m,i,!0)}),d=t}}),L=()=>{h.clearSelectedMarks(d),p(),d=null},r=()=>{l.forEach(s=>{s&&s.parentNode&&s.remove()}),l=[],c=[]},p=()=>{a.forEach(s=>{s&&s.parentNode&&s.remove()}),a=[]},I=["p","h1","h2","h3","h4","h5","h6","span","a","label"],C=s=>{let t=s,i=s.getBoundingClientRect(),m=s,u=I.includes(s.tagName?.toLowerCase());window.parent.postMessage({type:"element-selected",tagName:s.tagName,classes:m.className?.baseVal||s.className||"",visualSelectorId:b(s),content:u?t.innerText:void 0,dataSourceLocation:t.dataset.sourceLocation,isDynamicContent:t.dataset.dynamicContent==="true",linenumber:t.dataset.linenumber,filename:t.dataset.filename,position:{top:i.top,left:i.left,right:i.right,bottom:i.bottom,width:i.width,height:i.height,centerX:i.left+i.width/2,centerY:i.top+i.height/2},attributes:Q(s,V),isTextElement:u},"*")},v=s=>{let t=b(s);return p(),T(t||null).forEach(m=>{let u=y(!0);document.body.appendChild(u),a.push(u),E(u,m,!0)}),d=t||null,r(),C(s),a[0]},ye=()=>{d=null,window.parent.postMessage({type:"unselect-element"},"*")},j=s=>{if(!e||n||h.isEditing())return;let t=s.target;if(o){r();return}if(t.tagName.toLowerCase()==="path"){r();return}let i=t.closest("[data-source-location], [data-visual-selector-id]");if(!i){r();return}let m=i,u=m.dataset.sourceLocation||m.dataset.visualSelectorId;if(d===u){r();return}let g=T(u||null);r(),g.forEach(w=>{let S=y(!1);document.body.appendChild(S),l.push(S),E(S,w)}),c=g},q=()=>{n||r()},z=s=>{if(!e)return;let t=s.target;if(t.closest(`[${H}]`)||h.enabled&&t instanceof HTMLElement&&t.contentEditable==="true")return;if(h.isEditing()){s.preventDefault(),s.stopPropagation(),s.stopImmediatePropagation(),h.stopEditing();return}if(o){s.preventDefault(),s.stopPropagation(),s.stopImmediatePropagation(),window.parent.postMessage({type:"close-dropdowns"},"*");return}if(t.tagName.toLowerCase()==="path")return;s.preventDefault(),s.stopPropagation(),s.stopImmediatePropagation();let i=t.closest("[data-source-location], [data-visual-selector-id]");if(!i)return;let m=i,u=b(i);if(d===u&&m.dataset.selected==="true"&&h.enabled&&h.canEdit(m)){h.startEditing(m);return}h.stopEditing(),h.enabled&&h.markElementsSelected(T(u));let w=v(i);U.attachToOverlay(w,i)},Le=()=>{h.stopEditing(),L()},Ie=(s,t)=>{let i=T(s);i.length!==0&&(Z(i,t),setTimeout(()=>{d===s&&a.forEach((m,u)=>{u<i.length&&E(m,i[u])}),c.length>0&&c[0]?.dataset?.visualSelectorId===s&&l.forEach((g,w)=>{w<c.length&&E(g,c[w])})},f))},we=(s,t,i)=>{let m=T(s);m.length!==0&&(J(m,t,i),setTimeout(()=>{d===s&&a.forEach((u,g)=>{g<m.length&&E(u,m[g])})},f))},be=(s,t)=>{let i=T(s);i.length!==0&&(i.forEach(m=>{m.innerText=t}),setTimeout(()=>{d===s&&a.forEach((m,u)=>{u<i.length&&E(m,i[u])})},f))},U=Ee({createPreviewOverlay:s=>{let t=y(!1);return t.style.zIndex="9998",document.body.appendChild(t),E(t,s),t},getSelectedElementId:()=>d,selectElement:v,onDeselect:ye}),Te=s=>{e=s,s?(document.body.style.cursor="crosshair",document.addEventListener("mouseover",j),document.addEventListener("mouseout",q),document.addEventListener("click",z,!0)):(h.stopEditing(),L(),U.cleanup(),r(),c=[],document.body.style.cursor="default",document.removeEventListener("mouseover",j),document.removeEventListener("mouseout",q),document.removeEventListener("click",z,!0))},K=()=>{if(d){let s=T(d);if(s.length>0){let i=s[0].getBoundingClientRect(),m=window.innerHeight,u=window.innerWidth,g=i.top<m&&i.bottom>0&&i.left<u&&i.right>0,w={top:i.top,left:i.left,right:i.right,bottom:i.bottom,width:i.width,height:i.height,centerX:i.left+i.width/2,centerY:i.top+i.height/2};window.parent.postMessage({type:"element-position-update",position:w,isInViewport:g,visualSelectorId:d},"*")}}},Ce=s=>{let t=s.data;switch(t.type){case"toggle-visual-edit-mode":Te(t.data.enabled),t.data.specs?.newInlineEditEnabled!==void 0&&(h.enabled=t.data.specs.newInlineEditEnabled);break;case"update-classes":t.data&&t.data.classes!==void 0?Ie(t.data.visualSelectorId,t.data.classes):console.warn("[VisualEditAgent] Invalid update-classes message:",t);break;case"update-attribute":t.data&&t.data.visualSelectorId&&t.data.attribute!==void 0&&t.data.value!==void 0?we(t.data.visualSelectorId,t.data.attribute,t.data.value):console.warn("[VisualEditAgent] Invalid update-attribute message:",t);break;case"unselect-element":Le();break;case"refresh-page":window.location.reload();break;case"update-content":t.data&&t.data.content!==void 0?be(t.data.visualSelectorId,t.data.content):console.warn("[VisualEditAgent] Invalid update-content message:",t);break;case"request-element-position":if(d){let i=T(d);if(i.length>0){let u=i[0].getBoundingClientRect(),g=window.innerHeight,w=window.innerWidth,S=u.top<g&&u.bottom>0&&u.left<w&&u.right>0,De={top:u.top,left:u.left,right:u.right,bottom:u.bottom,width:u.width,height:u.height,centerX:u.left+u.width/2,centerY:u.top+u.height/2};window.parent.postMessage({type:"element-position-update",position:De,isInViewport:S,visualSelectorId:d},"*")}}break;case"popover-drag-state":t.data&&t.data.isDragging!==void 0&&(n=t.data.isDragging,t.data.isDragging&&r());break;case"dropdown-state":t.data&&t.data.isOpen!==void 0&&(o=t.data.isOpen,t.data.isOpen&&r());break;case"toggle-inline-edit-mode":t.data&&h.handleToggleMessage(t.data);break;default:break}},k=()=>{if(d){let s=T(d);a.forEach((t,i)=>{i<s.length&&E(t,s[i])})}c.length>0&&l.forEach((s,t)=>{t<c.length&&E(s,c[t])})};document.querySelectorAll("[data-linenumber]:not([data-visual-selector-id])").forEach((s,t)=>{let i=s,m=`visual-id-${i.dataset.filename}-${i.dataset.linenumber}-${t}`;i.dataset.visualSelectorId=m});let Se=new MutationObserver(s=>{s.some(i=>{let m=g=>{if(g.nodeType===Node.ELEMENT_NODE){let w=g;if(w.dataset&&w.dataset.visualSelectorId)return!0;for(let S=0;S<w.children.length;S++)if(m(w.children[S]))return!0}return!1};return i.type==="attributes"&&(i.attributeName==="style"||i.attributeName==="class"||i.attributeName==="width"||i.attributeName==="height")&&m(i.target)})&&setTimeout(k,f)});window.addEventListener("message",Ce),window.addEventListener("scroll",K,!0),document.addEventListener("scroll",K,!0),window.addEventListener("resize",k),window.addEventListener("scroll",k),Se.observe(document.body,{attributes:!0,childList:!0,subtree:!0,attributeFilter:["style","class","width","height"]}),window.parent.postMessage({type:"visual-edit-agent-ready"},"*")}export{Be as setupVisualEditAgent};
6
6
  //# sourceMappingURL=index.mjs.map