@node-projects/web-component-designer 0.2.4 → 0.2.5

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 (190) hide show
  1. package/dist/elements/item/DesignItem.d.ts +1 -1
  2. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js +4 -4
  3. package/dist/elements/services/propertiesService/DefaultEditorTypesService.js.map +1 -1
  4. package/dist/elements/services/propertiesService/PropertyGroupsService.js +1 -2
  5. package/dist/elements/services/propertiesService/PropertyGroupsService.js.map +1 -1
  6. package/dist/elements/services/propertiesService/propertyEditors/{CssNumericPropertyEditor.d.ts → UnitPropertyEditor.d.ts} +1 -1
  7. package/dist/elements/services/propertiesService/propertyEditors/{CssNumericPropertyEditor.js → UnitPropertyEditor.js} +3 -3
  8. package/dist/elements/services/propertiesService/propertyEditors/UnitPropertyEditor.js.map +1 -0
  9. package/dist/elements/services/propertiesService/propertyEditors/UnitPropertyEditorConfig.d.ts +30 -0
  10. package/dist/elements/services/propertiesService/propertyEditors/{CssNumericPropertyEditorConfig.js → UnitPropertyEditorConfig.js} +34 -91
  11. package/dist/elements/services/propertiesService/propertyEditors/UnitPropertyEditorConfig.js.map +1 -0
  12. package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.js +1 -1
  13. package/dist/elements/services/propertiesService/services/AbstractCssPropertiesService.js.map +1 -1
  14. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.d.ts +0 -1
  15. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js +3 -7
  16. package/dist/elements/services/propertiesService/services/CssCurrentPropertiesService.js.map +1 -1
  17. package/dist/elements/services/propertiesService/services/CssProperties.json +107 -33
  18. package/dist/elements/services/propertiesService/services/CssPropertiesService.d.ts +3 -0
  19. package/dist/elements/services/propertiesService/services/CssPropertiesService.js +12 -2
  20. package/dist/elements/services/propertiesService/services/CssPropertiesService.js.map +1 -1
  21. package/dist/elements/services/propertiesService/services/SVGElementsPropertiesService.d.ts +2 -0
  22. package/dist/elements/services/propertiesService/services/SVGElementsPropertiesService.js +39 -41
  23. package/dist/elements/services/propertiesService/services/SVGElementsPropertiesService.js.map +1 -1
  24. package/dist/elements/widgets/designerView/DomConverter.d.ts +1 -1
  25. package/dist/index-min.js +7 -7
  26. package/dist/index-min.js.map +4 -4
  27. package/dist/index.d.ts +1 -4
  28. package/dist/index.js +1 -4
  29. package/dist/index.js.map +1 -1
  30. package/jest.config.js +3 -0
  31. package/package.json +1 -1
  32. package/dist/basepath.d.ts +0 -2
  33. package/dist/basepath.js +0 -2
  34. package/dist/basepath.js.map +0 -1
  35. package/dist/elements/controls/NumericPopup.d.ts +0 -6
  36. package/dist/elements/controls/NumericPopup.js +0 -40
  37. package/dist/elements/controls/NumericPopup.js.map +0 -1
  38. package/dist/elements/helper/DesignItem.d.ts +0 -11
  39. package/dist/elements/helper/DesignItem.js +0 -67
  40. package/dist/elements/helper/DesignItem.js.map +0 -1
  41. package/dist/elements/helper/Screenshot copy.d.ts +0 -11
  42. package/dist/elements/helper/Screenshot copy.js +0 -67
  43. package/dist/elements/helper/Screenshot copy.js.map +0 -1
  44. package/dist/elements/services/collaborationService/DefaultCollaborationService.d.ts +0 -45
  45. package/dist/elements/services/collaborationService/DefaultCollaborationService.js +0 -298
  46. package/dist/elements/services/collaborationService/DefaultCollaborationService.js.map +0 -1
  47. package/dist/elements/services/collaborationService/WebRtcTabCollaborationTransport.d.ts +0 -95
  48. package/dist/elements/services/collaborationService/WebRtcTabCollaborationTransport.js +0 -571
  49. package/dist/elements/services/collaborationService/WebRtcTabCollaborationTransport.js.map +0 -1
  50. package/dist/elements/services/contentService/ContentService.d.ts +0 -9
  51. package/dist/elements/services/contentService/ContentService.js +0 -9
  52. package/dist/elements/services/contentService/ContentService.js.map +0 -1
  53. package/dist/elements/services/contentService/IContentChanged.d.ts +0 -10
  54. package/dist/elements/services/contentService/IContentChanged.js +0 -12
  55. package/dist/elements/services/contentService/IContentChanged.js.map +0 -1
  56. package/dist/elements/services/contentService/IContentService.d.ts +0 -7
  57. package/dist/elements/services/contentService/IContentService.js +0 -2
  58. package/dist/elements/services/contentService/IContentService.js.map +0 -1
  59. package/dist/elements/services/htmlWriterService/LitTsElementWriterService.d.ts +0 -10
  60. package/dist/elements/services/htmlWriterService/LitTsElementWriterService.js +0 -53
  61. package/dist/elements/services/htmlWriterService/LitTsElementWriterService.js.map +0 -1
  62. package/dist/elements/services/miniatureViewService/IMinatureViewService copy.d.ts +0 -2
  63. package/dist/elements/services/miniatureViewService/IMinatureViewService copy.js +0 -2
  64. package/dist/elements/services/miniatureViewService/IMinatureViewService copy.js.map +0 -1
  65. package/dist/elements/services/miniatureViewService/IMinatureViewService.d.ts +0 -4
  66. package/dist/elements/services/miniatureViewService/IMinatureViewService.js +0 -2
  67. package/dist/elements/services/miniatureViewService/IMinatureViewService.js.map +0 -1
  68. package/dist/elements/services/miniatureViewService/MinatureViewService.d.ts +0 -5
  69. package/dist/elements/services/miniatureViewService/MinatureViewService.js +0 -10
  70. package/dist/elements/services/miniatureViewService/MinatureViewService.js.map +0 -1
  71. package/dist/elements/services/popupService/IPopupService.d.ts +0 -16
  72. package/dist/elements/services/popupService/IPopupService.js +0 -2
  73. package/dist/elements/services/popupService/IPopupService.js.map +0 -1
  74. package/dist/elements/services/popupService/PopupService.d.ts +0 -9
  75. package/dist/elements/services/popupService/PopupService.js +0 -21
  76. package/dist/elements/services/popupService/PopupService.js.map +0 -1
  77. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.d.ts +0 -1
  78. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.js +0 -2
  79. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditor.js.map +0 -1
  80. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditorConfig.d.ts +0 -3
  81. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditorConfig.js +0 -4
  82. package/dist/elements/services/propertiesService/propertyEditors/CssLengthPropertyEditorConfig.js.map +0 -1
  83. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditor.js.map +0 -1
  84. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditorConfig.d.ts +0 -30
  85. package/dist/elements/services/propertiesService/propertyEditors/CssNumericPropertyEditorConfig.js.map +0 -1
  86. package/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor copy.d.ts +0 -7
  87. package/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor copy.js +0 -19
  88. package/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor copy.js.map +0 -1
  89. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction copy.d.ts +0 -15
  90. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction copy.js +0 -75
  91. package/dist/elements/services/undoService/transactionItems/AttributeChangeAction copy.js.map +0 -1
  92. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtension.d.ts +0 -11
  93. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtension.js +0 -72
  94. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtension.js.map +0 -1
  95. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtensionProvider.d.ts +0 -10
  96. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtensionProvider.js +0 -22
  97. package/dist/elements/widgets/designerView/extensions/CollaborationCursorOverlayExtensionProvider.js.map +0 -1
  98. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtension.d.ts +0 -10
  99. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtension.js +0 -116
  100. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtension.js.map +0 -1
  101. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtensionProvider.d.ts +0 -10
  102. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtensionProvider.js +0 -31
  103. package/dist/elements/widgets/designerView/extensions/CollaborationOverlayExtensionProvider.js.map +0 -1
  104. package/dist/elements/widgets/designerView/extensions/FlexboxExtension.d.ts +0 -11
  105. package/dist/elements/widgets/designerView/extensions/FlexboxExtension.js +0 -20
  106. package/dist/elements/widgets/designerView/extensions/FlexboxExtension.js.map +0 -1
  107. package/dist/elements/widgets/designerView/extensions/FlexboxExtensionProvider.d.ts +0 -11
  108. package/dist/elements/widgets/designerView/extensions/FlexboxExtensionProvider.js +0 -18
  109. package/dist/elements/widgets/designerView/extensions/FlexboxExtensionProvider.js.map +0 -1
  110. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtension.d.ts +0 -33
  111. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtension.js +0 -337
  112. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtension.js.map +0 -1
  113. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.d.ts +0 -10
  114. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.js +0 -22
  115. package/dist/elements/widgets/designerView/extensions/ProjectiveTransformExtensionProvider.js.map +0 -1
  116. package/dist/elements/widgets/designerView/extensions/QuadEdgeHandleHelper.d.ts +0 -5
  117. package/dist/elements/widgets/designerView/extensions/QuadEdgeHandleHelper.js +0 -42
  118. package/dist/elements/widgets/designerView/extensions/QuadEdgeHandleHelper.js.map +0 -1
  119. package/dist/elements/widgets/designerView/extensions/RotateExtension.d.ts +0 -16
  120. package/dist/elements/widgets/designerView/extensions/RotateExtension.js +0 -109
  121. package/dist/elements/widgets/designerView/extensions/RotateExtension.js.map +0 -1
  122. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.d.ts +0 -12
  123. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.js +0 -25
  124. package/dist/elements/widgets/designerView/extensions/RotateExtensionProvider.js.map +0 -1
  125. package/dist/elements/widgets/designerView/extensions/RotateGroupExtension.d.ts +0 -29
  126. package/dist/elements/widgets/designerView/extensions/RotateGroupExtension.js +0 -229
  127. package/dist/elements/widgets/designerView/extensions/RotateGroupExtension.js.map +0 -1
  128. package/dist/elements/widgets/designerView/extensions/RotateGroupExtensionProvider.d.ts +0 -10
  129. package/dist/elements/widgets/designerView/extensions/RotateGroupExtensionProvider.js +0 -20
  130. package/dist/elements/widgets/designerView/extensions/RotateGroupExtensionProvider.js.map +0 -1
  131. package/dist/elements/widgets/designerView/extensions/SkewExtension.d.ts +0 -30
  132. package/dist/elements/widgets/designerView/extensions/SkewExtension.js +0 -291
  133. package/dist/elements/widgets/designerView/extensions/SkewExtension.js.map +0 -1
  134. package/dist/elements/widgets/designerView/extensions/SkewExtensionProvider.d.ts +0 -10
  135. package/dist/elements/widgets/designerView/extensions/SkewExtensionProvider.js +0 -20
  136. package/dist/elements/widgets/designerView/extensions/SkewExtensionProvider.js.map +0 -1
  137. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.d.ts +0 -16
  138. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js +0 -120
  139. package/dist/elements/widgets/designerView/extensions/TransformOriginExtension.js.map +0 -1
  140. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.d.ts +0 -12
  141. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js +0 -34
  142. package/dist/elements/widgets/designerView/extensions/TransformOriginExtensionProvider.js.map +0 -1
  143. package/dist/elements/widgets/designerView/extensions/contextMenu/ChildContextMenu copy.d.ts +0 -11
  144. package/dist/elements/widgets/designerView/extensions/contextMenu/ChildContextMenu copy.js +0 -16
  145. package/dist/elements/widgets/designerView/extensions/contextMenu/ChildContextMenu copy.js.map +0 -1
  146. package/dist/elements/widgets/designerView/extensions/contextMenu/CollaborationCommentsContextMenu.d.ts +0 -9
  147. package/dist/elements/widgets/designerView/extensions/contextMenu/CollaborationCommentsContextMenu.js +0 -72
  148. package/dist/elements/widgets/designerView/extensions/contextMenu/CollaborationCommentsContextMenu.js.map +0 -1
  149. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtension.d.ts +0 -43
  150. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtension.js +0 -187
  151. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtension.js.map +0 -1
  152. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtensionProvider.d.ts +0 -9
  153. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtensionProvider.js +0 -14
  154. package/dist/elements/widgets/designerView/extensions/svg/EllipsisExtensionProvider.js.map +0 -1
  155. package/dist/elements/widgets/designerView/extensions/svg/LineExtension.d.ts +0 -32
  156. package/dist/elements/widgets/designerView/extensions/svg/LineExtension.js +0 -148
  157. package/dist/elements/widgets/designerView/extensions/svg/LineExtension.js.map +0 -1
  158. package/dist/elements/widgets/designerView/extensions/svg/LineExtensionProvider.d.ts +0 -9
  159. package/dist/elements/widgets/designerView/extensions/svg/LineExtensionProvider.js +0 -15
  160. package/dist/elements/widgets/designerView/extensions/svg/LineExtensionProvider.js.map +0 -1
  161. package/dist/elements/widgets/designerView/extensions/svg/PathExtension.d.ts +0 -31
  162. package/dist/elements/widgets/designerView/extensions/svg/PathExtension.js +0 -330
  163. package/dist/elements/widgets/designerView/extensions/svg/PathExtension.js.map +0 -1
  164. package/dist/elements/widgets/designerView/extensions/svg/PathExtensionProvider.d.ts +0 -9
  165. package/dist/elements/widgets/designerView/extensions/svg/PathExtensionProvider.js +0 -15
  166. package/dist/elements/widgets/designerView/extensions/svg/PathExtensionProvider.js.map +0 -1
  167. package/dist/elements/widgets/designerView/extensions/svg/RectExtension.d.ts +0 -49
  168. package/dist/elements/widgets/designerView/extensions/svg/RectExtension.js +0 -215
  169. package/dist/elements/widgets/designerView/extensions/svg/RectExtension.js.map +0 -1
  170. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider.d.ts +0 -9
  171. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider.js +0 -15
  172. package/dist/elements/widgets/designerView/extensions/svg/RectExtensionProvider.js.map +0 -1
  173. package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtension.d.ts +0 -26
  174. package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtension.js +0 -145
  175. package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtension.js.map +0 -1
  176. package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtensionProvider.d.ts +0 -9
  177. package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtensionProvider.js +0 -17
  178. package/dist/elements/widgets/designerView/extensions/svg/SvgElementExtensionProvider.js.map +0 -1
  179. package/dist/elements/widgets/miniatureView/FirefoxElementMiniatiureView.d.ts +0 -9
  180. package/dist/elements/widgets/miniatureView/FirefoxElementMiniatiureView.js +0 -19
  181. package/dist/elements/widgets/miniatureView/FirefoxElementMiniatiureView.js.map +0 -1
  182. package/dist/elements/widgets/miniatureView/miniature-view.d.ts +0 -33
  183. package/dist/elements/widgets/miniatureView/miniature-view.js +0 -178
  184. package/dist/elements/widgets/miniatureView/miniature-view.js.map +0 -1
  185. package/dist/elements/widgets/propertyGrid/PropertyGridMutationHandling.d.ts +0 -5
  186. package/dist/elements/widgets/propertyGrid/PropertyGridMutationHandling.js +0 -13
  187. package/dist/elements/widgets/propertyGrid/PropertyGridMutationHandling.js.map +0 -1
  188. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyStructureSignature.d.ts +0 -4
  189. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyStructureSignature.js +0 -31
  190. package/dist/elements/widgets/propertyGrid/PropertyGridPropertyStructureSignature.js.map +0 -1
@@ -1,571 +0,0 @@
1
- export const defaultWebRtcTabCollaborationSignalingChannels = ['broadcast-channel', 'manual'];
2
- function createRandomId() {
3
- return globalThis.crypto?.randomUUID?.() ?? `wcd-collab-${Date.now()}-${Math.floor(Math.random() * 100000)}`;
4
- }
5
- function createEnabledSignalingChannels(channels) {
6
- if (channels == null)
7
- return new Set(defaultWebRtcTabCollaborationSignalingChannels);
8
- const validChannels = channels.filter((channel) => channel === 'broadcast-channel' || channel === 'manual');
9
- return new Set(validChannels);
10
- }
11
- function areSetsEqual(first, second) {
12
- if (first.size !== second.size)
13
- return false;
14
- for (const entry of first) {
15
- if (!second.has(entry))
16
- return false;
17
- }
18
- return true;
19
- }
20
- function cloneSignalingMessage(message) {
21
- return {
22
- ...message,
23
- description: message.description ? { ...message.description } : undefined,
24
- candidate: message.candidate ? { ...message.candidate } : undefined
25
- };
26
- }
27
- function escapeControlCharacter(character) {
28
- switch (character) {
29
- case '\b':
30
- return '\\b';
31
- case '\f':
32
- return '\\f';
33
- case '\n':
34
- return '\\n';
35
- case '\r':
36
- return '\\r';
37
- case '\t':
38
- return '\\t';
39
- default:
40
- return `\\u${character.charCodeAt(0).toString(16).padStart(4, '0')}`;
41
- }
42
- }
43
- function normalizeJsonControlCharactersInStrings(data) {
44
- let normalized = '';
45
- let inString = false;
46
- let isEscaped = false;
47
- for (const character of data) {
48
- if (inString) {
49
- if (isEscaped) {
50
- normalized += character;
51
- isEscaped = false;
52
- continue;
53
- }
54
- if (character === '\\') {
55
- normalized += character;
56
- isEscaped = true;
57
- continue;
58
- }
59
- if (character === '"') {
60
- normalized += character;
61
- inString = false;
62
- continue;
63
- }
64
- if (character < ' ') {
65
- normalized += escapeControlCharacter(character);
66
- continue;
67
- }
68
- normalized += character;
69
- continue;
70
- }
71
- normalized += character;
72
- if (character === '"')
73
- inString = true;
74
- }
75
- return normalized;
76
- }
77
- function parseManualSignalingBundleData(data) {
78
- try {
79
- return JSON.parse(data);
80
- }
81
- catch (error) {
82
- const normalizedData = normalizeJsonControlCharactersInStrings(data);
83
- if (normalizedData === data)
84
- throw error;
85
- return JSON.parse(normalizedData);
86
- }
87
- }
88
- export class WebRtcTabCollaborationTransport {
89
- _service = null;
90
- _session = null;
91
- _broadcastSignalingChannel = null;
92
- _enabledSignalingChannels = createEnabledSignalingChannels();
93
- _manualSignalingMessages = [];
94
- _peerConnections = new Map();
95
- _dataChannels = new Map();
96
- _initiatedPeers = new Set();
97
- _peersNeedingInitialSnapshot = new Set();
98
- _pendingCandidates = new Map();
99
- _processedSignalIds = new Set();
100
- _remoteConnectionIds = new Map();
101
- _localConnectionId = null;
102
- constructor(options) {
103
- this._enabledSignalingChannels = createEnabledSignalingChannels(options?.enabledSignalingChannels);
104
- }
105
- get enabledSignalingChannels() {
106
- return [...this._enabledSignalingChannels];
107
- }
108
- setEnabledSignalingChannels(channels) {
109
- const nextChannels = createEnabledSignalingChannels(channels);
110
- if (areSetsEqual(this._enabledSignalingChannels, nextChannels))
111
- return;
112
- this._enabledSignalingChannels = nextChannels;
113
- this.ensureBroadcastChannelState();
114
- if (this._session && this.hasAvailableSignalingChannel()) {
115
- this.sendSignal({
116
- sessionId: this._session.sessionId,
117
- fromPeerId: this._session.peerId,
118
- type: 'hello',
119
- requestInitialSnapshot: this.shouldRequestInitialSnapshot()
120
- });
121
- }
122
- }
123
- getManualSignalingBundle() {
124
- if (!this._session || !this._localConnectionId)
125
- return null;
126
- return {
127
- version: 1,
128
- sessionId: this._session.sessionId,
129
- fromPeerId: this._session.peerId,
130
- connectionId: this._localConnectionId,
131
- createdAt: Date.now(),
132
- messages: this._manualSignalingMessages.map(cloneSignalingMessage)
133
- };
134
- }
135
- exportManualSignalingData(space = 2) {
136
- const bundle = this.getManualSignalingBundle();
137
- return bundle ? JSON.stringify(bundle, null, space) : '';
138
- }
139
- async importManualSignalingData(data) {
140
- if (!this._session)
141
- throw new Error('Collaboration is not connected for this document.');
142
- const bundle = typeof data === 'string'
143
- ? parseManualSignalingBundleData(data)
144
- : data;
145
- if (!bundle || !Array.isArray(bundle.messages))
146
- throw new Error('Invalid collaboration signaling data.');
147
- if (bundle.sessionId !== this._session.sessionId)
148
- throw new Error(`Signaling data is for session "${bundle.sessionId}", but the active session is "${this._session.sessionId}".`);
149
- let importedCount = 0;
150
- let ignoredCount = 0;
151
- for (const message of bundle.messages) {
152
- if (!this.isSignalingMessage(message)) {
153
- ignoredCount++;
154
- continue;
155
- }
156
- const handled = await this.handleSignalMessage(message);
157
- if (handled)
158
- importedCount++;
159
- else
160
- ignoredCount++;
161
- }
162
- return { importedCount, ignoredCount };
163
- }
164
- async attach(service) {
165
- this._service = service;
166
- }
167
- async detach() {
168
- await this.disconnect();
169
- this._service = null;
170
- }
171
- async connect(session) {
172
- if (typeof RTCPeerConnection === 'undefined') {
173
- console.warn('WebRTC collaboration is not available in this browser.');
174
- return;
175
- }
176
- await this.disconnect();
177
- this._session = session;
178
- this._localConnectionId = createRandomId();
179
- this.ensureBroadcastChannelState();
180
- if (!this.hasAvailableSignalingChannel())
181
- console.warn('WebRTC collaboration signaling is disabled. Enable manual or broadcast signaling to connect peers.');
182
- this.sendSignal({
183
- sessionId: session.sessionId,
184
- fromPeerId: session.peerId,
185
- type: 'hello',
186
- requestInitialSnapshot: this.shouldRequestInitialSnapshot()
187
- });
188
- }
189
- async disconnect() {
190
- if (this._session) {
191
- this.sendSignal({
192
- sessionId: this._session.sessionId,
193
- fromPeerId: this._session.peerId,
194
- type: 'bye'
195
- }, { includeManual: false });
196
- }
197
- if (this._broadcastSignalingChannel) {
198
- this._broadcastSignalingChannel.close();
199
- this._broadcastSignalingChannel = null;
200
- }
201
- for (const channel of this._dataChannels.values()) {
202
- try {
203
- channel.close();
204
- }
205
- catch {
206
- }
207
- }
208
- this._dataChannels.clear();
209
- for (const peerConnection of this._peerConnections.values()) {
210
- try {
211
- peerConnection.close();
212
- }
213
- catch {
214
- }
215
- }
216
- this._peerConnections.clear();
217
- this._pendingCandidates.clear();
218
- this._initiatedPeers.clear();
219
- this._peersNeedingInitialSnapshot.clear();
220
- this._manualSignalingMessages = [];
221
- this._processedSignalIds.clear();
222
- this._remoteConnectionIds.clear();
223
- this._localConnectionId = null;
224
- this._session = null;
225
- }
226
- async sendChange(change, snapshot) {
227
- this.sendData({ type: 'change', change, snapshot });
228
- }
229
- async sendSelection(selection) {
230
- this.sendData({ type: 'selection', selection });
231
- }
232
- async sendPresence(peer) {
233
- this.sendData({ type: 'presence', peer });
234
- }
235
- async sendComment(change) {
236
- if (change.comment)
237
- this.sendData({ type: 'comment-upsert', comment: change.comment });
238
- else if (change.commentId)
239
- this.sendData({ type: 'comment-remove', commentId: change.commentId });
240
- }
241
- ensureBroadcastChannelState() {
242
- if (!this._session || !this._enabledSignalingChannels.has('broadcast-channel') || typeof BroadcastChannel === 'undefined') {
243
- if (this._broadcastSignalingChannel) {
244
- this._broadcastSignalingChannel.close();
245
- this._broadcastSignalingChannel = null;
246
- }
247
- return;
248
- }
249
- if (this._broadcastSignalingChannel)
250
- return;
251
- this._broadcastSignalingChannel = new BroadcastChannel(`wcd-collab:${this._session.sessionId}`);
252
- this._broadcastSignalingChannel.onmessage = event => {
253
- void this.handleSignalMessage(event.data);
254
- };
255
- }
256
- hasAvailableSignalingChannel() {
257
- return this._enabledSignalingChannels.has('manual')
258
- || (this._enabledSignalingChannels.has('broadcast-channel') && typeof BroadcastChannel !== 'undefined');
259
- }
260
- isSignalingMessage(message) {
261
- if (!message)
262
- return false;
263
- return typeof message.id === 'string'
264
- && typeof message.connectionId === 'string'
265
- && typeof message.createdAt === 'number'
266
- && typeof message.sessionId === 'string'
267
- && typeof message.fromPeerId === 'string'
268
- && (message.requestInitialSnapshot == null || typeof message.requestInitialSnapshot === 'boolean')
269
- && (message.type === 'hello'
270
- || message.type === 'hello-ack'
271
- || message.type === 'offer'
272
- || message.type === 'answer'
273
- || message.type === 'ice'
274
- || message.type === 'bye');
275
- }
276
- rememberRemoteConnection(remotePeerId, connectionId) {
277
- const previousConnectionId = this._remoteConnectionIds.get(remotePeerId);
278
- if (previousConnectionId === connectionId)
279
- return;
280
- this.cleanupPeer(remotePeerId, false);
281
- this._remoteConnectionIds.set(remotePeerId, connectionId);
282
- }
283
- shouldRequestInitialSnapshot() {
284
- const snapshot = this._service?.createSnapshot();
285
- return !snapshot?.html?.trim();
286
- }
287
- updateInitialSnapshotRequest(remotePeerId, requestInitialSnapshot) {
288
- if (requestInitialSnapshot)
289
- this._peersNeedingInitialSnapshot.add(remotePeerId);
290
- else
291
- this._peersNeedingInitialSnapshot.delete(remotePeerId);
292
- }
293
- async handleSignalMessage(message) {
294
- if (!this._session || !message || message.sessionId !== this._session.sessionId || message.fromPeerId === this._session.peerId)
295
- return false;
296
- if (message.toPeerId && message.toPeerId !== this._session.peerId)
297
- return false;
298
- if (this._processedSignalIds.has(message.id))
299
- return false;
300
- this._processedSignalIds.add(message.id);
301
- const knownRemoteConnectionId = this._remoteConnectionIds.get(message.fromPeerId);
302
- const isHandshakeMessage = message.type === 'hello' || message.type === 'hello-ack';
303
- if (!isHandshakeMessage) {
304
- if (!knownRemoteConnectionId || knownRemoteConnectionId !== message.connectionId)
305
- return false;
306
- }
307
- switch (message.type) {
308
- case 'hello':
309
- this.rememberRemoteConnection(message.fromPeerId, message.connectionId);
310
- this.updateInitialSnapshotRequest(message.fromPeerId, message.requestInitialSnapshot);
311
- this.sendSignal({
312
- sessionId: this._session.sessionId,
313
- fromPeerId: this._session.peerId,
314
- toPeerId: message.fromPeerId,
315
- type: 'hello-ack',
316
- requestInitialSnapshot: this.shouldRequestInitialSnapshot()
317
- });
318
- if (this.shouldInitiate(message.fromPeerId))
319
- await this.ensureOffer(message.fromPeerId);
320
- else
321
- this.getOrCreatePeerConnection(message.fromPeerId);
322
- return true;
323
- case 'hello-ack':
324
- this.rememberRemoteConnection(message.fromPeerId, message.connectionId);
325
- this.updateInitialSnapshotRequest(message.fromPeerId, message.requestInitialSnapshot);
326
- if (this.shouldInitiate(message.fromPeerId))
327
- await this.ensureOffer(message.fromPeerId);
328
- return true;
329
- case 'offer':
330
- if (message.description)
331
- await this.acceptOffer(message.fromPeerId, message.description);
332
- return true;
333
- case 'answer':
334
- if (message.description)
335
- await this.acceptAnswer(message.fromPeerId, message.description);
336
- return true;
337
- case 'ice':
338
- if (message.candidate)
339
- await this.acceptIceCandidate(message.fromPeerId, message.candidate);
340
- return true;
341
- case 'bye':
342
- this.cleanupPeer(message.fromPeerId, false);
343
- this._remoteConnectionIds.delete(message.fromPeerId);
344
- this._service?.removePeer(message.fromPeerId, 'remote');
345
- return true;
346
- }
347
- }
348
- shouldInitiate(remotePeerId) {
349
- if (!this._session)
350
- return false;
351
- return this._session.peerId.localeCompare(remotePeerId) < 0;
352
- }
353
- getOrCreatePeerConnection(remotePeerId) {
354
- let peerConnection = this._peerConnections.get(remotePeerId);
355
- if (peerConnection)
356
- return peerConnection;
357
- peerConnection = new RTCPeerConnection();
358
- peerConnection.onicecandidate = event => {
359
- if (event.candidate && this._session) {
360
- this.sendSignal({
361
- sessionId: this._session.sessionId,
362
- fromPeerId: this._session.peerId,
363
- toPeerId: remotePeerId,
364
- type: 'ice',
365
- candidate: event.candidate.toJSON()
366
- });
367
- }
368
- };
369
- peerConnection.ondatachannel = event => {
370
- this.registerDataChannel(remotePeerId, event.channel);
371
- };
372
- peerConnection.onconnectionstatechange = () => {
373
- if (peerConnection.connectionState === 'closed' || peerConnection.connectionState === 'failed' || peerConnection.connectionState === 'disconnected') {
374
- this.cleanupPeer(remotePeerId, false);
375
- this._service?.removePeer(remotePeerId, 'remote');
376
- }
377
- };
378
- this._peerConnections.set(remotePeerId, peerConnection);
379
- return peerConnection;
380
- }
381
- async ensureOffer(remotePeerId) {
382
- if (this._initiatedPeers.has(remotePeerId))
383
- return;
384
- const peerConnection = this.getOrCreatePeerConnection(remotePeerId);
385
- this._initiatedPeers.add(remotePeerId);
386
- if (!this._dataChannels.has(remotePeerId)) {
387
- const channel = peerConnection.createDataChannel('web-component-designer-collaboration');
388
- this.registerDataChannel(remotePeerId, channel);
389
- }
390
- const offer = await peerConnection.createOffer();
391
- await peerConnection.setLocalDescription(offer);
392
- if (!this._session)
393
- return;
394
- this.sendSignal({
395
- sessionId: this._session.sessionId,
396
- fromPeerId: this._session.peerId,
397
- toPeerId: remotePeerId,
398
- type: 'offer',
399
- description: peerConnection.localDescription?.toJSON() ?? offer
400
- });
401
- }
402
- async acceptOffer(remotePeerId, description) {
403
- const peerConnection = this.getOrCreatePeerConnection(remotePeerId);
404
- await peerConnection.setRemoteDescription(description);
405
- await this.flushPendingCandidates(remotePeerId);
406
- const answer = await peerConnection.createAnswer();
407
- await peerConnection.setLocalDescription(answer);
408
- if (!this._session)
409
- return;
410
- this.sendSignal({
411
- sessionId: this._session.sessionId,
412
- fromPeerId: this._session.peerId,
413
- toPeerId: remotePeerId,
414
- type: 'answer',
415
- description: peerConnection.localDescription?.toJSON() ?? answer
416
- });
417
- }
418
- async acceptAnswer(remotePeerId, description) {
419
- const peerConnection = this.getOrCreatePeerConnection(remotePeerId);
420
- await peerConnection.setRemoteDescription(description);
421
- await this.flushPendingCandidates(remotePeerId);
422
- }
423
- async acceptIceCandidate(remotePeerId, candidate) {
424
- const peerConnection = this.getOrCreatePeerConnection(remotePeerId);
425
- if (!peerConnection.remoteDescription) {
426
- const pending = this._pendingCandidates.get(remotePeerId) ?? [];
427
- pending.push(candidate);
428
- this._pendingCandidates.set(remotePeerId, pending);
429
- return;
430
- }
431
- await peerConnection.addIceCandidate(candidate);
432
- }
433
- async flushPendingCandidates(remotePeerId) {
434
- const peerConnection = this._peerConnections.get(remotePeerId);
435
- const candidates = this._pendingCandidates.get(remotePeerId);
436
- if (!peerConnection || !candidates?.length)
437
- return;
438
- for (const candidate of candidates)
439
- await peerConnection.addIceCandidate(candidate);
440
- this._pendingCandidates.delete(remotePeerId);
441
- }
442
- registerDataChannel(remotePeerId, channel) {
443
- const previousChannel = this._dataChannels.get(remotePeerId);
444
- if (previousChannel && previousChannel !== channel) {
445
- try {
446
- previousChannel.close();
447
- }
448
- catch {
449
- }
450
- }
451
- channel.onopen = () => {
452
- void this.handleOpenChannel(remotePeerId);
453
- };
454
- channel.onmessage = event => {
455
- void this.handleDataMessage(remotePeerId, event.data);
456
- };
457
- channel.onclose = () => {
458
- if (this._dataChannels.get(remotePeerId) === channel)
459
- this._dataChannels.delete(remotePeerId);
460
- };
461
- this._dataChannels.set(remotePeerId, channel);
462
- }
463
- async handleOpenChannel(remotePeerId) {
464
- if (!this._session || !this._service)
465
- return;
466
- const session = this._session;
467
- const service = this._service;
468
- this._manualSignalingMessages = this._manualSignalingMessages.filter(x => x.toPeerId !== remotePeerId);
469
- const localPeer = service.peers.find(x => x.peerId === session.peerId);
470
- if (localPeer)
471
- await this.sendPresence(localPeer);
472
- const currentSelection = localPeer?.selectedNodeIndexes?.length || localPeer?.activeNodeIndex != null
473
- ? {
474
- peerId: session.peerId,
475
- selectedNodeIndexes: [...(localPeer.selectedNodeIndexes ?? [])],
476
- primaryNodeIndex: localPeer.activeNodeIndex
477
- }
478
- : null;
479
- if (currentSelection)
480
- await this.sendSelection(currentSelection);
481
- if (this._peersNeedingInitialSnapshot.has(remotePeerId)) {
482
- this._peersNeedingInitialSnapshot.delete(remotePeerId);
483
- this.sendData({ type: 'snapshot', snapshot: service.createSnapshot() }, remotePeerId);
484
- for (const comment of service.comments)
485
- this.sendData({ type: 'comment-upsert', comment }, remotePeerId);
486
- }
487
- }
488
- async handleDataMessage(remotePeerId, rawData) {
489
- if (!this._service)
490
- return;
491
- const message = JSON.parse(rawData);
492
- switch (message.type) {
493
- case 'snapshot':
494
- await this._service.applyRemoteSnapshot(message.snapshot);
495
- break;
496
- case 'change':
497
- await this._service.applyRemoteChange(message.change, message.snapshot);
498
- break;
499
- case 'selection':
500
- this._service.updateRemoteSelection(remotePeerId, message.selection.selectedNodeIndexes ?? [], message.selection.primaryNodeIndex);
501
- break;
502
- case 'presence':
503
- this._service.updatePeerPresence({ ...message.peer, peerId: remotePeerId }, 'remote');
504
- break;
505
- case 'comment-upsert':
506
- this._service.upsertComment(message.comment, 'remote');
507
- break;
508
- case 'comment-remove':
509
- this._service.removeComment(message.commentId, 'remote');
510
- break;
511
- }
512
- }
513
- sendSignal(message, options) {
514
- if (!this._localConnectionId)
515
- return;
516
- const signal = {
517
- ...message,
518
- id: createRandomId(),
519
- createdAt: Date.now(),
520
- connectionId: this._localConnectionId
521
- };
522
- this._processedSignalIds.add(signal.id);
523
- const includeBroadcast = options?.includeBroadcast ?? this._enabledSignalingChannels.has('broadcast-channel');
524
- if (includeBroadcast)
525
- this._broadcastSignalingChannel?.postMessage(signal);
526
- const includeManual = options?.includeManual ?? this._enabledSignalingChannels.has('manual');
527
- if (includeManual && signal.type !== 'bye')
528
- this.enqueueManualSignal(signal);
529
- }
530
- enqueueManualSignal(signal) {
531
- if (signal.type === 'hello')
532
- this._manualSignalingMessages = this._manualSignalingMessages.filter(x => x.type !== 'hello');
533
- else if (signal.type === 'hello-ack' || signal.type === 'offer' || signal.type === 'answer')
534
- this._manualSignalingMessages = this._manualSignalingMessages.filter(x => !(x.type === signal.type && x.toPeerId === signal.toPeerId));
535
- this._manualSignalingMessages.push(cloneSignalingMessage(signal));
536
- }
537
- sendData(message, remotePeerId) {
538
- const payload = JSON.stringify(message);
539
- for (const [peerId, channel] of this._dataChannels) {
540
- if (remotePeerId && peerId !== remotePeerId)
541
- continue;
542
- if (channel.readyState === 'open')
543
- channel.send(payload);
544
- }
545
- }
546
- cleanupPeer(remotePeerId, clearInitialSnapshotState = true) {
547
- const dataChannel = this._dataChannels.get(remotePeerId);
548
- if (dataChannel) {
549
- try {
550
- dataChannel.close();
551
- }
552
- catch {
553
- }
554
- this._dataChannels.delete(remotePeerId);
555
- }
556
- const peerConnection = this._peerConnections.get(remotePeerId);
557
- if (peerConnection) {
558
- try {
559
- peerConnection.close();
560
- }
561
- catch {
562
- }
563
- this._peerConnections.delete(remotePeerId);
564
- }
565
- this._initiatedPeers.delete(remotePeerId);
566
- if (clearInitialSnapshotState)
567
- this._peersNeedingInitialSnapshot.delete(remotePeerId);
568
- this._pendingCandidates.delete(remotePeerId);
569
- }
570
- }
571
- //# sourceMappingURL=WebRtcTabCollaborationTransport.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebRtcTabCollaborationTransport.js","sourceRoot":"","sources":["../../../../src/elements/services/collaborationService/WebRtcTabCollaborationTransport.ts"],"names":[],"mappings":"AAkDA,MAAM,CAAC,MAAM,8CAA8C,GAA0D,CAAC,mBAAmB,EAAE,QAAQ,CAAC,CAAC;AAErJ,SAAS,cAAc;IACrB,OAAO,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,EAAE,IAAI,cAAc,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED,SAAS,8BAA8B,CAAC,QAAgE;IACtG,IAAI,QAAQ,IAAI,IAAI;QAClB,OAAO,IAAI,GAAG,CAA6C,8CAA8C,CAAC,CAAC;IAE7G,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,EAAyD,EAAE,CACvG,OAAO,KAAK,mBAAmB,IAAI,OAAO,KAAK,QAAQ,CAAC,CAAC;IAC3D,OAAO,IAAI,GAAG,CAA6C,aAAa,CAAC,CAAC;AAC5E,CAAC;AAED,SAAS,YAAY,CAAI,KAAa,EAAE,MAAc;IACpD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI;QAC5B,OAAO,KAAK,CAAC;IAEf,KAAK,MAAM,KAAK,IAAI,KAAK,EAAE,CAAC;QAC1B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC;YACpB,OAAO,KAAK,CAAC;IACjB,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAyB;IACtD,OAAO;QACL,GAAG,OAAO;QACV,WAAW,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,SAAS;QACzE,SAAS,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,SAAS;KACpE,CAAC;AACJ,CAAC;AAED,SAAS,sBAAsB,CAAC,SAAiB;IAC/C,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf,KAAK,IAAI;YACP,OAAO,KAAK,CAAC;QACf;YACE,OAAO,MAAM,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;IACzE,CAAC;AACH,CAAC;AAED,SAAS,uCAAuC,CAAC,IAAY;IAC3D,IAAI,UAAU,GAAG,EAAE,CAAC;IACpB,IAAI,QAAQ,GAAG,KAAK,CAAC;IACrB,IAAI,SAAS,GAAG,KAAK,CAAC;IAEtB,KAAK,MAAM,SAAS,IAAI,IAAI,EAAE,CAAC;QAC7B,IAAI,QAAQ,EAAE,CAAC;YACb,IAAI,SAAS,EAAE,CAAC;gBACd,UAAU,IAAI,SAAS,CAAC;gBACxB,SAAS,GAAG,KAAK,CAAC;gBAClB,SAAS;YACX,CAAC;YAED,IAAI,SAAS,KAAK,IAAI,EAAE,CAAC;gBACvB,UAAU,IAAI,SAAS,CAAC;gBACxB,SAAS,GAAG,IAAI,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,IAAI,SAAS,KAAK,GAAG,EAAE,CAAC;gBACtB,UAAU,IAAI,SAAS,CAAC;gBACxB,QAAQ,GAAG,KAAK,CAAC;gBACjB,SAAS;YACX,CAAC;YAED,IAAI,SAAS,GAAG,GAAG,EAAE,CAAC;gBACpB,UAAU,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAC;gBAChD,SAAS;YACX,CAAC;YAED,UAAU,IAAI,SAAS,CAAC;YACxB,SAAS;QACX,CAAC;QAED,UAAU,IAAI,SAAS,CAAC;QACxB,IAAI,SAAS,KAAK,GAAG;YACnB,QAAQ,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,8BAA8B,CAAC,IAAY;IAClD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAiC,CAAC;IAC1D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,cAAc,GAAG,uCAAuC,CAAC,IAAI,CAAC,CAAC;QACrE,IAAI,cAAc,KAAK,IAAI;YACzB,MAAM,KAAK,CAAC;QAEd,OAAO,IAAI,CAAC,KAAK,CAAC,cAAc,CAAiC,CAAC;IACpE,CAAC;AACH,CAAC;AAED,MAAM,OAAO,+BAA+B;IAClC,QAAQ,GAAiC,IAAI,CAAC;IAC9C,QAAQ,GAAiC,IAAI,CAAC;IAC9C,0BAA0B,GAA4B,IAAI,CAAC;IAC3D,yBAAyB,GAAG,8BAA8B,EAAE,CAAC;IAC7D,wBAAwB,GAAuB,EAAE,CAAC;IAClD,gBAAgB,GAAG,IAAI,GAAG,EAA6B,CAAC;IACxD,aAAa,GAAG,IAAI,GAAG,EAA0B,CAAC;IAClD,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,4BAA4B,GAAG,IAAI,GAAG,EAAU,CAAC;IACjD,kBAAkB,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC9D,mBAAmB,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,oBAAoB,GAAG,IAAI,GAAG,EAAkB,CAAC;IACjD,kBAAkB,GAAkB,IAAI,CAAC;IAEjD,YAAY,OAAgD;QAC1D,IAAI,CAAC,yBAAyB,GAAG,8BAA8B,CAAC,OAAO,EAAE,wBAAwB,CAAC,CAAC;IACrG,CAAC;IAED,IAAI,wBAAwB;QAC1B,OAAO,CAAC,GAAG,IAAI,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED,2BAA2B,CAAC,QAA+D;QACzF,MAAM,YAAY,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,YAAY,CAAC,IAAI,CAAC,yBAAyB,EAAE,YAAY,CAAC;YAC5D,OAAO;QAET,IAAI,CAAC,yBAAyB,GAAG,YAAY,CAAC;QAC9C,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,4BAA4B,EAAE,EAAE,CAAC;YACzD,IAAI,CAAC,UAAU,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAChC,IAAI,EAAE,OAAO;gBACb,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE;aAC5D,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,wBAAwB;QACtB,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC5C,OAAO,IAAI,CAAC;QAEd,OAAO;YACL,OAAO,EAAE,CAAC;YACV,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;YAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAChC,YAAY,EAAE,IAAI,CAAC,kBAAkB;YACrC,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,QAAQ,EAAE,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,qBAAqB,CAAC;SACnE,CAAC;IACJ,CAAC;IAED,yBAAyB,CAAC,QAAgB,CAAC;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,wBAAwB,EAAE,CAAC;QAC/C,OAAO,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,yBAAyB,CAAC,IAA2C;QACzE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QAEvE,MAAM,MAAM,GAAG,OAAO,IAAI,KAAK,QAAQ;YACrC,CAAC,CAAC,8BAA8B,CAAC,IAAI,CAAC;YACtC,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;QAE3D,IAAI,MAAM,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS;YAC9C,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,CAAC,SAAS,iCAAiC,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,CAAC,CAAC;QAElI,IAAI,aAAa,GAAG,CAAC,CAAC;QACtB,IAAI,YAAY,GAAG,CAAC,CAAC;QAErB,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;YACtC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,YAAY,EAAE,CAAC;gBACf,SAAS;YACX,CAAC;YAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,OAAO;gBACT,aAAa,EAAE,CAAC;;gBAEhB,YAAY,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA8B;QACzC,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;IAC1B,CAAC;IAED,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAA8B;QAC1C,IAAI,OAAO,iBAAiB,KAAK,WAAW,EAAE,CAAC;YAC7C,OAAO,CAAC,IAAI,CAAC,wDAAwD,CAAC,CAAC;YACvE,OAAO;QACT,CAAC;QAED,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,kBAAkB,GAAG,cAAc,EAAE,CAAC;QAC3C,IAAI,CAAC,2BAA2B,EAAE,CAAC;QAEnC,IAAI,CAAC,IAAI,CAAC,4BAA4B,EAAE;YACtC,OAAO,CAAC,IAAI,CAAC,oGAAoG,CAAC,CAAC;QAErH,IAAI,CAAC,UAAU,CAAC;YACd,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,UAAU,EAAE,OAAO,CAAC,MAAM;YAC1B,IAAI,EAAE,OAAO;YACb,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE;SAC5D,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,UAAU,CAAC;gBACd,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;gBAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;gBAChC,IAAI,EAAE,KAAK;aACZ,EAAE,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAC;QAC/B,CAAC;QAED,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;YACpC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;YACxC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;QACzC,CAAC;QAED,KAAK,MAAM,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,CAAC;YAClD,IAAI,CAAC;gBACH,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,CAAC;YAAC,MAAM,CAAC;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAE3B,KAAK,MAAM,cAAc,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,EAAE,CAAC;YAC5D,IAAI,CAAC;gBACH,cAAc,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;YACT,CAAC;QACH,CAAC;QACD,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,CAAC;QAC9B,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,CAAC;QAChC,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,CAAC;QAC7B,IAAI,CAAC,4BAA4B,CAAC,KAAK,EAAE,CAAC;QAC1C,IAAI,CAAC,wBAAwB,GAAG,EAAE,CAAC;QACnC,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,CAAC;QACjC,IAAI,CAAC,oBAAoB,CAAC,KAAK,EAAE,CAAC;QAClC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAkC,EAAE,QAAwC;QAC3F,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,SAAwF;QAC1G,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,IAA4I;QAC7J,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAgE;QAChF,IAAI,MAAM,CAAC,OAAO;YAChB,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC;aAChE,IAAI,MAAM,CAAC,SAAS;YACvB,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC;IAC3E,CAAC;IAEO,2BAA2B;QACjC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE,CAAC;YAC1H,IAAI,IAAI,CAAC,0BAA0B,EAAE,CAAC;gBACpC,IAAI,CAAC,0BAA0B,CAAC,KAAK,EAAE,CAAC;gBACxC,IAAI,CAAC,0BAA0B,GAAG,IAAI,CAAC;YACzC,CAAC;YACD,OAAO;QACT,CAAC;QAED,IAAI,IAAI,CAAC,0BAA0B;YACjC,OAAO;QAET,IAAI,CAAC,0BAA0B,GAAG,IAAI,gBAAgB,CAAC,cAAc,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC;QAChG,IAAI,CAAC,0BAA0B,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;YAClD,KAAK,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,IAAwB,CAAC,CAAC;QAChE,CAAC,CAAC;IACJ,CAAC;IAEO,4BAA4B;QAClC,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC;eAC9C,CAAC,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,mBAAmB,CAAC,IAAI,OAAO,gBAAgB,KAAK,WAAW,CAAC,CAAC;IAC5G,CAAC;IAEO,kBAAkB,CAAC,OAAkC;QAC3D,IAAI,CAAC,OAAO;YACV,OAAO,KAAK,CAAC;QAEf,OAAO,OAAO,OAAO,CAAC,EAAE,KAAK,QAAQ;eAChC,OAAO,OAAO,CAAC,YAAY,KAAK,QAAQ;eACxC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;eACrC,OAAO,OAAO,CAAC,SAAS,KAAK,QAAQ;eACrC,OAAO,OAAO,CAAC,UAAU,KAAK,QAAQ;eACtC,CAAC,OAAO,CAAC,sBAAsB,IAAI,IAAI,IAAI,OAAO,OAAO,CAAC,sBAAsB,KAAK,SAAS,CAAC;eAC/F,CAAC,OAAO,CAAC,IAAI,KAAK,OAAO;mBACvB,OAAO,CAAC,IAAI,KAAK,WAAW;mBAC5B,OAAO,CAAC,IAAI,KAAK,OAAO;mBACxB,OAAO,CAAC,IAAI,KAAK,QAAQ;mBACzB,OAAO,CAAC,IAAI,KAAK,KAAK;mBACtB,OAAO,CAAC,IAAI,KAAK,KAAK,CAAC,CAAC;IACjC,CAAC;IAEO,wBAAwB,CAAC,YAAoB,EAAE,YAAoB;QACzE,MAAM,oBAAoB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzE,IAAI,oBAAoB,KAAK,YAAY;YACvC,OAAO;QAET,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;QACtC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC;IAC5D,CAAC;IAEO,4BAA4B;QAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,CAAC;QACjD,OAAO,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IACjC,CAAC;IAEO,4BAA4B,CAAC,YAAoB,EAAE,sBAAgC;QACzF,IAAI,sBAAsB;YACxB,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;;YAEpD,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC3D,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,OAAyB;QACzD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,SAAS,IAAI,OAAO,CAAC,UAAU,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC5H,OAAO,KAAK,CAAC;QAEf,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM;YAC/D,OAAO,KAAK,CAAC;QAEf,IAAI,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEzC,MAAM,uBAAuB,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAClF,MAAM,kBAAkB,GAAG,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,IAAI,KAAK,WAAW,CAAC;QACpF,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,IAAI,CAAC,uBAAuB,IAAI,uBAAuB,KAAK,OAAO,CAAC,YAAY;gBAC9E,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,OAAO;gBACV,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBACtF,IAAI,CAAC,UAAU,CAAC;oBACd,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;oBAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAChC,QAAQ,EAAE,OAAO,CAAC,UAAU;oBAC5B,IAAI,EAAE,WAAW;oBACjB,sBAAsB,EAAE,IAAI,CAAC,4BAA4B,EAAE;iBAC5D,CAAC,CAAC;gBACH,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;oBAE3C,IAAI,CAAC,yBAAyB,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC;YACd,KAAK,WAAW;gBACd,IAAI,CAAC,wBAAwB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,YAAY,CAAC,CAAC;gBACxE,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,sBAAsB,CAAC,CAAC;gBACtF,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,UAAU,CAAC;oBACzC,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC7C,OAAO,IAAI,CAAC;YACd,KAAK,OAAO;gBACV,IAAI,OAAO,CAAC,WAAW;oBACrB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC;YACd,KAAK,QAAQ;gBACX,IAAI,OAAO,CAAC,WAAW;oBACrB,MAAM,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;gBACnE,OAAO,IAAI,CAAC;YACd,KAAK,KAAK;gBACR,IAAI,OAAO,CAAC,SAAS;oBACnB,MAAM,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;gBACvE,OAAO,IAAI,CAAC;YACd,KAAK,KAAK;gBACR,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;gBAC5C,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;gBACrD,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;gBACxD,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC;IAEO,cAAc,CAAC,YAAoB;QACzC,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,OAAO,KAAK,CAAC;QACf,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;IAC9D,CAAC;IAEO,yBAAyB,CAAC,YAAoB;QACpD,IAAI,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,cAAc;YAChB,OAAO,cAAc,CAAC;QAExB,cAAc,GAAG,IAAI,iBAAiB,EAAE,CAAC;QACzC,cAAc,CAAC,cAAc,GAAG,KAAK,CAAC,EAAE;YACtC,IAAI,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACrC,IAAI,CAAC,UAAU,CAAC;oBACd,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;oBAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;oBAChC,QAAQ,EAAE,YAAY;oBACtB,IAAI,EAAE,KAAK;oBACX,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,MAAM,EAAE;iBACpC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;QACF,cAAc,CAAC,aAAa,GAAG,KAAK,CAAC,EAAE;YACrC,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,cAAc,CAAC,uBAAuB,GAAG,GAAG,EAAE;YAC5C,IAAI,cAAc,CAAC,eAAe,KAAK,QAAQ,IAAI,cAAc,CAAC,eAAe,KAAK,QAAQ,IAAI,cAAc,CAAC,eAAe,KAAK,cAAc,EAAE,CAAC;gBACpJ,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;gBACtC,IAAI,CAAC,QAAQ,EAAE,UAAU,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEF,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,EAAE,cAAc,CAAC,CAAC;QACxD,OAAO,cAAc,CAAC;IACxB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,YAAoB;QAC5C,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC;YACxC,OAAO;QAET,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAEvC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YAC1C,MAAM,OAAO,GAAG,cAAc,CAAC,iBAAiB,CAAC,sCAAsC,CAAC,CAAC;YACzF,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClD,CAAC;QAED,MAAM,KAAK,GAAG,MAAM,cAAc,CAAC,WAAW,EAAE,CAAC;QACjD,MAAM,cAAc,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,OAAO;QACT,IAAI,CAAC,UAAU,CAAC;YACd,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;YAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAChC,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,KAAK;SAChE,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,YAAoB,EAAE,WAAsC;QACpF,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,cAAc,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;QAChD,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,YAAY,EAAE,CAAC;QACnD,MAAM,cAAc,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,OAAO;QACT,IAAI,CAAC,UAAU,CAAC;YACd,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS;YAClC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;YAChC,QAAQ,EAAE,YAAY;YACtB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,cAAc,CAAC,gBAAgB,EAAE,MAAM,EAAE,IAAI,MAAM;SACjE,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,YAAY,CAAC,YAAoB,EAAE,WAAsC;QACrF,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACpE,MAAM,cAAc,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC;QACvD,MAAM,IAAI,CAAC,sBAAsB,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAAC,YAAoB,EAAE,SAA8B;QACnF,MAAM,cAAc,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,CAAC,CAAC;QACpE,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YACtC,MAAM,OAAO,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YACxB,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;YACnD,OAAO;QACT,CAAC;QAED,MAAM,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAEO,KAAK,CAAC,sBAAsB,CAAC,YAAoB;QACvD,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,CAAC,cAAc,IAAI,CAAC,UAAU,EAAE,MAAM;YACxC,OAAO;QAET,KAAK,MAAM,SAAS,IAAI,UAAU;YAChC,MAAM,cAAc,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;QAElD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;IAEO,mBAAmB,CAAC,YAAoB,EAAE,OAAuB;QACvE,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC7D,IAAI,eAAe,IAAI,eAAe,KAAK,OAAO,EAAE,CAAC;YACnD,IAAI,CAAC;gBACH,eAAe,CAAC,KAAK,EAAE,CAAC;YAC1B,CAAC;YAAC,MAAM,CAAC;YACT,CAAC;QACH,CAAC;QAED,OAAO,CAAC,MAAM,GAAG,GAAG,EAAE;YACpB,KAAK,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC,CAAC;QACF,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,EAAE;YAC1B,KAAK,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACxD,CAAC,CAAC;QACF,OAAO,CAAC,OAAO,GAAG,GAAG,EAAE;YACrB,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,KAAK,OAAO;gBAClD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC,CAAC;QAEF,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;IAChD,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,YAAoB;QAClD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ;YAClC,OAAO;QAET,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAE9B,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,YAAY,CAAC,CAAC;QAEvG,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;QACvE,IAAI,SAAS;YACX,MAAM,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAErC,MAAM,gBAAgB,GAAG,SAAS,EAAE,mBAAmB,EAAE,MAAM,IAAI,SAAS,EAAE,eAAe,IAAI,IAAI;YACnG,CAAC,CAAC;gBACE,MAAM,EAAE,OAAO,CAAC,MAAM;gBACtB,mBAAmB,EAAE,CAAC,GAAG,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;gBAC/D,gBAAgB,EAAE,SAAS,CAAC,eAAe;aAC5C;YACH,CAAC,CAAC,IAAI,CAAC;QAET,IAAI,gBAAgB;YAClB,MAAM,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC;YACxD,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACvD,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,cAAc,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;YACtF,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ;gBACpC,IAAI,CAAC,QAAQ,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,OAAO,EAAE,EAAE,YAAY,CAAC,CAAC;QACrE,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,iBAAiB,CAAC,YAAoB,EAAE,OAAe;QACnE,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,OAAO;QAET,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAgB,CAAC;QAEnD,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;YACrB,KAAK,UAAU;gBACb,MAAM,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;gBAC1D,MAAM;YACR,KAAK,QAAQ;gBACX,MAAM,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;gBACxE,MAAM;YACR,KAAK,WAAW;gBACd,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,CAAC,SAAS,CAAC,mBAAmB,IAAI,EAAE,EAAE,OAAO,CAAC,SAAS,CAAC,gBAAgB,CAAC,CAAC;gBACnI,MAAM;YACR,KAAK,UAAU;gBACb,IAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,EAAE,QAAQ,CAAC,CAAC;gBACtF,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBACvD,MAAM;YACR,KAAK,gBAAgB;gBACnB,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;gBACzD,MAAM;QACV,CAAC;IACH,CAAC;IAEO,UAAU,CAChB,OAAoE,EACpE,OAAkE;QAElE,IAAI,CAAC,IAAI,CAAC,kBAAkB;YAC1B,OAAO;QAET,MAAM,MAAM,GAAqB;YAC/B,GAAG,OAAO;YACV,EAAE,EAAE,cAAc,EAAE;YACpB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;YACrB,YAAY,EAAE,IAAI,CAAC,kBAAkB;SACtC,CAAC;QAEF,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAExC,MAAM,gBAAgB,GAAG,OAAO,EAAE,gBAAgB,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAC9G,IAAI,gBAAgB;YAClB,IAAI,CAAC,0BAA0B,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,aAAa,GAAG,OAAO,EAAE,aAAa,IAAI,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC7F,IAAI,aAAa,IAAI,MAAM,CAAC,IAAI,KAAK,KAAK;YACxC,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;IACrC,CAAC;IAEO,mBAAmB,CAAC,MAAwB;QAClD,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO;YACzB,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;aAC3F,IAAI,MAAM,CAAC,IAAI,KAAK,WAAW,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ;YACzF,IAAI,CAAC,wBAAwB,GAAG,IAAI,CAAC,wBAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QAEzI,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC,CAAC;IACpE,CAAC;IAEO,QAAQ,CAAC,OAAoB,EAAE,YAAqB;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACxC,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACnD,IAAI,YAAY,IAAI,MAAM,KAAK,YAAY;gBACzC,SAAS;YACX,IAAI,OAAO,CAAC,UAAU,KAAK,MAAM;gBAC/B,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,YAAoB,EAAE,4BAAqC,IAAI;QACjF,MAAM,WAAW,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,WAAW,EAAE,CAAC;YAChB,IAAI,CAAC;gBACH,WAAW,CAAC,KAAK,EAAE,CAAC;YACtB,CAAC;YAAC,MAAM,CAAC;YACT,CAAC;YACD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QAC/D,IAAI,cAAc,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,cAAc,CAAC,KAAK,EAAE,CAAC;YACzB,CAAC;YAAC,MAAM,CAAC;YACT,CAAC;YACD,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,yBAAyB;YAC3B,IAAI,CAAC,4BAA4B,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IAC/C,CAAC;CACF"}
@@ -1,9 +0,0 @@
1
- import { IContentService } from './IContentService.js';
2
- import { IContentChanged } from './IContentChanged';
3
- import { IDesignItem } from '../../item/IDesignItem.js';
4
- import { TypedEvent } from '@node-projects/base-custom-webcomponent';
5
- export declare class ContentService implements IContentService {
6
- constructor(rootElement: IDesignItem);
7
- readonly rootDesignItem: IDesignItem;
8
- readonly onContentChanged: TypedEvent<IContentChanged>;
9
- }
@@ -1,9 +0,0 @@
1
- import { TypedEvent } from '@node-projects/base-custom-webcomponent';
2
- export class ContentService {
3
- constructor(rootElement) {
4
- this.rootDesignItem = rootElement;
5
- }
6
- rootDesignItem;
7
- onContentChanged = new TypedEvent();
8
- }
9
- //# sourceMappingURL=ContentService.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ContentService.js","sourceRoot":"","sources":["../../../../src/elements/services/contentService/ContentService.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAErE,MAAM,OAAO,cAAc;IAExB,YAAY,WAAwB;QACjC,IAAI,CAAC,cAAc,GAAG,WAAW,CAAC;IACrC,CAAC;IAEQ,cAAc,CAAc;IAE5B,gBAAgB,GAAG,IAAI,UAAU,EAAmB,CAAC;CAChE"}
@@ -1,10 +0,0 @@
1
- import { IDesignItem } from "../../item/IDesignItem.js";
2
- interface IContentChangedParsed {
3
- changeType: 'parsed';
4
- }
5
- interface IContentChangedWithDesignItems {
6
- changeType: "added" | "removed" | "moved" | "changed";
7
- designItems: IDesignItem[];
8
- }
9
- export type IContentChanged = IContentChangedParsed | IContentChangedWithDesignItems;
10
- export {};
@@ -1,12 +0,0 @@
1
- export {};
2
- /*
3
- export function doesContentChangeAffectDesignItems(change: IContentChanged, designItems: IDesignItem[] | null | undefined): boolean {
4
- if (!designItems?.length)
5
- return false;
6
-
7
- if (change.changeType === 'parsed')
8
- return true;
9
-
10
- return change.designItems.some(item => designItems.includes(item));
11
- }*/
12
- //# sourceMappingURL=IContentChanged.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"IContentChanged.js","sourceRoot":"","sources":["../../../../src/elements/services/contentService/IContentChanged.ts"],"names":[],"mappings":";AAaA;;;;;;;;;GASG"}
@@ -1,7 +0,0 @@
1
- import { IContentChanged } from './IContentChanged.js';
2
- import { IDesignItem } from '../../item/IDesignItem.js';
3
- import { TypedEvent } from '@node-projects/base-custom-webcomponent';
4
- export interface IContentService {
5
- readonly onContentChanged: TypedEvent<IContentChanged>;
6
- readonly rootDesignItem: IDesignItem;
7
- }