kritzel-stencil 0.0.172 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (407) hide show
  1. package/dist/cjs/app-globals-V2Kpy_OQ.js +0 -3
  2. package/dist/cjs/{default-line-tool.config-JuTDR6PF.js → default-line-tool.config-SdMGkNhv.js} +1570 -207
  3. package/dist/cjs/index-BeKMS-Zt.js +3280 -0
  4. package/dist/cjs/index.cjs.js +10 -7
  5. package/dist/cjs/kritzel-brush-style.cjs.entry.js +3 -4
  6. package/dist/cjs/kritzel-color_22.cjs.entry.js +167 -110
  7. package/dist/cjs/loader.cjs.js +2 -3
  8. package/dist/cjs/stencil.cjs.js +3 -4
  9. package/dist/collection/classes/core/core.class.js +0 -1
  10. package/dist/collection/classes/core/reviver.class.js +0 -1
  11. package/dist/collection/classes/core/store.class.js +0 -1
  12. package/dist/collection/classes/core/viewport.class.js +0 -1
  13. package/dist/collection/classes/core/workspace.class.js +0 -1
  14. package/dist/collection/classes/handlers/base.handler.js +0 -1
  15. package/dist/collection/classes/handlers/context-menu.handler.js +0 -1
  16. package/dist/collection/classes/handlers/hover.handler.js +0 -1
  17. package/dist/collection/classes/handlers/key.handler.js +0 -1
  18. package/dist/collection/classes/handlers/line-handle.handler.js +0 -1
  19. package/dist/collection/classes/handlers/move.handler.js +6 -1
  20. package/dist/collection/classes/handlers/resize.handler.js +0 -1
  21. package/dist/collection/classes/handlers/rotation.handler.js +0 -1
  22. package/dist/collection/classes/handlers/selection.handler.js +0 -1
  23. package/dist/collection/classes/managers/anchor.manager.js +0 -1
  24. package/dist/collection/classes/managers/cursor.manager.js +0 -1
  25. package/dist/collection/classes/objects/base-object.class.js +0 -1
  26. package/dist/collection/classes/objects/custom-element.class.js +0 -1
  27. package/dist/collection/classes/objects/group.class.js +0 -1
  28. package/dist/collection/classes/objects/image.class.js +0 -1
  29. package/dist/collection/classes/objects/line.class.js +62 -16
  30. package/dist/collection/classes/objects/path.class.js +0 -1
  31. package/dist/collection/classes/objects/selection-box.class.js +0 -1
  32. package/dist/collection/classes/objects/selection-group.class.js +0 -1
  33. package/dist/collection/classes/objects/shape.class.js +0 -1
  34. package/dist/collection/classes/objects/text.class.js +0 -1
  35. package/dist/collection/classes/providers/broadcast-sync-provider.class.js +0 -1
  36. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js +0 -1
  37. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js +0 -1
  38. package/dist/collection/classes/providers/websocket-sync-provider.class.js +0 -1
  39. package/dist/collection/classes/registries/icon-registry.class.js +0 -1
  40. package/dist/collection/classes/registries/tool.registry.js +0 -1
  41. package/dist/collection/classes/structures/app-state-map.structure.js +0 -1
  42. package/dist/collection/classes/structures/object-map.structure.js +0 -1
  43. package/dist/collection/classes/structures/quadtree.structure.js +0 -1
  44. package/dist/collection/classes/tools/base-tool.class.js +0 -1
  45. package/dist/collection/classes/tools/brush-tool.class.js +0 -1
  46. package/dist/collection/classes/tools/eraser-tool.class.js +0 -1
  47. package/dist/collection/classes/tools/image-tool.class.js +0 -1
  48. package/dist/collection/classes/tools/line-tool.class.js +0 -1
  49. package/dist/collection/classes/tools/selection-tool.class.js +0 -1
  50. package/dist/collection/classes/tools/shape-tool.class.js +0 -1
  51. package/dist/collection/classes/tools/text-tool.class.js +0 -1
  52. package/dist/collection/collection-manifest.json +2 -2
  53. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js +0 -1
  54. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js +1 -2
  55. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js +3 -4
  56. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js +0 -1
  57. package/dist/collection/components/shared/kritzel-color/kritzel-color.js +0 -1
  58. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js +8 -3
  59. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.css +8 -20
  60. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js +1 -2
  61. package/dist/collection/components/shared/kritzel-font/kritzel-font.js +0 -1
  62. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js +0 -1
  63. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js +8 -3
  64. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js +0 -1
  65. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js +0 -1
  66. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js +0 -1
  67. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js +0 -1
  68. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js +0 -1
  69. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js +0 -1
  70. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js +0 -1
  71. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js +0 -1
  72. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js +0 -1
  73. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js +1 -2
  74. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.css +66 -0
  75. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js +66 -45
  76. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js +1 -2
  77. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js +0 -1
  78. package/dist/collection/configs/default-brush-tool.config.js +0 -1
  79. package/dist/collection/configs/default-engine-config.js +0 -1
  80. package/dist/collection/configs/default-line-tool.config.js +0 -1
  81. package/dist/collection/configs/default-shape-tool.config.js +0 -1
  82. package/dist/collection/configs/default-sync.config.js +0 -1
  83. package/dist/collection/configs/default-text-tool.config.js +0 -1
  84. package/dist/collection/constants/core.constants.js +0 -1
  85. package/dist/collection/constants/engine.constants.js +0 -1
  86. package/dist/collection/enums/event-button.enum.js +0 -1
  87. package/dist/collection/enums/handle-type.enum.js +0 -1
  88. package/dist/collection/enums/shape-type.enum.js +0 -1
  89. package/dist/collection/helpers/class.helper.js +0 -1
  90. package/dist/collection/helpers/cursor.helper.js +0 -1
  91. package/dist/collection/helpers/devices.helper.js +0 -1
  92. package/dist/collection/helpers/event.helper.js +0 -1
  93. package/dist/collection/helpers/geometry.helper.js +0 -1
  94. package/dist/collection/helpers/html.helper.js +0 -1
  95. package/dist/collection/helpers/keyboard.helper.js +0 -1
  96. package/dist/collection/helpers/math.helper.js +0 -1
  97. package/dist/collection/helpers/object.helper.js +0 -1
  98. package/dist/collection/index.js +0 -1
  99. package/dist/collection/interfaces/anchor.interface.js +0 -1
  100. package/dist/collection/interfaces/arrow-head.interface.js +0 -1
  101. package/dist/collection/interfaces/bounding-box.interface.js +0 -1
  102. package/dist/collection/interfaces/clonable.interface.js +0 -1
  103. package/dist/collection/interfaces/context-menu-item.interface.js +0 -1
  104. package/dist/collection/interfaces/debug-info.interface.js +0 -1
  105. package/dist/collection/interfaces/engine-state.interface.js +0 -1
  106. package/dist/collection/interfaces/line-options.interface.js +0 -1
  107. package/dist/collection/interfaces/menu-item.interface.js +0 -1
  108. package/dist/collection/interfaces/object.interface.js +0 -1
  109. package/dist/collection/interfaces/path-options.interface.js +0 -1
  110. package/dist/collection/interfaces/point.interface.js +0 -1
  111. package/dist/collection/interfaces/polygon.interface.js +0 -1
  112. package/dist/collection/interfaces/selection-state.interface.js +0 -1
  113. package/dist/collection/interfaces/serializable.interface.js +0 -1
  114. package/dist/collection/interfaces/shortcut.interface.js +0 -1
  115. package/dist/collection/interfaces/sync-config.interface.js +0 -1
  116. package/dist/collection/interfaces/sync-provider.interface.js +0 -1
  117. package/dist/collection/interfaces/tool.interface.js +0 -1
  118. package/dist/collection/interfaces/toolbar-control.interface.js +0 -1
  119. package/dist/collection/interfaces/undo-state.interface.js +0 -1
  120. package/dist/collection/types/deep-readonly.type.js +0 -1
  121. package/dist/collection/types/state.types.js +0 -1
  122. package/dist/components/index.d.ts +1 -0
  123. package/dist/components/index.js +1 -1477
  124. package/dist/components/kritzel-brush-style.js +1 -67
  125. package/dist/components/kritzel-color-palette.js +1 -9
  126. package/dist/components/kritzel-color.js +1 -9
  127. package/dist/components/kritzel-context-menu.js +1 -9
  128. package/dist/components/kritzel-control-brush-config.js +1 -9
  129. package/dist/components/kritzel-control-text-config.js +1 -9
  130. package/dist/components/kritzel-controls.js +1 -9
  131. package/dist/components/kritzel-cursor-trail.js +1 -9
  132. package/dist/components/kritzel-dropdown.js +1 -9
  133. package/dist/components/kritzel-editor.js +1 -605
  134. package/dist/components/kritzel-engine.js +1 -9
  135. package/dist/components/kritzel-font-family.js +1 -9
  136. package/dist/components/kritzel-font-size.js +1 -9
  137. package/dist/components/kritzel-font.js +1 -9
  138. package/dist/components/kritzel-icon.js +1 -9
  139. package/dist/components/kritzel-menu-item.js +1 -9
  140. package/dist/components/kritzel-menu.js +1 -9
  141. package/dist/components/kritzel-portal.js +1 -9
  142. package/dist/components/kritzel-split-button.js +1 -9
  143. package/dist/components/kritzel-stroke-size.js +1 -9
  144. package/dist/components/kritzel-tooltip.js +1 -9
  145. package/dist/components/kritzel-utility-panel.js +1 -9
  146. package/dist/components/kritzel-workspace-manager.js +1 -9
  147. package/dist/components/p-1z-ds26_.js +1 -0
  148. package/dist/components/p-4FEa4ADy.js +1 -0
  149. package/dist/components/p-B0kd2rUI.js +1 -16
  150. package/dist/components/p-BXaWhpO2.js +1 -0
  151. package/dist/components/p-Bj_Og27M.js +1 -0
  152. package/dist/components/p-BtuXeItZ.js +1 -0
  153. package/dist/components/p-C-d2IH4v.js +1 -0
  154. package/dist/components/p-C3UriJh7.js +1 -0
  155. package/dist/components/p-C4krHoUl.js +1 -0
  156. package/dist/components/p-C6qB08BS.js +1 -68
  157. package/dist/components/p-CF5L2Gdl.js +1 -0
  158. package/dist/components/p-CXzfYQ_u.js +1 -0
  159. package/dist/components/p-CeKT_dTd.js +1 -0
  160. package/dist/components/p-Cp15toXH.js +1 -0
  161. package/dist/components/p-Cy77SpWt.js +1 -0
  162. package/dist/components/p-D1tfzpy8.js +1 -0
  163. package/dist/components/p-D4n7UbGY.js +1 -0
  164. package/dist/components/p-D5ZsALCP.js +1 -0
  165. package/dist/components/p-D8W6LE-c.js +1 -11
  166. package/dist/components/p-DTezr6w9.js +1 -0
  167. package/dist/components/p-Du1vxHy8.js +1 -0
  168. package/dist/components/p-IAqZFssU.js +1 -0
  169. package/dist/components/p-XGgKC_Fe.js +1 -0
  170. package/dist/components/p-exWKDgI8.js +9 -0
  171. package/dist/components/p-g0N9j_uT.js +1 -0
  172. package/dist/components/p-l10It7Nm.js +1 -30
  173. package/dist/components/p-n789Y3S-.js +1 -45
  174. package/dist/esm/app-globals-DQuL1Twl.js +0 -3
  175. package/dist/esm/{default-line-tool.config-CuBm2vpW.js → default-line-tool.config-Cw8mdDpt.js} +1569 -206
  176. package/dist/esm/index-BqhmuUH2.js +3253 -0
  177. package/dist/esm/index.js +11 -8
  178. package/dist/esm/kritzel-brush-style.entry.js +3 -4
  179. package/dist/esm/kritzel-color_22.entry.js +167 -110
  180. package/dist/esm/loader.js +3 -4
  181. package/dist/esm/stencil.js +4 -5
  182. package/dist/stencil/index.esm.js +1 -2
  183. package/dist/stencil/p-09295079.entry.js +1 -0
  184. package/dist/stencil/p-BqhmuUH2.js +2 -0
  185. package/dist/stencil/p-Cw8mdDpt.js +1 -0
  186. package/dist/stencil/p-DQuL1Twl.js +1 -2
  187. package/dist/stencil/p-d21a009f.entry.js +9 -0
  188. package/dist/stencil/stencil.esm.js +1 -2
  189. package/dist/types/classes/managers/anchor.manager.d.ts +1 -1
  190. package/dist/types/classes/objects/line.class.d.ts +2 -0
  191. package/dist/types/components/shared/kritzel-color-palette/kritzel-color-palette.d.ts +1 -0
  192. package/dist/types/components/shared/kritzel-font-size/kritzel-font-size.d.ts +1 -0
  193. package/dist/types/components/ui/kritzel-controls/kritzel-controls.d.ts +6 -0
  194. package/dist/types/stencil-public-runtime.d.ts +57 -3
  195. package/package.json +6 -1
  196. package/dist/cjs/app-globals-V2Kpy_OQ.js.map +0 -1
  197. package/dist/cjs/default-line-tool.config-JuTDR6PF.js.map +0 -1
  198. package/dist/cjs/index-Cj__YTlG.js +0 -1650
  199. package/dist/cjs/index-Cj__YTlG.js.map +0 -1
  200. package/dist/cjs/index.cjs.js.map +0 -1
  201. package/dist/cjs/kritzel-brush-style.entry.cjs.js.map +0 -1
  202. package/dist/cjs/loader.cjs.js.map +0 -1
  203. package/dist/cjs/stencil.cjs.js.map +0 -1
  204. package/dist/collection/classes/core/core.class.js.map +0 -1
  205. package/dist/collection/classes/core/reviver.class.js.map +0 -1
  206. package/dist/collection/classes/core/store.class.js.map +0 -1
  207. package/dist/collection/classes/core/viewport.class.js.map +0 -1
  208. package/dist/collection/classes/core/workspace.class.js.map +0 -1
  209. package/dist/collection/classes/handlers/base.handler.js.map +0 -1
  210. package/dist/collection/classes/handlers/context-menu.handler.js.map +0 -1
  211. package/dist/collection/classes/handlers/hover.handler.js.map +0 -1
  212. package/dist/collection/classes/handlers/key.handler.js.map +0 -1
  213. package/dist/collection/classes/handlers/line-handle.handler.js.map +0 -1
  214. package/dist/collection/classes/handlers/move.handler.js.map +0 -1
  215. package/dist/collection/classes/handlers/resize.handler.js.map +0 -1
  216. package/dist/collection/classes/handlers/rotation.handler.js.map +0 -1
  217. package/dist/collection/classes/handlers/selection.handler.js.map +0 -1
  218. package/dist/collection/classes/managers/anchor.manager.js.map +0 -1
  219. package/dist/collection/classes/managers/cursor.manager.js.map +0 -1
  220. package/dist/collection/classes/objects/base-object.class.js.map +0 -1
  221. package/dist/collection/classes/objects/custom-element.class.js.map +0 -1
  222. package/dist/collection/classes/objects/group.class.js.map +0 -1
  223. package/dist/collection/classes/objects/image.class.js.map +0 -1
  224. package/dist/collection/classes/objects/line.class.js.map +0 -1
  225. package/dist/collection/classes/objects/path.class.js.map +0 -1
  226. package/dist/collection/classes/objects/selection-box.class.js.map +0 -1
  227. package/dist/collection/classes/objects/selection-group.class.js.map +0 -1
  228. package/dist/collection/classes/objects/shape.class.js.map +0 -1
  229. package/dist/collection/classes/objects/text.class.js.map +0 -1
  230. package/dist/collection/classes/providers/broadcast-sync-provider.class.js.map +0 -1
  231. package/dist/collection/classes/providers/hocuspocus-sync-provider.class.js.map +0 -1
  232. package/dist/collection/classes/providers/indexeddb-sync-provider.class.js.map +0 -1
  233. package/dist/collection/classes/providers/websocket-sync-provider.class.js.map +0 -1
  234. package/dist/collection/classes/registries/icon-registry.class.js.map +0 -1
  235. package/dist/collection/classes/registries/tool.registry.js.map +0 -1
  236. package/dist/collection/classes/structures/app-state-map.structure.js.map +0 -1
  237. package/dist/collection/classes/structures/object-map.structure.js.map +0 -1
  238. package/dist/collection/classes/structures/quadtree.structure.js.map +0 -1
  239. package/dist/collection/classes/tools/base-tool.class.js.map +0 -1
  240. package/dist/collection/classes/tools/brush-tool.class.js.map +0 -1
  241. package/dist/collection/classes/tools/eraser-tool.class.js.map +0 -1
  242. package/dist/collection/classes/tools/image-tool.class.js.map +0 -1
  243. package/dist/collection/classes/tools/line-tool.class.js.map +0 -1
  244. package/dist/collection/classes/tools/selection-tool.class.js.map +0 -1
  245. package/dist/collection/classes/tools/shape-tool.class.js.map +0 -1
  246. package/dist/collection/classes/tools/text-tool.class.js.map +0 -1
  247. package/dist/collection/components/core/kritzel-cursor-trail/kritzel-cursor-trail.js.map +0 -1
  248. package/dist/collection/components/core/kritzel-editor/kritzel-editor.js.map +0 -1
  249. package/dist/collection/components/core/kritzel-engine/kritzel-engine.js.map +0 -1
  250. package/dist/collection/components/shared/kritzel-brush-style/kritzel-brush-style.js.map +0 -1
  251. package/dist/collection/components/shared/kritzel-color/kritzel-color.js.map +0 -1
  252. package/dist/collection/components/shared/kritzel-color-palette/kritzel-color-palette.js.map +0 -1
  253. package/dist/collection/components/shared/kritzel-dropdown/kritzel-dropdown.js.map +0 -1
  254. package/dist/collection/components/shared/kritzel-font/kritzel-font.js.map +0 -1
  255. package/dist/collection/components/shared/kritzel-font-family/kritzel-font-family.js.map +0 -1
  256. package/dist/collection/components/shared/kritzel-font-size/kritzel-font-size.js.map +0 -1
  257. package/dist/collection/components/shared/kritzel-icon/kritzel-icon.js.map +0 -1
  258. package/dist/collection/components/shared/kritzel-menu/kritzel-menu.js.map +0 -1
  259. package/dist/collection/components/shared/kritzel-menu-item/kritzel-menu-item.js.map +0 -1
  260. package/dist/collection/components/shared/kritzel-portal/kritzel-portal.js.map +0 -1
  261. package/dist/collection/components/shared/kritzel-split-button/kritzel-split-button.js.map +0 -1
  262. package/dist/collection/components/shared/kritzel-stroke-size/kritzel-stroke-size.js.map +0 -1
  263. package/dist/collection/components/shared/kritzel-tooltip/kritzel-tooltip.js.map +0 -1
  264. package/dist/collection/components/ui/kritzel-context-menu/kritzel-context-menu.js.map +0 -1
  265. package/dist/collection/components/ui/kritzel-control-brush-config/kritzel-control-brush-config.js.map +0 -1
  266. package/dist/collection/components/ui/kritzel-control-text-config/kritzel-control-text-config.js.map +0 -1
  267. package/dist/collection/components/ui/kritzel-controls/kritzel-controls.js.map +0 -1
  268. package/dist/collection/components/ui/kritzel-utility-panel/kritzel-utility-panel.js.map +0 -1
  269. package/dist/collection/components/ui/kritzel-workspace-manager/kritzel-workspace-manager.js.map +0 -1
  270. package/dist/collection/configs/default-brush-tool.config.js.map +0 -1
  271. package/dist/collection/configs/default-engine-config.js.map +0 -1
  272. package/dist/collection/configs/default-line-tool.config.js.map +0 -1
  273. package/dist/collection/configs/default-shape-tool.config.js.map +0 -1
  274. package/dist/collection/configs/default-sync.config.js.map +0 -1
  275. package/dist/collection/configs/default-text-tool.config.js.map +0 -1
  276. package/dist/collection/constants/core.constants.js.map +0 -1
  277. package/dist/collection/constants/engine.constants.js.map +0 -1
  278. package/dist/collection/enums/event-button.enum.js.map +0 -1
  279. package/dist/collection/enums/handle-type.enum.js.map +0 -1
  280. package/dist/collection/enums/shape-type.enum.js.map +0 -1
  281. package/dist/collection/helpers/class.helper.js.map +0 -1
  282. package/dist/collection/helpers/cursor.helper.js.map +0 -1
  283. package/dist/collection/helpers/devices.helper.js.map +0 -1
  284. package/dist/collection/helpers/event.helper.js.map +0 -1
  285. package/dist/collection/helpers/geometry.helper.js.map +0 -1
  286. package/dist/collection/helpers/html.helper.js.map +0 -1
  287. package/dist/collection/helpers/keyboard.helper.js.map +0 -1
  288. package/dist/collection/helpers/math.helper.js.map +0 -1
  289. package/dist/collection/helpers/object.helper.js.map +0 -1
  290. package/dist/collection/index.js.map +0 -1
  291. package/dist/collection/interfaces/anchor.interface.js.map +0 -1
  292. package/dist/collection/interfaces/arrow-head.interface.js.map +0 -1
  293. package/dist/collection/interfaces/bounding-box.interface.js.map +0 -1
  294. package/dist/collection/interfaces/clonable.interface.js.map +0 -1
  295. package/dist/collection/interfaces/context-menu-item.interface.js.map +0 -1
  296. package/dist/collection/interfaces/debug-info.interface.js.map +0 -1
  297. package/dist/collection/interfaces/engine-state.interface.js.map +0 -1
  298. package/dist/collection/interfaces/line-options.interface.js.map +0 -1
  299. package/dist/collection/interfaces/menu-item.interface.js.map +0 -1
  300. package/dist/collection/interfaces/object.interface.js.map +0 -1
  301. package/dist/collection/interfaces/path-options.interface.js.map +0 -1
  302. package/dist/collection/interfaces/point.interface.js.map +0 -1
  303. package/dist/collection/interfaces/polygon.interface.js.map +0 -1
  304. package/dist/collection/interfaces/selection-state.interface.js.map +0 -1
  305. package/dist/collection/interfaces/serializable.interface.js.map +0 -1
  306. package/dist/collection/interfaces/shortcut.interface.js.map +0 -1
  307. package/dist/collection/interfaces/sync-config.interface.js.map +0 -1
  308. package/dist/collection/interfaces/sync-provider.interface.js.map +0 -1
  309. package/dist/collection/interfaces/tool.interface.js.map +0 -1
  310. package/dist/collection/interfaces/toolbar-control.interface.js.map +0 -1
  311. package/dist/collection/interfaces/undo-state.interface.js.map +0 -1
  312. package/dist/collection/types/deep-readonly.type.js.map +0 -1
  313. package/dist/collection/types/state.types.js.map +0 -1
  314. package/dist/components/index.js.map +0 -1
  315. package/dist/components/kritzel-brush-style.js.map +0 -1
  316. package/dist/components/kritzel-color-palette.js.map +0 -1
  317. package/dist/components/kritzel-color.js.map +0 -1
  318. package/dist/components/kritzel-context-menu.js.map +0 -1
  319. package/dist/components/kritzel-control-brush-config.js.map +0 -1
  320. package/dist/components/kritzel-control-text-config.js.map +0 -1
  321. package/dist/components/kritzel-controls.js.map +0 -1
  322. package/dist/components/kritzel-cursor-trail.js.map +0 -1
  323. package/dist/components/kritzel-dropdown.js.map +0 -1
  324. package/dist/components/kritzel-editor.js.map +0 -1
  325. package/dist/components/kritzel-engine.js.map +0 -1
  326. package/dist/components/kritzel-font-family.js.map +0 -1
  327. package/dist/components/kritzel-font-size.js.map +0 -1
  328. package/dist/components/kritzel-font.js.map +0 -1
  329. package/dist/components/kritzel-icon.js.map +0 -1
  330. package/dist/components/kritzel-menu-item.js.map +0 -1
  331. package/dist/components/kritzel-menu.js.map +0 -1
  332. package/dist/components/kritzel-portal.js.map +0 -1
  333. package/dist/components/kritzel-split-button.js.map +0 -1
  334. package/dist/components/kritzel-stroke-size.js.map +0 -1
  335. package/dist/components/kritzel-tooltip.js.map +0 -1
  336. package/dist/components/kritzel-utility-panel.js.map +0 -1
  337. package/dist/components/kritzel-workspace-manager.js.map +0 -1
  338. package/dist/components/p-B0kd2rUI.js.map +0 -1
  339. package/dist/components/p-B80ry-r4.js +0 -103
  340. package/dist/components/p-B80ry-r4.js.map +0 -1
  341. package/dist/components/p-BC5-_yPs.js +0 -75
  342. package/dist/components/p-BC5-_yPs.js.map +0 -1
  343. package/dist/components/p-BUsg2vtg.js +0 -14897
  344. package/dist/components/p-BUsg2vtg.js.map +0 -1
  345. package/dist/components/p-Bo-NQ68K.js +0 -132
  346. package/dist/components/p-Bo-NQ68K.js.map +0 -1
  347. package/dist/components/p-C6qB08BS.js.map +0 -1
  348. package/dist/components/p-C720oASC.js +0 -201
  349. package/dist/components/p-C720oASC.js.map +0 -1
  350. package/dist/components/p-C92UCXyc.js +0 -308
  351. package/dist/components/p-C92UCXyc.js.map +0 -1
  352. package/dist/components/p-CAxHKvww.js +0 -119
  353. package/dist/components/p-CAxHKvww.js.map +0 -1
  354. package/dist/components/p-CD9cCvhR.js +0 -272
  355. package/dist/components/p-CD9cCvhR.js.map +0 -1
  356. package/dist/components/p-CIlIrPRp.js +0 -83
  357. package/dist/components/p-CIlIrPRp.js.map +0 -1
  358. package/dist/components/p-CIts5Uma.js +0 -110
  359. package/dist/components/p-CIts5Uma.js.map +0 -1
  360. package/dist/components/p-Cdw55iW6.js +0 -281
  361. package/dist/components/p-Cdw55iW6.js.map +0 -1
  362. package/dist/components/p-CwkUrTy1.js +0 -1367
  363. package/dist/components/p-CwkUrTy1.js.map +0 -1
  364. package/dist/components/p-D8W6LE-c.js.map +0 -1
  365. package/dist/components/p-DI7JQMsC.js +0 -46
  366. package/dist/components/p-DI7JQMsC.js.map +0 -1
  367. package/dist/components/p-DmYjCy-z.js +0 -62
  368. package/dist/components/p-DmYjCy-z.js.map +0 -1
  369. package/dist/components/p-DoD6F7Y4.js +0 -157
  370. package/dist/components/p-DoD6F7Y4.js.map +0 -1
  371. package/dist/components/p-DyVWaSSc.js +0 -55
  372. package/dist/components/p-DyVWaSSc.js.map +0 -1
  373. package/dist/components/p-WLXyD_eY.js +0 -111
  374. package/dist/components/p-WLXyD_eY.js.map +0 -1
  375. package/dist/components/p-c7AGmG3p.js +0 -73
  376. package/dist/components/p-c7AGmG3p.js.map +0 -1
  377. package/dist/components/p-fm-bG_zL.js +0 -231
  378. package/dist/components/p-fm-bG_zL.js.map +0 -1
  379. package/dist/components/p-fqLbEfE0.js +0 -39586
  380. package/dist/components/p-fqLbEfE0.js.map +0 -1
  381. package/dist/components/p-l10It7Nm.js.map +0 -1
  382. package/dist/components/p-n789Y3S-.js.map +0 -1
  383. package/dist/components/p-qWf2T62p.js +0 -57
  384. package/dist/components/p-qWf2T62p.js.map +0 -1
  385. package/dist/components/p-vLN8eXFe.js +0 -106
  386. package/dist/components/p-vLN8eXFe.js.map +0 -1
  387. package/dist/esm/app-globals-DQuL1Twl.js.map +0 -1
  388. package/dist/esm/default-line-tool.config-CuBm2vpW.js.map +0 -1
  389. package/dist/esm/index-SGde3HXB.js +0 -1623
  390. package/dist/esm/index-SGde3HXB.js.map +0 -1
  391. package/dist/esm/index.js.map +0 -1
  392. package/dist/esm/kritzel-brush-style.entry.js.map +0 -1
  393. package/dist/esm/loader.js.map +0 -1
  394. package/dist/esm/stencil.js.map +0 -1
  395. package/dist/stencil/index.esm.js.map +0 -1
  396. package/dist/stencil/kritzel-brush-style.entry.esm.js.map +0 -1
  397. package/dist/stencil/loader.esm.js.map +0 -1
  398. package/dist/stencil/p-0a9b6696.entry.js +0 -2
  399. package/dist/stencil/p-0a9b6696.entry.js.map +0 -1
  400. package/dist/stencil/p-0fdce6ce.entry.js +0 -10
  401. package/dist/stencil/p-0fdce6ce.entry.js.map +0 -1
  402. package/dist/stencil/p-CuBm2vpW.js +0 -2
  403. package/dist/stencil/p-CuBm2vpW.js.map +0 -1
  404. package/dist/stencil/p-DQuL1Twl.js.map +0 -1
  405. package/dist/stencil/p-SGde3HXB.js +0 -3
  406. package/dist/stencil/p-SGde3HXB.js.map +0 -1
  407. package/dist/stencil/stencil.esm.js.map +0 -1
@@ -1,10 +0,0 @@
1
- import{r as t,h as e,H as i,c as n,g as r}from"./p-SGde3HXB.js";import{Z as s,J as o,P as a,_ as l,$ as c,a0 as u,a1 as h,a2 as f,a3 as d,a4 as p,a5 as v,a6 as b,a7 as g,a8 as k,a9 as y,aa as w,ab as m,ac as x,R as z,W as C,Y as S,L as M,M as I,X as j,N as _,U as $,ad as T,ae as A,af as E,ag as O,I as F,F as W,K as D,G as R,E as P,ah as L,ai as U,aj as K,Q as V,T as B,V as H,ak as Y,al as N}from"./p-CuBm2vpW.js";var X=typeof globalThis!=="undefined"?globalThis:typeof window!=="undefined"?window:typeof global!=="undefined"?global:typeof self!=="undefined"?self:{};const q=":host{display:flex}.checkerboard-bg{background:repeating-conic-gradient(#ccc 0% 25%, #fff 0% 50%) 50% / 8px 8px;position:relative;overflow:hidden}.color-circle{width:24px;height:24px;border-radius:50%;box-sizing:border-box;display:block}.color-circle.white{border:1px solid var(--kritzel-color-palette-circle-border-color, #dddcdc)}";const G=class{constructor(e){t(this,e)}value;size=24;isLightColor(t){if(!t)return false;let e=0,i=0,n=0;let r=t.startsWith("#")?t.slice(1):t;if(r.length===3){e=parseInt(r[0]+r[0],16);i=parseInt(r[1]+r[1],16);n=parseInt(r[2]+r[2],16)}else if(r.length===6){e=parseInt(r.substring(0,2),16);i=parseInt(r.substring(2,4),16);n=parseInt(r.substring(4,6),16)}else{return false}if(isNaN(e)||isNaN(i)||isNaN(n)){return false}const s=.299*e+.587*i+.114*n;return s>220}render(){const t=this.isLightColor(this.value);return e(i,{key:"edf5d94f476d72d0be74886b362fd37db789c517"},e("div",{key:"d8af2373616b9bc6f4ddea0822d737f073563bf9",class:"checkerboard-bg",style:{width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",display:"inline-block",position:"relative"}},e("div",{key:"6b587f7926884e7c38fe36eaef41b0c8cd213c6d",class:{"color-circle":true,white:t},style:{backgroundColor:this.value,width:`${this.size}px`,height:`${this.size}px`,borderRadius:"50%",position:"absolute",top:"0",left:"0",display:"inline-block"}})))}};G.style=q;const Z=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;width:100%;box-sizing:border-box}.color-grid{width:100%;display:grid;grid-template-columns:repeat(6, 32px);gap:8px;justify-items:center;overflow:hidden;height:40px;transition:height 0.1s ease-in-out}.color-grid.expanded{height:500px}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.color-container:hover{background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.color-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-color-palette-selected-background-color)}";const J=class{constructor(e){t(this,e);this.colorChange=n(this,"colorChange")}colors=[];selectedColor=null;isExpanded=false;isOpaque=false;colorChange;handleColorClick(t){this.selectedColor=t;this.colorChange.emit(t)}calculateHeight(){const t=6;const e=32;const i=8;const n=Math.ceil(this.colors.length/t);return`${n*e+(n-1)*i}px`}render(){const t=this.isExpanded?this.colors:this.colors.slice(0,6);const n=this.isExpanded?this.calculateHeight():"32px";return e(i,{key:"594c8520ca8307b5cd8accabc3d05f7d2bc2ee6e"},e("div",{key:"8a3a5c81c9635f81092bae8659a59334cdca4369",class:{"color-grid":true,expanded:this.isExpanded},style:{height:n}},t.map((t=>e("div",{tabIndex:0,class:{"color-container":true,selected:this.selectedColor===t},onClick:()=>this.handleColorClick(t)},e("kritzel-color",{value:t}))))))}};J.style=Z;const Q=":host{display:block}.menu-container{display:flex;flex-direction:column;background-color:var(--kritzel-context-menu-background-color, #ffffff);border-radius:var(--kritzel-context-menu-border-radius, 12px);box-shadow:var(--kritzel-context-menu-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12));border:var(--kritzel-context-menu-border, 1px solid #ebebeb);padding:var(--kritzel-context-menu-padding,4px)}.menu-item{display:flex;align-items:center;gap:var(--kritzel-context-menu-item-gap, 8px);background:none;border:none;text-align:left;padding:var(--kritzel-context-menu-item-padding, 8px);border-radius:var(--kritzel-context-menu-item-border-radius, 12px);cursor:var(--kritzel-pointer-cursor, pointer);font-size:var(--kritzel-context-menu-item-font-size, 14px);color:var(--kritzel-context-menu-item-color, #333333);white-space:nowrap;-webkit-tap-highlight-color:transparent}.menu-item:not(.disabled):hover{background-color:var(--kritzel-context-menu-item-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.menu-item:not(.disabled):active{background-color:var(--kritzel-context-menu-item-active-background-color, hsl(0, 0%, 0%, 8.6%))}.menu-item.disabled{color:var(--kritzel-context-menu-item-disabled-color, #aaaaaa)}.menu-item kritzel-icon{opacity:0.8;flex-shrink:0}.menu-item.disabled kritzel-icon{opacity:0.4}.label{flex-grow:1}";const tt=8;const et=class{constructor(e){t(this,e);this.actionSelected=n(this,"actionSelected");this.close=n(this,"close")}get host(){return r(this)}items;onItemsChanged(){this.updateMenuItems()}objects;actionSelected;close;processedItems=[];handleOutsideClick(t){const e=t.composedPath();if(!e.includes(this.host)){this.close.emit()}}componentWillLoad(){this.updateMenuItems()}componentDidLoad(){this.adjustPositionToViewport()}componentDidUpdate(){this.adjustPositionToViewport()}adjustPositionToViewport(){const t=this.host.getBoundingClientRect();const e=window.innerWidth;const i=window.innerHeight;const n=parseFloat(this.host.style.left)||0;const r=parseFloat(this.host.style.top)||0;let s=n;let o=r;if(t.right>e-tt){s=e-t.width-tt}if(t.bottom>i-tt){o=i-t.height-tt}if(s<tt){s=tt}if(o<tt){o=tt}if(s!==n||o!==r){this.host.style.left=`${s}px`;this.host.style.top=`${o}px`}}handleItemClick(t,e){if(!e){this.actionSelected.emit(t)}}async updateMenuItems(){const t=[];for(const e of this.items){const i=await this.evaluateProperty(e.visible,true);if(i){const i=await this.evaluateProperty(e.disabled,false);t.push({item:e,isDisabled:i})}}this.processedItems=t}async evaluateProperty(t,e){if(typeof t==="boolean"){return t}if(typeof t==="function"){return await Promise.resolve(t(null,this.objects))}return e}render(){return e(i,{key:"f57688eb3c0921c0a2d85cab7bbe9273ecf4fdab"},e("div",{key:"8082568dd09f4ad5ef07885308d752e8c924f02e",class:"menu-container"},this.processedItems.map((({item:t,isDisabled:i},n)=>e("button",{key:`${t.label}-${n}`,class:{"menu-item":true,disabled:i},onClick:()=>this.handleItemClick(t,i),disabled:i},t.icon&&e("kritzel-icon",{name:t.icon,size:16}),e("span",{class:"label"},t.label))))))}static get watchers(){return{items:["onItemsChanged"]}}};et.style=Q;const it=":host{display:flex;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:var(--kritzel-pointer-cursor, pointer);font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const nt=class{constructor(e){t(this,e);this.toolChange=n(this,"toolChange")}tool;handleToolChange(t){this.palette=t.palettes[t.type]}isExpanded=false;toolChange;palette=[];componentWillLoad(){this.palette=this.tool.palettes[this.tool.type]}handleToggleExpand(){this.isExpanded=!this.isExpanded}handleTypeChange(t){this.palette=this.tool.palettes[t.detail];this.tool.type=t.detail;this.tool.color=this.palette[0];this.toolChange.emit(this.tool)}handleColorChange(t){this.tool.color=t.detail;this.toolChange.emit(this.tool)}handleSizeChange(t){this.tool.size=t.detail;this.toolChange.emit(this.tool)}render(){return e(i,{key:"ce2ac77db22f52239a45b62f690d54009f2c6954"},e("div",{key:"5f6c50853e876c3612bb5c270bccc468c2c9a726",style:{display:"flex",flexDirection:"row",alignItems:this.isExpanded?"flex-start":"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-color-palette",{key:"bfa24bb8683027c37f200ad65e4e6787d7224c56",colors:this.palette,selectedColor:this.tool.color,isExpanded:this.isExpanded,isOpaque:true,onColorChange:t=>this.handleColorChange(t)}),e("button",{key:"8e2c55c6d16ca3911c5f068c354bdce5a4f7e844",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand",style:this.palette.length>6?{visibillity:"visible"}:{visibility:"hidden"}},e("kritzel-icon",{key:"33610ada109fe5d1d9cb2da4c70a60d672e3d6cb",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-stroke-size",{key:"9b095dd9436e46dd88a3485ceb2dafa5d06d1bc4",selectedSize:this.tool.size,onSizeChange:t=>this.handleSizeChange(t)}))}static get watchers(){return{tool:["handleToolChange"]}}};nt.style=it;const rt=":host{display:block;flex-direction:column;width:100%}.expand-toggle{background:none;border:none;cursor:var(--kritzel-pointer-cursor, pointer);font-size:14px;line-height:1;padding:8px;color:var(--kritzel-color-palette-expand-toggle-color, #666666)}.expand-toggle:hover{color:var(--kritzel-color-palette-expand-toggle-hover-color, #333333)}";const st=class{constructor(e){t(this,e);this.toolChange=n(this,"toolChange")}tool;isExpanded=false;toolChange;handleToggleExpand(){this.isExpanded=!this.isExpanded}handleFamilyChange(t){this.tool.fontFamily=t.detail;this.toolChange.emit(this.tool)}handleColorChange(t){this.tool.fontColor=t.detail;this.toolChange.emit(this.tool)}handleSizeChange(t){this.tool.fontSize=t.detail;this.toolChange.emit(this.tool)}render(){return e(i,{key:"4a0027969b183fef77c374eb114d9d30104e5ad7"},e("div",{key:"9f49eb3a95080447b938fdfeb256fafbe5ff9ddc",style:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",width:"100%",gap:"8px"}},e("kritzel-font-family",{key:"4e75cda048f8b8c04e6cb5568e7cdcde91e28112",selectedFontFamily:this.tool.fontFamily,onFontFamilyChange:t=>this.handleFamilyChange(t)}),e("button",{key:"2db1d1166c0544489e1d854653c3c0ce8b881711",class:"expand-toggle",onClick:()=>this.handleToggleExpand(),title:this.isExpanded?"Collapse":"Expand"},e("kritzel-icon",{key:"2b0ca1efc11023a96d8379eb042716edd6bd3f56",name:this.isExpanded?"chevron-up":"chevron-down"}))),e("kritzel-color-palette",{key:"e5ced7a1ea76d19a65a6b377972455a929c5b2cb",colors:this.tool.palette,selectedColor:this.tool.fontColor,isExpanded:this.isExpanded,onColorChange:t=>this.handleColorChange(t)}),e("kritzel-font-size",{key:"938cde81947c3bf6d78d6d237a3c665182c6ffef",selectedSize:this.tool.fontSize,fontFamily:this.tool.fontFamily,onSizeChange:t=>this.handleSizeChange(t)}))}};st.style=rt;const ot=":host{display:flex;flex-direction:column;user-select:none}:host(.mobile){--kritzel-controls-control-hover-background-color:transparent;--kritzel-controls-control-active-background-color:transparent}.kritzel-controls{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--kritzel-controls-gap, 8px);height:100%;padding:var(--kritzel-controls-padding, 8px);background-color:var(--kritzel-controls-background-color, #ffffff);border-radius:var(--kritzel-controls-border-radius, 16px);box-shadow:var(--kritzel-controls-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-controls-border, 1px solid #ebebeb);z-index:10000;position:relative}.kritzel-control{display:flex;justify-content:center;align-items:center;color:var(--kritzel-controls-control-color, #000000);border-radius:var(--kritzel-controls-control-border-radius, 12px);padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;font-weight:bold}.kritzel-control:focus,.kritzel-control:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control.selected,.kritzel-control.selected:hover,.kritzel-control.selected:active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control.selected:focus{background-color:var(--kritzel-controls-control-selected-background-color, #007bffe3) !important}.kritzel-control-split{position:relative;display:flex;align-items:center;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:var(--kritzel-controls-control-color, #000000)}.kritzel-control-split .kritzel-control-main{display:flex;justify-content:center;align-items:center;padding:var(--kritzel-controls-control-padding, 8px);border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-controls-control-border-radius, 12px);color:inherit}.kritzel-control-split.selected .kritzel-control-main{border-radius:var(--kritzel-controls-control-border-radius, 12px) 0 0 var(--kritzel-controls-control-border-radius, 12px)}.kritzel-control-split .kritzel-control-dropdown{display:flex;justify-content:center;align-items:center;align-self:stretch;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);-webkit-tap-highlight-color:transparent;border-radius:0 var(--kritzel-controls-control-border-radius, 12px) var(--kritzel-controls-control-border-radius, 12px) 0;color:inherit;width:0;padding:0;opacity:0;overflow:hidden;pointer-events:none;transition:width 0.15s ease-out, padding 0.15s ease-out, opacity 0.15s ease-out}.kritzel-control-split .kritzel-control-dropdown.visible{width:auto;padding:0 6px;opacity:1;pointer-events:auto}.kritzel-control-split .kritzel-control-main:focus,.kritzel-control-split .kritzel-control-main:hover,.kritzel-control-split .kritzel-control-dropdown:focus,.kritzel-control-split .kritzel-control-dropdown:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-control-split .kritzel-control-main:active,.kritzel-control-split .kritzel-control-dropdown:active{background-color:var(--kritzel-controls-control-active-background-color, hsl(0, 0%, 0%, 8.6%))}.kritzel-control-split.selected{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF) !important;color:var(--kritzel-controls-control-selected-color, #ffffff) !important}.kritzel-control-split.selected .kritzel-control-main:hover,.kritzel-control-split.selected .kritzel-control-dropdown:hover{background-color:rgba(255, 255, 255, 0.15)}.kritzel-submenu-content{display:flex;flex-direction:column;gap:var(--kritzel-submenu-gap, 4px);min-width:140px}.kritzel-submenu-item{display:flex;align-items:center;gap:10px;padding:10px 12px;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:8px;color:var(--kritzel-controls-control-color, #000000);font-size:14px;text-align:left;white-space:nowrap;-webkit-tap-highlight-color:transparent}.kritzel-submenu-item:hover{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.kritzel-submenu-item.active{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF);color:var(--kritzel-controls-control-selected-color, #ffffff)}.kritzel-submenu-item.active:hover{background-color:var(--kritzel-controls-control-selected-background-color, #007AFF)}.kritzel-config-container{position:relative;display:flex;justify-content:center;align-items:center;height:40px;box-sizing:border-box;-webkit-tap-highlight-color:transparent;width:0;opacity:0;overflow:hidden;pointer-events:none;margin-left:calc(-1 * var(--kritzel-controls-gap, 8px));transition:width 0.2s ease-out, opacity 0.2s ease-out, margin-left 0.2s ease-out}.kritzel-config-container.visible{width:40px;opacity:1;pointer-events:auto;margin-left:0}.kritzel-config{display:flex;justify-content:center;align-items:center;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:50%}.color-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.font-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;background-color:var(--kritzel-color-palette-hover-background-color, #ebebeb)}.no-config{height:24px;width:24px;border-radius:50%;border:1px dashed gray}kritzel-tooltip{z-index:10001}";const at=class{constructor(e){t(this,e);this.isControlsReady=n(this,"isControlsReady")}get host(){return r(this)}controls=[];activeControl=null;isUtilityPanelVisible=true;undoState=null;isControlsReady;firstConfig=null;isTooltipVisible=false;isTouchDevice=s.isTouchDevice();selectedSubOptions=new Map;openSubMenuControl=null;handleDocumentClick(t){const e=t.target;if(!this.kritzelEngine||e.closest(".kritzel-tooltip")){return}this.isTooltipVisible=false}handleKeyDown(t){if(t.key==="Escape"){t.preventDefault();this.closeTooltip();this.openSubMenuControl=null;this.kritzelEngine?.enable()}}async handleActiveToolChange(t){this.activeControl=this.controls.find((e=>e.tool===t.detail))||null}async closeTooltip(){this.isTooltipVisible=false}kritzelEngine=null;tooltipRef=null;get activeToolAsTextTool(){return this.activeControl?.tool}get activeToolAsBrushTool(){return this.activeControl?.tool}async componentWillLoad(){await this.initializeEngine();await this.initializeTools();this.isControlsReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngine=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngine){throw new Error("kritzel-engine not found in parent element.")}}async initializeTools(){for(const t of this.controls){if(t.type==="tool"&&t.tool){t.tool=await this.kritzelEngine.registerTool(t.name,t.tool,t.config)}if(t.type==="tool"&&t.isDefault&&t.tool){await this.kritzelEngine.changeActiveTool(t.tool);this.activeControl=t}if(t.type==="config"){if(this.firstConfig===null){this.firstConfig=t}else{console.warn("Only one config control is allowed. The first one will be used.")}}}}async handleControlClick(t){this.activeControl=t;if(this.activeControl.type==="tool"){await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}}handleConfigClick(t){t.stopPropagation();this.isTooltipVisible=!this.isTooltipVisible;if(this.isTooltipVisible){this.kritzelEngine?.disable()}else{this.kritzelEngine?.enable()}setTimeout((()=>{this.tooltipRef?.focusContent()}),100)}async handleToolChange(t){this.activeControl={...this.activeControl,tool:t.detail};await this.kritzelEngine.changeActiveTool(this.activeControl.tool)}handleTooltipClosed(){this.isTooltipVisible=false;this.kritzelEngine?.enable()}getSelectedSubOption(t){if(!t.subOptions?.length)return undefined;return this.selectedSubOptions.get(t.name)||t.subOptions[0]}toggleSubMenu(t,e){t.stopPropagation();if(this.openSubMenuControl?.name===e.name){this.openSubMenuControl=null}else{this.openSubMenuControl=e}}async selectSubOption(t,e){const i=new Map(this.selectedSubOptions);i.set(t.name,e);this.selectedSubOptions=i;if(t.tool&&typeof t.tool!=="function"){t.tool[e.toolProperty]=e.value}this.openSubMenuControl=null;await this.handleControlClick(t)}render(){const t=this.activeControl?.tool instanceof o||this.activeControl?.tool instanceof a;return e(i,{key:"ed5816cbeb8fe8b91e14b23bf61df4753fb0da0f",class:{mobile:this.isTouchDevice}},this.isUtilityPanelVisible&&e("kritzel-utility-panel",{key:"7218fff9c89f525baf655eea46aec1698a28babd",style:{position:"absolute",bottom:"56px",left:"12px"},undoState:this.undoState,onUndo:()=>this.kritzelEngine?.undo(),onRedo:()=>this.kritzelEngine?.redo(),onDelete:()=>this.kritzelEngine?.delete()}),e("div",{key:"1dc0fa7b02a953474aae9c7822c651d5006e89e5",class:"kritzel-controls"},this.controls.map((i=>{if(i.type==="tool"){if(i.subOptions?.length){const t=this.getSelectedSubOption(i);const n=this.activeControl?.name===i.name;const r=this.openSubMenuControl?.name===i.name;return e("div",{class:{"kritzel-control-split":true,selected:n},key:i.name,ref:t=>{if(t)i._anchorRef=t}},e("button",{class:"kritzel-control-main",onClick:()=>this.handleControlClick(i),title:t?.label},e("kritzel-icon",{name:t?.icon||i.icon})),e("button",{class:{"kritzel-control-dropdown":true,visible:n},onClick:t=>this.toggleSubMenu(t,i),"aria-label":"Select shape type","aria-expanded":r?"true":"false",tabIndex:n?0:-1},e("kritzel-icon",{name:"chevron-down",size:12})),e("kritzel-tooltip",{isVisible:r,anchorElement:i._anchorRef,onTooltipClosed:()=>{this.openSubMenuControl=null}},e("div",{class:"kritzel-submenu-content"},i.subOptions.map((n=>e("button",{class:{"kritzel-submenu-item":true,active:n.id===t?.id},key:n.id,onClick:()=>this.selectSubOption(i,n)},e("kritzel-icon",{name:n.icon,size:20}),e("span",null,n.label)))))))}return e("button",{class:{"kritzel-control":true,selected:this.activeControl?.name===i?.name},key:i.name,onClick:t=>this.handleControlClick?.(i)},e("kritzel-icon",{name:i.icon}))}if(i.type==="config"&&i.name===this.firstConfig?.name&&this.activeControl){return e("div",{class:{"kritzel-config-container":true,visible:t},key:i.name},e("kritzel-tooltip",{ref:t=>this.tooltipRef=t,isVisible:this.isTooltipVisible,anchorElement:this.host.shadowRoot?.querySelector(".kritzel-config-container"),onTooltipClosed:()=>this.handleTooltipClosed()},e("div",{style:{width:"294px",height:"100%"}},this.activeControl.name==="brush"&&e("kritzel-control-brush-config",{tool:this.activeToolAsBrushTool,onToolChange:t=>this.handleToolChange?.(t)}),this.activeControl.name==="text"&&e("kritzel-control-text-config",{tool:this.activeToolAsTextTool,onToolChange:t=>this.handleToolChange?.(t)}))),e("div",{tabIndex:t?0:-1,class:"kritzel-config",onClick:t=>this.handleConfigClick?.(t),onKeyDown:t=>{if(t.key==="Enter"){this.handleConfigClick?.(t)}},style:{cursor:"pointer"}},this.activeControl.tool instanceof o&&e("div",{class:"color-container"},e("kritzel-color",{value:this.activeToolAsBrushTool?.color,size:this.activeToolAsBrushTool?.size,style:{borderRadius:"50%",border:"none"}})),this.activeControl.tool instanceof a&&e("div",{class:"font-container"},e("kritzel-font",{fontFamily:this.activeToolAsTextTool?.fontFamily,size:this.activeToolAsTextTool?.fontSize,color:this.activeToolAsTextTool?.fontColor}))))}}))))}static get assetsDirs(){return["../assets"]}};at.style=ot;const lt=":host{display:block;position:fixed;top:0;left:0;width:100vw;height:100vh;pointer-events:none;z-index:9000}";const ct=class{constructor(e){t(this,e)}core;cursorTrailPoints=[];isLeftButtonDown=false;handleMouseDown(t){if(t.pointerType==="mouse"){if(t.button===l.Left){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.core.store.state.pointers.size===1){this.isLeftButtonDown=true;this.cursorTrailPoints=[]}}}handlePointerMove(t){if(!this.isLeftButtonDown){return}const e={x:t.clientX,y:t.clientY,timestamp:Date.now()};const i=[e,...this.cursorTrailPoints];if(i.length>this.MAX_TRAIL_POINTS){this.cursorTrailPoints=i.slice(0,this.MAX_TRAIL_POINTS)}else{this.cursorTrailPoints=i}}handlePointerUp(t){if(t.pointerType==="mouse"){if(t.button===l.Left){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}if(t.pointerType==="touch"){if(this.core.store.state.pointers.size===0){this.isLeftButtonDown=false;this.cursorTrailPoints=[]}}}trailCleanupIntervalId;TRAIL_DURATION_MS=100;MAX_TRAIL_POINTS=50;componentDidLoad(){this.trailCleanupIntervalId=window.setInterval((()=>{const t=Date.now();const e=this.cursorTrailPoints.filter((e=>t-e.timestamp<this.TRAIL_DURATION_MS));if(e.length!==this.cursorTrailPoints.length){this.cursorTrailPoints=e}}),50)}disconnectedCallback(){if(this.trailCleanupIntervalId){window.clearInterval(this.trailCleanupIntervalId)}}render(){return e(i,{key:"556238ffd7eeda2d400039333a37853ebfcca1b6"},this.cursorTrailPoints.length>1&&e("svg",{key:"a3f451cc9f142f018d0025eb7a68c1bdff5fc0d9",class:"cursor-trail-svg",xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",left:"0",top:"0",width:"100%",height:"100%",pointerEvents:"none",opacity:"var(--kritzel-cursor-trail-opacity, 0.6)",zIndex:"9000"}},this.cursorTrailPoints.slice(1).map(((t,i)=>{const n=this.cursorTrailPoints[i];const r=Date.now();const s=r-t.timestamp;const o=Math.max(0,Math.min(1,s/this.TRAIL_DURATION_MS));if(o>=1)return null;const a=Math.max(2,15*(1-o));return e("line",{key:`trail-segment-${t.timestamp}`,x1:n.x.toString(),y1:n.y.toString(),x2:t.x.toString(),y2:t.y.toString(),stroke:"var(--kritzel-cursor-trail-color, rgb(228, 228, 228))","stroke-width":a.toString(),"stroke-linecap":"round"})}))))}};ct.style=lt;const ut=":host{display:inline-flex;vertical-align:middle;width:100%;position:relative}.dropdown-wrapper{display:flex;align-items:center;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);overflow:visible;height:32px;width:100%;position:relative}.dropdown-container{flex:1;height:100%;min-width:0}.dropdown-trigger{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:0 8px;height:100%;width:100%;box-sizing:border-box;border-radius:var(--kritzel-controls-control-border-radius, 12px);border:none;background-color:#fff;cursor:var(--kritzel-pointer-cursor, pointer);outline:none;font-size:inherit;font-family:inherit;color:var(--kritzel-controls-text-color, #333333);-webkit-tap-highlight-color:transparent;text-align:left}.dropdown-trigger:focus-visible{outline:2px solid var(--kritzel-controls-focus-color, #0066cc);outline-offset:-2px}.dropdown-trigger.has-suffix-border{border-right:1px solid #333333;border-top-right-radius:0;border-bottom-right-radius:0}.dropdown-trigger.has-prefix-border{border-left:1px solid #333333;border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-trigger-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.dropdown-trigger-arrow{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;transition:transform 0.2s ease}.dropdown-trigger-arrow svg{width:100%;height:100%}.dropdown-trigger.is-open .dropdown-trigger-arrow{transform:rotate(180deg)}.dropdown-trigger.is-open.open-up .dropdown-trigger-arrow{transform:rotate(0deg)}.dropdown-menu{position:absolute;left:0;right:0;margin:0;padding:4px 0;list-style:none;background-color:#fff;border:1px solid #333333;border-radius:var(--kritzel-controls-control-border-radius, 12px);box-shadow:0 4px 12px rgba(0, 0, 0, 0.15);z-index:1000;max-height:240px;overflow-y:auto;opacity:0;visibility:hidden;transition:opacity 0.15s ease, transform 0.15s ease, visibility 0.15s;outline:none}.dropdown-menu.open-down{top:calc(100% + 4px);bottom:auto;transform:translateY(-8px)}.dropdown-menu.open-up{bottom:calc(100% + 4px);top:auto;transform:translateY(8px)}.dropdown-menu.is-open{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-menu.open-up{box-shadow:0 -4px 12px rgba(0, 0, 0, 0.15)}.dropdown-option{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:8px 12px;cursor:var(--kritzel-pointer-cursor, pointer);color:var(--kritzel-controls-text-color, #333333);transition:background-color 0.1s ease;-webkit-tap-highlight-color:transparent}.dropdown-option.is-focused{background-color:var(--kritzel-controls-hover-bg, #f0f0f0)}.dropdown-option.is-selected{font-weight:600}.dropdown-option-check{display:flex;align-items:center;justify-content:center;width:16px;height:16px;flex-shrink:0;color:var(--kritzel-controls-accent-color, #0066cc)}.dropdown-option-check svg{width:100%;height:100%}.dropdown-menu::-webkit-scrollbar{width:6px}.dropdown-menu::-webkit-scrollbar-track{background:transparent}.dropdown-menu::-webkit-scrollbar-thumb{background-color:rgba(0, 0, 0, 0.2);border-radius:3px}.dropdown-menu::-webkit-scrollbar-thumb:hover{background-color:rgba(0, 0, 0, 0.3)}::slotted(*){height:100%;box-sizing:border-box}";const ht=class{constructor(e){t(this,e);this.valueChanged=n(this,"valueChanged")}get el(){return r(this)}options=[];optionsChanged(){this.updateInternalValue(this.internalValue,true)}value;externalValueChanged(t){if(t!==this.internalValue){this.updateInternalValue(t,false)}}width;selectStyles={};internalValue;hasSuffixContent=false;hasPrefixContent=false;isOpen=false;focusedIndex=-1;openDirection="down";valueChanged;suffixSlotElement;prefixSlotElement;triggerElement;menuElement;wrapperElement;componentWillLoad(){this.updateInternalValue(this.value,false);this.evaluateSuffixContent();this.evaluatePrefixContent()}handleDocumentClick(t){if(this.isOpen&&!this.el.contains(t.target)){this.closeMenu()}}handleDocumentKeydown(t){if(this.isOpen&&t.key==="Escape"){t.stopPropagation();t.preventDefault();this.closeMenu();this.triggerElement?.focus()}}updateInternalValue(t,e){let i=t;if(this.options&&this.options.length>0){const t=this.options.some((t=>t.value===i));if(!i||!t){i=this.options[0].value}}else{i=undefined}if(this.internalValue!==i){this.internalValue=i;if(e||t!==i&&t!==undefined){this.valueChanged.emit(this.internalValue)}}}toggleMenu=()=>{if(this.isOpen){this.closeMenu()}else{this.openMenu()}};openMenu=()=>{this.calculateMenuDirection();this.isOpen=true;const t=this.options.findIndex((t=>t.value===this.internalValue));this.focusedIndex=t>=0?t:0;requestAnimationFrame((()=>{this.menuElement?.focus()}))};calculateMenuDirection=()=>{if(!this.wrapperElement){this.openDirection="down";return}const t=this.wrapperElement.getBoundingClientRect();const e=window.innerHeight;const i=e-t.bottom;const n=t.top;const r=36;const s=8;const o=Math.min(240,this.options.length*r+s);if(i<o&&n>i){this.openDirection="up"}else{this.openDirection="down"}};closeMenu=()=>{this.isOpen=false;this.focusedIndex=-1};selectOption=t=>{if(this.internalValue!==t.value){this.internalValue=t.value;this.valueChanged.emit(this.internalValue)}this.closeMenu();this.triggerElement?.focus()};handleTriggerKeyDown=t=>{switch(t.key){case"Enter":case" ":case"ArrowDown":case"ArrowUp":t.preventDefault();this.openMenu();break}};handleMenuKeyDown=t=>{switch(t.key){case"ArrowDown":t.preventDefault();this.focusedIndex=Math.min(this.focusedIndex+1,this.options.length-1);this.scrollFocusedOptionIntoView();break;case"ArrowUp":t.preventDefault();this.focusedIndex=Math.max(this.focusedIndex-1,0);this.scrollFocusedOptionIntoView();break;case"Enter":case" ":t.preventDefault();if(this.focusedIndex>=0&&this.focusedIndex<this.options.length){this.selectOption(this.options[this.focusedIndex])}break;case"Home":t.preventDefault();this.focusedIndex=0;this.scrollFocusedOptionIntoView();break;case"End":t.preventDefault();this.focusedIndex=this.options.length-1;this.scrollFocusedOptionIntoView();break;case"Tab":this.closeMenu();break}};scrollFocusedOptionIntoView=()=>{if(!this.menuElement||this.focusedIndex<0){return}requestAnimationFrame((()=>{const t=this.menuElement?.querySelector(".dropdown-option.is-focused");if(t){t.scrollIntoView({block:"nearest",behavior:"smooth"})}}))};handleOptionMouseEnter=t=>{this.focusedIndex=t};evaluateSuffixContent=()=>{if(this.suffixSlotElement){const t=this.suffixSlotElement.assignedNodes({flatten:true}).length>0;if(this.hasSuffixContent!==t){this.hasSuffixContent=t}}else if(this.hasSuffixContent!==false){this.hasSuffixContent=false}};evaluatePrefixContent=()=>{if(this.prefixSlotElement){const t=this.prefixSlotElement.assignedNodes({flatten:true}).length>0;if(this.hasPrefixContent!==t){this.hasPrefixContent=t}}else if(this.hasPrefixContent!==false){this.hasPrefixContent=false}};getSelectedLabel(){const t=this.options.find((t=>t.value===this.internalValue));return t?.label??""}getSelectedStyle(){const t=this.options.find((t=>t.value===this.internalValue));return t?.style}render(){const t={"dropdown-trigger":true,"has-suffix-border":this.hasSuffixContent,"has-prefix-border":this.hasPrefixContent,"is-open":this.isOpen,"open-up":this.openDirection==="up"};const n={"dropdown-menu":true,"is-open":this.isOpen,"open-up":this.openDirection==="up","open-down":this.openDirection==="down"};return e(i,{key:"29d076eb2ef76527c0930ab82ace0d05c896ab6c"},e("div",{key:"1afac5cc0b7f408849670b8cb62fe0bd0f3b27f1",class:"dropdown-wrapper",ref:t=>this.wrapperElement=t},e("slot",{key:"3cfcf787c3b3eedbd6bf30c7506a0a4912429672",name:"prefix",ref:t=>this.prefixSlotElement=t,onSlotchange:this.evaluatePrefixContent}),e("div",{key:"b88120ed3e44871220e6ba61e8bef457651a2086",class:"dropdown-container",style:{width:this.width}},e("button",{key:"79082189066f3d0b4f5797420ec222847792fe52",type:"button",class:t,style:{...this.selectStyles,...this.getSelectedStyle()},onClick:this.toggleMenu,onKeyDown:this.handleTriggerKeyDown,"aria-haspopup":"listbox","aria-expanded":this.isOpen?"true":"false",ref:t=>this.triggerElement=t},e("span",{key:"a490bb6689ec1820144fe82f6833bee82e6ead0e",class:"dropdown-trigger-label"},this.getSelectedLabel()),e("span",{key:"8bd7768f6fdd3c507bbca54d7d135adabe04901f",class:"dropdown-trigger-arrow","aria-hidden":"true"},e("svg",{key:"e1b854d2c93e3067181108f8d782e1393ddb615c",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e("polyline",{key:"3622cbf8964f4e50aa55be5209240dfd252f1d84",points:"6 9 12 15 18 9"}))))),e("slot",{key:"b91317736904cbeee0f87058b822bd77c6b163ca",name:"suffix",ref:t=>this.suffixSlotElement=t,onSlotchange:this.evaluateSuffixContent}),e("ul",{key:"0ca8690345974e9b7ad184f4c7ab7cf5367b183c",class:n,role:"listbox",tabindex:"-1",onKeyDown:this.handleMenuKeyDown,ref:t=>this.menuElement=t},this.options.map(((t,i)=>{const n=t.value===this.internalValue;const r=i===this.focusedIndex;const s={"dropdown-option":true,"is-selected":n,"is-focused":r};return e("li",{class:s,role:"option","aria-selected":n?"true":"false",style:t.style,onClick:()=>this.selectOption(t),onMouseEnter:()=>this.handleOptionMouseEnter(i)},t.label,n&&e("span",{class:"dropdown-option-check","aria-hidden":"true"},e("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round"},e("polyline",{points:"20 6 9 17 4 12"}))))})))))}static get watchers(){return{options:["optionsChanged"],value:["externalValueChanged"]}}};ht.style=ut;var ft;(function(t){t["Rectangle"]="rectangle";t["Ellipse"]="ellipse";t["Triangle"]="triangle"})(ft||(ft={}));class dt extends c{__class__="KritzelShape";shapeType=ft.Rectangle;fillColor="transparent";strokeColor="#000000";strokeWidth=4;fontFamily="Arial";fontSize=16;fontColor="#000000";x=0;y=0;scale=1;scaleFactor=1;isDebugInfoVisible=true;isEditable=true;isEditing=false;editor=null;content=null;_schema=new u({nodes:f(h.spec.nodes,"paragraph block*","block"),marks:h.spec.marks});uneditedObject=null;get viewBox(){return`${this.x} ${this.y} ${this.width} ${this.height}`}constructor(t){super();if(t){this.x=t.x??0;this.y=t.y??0;this.translateX=t.translateX??0;this.translateY=t.translateY??0;this.width=t.width??100;this.height=t.height??100;this.shapeType=t.shapeType??ft.Rectangle;this.fillColor=t.fillColor??"transparent";this.strokeColor=t.strokeColor??"#000000";this.strokeWidth=t.strokeWidth??4;this.fontSize=t.fontSize??16;this.fontFamily=t.fontFamily??"Arial";this.fontColor=t.fontColor??"#000000";this.scale=t.scale??1;this.scaleFactor=t.scaleX??1}}static create(t,e){const i=new dt;i._core=t;i.id=i.generateId();i.workspaceId=t.store.state.activeWorkspace.id;i.x=e?.x??0;i.y=e?.y??0;i.translateX=e?.translateX??0;i.translateY=e?.translateY??0;i.width=e?.width??100;i.height=e?.height??100;i.shapeType=e?.shapeType??ft.Rectangle;i.fillColor=e?.fillColor??"transparent";i.strokeColor=e?.strokeColor??"#000000";i.strokeWidth=e?.strokeWidth??4;i.fontSize=e?.fontSize??16;i.fontFamily=e?.fontFamily??"Arial";i.fontColor=e?.fontColor??"#000000";i.backgroundColor="transparent";i.scaleFactor=1;i.scale=t.store.state.scale;i.zIndex=t.store.currentZIndex;i.editor=i.createEditor();i.updateDimensions();return i}updateDimensions(){this.translateX=(this.x+this.translateX)/this.scale;this.translateY=(this.y+this.translateY)/this.scale}mount(t){if(t===null||this.isInViewport()===false){return}if(this.isMounted&&this.elementRef===t&&this.editor.dom.parentElement===t){return}this.elementRef=t;this.isMounted=true}mountTextEditor(t){if(t===null){return}if(this.editor.dom.parentElement===t){return}t.style.fontFamily=this.fontFamily;t.style.fontSize=`${this.fontSize}pt`;t.style.color=this.fontColor;t.style.whiteSpace="pre-wrap";t.style.wordWrap="break-word";t.innerHTML="";t.appendChild(this.editor.dom)}createEditor(){const t=this._schema.node("doc",null,[this._schema.node("paragraph")]);return new d(null,{state:p.create({doc:t,plugins:[v(w)]}),editable:()=>false,dispatchTransaction:t=>{const e=this.editor.state.apply(t);this.editor.updateState(e);if(t.docChanged){this.content=e.doc.toJSON();if(!t.getMeta("fromRemote")){this._core.store.state.objects.update(this,{temporary:true})}}}})}setContent(t){this.content=t;if(this.editor&&t){const e=this.editor.state.schema.nodeFromJSON(t);const i=this.editor.state.tr.replaceWith(0,this.editor.state.doc.content.size,e.content);i.setMeta("fromRemote",true);this.editor.dispatch(i)}}resize(t,e,i,n){if(i<=1||n<=1){return}this.width=i;this.height=n;this.translateX=t;this.translateY=e;this._core.store.state.objects.update(this)}focus(t){if(this.editor){const e=this.editor.state.doc;if(t?.x&&t?.y){const i=this.editor.posAtCoords({left:t.x,top:t.y});if(i){this.editor.dispatch(this.editor.state.tr.setSelection(b.create(e,i.pos)));this.editor.focus();if(s.isIOS()){this.scrollIntoViewOnIOS()}return}}const i=Math.max(1,e.content.size-1);this.editor.dispatch(this.editor.state.tr.setSelection(b.create(e,i)));this.editor.focus();if(s.isIOS()){this.scrollIntoViewOnIOS()}}}scrollIntoViewOnIOS(){setTimeout((()=>{if(this.editor&&this.editor.dom){this.editor.dom.scrollIntoView({behavior:"smooth",block:"center",inline:"nearest"})}}),300)}edit(t){g.disableInteractiveWidget();this.uneditedObject=this.clone();this._core.store.setState("activeTool",k.getTool("shape"));this.editor.setProps({editable:()=>true});this.isEditing=true;this._core.rerender();this.focus({x:t?.clientX,y:t?.clientY});g.enableInteractiveWidget()}save(){this.content=this.editor.state.doc.toJSON();this.editor.setProps({editable:()=>false});this.editor.dom.blur();this.isEditing=false;this._core.store.state.objects.consolidateTemporaryItems();this._core.store.state.objects.update(this);this._core.engine.emitObjectsChange()}handlePointerDown(t){if(!this.isEditing){return}t.stopPropagation()}handlePointerMove(t){if(!this.isEditing){return}t.stopPropagation()}handlePointerUp(t){if(!this.isEditing){return}t.stopPropagation()}copy(){const t=super.copy();t.editor=t.createEditor();if(this.content){t.setContent(this.content)}return t}serialize(){const{_core:t,_elementRef:e,_schema:i,element:n,totalWidth:r,totalHeight:s,editor:o,uneditedObject:a,...l}=this;const c=structuredClone(l);if(n&&typeof n==="object"&&"nodeType"in n&&n.nodeType===1){c.element=n.cloneNode(true)}return c}deserialize(t){super.deserialize(t);if(t.content){this.setContent(t.content)}return this}getClipPolygon(){const t=this.totalWidth/this.scale;const e=this.totalHeight/this.scale;const i=this.translateX+t/2;const n=this.translateY+e/2;const r=this.strokeWidth/this.scale/2;switch(this.shapeType){case ft.Ellipse:return y.getEllipsePolygonApproximation(i,n,t/2+r,e/2+r,32,this.rotation);case ft.Triangle:const s=(t,e)=>{const s=t-i;const o=e-n;const a=Math.sqrt(s*s+o*o);if(a===0)return{x:t,y:e};const l=(a+r)/a;return{x:i+s*l,y:n+o*l}};const o=this.translateX+t/2;const a=this.translateY;const l=this.translateX;const c=this.translateY+e;const u=this.translateX+t;const h=this.translateY+e;const f=s(o,a);const d=s(u,h);const p=s(l,c);if(this.rotation!==0){const t=Math.cos(this.rotation);const e=Math.sin(this.rotation);const r=r=>{const s=r.x-i;const o=r.y-n;return{x:i+s*t-o*e,y:n+s*e+o*t}};return[r(f),r(d),r(p)]}return[f,d,p];case ft.Rectangle:default:return null}}getSvgPath(){const t=this.width;const e=this.height;switch(this.shapeType){case ft.Rectangle:return`M ${this.x} ${this.y} L ${this.x+t} ${this.y} L ${this.x+t} ${this.y+e} L ${this.x} ${this.y+e} Z`;case ft.Ellipse:const i=this.x+t/2;const n=this.y+e/2;const r=t/2;const s=e/2;return`M ${i-r} ${n} A ${r} ${s} 0 1 0 ${i+r} ${n} A ${r} ${s} 0 1 0 ${i-r} ${n}`;case ft.Triangle:const o=this.x+t/2;const a=this.y;const l=this.x;const c=this.y+e;const u=this.x+t;const h=this.y+e;return`M ${o} ${a} L ${u} ${h} L ${l} ${c} Z`;default:return`M ${this.x} ${this.y} L ${this.x+t} ${this.y} L ${this.x+t} ${this.y+e} L ${this.x} ${this.y+e} Z`}}}class pt extends m{shapeType=ft.Rectangle;fillColor="transparent";strokeColor="#000000";strokeWidth=4;fontFamily="Arial";fontSize=16;fontColor="#000000";palette=["#000000","#FFFFFF","#FF0000","#00FF00","#0000FF","#FFFF00","#FF00FF","#00FFFF","#808080","#C0C0C0","#800000","#008000","#000080","#808000","#800080"];startX=0;startY=0;isDrawing=false;currentShape=null;constructor(t){super(t)}handlePointerDown(t){if(t.cancelable){t.preventDefault()}if(t.pointerType==="mouse"){const e=t.composedPath().slice(1);const i=e.find((t=>t.classList&&t.classList.contains("object")));const n=this._core.findObjectById(i?.id);const r=this._core.store.activeShape;if(r===null&&n instanceof dt){n.edit(t);return}if(r!==null&&n instanceof dt){r.save();n.edit(t);return}if(r!==null&&n instanceof dt===false){this._core.resetActiveShape();this._core.store.setState("activeTool",k.getTool("selection"));return}if(x.isLeftClick(t)===false){return}this.startDrawing(t.clientX,t.clientY)}if(t.pointerType==="touch"){const e=Array.from(this._core.store.state.pointers.values());const i=t.composedPath().slice(1);const n=i.find((t=>t.classList&&t.classList.contains("object")));const r=this._core.findObjectById(n?.id);const s=this._core.store.activeShape;if(s===null&&r instanceof dt){r.edit(t);return}if(s!==null&&r instanceof dt){s.save();r.edit(t);return}if(s!==null&&r instanceof dt===false){this._core.resetActiveShape();this._core.store.setState("activeTool",k.getTool("selection"));return}if(e.length>1){return}const o=Math.round(e[0].clientX);const a=Math.round(e[0].clientY);this.startDrawing(o,a)}}handlePointerMove(t){if(t.cancelable){t.preventDefault()}if(!this.isDrawing||!this.currentShape){return}if(t.pointerType==="mouse"){this.updateShapeSize(t.clientX,t.clientY)}if(t.pointerType==="touch"){const t=Array.from(this._core.store.state.pointers.values());if(t.length===1){const e=Math.round(t[0].clientX);const i=Math.round(t[0].clientY);this.updateShapeSize(e,i)}}}handlePointerUp(t){if(t.cancelable){t.preventDefault()}if(!this.isDrawing||!this.currentShape){return}this.finishDrawing()}startDrawing(t,e){this.startX=t-this._core.store.offsetX;this.startY=e-this._core.store.offsetY;this.isDrawing=true;this.currentShape=dt.create(this._core,{x:this.startX,y:this.startY,translateX:-this._core.store.state.translateX,translateY:-this._core.store.state.translateY,width:1,height:1,shapeType:this.shapeType,fillColor:this.fillColor,strokeColor:this.strokeColor,strokeWidth:this.strokeWidth,fontSize:this.fontSize,fontFamily:this.fontFamily,fontColor:this.fontColor});this._core.store.state.objects.insert(this.currentShape);this._core.rerender()}updateShapeSize(t,e){if(!this.currentShape){return}const i=t-this._core.store.offsetX;const n=e-this._core.store.offsetY;const r=Math.min(this.startX,i);const s=Math.min(this.startY,n);const o=Math.abs(i-this.startX);const a=Math.abs(n-this.startY);this.currentShape.x=r;this.currentShape.y=s;this.currentShape.width=Math.max(1,o);this.currentShape.height=Math.max(1,a);this.currentShape.translateX=-this._core.store.state.translateX;this.currentShape.translateY=-this._core.store.state.translateY;this.currentShape.updateDimensions();this._core.store.state.objects.update(this.currentShape)}finishDrawing(){if(!this.currentShape){return}if(this.currentShape.width<10&&this.currentShape.height<10){const t=this.currentShape.id;this._core.store.state.objects.remove((e=>e.id===t))}else{this.currentShape.zIndex=this._core.store.currentZIndex;this._core.store.state.objects.update(this.currentShape);this._core.engine.emitObjectsChange();this._core.selectObjects([this.currentShape]);this._core.store.setState("activeTool",k.getTool("selection"))}this.isDrawing=false;this.currentShape=null;this._core.rerender()}}const vt={shapeType:ft.Rectangle,fillColor:"transparent",strokeColor:"#000000",strokeWidth:4,fontColor:"#000000",fontSize:16,fontFamily:"Arial",palette:["#000000","#ff5252","#ffbc00","#00c853","#0000FF","#d500f9","#fafafa","#a52714","#ee8100","#558b2f","#01579b","#8e24aa","#90a4ae"]};const bt=1e3;const gt=1e-4;const kt="kritzel-editor{display:flex;margin:0;position:relative;overflow:hidden;width:100%;height:100%;align-items:center;justify-content:center;touch-action:manipulation;user-select:none;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}kritzel-workspace-manager{position:absolute;top:var(--kritzel-editor-workspace-manager-top, 14px);left:var(--kritzel-editor-workspace-manager-left, 14px)}kritzel-controls{position:absolute;bottom:var(--kritzel-editor-controls-bottom, 14px);transition:transform var(--kritzel-editor-controls-transition-duration, 0.1s) var(--kritzel-editor-controls-transition, ease-in-out)}kritzel-controls.keyboard-open{transform:var(--kritzel-editor-controls-transform, translateY(300%))}";const yt=class{constructor(e){t(this,e);this.isReady=n(this,"isReady");this.objectsChange=n(this,"objectsChange");this.undoStateChange=n(this,"undoStateChange")}get host(){return r(this)}scaleMax=bt;scaleMin=gt;controls=[{name:"selection",type:"tool",isDefault:true,tool:z,icon:"cursor"},{name:"brush",type:"tool",tool:o,icon:"pen",config:C},{name:"line",type:"tool",tool:M,icon:"arrow",config:S},{name:"eraser",type:"tool",tool:I,icon:"eraser"},{name:"text",type:"tool",tool:a,icon:"type",config:j},{name:"shape",type:"tool",tool:pt,icon:"shape-rectangle",config:vt,subOptions:[{id:"rectangle",icon:"shape-rectangle",label:"Rectangle",value:ft.Rectangle,toolProperty:"shapeType"},{id:"ellipse",icon:"shape-ellipse",label:"Ellipse",value:ft.Ellipse,toolProperty:"shapeType"},{id:"triangle",icon:"shape-triangle",label:"Triangle",value:ft.Triangle,toolProperty:"shapeType"}]},{name:"image",type:"tool",tool:_,icon:"image"},{name:"config",type:"config"}];globalContextMenuItems=[{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,action:t=>this.engineRef.paste(t.x,t.y)},{label:"Select All",icon:"select-all",action:()=>this.selectAllObjectsInViewport()}];objectContextMenuItems=[{label:"Copy",icon:"copy",action:()=>this.engineRef.copy()},{label:"Paste",icon:"paste",disabled:async()=>(await this.engineRef.getCopiedObjects()).length===0,action:(t,e)=>this.engineRef.paste(t.x,t.y)},{label:"Delete",icon:"delete",action:()=>this.engineRef.delete()},{label:"Bring to Front",icon:"bring-to-front",action:()=>this.engineRef.bringToFront()},{label:"Send to Back",icon:"send-to-back",action:()=>this.engineRef.sendToBack()},{label:"Group",icon:"group",disabled:async()=>(await this.engineRef.getSelectedObjects()).length<2,action:()=>this.engineRef.group()},{label:"Ungroup",icon:"ungroup",disabled:async()=>{const t=await this.engineRef.getSelectedObjects();return!t.some((t=>t.__class__==="KritzelGroup"))},action:()=>this.engineRef.ungroup()}];customSvgIcons={};isControlsVisible=true;isUtilityPanelVisible=true;syncConfig;isReady;objectsChange;undoStateChange;isEngineReady=false;isControlsReady=false;isWorkspaceManagerReady=false;workspaces=[];activeWorkspace;isVirtualKeyboardOpen=false;undoState=null;onIsEngineReady(t){if(t&&this.isControlsReady){this.checkIsReady()}}onIsControlsReady(t){if(t&&this.isEngineReady){this.checkIsReady()}}onWorkspacesChange(t){if(this.activeWorkspace){const e=t.find((t=>t.id===this.activeWorkspace.id));if(e&&e!==this.activeWorkspace){this.activeWorkspace=e}}}onTouchStart(t){if(t.cancelable){t.preventDefault()}}async getObjectById(t){return this.engineRef.getObjectById(t)}async addObject(t){return this.engineRef.addObject(t)}async updateObject(t,e){return this.engineRef.updateObject(t,e)}async removeObject(t){return this.engineRef.removeObject(t)}async getSelectedObjects(){return this.engineRef.getSelectedObjects()}async selectObjects(t){return this.engineRef.selectObjects(t)}async selectAllObjectsInViewport(){return this.engineRef.selectAllObjectsInViewport()}async clearSelection(){this.engineRef.clearSelection()}async centerObjectInViewport(t){return this.engineRef.centerObjectInViewport(t)}async createWorkspace(t,e){const i=new $(`workspace-${Date.now()}`,t,e);return this.engineRef.createWorkspace(i)}async updateWorkspace(t){return this.engineRef.updateWorkspace(t)}async deleteWorkspace(t){return this.engineRef.deleteWorkspace(t)}async getWorkspaces(){return this.engineRef.getWorkspaces()}async getActiveWorkspace(){return this.engineRef.getActiveWorkspace()}engineRef;controlsRef;splitButtonRef;componentDidLoad(){this.registerCustomSvgIcons();this.listenForMobileKeyboard();this.setOsSpecificCssVariables()}async checkIsReady(){await customElements.whenDefined("kritzel-editor");await customElements.whenDefined("kritzel-workspace-manager");await customElements.whenDefined("kritzel-controls");await customElements.whenDefined("kritzel-engine");if(!this.isEngineReady||!this.isControlsReady||!this.isWorkspaceManagerReady){return}this.isReady.emit(this.host)}onEngineReady(t){this.isEngineReady=true;this.activeWorkspace=t.detail.activeWorkspace;this.workspaces=t.detail.workspaces}handleWorkspacesChange(t){this.workspaces=t.detail}handleObjectsChange(t){this.objectsChange.emit(t.detail)}handleUndoStateChange(t){this.undoStateChange.emit(t.detail);this.undoState=t.detail}registerCustomSvgIcons(){for(const[t,e]of Object.entries(this.customSvgIcons)){T.register(t,e)}}listenForMobileKeyboard(){g.onKeyboardVisibleChanged((t=>{this.isVirtualKeyboardOpen=t}))}setOsSpecificCssVariables(){const t=s.detectOS();switch(t){case"iOS":this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px");this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px");this.host.style.setProperty("--kritzel-editor-controls-bottom","14px");this.host.style.setProperty("--kritzel-editor-controls-transition","cubic-bezier(0.25, 0.1, 0.25, 1.0)");this.host.style.setProperty("--kritzel-editor-controls-transform","translateY(200%)");this.host.style.setProperty("--kritzel-editor-controls-transition-duration","0.25s");break;case"Android":this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px");this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px");this.host.style.setProperty("--kritzel-editor-controls-bottom","24px");break;default:this.host.style.setProperty("--kritzel-editor-workspace-manager-top","14px");this.host.style.setProperty("--kritzel-editor-workspace-manager-left","14px");this.host.style.setProperty("--kritzel-editor-controls-bottom","14px");break}}render(){return e(i,{key:"dd67bea86f807f0ccd5905183e73713a015d6bee"},e("kritzel-workspace-manager",{key:"557edc7e3a131d338be6df91698ba6923e7bc50e",workspaces:this.workspaces,activeWorkspace:this.activeWorkspace,onWorkspaceChange:t=>this.activeWorkspace=t.detail,onIsWorkspaceManagerReady:()=>this.isWorkspaceManagerReady=true}),e("kritzel-engine",{key:"98969d0f2bb5a9a365885fb4765e0c04c1394caa",ref:t=>this.engineRef=t,workspace:this.activeWorkspace,syncConfig:this.syncConfig,scaleMax:this.scaleMax,scaleMin:this.scaleMin,globalContextMenuItems:this.globalContextMenuItems,objectContextMenuItems:this.objectContextMenuItems,onIsEngineReady:t=>this.onEngineReady(t),onWorkspacesChange:t=>this.handleWorkspacesChange(t),onObjectsChange:t=>this.handleObjectsChange(t),onUndoStateChange:t=>this.handleUndoStateChange(t)}),e("kritzel-controls",{key:"6092f393562af07643622c07d432f6100497aaf0",class:{"keyboard-open":this.isVirtualKeyboardOpen},style:{display:this.isControlsVisible?"flex":"none"},ref:t=>this.controlsRef=t,controls:this.controls,isUtilityPanelVisible:this.isUtilityPanelVisible,undoState:this.undoState,onIsControlsReady:()=>this.isControlsReady=true}))}static get watchers(){return{isEngineReady:["onIsEngineReady"],isControlsReady:["onIsControlsReady"],workspaces:["onWorkspacesChange"]}}};yt.style=kt;var wt={exports:{}};
2
- /**
3
- * @license
4
- * Lodash <https://lodash.com/>
5
- * Copyright OpenJS Foundation and other contributors <https://openjsf.org/>
6
- * Released under MIT license <https://lodash.com/license>
7
- * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>
8
- * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors
9
- */var mt=wt.exports;var xt;function zt(){if(xt)return wt.exports;xt=1;(function(t,e){(function(){var i;var n="4.17.21";var r=200;var s="Unsupported core-js use. Try https://npms.io/search?q=ponyfill.",o="Expected a function",a="Invalid `variable` option passed into `_.template`";var l="__lodash_hash_undefined__";var c=500;var u="__lodash_placeholder__";var h=1,f=2,d=4;var p=1,v=2;var b=1,g=2,k=4,y=8,w=16,m=32,x=64,z=128,C=256,S=512;var M=30,I="...";var j=800,_=16;var $=1,T=2,A=3;var E=1/0,O=9007199254740991,F=17976931348623157e292,W=0/0;var D=4294967295,R=D-1,P=D>>>1;var L=[["ary",z],["bind",b],["bindKey",g],["curry",y],["curryRight",w],["flip",S],["partial",m],["partialRight",x],["rearg",C]];var U="[object Arguments]",K="[object Array]",V="[object AsyncFunction]",B="[object Boolean]",H="[object Date]",Y="[object DOMException]",N="[object Error]",q="[object Function]",G="[object GeneratorFunction]",Z="[object Map]",J="[object Number]",Q="[object Null]",tt="[object Object]",et="[object Promise]",it="[object Proxy]",nt="[object RegExp]",rt="[object Set]",st="[object String]",ot="[object Symbol]",at="[object Undefined]",lt="[object WeakMap]",ct="[object WeakSet]";var ut="[object ArrayBuffer]",ht="[object DataView]",ft="[object Float32Array]",dt="[object Float64Array]",pt="[object Int8Array]",vt="[object Int16Array]",bt="[object Int32Array]",gt="[object Uint8Array]",kt="[object Uint8ClampedArray]",yt="[object Uint16Array]",wt="[object Uint32Array]";var mt=/\b__p \+= '';/g,xt=/\b(__p \+=) '' \+/g,zt=/(__e\(.*?\)|\b__t\)) \+\n'';/g;var Ct=/&(?:amp|lt|gt|quot|#39);/g,St=/[&<>"']/g,Mt=RegExp(Ct.source),It=RegExp(St.source);var jt=/<%-([\s\S]+?)%>/g,_t=/<%([\s\S]+?)%>/g,$t=/<%=([\s\S]+?)%>/g;var Tt=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,At=/^\w*$/,Et=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g;var Ot=/[\\^$.*+?()[\]{}|]/g,Ft=RegExp(Ot.source);var Wt=/^\s+/;var Dt=/\s/;var Rt=/\{(?:\n\/\* \[wrapped with .+\] \*\/)?\n?/,Pt=/\{\n\/\* \[wrapped with (.+)\] \*/,Lt=/,? & /;var Ut=/[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;var Kt=/[()=,{}\[\]\/\s]/;var Vt=/\\(\\)?/g;var Bt=/\$\{([^\\}]*(?:\\.[^\\}]*)*)\}/g;var Ht=/\w*$/;var Yt=/^[-+]0x[0-9a-f]+$/i;var Nt=/^0b[01]+$/i;var Xt=/^\[object .+?Constructor\]$/;var qt=/^0o[0-7]+$/i;var Gt=/^(?:0|[1-9]\d*)$/;var Zt=/[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;var Jt=/($^)/;var Qt=/['\n\r\u2028\u2029\\]/g;var te="\\ud800-\\udfff",ee="\\u0300-\\u036f",ie="\\ufe20-\\ufe2f",ne="\\u20d0-\\u20ff",re=ee+ie+ne,se="\\u2700-\\u27bf",oe="a-z\\xdf-\\xf6\\xf8-\\xff",ae="\\xac\\xb1\\xd7\\xf7",le="\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf",ce="\\u2000-\\u206f",ue=" \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000",he="A-Z\\xc0-\\xd6\\xd8-\\xde",fe="\\ufe0e\\ufe0f",de=ae+le+ce+ue;var pe="['’]",ve="["+te+"]",be="["+de+"]",ge="["+re+"]",ke="\\d+",ye="["+se+"]",we="["+oe+"]",me="[^"+te+de+ke+se+oe+he+"]",xe="\\ud83c[\\udffb-\\udfff]",ze="(?:"+ge+"|"+xe+")",Ce="[^"+te+"]",Se="(?:\\ud83c[\\udde6-\\uddff]){2}",Me="[\\ud800-\\udbff][\\udc00-\\udfff]",Ie="["+he+"]",je="\\u200d";var _e="(?:"+we+"|"+me+")",$e="(?:"+Ie+"|"+me+")",Te="(?:"+pe+"(?:d|ll|m|re|s|t|ve))?",Ae="(?:"+pe+"(?:D|LL|M|RE|S|T|VE))?",Ee=ze+"?",Oe="["+fe+"]?",Fe="(?:"+je+"(?:"+[Ce,Se,Me].join("|")+")"+Oe+Ee+")*",We="\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])",De="\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])",Re=Oe+Ee+Fe,Pe="(?:"+[ye,Se,Me].join("|")+")"+Re,Le="(?:"+[Ce+ge+"?",ge,Se,Me,ve].join("|")+")";var Ue=RegExp(pe,"g");var Ke=RegExp(ge,"g");var Ve=RegExp(xe+"(?="+xe+")|"+Le+Re,"g");var Be=RegExp([Ie+"?"+we+"+"+Te+"(?="+[be,Ie,"$"].join("|")+")",$e+"+"+Ae+"(?="+[be,Ie+_e,"$"].join("|")+")",Ie+"?"+_e+"+"+Te,Ie+"+"+Ae,De,We,ke,Pe].join("|"),"g");var He=RegExp("["+je+te+re+fe+"]");var Ye=/[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;var Ne=["Array","Buffer","DataView","Date","Error","Float32Array","Float64Array","Function","Int8Array","Int16Array","Int32Array","Map","Math","Object","Promise","RegExp","Set","String","Symbol","TypeError","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","_","clearTimeout","isFinite","parseInt","setTimeout"];var Xe=-1;var qe={};qe[ft]=qe[dt]=qe[pt]=qe[vt]=qe[bt]=qe[gt]=qe[kt]=qe[yt]=qe[wt]=true;qe[U]=qe[K]=qe[ut]=qe[B]=qe[ht]=qe[H]=qe[N]=qe[q]=qe[Z]=qe[J]=qe[tt]=qe[nt]=qe[rt]=qe[st]=qe[lt]=false;var Ge={};Ge[U]=Ge[K]=Ge[ut]=Ge[ht]=Ge[B]=Ge[H]=Ge[ft]=Ge[dt]=Ge[pt]=Ge[vt]=Ge[bt]=Ge[Z]=Ge[J]=Ge[tt]=Ge[nt]=Ge[rt]=Ge[st]=Ge[ot]=Ge[gt]=Ge[kt]=Ge[yt]=Ge[wt]=true;Ge[N]=Ge[q]=Ge[lt]=false;var Ze={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"A",Å:"A",à:"a",á:"a",â:"a",ã:"a",ä:"a",å:"a",Ç:"C",ç:"c",Ð:"D",ð:"d",È:"E",É:"E",Ê:"E",Ë:"E",è:"e",é:"e",ê:"e",ë:"e",Ì:"I",Í:"I",Î:"I",Ï:"I",ì:"i",í:"i",î:"i",ï:"i",Ñ:"N",ñ:"n",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"O",Ø:"O",ò:"o",ó:"o",ô:"o",õ:"o",ö:"o",ø:"o",Ù:"U",Ú:"U",Û:"U",Ü:"U",ù:"u",ú:"u",û:"u",ü:"u",Ý:"Y",ý:"y",ÿ:"y",Æ:"Ae",æ:"ae",Þ:"Th",þ:"th",ß:"ss",Ā:"A",Ă:"A",Ą:"A",ā:"a",ă:"a",ą:"a",Ć:"C",Ĉ:"C",Ċ:"C",Č:"C",ć:"c",ĉ:"c",ċ:"c",č:"c",Ď:"D",Đ:"D",ď:"d",đ:"d",Ē:"E",Ĕ:"E",Ė:"E",Ę:"E",Ě:"E",ē:"e",ĕ:"e",ė:"e",ę:"e",ě:"e",Ĝ:"G",Ğ:"G",Ġ:"G",Ģ:"G",ĝ:"g",ğ:"g",ġ:"g",ģ:"g",Ĥ:"H",Ħ:"H",ĥ:"h",ħ:"h",Ĩ:"I",Ī:"I",Ĭ:"I",Į:"I",İ:"I",ĩ:"i",ī:"i",ĭ:"i",į:"i",ı:"i",Ĵ:"J",ĵ:"j",Ķ:"K",ķ:"k",ĸ:"k",Ĺ:"L",Ļ:"L",Ľ:"L",Ŀ:"L",Ł:"L",ĺ:"l",ļ:"l",ľ:"l",ŀ:"l",ł:"l",Ń:"N",Ņ:"N",Ň:"N",Ŋ:"N",ń:"n",ņ:"n",ň:"n",ŋ:"n",Ō:"O",Ŏ:"O",Ő:"O",ō:"o",ŏ:"o",ő:"o",Ŕ:"R",Ŗ:"R",Ř:"R",ŕ:"r",ŗ:"r",ř:"r",Ś:"S",Ŝ:"S",Ş:"S",Š:"S",ś:"s",ŝ:"s",ş:"s",š:"s",Ţ:"T",Ť:"T",Ŧ:"T",ţ:"t",ť:"t",ŧ:"t",Ũ:"U",Ū:"U",Ŭ:"U",Ů:"U",Ű:"U",Ų:"U",ũ:"u",ū:"u",ŭ:"u",ů:"u",ű:"u",ų:"u",Ŵ:"W",ŵ:"w",Ŷ:"Y",ŷ:"y",Ÿ:"Y",Ź:"Z",Ż:"Z",Ž:"Z",ź:"z",ż:"z",ž:"z",IJ:"IJ",ij:"ij",Œ:"Oe",œ:"oe",ʼn:"'n",ſ:"s"};var Je={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};var Qe={"&amp;":"&","&lt;":"<","&gt;":">","&quot;":'"',"&#39;":"'"};var ti={"\\":"\\","'":"'","\n":"n","\r":"r","\u2028":"u2028","\u2029":"u2029"};var ei=parseFloat,ii=parseInt;var ni=typeof X=="object"&&X&&X.Object===Object&&X;var ri=typeof self=="object"&&self&&self.Object===Object&&self;var si=ni||ri||Function("return this")();var oi=e&&!e.nodeType&&e;var ai=oi&&"object"=="object"&&t&&!t.nodeType&&t;var li=ai&&ai.exports===oi;var ci=li&&ni.process;var ui=function(){try{var t=ai&&ai.require&&ai.require("util").types;if(t){return t}return ci&&ci.binding&&ci.binding("util")}catch(t){}}();var hi=ui&&ui.isArrayBuffer,fi=ui&&ui.isDate,di=ui&&ui.isMap,pi=ui&&ui.isRegExp,vi=ui&&ui.isSet,bi=ui&&ui.isTypedArray;function gi(t,e,i){switch(i.length){case 0:return t.call(e);case 1:return t.call(e,i[0]);case 2:return t.call(e,i[0],i[1]);case 3:return t.call(e,i[0],i[1],i[2])}return t.apply(e,i)}function ki(t,e,i,n){var r=-1,s=t==null?0:t.length;while(++r<s){var o=t[r];e(n,o,i(o),t)}return n}function yi(t,e){var i=-1,n=t==null?0:t.length;while(++i<n){if(e(t[i],i,t)===false){break}}return t}function wi(t,e){var i=t==null?0:t.length;while(i--){if(e(t[i],i,t)===false){break}}return t}function mi(t,e){var i=-1,n=t==null?0:t.length;while(++i<n){if(!e(t[i],i,t)){return false}}return true}function xi(t,e){var i=-1,n=t==null?0:t.length,r=0,s=[];while(++i<n){var o=t[i];if(e(o,i,t)){s[r++]=o}}return s}function zi(t,e){var i=t==null?0:t.length;return!!i&&Fi(t,e,0)>-1}function Ci(t,e,i){var n=-1,r=t==null?0:t.length;while(++n<r){if(i(e,t[n])){return true}}return false}function Si(t,e){var i=-1,n=t==null?0:t.length,r=Array(n);while(++i<n){r[i]=e(t[i],i,t)}return r}function Mi(t,e){var i=-1,n=e.length,r=t.length;while(++i<n){t[r+i]=e[i]}return t}function Ii(t,e,i,n){var r=-1,s=t==null?0:t.length;if(n&&s){i=t[++r]}while(++r<s){i=e(i,t[r],r,t)}return i}function ji(t,e,i,n){var r=t==null?0:t.length;if(n&&r){i=t[--r]}while(r--){i=e(i,t[r],r,t)}return i}function _i(t,e){var i=-1,n=t==null?0:t.length;while(++i<n){if(e(t[i],i,t)){return true}}return false}var $i=Pi("length");function Ti(t){return t.split("")}function Ai(t){return t.match(Ut)||[]}function Ei(t,e,i){var n;i(t,(function(t,i,r){if(e(t,i,r)){n=i;return false}}));return n}function Oi(t,e,i,n){var r=t.length,s=i+(n?1:-1);while(n?s--:++s<r){if(e(t[s],s,t)){return s}}return-1}function Fi(t,e,i){return e===e?fn(t,e,i):Oi(t,Di,i)}function Wi(t,e,i,n){var r=i-1,s=t.length;while(++r<s){if(n(t[r],e)){return r}}return-1}function Di(t){return t!==t}function Ri(t,e){var i=t==null?0:t.length;return i?Vi(t,e)/i:W}function Pi(t){return function(e){return e==null?i:e[t]}}function Li(t){return function(e){return t==null?i:t[e]}}function Ui(t,e,i,n,r){r(t,(function(t,r,s){i=n?(n=false,t):e(i,t,r,s)}));return i}function Ki(t,e){var i=t.length;t.sort(e);while(i--){t[i]=t[i].value}return t}function Vi(t,e){var n,r=-1,s=t.length;while(++r<s){var o=e(t[r]);if(o!==i){n=n===i?o:n+o}}return n}function Bi(t,e){var i=-1,n=Array(t);while(++i<t){n[i]=e(i)}return n}function Hi(t,e){return Si(e,(function(e){return[e,t[e]]}))}function Yi(t){return t?t.slice(0,bn(t)+1).replace(Wt,""):t}function Ni(t){return function(e){return t(e)}}function Xi(t,e){return Si(e,(function(e){return t[e]}))}function qi(t,e){return t.has(e)}function Gi(t,e){var i=-1,n=t.length;while(++i<n&&Fi(e,t[i],0)>-1){}return i}function Zi(t,e){var i=t.length;while(i--&&Fi(e,t[i],0)>-1){}return i}function Ji(t,e){var i=t.length,n=0;while(i--){if(t[i]===e){++n}}return n}var Qi=Li(Ze);var tn=Li(Je);function en(t){return"\\"+ti[t]}function nn(t,e){return t==null?i:t[e]}function rn(t){return He.test(t)}function sn(t){return Ye.test(t)}function on(t){var e,i=[];while(!(e=t.next()).done){i.push(e.value)}return i}function an(t){var e=-1,i=Array(t.size);t.forEach((function(t,n){i[++e]=[n,t]}));return i}function ln(t,e){return function(i){return t(e(i))}}function cn(t,e){var i=-1,n=t.length,r=0,s=[];while(++i<n){var o=t[i];if(o===e||o===u){t[i]=u;s[r++]=i}}return s}function un(t){var e=-1,i=Array(t.size);t.forEach((function(t){i[++e]=t}));return i}function hn(t){var e=-1,i=Array(t.size);t.forEach((function(t){i[++e]=[t,t]}));return i}function fn(t,e,i){var n=i-1,r=t.length;while(++n<r){if(t[n]===e){return n}}return-1}function dn(t,e,i){var n=i+1;while(n--){if(t[n]===e){return n}}return n}function pn(t){return rn(t)?kn(t):$i(t)}function vn(t){return rn(t)?yn(t):Ti(t)}function bn(t){var e=t.length;while(e--&&Dt.test(t.charAt(e))){}return e}var gn=Li(Qe);function kn(t){var e=Ve.lastIndex=0;while(Ve.test(t)){++e}return e}function yn(t){return t.match(Ve)||[]}function wn(t){return t.match(Be)||[]}var mn=function t(e){e=e==null?si:xn.defaults(si.Object(),e,xn.pick(si,Ne));var X=e.Array,Dt=e.Date,Ut=e.Error,te=e.Function,ee=e.Math,ie=e.Object,ne=e.RegExp,re=e.String,se=e.TypeError;var oe=X.prototype,ae=te.prototype,le=ie.prototype;var ce=e["__core-js_shared__"];var ue=ae.toString;var he=le.hasOwnProperty;var fe=0;var de=function(){var t=/[^.]+$/.exec(ce&&ce.keys&&ce.keys.IE_PROTO||"");return t?"Symbol(src)_1."+t:""}();var pe=le.toString;var ve=ue.call(ie);var be=si._;var ge=ne("^"+ue.call(he).replace(Ot,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");var ke=li?e.Buffer:i,ye=e.Symbol,we=e.Uint8Array,me=ke?ke.allocUnsafe:i,xe=ln(ie.getPrototypeOf,ie),ze=ie.create,Ce=le.propertyIsEnumerable,Se=oe.splice,Me=ye?ye.isConcatSpreadable:i,Ie=ye?ye.iterator:i,je=ye?ye.toStringTag:i;var _e=function(){try{var t=No(ie,"defineProperty");t({},"",{});return t}catch(t){}}();var $e=e.clearTimeout!==si.clearTimeout&&e.clearTimeout,Te=Dt&&Dt.now!==si.Date.now&&Dt.now,Ae=e.setTimeout!==si.setTimeout&&e.setTimeout;var Ee=ee.ceil,Oe=ee.floor,Fe=ie.getOwnPropertySymbols,We=ke?ke.isBuffer:i,De=e.isFinite,Re=oe.join,Pe=ln(ie.keys,ie),Le=ee.max,Ve=ee.min,Be=Dt.now,He=e.parseInt,Ye=ee.random,Ze=oe.reverse;var Je=No(e,"DataView"),Qe=No(e,"Map"),ti=No(e,"Promise"),ni=No(e,"Set"),ri=No(e,"WeakMap"),oi=No(ie,"create");var ai=ri&&new ri;var ci={};var ui=Aa(Je),$i=Aa(Qe),Ti=Aa(ti),Li=Aa(ni),fn=Aa(ri);var kn=ye?ye.prototype:i,yn=kn?kn.valueOf:i,mn=kn?kn.toString:i;function zn(t){if(Su(t)&&!lu(t)&&!(t instanceof In)){if(t instanceof Mn){return t}if(he.call(t,"__wrapped__")){return Oa(t)}}return new Mn(t)}var Cn=function(){function t(){}return function(e){if(!Cu(e)){return{}}if(ze){return ze(e)}t.prototype=e;var n=new t;t.prototype=i;return n}}();function Sn(){}function Mn(t,e){this.__wrapped__=t;this.__actions__=[];this.__chain__=!!e;this.__index__=0;this.__values__=i}zn.templateSettings={escape:jt,evaluate:_t,interpolate:$t,variable:"",imports:{_:zn}};zn.prototype=Sn.prototype;zn.prototype.constructor=zn;Mn.prototype=Cn(Sn.prototype);Mn.prototype.constructor=Mn;function In(t){this.__wrapped__=t;this.__actions__=[];this.__dir__=1;this.__filtered__=false;this.__iteratees__=[];this.__takeCount__=D;this.__views__=[]}function jn(){var t=new In(this.__wrapped__);t.__actions__=no(this.__actions__);t.__dir__=this.__dir__;t.__filtered__=this.__filtered__;t.__iteratees__=no(this.__iteratees__);t.__takeCount__=this.__takeCount__;t.__views__=no(this.__views__);return t}function _n(){if(this.__filtered__){var t=new In(this);t.__dir__=-1;t.__filtered__=true}else{t=this.clone();t.__dir__*=-1}return t}function $n(){var t=this.__wrapped__.value(),e=this.__dir__,i=lu(t),n=e<0,r=i?t.length:0,s=Jo(0,r,this.__views__),o=s.start,a=s.end,l=a-o,c=n?a:o-1,u=this.__iteratees__,h=u.length,f=0,d=Ve(l,this.__takeCount__);if(!i||!n&&r==l&&d==l){return Rs(t,this.__actions__)}var p=[];t:while(l--&&f<d){c+=e;var v=-1,b=t[c];while(++v<h){var g=u[v],k=g.iteratee,y=g.type,w=k(b);if(y==T){b=w}else if(!w){if(y==$){continue t}else{break t}}}p[f++]=b}return p}In.prototype=Cn(Sn.prototype);In.prototype.constructor=In;function Tn(t){var e=-1,i=t==null?0:t.length;this.clear();while(++e<i){var n=t[e];this.set(n[0],n[1])}}function An(){this.__data__=oi?oi(null):{};this.size=0}function En(t){var e=this.has(t)&&delete this.__data__[t];this.size-=e?1:0;return e}function On(t){var e=this.__data__;if(oi){var n=e[t];return n===l?i:n}return he.call(e,t)?e[t]:i}function Fn(t){var e=this.__data__;return oi?e[t]!==i:he.call(e,t)}function Wn(t,e){var n=this.__data__;this.size+=this.has(t)?0:1;n[t]=oi&&e===i?l:e;return this}Tn.prototype.clear=An;Tn.prototype["delete"]=En;Tn.prototype.get=On;Tn.prototype.has=Fn;Tn.prototype.set=Wn;function Dn(t){var e=-1,i=t==null?0:t.length;this.clear();while(++e<i){var n=t[e];this.set(n[0],n[1])}}function Rn(){this.__data__=[];this.size=0}function Pn(t){var e=this.__data__,i=ur(e,t);if(i<0){return false}var n=e.length-1;if(i==n){e.pop()}else{Se.call(e,i,1)}--this.size;return true}function Ln(t){var e=this.__data__,n=ur(e,t);return n<0?i:e[n][1]}function Un(t){return ur(this.__data__,t)>-1}function Kn(t,e){var i=this.__data__,n=ur(i,t);if(n<0){++this.size;i.push([t,e])}else{i[n][1]=e}return this}Dn.prototype.clear=Rn;Dn.prototype["delete"]=Pn;Dn.prototype.get=Ln;Dn.prototype.has=Un;Dn.prototype.set=Kn;function Vn(t){var e=-1,i=t==null?0:t.length;this.clear();while(++e<i){var n=t[e];this.set(n[0],n[1])}}function Bn(){this.size=0;this.__data__={hash:new Tn,map:new(Qe||Dn),string:new Tn}}function Hn(t){var e=Ho(this,t)["delete"](t);this.size-=e?1:0;return e}function Yn(t){return Ho(this,t).get(t)}function Nn(t){return Ho(this,t).has(t)}function Xn(t,e){var i=Ho(this,t),n=i.size;i.set(t,e);this.size+=i.size==n?0:1;return this}Vn.prototype.clear=Bn;Vn.prototype["delete"]=Hn;Vn.prototype.get=Yn;Vn.prototype.has=Nn;Vn.prototype.set=Xn;function qn(t){var e=-1,i=t==null?0:t.length;this.__data__=new Vn;while(++e<i){this.add(t[e])}}function Gn(t){this.__data__.set(t,l);return this}function Zn(t){return this.__data__.has(t)}qn.prototype.add=qn.prototype.push=Gn;qn.prototype.has=Zn;function Jn(t){var e=this.__data__=new Dn(t);this.size=e.size}function Qn(){this.__data__=new Dn;this.size=0}function tr(t){var e=this.__data__,i=e["delete"](t);this.size=e.size;return i}function er(t){return this.__data__.get(t)}function ir(t){return this.__data__.has(t)}function nr(t,e){var i=this.__data__;if(i instanceof Dn){var n=i.__data__;if(!Qe||n.length<r-1){n.push([t,e]);this.size=++i.size;return this}i=this.__data__=new Vn(n)}i.set(t,e);this.size=i.size;return this}Jn.prototype.clear=Qn;Jn.prototype["delete"]=tr;Jn.prototype.get=er;Jn.prototype.has=ir;Jn.prototype.set=nr;function rr(t,e){var i=lu(t),n=!i&&au(t),r=!i&&!n&&du(t),s=!i&&!n&&!r&&Lu(t),o=i||n||r||s,a=o?Bi(t.length,re):[],l=a.length;for(var c in t){if((e||he.call(t,c))&&!(o&&(c=="length"||r&&(c=="offset"||c=="parent")||s&&(c=="buffer"||c=="byteLength"||c=="byteOffset")||oa(c,l)))){a.push(c)}}return a}function sr(t){var e=t.length;return e?t[gs(0,e-1)]:i}function or(t,e){return _a(no(t),br(e,0,t.length))}function ar(t){return _a(no(t))}function lr(t,e,n){if(n!==i&&!ru(t[e],n)||n===i&&!(e in t)){pr(t,e,n)}}function cr(t,e,n){var r=t[e];if(!(he.call(t,e)&&ru(r,n))||n===i&&!(e in t)){pr(t,e,n)}}function ur(t,e){var i=t.length;while(i--){if(ru(t[i][0],e)){return i}}return-1}function hr(t,e,i,n){xr(t,(function(t,r,s){e(n,t,i(t),s)}));return n}function fr(t,e){return t&&ro(e,xh(e),t)}function dr(t,e){return t&&ro(e,zh(e),t)}function pr(t,e,i){if(e=="__proto__"&&_e){_e(t,e,{configurable:true,enumerable:true,value:i,writable:true})}else{t[e]=i}}function vr(t,e){var n=-1,r=e.length,s=X(r),o=t==null;while(++n<r){s[n]=o?i:bh(t,e[n])}return s}function br(t,e,n){if(t===t){if(n!==i){t=t<=n?t:n}if(e!==i){t=t>=e?t:e}}return t}function gr(t,e,n,r,s,o){var a,l=e&h,c=e&f,u=e&d;if(n){a=s?n(t,r,s,o):n(t)}if(a!==i){return a}if(!Cu(t)){return t}var p=lu(t);if(p){a=ea(t);if(!l){return no(t,a)}}else{var v=Zo(t),b=v==q||v==G;if(du(t)){return Ns(t,l)}if(v==tt||v==U||b&&!s){a=c||b?{}:ia(t);if(!l){return c?oo(t,dr(a,t)):so(t,fr(a,t))}}else{if(!Ge[v]){return s?t:{}}a=na(t,v,l)}}o||(o=new Jn);var g=o.get(t);if(g){return g}o.set(t,a);if(Du(t)){t.forEach((function(i){a.add(gr(i,e,n,i,t,o))}))}else if(Mu(t)){t.forEach((function(i,r){a.set(r,gr(i,e,n,r,t,o))}))}var k=u?c?Lo:Po:c?zh:xh;var y=p?i:k(t);yi(y||t,(function(i,r){if(y){r=i;i=t[r]}cr(a,r,gr(i,e,n,r,t,o))}));return a}function kr(t){var e=xh(t);return function(i){return yr(i,t,e)}}function yr(t,e,n){var r=n.length;if(t==null){return!r}t=ie(t);while(r--){var s=n[r],o=e[s],a=t[s];if(a===i&&!(s in t)||!o(a)){return false}}return true}function wr(t,e,n){if(typeof t!="function"){throw new se(o)}return Sa((function(){t.apply(i,n)}),e)}function mr(t,e,i,n){var s=-1,o=zi,a=true,l=t.length,c=[],u=e.length;if(!l){return c}if(i){e=Si(e,Ni(i))}if(n){o=Ci;a=false}else if(e.length>=r){o=qi;a=false;e=new qn(e)}t:while(++s<l){var h=t[s],f=i==null?h:i(h);h=n||h!==0?h:0;if(a&&f===f){var d=u;while(d--){if(e[d]===f){continue t}}c.push(h)}else if(!o(e,f,n)){c.push(h)}}return c}var xr=co(Tr);var zr=co(Ar,true);function Cr(t,e){var i=true;xr(t,(function(t,n,r){i=!!e(t,n,r);return i}));return i}function Sr(t,e,n){var r=-1,s=t.length;while(++r<s){var o=t[r],a=e(o);if(a!=null&&(l===i?a===a&&!Pu(a):n(a,l))){var l=a,c=o}}return c}function Mr(t,e,n,r){var s=t.length;n=Xu(n);if(n<0){n=-n>s?0:s+n}r=r===i||r>s?s:Xu(r);if(r<0){r+=s}r=n>r?0:qu(r);while(n<r){t[n++]=e}return t}function Ir(t,e){var i=[];xr(t,(function(t,n,r){if(e(t,n,r)){i.push(t)}}));return i}function jr(t,e,i,n,r){var s=-1,o=t.length;i||(i=sa);r||(r=[]);while(++s<o){var a=t[s];if(e>0&&i(a)){if(e>1){jr(a,e-1,i,n,r)}else{Mi(r,a)}}else if(!n){r[r.length]=a}}return r}var _r=uo();var $r=uo(true);function Tr(t,e){return t&&_r(t,e,xh)}function Ar(t,e){return t&&$r(t,e,xh)}function Er(t,e){return xi(e,(function(e){return mu(t[e])}))}function Or(t,e){e=Vs(e,t);var n=0,r=e.length;while(t!=null&&n<r){t=t[Ta(e[n++])]}return n&&n==r?t:i}function Fr(t,e,i){var n=e(t);return lu(t)?n:Mi(n,i(t))}function Wr(t){if(t==null){return t===i?at:Q}return je&&je in ie(t)?Xo(t):ya(t)}function Dr(t,e){return t>e}function Rr(t,e){return t!=null&&he.call(t,e)}function Pr(t,e){return t!=null&&e in ie(t)}function Lr(t,e,i){return t>=Ve(e,i)&&t<Le(e,i)}function Ur(t,e,n){var r=n?Ci:zi,s=t[0].length,o=t.length,a=o,l=X(o),c=Infinity,u=[];while(a--){var h=t[a];if(a&&e){h=Si(h,Ni(e))}c=Ve(h.length,c);l[a]=!n&&(e||s>=120&&h.length>=120)?new qn(a&&h):i}h=t[0];var f=-1,d=l[0];t:while(++f<s&&u.length<c){var p=h[f],v=e?e(p):p;p=n||p!==0?p:0;if(!(d?qi(d,v):r(u,v,n))){a=o;while(--a){var b=l[a];if(!(b?qi(b,v):r(t[a],v,n))){continue t}}if(d){d.push(v)}u.push(p)}}return u}function Kr(t,e,i,n){Tr(t,(function(t,r,s){e(n,i(t),r,s)}));return n}function Vr(t,e,n){e=Vs(e,t);t=ma(t,e);var r=t==null?t:t[Ta(sl(e))];return r==null?i:gi(r,t,n)}function Br(t){return Su(t)&&Wr(t)==U}function Hr(t){return Su(t)&&Wr(t)==ut}function Yr(t){return Su(t)&&Wr(t)==H}function Nr(t,e,i,n,r){if(t===e){return true}if(t==null||e==null||!Su(t)&&!Su(e)){return t!==t&&e!==e}return Xr(t,e,i,n,Nr,r)}function Xr(t,e,i,n,r,s){var o=lu(t),a=lu(e),l=o?K:Zo(t),c=a?K:Zo(e);l=l==U?tt:l;c=c==U?tt:c;var u=l==tt,h=c==tt,f=l==c;if(f&&du(t)){if(!du(e)){return false}o=true;u=false}if(f&&!u){s||(s=new Jn);return o||Lu(t)?Fo(t,e,i,n,r,s):Wo(t,e,l,i,n,r,s)}if(!(i&p)){var d=u&&he.call(t,"__wrapped__"),v=h&&he.call(e,"__wrapped__");if(d||v){var b=d?t.value():t,g=v?e.value():e;s||(s=new Jn);return r(b,g,i,n,s)}}if(!f){return false}s||(s=new Jn);return Do(t,e,i,n,r,s)}function qr(t){return Su(t)&&Zo(t)==Z}function Gr(t,e,n,r){var s=n.length,o=s,a=!r;if(t==null){return!o}t=ie(t);while(s--){var l=n[s];if(a&&l[2]?l[1]!==t[l[0]]:!(l[0]in t)){return false}}while(++s<o){l=n[s];var c=l[0],u=t[c],h=l[1];if(a&&l[2]){if(u===i&&!(c in t)){return false}}else{var f=new Jn;if(r){var d=r(u,h,c,t,e,f)}if(!(d===i?Nr(h,u,p|v,r,f):d)){return false}}}return true}function Zr(t){if(!Cu(t)||ha(t)){return false}var e=mu(t)?ge:Xt;return e.test(Aa(t))}function Jr(t){return Su(t)&&Wr(t)==nt}function Qr(t){return Su(t)&&Zo(t)==rt}function ts(t){return Su(t)&&zu(t.length)&&!!qe[Wr(t)]}function es(t){if(typeof t=="function"){return t}if(t==null){return Tf}if(typeof t=="object"){return lu(t)?as(t[0],t[1]):os(t)}return Bf(t)}function is(t){if(!da(t)){return Pe(t)}var e=[];for(var i in ie(t)){if(he.call(t,i)&&i!="constructor"){e.push(i)}}return e}function ns(t){if(!Cu(t)){return ka(t)}var e=da(t),i=[];for(var n in t){if(!(n=="constructor"&&(e||!he.call(t,n)))){i.push(n)}}return i}function rs(t,e){return t<e}function ss(t,e){var i=-1,n=uu(t)?X(t.length):[];xr(t,(function(t,r,s){n[++i]=e(t,r,s)}));return n}function os(t){var e=Yo(t);if(e.length==1&&e[0][2]){return va(e[0][0],e[0][1])}return function(i){return i===t||Gr(i,t,e)}}function as(t,e){if(la(t)&&pa(e)){return va(Ta(t),e)}return function(n){var r=bh(n,t);return r===i&&r===e?kh(n,t):Nr(e,r,p|v)}}function ls(t,e,n,r,s){if(t===e){return}_r(e,(function(o,a){s||(s=new Jn);if(Cu(o)){cs(t,e,a,n,ls,r,s)}else{var l=r?r(za(t,a),o,a+"",t,e,s):i;if(l===i){l=o}lr(t,a,l)}}),zh)}function cs(t,e,n,r,s,o,a){var l=za(t,n),c=za(e,n),u=a.get(c);if(u){lr(t,n,u);return}var h=o?o(l,c,n+"",t,e,a):i;var f=h===i;if(f){var d=lu(c),p=!d&&du(c),v=!d&&!p&&Lu(c);h=c;if(d||p||v){if(lu(l)){h=l}else if(hu(l)){h=no(l)}else if(p){f=false;h=Ns(c,true)}else if(v){f=false;h=Js(c,true)}else{h=[]}}else if(Ou(c)||au(c)){h=l;if(au(l)){h=Zu(l)}else if(!Cu(l)||mu(l)){h=ia(c)}}else{f=false}}if(f){a.set(c,h);s(h,c,r,o,a);a["delete"](c)}lr(t,n,h)}function us(t,e){var n=t.length;if(!n){return}e+=e<0?n:0;return oa(e,n)?t[e]:i}function hs(t,e,i){if(e.length){e=Si(e,(function(t){if(lu(t)){return function(e){return Or(e,t.length===1?t[0]:t)}}return t}))}else{e=[Tf]}var n=-1;e=Si(e,Ni(Bo()));var r=ss(t,(function(t,i,r){var s=Si(e,(function(e){return e(t)}));return{criteria:s,index:++n,value:t}}));return Ki(r,(function(t,e){return to(t,e,i)}))}function fs(t,e){return ds(t,e,(function(e,i){return kh(t,i)}))}function ds(t,e,i){var n=-1,r=e.length,s={};while(++n<r){var o=e[n],a=Or(t,o);if(i(a,o)){zs(s,Vs(o,t),a)}}return s}function ps(t){return function(e){return Or(e,t)}}function vs(t,e,i,n){var r=n?Wi:Fi,s=-1,o=e.length,a=t;if(t===e){e=no(e)}if(i){a=Si(t,Ni(i))}while(++s<o){var l=0,c=e[s],u=i?i(c):c;while((l=r(a,u,l,n))>-1){if(a!==t){Se.call(a,l,1)}Se.call(t,l,1)}}return t}function bs(t,e){var i=t?e.length:0,n=i-1;while(i--){var r=e[i];if(i==n||r!==s){var s=r;if(oa(r)){Se.call(t,r,1)}else{Fs(t,r)}}}return t}function gs(t,e){return t+Oe(Ye()*(e-t+1))}function ks(t,e,i,n){var r=-1,s=Le(Ee((e-t)/(i||1)),0),o=X(s);while(s--){o[n?s:++r]=t;t+=i}return o}function ys(t,e){var i="";if(!t||e<1||e>O){return i}do{if(e%2){i+=t}e=Oe(e/2);if(e){t+=t}}while(e);return i}function ws(t,e){return Ma(wa(t,e,Tf),t+"")}function ms(t){return sr(Uh(t))}function xs(t,e){var i=Uh(t);return _a(i,br(e,0,i.length))}function zs(t,e,n,r){if(!Cu(t)){return t}e=Vs(e,t);var s=-1,o=e.length,a=o-1,l=t;while(l!=null&&++s<o){var c=Ta(e[s]),u=n;if(c==="__proto__"||c==="constructor"||c==="prototype"){return t}if(s!=a){var h=l[c];u=r?r(h,c,l):i;if(u===i){u=Cu(h)?h:oa(e[s+1])?[]:{}}}cr(l,c,u);l=l[c]}return t}var Cs=!ai?Tf:function(t,e){ai.set(t,e);return t};var Ss=!_e?Tf:function(t,e){return _e(t,"toString",{configurable:true,enumerable:false,value:If(e),writable:true})};function Ms(t){return _a(Uh(t))}function Is(t,e,i){var n=-1,r=t.length;if(e<0){e=-e>r?0:r+e}i=i>r?r:i;if(i<0){i+=r}r=e>i?0:i-e>>>0;e>>>=0;var s=X(r);while(++n<r){s[n]=t[n+e]}return s}function js(t,e){var i;xr(t,(function(t,n,r){i=e(t,n,r);return!i}));return!!i}function _s(t,e,i){var n=0,r=t==null?n:t.length;if(typeof e=="number"&&e===e&&r<=P){while(n<r){var s=n+r>>>1,o=t[s];if(o!==null&&!Pu(o)&&(i?o<=e:o<e)){n=s+1}else{r=s}}return r}return $s(t,e,Tf,i)}function $s(t,e,n,r){var s=0,o=t==null?0:t.length;if(o===0){return 0}e=n(e);var a=e!==e,l=e===null,c=Pu(e),u=e===i;while(s<o){var h=Oe((s+o)/2),f=n(t[h]),d=f!==i,p=f===null,v=f===f,b=Pu(f);if(a){var g=r||v}else if(u){g=v&&(r||d)}else if(l){g=v&&d&&(r||!p)}else if(c){g=v&&d&&!p&&(r||!b)}else if(p||b){g=false}else{g=r?f<=e:f<e}if(g){s=h+1}else{o=h}}return Ve(o,R)}function Ts(t,e){var i=-1,n=t.length,r=0,s=[];while(++i<n){var o=t[i],a=e?e(o):o;if(!i||!ru(a,l)){var l=a;s[r++]=o===0?0:o}}return s}function As(t){if(typeof t=="number"){return t}if(Pu(t)){return W}return+t}function Es(t){if(typeof t=="string"){return t}if(lu(t)){return Si(t,Es)+""}if(Pu(t)){return mn?mn.call(t):""}var e=t+"";return e=="0"&&1/t==-Infinity?"-0":e}function Os(t,e,i){var n=-1,s=zi,o=t.length,a=true,l=[],c=l;if(i){a=false;s=Ci}else if(o>=r){var u=e?null:_o(t);if(u){return un(u)}a=false;s=qi;c=new qn}else{c=e?[]:l}t:while(++n<o){var h=t[n],f=e?e(h):h;h=i||h!==0?h:0;if(a&&f===f){var d=c.length;while(d--){if(c[d]===f){continue t}}if(e){c.push(f)}l.push(h)}else if(!s(c,f,i)){if(c!==l){c.push(f)}l.push(h)}}return l}function Fs(t,e){e=Vs(e,t);t=ma(t,e);return t==null||delete t[Ta(sl(e))]}function Ws(t,e,i,n){return zs(t,e,i(Or(t,e)),n)}function Ds(t,e,i,n){var r=t.length,s=n?r:-1;while((n?s--:++s<r)&&e(t[s],s,t)){}return i?Is(t,n?0:s,n?s+1:r):Is(t,n?s+1:0,n?r:s)}function Rs(t,e){var i=t;if(i instanceof In){i=i.value()}return Ii(e,(function(t,e){return e.func.apply(e.thisArg,Mi([t],e.args))}),i)}function Ps(t,e,i){var n=t.length;if(n<2){return n?Os(t[0]):[]}var r=-1,s=X(n);while(++r<n){var o=t[r],a=-1;while(++a<n){if(a!=r){s[r]=mr(s[r]||o,t[a],e,i)}}}return Os(jr(s,1),e,i)}function Ls(t,e,n){var r=-1,s=t.length,o=e.length,a={};while(++r<s){var l=r<o?e[r]:i;n(a,t[r],l)}return a}function Us(t){return hu(t)?t:[]}function Ks(t){return typeof t=="function"?t:Tf}function Vs(t,e){if(lu(t)){return t}return la(t,e)?[t]:$a(Qu(t))}var Bs=ws;function Hs(t,e,n){var r=t.length;n=n===i?r:n;return!e&&n>=r?t:Is(t,e,n)}var Ys=$e||function(t){return si.clearTimeout(t)};function Ns(t,e){if(e){return t.slice()}var i=t.length,n=me?me(i):new t.constructor(i);t.copy(n);return n}function Xs(t){var e=new t.constructor(t.byteLength);new we(e).set(new we(t));return e}function qs(t,e){var i=e?Xs(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.byteLength)}function Gs(t){var e=new t.constructor(t.source,Ht.exec(t));e.lastIndex=t.lastIndex;return e}function Zs(t){return yn?ie(yn.call(t)):{}}function Js(t,e){var i=e?Xs(t.buffer):t.buffer;return new t.constructor(i,t.byteOffset,t.length)}function Qs(t,e){if(t!==e){var n=t!==i,r=t===null,s=t===t,o=Pu(t);var a=e!==i,l=e===null,c=e===e,u=Pu(e);if(!l&&!u&&!o&&t>e||o&&a&&c&&!l&&!u||r&&a&&c||!n&&c||!s){return 1}if(!r&&!o&&!u&&t<e||u&&n&&s&&!r&&!o||l&&n&&s||!a&&s||!c){return-1}}return 0}function to(t,e,i){var n=-1,r=t.criteria,s=e.criteria,o=r.length,a=i.length;while(++n<o){var l=Qs(r[n],s[n]);if(l){if(n>=a){return l}var c=i[n];return l*(c=="desc"?-1:1)}}return t.index-e.index}function eo(t,e,i,n){var r=-1,s=t.length,o=i.length,a=-1,l=e.length,c=Le(s-o,0),u=X(l+c),h=!n;while(++a<l){u[a]=e[a]}while(++r<o){if(h||r<s){u[i[r]]=t[r]}}while(c--){u[a++]=t[r++]}return u}function io(t,e,i,n){var r=-1,s=t.length,o=-1,a=i.length,l=-1,c=e.length,u=Le(s-a,0),h=X(u+c),f=!n;while(++r<u){h[r]=t[r]}var d=r;while(++l<c){h[d+l]=e[l]}while(++o<a){if(f||r<s){h[d+i[o]]=t[r++]}}return h}function no(t,e){var i=-1,n=t.length;e||(e=X(n));while(++i<n){e[i]=t[i]}return e}function ro(t,e,n,r){var s=!n;n||(n={});var o=-1,a=e.length;while(++o<a){var l=e[o];var c=r?r(n[l],t[l],l,n,t):i;if(c===i){c=t[l]}if(s){pr(n,l,c)}else{cr(n,l,c)}}return n}function so(t,e){return ro(t,qo(t),e)}function oo(t,e){return ro(t,Go(t),e)}function ao(t,e){return function(i,n){var r=lu(i)?ki:hr,s=e?e():{};return r(i,t,Bo(n,2),s)}}function lo(t){return ws((function(e,n){var r=-1,s=n.length,o=s>1?n[s-1]:i,a=s>2?n[2]:i;o=t.length>3&&typeof o=="function"?(s--,o):i;if(a&&aa(n[0],n[1],a)){o=s<3?i:o;s=1}e=ie(e);while(++r<s){var l=n[r];if(l){t(e,l,r,o)}}return e}))}function co(t,e){return function(i,n){if(i==null){return i}if(!uu(i)){return t(i,n)}var r=i.length,s=e?r:-1,o=ie(i);while(e?s--:++s<r){if(n(o[s],s,o)===false){break}}return i}}function uo(t){return function(e,i,n){var r=-1,s=ie(e),o=n(e),a=o.length;while(a--){var l=o[t?a:++r];if(i(s[l],l,s)===false){break}}return e}}function ho(t,e,i){var n=e&b,r=vo(t);function s(){var e=this&&this!==si&&this instanceof s?r:t;return e.apply(n?i:this,arguments)}return s}function fo(t){return function(e){e=Qu(e);var n=rn(e)?vn(e):i;var r=n?n[0]:e.charAt(0);var s=n?Hs(n,1).join(""):e.slice(1);return r[t]()+s}}function po(t){return function(e){return Ii(xf(Xh(e).replace(Ue,"")),t,"")}}function vo(t){return function(){var e=arguments;switch(e.length){case 0:return new t;case 1:return new t(e[0]);case 2:return new t(e[0],e[1]);case 3:return new t(e[0],e[1],e[2]);case 4:return new t(e[0],e[1],e[2],e[3]);case 5:return new t(e[0],e[1],e[2],e[3],e[4]);case 6:return new t(e[0],e[1],e[2],e[3],e[4],e[5]);case 7:return new t(e[0],e[1],e[2],e[3],e[4],e[5],e[6])}var i=Cn(t.prototype),n=t.apply(i,e);return Cu(n)?n:i}}function bo(t,e,n){var r=vo(t);function s(){var o=arguments.length,a=X(o),l=o,c=Vo(s);while(l--){a[l]=arguments[l]}var u=o<3&&a[0]!==c&&a[o-1]!==c?[]:cn(a,c);o-=u.length;if(o<n){return Io(t,e,yo,s.placeholder,i,a,u,i,i,n-o)}var h=this&&this!==si&&this instanceof s?r:t;return gi(h,this,a)}return s}function go(t){return function(e,n,r){var s=ie(e);if(!uu(e)){var o=Bo(n,3);e=xh(e);n=function(t){return o(s[t],t,s)}}var a=t(e,n,r);return a>-1?s[o?e[a]:a]:i}}function ko(t){return Ro((function(e){var n=e.length,r=n,s=Mn.prototype.thru;if(t){e.reverse()}while(r--){var a=e[r];if(typeof a!="function"){throw new se(o)}if(s&&!l&&Ko(a)=="wrapper"){var l=new Mn([],true)}}r=l?r:n;while(++r<n){a=e[r];var c=Ko(a),u=c=="wrapper"?Uo(a):i;if(u&&ua(u[0])&&u[1]==(z|y|m|C)&&!u[4].length&&u[9]==1){l=l[Ko(u[0])].apply(l,u[3])}else{l=a.length==1&&ua(a)?l[c]():l.thru(a)}}return function(){var t=arguments,i=t[0];if(l&&t.length==1&&lu(i)){return l.plant(i).value()}var r=0,s=n?e[r].apply(this,t):i;while(++r<n){s=e[r].call(this,s)}return s}}))}function yo(t,e,n,r,s,o,a,l,c,u){var h=e&z,f=e&b,d=e&g,p=e&(y|w),v=e&S,k=d?i:vo(t);function m(){var i=arguments.length,b=X(i),g=i;while(g--){b[g]=arguments[g]}if(p){var y=Vo(m),w=Ji(b,y)}if(r){b=eo(b,r,s,p)}if(o){b=io(b,o,a,p)}i-=w;if(p&&i<u){var x=cn(b,y);return Io(t,e,yo,m.placeholder,n,b,x,l,c,u-i)}var z=f?n:this,C=d?z[t]:t;i=b.length;if(l){b=xa(b,l)}else if(v&&i>1){b.reverse()}if(h&&c<i){b.length=c}if(this&&this!==si&&this instanceof m){C=k||vo(C)}return C.apply(z,b)}return m}function wo(t,e){return function(i,n){return Kr(i,t,e(n),{})}}function mo(t,e){return function(n,r){var s;if(n===i&&r===i){return e}if(n!==i){s=n}if(r!==i){if(s===i){return r}if(typeof n=="string"||typeof r=="string"){n=Es(n);r=Es(r)}else{n=As(n);r=As(r)}s=t(n,r)}return s}}function xo(t){return Ro((function(e){e=Si(e,Ni(Bo()));return ws((function(i){var n=this;return t(e,(function(t){return gi(t,n,i)}))}))}))}function zo(t,e){e=e===i?" ":Es(e);var n=e.length;if(n<2){return n?ys(e,t):e}var r=ys(e,Ee(t/pn(e)));return rn(e)?Hs(vn(r),0,t).join(""):r.slice(0,t)}function Co(t,e,i,n){var r=e&b,s=vo(t);function o(){var e=-1,a=arguments.length,l=-1,c=n.length,u=X(c+a),h=this&&this!==si&&this instanceof o?s:t;while(++l<c){u[l]=n[l]}while(a--){u[l++]=arguments[++e]}return gi(h,r?i:this,u)}return o}function So(t){return function(e,n,r){if(r&&typeof r!="number"&&aa(e,n,r)){n=r=i}e=Nu(e);if(n===i){n=e;e=0}else{n=Nu(n)}r=r===i?e<n?1:-1:Nu(r);return ks(e,n,r,t)}}function Mo(t){return function(e,i){if(!(typeof e=="string"&&typeof i=="string")){e=Gu(e);i=Gu(i)}return t(e,i)}}function Io(t,e,n,r,s,o,a,l,c,u){var h=e&y,f=h?a:i,d=h?i:a,p=h?o:i,v=h?i:o;e|=h?m:x;e&=~(h?x:m);if(!(e&k)){e&=-4}var b=[t,e,s,p,f,v,d,l,c,u];var g=n.apply(i,b);if(ua(t)){Ca(g,b)}g.placeholder=r;return Ia(g,t,e)}function jo(t){var e=ee[t];return function(t,i){t=Gu(t);i=i==null?0:Ve(Xu(i),292);if(i&&De(t)){var n=(Qu(t)+"e").split("e"),r=e(n[0]+"e"+(+n[1]+i));n=(Qu(r)+"e").split("e");return+(n[0]+"e"+(+n[1]-i))}return e(t)}}var _o=!(ni&&1/un(new ni([,-0]))[1]==E)?Pf:function(t){return new ni(t)};function $o(t){return function(e){var i=Zo(e);if(i==Z){return an(e)}if(i==rt){return hn(e)}return Hi(e,t(e))}}function To(t,e,n,r,s,a,l,c){var u=e&g;if(!u&&typeof t!="function"){throw new se(o)}var h=r?r.length:0;if(!h){e&=-97;r=s=i}l=l===i?l:Le(Xu(l),0);c=c===i?c:Xu(c);h-=s?s.length:0;if(e&x){var f=r,d=s;r=s=i}var p=u?i:Uo(t);var v=[t,e,n,r,s,f,d,a,l,c];if(p){ga(v,p)}t=v[0];e=v[1];n=v[2];r=v[3];s=v[4];c=v[9]=v[9]===i?u?0:t.length:Le(v[9]-h,0);if(!c&&e&(y|w)){e&=-25}if(!e||e==b){var k=ho(t,e,n)}else if(e==y||e==w){k=bo(t,e,c)}else if((e==m||e==(b|m))&&!s.length){k=Co(t,e,n,r)}else{k=yo.apply(i,v)}var z=p?Cs:Ca;return Ia(z(k,v),t,e)}function Ao(t,e,n,r){if(t===i||ru(t,le[n])&&!he.call(r,n)){return e}return t}function Eo(t,e,n,r,s,o){if(Cu(t)&&Cu(e)){o.set(e,t);ls(t,e,i,Eo,o);o["delete"](e)}return t}function Oo(t){return Ou(t)?i:t}function Fo(t,e,n,r,s,o){var a=n&p,l=t.length,c=e.length;if(l!=c&&!(a&&c>l)){return false}var u=o.get(t);var h=o.get(e);if(u&&h){return u==e&&h==t}var f=-1,d=true,b=n&v?new qn:i;o.set(t,e);o.set(e,t);while(++f<l){var g=t[f],k=e[f];if(r){var y=a?r(k,g,f,e,t,o):r(g,k,f,t,e,o)}if(y!==i){if(y){continue}d=false;break}if(b){if(!_i(e,(function(t,e){if(!qi(b,e)&&(g===t||s(g,t,n,r,o))){return b.push(e)}}))){d=false;break}}else if(!(g===k||s(g,k,n,r,o))){d=false;break}}o["delete"](t);o["delete"](e);return d}function Wo(t,e,i,n,r,s,o){switch(i){case ht:if(t.byteLength!=e.byteLength||t.byteOffset!=e.byteOffset){return false}t=t.buffer;e=e.buffer;case ut:if(t.byteLength!=e.byteLength||!s(new we(t),new we(e))){return false}return true;case B:case H:case J:return ru(+t,+e);case N:return t.name==e.name&&t.message==e.message;case nt:case st:return t==e+"";case Z:var a=an;case rt:var l=n&p;a||(a=un);if(t.size!=e.size&&!l){return false}var c=o.get(t);if(c){return c==e}n|=v;o.set(t,e);var u=Fo(a(t),a(e),n,r,s,o);o["delete"](t);return u;case ot:if(yn){return yn.call(t)==yn.call(e)}}return false}function Do(t,e,n,r,s,o){var a=n&p,l=Po(t),c=l.length,u=Po(e),h=u.length;if(c!=h&&!a){return false}var f=c;while(f--){var d=l[f];if(!(a?d in e:he.call(e,d))){return false}}var v=o.get(t);var b=o.get(e);if(v&&b){return v==e&&b==t}var g=true;o.set(t,e);o.set(e,t);var k=a;while(++f<c){d=l[f];var y=t[d],w=e[d];if(r){var m=a?r(w,y,d,e,t,o):r(y,w,d,t,e,o)}if(!(m===i?y===w||s(y,w,n,r,o):m)){g=false;break}k||(k=d=="constructor")}if(g&&!k){var x=t.constructor,z=e.constructor;if(x!=z&&("constructor"in t&&"constructor"in e)&&!(typeof x=="function"&&x instanceof x&&typeof z=="function"&&z instanceof z)){g=false}}o["delete"](t);o["delete"](e);return g}function Ro(t){return Ma(wa(t,i,Xa),t+"")}function Po(t){return Fr(t,xh,qo)}function Lo(t){return Fr(t,zh,Go)}var Uo=!ai?Pf:function(t){return ai.get(t)};function Ko(t){var e=t.name+"",i=ci[e],n=he.call(ci,e)?i.length:0;while(n--){var r=i[n],s=r.func;if(s==null||s==t){return r.name}}return e}function Vo(t){var e=he.call(zn,"placeholder")?zn:t;return e.placeholder}function Bo(){var t=zn.iteratee||Af;t=t===Af?es:t;return arguments.length?t(arguments[0],arguments[1]):t}function Ho(t,e){var i=t.__data__;return ca(e)?i[typeof e=="string"?"string":"hash"]:i.map}function Yo(t){var e=xh(t),i=e.length;while(i--){var n=e[i],r=t[n];e[i]=[n,r,pa(r)]}return e}function No(t,e){var n=nn(t,e);return Zr(n)?n:i}function Xo(t){var e=he.call(t,je),n=t[je];try{t[je]=i;var r=true}catch(t){}var s=pe.call(t);if(r){if(e){t[je]=n}else{delete t[je]}}return s}var qo=!Fe?Xf:function(t){if(t==null){return[]}t=ie(t);return xi(Fe(t),(function(e){return Ce.call(t,e)}))};var Go=!Fe?Xf:function(t){var e=[];while(t){Mi(e,qo(t));t=xe(t)}return e};var Zo=Wr;if(Je&&Zo(new Je(new ArrayBuffer(1)))!=ht||Qe&&Zo(new Qe)!=Z||ti&&Zo(ti.resolve())!=et||ni&&Zo(new ni)!=rt||ri&&Zo(new ri)!=lt){Zo=function(t){var e=Wr(t),n=e==tt?t.constructor:i,r=n?Aa(n):"";if(r){switch(r){case ui:return ht;case $i:return Z;case Ti:return et;case Li:return rt;case fn:return lt}}return e}}function Jo(t,e,i){var n=-1,r=i.length;while(++n<r){var s=i[n],o=s.size;switch(s.type){case"drop":t+=o;break;case"dropRight":e-=o;break;case"take":e=Ve(e,t+o);break;case"takeRight":t=Le(t,e-o);break}}return{start:t,end:e}}function Qo(t){var e=t.match(Pt);return e?e[1].split(Lt):[]}function ta(t,e,i){e=Vs(e,t);var n=-1,r=e.length,s=false;while(++n<r){var o=Ta(e[n]);if(!(s=t!=null&&i(t,o))){break}t=t[o]}if(s||++n!=r){return s}r=t==null?0:t.length;return!!r&&zu(r)&&oa(o,r)&&(lu(t)||au(t))}function ea(t){var e=t.length,i=new t.constructor(e);if(e&&typeof t[0]=="string"&&he.call(t,"index")){i.index=t.index;i.input=t.input}return i}function ia(t){return typeof t.constructor=="function"&&!da(t)?Cn(xe(t)):{}}function na(t,e,i){var n=t.constructor;switch(e){case ut:return Xs(t);case B:case H:return new n(+t);case ht:return qs(t,i);case ft:case dt:case pt:case vt:case bt:case gt:case kt:case yt:case wt:return Js(t,i);case Z:return new n;case J:case st:return new n(t);case nt:return Gs(t);case rt:return new n;case ot:return Zs(t)}}function ra(t,e){var i=e.length;if(!i){return t}var n=i-1;e[n]=(i>1?"& ":"")+e[n];e=e.join(i>2?", ":" ");return t.replace(Rt,"{\n/* [wrapped with "+e+"] */\n")}function sa(t){return lu(t)||au(t)||!!(Me&&t&&t[Me])}function oa(t,e){var i=typeof t;e=e==null?O:e;return!!e&&(i=="number"||i!="symbol"&&Gt.test(t))&&(t>-1&&t%1==0&&t<e)}function aa(t,e,i){if(!Cu(i)){return false}var n=typeof e;if(n=="number"?uu(i)&&oa(e,i.length):n=="string"&&e in i){return ru(i[e],t)}return false}function la(t,e){if(lu(t)){return false}var i=typeof t;if(i=="number"||i=="symbol"||i=="boolean"||t==null||Pu(t)){return true}return At.test(t)||!Tt.test(t)||e!=null&&t in ie(e)}function ca(t){var e=typeof t;return e=="string"||e=="number"||e=="symbol"||e=="boolean"?t!=="__proto__":t===null}function ua(t){var e=Ko(t),i=zn[e];if(typeof i!="function"||!(e in In.prototype)){return false}if(t===i){return true}var n=Uo(i);return!!n&&t===n[0]}function ha(t){return!!de&&de in t}var fa=ce?mu:qf;function da(t){var e=t&&t.constructor,i=typeof e=="function"&&e.prototype||le;return t===i}function pa(t){return t===t&&!Cu(t)}function va(t,e){return function(n){if(n==null){return false}return n[t]===e&&(e!==i||t in ie(n))}}function ba(t){var e=Lc(t,(function(t){if(i.size===c){i.clear()}return t}));var i=e.cache;return e}function ga(t,e){var i=t[1],n=e[1],r=i|n,s=r<(b|g|z);var o=n==z&&i==y||n==z&&i==C&&t[7].length<=e[8]||n==(z|C)&&e[7].length<=e[8]&&i==y;if(!(s||o)){return t}if(n&b){t[2]=e[2];r|=i&b?0:k}var a=e[3];if(a){var l=t[3];t[3]=l?eo(l,a,e[4]):a;t[4]=l?cn(t[3],u):e[4]}a=e[5];if(a){l=t[5];t[5]=l?io(l,a,e[6]):a;t[6]=l?cn(t[5],u):e[6]}a=e[7];if(a){t[7]=a}if(n&z){t[8]=t[8]==null?e[8]:Ve(t[8],e[8])}if(t[9]==null){t[9]=e[9]}t[0]=e[0];t[1]=r;return t}function ka(t){var e=[];if(t!=null){for(var i in ie(t)){e.push(i)}}return e}function ya(t){return pe.call(t)}function wa(t,e,n){e=Le(e===i?t.length-1:e,0);return function(){var i=arguments,r=-1,s=Le(i.length-e,0),o=X(s);while(++r<s){o[r]=i[e+r]}r=-1;var a=X(e+1);while(++r<e){a[r]=i[r]}a[e]=n(o);return gi(t,this,a)}}function ma(t,e){return e.length<2?t:Or(t,Is(e,0,-1))}function xa(t,e){var n=t.length,r=Ve(e.length,n),s=no(t);while(r--){var o=e[r];t[r]=oa(o,n)?s[o]:i}return t}function za(t,e){if(e==="constructor"&&typeof t[e]==="function"){return}if(e=="__proto__"){return}return t[e]}var Ca=ja(Cs);var Sa=Ae||function(t,e){return si.setTimeout(t,e)};var Ma=ja(Ss);function Ia(t,e,i){var n=e+"";return Ma(t,ra(n,Ea(Qo(n),i)))}function ja(t){var e=0,n=0;return function(){var r=Be(),s=_-(r-n);n=r;if(s>0){if(++e>=j){return arguments[0]}}else{e=0}return t.apply(i,arguments)}}function _a(t,e){var n=-1,r=t.length,s=r-1;e=e===i?r:e;while(++n<e){var o=gs(n,s),a=t[o];t[o]=t[n];t[n]=a}t.length=e;return t}var $a=ba((function(t){var e=[];if(t.charCodeAt(0)===46){e.push("")}t.replace(Et,(function(t,i,n,r){e.push(n?r.replace(Vt,"$1"):i||t)}));return e}));function Ta(t){if(typeof t=="string"||Pu(t)){return t}var e=t+"";return e=="0"&&1/t==-Infinity?"-0":e}function Aa(t){if(t!=null){try{return ue.call(t)}catch(t){}try{return t+""}catch(t){}}return""}function Ea(t,e){yi(L,(function(i){var n="_."+i[0];if(e&i[1]&&!zi(t,n)){t.push(n)}}));return t.sort()}function Oa(t){if(t instanceof In){return t.clone()}var e=new Mn(t.__wrapped__,t.__chain__);e.__actions__=no(t.__actions__);e.__index__=t.__index__;e.__values__=t.__values__;return e}function Fa(t,e,n){if(n?aa(t,e,n):e===i){e=1}else{e=Le(Xu(e),0)}var r=t==null?0:t.length;if(!r||e<1){return[]}var s=0,o=0,a=X(Ee(r/e));while(s<r){a[o++]=Is(t,s,s+=e)}return a}function Wa(t){var e=-1,i=t==null?0:t.length,n=0,r=[];while(++e<i){var s=t[e];if(s){r[n++]=s}}return r}function Da(){var t=arguments.length;if(!t){return[]}var e=X(t-1),i=arguments[0],n=t;while(n--){e[n-1]=arguments[n]}return Mi(lu(i)?no(i):[i],jr(e,1))}var Ra=ws((function(t,e){return hu(t)?mr(t,jr(e,1,hu,true)):[]}));var Pa=ws((function(t,e){var n=sl(e);if(hu(n)){n=i}return hu(t)?mr(t,jr(e,1,hu,true),Bo(n,2)):[]}));var La=ws((function(t,e){var n=sl(e);if(hu(n)){n=i}return hu(t)?mr(t,jr(e,1,hu,true),i,n):[]}));function Ua(t,e,n){var r=t==null?0:t.length;if(!r){return[]}e=n||e===i?1:Xu(e);return Is(t,e<0?0:e,r)}function Ka(t,e,n){var r=t==null?0:t.length;if(!r){return[]}e=n||e===i?1:Xu(e);e=r-e;return Is(t,0,e<0?0:e)}function Va(t,e){return t&&t.length?Ds(t,Bo(e,3),true,true):[]}function Ba(t,e){return t&&t.length?Ds(t,Bo(e,3),true):[]}function Ha(t,e,i,n){var r=t==null?0:t.length;if(!r){return[]}if(i&&typeof i!="number"&&aa(t,e,i)){i=0;n=r}return Mr(t,e,i,n)}function Ya(t,e,i){var n=t==null?0:t.length;if(!n){return-1}var r=i==null?0:Xu(i);if(r<0){r=Le(n+r,0)}return Oi(t,Bo(e,3),r)}function Na(t,e,n){var r=t==null?0:t.length;if(!r){return-1}var s=r-1;if(n!==i){s=Xu(n);s=n<0?Le(r+s,0):Ve(s,r-1)}return Oi(t,Bo(e,3),s,true)}function Xa(t){var e=t==null?0:t.length;return e?jr(t,1):[]}function qa(t){var e=t==null?0:t.length;return e?jr(t,E):[]}function Ga(t,e){var n=t==null?0:t.length;if(!n){return[]}e=e===i?1:Xu(e);return jr(t,e)}function Za(t){var e=-1,i=t==null?0:t.length,n={};while(++e<i){var r=t[e];n[r[0]]=r[1]}return n}function Ja(t){return t&&t.length?t[0]:i}function Qa(t,e,i){var n=t==null?0:t.length;if(!n){return-1}var r=i==null?0:Xu(i);if(r<0){r=Le(n+r,0)}return Fi(t,e,r)}function tl(t){var e=t==null?0:t.length;return e?Is(t,0,-1):[]}var el=ws((function(t){var e=Si(t,Us);return e.length&&e[0]===t[0]?Ur(e):[]}));var il=ws((function(t){var e=sl(t),n=Si(t,Us);if(e===sl(n)){e=i}else{n.pop()}return n.length&&n[0]===t[0]?Ur(n,Bo(e,2)):[]}));var nl=ws((function(t){var e=sl(t),n=Si(t,Us);e=typeof e=="function"?e:i;if(e){n.pop()}return n.length&&n[0]===t[0]?Ur(n,i,e):[]}));function rl(t,e){return t==null?"":Re.call(t,e)}function sl(t){var e=t==null?0:t.length;return e?t[e-1]:i}function ol(t,e,n){var r=t==null?0:t.length;if(!r){return-1}var s=r;if(n!==i){s=Xu(n);s=s<0?Le(r+s,0):Ve(s,r-1)}return e===e?dn(t,e,s):Oi(t,Di,s,true)}function al(t,e){return t&&t.length?us(t,Xu(e)):i}var ll=ws(cl);function cl(t,e){return t&&t.length&&e&&e.length?vs(t,e):t}function ul(t,e,i){return t&&t.length&&e&&e.length?vs(t,e,Bo(i,2)):t}function hl(t,e,n){return t&&t.length&&e&&e.length?vs(t,e,i,n):t}var fl=Ro((function(t,e){var i=t==null?0:t.length,n=vr(t,e);bs(t,Si(e,(function(t){return oa(t,i)?+t:t})).sort(Qs));return n}));function dl(t,e){var i=[];if(!(t&&t.length)){return i}var n=-1,r=[],s=t.length;e=Bo(e,3);while(++n<s){var o=t[n];if(e(o,n,t)){i.push(o);r.push(n)}}bs(t,r);return i}function pl(t){return t==null?t:Ze.call(t)}function vl(t,e,n){var r=t==null?0:t.length;if(!r){return[]}if(n&&typeof n!="number"&&aa(t,e,n)){e=0;n=r}else{e=e==null?0:Xu(e);n=n===i?r:Xu(n)}return Is(t,e,n)}function bl(t,e){return _s(t,e)}function gl(t,e,i){return $s(t,e,Bo(i,2))}function kl(t,e){var i=t==null?0:t.length;if(i){var n=_s(t,e);if(n<i&&ru(t[n],e)){return n}}return-1}function yl(t,e){return _s(t,e,true)}function wl(t,e,i){return $s(t,e,Bo(i,2),true)}function ml(t,e){var i=t==null?0:t.length;if(i){var n=_s(t,e,true)-1;if(ru(t[n],e)){return n}}return-1}function xl(t){return t&&t.length?Ts(t):[]}function zl(t,e){return t&&t.length?Ts(t,Bo(e,2)):[]}function Cl(t){var e=t==null?0:t.length;return e?Is(t,1,e):[]}function Sl(t,e,n){if(!(t&&t.length)){return[]}e=n||e===i?1:Xu(e);return Is(t,0,e<0?0:e)}function Ml(t,e,n){var r=t==null?0:t.length;if(!r){return[]}e=n||e===i?1:Xu(e);e=r-e;return Is(t,e<0?0:e,r)}function Il(t,e){return t&&t.length?Ds(t,Bo(e,3),false,true):[]}function jl(t,e){return t&&t.length?Ds(t,Bo(e,3)):[]}var _l=ws((function(t){return Os(jr(t,1,hu,true))}));var $l=ws((function(t){var e=sl(t);if(hu(e)){e=i}return Os(jr(t,1,hu,true),Bo(e,2))}));var Tl=ws((function(t){var e=sl(t);e=typeof e=="function"?e:i;return Os(jr(t,1,hu,true),i,e)}));function Al(t){return t&&t.length?Os(t):[]}function El(t,e){return t&&t.length?Os(t,Bo(e,2)):[]}function Ol(t,e){e=typeof e=="function"?e:i;return t&&t.length?Os(t,i,e):[]}function Fl(t){if(!(t&&t.length)){return[]}var e=0;t=xi(t,(function(t){if(hu(t)){e=Le(t.length,e);return true}}));return Bi(e,(function(e){return Si(t,Pi(e))}))}function Wl(t,e){if(!(t&&t.length)){return[]}var n=Fl(t);if(e==null){return n}return Si(n,(function(t){return gi(e,i,t)}))}var Dl=ws((function(t,e){return hu(t)?mr(t,e):[]}));var Rl=ws((function(t){return Ps(xi(t,hu))}));var Pl=ws((function(t){var e=sl(t);if(hu(e)){e=i}return Ps(xi(t,hu),Bo(e,2))}));var Ll=ws((function(t){var e=sl(t);e=typeof e=="function"?e:i;return Ps(xi(t,hu),i,e)}));var Ul=ws(Fl);function Kl(t,e){return Ls(t||[],e||[],cr)}function Vl(t,e){return Ls(t||[],e||[],zs)}var Bl=ws((function(t){var e=t.length,n=e>1?t[e-1]:i;n=typeof n=="function"?(t.pop(),n):i;return Wl(t,n)}));function Hl(t){var e=zn(t);e.__chain__=true;return e}function Yl(t,e){e(t);return t}function Nl(t,e){return e(t)}var Xl=Ro((function(t){var e=t.length,n=e?t[0]:0,r=this.__wrapped__,s=function(e){return vr(e,t)};if(e>1||this.__actions__.length||!(r instanceof In)||!oa(n)){return this.thru(s)}r=r.slice(n,+n+(e?1:0));r.__actions__.push({func:Nl,args:[s],thisArg:i});return new Mn(r,this.__chain__).thru((function(t){if(e&&!t.length){t.push(i)}return t}))}));function ql(){return Hl(this)}function Gl(){return new Mn(this.value(),this.__chain__)}function Zl(){if(this.__values__===i){this.__values__=Yu(this.value())}var t=this.__index__>=this.__values__.length,e=t?i:this.__values__[this.__index__++];return{done:t,value:e}}function Jl(){return this}function Ql(t){var e,n=this;while(n instanceof Sn){var r=Oa(n);r.__index__=0;r.__values__=i;if(e){s.__wrapped__=r}else{e=r}var s=r;n=n.__wrapped__}s.__wrapped__=t;return e}function tc(){var t=this.__wrapped__;if(t instanceof In){var e=t;if(this.__actions__.length){e=new In(this)}e=e.reverse();e.__actions__.push({func:Nl,args:[pl],thisArg:i});return new Mn(e,this.__chain__)}return this.thru(pl)}function ec(){return Rs(this.__wrapped__,this.__actions__)}var ic=ao((function(t,e,i){if(he.call(t,i)){++t[i]}else{pr(t,i,1)}}));function nc(t,e,n){var r=lu(t)?mi:Cr;if(n&&aa(t,e,n)){e=i}return r(t,Bo(e,3))}function rc(t,e){var i=lu(t)?xi:Ir;return i(t,Bo(e,3))}var sc=go(Ya);var oc=go(Na);function ac(t,e){return jr(bc(t,e),1)}function lc(t,e){return jr(bc(t,e),E)}function cc(t,e,n){n=n===i?1:Xu(n);return jr(bc(t,e),n)}function uc(t,e){var i=lu(t)?yi:xr;return i(t,Bo(e,3))}function hc(t,e){var i=lu(t)?wi:zr;return i(t,Bo(e,3))}var fc=ao((function(t,e,i){if(he.call(t,i)){t[i].push(e)}else{pr(t,i,[e])}}));function dc(t,e,i,n){t=uu(t)?t:Uh(t);i=i&&!n?Xu(i):0;var r=t.length;if(i<0){i=Le(r+i,0)}return Ru(t)?i<=r&&t.indexOf(e,i)>-1:!!r&&Fi(t,e,i)>-1}var pc=ws((function(t,e,i){var n=-1,r=typeof e=="function",s=uu(t)?X(t.length):[];xr(t,(function(t){s[++n]=r?gi(e,t,i):Vr(t,e,i)}));return s}));var vc=ao((function(t,e,i){pr(t,i,e)}));function bc(t,e){var i=lu(t)?Si:ss;return i(t,Bo(e,3))}function gc(t,e,n,r){if(t==null){return[]}if(!lu(e)){e=e==null?[]:[e]}n=r?i:n;if(!lu(n)){n=n==null?[]:[n]}return hs(t,e,n)}var kc=ao((function(t,e,i){t[i?0:1].push(e)}),(function(){return[[],[]]}));function yc(t,e,i){var n=lu(t)?Ii:Ui,r=arguments.length<3;return n(t,Bo(e,4),i,r,xr)}function wc(t,e,i){var n=lu(t)?ji:Ui,r=arguments.length<3;return n(t,Bo(e,4),i,r,zr)}function mc(t,e){var i=lu(t)?xi:Ir;return i(t,Uc(Bo(e,3)))}function xc(t){var e=lu(t)?sr:ms;return e(t)}function zc(t,e,n){if(n?aa(t,e,n):e===i){e=1}else{e=Xu(e)}var r=lu(t)?or:xs;return r(t,e)}function Cc(t){var e=lu(t)?ar:Ms;return e(t)}function Sc(t){if(t==null){return 0}if(uu(t)){return Ru(t)?pn(t):t.length}var e=Zo(t);if(e==Z||e==rt){return t.size}return is(t).length}function Mc(t,e,n){var r=lu(t)?_i:js;if(n&&aa(t,e,n)){e=i}return r(t,Bo(e,3))}var Ic=ws((function(t,e){if(t==null){return[]}var i=e.length;if(i>1&&aa(t,e[0],e[1])){e=[]}else if(i>2&&aa(e[0],e[1],e[2])){e=[e[0]]}return hs(t,jr(e,1),[])}));var jc=Te||function(){return si.Date.now()};function _c(t,e){if(typeof e!="function"){throw new se(o)}t=Xu(t);return function(){if(--t<1){return e.apply(this,arguments)}}}function $c(t,e,n){e=n?i:e;e=t&&e==null?t.length:e;return To(t,z,i,i,i,i,e)}function Tc(t,e){var n;if(typeof e!="function"){throw new se(o)}t=Xu(t);return function(){if(--t>0){n=e.apply(this,arguments)}if(t<=1){e=i}return n}}var Ac=ws((function(t,e,i){var n=b;if(i.length){var r=cn(i,Vo(Ac));n|=m}return To(t,n,e,i,r)}));var Ec=ws((function(t,e,i){var n=b|g;if(i.length){var r=cn(i,Vo(Ec));n|=m}return To(e,n,t,i,r)}));function Oc(t,e,n){e=n?i:e;var r=To(t,y,i,i,i,i,i,e);r.placeholder=Oc.placeholder;return r}function Fc(t,e,n){e=n?i:e;var r=To(t,w,i,i,i,i,i,e);r.placeholder=Fc.placeholder;return r}function Wc(t,e,n){var r,s,a,l,c,u,h=0,f=false,d=false,p=true;if(typeof t!="function"){throw new se(o)}e=Gu(e)||0;if(Cu(n)){f=!!n.leading;d="maxWait"in n;a=d?Le(Gu(n.maxWait)||0,e):a;p="trailing"in n?!!n.trailing:p}function v(e){var n=r,o=s;r=s=i;h=e;l=t.apply(o,n);return l}function b(t){h=t;c=Sa(y,e);return f?v(t):l}function g(t){var i=t-u,n=t-h,r=e-i;return d?Ve(r,a-n):r}function k(t){var n=t-u,r=t-h;return u===i||n>=e||n<0||d&&r>=a}function y(){var t=jc();if(k(t)){return w(t)}c=Sa(y,g(t))}function w(t){c=i;if(p&&r){return v(t)}r=s=i;return l}function m(){if(c!==i){Ys(c)}h=0;r=u=s=c=i}function x(){return c===i?l:w(jc())}function z(){var t=jc(),n=k(t);r=arguments;s=this;u=t;if(n){if(c===i){return b(u)}if(d){Ys(c);c=Sa(y,e);return v(u)}}if(c===i){c=Sa(y,e)}return l}z.cancel=m;z.flush=x;return z}var Dc=ws((function(t,e){return wr(t,1,e)}));var Rc=ws((function(t,e,i){return wr(t,Gu(e)||0,i)}));function Pc(t){return To(t,S)}function Lc(t,e){if(typeof t!="function"||e!=null&&typeof e!="function"){throw new se(o)}var i=function(){var n=arguments,r=e?e.apply(this,n):n[0],s=i.cache;if(s.has(r)){return s.get(r)}var o=t.apply(this,n);i.cache=s.set(r,o)||s;return o};i.cache=new(Lc.Cache||Vn);return i}Lc.Cache=Vn;function Uc(t){if(typeof t!="function"){throw new se(o)}return function(){var e=arguments;switch(e.length){case 0:return!t.call(this);case 1:return!t.call(this,e[0]);case 2:return!t.call(this,e[0],e[1]);case 3:return!t.call(this,e[0],e[1],e[2])}return!t.apply(this,e)}}function Kc(t){return Tc(2,t)}var Vc=Bs((function(t,e){e=e.length==1&&lu(e[0])?Si(e[0],Ni(Bo())):Si(jr(e,1),Ni(Bo()));var i=e.length;return ws((function(n){var r=-1,s=Ve(n.length,i);while(++r<s){n[r]=e[r].call(this,n[r])}return gi(t,this,n)}))}));var Bc=ws((function(t,e){var n=cn(e,Vo(Bc));return To(t,m,i,e,n)}));var Hc=ws((function(t,e){var n=cn(e,Vo(Hc));return To(t,x,i,e,n)}));var Yc=Ro((function(t,e){return To(t,C,i,i,i,e)}));function Nc(t,e){if(typeof t!="function"){throw new se(o)}e=e===i?e:Xu(e);return ws(t,e)}function Xc(t,e){if(typeof t!="function"){throw new se(o)}e=e==null?0:Le(Xu(e),0);return ws((function(i){var n=i[e],r=Hs(i,0,e);if(n){Mi(r,n)}return gi(t,this,r)}))}function qc(t,e,i){var n=true,r=true;if(typeof t!="function"){throw new se(o)}if(Cu(i)){n="leading"in i?!!i.leading:n;r="trailing"in i?!!i.trailing:r}return Wc(t,e,{leading:n,maxWait:e,trailing:r})}function Gc(t){return $c(t,1)}function Zc(t,e){return Bc(Ks(e),t)}function Jc(){if(!arguments.length){return[]}var t=arguments[0];return lu(t)?t:[t]}function Qc(t){return gr(t,d)}function tu(t,e){e=typeof e=="function"?e:i;return gr(t,d,e)}function eu(t){return gr(t,h|d)}function iu(t,e){e=typeof e=="function"?e:i;return gr(t,h|d,e)}function nu(t,e){return e==null||yr(t,e,xh(e))}function ru(t,e){return t===e||t!==t&&e!==e}var su=Mo(Dr);var ou=Mo((function(t,e){return t>=e}));var au=Br(function(){return arguments}())?Br:function(t){return Su(t)&&he.call(t,"callee")&&!Ce.call(t,"callee")};var lu=X.isArray;var cu=hi?Ni(hi):Hr;function uu(t){return t!=null&&zu(t.length)&&!mu(t)}function hu(t){return Su(t)&&uu(t)}function fu(t){return t===true||t===false||Su(t)&&Wr(t)==B}var du=We||qf;var pu=fi?Ni(fi):Yr;function vu(t){return Su(t)&&t.nodeType===1&&!Ou(t)}function bu(t){if(t==null){return true}if(uu(t)&&(lu(t)||typeof t=="string"||typeof t.splice=="function"||du(t)||Lu(t)||au(t))){return!t.length}var e=Zo(t);if(e==Z||e==rt){return!t.size}if(da(t)){return!is(t).length}for(var i in t){if(he.call(t,i)){return false}}return true}function gu(t,e){return Nr(t,e)}function ku(t,e,n){n=typeof n=="function"?n:i;var r=n?n(t,e):i;return r===i?Nr(t,e,i,n):!!r}function yu(t){if(!Su(t)){return false}var e=Wr(t);return e==N||e==Y||typeof t.message=="string"&&typeof t.name=="string"&&!Ou(t)}function wu(t){return typeof t=="number"&&De(t)}function mu(t){if(!Cu(t)){return false}var e=Wr(t);return e==q||e==G||e==V||e==it}function xu(t){return typeof t=="number"&&t==Xu(t)}function zu(t){return typeof t=="number"&&t>-1&&t%1==0&&t<=O}function Cu(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}function Su(t){return t!=null&&typeof t=="object"}var Mu=di?Ni(di):qr;function Iu(t,e){return t===e||Gr(t,e,Yo(e))}function ju(t,e,n){n=typeof n=="function"?n:i;return Gr(t,e,Yo(e),n)}function _u(t){return Eu(t)&&t!=+t}function $u(t){if(fa(t)){throw new Ut(s)}return Zr(t)}function Tu(t){return t===null}function Au(t){return t==null}function Eu(t){return typeof t=="number"||Su(t)&&Wr(t)==J}function Ou(t){if(!Su(t)||Wr(t)!=tt){return false}var e=xe(t);if(e===null){return true}var i=he.call(e,"constructor")&&e.constructor;return typeof i=="function"&&i instanceof i&&ue.call(i)==ve}var Fu=pi?Ni(pi):Jr;function Wu(t){return xu(t)&&t>=-9007199254740991&&t<=O}var Du=vi?Ni(vi):Qr;function Ru(t){return typeof t=="string"||!lu(t)&&Su(t)&&Wr(t)==st}function Pu(t){return typeof t=="symbol"||Su(t)&&Wr(t)==ot}var Lu=bi?Ni(bi):ts;function Uu(t){return t===i}function Ku(t){return Su(t)&&Zo(t)==lt}function Vu(t){return Su(t)&&Wr(t)==ct}var Bu=Mo(rs);var Hu=Mo((function(t,e){return t<=e}));function Yu(t){if(!t){return[]}if(uu(t)){return Ru(t)?vn(t):no(t)}if(Ie&&t[Ie]){return on(t[Ie]())}var e=Zo(t),i=e==Z?an:e==rt?un:Uh;return i(t)}function Nu(t){if(!t){return t===0?t:0}t=Gu(t);if(t===E||t===-Infinity){var e=t<0?-1:1;return e*F}return t===t?t:0}function Xu(t){var e=Nu(t),i=e%1;return e===e?i?e-i:e:0}function qu(t){return t?br(Xu(t),0,D):0}function Gu(t){if(typeof t=="number"){return t}if(Pu(t)){return W}if(Cu(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=Cu(e)?e+"":e}if(typeof t!="string"){return t===0?t:+t}t=Yi(t);var i=Nt.test(t);return i||qt.test(t)?ii(t.slice(2),i?2:8):Yt.test(t)?W:+t}function Zu(t){return ro(t,zh(t))}function Ju(t){return t?br(Xu(t),-9007199254740991,O):t===0?t:0}function Qu(t){return t==null?"":Es(t)}var th=lo((function(t,e){if(da(e)||uu(e)){ro(e,xh(e),t);return}for(var i in e){if(he.call(e,i)){cr(t,i,e[i])}}}));var eh=lo((function(t,e){ro(e,zh(e),t)}));var ih=lo((function(t,e,i,n){ro(e,zh(e),t,n)}));var nh=lo((function(t,e,i,n){ro(e,xh(e),t,n)}));var rh=Ro(vr);function sh(t,e){var i=Cn(t);return e==null?i:fr(i,e)}var oh=ws((function(t,e){t=ie(t);var n=-1;var r=e.length;var s=r>2?e[2]:i;if(s&&aa(e[0],e[1],s)){r=1}while(++n<r){var o=e[n];var a=zh(o);var l=-1;var c=a.length;while(++l<c){var u=a[l];var h=t[u];if(h===i||ru(h,le[u])&&!he.call(t,u)){t[u]=o[u]}}}return t}));var ah=ws((function(t){t.push(i,Eo);return gi(Ih,i,t)}));function lh(t,e){return Ei(t,Bo(e,3),Tr)}function ch(t,e){return Ei(t,Bo(e,3),Ar)}function uh(t,e){return t==null?t:_r(t,Bo(e,3),zh)}function hh(t,e){return t==null?t:$r(t,Bo(e,3),zh)}function fh(t,e){return t&&Tr(t,Bo(e,3))}function dh(t,e){return t&&Ar(t,Bo(e,3))}function ph(t){return t==null?[]:Er(t,xh(t))}function vh(t){return t==null?[]:Er(t,zh(t))}function bh(t,e,n){var r=t==null?i:Or(t,e);return r===i?n:r}function gh(t,e){return t!=null&&ta(t,e,Rr)}function kh(t,e){return t!=null&&ta(t,e,Pr)}var yh=wo((function(t,e,i){if(e!=null&&typeof e.toString!="function"){e=pe.call(e)}t[e]=i}),If(Tf));var wh=wo((function(t,e,i){if(e!=null&&typeof e.toString!="function"){e=pe.call(e)}if(he.call(t,e)){t[e].push(i)}else{t[e]=[i]}}),Bo);var mh=ws(Vr);function xh(t){return uu(t)?rr(t):is(t)}function zh(t){return uu(t)?rr(t,true):ns(t)}function Ch(t,e){var i={};e=Bo(e,3);Tr(t,(function(t,n,r){pr(i,e(t,n,r),t)}));return i}function Sh(t,e){var i={};e=Bo(e,3);Tr(t,(function(t,n,r){pr(i,n,e(t,n,r))}));return i}var Mh=lo((function(t,e,i){ls(t,e,i)}));var Ih=lo((function(t,e,i,n){ls(t,e,i,n)}));var jh=Ro((function(t,e){var i={};if(t==null){return i}var n=false;e=Si(e,(function(e){e=Vs(e,t);n||(n=e.length>1);return e}));ro(t,Lo(t),i);if(n){i=gr(i,h|f|d,Oo)}var r=e.length;while(r--){Fs(i,e[r])}return i}));function _h(t,e){return Th(t,Uc(Bo(e)))}var $h=Ro((function(t,e){return t==null?{}:fs(t,e)}));function Th(t,e){if(t==null){return{}}var i=Si(Lo(t),(function(t){return[t]}));e=Bo(e);return ds(t,i,(function(t,i){return e(t,i[0])}))}function Ah(t,e,n){e=Vs(e,t);var r=-1,s=e.length;if(!s){s=1;t=i}while(++r<s){var o=t==null?i:t[Ta(e[r])];if(o===i){r=s;o=n}t=mu(o)?o.call(t):o}return t}function Eh(t,e,i){return t==null?t:zs(t,e,i)}function Oh(t,e,n,r){r=typeof r=="function"?r:i;return t==null?t:zs(t,e,n,r)}var Fh=$o(xh);var Wh=$o(zh);function Dh(t,e,i){var n=lu(t),r=n||du(t)||Lu(t);e=Bo(e,4);if(i==null){var s=t&&t.constructor;if(r){i=n?new s:[]}else if(Cu(t)){i=mu(s)?Cn(xe(t)):{}}else{i={}}}(r?yi:Tr)(t,(function(t,n,r){return e(i,t,n,r)}));return i}function Rh(t,e){return t==null?true:Fs(t,e)}function Ph(t,e,i){return t==null?t:Ws(t,e,Ks(i))}function Lh(t,e,n,r){r=typeof r=="function"?r:i;return t==null?t:Ws(t,e,Ks(n),r)}function Uh(t){return t==null?[]:Xi(t,xh(t))}function Kh(t){return t==null?[]:Xi(t,zh(t))}function Vh(t,e,n){if(n===i){n=e;e=i}if(n!==i){n=Gu(n);n=n===n?n:0}if(e!==i){e=Gu(e);e=e===e?e:0}return br(Gu(t),e,n)}function Bh(t,e,n){e=Nu(e);if(n===i){n=e;e=0}else{n=Nu(n)}t=Gu(t);return Lr(t,e,n)}function Hh(t,e,n){if(n&&typeof n!="boolean"&&aa(t,e,n)){e=n=i}if(n===i){if(typeof e=="boolean"){n=e;e=i}else if(typeof t=="boolean"){n=t;t=i}}if(t===i&&e===i){t=0;e=1}else{t=Nu(t);if(e===i){e=t;t=0}else{e=Nu(e)}}if(t>e){var r=t;t=e;e=r}if(n||t%1||e%1){var s=Ye();return Ve(t+s*(e-t+ei("1e-"+((s+"").length-1))),e)}return gs(t,e)}var Yh=po((function(t,e,i){e=e.toLowerCase();return t+(i?Nh(e):e)}));function Nh(t){return mf(Qu(t).toLowerCase())}function Xh(t){t=Qu(t);return t&&t.replace(Zt,Qi).replace(Ke,"")}function qh(t,e,n){t=Qu(t);e=Es(e);var r=t.length;n=n===i?r:br(Xu(n),0,r);var s=n;n-=e.length;return n>=0&&t.slice(n,s)==e}function Gh(t){t=Qu(t);return t&&It.test(t)?t.replace(St,tn):t}function Zh(t){t=Qu(t);return t&&Ft.test(t)?t.replace(Ot,"\\$&"):t}var Jh=po((function(t,e,i){return t+(i?"-":"")+e.toLowerCase()}));var Qh=po((function(t,e,i){return t+(i?" ":"")+e.toLowerCase()}));var tf=fo("toLowerCase");function ef(t,e,i){t=Qu(t);e=Xu(e);var n=e?pn(t):0;if(!e||n>=e){return t}var r=(e-n)/2;return zo(Oe(r),i)+t+zo(Ee(r),i)}function nf(t,e,i){t=Qu(t);e=Xu(e);var n=e?pn(t):0;return e&&n<e?t+zo(e-n,i):t}function rf(t,e,i){t=Qu(t);e=Xu(e);var n=e?pn(t):0;return e&&n<e?zo(e-n,i)+t:t}function sf(t,e,i){if(i||e==null){e=0}else if(e){e=+e}return He(Qu(t).replace(Wt,""),e||0)}function of(t,e,n){if(n?aa(t,e,n):e===i){e=1}else{e=Xu(e)}return ys(Qu(t),e)}function af(){var t=arguments,e=Qu(t[0]);return t.length<3?e:e.replace(t[1],t[2])}var lf=po((function(t,e,i){return t+(i?"_":"")+e.toLowerCase()}));function cf(t,e,n){if(n&&typeof n!="number"&&aa(t,e,n)){e=n=i}n=n===i?D:n>>>0;if(!n){return[]}t=Qu(t);if(t&&(typeof e=="string"||e!=null&&!Fu(e))){e=Es(e);if(!e&&rn(t)){return Hs(vn(t),0,n)}}return t.split(e,n)}var uf=po((function(t,e,i){return t+(i?" ":"")+mf(e)}));function hf(t,e,i){t=Qu(t);i=i==null?0:br(Xu(i),0,t.length);e=Es(e);return t.slice(i,i+e.length)==e}function ff(t,e,n){var r=zn.templateSettings;if(n&&aa(t,e,n)){e=i}t=Qu(t);e=ih({},e,r,Ao);var s=ih({},e.imports,r.imports,Ao),o=xh(s),l=Xi(s,o);var c,u,h=0,f=e.interpolate||Jt,d="__p += '";var p=ne((e.escape||Jt).source+"|"+f.source+"|"+(f===$t?Bt:Jt).source+"|"+(e.evaluate||Jt).source+"|$","g");var v="//# sourceURL="+(he.call(e,"sourceURL")?(e.sourceURL+"").replace(/\s/g," "):"lodash.templateSources["+ ++Xe+"]")+"\n";t.replace(p,(function(e,i,n,r,s,o){n||(n=r);d+=t.slice(h,o).replace(Qt,en);if(i){c=true;d+="' +\n__e("+i+") +\n'"}if(s){u=true;d+="';\n"+s+";\n__p += '"}if(n){d+="' +\n((__t = ("+n+")) == null ? '' : __t) +\n'"}h=o+e.length;return e}));d+="';\n";var b=he.call(e,"variable")&&e.variable;if(!b){d="with (obj) {\n"+d+"\n}\n"}else if(Kt.test(b)){throw new Ut(a)}d=(u?d.replace(mt,""):d).replace(xt,"$1").replace(zt,"$1;");d="function("+(b||"obj")+") {\n"+(b?"":"obj || (obj = {});\n")+"var __t, __p = ''"+(c?", __e = _.escape":"")+(u?", __j = Array.prototype.join;\n"+"function print() { __p += __j.call(arguments, '') }\n":";\n")+d+"return __p\n}";var g=zf((function(){return te(o,v+"return "+d).apply(i,l)}));g.source=d;if(yu(g)){throw g}return g}function df(t){return Qu(t).toLowerCase()}function pf(t){return Qu(t).toUpperCase()}function vf(t,e,n){t=Qu(t);if(t&&(n||e===i)){return Yi(t)}if(!t||!(e=Es(e))){return t}var r=vn(t),s=vn(e),o=Gi(r,s),a=Zi(r,s)+1;return Hs(r,o,a).join("")}function bf(t,e,n){t=Qu(t);if(t&&(n||e===i)){return t.slice(0,bn(t)+1)}if(!t||!(e=Es(e))){return t}var r=vn(t),s=Zi(r,vn(e))+1;return Hs(r,0,s).join("")}function gf(t,e,n){t=Qu(t);if(t&&(n||e===i)){return t.replace(Wt,"")}if(!t||!(e=Es(e))){return t}var r=vn(t),s=Gi(r,vn(e));return Hs(r,s).join("")}function kf(t,e){var n=M,r=I;if(Cu(e)){var s="separator"in e?e.separator:s;n="length"in e?Xu(e.length):n;r="omission"in e?Es(e.omission):r}t=Qu(t);var o=t.length;if(rn(t)){var a=vn(t);o=a.length}if(n>=o){return t}var l=n-pn(r);if(l<1){return r}var c=a?Hs(a,0,l).join(""):t.slice(0,l);if(s===i){return c+r}if(a){l+=c.length-l}if(Fu(s)){if(t.slice(l).search(s)){var u,h=c;if(!s.global){s=ne(s.source,Qu(Ht.exec(s))+"g")}s.lastIndex=0;while(u=s.exec(h)){var f=u.index}c=c.slice(0,f===i?l:f)}}else if(t.indexOf(Es(s),l)!=l){var d=c.lastIndexOf(s);if(d>-1){c=c.slice(0,d)}}return c+r}function yf(t){t=Qu(t);return t&&Mt.test(t)?t.replace(Ct,gn):t}var wf=po((function(t,e,i){return t+(i?" ":"")+e.toUpperCase()}));var mf=fo("toUpperCase");function xf(t,e,n){t=Qu(t);e=n?i:e;if(e===i){return sn(t)?wn(t):Ai(t)}return t.match(e)||[]}var zf=ws((function(t,e){try{return gi(t,i,e)}catch(t){return yu(t)?t:new Ut(t)}}));var Cf=Ro((function(t,e){yi(e,(function(e){e=Ta(e);pr(t,e,Ac(t[e],t))}));return t}));function Sf(t){var e=t==null?0:t.length,i=Bo();t=!e?[]:Si(t,(function(t){if(typeof t[1]!="function"){throw new se(o)}return[i(t[0]),t[1]]}));return ws((function(i){var n=-1;while(++n<e){var r=t[n];if(gi(r[0],this,i)){return gi(r[1],this,i)}}}))}function Mf(t){return kr(gr(t,h))}function If(t){return function(){return t}}function jf(t,e){return t==null||t!==t?e:t}var _f=ko();var $f=ko(true);function Tf(t){return t}function Af(t){return es(typeof t=="function"?t:gr(t,h))}function Ef(t){return os(gr(t,h))}function Of(t,e){return as(t,gr(e,h))}var Ff=ws((function(t,e){return function(i){return Vr(i,t,e)}}));var Wf=ws((function(t,e){return function(i){return Vr(t,i,e)}}));function Df(t,e,i){var n=xh(e),r=Er(e,n);if(i==null&&!(Cu(e)&&(r.length||!n.length))){i=e;e=t;t=this;r=Er(e,xh(e))}var s=!(Cu(i)&&"chain"in i)||!!i.chain,o=mu(t);yi(r,(function(i){var n=e[i];t[i]=n;if(o){t.prototype[i]=function(){var e=this.__chain__;if(s||e){var i=t(this.__wrapped__),r=i.__actions__=no(this.__actions__);r.push({func:n,args:arguments,thisArg:t});i.__chain__=e;return i}return n.apply(t,Mi([this.value()],arguments))}}}));return t}function Rf(){if(si._===this){si._=be}return this}function Pf(){}function Lf(t){t=Xu(t);return ws((function(e){return us(e,t)}))}var Uf=xo(Si);var Kf=xo(mi);var Vf=xo(_i);function Bf(t){return la(t)?Pi(Ta(t)):ps(t)}function Hf(t){return function(e){return t==null?i:Or(t,e)}}var Yf=So();var Nf=So(true);function Xf(){return[]}function qf(){return false}function Gf(){return{}}function Zf(){return""}function Jf(){return true}function Qf(t,e){t=Xu(t);if(t<1||t>O){return[]}var i=D,n=Ve(t,D);e=Bo(e);t-=D;var r=Bi(n,e);while(++i<t){e(i)}return r}function td(t){if(lu(t)){return Si(t,Ta)}return Pu(t)?[t]:no($a(Qu(t)))}function ed(t){var e=++fe;return Qu(t)+e}var id=mo((function(t,e){return t+e}),0);var nd=jo("ceil");var rd=mo((function(t,e){return t/e}),1);var sd=jo("floor");function od(t){return t&&t.length?Sr(t,Tf,Dr):i}function ad(t,e){return t&&t.length?Sr(t,Bo(e,2),Dr):i}function ld(t){return Ri(t,Tf)}function cd(t,e){return Ri(t,Bo(e,2))}function ud(t){return t&&t.length?Sr(t,Tf,rs):i}function hd(t,e){return t&&t.length?Sr(t,Bo(e,2),rs):i}var fd=mo((function(t,e){return t*e}),1);var dd=jo("round");var pd=mo((function(t,e){return t-e}),0);function vd(t){return t&&t.length?Vi(t,Tf):0}function bd(t,e){return t&&t.length?Vi(t,Bo(e,2)):0}zn.after=_c;zn.ary=$c;zn.assign=th;zn.assignIn=eh;zn.assignInWith=ih;zn.assignWith=nh;zn.at=rh;zn.before=Tc;zn.bind=Ac;zn.bindAll=Cf;zn.bindKey=Ec;zn.castArray=Jc;zn.chain=Hl;zn.chunk=Fa;zn.compact=Wa;zn.concat=Da;zn.cond=Sf;zn.conforms=Mf;zn.constant=If;zn.countBy=ic;zn.create=sh;zn.curry=Oc;zn.curryRight=Fc;zn.debounce=Wc;zn.defaults=oh;zn.defaultsDeep=ah;zn.defer=Dc;zn.delay=Rc;zn.difference=Ra;zn.differenceBy=Pa;zn.differenceWith=La;zn.drop=Ua;zn.dropRight=Ka;zn.dropRightWhile=Va;zn.dropWhile=Ba;zn.fill=Ha;zn.filter=rc;zn.flatMap=ac;zn.flatMapDeep=lc;zn.flatMapDepth=cc;zn.flatten=Xa;zn.flattenDeep=qa;zn.flattenDepth=Ga;zn.flip=Pc;zn.flow=_f;zn.flowRight=$f;zn.fromPairs=Za;zn.functions=ph;zn.functionsIn=vh;zn.groupBy=fc;zn.initial=tl;zn.intersection=el;zn.intersectionBy=il;zn.intersectionWith=nl;zn.invert=yh;zn.invertBy=wh;zn.invokeMap=pc;zn.iteratee=Af;zn.keyBy=vc;zn.keys=xh;zn.keysIn=zh;zn.map=bc;zn.mapKeys=Ch;zn.mapValues=Sh;zn.matches=Ef;zn.matchesProperty=Of;zn.memoize=Lc;zn.merge=Mh;zn.mergeWith=Ih;zn.method=Ff;zn.methodOf=Wf;zn.mixin=Df;zn.negate=Uc;zn.nthArg=Lf;zn.omit=jh;zn.omitBy=_h;zn.once=Kc;zn.orderBy=gc;zn.over=Uf;zn.overArgs=Vc;zn.overEvery=Kf;zn.overSome=Vf;zn.partial=Bc;zn.partialRight=Hc;zn.partition=kc;zn.pick=$h;zn.pickBy=Th;zn.property=Bf;zn.propertyOf=Hf;zn.pull=ll;zn.pullAll=cl;zn.pullAllBy=ul;zn.pullAllWith=hl;zn.pullAt=fl;zn.range=Yf;zn.rangeRight=Nf;zn.rearg=Yc;zn.reject=mc;zn.remove=dl;zn.rest=Nc;zn.reverse=pl;zn.sampleSize=zc;zn.set=Eh;zn.setWith=Oh;zn.shuffle=Cc;zn.slice=vl;zn.sortBy=Ic;zn.sortedUniq=xl;zn.sortedUniqBy=zl;zn.split=cf;zn.spread=Xc;zn.tail=Cl;zn.take=Sl;zn.takeRight=Ml;zn.takeRightWhile=Il;zn.takeWhile=jl;zn.tap=Yl;zn.throttle=qc;zn.thru=Nl;zn.toArray=Yu;zn.toPairs=Fh;zn.toPairsIn=Wh;zn.toPath=td;zn.toPlainObject=Zu;zn.transform=Dh;zn.unary=Gc;zn.union=_l;zn.unionBy=$l;zn.unionWith=Tl;zn.uniq=Al;zn.uniqBy=El;zn.uniqWith=Ol;zn.unset=Rh;zn.unzip=Fl;zn.unzipWith=Wl;zn.update=Ph;zn.updateWith=Lh;zn.values=Uh;zn.valuesIn=Kh;zn.without=Dl;zn.words=xf;zn.wrap=Zc;zn.xor=Rl;zn.xorBy=Pl;zn.xorWith=Ll;zn.zip=Ul;zn.zipObject=Kl;zn.zipObjectDeep=Vl;zn.zipWith=Bl;zn.entries=Fh;zn.entriesIn=Wh;zn.extend=eh;zn.extendWith=ih;Df(zn,zn);zn.add=id;zn.attempt=zf;zn.camelCase=Yh;zn.capitalize=Nh;zn.ceil=nd;zn.clamp=Vh;zn.clone=Qc;zn.cloneDeep=eu;zn.cloneDeepWith=iu;zn.cloneWith=tu;zn.conformsTo=nu;zn.deburr=Xh;zn.defaultTo=jf;zn.divide=rd;zn.endsWith=qh;zn.eq=ru;zn.escape=Gh;zn.escapeRegExp=Zh;zn.every=nc;zn.find=sc;zn.findIndex=Ya;zn.findKey=lh;zn.findLast=oc;zn.findLastIndex=Na;zn.findLastKey=ch;zn.floor=sd;zn.forEach=uc;zn.forEachRight=hc;zn.forIn=uh;zn.forInRight=hh;zn.forOwn=fh;zn.forOwnRight=dh;zn.get=bh;zn.gt=su;zn.gte=ou;zn.has=gh;zn.hasIn=kh;zn.head=Ja;zn.identity=Tf;zn.includes=dc;zn.indexOf=Qa;zn.inRange=Bh;zn.invoke=mh;zn.isArguments=au;zn.isArray=lu;zn.isArrayBuffer=cu;zn.isArrayLike=uu;zn.isArrayLikeObject=hu;zn.isBoolean=fu;zn.isBuffer=du;zn.isDate=pu;zn.isElement=vu;zn.isEmpty=bu;zn.isEqual=gu;zn.isEqualWith=ku;zn.isError=yu;zn.isFinite=wu;zn.isFunction=mu;zn.isInteger=xu;zn.isLength=zu;zn.isMap=Mu;zn.isMatch=Iu;zn.isMatchWith=ju;zn.isNaN=_u;zn.isNative=$u;zn.isNil=Au;zn.isNull=Tu;zn.isNumber=Eu;zn.isObject=Cu;zn.isObjectLike=Su;zn.isPlainObject=Ou;zn.isRegExp=Fu;zn.isSafeInteger=Wu;zn.isSet=Du;zn.isString=Ru;zn.isSymbol=Pu;zn.isTypedArray=Lu;zn.isUndefined=Uu;zn.isWeakMap=Ku;zn.isWeakSet=Vu;zn.join=rl;zn.kebabCase=Jh;zn.last=sl;zn.lastIndexOf=ol;zn.lowerCase=Qh;zn.lowerFirst=tf;zn.lt=Bu;zn.lte=Hu;zn.max=od;zn.maxBy=ad;zn.mean=ld;zn.meanBy=cd;zn.min=ud;zn.minBy=hd;zn.stubArray=Xf;zn.stubFalse=qf;zn.stubObject=Gf;zn.stubString=Zf;zn.stubTrue=Jf;zn.multiply=fd;zn.nth=al;zn.noConflict=Rf;zn.noop=Pf;zn.now=jc;zn.pad=ef;zn.padEnd=nf;zn.padStart=rf;zn.parseInt=sf;zn.random=Hh;zn.reduce=yc;zn.reduceRight=wc;zn.repeat=of;zn.replace=af;zn.result=Ah;zn.round=dd;zn.runInContext=t;zn.sample=xc;zn.size=Sc;zn.snakeCase=lf;zn.some=Mc;zn.sortedIndex=bl;zn.sortedIndexBy=gl;zn.sortedIndexOf=kl;zn.sortedLastIndex=yl;zn.sortedLastIndexBy=wl;zn.sortedLastIndexOf=ml;zn.startCase=uf;zn.startsWith=hf;zn.subtract=pd;zn.sum=vd;zn.sumBy=bd;zn.template=ff;zn.times=Qf;zn.toFinite=Nu;zn.toInteger=Xu;zn.toLength=qu;zn.toLower=df;zn.toNumber=Gu;zn.toSafeInteger=Ju;zn.toString=Qu;zn.toUpper=pf;zn.trim=vf;zn.trimEnd=bf;zn.trimStart=gf;zn.truncate=kf;zn.unescape=yf;zn.uniqueId=ed;zn.upperCase=wf;zn.upperFirst=mf;zn.each=uc;zn.eachRight=hc;zn.first=Ja;Df(zn,function(){var t={};Tr(zn,(function(e,i){if(!he.call(zn.prototype,i)){t[i]=e}}));return t}(),{chain:false});zn.VERSION=n;yi(["bind","bindKey","curry","curryRight","partial","partialRight"],(function(t){zn[t].placeholder=zn}));yi(["drop","take"],(function(t,e){In.prototype[t]=function(n){n=n===i?1:Le(Xu(n),0);var r=this.__filtered__&&!e?new In(this):this.clone();if(r.__filtered__){r.__takeCount__=Ve(n,r.__takeCount__)}else{r.__views__.push({size:Ve(n,D),type:t+(r.__dir__<0?"Right":"")})}return r};In.prototype[t+"Right"]=function(e){return this.reverse()[t](e).reverse()}}));yi(["filter","map","takeWhile"],(function(t,e){var i=e+1,n=i==$||i==A;In.prototype[t]=function(t){var e=this.clone();e.__iteratees__.push({iteratee:Bo(t,3),type:i});e.__filtered__=e.__filtered__||n;return e}}));yi(["head","last"],(function(t,e){var i="take"+(e?"Right":"");In.prototype[t]=function(){return this[i](1).value()[0]}}));yi(["initial","tail"],(function(t,e){var i="drop"+(e?"":"Right");In.prototype[t]=function(){return this.__filtered__?new In(this):this[i](1)}}));In.prototype.compact=function(){return this.filter(Tf)};In.prototype.find=function(t){return this.filter(t).head()};In.prototype.findLast=function(t){return this.reverse().find(t)};In.prototype.invokeMap=ws((function(t,e){if(typeof t=="function"){return new In(this)}return this.map((function(i){return Vr(i,t,e)}))}));In.prototype.reject=function(t){return this.filter(Uc(Bo(t)))};In.prototype.slice=function(t,e){t=Xu(t);var n=this;if(n.__filtered__&&(t>0||e<0)){return new In(n)}if(t<0){n=n.takeRight(-t)}else if(t){n=n.drop(t)}if(e!==i){e=Xu(e);n=e<0?n.dropRight(-e):n.take(e-t)}return n};In.prototype.takeRightWhile=function(t){return this.reverse().takeWhile(t).reverse()};In.prototype.toArray=function(){return this.take(D)};Tr(In.prototype,(function(t,e){var n=/^(?:filter|find|map|reject)|While$/.test(e),r=/^(?:head|last)$/.test(e),s=zn[r?"take"+(e=="last"?"Right":""):e],o=r||/^find/.test(e);if(!s){return}zn.prototype[e]=function(){var e=this.__wrapped__,a=r?[1]:arguments,l=e instanceof In,c=a[0],u=l||lu(e);var h=function(t){var e=s.apply(zn,Mi([t],a));return r&&f?e[0]:e};if(u&&n&&typeof c=="function"&&c.length!=1){l=u=false}var f=this.__chain__,d=!!this.__actions__.length,p=o&&!f,v=l&&!d;if(!o&&u){e=v?e:new In(this);var b=t.apply(e,a);b.__actions__.push({func:Nl,args:[h],thisArg:i});return new Mn(b,f)}if(p&&v){return t.apply(this,a)}b=this.thru(h);return p?r?b.value()[0]:b.value():b}}));yi(["pop","push","shift","sort","splice","unshift"],(function(t){var e=oe[t],i=/^(?:push|sort|unshift)$/.test(t)?"tap":"thru",n=/^(?:pop|shift)$/.test(t);zn.prototype[t]=function(){var t=arguments;if(n&&!this.__chain__){var r=this.value();return e.apply(lu(r)?r:[],t)}return this[i]((function(i){return e.apply(lu(i)?i:[],t)}))}}));Tr(In.prototype,(function(t,e){var i=zn[e];if(i){var n=i.name+"";if(!he.call(ci,n)){ci[n]=[]}ci[n].push({name:e,func:i})}}));ci[yo(i,g).name]=[{name:"wrapper",func:i}];In.prototype.clone=jn;In.prototype.reverse=_n;In.prototype.value=$n;zn.prototype.at=Xl;zn.prototype.chain=ql;zn.prototype.commit=Gl;zn.prototype.next=Zl;zn.prototype.plant=Ql;zn.prototype.reverse=tc;zn.prototype.toJSON=zn.prototype.valueOf=zn.prototype.value=ec;zn.prototype.first=zn.prototype.head;if(Ie){zn.prototype[Ie]=Jl}return zn};var xn=mn();if(ai){(ai.exports=xn)._=xn;oi._=xn}else{si._=xn}}).call(mt)})(wt,wt.exports);return wt.exports}var Ct=zt();class St{_core;_debounceUpdate;_debounceEndScaling;initialTouchDistance=0;startX=0;startY=0;constructor(t,e){this._core=t;this._core.store.state.host=e;this._core.store.state.viewportWidth=e.clientWidth;this._core.store.state.viewportHeight=e.clientHeight;this._core.store.state.startX=0;this._core.store.state.startY=0;this._core.store.state.translateX=0;this._core.store.state.translateY=0;this._debounceUpdate=Ct.debounce((()=>{this._core.updateWorkspaceViewport(this._core.store.state.translateX,this._core.store.state.translateY,this._core.store.state.scale)}),300);this._debounceEndScaling=Ct.debounce((()=>{this._core.store.state.isScaling=false;this._core.rerender()}),100)}cancelPendingUpdates(){this._debounceUpdate.cancel()}handleResize(){this._core.store.state.viewportWidth=this._core.store.state.host.clientWidth;this._core.store.state.viewportHeight=this._core.store.state.host.clientHeight;this._core.store.state.hasViewportChanged=true;this._core.rerender()}handlePointerDown(t){if(t.pointerType==="mouse"){const e=t.clientX-this._core.store.offsetX;const i=t.clientY-this._core.store.offsetY;if(t.button===l.Right){this._core.store.state.isPanning=true;this._core.store.state.startX=e;this._core.store.state.startY=i}}if(t.pointerType==="touch"){const t=Array.from(this._core.store.state.pointers.values());if(t.length===2){const e=this._core.store.currentPath;if(e){this._core.store.state.objects.remove((t=>t.id===e.id))}this._core.store.state.isScaling=true;const i=t[0].clientX-this._core.store.offsetX;const n=t[0].clientY-this._core.store.offsetY;const r=t[1].clientX-this._core.store.offsetX;const s=t[1].clientY-this._core.store.offsetY;this.initialTouchDistance=Math.sqrt(Math.pow(i-r,2)+Math.pow(n-s,2));this.startX=(i+r)/2;this.startY=(n+s)/2;this._core.rerender()}}}handlePointerMove(t){if(t.pointerType==="mouse"){const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const n=t.clientY-e.top;this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale;this._core.store.state.pointerY=(n-this._core.store.state.translateY)/this._core.store.state.scale;if(this._core.store.state.isPanning){const t=i-this._core.store.state.startX;const e=n-this._core.store.state.startY;this._core.store.state.translateX+=t;this._core.store.state.translateY+=e;this._core.store.state.startX=i;this._core.store.state.startY=n;this._core.store.state.hasViewportChanged=true;this._core.store.state.skipContextMenu=true;this._core.rerender();this._debounceUpdate()}}if(t.pointerType==="touch"){const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const n=t.clientY-e.top;this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale;this._core.store.state.pointerY=(n-this._core.store.state.translateY)/this._core.store.state.scale;const r=Array.from(this._core.store.state.pointers.values());if(r.length===2){const t=r[0].clientX-this._core.store.offsetX;const e=r[0].clientY-this._core.store.offsetY;const i=r[1].clientX-this._core.store.offsetX;const n=r[1].clientY-this._core.store.offsetY;const s=Math.sqrt(Math.pow(t-i,2)+Math.pow(e-n,2));const o=(t+i)/2;const a=(e+n)/2;const l=s/this.initialTouchDistance;const c=this._core.store.state.scale*l;if(c>this._core.store.state.scaleMax||c<this._core.store.state.scaleMin){this._core.store.state.translateX=this._core.store.state.translateX+o-this.startX;this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY}else{const t=(o-this._core.store.state.translateX)*(l-1);const e=(a-this._core.store.state.translateY)*(l-1);this._core.store.state.translateX=this._core.store.state.translateX+o-this.startX-t;this._core.store.state.translateY=this._core.store.state.translateY+a-this.startY-e;this._core.store.state.scale=c;this.initialTouchDistance=s}this.startX=o;this.startY=a;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate()}}}handlePointerUp(t){if(t.pointerType==="mouse"){if(this._core.store.state.isPanning){this._core.store.state.isPanning=false;this._core.rerender()}}if(t.pointerType==="touch"){if(this._core.store.state.pointers.size===0){this._debounceEndScaling()}}}handleWheel(t){t.preventDefault();if(t.ctrlKey===true&&Math.abs(t.deltaY)>0&&Math.abs(t.deltaX)===0){this.handleZoom(t)}if(!t.ctrlKey){this.handlePan(t)}}centerInViewport(t){const{scale:e,viewportWidth:i,viewportHeight:n}=this._core.store.state;const{x:r,y:s,width:o,height:a}=t.rotatedBoundingBox;const l=r+o/2;const c=s+a/2;this._core.store.state.translateX=i/2-l*e;this._core.store.state.translateY=n/2-c*e;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate()}centerFitInViewport(t){const e=this._core.store.state.viewportWidth/(t.rotatedBoundingBox.width*1.1);const i=this._core.store.state.viewportHeight/(t.rotatedBoundingBox.height*1.1);const n=Math.min(e,i,this._core.store.state.scaleMax);const r=Math.max(n,this._core.store.state.scaleMin);this._core.store.state.scale=r;this.centerInViewport(t)}handleZoom(t){this._core.store.state.isScaling=true;const e=this._core.store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const n=t.clientY-e.top;this._core.store.state.pointerX=(i-this._core.store.state.translateX)/this._core.store.state.scale;this._core.store.state.pointerY=(n-this._core.store.state.translateY)/this._core.store.state.scale;const r=1+t.deltaY*-.012;const s=Math.max(.8,Math.min(1.2,r));const o=Math.min(this._core.store.state.scaleMax,Math.max(this._core.store.state.scaleMin,this._core.store.state.scale*s));const a=o/this._core.store.state.scale;const l=(i-this._core.store.state.translateX)*(a-1);const c=(n-this._core.store.state.translateY)*(a-1);this._core.store.state.scale=o;this._core.store.state.translateX=this._core.store.state.translateX-l;this._core.store.state.translateY=this._core.store.state.translateY-c;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate();this._debounceEndScaling()}handlePan(t){const e=.8;this._core.store.state.translateX=this._core.store.state.translateX-t.deltaX*e;this._core.store.state.translateY=this._core.store.state.translateY-t.deltaY*e;this._core.store.state.hasViewportChanged=true;this._core.rerender();this._debounceUpdate()}}class Mt extends A{shortcuts=[{key:"Escape",condition:t=>!!t.store.selectionGroup,action:t=>t.clearSelection()},{key:"Delete",condition:t=>!!t.store.selectionGroup,action:t=>t.delete()},{key:"z",ctrl:true,action:t=>t.undo()},{key:"y",ctrl:true,action:t=>t.redo()},{key:"s",ctrl:true,action:()=>this.switchTool("selection")},{key:"b",ctrl:true,action:()=>this.switchTool("brush")},{key:"e",ctrl:true,action:()=>this.switchTool("eraser")},{key:"i",ctrl:true,action:()=>this.switchTool("image")},{key:"x",ctrl:true,action:()=>this.switchTool("text")},{key:"c",ctrl:true,condition:t=>!!t.store.selectionGroup,action:t=>{t.copy();t.rerender()}},{key:"v",ctrl:true,condition:t=>!!t.store.state.copiedObjects&&!t.store.activeText,action:t=>t.paste()},{key:"+",ctrl:true,condition:t=>!!t.store.selectionGroup,action:t=>t.bringForward()},{key:"-",ctrl:true,condition:t=>!!t.store.selectionGroup,action:t=>t.sendBackward()},{key:"*",shift:true,condition:t=>!!t.store.selectionGroup,action:t=>t.bringToFront()},{key:"_",shift:true,condition:t=>!!t.store.selectionGroup,action:t=>t.sendToBack()},{key:"g",ctrl:true,condition:t=>!!t.store.selectionGroup&&t.store.selectionGroup.objects.length>=2,action:t=>t.group()},{key:"G",ctrl:true,shift:true,condition:t=>!!t.store.selectionGroup,action:t=>t.ungroup()}];constructor(t){super(t)}switchTool(t){const e=k.getTool(t);this._core.store.setState("activeTool",e);this._core.deselectAllObjects();e.onActivate()}handleKeyDown(t){this._core.store.state.isCtrlKeyPressed=t.ctrlKey;const e=this.shortcuts.find((e=>e.key===t.key&&!!e.ctrl===t.ctrlKey&&!!e.shift===t.shiftKey&&(!e.condition||e.condition(this._core))));if(e){t.preventDefault();e.action(this._core)}}handleKeyUp(t){this._core.store.state.isCtrlKeyPressed=t.ctrlKey}}class It extends A{globalContextMenuItems=[];objectContextMenuItems=[];constructor(t,e,i){super(t);this.globalContextMenuItems=e;this.objectContextMenuItems=i}handleContextMenu(t){if(!(this._core.store.state.activeTool instanceof z)){return}if(this._core.store.state.skipContextMenu){this._core.store.state.skipContextMenu=false;return}const e=this._core.store.state.activeTool;e?.moveHandler?.cancelPendingDrag();if(this._core.store.selectionBox){this._core.store.state.objects.remove((t=>t instanceof E));this._core.store.state.isSelecting=false}const i=this._core.getObjectFromPointerEvent(t,".object");if(i&&!(i instanceof O)&&!(i instanceof E)){const t=O.create(this._core);t.addOrRemove(i);t.isSelected=true;t.rotation=i.rotation;this._core.store.state.isSelecting=false;const e=this._core.store.selectionGroup;if(e){this._core.removeSelectionGroup()}this._core.addSelectionGroup(t);this._core.rerender()}this._core.store.state.contextMenuItems=this._core.store.selectionGroup?this.objectContextMenuItems:this.globalContextMenuItems;let n=t.clientX-this._core.store.offsetX;let r=t.clientY-this._core.store.offsetY;const s=150;const o=200;const a=10;if(n+s>window.innerWidth-a){n=window.innerWidth-s-a}if(r+o>window.innerHeight-a){r=window.innerHeight-o-a}n=Math.max(a,n);r=Math.max(a,r);this._core.store.state.contextMenuX=n;this._core.store.state.contextMenuY=r;this._core.store.state.isContextMenuVisible=true;this._core.store.state.isEnabled=false;this._core.rerender()}}const jt={activeWorkspace:null,activeTool:null,copiedObjects:null,objects:null,snapCandidate:null,resizeHandleType:null,lineHandleType:null,hasViewportChanged:false,hasObjectsChanged:false,isReady:false,isEnabled:true,isScaling:false,isPanning:false,isSelecting:false,isResizing:false,isResizeHandleHovered:false,isResizeHandleSelected:false,isRotating:false,isRotationHandleHovered:false,isRotationHandleSelected:false,isLineHandleSelected:false,isLineHandleDragging:false,isDragging:false,isDrawing:false,isErasing:false,isWriting:false,isCtrlKeyPressed:false,isContextMenuVisible:false,contextMenuItems:[],contextMenuX:0,contextMenuY:0,skipContextMenu:false,debugInfo:{showObjectInfo:false,showViewportInfo:false},host:null,pointerX:0,pointerY:0,scale:1,scaleMax:1,scaleMin:1,startX:0,startY:0,translateX:0,translateXMax:400,translateXMin:0,translateY:0,translateYMax:400,translateYMin:0,viewportWidth:0,viewportHeight:0,longTouchTimeout:null,longTouchDelay:300,pointers:new Map,workspaces:[],cursor:{icon:"default",iconActive:"default"}};class _t extends c{__class__="KritzelCustomElement";element;isInteractive=true;constructor(t){super();if(t){this.translateX=t.translateX||0;this.translateY=t.translateY||0;this.scale=t.scale||1;this.element=t.element;this.height=t.height||0;this.width=t.width||0}}static create(t,e){const i=new _t(e);i._core=t;i.id=i.generateId();i.workspaceId=t.store.state.activeWorkspace.id;return i}mount(t){if(t===null){return}if(this.isMounted&&this.elementRef===t&&this.element.parentElement===t){return}this.elementRef=t;this.isMounted=true;this.elementRef.innerHTML="";this.elementRef.appendChild(this.element)}resize(t,e,i,n){if(i<=1||n<=1){return}this.width=i;this.height=n;this.translateX=t;this.translateY=e;if(this.element){this.element.style.width=`${i}px`;this.element.style.height=`${n}px`}this._core.store.state.objects.update(this)}copy(){const t=Object.create(Object.getPrototypeOf(this));Object.assign(t,this);t.id=this.generateId();t.isMounted=false;t.element=this.element.cloneNode(true);return t}}class $t{_core;constructor(t){this._core=t}revive(t){if(t&&typeof t==="object"){if(t.__class__){let e;switch(t.__class__){case"KritzelPath":e=P.create(this._core).deserialize(t);break;case"KritzelLine":e=R.create(this._core).deserialize(t);break;case"KritzelText":e=D.create(this._core,t.fontSize,t.fontFamily).deserialize(t);break;case"KritzelShape":e=dt.create(this._core,{shapeType:t.shapeType,fillColor:t.fillColor,strokeColor:t.strokeColor,strokeWidth:t.strokeWidth,fontSize:t.fontSize,fontFamily:t.fontFamily,fontColor:t.fontColor}).deserialize(t);break;case"KritzelImage":e=W.create(this._core).deserialize(t);break;case"KritzelCustomElement":e=_t.create(this._core).deserialize(t);break;case"KritzelSelectionGroup":e=O.create(this._core).deserialize(t);break;case"KritzelGroup":e=F.create(this._core).deserialize(t);break;case"KritzelWorkspace":e=$.create(this._core,t).deserialize(t);break;case"KritzelBrushTool":e=new o(this._core);break;case"KritzelEraserTool":e=new I(this._core);break;case"KritzelImageTool":e=new _(this._core);break;case"KritzelSelectionTool":e=new z(this._core);break;case"KritzelTextTool":e=new a(this._core);break;case"KritzelLineTool":e=new M(this._core);break;case"KritzelShapeTool":e=new pt(this._core);break;default:e=t}return e}const e=Array.isArray(t)?[]:{};for(const i in t){if(Object.prototype.hasOwnProperty.call(t,i)){e[i]=this.revive(t[i])}}return e}return t}}class Tt{bounds;capacity;objects=[];children=null;constructor(t,e=16){this.bounds=t;this.capacity=e}reset(){this.objects=[];this.children=null}insert(t){if(!this.intersects(t.rotatedBoundingBox,this.bounds)){return false}if(this.objects.length<this.capacity&&this.children===null){this.objects.push(t);return true}if(this.children===null){this.subdivide()}for(const e of this.children){if(e.insert(t)){return true}}return false}update(t){const e=this.objects.findIndex((e=>e.id===t.id));if(e!==-1){this.objects[e]=t;return true}if(this.children!==null){for(const e of this.children){if(e.update(t)){return true}}}return false}remove(t){const e=this.objects.findIndex((e=>t(e)));if(e!==-1){this.objects.splice(e,1)}if(this.children!==null){for(const e of this.children){e.remove(t)}}}query(t){const e=[];if(!this.intersects(t,this.bounds)){return e}for(const i of this.objects){if(this.intersects(i.rotatedBoundingBox,t)){e.push(i)}}if(this.children!==null){for(const i of this.children){e.push(...i.query(t))}}return e}filter(t){const e=this.objects.filter((e=>t(e)));if(this.children!==null){for(const i of this.children){e.push(...i.filter(t))}}return e}allObjects(){const t=[...this.objects];if(this.children!==null){for(const e of this.children){t.push(...e.allObjects())}}return t}subdivide(){const{x:t,y:e,z:i,width:n,height:r}=this.bounds;const s=n/2;const o=r/2;this.children=[new Tt({x:t,y:e,z:i,width:s,height:o},this.capacity),new Tt({x:t+s,y:e,z:i,width:s,height:o},this.capacity),new Tt({x:t,y:e+o,z:i,width:s,height:o},this.capacity),new Tt({x:t+s,y:e+o,z:i,width:s,height:o},this.capacity)]}intersects(t,e){return!(t.x>=e.x+e.width||t.x+t.width<=e.x||t.y>=e.y+e.height||t.y+t.height<=e.y)}}class At{quadtree;_ydoc=null;_objectsMap=null;_providers=[];_undoManager=null;_reviver=null;_core=null;_workspaceId=null;_isReady=false;_temporaryItemsCount=0;get isReady(){return this._isReady}get undoManager(){return this._undoManager}get workspaceId(){return this._workspaceId}get undoState(){return{canUndo:this._undoManager?this._undoManager.canUndo():false,canRedo:this._undoManager?this._undoManager.canRedo():false,undoStackSize:this._undoManager?this._undoManager.undoStack.length:0,redoStackSize:this._undoManager?this._undoManager.redoStack.length:0}}constructor(){this.quadtree=new Tt({x:-Infinity,y:-Infinity,z:0,width:Infinity,height:Infinity},8)}async initialize(t,e,i){this._core=t;this._workspaceId=e;this._reviver=new $t(t);this._ydoc=new L;this._objectsMap=this._ydoc.getMap("objects");const n=`kritzel-workspace-${e}`;const r=i??U;for(const t of r.providers){let e;if(typeof t==="function"){e=new t(n,this._ydoc)}else{e=t.create(n,this._ydoc)}this._providers.push(e)}this._undoManager=new K([this._objectsMap],{captureTimeout:200,trackedOrigins:new Set(["local","temporary"]),ignoreRemoteMapChanges:true});this._undoManager.on("stack-item-added",(t=>{if(t.type==="undo"){if(t.origin==="temporary"){this._temporaryItemsCount++}}}));this._undoManager.on("stack-item-popped",(t=>{if(t.type==="undo"){if(t.origin==="temporary"&&this._temporaryItemsCount>0){this._temporaryItemsCount--}}}));this._objectsMap.observe((t=>{this.handleObjectsChange(t)}));await Promise.all(this._providers.map((t=>t.connect())));this._isReady=true;this.loadFromYjs()}handleObjectsChange(t){if(t.transaction.origin==="local"||t.transaction.origin==="temporary"){this._core?.rerender();return}const e=Array.from(t.keysChanged);const i=[];const n=[];const r=[];e.forEach((e=>{const s=t.changes.keys.get(e);if(s&&s.action==="delete"){r.push(e)}else{const t=this._objectsMap.get(e);if(t){const e=this._reviver.revive(t);if(e instanceof O){n.push(e)}else{i.push(e)}}}}));r.forEach((t=>{this.quadtree.remove((e=>e.id===t))}));i.forEach((t=>{const e=this.quadtree.filter((e=>e.id===t.id)).length>0;if(e){this.quadtree.update(t)}else{this.quadtree.insert(t)}}));n.forEach((t=>{const e=this.quadtree.filter((e=>e.id===t.id)).length>0;if(e){this.quadtree.update(t)}else{this.quadtree.insert(t)}}));this._core?.rerender()}transaction(t){if(this._ydoc){this._ydoc.transact(t,"local")}}loadFromYjs(){if(!this._objectsMap||!this._reviver){return}this.quadtree.reset();this._objectsMap.forEach((t=>{const e=this._reviver.revive(t);this.quadtree.insert(e)}))}reset(){this.quadtree.reset();this._ydoc.transact((()=>{this._objectsMap.clear()}),"local")}insert(t){if(!t.id){return false}this.quadtree.insert(t);if(this._objectsMap&&this.isPersistable(t)){const e=t.serialize();this._ydoc.transact((()=>{this._objectsMap.set(t.id,e)}),"local")}return true}update(t,e={}){if(!t.id){return false}const i=this.quadtree.filter((e=>e.id===t.id)).length>0;if(!i){return false}this.quadtree.update(t);if(this._objectsMap&&this.isPersistable(t)){const i=t.serialize();const n=e.temporary?"temporary":"local";this._ydoc.transact((()=>{this._objectsMap.set(t.id,i)}),n)}return true}remove(t){const e=this.quadtree.filter(t);for(const t of e){this.quadtree.remove((e=>e.id===t.id));if(this._objectsMap&&this.isPersistable(t)){this._ydoc.transact((()=>{this._objectsMap.delete(t.id)}),"local")}}}filter(t){return this.quadtree.filter(t)}allObjects(){return this.quadtree.allObjects()}query(t){return this.quadtree.query(t)}isPersistable(t){if(t instanceof E){return false}return true}undo(){if(this._undoManager&&this._undoManager.canUndo()){this._undoManager.undo();this._core.engine.emitObjectsChange()}}redo(){if(this._undoManager&&this._undoManager.canRedo()){this._undoManager.redo();this._core.engine.emitObjectsChange()}}canUndo(){return this._undoManager?this._undoManager.canUndo():false}canRedo(){return this._undoManager?this._undoManager.canRedo():false}clearHistory(){if(this._undoManager){this._undoManager.clear();this._temporaryItemsCount=0}}consolidateTemporaryItems(){if(!this._undoManager||this._temporaryItemsCount===0){return}const t=this._undoManager.undoStack.length;if(t===0){this._temporaryItemsCount=0;return}this._undoManager.stopCapturing();const e=Math.min(this._temporaryItemsCount,t);if(e>1){for(let t=0;t<e;t++){if(this._undoManager.canUndo()){this._undoManager.undo()}}this._ydoc.transact((()=>{for(let t=e-1;t>=0;t--){if(this._undoManager.canRedo()){this._undoManager.redo()}}}),"local")}this._temporaryItemsCount=0}clearTemporaryItems(){if(!this._undoManager||this._temporaryItemsCount===0){return}const t=this._undoManager.undoStack.length;const e=Math.min(this._temporaryItemsCount,t);for(let t=0;t<e;t++){if(this._undoManager.undoStack.length>0){this._undoManager.undoStack.pop()}}this._temporaryItemsCount=0}destroy(){this._providers.forEach((t=>t.destroy()));this._providers=[];if(this._ydoc){this._ydoc.destroy()}}}class Et{_state;_listeners=new Map;get state(){return this._state}get currentZIndex(){return Math.max(0,...this._state.objects.filter((t=>!(t instanceof O)&&!(t instanceof E))).map((t=>t.zIndex)))+1}get allObjects(){return this._state.objects.allObjects()}get allNonSelectionObjects(){return this._state.objects.allObjects().filter((t=>!(t instanceof O)&&!(t instanceof E)))}get selectedObjects(){return this.allObjects.filter((t=>!(t instanceof O))).filter((t=>t.isSelected))}get selectionBox(){const t=this._state.objects.filter((t=>t instanceof E));return t.length>0?t[0]:null}get selectionGroup(){const t=this._state.objects.filter((t=>t instanceof O));return t.length>0?t[0]:null}get activeText(){const t=this._state.objects.filter((t=>t instanceof D&&t.isEditing));return t.length>0?t[0]:null}get activeShape(){const t=this._state.objects.filter((t=>t instanceof dt&&t.isEditing));return t.length>0?t[0]:null}get currentPath(){const t=this._state.objects.filter((t=>t instanceof P&&t.isCompleted===false));return t.length>0?t[0]:null}get currentLine(){const t=this._state.objects.filter((t=>t instanceof R&&t.isCompleted===false));return t.length>0?t[0]:null}get offsetX(){return this._state.host.getBoundingClientRect().left}get offsetY(){return this._state.host.getBoundingClientRect().top}get isDisabled(){return this._state.isEnabled===false||this._state.isReady===false||this._state.activeWorkspace===null}get isPointerDown(){return this._state.pointers.size>0}constructor(t){this._state=t;this._state.objects=new At}onStateChange(t,e){if(!this._listeners.has(t)){this._listeners.set(t,new Set)}this._listeners.get(t).add(e)}getState(t){return this._state[t]}setState(t,e){const i=this._state[t];if(i!==e){this._state[t]=e;if(this._listeners.has(t)){this._listeners.get(t).forEach((n=>n(e,i,String(t))))}}}}class Ot{_core;_targetElement=null;_shadowRoot=null;constructor(t){this._core=t}setTargetElement(t){if(this._targetElement){this._targetElement.style.cursor="";this._targetElement.style.removeProperty("--kritzel-pointer-cursor")}this._targetElement=t;if(this._targetElement){this._targetElement.style.setProperty("--kritzel-pointer-cursor",V.getPointerCursor())}}getTargetElement(){return this._targetElement}setShadowRoot(t){this._shadowRoot=t}resetToDefault(){this._core.store.state.cursor={icon:"default",iconActive:"default"}}updateHoverState(t){if(this._core.store.isPointerDown)return;if(!this._shadowRoot)return;const e=this._shadowRoot.elementsFromPoint(t.clientX,t.clientY);if(!e||e.length===0)return;const i=e.find((t=>t.classList.contains("resize-handle-overlay")));if(i){const t=this._core.store.selectionGroup;const e=t?.rotationDegrees??0;const n=i.classList.contains("top-left");const r=i.classList.contains("bottom-right");const s=n||r?-45:45;this._core.store.state.cursor={icon:"move-vertical",rotation:e+s};return}const n=e.find((t=>t.classList.contains("rotation-handle-overlay")));if(n){this._core.store.state.cursor={icon:"hand",iconActive:"hand-grab"};return}const r=e.find((t=>t.classList.contains("selection-line-handle-overlay")));if(r){this._core.store.state.cursor={icon:"hand",iconActive:"hand-grab"};return}this._core.store.state.cursor={icon:"default",iconActive:"default"}}applyCursor(){const t=this._core.store.state;const e=this._core.store.isPointerDown;const i=t.cursor?.icon;const n=t.cursor?.iconActive??i;const r=t.cursor?.rotation;const s=V.getCursor({iconName:e?n:i,rotation:r});if(this._targetElement){this._targetElement.style.cursor=s}}cleanup(){if(this._targetElement){this._targetElement.style.cursor="";this._targetElement.style.removeProperty("--kritzel-pointer-cursor")}this._targetElement=null;this._shadowRoot=null}}class Ft{_kritzelEngine;_store;_syncConfig;_appStateMap;_anchorManager;_cursorManager;get engine(){return this._kritzelEngine}get store(){return this._store}get appStateMap(){return this._appStateMap}get anchorManager(){return this._anchorManager}get cursorManager(){return this._cursorManager}constructor(t){this._kritzelEngine=t;this._store=new Et(jt);this._appStateMap=new B;this._anchorManager=new H(this);this._cursorManager=new Ot(this)}setSyncConfig(t){this._syncConfig=t}async initializeYjs(){await this._appStateMap.initialize(this,this._syncConfig)}loadWorkspacesFromAppState(){return this._appStateMap.allWorkspaces()}saveWorkspaceToAppState(t){if(this._appStateMap.has(t.id)){this._appStateMap.update(t)}else{this._appStateMap.insert(t)}}deleteWorkspaceFromAppState(t){this._appStateMap.remove((e=>e.id===t))}async initializeWorkspace(t){const e=this.loadWorkspacesFromAppState();const i=e.length>0?[...e].sort(((t,e)=>e.updatedAt.getTime()-t.updatedAt.getTime()))[0]:null;const n=localStorage.getItem("kritzel-active-workspace-id");const r=n?e.find((t=>t.id===n)):null;let s;if(t){s=t;const i=e.find((e=>e.id===t.id));if(!i){s._core=this;this.saveWorkspaceToAppState(s)}}else if(r){s=r}else if(i){s=i}else{s=new $(Y.generateUUID(),"New Workspace");s._core=this;this.saveWorkspaceToAppState(s)}localStorage.setItem("kritzel-active-workspace-id",s.id);if(this._store.state.objects&&this._store.state.objects.isReady){this._store.state.objects.destroy()}const o=new At;this._store.state.objects=o;this._store.state.activeWorkspace=s;this._store.state.workspaces=this.loadWorkspacesFromAppState();const a=s.viewport??{translateX:0,translateY:0,scale:1};this._store.state.translateX=a.translateX??0;this._store.state.translateY=a.translateY??0;this._store.state.scale=a.scale??1;await o.initialize(this,s.id,this._syncConfig);this._anchorManager.rebuildIndex();this.engine.emitObjectsChange();this.rerender()}rerender(){if(this._kritzelEngine){this._kritzelEngine.forceUpdate++}}findObjectById(t){for(const e of this._store.allObjects){if(e.id===t){return e}}return null}getWorkspaces(){return this.loadWorkspacesFromAppState()}createWorkspace(t){t._core=this;t.createdAt=new Date;t.updatedAt=new Date;this.saveWorkspaceToAppState(t);this._store.state.workspaces=this.loadWorkspacesFromAppState()}updateWorkspace(t){t.updatedAt=new Date;this.saveWorkspaceToAppState(t);const e=this._store.state.workspaces;const i=e.findIndex((e=>e.id===t.id));if(i!==-1){e[i]=t;this._store.state.workspaces=e}}deleteWorkspace(t){if(this._store.state.activeWorkspace?.id===t.id){this._store.state.objects?.destroy()}this.deleteWorkspaceFromAppState(t.id);this._store.state.workspaces=this.loadWorkspacesFromAppState();const e=`kritzel-workspace-${t.id}`;window.indexedDB.deleteDatabase(e)}updateWorkspaceViewport(t,e,i){const n=this._store.state.activeWorkspace;if(!n){return}n.viewport={translateX:t,translateY:e,scale:i};n.updatedAt=new Date;this.saveWorkspaceToAppState(n)}addObject(t){this._store.state.objects.insert(t)}removeObject(t,e=false){if(t instanceof F&&!e){const e=[...t.children];e.forEach((t=>{this.removeObject(t)}))}if(t instanceof R){this._anchorManager.handleLineDeleted(t.id)}else{this._anchorManager.handleObjectDeleted(t.id)}t.isMounted=false;this._store.state.objects.remove((e=>e.id===t.id))}updateObject(t,e){for(const i in e){if(e.hasOwnProperty(i)){t[i]=e[i]}}this._store.state.objects.update(t)}addSelectionGroup(t){this.removeSelectionGroup();this.removeSelectionBox();this._store.state.objects.insert(t)}removeSelectionGroup(){const t=this._store.selectionGroup;if(t){this._store.state.objects.remove((e=>e.id===t.id))}}removeSelectionBox(){const t=this._store.selectionBox;if(t){this._store.state.objects.remove((e=>e.id===t.id))}}deselectAllObjects(){this.removeSelectionGroup();this.rerender()}delete(){const t=this._store.selectionGroup;if(!t){return}t.objects.forEach((t=>this.removeObject(t)));this.removeSelectionGroup();this.rerender()}undo(){this._store.state.objects?.undo()}redo(){this._store.state.objects?.redo()}deleteObject(t){const e=this.findObjectById(t);if(e){this.removeObject(e);this.rerender()}}copy(){const t=this._store.selectionGroup;if(t){const e=new Map;const i=t.objects.sort(((t,e)=>t.zIndex-e.zIndex)).map((t=>{const i=t.copy();e.set(i.id,t.id);return i}));this._store.state.copiedObjects=i;this._store.state.copiedObjectIdMapping=e}}paste(t,e){const i=this._store.state.copiedObjects;if(!i||i.length===0){return}const n=this._store.state.activeWorkspace;const r=this._store.state.copiedObjectIdMapping;const s=i.some((t=>t.workspaceId!==n.id));const o=Math.min(...i.map((t=>t.translateX)));const a=Math.min(...i.map((t=>t.translateY)));let l;let c;if(t!==undefined&&e!==undefined){l=t;c=e}else if(s){l=o;c=a}else{l=o+25/this._store.state.scale;c=a+25/this._store.state.scale}const u=l-o;const h=c-a;this.removeSelectionGroup();this.removeSelectionBox();const f=O.create(this);const d=new Map;if(r){r.forEach(((t,e)=>{d.set(t,e)}))}i.forEach(((t,e)=>{if(t.workspaceId!==n.id){t.workspaceId=n.id}t.updatePosition(t.translateX+u,t.translateY+h);t.zIndex=this._store.currentZIndex+e;if(t instanceof F){const i=t._pendingChildren;if(i){i.forEach(((t,i)=>{if(t.workspaceId!==n.id){t.workspaceId=n.id}t.updatePosition(t.translateX+u,t.translateY+h);t.zIndex=this._store.currentZIndex+e+i;this.addObject(t)}));delete t._pendingChildren;t.finalize()}}this.addObject(t);f.addOrRemove(t)}));i.forEach((t=>{if(t instanceof R){let e=false;if(t.startAnchor&&d.has(t.startAnchor.objectId)){t.startAnchor={objectId:d.get(t.startAnchor.objectId)};e=true}if(t.endAnchor&&d.has(t.endAnchor.objectId)){t.endAnchor={objectId:d.get(t.endAnchor.objectId)};e=true}if(e){this._store.state.objects.update(t)}}}));this._anchorManager.rebuildIndex();f.isSelected=true;if(i.length===1){f.rotation=i[0].rotation}this.addSelectionGroup(f);if(s){if(t!==undefined&&e!==undefined){f.updatePosition(t,e)}else{f.centerInViewport()}this.engine.viewport.centerFitInViewport(f)}this._store.state.isSelecting=false;const p=this._store.selectionGroup;if(p){const t=new Map;const e=p.objects.sort(((t,e)=>t.zIndex-e.zIndex)).map((e=>{const i=e.copy();t.set(i.id,e.id);return i}));this._store.state.copiedObjects=e;this._store.state.copiedObjectIdMapping=t}this._store.setState("activeTool",k.getTool("selection"));this.engine.emitObjectsChange();this.rerender()}bringForward(t){const e=this._store.selectionGroup;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const r=n.length>0?Math.max(...n.map((t=>t.zIndex)))+1:0;i.forEach((t=>{if(t.zIndex!==r){this.updateObject(t,{zIndex:t.zIndex+1})}}));this.rerender()}sendBackward(t){const e=this._store.selectionGroup;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const r=n.length>0?Math.min(...n.map((t=>t.zIndex)))-1:0;i.forEach((t=>{if(t.zIndex!==r){this.updateObject(t,{zIndex:t.zIndex-1})}}));this.rerender()}bringToFront(t){const e=this._store.selectionGroup;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const r=Math.max(...n.map((t=>t.zIndex)))+1;i.forEach((t=>{this.updateObject(t,{zIndex:r})}));this.rerender()}sendToBack(t){const e=this._store.selectionGroup;const i=t?[t]:e?.objects||[];const n=this._store.allNonSelectionObjects.filter((t=>i.findIndex((e=>e.id===t.id))===-1));const r=Math.min(...n.map((t=>t.zIndex)))-1;i.forEach((t=>{this.updateObject(t,{zIndex:r})}));this.rerender()}group(){const t=this._store.selectionGroup;if(!t||t.objects.length<2){return}const e=F.createFromObjects(this,t.objects);this.addObject(e);this.removeSelectionGroup();const i=O.create(this);i.addOrRemove(e);i.isSelected=true;i.rotation=e.rotation;this.addSelectionGroup(i);this.engine.emitObjectsChange();this.rerender()}ungroup(){const t=this._store.selectionGroup;if(!t){return}const e=t.objects.filter((t=>t instanceof F));if(e.length===0){return}const i=[];const n=t.objects.filter((t=>!(t instanceof F)));e.forEach((t=>{const e=t.ungroup();i.push(...e);this.removeObject(t,true)}));this.removeSelectionGroup();const r=O.create(this);[...i,...n].forEach((t=>{r.addOrRemove(t)}));r.isSelected=true;this.addSelectionGroup(r);this.engine.emitObjectsChange();this.rerender()}selectObjects(t){if(t.length===0){return}const e=O.create(this);t.forEach((t=>{t.isSelected=false;e.addOrRemove(t)}));e.isSelected=true;if(t.length===1){e.rotation=e.objects[0].rotation}this.addSelectionGroup(e);this.rerender()}selectAllObjectsInViewport(){const t={x:-this._store.state.translateX/this._store.state.scale,y:-this._store.state.translateY/this._store.state.scale,z:this._store.state.scale,width:this._store.state.viewportWidth/this._store.state.scale,height:this._store.state.viewportHeight/this._store.state.scale,depth:100};const e=this._store.state.objects.query(t).filter((t=>t.isInViewport())).filter((t=>!(t instanceof O)&&!(t instanceof E)&&!(t instanceof et)));if(e.length>0){const t=O.create(this);e.forEach((e=>{e.isSelected=false;t.addOrRemove(e)}));t.isSelected=true;this._store.state.isSelecting=false;if(e.length===1){t.rotation=t.objects[0].rotation}this.addSelectionGroup(t);this._store.setState("activeTool",k.getTool("selection"));this.rerender()}}clearSelection(){this.removeSelectionGroup();this._store.state.objects.remove((t=>t instanceof E||t instanceof O));this._store.state.isSelecting=false;this._store.state.isResizeHandleSelected=false;this._store.state.isRotationHandleSelected=false;this._store.state.isLineHandleSelected=false;this._store.state.isLineHandleDragging=false;this._store.state.lineHandleType=null;this.rerender()}resetActiveText(){const t=this._store.activeText;if(t){if(t.isEmpty){this.deleteObject(t.id)}else{t.save()}}}resetActiveShape(){const t=this._store.activeShape;if(t){t.save()}}getObjectFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return null;const n=t.clientX;const r=t.clientY;const s=i.elementFromPoint(n,r);if(!s)return null;const o=s.closest(e);if(o){const t=this._store.allObjects.find((t=>o.id===t.id));const e=t?.hitTest(n,r);return e?t:null}return null}getObjectsFromPointerEvent(t,e=".object"){const i=this._store.state.host?.shadowRoot;if(!i)return[];const n=t.clientX;const r=t.clientY;const s=i.elementsFromPoint(n,r);if(!s||s.length===0)return[];const o=new Set;s.forEach((t=>{const i=t.closest(e);if(i&&i.id){o.add(i.id)}}));if(o.size>0){return this._store.allObjects.filter((t=>o.has(t.id))).sort(((t,e)=>e.zIndex-t.zIndex))}return[]}getElementsAtPoint(t,e){const i=this._store.state.host?.shadowRoot;if(!i)return[];const n=i.elementsFromPoint(t.clientX,t.clientY);if(!n||n.length===0)return[];return n.filter((t=>t.matches(e)))}isPointerOverElement(t,e){return this.getElementsAtPoint(t,e).length>0}getCanvasPoint(t){if(!this._store.state.host){return{x:0,y:0}}const e=this._store.state.host.getBoundingClientRect();const i=t.clientX-e.left;const n=t.clientY-e.top;const r=i-this._store.state.translateX;const s=n-this._store.state.translateY;const o=r/this._store.state.scale;const a=s/this._store.state.scale;return{x:o,y:a}}beforeWorkspaceChange(){this._kritzelEngine.viewport?.cancelPendingUpdates();const t=this._store.state.activeWorkspace;if(t){this.updateWorkspaceViewport(this._store.state.translateX,this._store.state.translateY,this._store.state.scale)}this.resetActiveText();this.clearSelection();this._store.setState("activeTool",k.getTool("selection"))}displaySelectionGroupUI(t){if(!t.isSelected){return false}const e=this._store.selectionGroup;if(!e){return!(t instanceof R)}if(e.objects.length>1){return true}if(e.objects.length===1){const t=e.objects[0];return!(t instanceof R)}return true}displaySelectionLineUI(t){if(!(t instanceof R)){return false}const e=this._store.selectionGroup;if(!e){return t.isSelected}if(!e.isSelected){return false}if(e.objects.length===1){const i=e.objects[0];return i instanceof R&&i.id===t.id}return false}}const Wt=":host{display:block;position:relative;height:100%;width:100%;overflow:hidden;background-color:var(--kritzel-engine-background-color, #ffffff)}:host,:host *{touch-action:none;user-select:none}.ProseMirror{outline:none}p,h1,h2,h3,h4,h5,h6,blockquote,pre{margin:0;padding:0}.debug-panel{position:absolute;pointer-events:none;top:0;right:0}.origin{position:relative;top:0;left:0;height:0;width:0;pointer-events:none;-webkit-transform-origin:top left;-moz-transform-origin:top left;transform-origin:top left;overflow:visible}.object{overflow:visible}.PlaygroundEditorTheme__quote{margin:0;margin-left:20px;margin-bottom:10px;font-size:15px;color:rgb(101, 103, 107);border-left-color:rgb(206, 208, 212);border-left-width:4px;border-left-style:solid;padding-left:16px}";const Dt=class{get host(){return r(this)}workspace;syncConfig;onWorkspaceChange(t){const e=this.core.store.state.activeWorkspace?.id;const i=t?.id;if(e!==i){this.core.beforeWorkspaceChange();this.core.initializeWorkspace(t)}}activeTool;globalContextMenuItems;objectContextMenuItems;scaleMax=bt;validateScaleMax(t){if(t>bt){console.warn(`scaleMax cannot be greater than ${bt}.`);this.scaleMax=bt;this.core.store.state.scaleMax=this.scaleMax}else{this.core.store.state.scaleMax=t}}scaleMin=gt;validateScaleMin(t){if(t<gt){console.warn(`scaleMin cannot be less than ${gt}.`);this.scaleMin=gt;this.core.store.state.scaleMin=this.scaleMin}else{this.core.store.state.scaleMin=t}}cursorTarget;onCursorTargetChange(t){this.core.cursorManager.setTargetElement(t||document.body)}isEngineReady;activeToolChange;workspacesChange;longpress;objectsChange;undoStateChange;forceUpdate=0;throttledWheel=Ct.throttle((t=>{this.viewport.handleWheel(t);this.core.store.state?.activeTool?.handleWheel(t)}),16);handleWheel(t){if(this.core.store.isDisabled){return}if(this.core.store.state.isContextMenuVisible){this.hideContextMenu()}this.throttledWheel(t)}handlePointerDown(t){if(this.core.store.isDisabled){return}if(s.isTouchDevice()){x.onLongPress(t,(t=>this.longpress.emit(t)))}this.host.setPointerCapture(t.pointerId);this.core.store.state.pointers.set(t.pointerId,t);this.viewport.handlePointerDown(t);this.core.store.state?.activeTool?.handlePointerDown(t)}throttledPointerMoveMulti=Ct.throttle((t=>{this.viewport.handlePointerMove(t);this.core.store.state?.activeTool?.handlePointerMove(t)}),16);handlePointerMove(t){if(this.core.store.isDisabled){return}if(this.core.store.state.pointers.has(t.pointerId)){this.core.store.state.pointers.set(t.pointerId,t)}if(this.core.store.state.pointers.size>1){this.throttledPointerMoveMulti(t)}this.core.cursorManager.updateHoverState(t);this.viewport.handlePointerMove(t);this.core.store.state?.activeTool?.handlePointerMove(t)}handlePointerUp(t){if(this.core.store.isDisabled){return}this.core.store.state.pointers.delete(t.pointerId);this.host.releasePointerCapture(t.pointerId);if(this.core.store.state.pointers.size===0){this.core.cursorManager.resetToDefault()}this.viewport.handlePointerUp(t);this.core.store.state?.activeTool?.handlePointerUp(t)}handlePointerCancel(t){if(this.core.store.isDisabled){return}this.host.releasePointerCapture(t.pointerId);this.core.store.state.pointers.delete(t.pointerId);if(this.core.store.state.pointers.size===0){this.core.cursorManager.resetToDefault()}this.viewport.handlePointerUp(t);this.core.store.state?.activeTool?.handlePointerUp(t)}handleLongPress(t){this.contextMenuHandler.handleContextMenu(t.detail)}handleContextMenu(t){t.preventDefault();if(this.core.store.isDisabled){return}if(t.pointerType==="touch"){return}this.contextMenuHandler.handleContextMenu(t)}handleResize(){this.viewport.handleResize()}handleKeyDown(t){if(this.core.store.isDisabled){return}this.keyHandler.handleKeyDown(t)}handleKeyUp(t){if(this.core.store.isDisabled){return}this.keyHandler.handleKeyUp(t)}preventDoubleTapZoomOnTouchDevices(t){t.preventDefault()}async registerTool(t,e,i){if(typeof e!=="function"||!(e.prototype instanceof m)){console.error(`Failed to register tool "${t}": Tool class must be a constructor function`);return null}const n=k.registerTool(t,e,this.core);if(i){Object.entries(i).forEach((([t,e])=>{n[t]=e}))}return Promise.resolve(n)}async changeActiveTool(t){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",t);this.core.deselectAllObjects();t?.onActivate()}async disable(){this.core.store.state.isEnabled=false;this.core.rerender()}async enable(){this.core.store.state.isEnabled=true;this.core.rerender()}async delete(){this.core.delete()}async copy(){this.core.copy()}async paste(t,e){this.core.paste(t,e)}async bringForward(t){this.core.bringForward(t)}async sendBackward(t){this.core.sendBackward(t)}async bringToFront(t){this.core.bringToFront(t)}async sendToBack(t){this.core.sendToBack(t)}async group(){this.core.group()}async ungroup(){this.core.ungroup()}async undo(){this.core.undo()}async redo(){this.core.redo()}async hideContextMenu(){this.core.store.state.pointers.clear();this.core.store.state.isContextMenuVisible=false;this.core.store.state.objects.remove((t=>t instanceof E));this.core.store.state.isSelecting=false;this.core.store.state.isEnabled=true;this.core.rerender()}async getObjectById(t){const e=this.core.store.allObjects.find((e=>e.id===t));return e||null}async addObject(t){this.core.deselectAllObjects();t.id=t.generateId();t._core=this.core;t.scale=t.scale?t.scale:this.core.store.state.scale;t.zIndex=this.core.store.currentZIndex;this.core.addObject(t);this.core.rerender();return t}async updateObject(t,e){this.core.deselectAllObjects();this.core.updateObject(t,e);this.core.rerender();return t}async removeObject(t){this.core.deselectAllObjects();this.core.store.state.objects.remove((e=>e.id===t.id));this.core.rerender();return t}async getSelectedObjects(){const t=this.core.store.selectionGroup;return t?t.objects:[]}async selectObjects(t){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",k.getTool("selection"));this.core.deselectAllObjects();this.core.selectObjects(t)}async selectAllObjectsInViewport(){this.core.store.state.activeTool?.onDeactivate();this.core.store.setState("activeTool",k.getTool("selection"));this.core.deselectAllObjects();this.core.selectAllObjectsInViewport()}async clearSelection(){this.core.clearSelection()}async centerObjectInViewport(t){t.centerInViewport();this.core.updateObject(t,t);this.core.rerender();return t}async getCopiedObjects(){return this.core.store.state.copiedObjects||[]}async createWorkspace(t){await this.core.createWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces);return t}async updateWorkspace(t){await this.core.updateWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces)}async deleteWorkspace(t){await this.core.deleteWorkspace(t);this.workspacesChange.emit(this.core.store.state.workspaces)}async getWorkspaces(){return await this.core.getWorkspaces()}async getActiveWorkspace(){return this.core.store.state.activeWorkspace}core;viewport;contextMenuHandler;keyHandler;contextMenuElement=null;get isSelecting(){return this.core.store.state.activeTool instanceof z&&this.core.store.state.isSelecting}get isSelectionActive(){return this.core.store.state.activeTool instanceof z&&this.core.store.selectionGroup!==null}constructor(e){t(this,e);this.isEngineReady=n(this,"isEngineReady");this.activeToolChange=n(this,"activeToolChange");this.workspacesChange=n(this,"workspacesChange");this.longpress=n(this,"longpress");this.objectsChange=n(this,"objectsChange");this.undoStateChange=n(this,"undoStateChange");this.core=new Ft(this)}disconnectedCallback(){this.throttledWheel.cancel();this.throttledPointerMoveMulti.cancel();this.core.cursorManager.cleanup()}componentWillLoad(){this.validateScaleMax(this.scaleMax);this.validateScaleMin(this.scaleMin)}async componentDidLoad(){this.contextMenuHandler=new It(this.core,this.globalContextMenuItems,this.objectContextMenuItems);this.keyHandler=new Mt(this.core);this.viewport=new St(this.core,this.host);this.core.cursorManager.setTargetElement(this.cursorTarget||document.body);this.core.cursorManager.setShadowRoot(this.host.shadowRoot);if(this.syncConfig){this.core.setSyncConfig(this.syncConfig)}await this.core.initializeYjs();await this.core.initializeWorkspace(this.workspace);this.core.appStateMap.onRemoteChange((()=>{this.workspacesChange.emit(this.core.store.state.workspaces)}));this._registerStateChangeListeners();if(this.core.store.state.isReady===false){this.core.store.state.isReady=true;this.isEngineReady.emit(this.core.store.state)}}emitObjectsChange(){const t=this.core.store.allObjects;const e=this.core.store.state.objects.undoState;this.objectsChange.emit(t);this.undoStateChange.emit(e)}_registerStateChangeListeners(){this.core.store.onStateChange("activeTool",this._handleActiveToolChange.bind(this))}_handleActiveToolChange(t){if(!(t instanceof z)){this.core.clearSelection();this.core.store.state.objects.remove((t=>t instanceof E));this.core.store.state.isSelecting=false;this.core.store.state.isResizeHandleSelected=false;this.core.store.state.isRotationHandleSelected=false}this.core.store.state.skipContextMenu=false;this.core.store.state.copiedObjects=null;this.activeToolChange.emit(t);g.forceHideKeyboard();this.core.rerender()}render(){const t=window.getComputedStyle(this.host);const n=t.getPropertyValue("--kritzel-selection-handle-size").trim()||"6px";const r=parseFloat(n);const o=r*2<14?14:r;const a=this.core.store.state.viewportWidth/2+this.core.store.state.translateX;const l=this.core.store.state.viewportHeight/2+this.core.store.state.translateY;const c={x:-this.core.store.state.translateX/this.core.store.state.scale,y:-this.core.store.state.translateY/this.core.store.state.scale,z:this.core.store.state.scale,width:this.core.store.state.viewportWidth/this.core.store.state.scale,height:this.core.store.state.viewportHeight/this.core.store.state.scale,depth:100};const u=this.core.store.state.objects.query(c).sort(((t,e)=>t.zIndex-e.zIndex));this.core.cursorManager.applyCursor();return e(i,{key:"cf63f71e5ab763750f0857595a6b2d56e99b29fd"},this.core.store.state.debugInfo.showViewportInfo&&e("div",{key:"cf6d5221edb666692bbed086d1fa5bb57f591442",class:"debug-panel"},e("div",{key:"d1e94a59352063d08412c13bee8632b468229431"},"ActiveWorkspaceId: ",this.core.store.state?.activeWorkspace?.id),e("div",{key:"0eeff49b2c3bd703ef3b0fa574a323822ecef8a3"},"ActiveWorkspaceName: ",this.core.store.state?.activeWorkspace?.name),e("div",{key:"884aaab5f8c10a21541139cbc1c824a80233c7bb"},"TranslateX: ",this.core.store.state?.translateX),e("div",{key:"6633c2b83830bc5091825b9c51af2aa82fbc935e"},"TranslateY: ",this.core.store.state?.translateY),e("div",{key:"905bf21fed43acbada2e5d18dd9eb33979d368a4"},"ViewportWidth: ",this.core.store.state?.viewportWidth),e("div",{key:"d2abcda891791cee5386fe065de9b781c2db2e0a"},"ViewportHeight: ",this.core.store.state?.viewportHeight),e("div",{key:"9f64a19ac4510a2eae4d605dfdbb9a855b001b19"},"PointerCount: ",this.core.store.state.pointers.size),e("div",{key:"25634969756ec8505e2b169c4f8f77fa5260932a"},"Scale: ",this.core.store.state?.scale),e("div",{key:"2aea36a0521a5e59154836da290e7c615e4dc36d"},"ActiveTool: ",this.core.store.state?.activeTool?.name),e("div",{key:"599bafe7e87b23df191849ad23f56eea0009272f"},"HasViewportChanged: ",this.core.store.state?.hasViewportChanged?"true":"false"),e("div",{key:"d5e466d0b64b0f64a808dc8f08dba21530579a49"},"IsEnabled: ",this.core.store.state?.isEnabled?"true":"false"),e("div",{key:"6143b384caa285cd850111b3d6d3fe95f3a468db"},"IsScaling: ",this.core.store.state?.isScaling?"true":"false"),e("div",{key:"5695722e2e07e024fe1b5db1be22c890fa16b7d9"},"IsPanning: ",this.core.store.state?.isPanning?"true":"false"),e("div",{key:"93c2d1a6669b397637d6918055fc14c96493cc65"},"IsSelecting: ",this.isSelecting?"true":"false"),e("div",{key:"2245f5894f7460d9d31ee33125260334920c6847"},"IsSelectionActive: ",this.isSelectionActive?"true":"false"),e("div",{key:"57fd33a984b7975198d87285658ec4de2824aa34"},"IsResizeHandleSelected: ",this.core.store.state.isResizeHandleSelected?"true":"false"),e("div",{key:"257cc4badaa694f04c839ca68ee79d1b695a006b"},"IsRotationHandleSelected: ",this.core.store.state.isRotationHandleSelected?"true":"false"),e("div",{key:"c00f461af4e4b1523e7e5feccfb0abfc6d45f5b7"},"IsRotationHandleHovered: ",this.core.store.state.isRotationHandleHovered?"true":"false"),e("div",{key:"3f1bd888dfa360153b930fc5e498ccb348879d81"},"IsDrawing: ",this.core.store.state.isDrawing?"true":"false"),e("div",{key:"4b33ce03143d6f96e359bc0a21697a3788fa6d3e"},"IsWriting: ",this.core.store.state.isWriting?"true":"false"),e("div",{key:"d603a0a226357378889c87d1bda5dd194388a81c"},"IsPointerDown: ",this.core.store.isPointerDown?"true":"false"),e("div",{key:"e0cb4c098e14c44c7c4d96a35f75a609a5d83144"},"PointerX: ",this.core.store.state?.pointerX),e("div",{key:"d663eff93d7884aa36da56a46e06cb65f0b14c54"},"PointerY: ",this.core.store.state?.pointerY),e("div",{key:"fe44809fc10454d605bad012300e8a46a8f180c9"},"SelectedObjects: ",this.core.store.selectionGroup?.objects.length||0),e("div",{key:"d69d570660f6ec9d37d842f24f61e534d4f349e1"},"ViewportCenter: (",a.toFixed(2),", ",l.toFixed(2),")")),e("div",{key:"aa6674f91511007c52f7faba849dd82f206e20ed",id:"origin",class:"origin",style:{transform:`matrix(${this.core.store.state?.scale}, 0, 0, ${this.core.store.state?.scale}, ${this.core.store.state?.translateX}, ${this.core.store.state?.translateY})`}},u?.map((t=>e("div",{key:t.id,style:{transform:t?.transformationMatrix,transformOrigin:"top left",position:"absolute",pointerEvents:this.core.store.state.isScaling?"none":"auto"}},e("svg",{xmlns:"http://www.w3.org/2000/svg",id:t.id,class:"object",style:{zIndex:t.zIndex.toString(),height:t?.totalHeight+"px",width:t?.totalWidth+"px",left:"0",top:"0",position:"absolute",transform:t.rotationDegrees!==0?`rotate(${t.rotationDegrees}deg)`:undefined,transformOrigin:t.rotationDegrees!==0?`${t.totalWidth/2}px ${t.totalHeight/2}px`:undefined,opacity:t.markedForRemoval?"0.5":t.opacity.toString(),pointerEvents:t.markedForRemoval?"none":"auto"}},N.isInstanceOf(t,"KritzelPath")&&e("svg",{ref:e=>t.mount(e),xmlns:"http://www.w3.org/2000/svg",style:{overflow:"visible"},viewBox:t?.viewBox},e("path",{d:t?.d,fill:t.fill,stroke:t?.stroke,"shape-rendering":t.isLowRes()?"optimizeSpeed":"auto"})),N.isInstanceOf(t,"KritzelLine")&&e("svg",{ref:e=>t.mount(e),xmlns:"http://www.w3.org/2000/svg",style:{overflow:"visible"},viewBox:t?.viewBox},e("defs",null,t.hasStartArrow&&e("marker",{id:t.startMarkerId,markerWidth:t.getArrowSize("start"),markerHeight:t.getArrowSize("start"),refX:0,refY:t.getArrowSize("start")/2,orient:"auto-start-reverse",markerUnits:"userSpaceOnUse"},e("path",{d:t.getArrowPath(t.arrows?.start?.style),fill:t.getArrowFill("start"),transform:`scale(${t.getArrowSize("start")/10})`})),t.hasEndArrow&&e("marker",{id:t.endMarkerId,markerWidth:t.getArrowSize("end"),markerHeight:t.getArrowSize("end"),refX:0,refY:t.getArrowSize("end")/2,orient:"auto",markerUnits:"userSpaceOnUse"},e("path",{d:t.getArrowPath(t.arrows?.end?.style),fill:t.getArrowFill("end"),transform:`scale(${t.getArrowSize("end")/10})`}))),e("path",{d:this.core.anchorManager.computeClippedLinePath(t),fill:"none",stroke:"transparent","stroke-width":Math.max(t?.strokeWidth||0,10),"stroke-linecap":"round"}),e("path",{d:this.core.anchorManager.computeClippedLinePath(t),fill:"none",stroke:t?.stroke,"stroke-width":t?.strokeWidth,"stroke-linecap":"round","marker-start":t.hasStartArrow?`url(#${t.startMarkerId})`:undefined,"marker-end":t.hasEndArrow?`url(#${t.endMarkerId})`:undefined})),e("foreignObject",{x:"0",y:"0",width:t.totalWidth.toString(),height:t.totalHeight.toString(),style:{minHeight:"0",minWidth:"0",backgroundColor:t.backgroundColor,borderColor:t.borderColor,borderWidth:t.borderWidth+"px",borderStyle:"solid",padding:t.padding+"px",overflow:"visible",display:N.isInstanceOf(t,"KritzelLine")||N.isInstanceOf(t,"KritzelPath")?"none":"block"}},N.isInstanceOf(t,"KritzelImage")&&e("img",{ref:e=>t.mount(e),src:t.src,style:{width:"100%",height:"100%",userSelect:"none",pointerEvents:"none",imageRendering:this.core.store.state.isScaling||this.core.store.state.isPanning?"pixelated":"auto"},draggable:false,onDragStart:t=>t.preventDefault()}),N.isInstanceOf(t,"KritzelText")&&e("div",{id:"text-object",ref:e=>t.mount(e),onPointerDown:e=>t.handlePointerDown(e),onPointerMove:e=>t.handlePointerMove(e),onPointerUp:e=>t.handlePointerUp(e),style:{minWidth:t.initialWidth+"px",minHeight:t.initialHeight+"px",maxWidth:"500px",height:"auto",width:"max-content",transformOrigin:"top left",transform:`scale(${t.scaleFactor})`,backgroundColor:t.backgroundColor,overflow:"visible",textRendering:this.core.store.state.isScaling||this.core.store.state.isPanning?"optimizeSpeed":"auto"}}),N.isInstanceOf(t,"KritzelShape")&&e("div",{ref:e=>t.mount(e),onPointerDown:e=>t.handlePointerDown(e),onPointerMove:e=>t.handlePointerMove(e),onPointerUp:e=>t.handlePointerUp(e),style:{width:"100%",height:"100%",position:"relative",overflow:"visible"}},e("svg",{xmlns:"http://www.w3.org/2000/svg",style:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",overflow:"visible",pointerEvents:"none"},viewBox:t.viewBox,preserveAspectRatio:"none"},e("path",{d:t.getSvgPath(),fill:t.fillColor,stroke:t.strokeColor,"stroke-width":t.strokeWidth})),e("div",{ref:e=>t.mountTextEditor(e),style:{position:"absolute",top:"0",left:"0",width:"100%",height:"100%",display:"flex",alignItems:"center",justifyContent:"center",textAlign:"center",overflow:"hidden",pointerEvents:t.isEditing?"auto":"none"}})),N.isInstanceOf(t,"KritzelCustomElement")&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%",pointerEvents:"auto",overflow:"hidden",display:"block"}}),N.isInstanceOf(t,"KritzelSelectionGroup")&&!this.core.displaySelectionLineUI(t)&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%"}}),N.isInstanceOf(t,"KritzelSelectionBox")&&e("div",{ref:e=>t.mount(e),style:{width:"100%",height:"100%",backgroundColor:s.isFirefox()?t.backgroundColor:"transparent",borderWidth:s.isFirefox()?t.borderWidth+"px":"0",borderStyle:s.isFirefox()?"solid":"none",borderColor:s.isFirefox()?t.borderColor:"transparent"}}))),this.core.store.state.debugInfo.showObjectInfo&&t.isDebugInfoVisible&&e("div",{style:{pointerEvents:"none",position:"absolute",left:`${t.totalWidth}px`,top:"0",zIndex:(t.zIndex+2).toString()}},e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"Id: ",t.id),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"width: ",t.width),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"height: ",t.height),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"translateX: ",t.translateX),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"translateY: ",t.translateY),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"rotationDegrees: ",t.rotationDegrees),e("div",{style:{whiteSpace:"nowrap",fontSize:"10px"}},"zIndex: ",t.zIndex)),e("svg",{xmlns:"http://www.w3.org/2000/svg",style:{zIndex:(t.zIndex+1).toString(),height:t?.totalHeight.toString(),width:t?.totalWidth.toString(),left:"0",top:"0",position:"absolute",transform:`rotate(${t.rotationDegrees}deg)`,transformOrigin:`${t.totalWidth/2}px ${t.totalHeight/2}px`,overflow:"visible",pointerEvents:"none"}},this.core.displaySelectionGroupUI(t)&&e("g",{class:"selection-group-ui",style:{pointerEvents:"none"}},e("g",{class:"selection-group-borders"},e("line",{x1:"0",y1:"0",x2:t.totalWidth,y2:"0",style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}}),e("line",{x1:"0",y1:"0",x2:"0",y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}}),e("line",{x1:"0",y1:t.totalHeight,x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}}),e("line",{x1:t.totalWidth,y1:"0",x2:t.totalWidth,y2:t.totalHeight,style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"square"}})),!this.isSelecting&&e("g",{class:"selection-group-handles",style:{pointerEvents:"auto"}},e("circle",{class:"resize-handle top-left",cx:"0",cy:"0",r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay top-left",cx:"0",cy:"0",r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"resize-handle top-right",cx:t.totalWidth,cy:"0",r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay top-right",cx:t.totalWidth,cy:"0",r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"resize-handle bottom-left",cx:"0",cy:t.totalHeight,r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay bottom-left",cx:"0",cy:t.totalHeight,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"resize-handle bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"resize-handle-overlay bottom-right",cx:t.totalWidth,cy:t.totalHeight,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}),e("line",{x1:t.totalWidth/2,y1:"0",x2:t.totalWidth/2,y2:-(15*t.scale/this.core.store.state?.scale),style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`}}),e("circle",{class:"rotation-handle",cx:t.totalWidth/2,cy:-(15*t.scale/this.core.store.state?.scale),r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"rotation-handle-overlay",cx:t.totalWidth/2,cy:-(15*t.scale/this.core.store.state?.scale),r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}))),this.core.displaySelectionLineUI(t)&&N.isInstanceOf(t,"KritzelLine")&&e("g",{class:"selection-line-ui",style:{pointerEvents:"none"}},e("g",{class:"selection-line-borders"},e("path",{class:"selection-line-border",d:this.core.anchorManager.computeClippedLinePath(t,true),style:{stroke:"var(--kritzel-selection-border-color, #007AFF)",strokeWidth:`calc(var(--kritzel-selection-border-width, 2px) * ${t.scale} / ${this.core.store.state?.scale})`,strokeLinecap:"round",fill:"none"}})),!this.isSelecting&&e("g",{class:"selection-line-handles",style:{pointerEvents:"auto"}},e("circle",{class:"selection-line-handle start",cx:t.startX-t.x,cy:t.startY-t.y,r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle-overlay start",cx:t.startX-t.x,cy:t.startY-t.y,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle center",cx:t.controlX!==undefined?(t.startX+2*t.controlX+t.endX)/4-t.x:(t.startX-t.x+t.endX-t.x)/2,cy:t.controlY!==undefined?(t.startY+2*t.controlY+t.endY)/4-t.y:(t.startY-t.y+t.endY-t.y)/2,r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle-overlay center",cx:t.controlX!==undefined?(t.startX+2*t.controlX+t.endX)/4-t.x:(t.startX-t.x+t.endX-t.x)/2,cy:t.controlY!==undefined?(t.startY+2*t.controlY+t.endY)/4-t.y:(t.startY-t.y+t.endY-t.y)/2,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle end",cx:t.endX-t.x,cy:t.endY-t.y,r:`${r*t.scale/this.core.store.state?.scale}`,style:{fill:"var(--kritzel-selection-handle-color, #000000)",paintOrder:"fill"}}),e("circle",{class:"selection-line-handle-overlay end",cx:t.endX-t.x,cy:t.endY-t.y,r:`${o*t.scale/this.core.store.state?.scale}`,style:{fill:"transparent",paintOrder:"fill"}}))))))),(()=>{const t=this.core.anchorManager.getAnchorLinesRenderData();if(!t)return null;return e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"anchor-lines",style:{position:"absolute",left:"0",top:"0",width:"1px",height:"1px",pointerEvents:"none",zIndex:"9998",overflow:"visible"}},t.startAnchorViz&&e("g",{class:"anchor-line-start"},t.startAnchorViz.pathD?e("path",{d:t.startAnchorViz.pathD,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.3))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round",fill:"none"}}):e("line",{x1:t.startAnchorViz.edgeX,y1:t.startAnchorViz.edgeY,x2:t.startAnchorViz.centerX,y2:t.startAnchorViz.centerY,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.3))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round"}}),e("circle",{cx:t.startAnchorViz.centerX,cy:t.startAnchorViz.centerY,r:t.indicatorRadius,style:{fill:"var(--kritzel-snap-indicator-fill, rgba(0, 0, 0))",stroke:"var(--kritzel-snap-indicator-stroke, #3b82f6)",strokeWidth:t.indicatorStrokeWidth}})),t.endAnchorViz&&e("g",{class:"anchor-line-end"},t.endAnchorViz.pathD?e("path",{d:t.endAnchorViz.pathD,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round",fill:"none"}}):e("line",{x1:t.endAnchorViz.edgeX,y1:t.endAnchorViz.edgeY,x2:t.endAnchorViz.centerX,y2:t.endAnchorViz.centerY,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:`${t.lineStrokeWidth}`,strokeDasharray:t.dashArray,strokeLinecap:"round"}}),e("circle",{cx:t.endAnchorViz.centerX,cy:t.endAnchorViz.centerY,r:t.indicatorRadius,style:{fill:"var(--kritzel-snap-indicator-fill, rgba(59, 130, 246, 0.3))",stroke:"var(--kritzel-snap-indicator-stroke, #3b82f6)",strokeWidth:t.indicatorStrokeWidth}})))})(),(()=>{const t=this.core.anchorManager.getSnapIndicatorRenderData();if(!t)return null;return e("svg",{xmlns:"http://www.w3.org/2000/svg",class:"snap-indicator",style:{position:"absolute",left:"0",top:"0",width:"1px",height:"1px",pointerEvents:"none",zIndex:"9999",overflow:"visible"}},e("g",null,t.snapLinePath?e("path",{d:t.snapLinePath,fill:"none",style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:t.lineStrokeWidth,strokeDasharray:t.dashArray,strokeLinecap:"round"}}):t.edgeX!==undefined&&t.edgeY!==undefined&&e("line",{x1:t.edgeX,y1:t.edgeY,x2:t.centerX,y2:t.centerY,style:{stroke:"var(--kritzel-snap-line-stroke, rgba(0, 0, 0, 0.2))",strokeWidth:t.lineStrokeWidth,strokeDasharray:t.dashArray,strokeLinecap:"round"}}),e("circle",{cx:t.centerX,cy:t.centerY,r:t.indicatorRadius,style:{fill:"var(--kritzel-snap-indicator-fill, rgba(59, 130, 246, 0.3))",stroke:"var(--kritzel-snap-indicator-stroke, #3b82f6)",strokeWidth:t.indicatorStrokeWidth}})))})()),this.core.store.state.isContextMenuVisible&&e("kritzel-context-menu",{key:"95f98d34b26eca7124f973002c2689e9a90f6748",class:"context-menu",ref:t=>this.contextMenuElement=t,items:this.core.store.state.contextMenuItems,objects:this.core.store.selectionGroup?.objects||[],style:{position:"fixed",left:`${this.core.store.state.contextMenuX}px`,top:`${this.core.store.state.contextMenuY}px`,zIndex:"10002"},onActionSelected:t=>{t.detail.action({x:(-this.core.store.state.translateX+this.core.store.state.contextMenuX)/this.core.store.state.scale,y:(-this.core.store.state.translateY+this.core.store.state.contextMenuY)/this.core.store.state.scale},this.core.store.selectionGroup?.objects);this.hideContextMenu()},onClose:()=>this.hideContextMenu()}),this.core.store.state?.activeTool instanceof I&&!this.core.store.state.isScaling&&e("kritzel-cursor-trail",{key:"412f67f0a484b7f5e37a4e9fa25d9124c389f62b",core:this.core}))}static get watchers(){return{workspace:["onWorkspaceChange"],scaleMax:["validateScaleMax"],scaleMin:["validateScaleMin"],cursorTarget:["onCursorTargetChange"]}}};Dt.style=Wt;const Rt=":host{display:block}.font-preview{color:var(--kritzel-font-size-text-color, #333333);line-height:1;text-align:center;font-weight:bold}";const Pt=class{constructor(e){t(this,e)}fontFamily="Arial, sans-serif";size=24;color="#000000";render(){return e(i,{key:"62d0314df8f62ef2cf21c17f548261b34611750f"},e("div",{key:"269347c138aab38cb1f018e58db78cab8e087f13",class:"font-preview",style:{fontFamily:this.fontFamily,fontSize:`${this.size}px`,color:this.color}},"A"))}};Pt.style=Rt;const Lt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box;width:100%}.font-style-button{display:flex;justify-content:center;align-items:center;width:42px;height:32px;padding:0;border:none;outline:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);border-radius:0;color:var(--control-text-color);font-weight:bold;-webkit-tap-highlight-color:transparent}.font-style-button:not(:last-child){border-right:1px solid #333333}.font-style-button:hover{background-color:var(--control-hover-bg)}.font-style-button:active{background-color:var(--control-active-bg)}.font-style-button.selected,.font-style-button.selected:hover,.font-style-button.selected:active{background-color:var(--control-selected-bg);color:var(--control-selected-color)}.font-style-button.italic-text{font-style:italic}";const Ut=class{constructor(e){t(this,e);this.fontFamilyChange=n(this,"fontFamilyChange")}fontOptions=[{value:"arial",label:"Arial"},{value:"verdana",label:"Verdana"},{value:"helvetica",label:"Helvetica"},{value:"tahoma",label:"Tahoma"},{value:"trebuchet ms",label:"Trebuchet MS"},{value:"times new roman",label:"Times New Roman"},{value:"georgia",label:"Georgia"},{value:"garamond",label:"Garamond"},{value:"courier new",label:"Courier New"},{value:"brush script mt",label:"Brush Script MT"}];selectedFontFamily;fontFamilyChange;componentWillLoad(){if(this.fontOptions&&this.fontOptions.length>0){const t=this.fontOptions.some((t=>t.value===this.selectedFontFamily));if(!this.selectedFontFamily||!t){this.selectedFontFamily=this.fontOptions[0].value}}}handleDropdownValueChange=t=>{this.fontFamilyChange.emit(t.detail)};render(){const t=this.fontOptions.map((t=>({value:t.value,label:t.label,style:{fontFamily:t.value}})));return e(i,{key:"74f27d2d9f73ee8589448a24bed64e885ef6d2d8"},e("kritzel-dropdown",{key:"58abc26a54b124f253841faaa4ca4227a23baac2",options:t,value:this.selectedFontFamily,onValueChanged:this.handleDropdownValueChange,selectStyles:{fontFamily:this.selectedFontFamily}}))}};Ut.style=Lt;const Kt=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:4px;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box;border-radius:50%}.size-container:hover{background-color:var(--kritzel-font-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-font-size-selected-background-color, #e0e0e0)}";const Vt=class{constructor(e){t(this,e);this.sizeChange=n(this,"sizeChange")}sizes=[8,10,12,16,20,24];selectedSize=null;fontFamily="Arial";sizeChange;handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(i,{key:"d48d35191f7e9bd0b98f537a7dc298bcfd362c0b"},this.sizes.map((t=>e("div",{class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-font",{fontFamily:this.fontFamily,size:t})))))}};Vt.style=Kt;const Bt=":host{display:inline-flex;justify-content:center;align-items:center;color:var(--kritzel-icon-color, inherited)}span{display:flex;align-items:center;width:100%;height:100%;}span>svg{width:100%;height:100%}";const Ht=class{constructor(e){t(this,e)}name;label;size=24;render(){const t=T.get(this.name);if(!t){console.error(`[kritzel-icon] Icon "${this.name}" not found in registry.`);return e("span",{class:"error-icon","aria-label":`Error: Icon ${this.name} not found`},"?")}const n={width:`${this.size}px`,height:`${this.size}px`};return e(i,{style:n},e("span",{"aria-hidden":!this.label,role:this.label?"img":undefined,"aria-label":this.label,innerHTML:t}))}};Ht.style=Bt;const Yt=":host{position:relative;display:flex;flex-direction:column;background-color:var(--kritzel-menu-background-color, #ffffff);width:var(--kritzel-menu-width, 200px);padding:var(--kritzel-menu-padding, 8px);border-radius:var(--kritzel-menu-border-radius, 12px);box-shadow:var(--kritzel-menu-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-menu-border, 1px solid #ebebeb);z-index:2;gap:var(--kritzel-menu-gap, 4px);overflow-y:auto;scrollbar-color:#ebebeb transparent;scrollbar-width:thin;max-height:var(--kritzel-portal-max-height, 300px);box-sizing:border-box}.has-open-child-overlay{position:absolute;top:0;left:0;right:0;bottom:0;z-index:3}";const Nt=class{constructor(e){t(this,e);this.itemSelect=n(this,"itemSelect");this.itemSave=n(this,"itemSave");this.itemCancel=n(this,"itemCancel");this.itemToggleChildMenu=n(this,"itemToggleChildMenu");this.itemCloseChildMenu=n(this,"itemCloseChildMenu");this.close=n(this,"close")}get host(){return r(this)}items;parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;close;selectedIndex=null;async setScrollTop(t){this.host.scrollTop=t;this.host.scrollTo({top:t,behavior:"auto"})}async setFocus(){const t=this.host.shadowRoot.querySelector("kritzel-menu-item");if(t){t.focus()}}get openChildMenuItem(){return this.items.find((t=>t.isChildMenuOpen))}get editingMenuItem(){return this.items.find((t=>t.isEditing))}onOverlayClick=t=>{t.stopPropagation();this.itemCloseChildMenu.emit(this.openChildMenuItem)};handleItemSelect=t=>{t.stopPropagation();this.itemSelect.emit(t.detail)};handleSave=t=>{t.stopPropagation();this.itemSave.emit(t.detail)};handleCancel=t=>{t.stopPropagation();this.itemCancel.emit(t.detail)};handleToggleChildMenu=t=>{t.stopPropagation();this.itemToggleChildMenu.emit(t.detail)};handleCloseChildMenu=t=>{t.stopPropagation();this.itemCloseChildMenu.emit(t.detail)};render(){return e(i,{key:"3901d38f620a544be329e1a20b17b188a81295dc",tabIndex:0,onClick:t=>t.stopPropagation()},this.openChildMenuItem&&e("div",{key:"8804023760f43fa34c3ac3f1829439f6136112b9",class:"has-open-child-overlay",onClick:this.onOverlayClick}),this.items.map((t=>e("kritzel-menu-item",{key:t.id,item:t,parent:this.parent,style:{pointerEvents:this.editingMenuItem&&!t.isEditing?"none":"auto"},onItemSelect:this.handleItemSelect,onItemSave:this.handleSave,onItemCancel:this.handleCancel,onItemToggleChildMenu:this.handleToggleChildMenu,onItemCloseChildMenu:this.handleCloseChildMenu}))))}};Nt.style=Yt;const Xt=":host{position:relative;display:flex;align-items:center;justify-content:space-between;width:100%;padding:var(--kritzel-menu-item-padding, 8px);box-sizing:border-box;gap:16px;height:var(--kritzel-menu-item-height, 40px);min-height:var(--kritzel-menu-item-min-height, 40px);font-family:sans-serif;font-size:var(--kritzel-menu-item-font-size, 14px);color:var(--kritzel-menu-item-color, #333333);border-radius:var(--kritzel-menu-item-border-radius, 12px)}:host(:hover) .menu-item-overlay,:host(:focus-within) .menu-item-overlay{background-color:var(--kritzel-menu-item-overlay-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff);color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected.editing){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}:host(.selected) .edit-input{color:var(--kritzel-menu-item-selected-color, #ffffff)}:host(.selected) .action-button kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-selected-color, #ffffff)}kritzel-icon{--kritzel-icon-color:var(--kritzel-menu-item-color, #333333)}:host(.selected) .edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, rgba(255, 255, 255, 0.16))}:host(.editing){background-color:var(--kritzel-menu-item-editing-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.disabled){opacity:0.5;pointer-events:none !important}:host(.child-open){background-color:var(--kritzel-menu-item-child-open-background-color, hsl(0, 0%, 0%, 4.3%))}:host(.child-open.selected){background-color:var(--kritzel-menu-item-selected-bg, #007aff)}.menu-item-overlay{position:absolute;inset:0;background-color:transparent;z-index:0;pointer-events:none;border-radius:var(--kritzel-menu-item-border-radius, 12px)}.menu-item-content{display:flex;align-items:center;gap:8px;position:relative;z-index:1;height:100%}.left{justify-content:flex-start;flex:1;min-width:0}.left>div{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.right{justify-content:flex-end}.edit-input{flex:1;height:var(--kritzel-menu-item-input-height, 24px);padding:0;background-color:transparent;border-radius:0;border:none;border-bottom:1px solid var(--kritzel-menu-item-input-border, #ccc);font-size:var(--kritzel-context-menu-item-font-size, 14px);width:100%;min-width:0;box-sizing:border-box;outline:none}.edit-input::selection{background-color:var(--kritzel-menu-item-input-selection-color, #007bff);color:var(--kritzel-menu-item-input-selection-text-color, #ffffff)}.action-button{padding:4px;border-radius:8px;border:none;cursor:var(--kritzel-pointer-cursor, pointer);display:flex;align-items:center;justify-content:center;background-color:transparent;background:transparent;-webkit-tap-highlight-color:transparent}.action-button:hover,.action-button:focus{background-color:var(--kritzel-menu-item-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.action-button.disabled{pointer-events:none;opacity:0.5}";const qt=class{constructor(e){t(this,e);this.itemSelect=n(this,"itemSelect");this.itemSave=n(this,"itemSave");this.itemCancel=n(this,"itemCancel");this.itemToggleChildMenu=n(this,"itemToggleChildMenu");this.itemCloseChildMenu=n(this,"itemCloseChildMenu")}get host(){return r(this)}item;onItemChange(t,e){if(t!==e){this.isDirty=false}}parent=null;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;isDirty=false;inputRef;focusInput(){if(this.item.isEditing&&this.inputRef&&!this.isDirty){this.inputRef.focus();if(s.isIOS()){const t=this.inputRef.value.length;this.inputRef.setSelectionRange(t,t)}else{this.inputRef.select()}}}componentDidLoad(){this.setDeviceSpecificStyles();this.focusInput()}componentDidUpdate(){this.focusInput()}setDeviceSpecificStyles=()=>{const t=s.isTouchDevice();if(t){this.host.style.setProperty("--kritzel-menu-item-overlay-background-color","transparent");this.host.style.setProperty("--kritzel-menu-item-button-hover-background-color","transparent")}};handleItemSelect=t=>{t.stopPropagation();this.itemSelect.emit({item:this.item,parent:this.parent})};handleInputChange=t=>{t.stopPropagation();const e=t.target;this.item.label=e.value;this.isDirty=true};handleSave=t=>{t.stopPropagation();this.host.focus();this.itemSave.emit(this.item)};handleCancel=t=>{t.stopPropagation();this.host.focus();this.itemCancel.emit(this.item)};handleMenuToggle=t=>{t.stopPropagation();this.itemToggleChildMenu.emit({item:this.item,childMenuAnchor:t.target})};handleMenuClose=()=>{this.itemCloseChildMenu.emit(this.item)};renderViewMode(){return[e("div",{class:"menu-item-content left"},e("div",null,this.item.label)),e("div",{class:"menu-item-content right"},this.item.children&&this.item.children.length>0&&[e("button",{id:"child-menu-toggle",class:"action-button",onClick:this.handleMenuToggle,disabled:this.item.isDisabled},e("kritzel-icon",{name:"ellipsis-vertical",size:16})),e("kritzel-portal",{anchor:this.item.childMenuAnchor,offsetY:4,onClose:this.handleMenuClose},e("kritzel-menu",{items:this.item.children,parent:this.item,onItemSelect:t=>this.itemSelect.emit(t.detail),onItemSave:t=>this.itemSave.emit(t.detail),onItemCancel:t=>this.itemCancel.emit(t.detail),onClose:this.handleMenuClose}))])]}renderEditMode(){return[e("div",{class:"menu-item-content left"},e("input",{ref:t=>this.inputRef=t,type:"text",class:"edit-input",value:this.item.label,onInput:this.handleInputChange})),e("div",{class:"menu-item-content right"},e("div",{tabIndex:0,class:"action-button",onClick:this.handleCancel},e("kritzel-icon",{name:"x",size:16})),e("div",{tabIndex:!this.isDirty&&!this.item.isNewItem?-1:0,class:{"action-button":true,disabled:!this.isDirty&&!this.item.isNewItem},onClick:this.handleSave},e("kritzel-icon",{name:"check",size:16})))]}render(){return e(i,{key:"3a8119288e14c4de188663910a58e0ba67b47614",tabIndex:this.item.isDisabled?-1:0,class:{selected:this.item.isSelected,editing:this.item.isEditing,disabled:this.item.isDisabled,"child-open":this.item.isChildMenuOpen},onClick:this.handleItemSelect},e("div",{key:"b5dadbff0a915fb032f4a22207683667363eba1d",class:"menu-item-overlay"}),this.item.isEditing?this.renderEditMode():this.renderViewMode())}static get watchers(){return{item:["onItemChange"]}}};qt.style=Xt;class Gt{static getNumericValueFromStyle(t,e){const i=window.getComputedStyle(t).getPropertyValue(e);return parseFloat(i)||0}static getScrollableParent(t){if(!t){return window}const e=t.parentNode?.host??t.parentElement;if(!e||e.tagName==="BODY"){return window}const i=window.getComputedStyle(e);if(i.overflow==="auto"||i.overflowY==="auto"||i.overflow==="scroll"||i.overflowY==="scroll"){return e}return this.getScrollableParent(e)}static isElementInViewport(t){if(!t){return false}const e=this.getScrollableParent(t);const i=t.getBoundingClientRect();if(e===window){const t=window.innerHeight||document.documentElement.clientHeight;const e=window.innerWidth||document.documentElement.clientWidth;return i.top>=0&&i.left>=0&&i.bottom<=t&&i.right<=e}const n=e.getBoundingClientRect();return i.top>=n.top&&i.left>=n.left&&i.bottom<=n.bottom&&i.right<=n.right}static getFocusableElements(t){if(!t)return[];const e=[];const i='a[href], button:not([disabled]), input:not([disabled]), textarea:not([disabled]), select:not([disabled]), details, [tabindex]:not([tabindex="-1"])';const n=t=>t.offsetParent!==null;const r=t=>{if(t instanceof HTMLElement&&t.matches(i)&&!t.hasAttribute("disabled")&&n(t)){e.push(t)}if(t.shadowRoot){Array.from(t.shadowRoot.children).forEach(r)}if(t.tagName==="SLOT"){t.assignedElements({flatten:true}).forEach(r)}if(!t.shadowRoot){Array.from(t.children).forEach(r)}};r(t);return e}}const Zt=class{constructor(e){t(this,e);this.close=n(this,"close")}get host(){return r(this)}anchor;anchorChanged(t){if(t){this.openPortal();this.calculatePosition();if(this.autoFocus){this.focusFirstElement()}}else{this.closePortal()}}offsetX;offsetY;autoFocus=true;close;handleOutsideClick(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;const i=t.target;if(!this.host.contains(i)){this.close.emit();this.closePortal()}}handleKeyDown(t){t.stopPropagation();const e=this.lastAddedPortal===this.portal;if(!e)return;if(t.key==="Escape"){this.anchor.focus();this.close.emit();this.closePortal()}if(t.key==="Tab"){this.trapFocus(t)}if(t.key==="Enter"){const e=this.getDeepActiveElement();if(e?.click){t.preventDefault();e.click()}}}handleResize(){this.calculatePosition()}handleWindowScroll(){const t=Gt.isElementInViewport(this.anchor);if(!t){this.anchor?.blur();this.closePortal();return}this.calculatePosition()}portal;id=`portal-${Y.generateUUID()}`;defaultOffset=0;minLeft=0;focusFirstElement(){requestAnimationFrame((()=>{this.firstFocusableElement?.focus?.()}))}getDeepActiveElement(){let t=document.activeElement;while(t?.shadowRoot?.activeElement){t=t.shadowRoot.activeElement}return t}trapFocus(t){const e=Gt.getFocusableElements(this.host);if(e.length===0)return;const i=e[0];const n=e[e.length-1];const r=this.getDeepActiveElement();if(t.shiftKey){if(r===i){n.focus();t.preventDefault()}}else{if(r===n){i.focus();t.preventDefault()}}}get firstFocusableElement(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements({flatten:true})[0];if(!e)return null;const i=Gt.getFocusableElements(e);return i[0]??e}get lastAddedPortal(){const t=Array.from(document.querySelectorAll('[id^="portal-"]'));return t.length?t[t.length-1]:null}calculateLeft(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect();const e=this.portal.getBoundingClientRect();const i=this.offsetX??this.defaultOffset;let n=t.left+i;const r=window.innerWidth-e.width-this.minLeft;if(n<this.minLeft)n=this.minLeft;if(n>r)n=r;return Math.round(n+window.scrollX)}calculateTop(){if(!this.anchor||!this.portal)return 0;const t=this.anchor.getBoundingClientRect();const e=this.portal.getBoundingClientRect();const i=this.offsetY??this.defaultOffset;const n=8;let r=t.bottom+i;const s=window.innerHeight-t.bottom-i-n;const o=t.top-i-n;this.host.style.removeProperty("--kritzel-portal-max-height");if(e.height<=s){r=t.bottom+i}else if(e.height<=o){r=t.top-e.height-i}else{if(s>=o){r=t.bottom+i;this.host.style.setProperty("--kritzel-portal-max-height",`${s}px`)}else{r=n;this.host.style.setProperty("--kritzel-portal-max-height",`${o}px`)}}return Math.round(r+window.scrollY)}openPortal(){this.portal=document.createElement("div");this.portal.setAttribute("id",this.id);this.portal.style.zIndex="1";this.portal.style.position="absolute";this.portal.style.top="0px";this.portal.style.left="0px";this.portal.appendChild(this.host);document.body.append(this.portal)}closePortal(){const t=document.getElementById(this.id);if(!t)return;document.body.removeChild(t);this.host.remove()}calculatePosition(){if(!this.anchor||!this.portal)return;const t=this.calculateTop();const e=this.calculateLeft();this.portal.style.top=`${t}px`;this.portal.style.left=`${e}px`}render(){return e(i,{key:"9706a815c6f49853983a0fdb68b097d62e65e90b",style:{display:this.anchor?"block":"none"}},e("slot",{key:"1bd76deeb440cd25e3895dc8824f5200461e4ae0"}))}static get watchers(){return{anchor:["anchorChanged"]}}};const Jt=":host{position:relative;display:flex;align-items:center;font-family:sans-serif;z-index:1;padding:var(--kritzel-split-button-padding, 4px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);box-shadow:var(--kritzel-split-button-box-shadow, 0 0 3px rgba(0, 0, 0, 0.08));border:var(--kritzel-split-button-border, 1px solid #ebebeb);gap:var(--kritzel-split-button-gap, 4px)}:host(.mobile){--kritzel-split-button-hover-background-color:transparent}button{border:none;background-color:transparent;padding:0;margin:0;font-family:inherit;font-size:inherit;color:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none;cursor:var(--kritzel-pointer-cursor, pointer);text-align:center;display:flex;align-items:center;justify-content:center;pointer-events:all;-webkit-tap-highlight-color:transparent}.split-main-button,.split-menu-button{height:auto;display:flex;align-items:center;padding:var(--kritzel-split-button-padding, 8px);background-color:var(--kritzel-split-button-background-color, #ffffff);border-radius:var(--kritzel-split-button-border-radius, 12px);font-size:var(--kritzel-split-button-font-size, 14px)}.split-main-button:hover,.split-menu-button:hover{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button:focus,.split-menu-button:focus{background-color:var(--kritzel-split-button-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.split-main-button{gap:var(--kritzel-split-button-gap, 4px)}.split-menu-button{border-left:none;justify-content:center}.split-divider{width:var(--kritzel-split-button-divider-width, 1px);height:24px;background-color:var(--kritzel-split-button-divider-background-color, hsl(0, 0%, 0%, 4.3%))}:disabled{pointer-events:none;opacity:0.5}";const Qt=class{constructor(e){t(this,e);this.mainButtonClick=n(this,"mainButtonClick");this.itemSelect=n(this,"itemSelect");this.itemSave=n(this,"itemSave");this.itemCancel=n(this,"itemCancel");this.itemToggleChildMenu=n(this,"itemToggleChildMenu");this.itemCloseChildMenu=n(this,"itemCloseChildMenu");this.menuOpen=n(this,"menuOpen");this.menuClose=n(this,"menuClose")}get host(){return r(this)}buttonIcon="plus";dropdownIcon="chevron-down";items=[];mainButtonDisabled=false;menuButtonDisabled=false;mainButtonClick;itemSelect;itemSave;itemCancel;itemToggleChildMenu;itemCloseChildMenu;menuOpen;menuClose;isMenuOpen=false;isTouchDevice=s.isTouchDevice();anchorElement;menuScrollTop=0;splitMenuButtonRef;menuRef;async open(){if(this.isMenuOpen)return;this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit()}async focusMenu(){if(this.menuRef){await this.menuRef.setFocus()}}handleButtonClick=t=>{t.stopPropagation();this.mainButtonClick.emit()};toggleMenu=t=>{t.stopPropagation();if(this.isMenuOpen){this.closeMenu()}else{this.openMenu(t)}};openMenu=t=>{t.stopPropagation();this.isMenuOpen=true;this.anchorElement=this.host;this.menuOpen.emit();requestAnimationFrame((()=>{this.menuRef?.setScrollTop(this.menuScrollTop)}))};closeMenu=()=>{this.isMenuOpen=false;this.anchorElement=null;this.splitMenuButtonRef?.blur();this.menuClose.emit()};handleItemSelect=t=>{this.itemSelect.emit(t.detail)};handleItemSave=t=>{this.itemSave.emit(t.detail)};handleItemCancel=t=>{this.itemCancel.emit(t.detail)};handleItemToggleChildMenu=t=>{this.itemToggleChildMenu.emit(t.detail)};handleItemCloseChildMenu=t=>{this.itemCloseChildMenu.emit(t.detail)};handleScroll=t=>{this.menuScrollTop=t.target.scrollTop};render(){return e(i,{key:"a5587085e47c4e33148f9d0817731bfa3aa804b6",class:{mobile:this.isTouchDevice}},e("button",{key:"d3815785bb0919e2385bc7b9b0812466ed2b45a3",class:"split-main-button",tabIndex:0,onClick:this.handleButtonClick,disabled:this.mainButtonDisabled},this.buttonIcon&&e("kritzel-icon",{key:"b3225e1966bd21e8d37590cb39c0922e46afdaa9",name:this.buttonIcon})),e("div",{key:"526a88ef833cae7d2c7749f2a4bd96bcd2210a56",class:"split-divider"}),e("button",{key:"2c3ee46806bc64edc1f89a97c5e76ec493822065",ref:t=>this.splitMenuButtonRef=t,class:"split-menu-button",tabIndex:0,onClick:this.toggleMenu,disabled:this.menuButtonDisabled},e("kritzel-icon",{key:"c6204d8b14d8cefe9d6eff33af95b2a7ea9a6b7c",name:this.dropdownIcon})),e("kritzel-portal",{key:"07a5e9793484f79d9b4b1f9ae09503f762cb2580",anchor:this.anchorElement,offsetY:4,onClose:this.closeMenu},e("kritzel-menu",{key:"0cf7601fd43b846a69152f0fc6ab950ac108ebff",ref:t=>this.menuRef=t,items:this.items,onItemSelect:this.handleItemSelect,onItemSave:this.handleItemSave,onItemCancel:this.handleItemCancel,onItemToggleChildMenu:this.handleItemToggleChildMenu,onItemCloseChildMenu:this.handleItemCloseChildMenu,onClose:this.closeMenu,onScroll:this.handleScroll})))}};Qt.style=Jt;const te=":host{display:flex;align-items:flex-start;gap:8px;padding:8px;box-sizing:border-box}.size-container{display:flex;justify-content:center;align-items:center;width:32px;height:32px;border-radius:50%;cursor:var(--kritzel-pointer-cursor, pointer);border:2px solid transparent;box-sizing:border-box}.size-container:hover{background-color:var(--kritzel-stroke-size-hover-background-color, #ebebeb)}.size-container.selected{border-color:var(--kritzel-selection-border-color, #007AFF);background-color:var(--kritzel-stroke-size-selected-background-color, #ebebeb)}";const ee=class{constructor(e){t(this,e);this.sizeChange=n(this,"sizeChange")}sizes=[4,6,8,12,16,24];selectedSize=null;sizeChange;handleSizeClick(t){this.selectedSize=t;this.sizeChange.emit(t)}render(){return e(i,{key:"d204d14384367ca8847ad30cab9801788c8d8fac"},this.sizes.map((t=>e("div",{tabIndex:0,class:{"size-container":true,selected:this.selectedSize===t},onClick:()=>this.handleSizeClick(t)},e("kritzel-color",{value:"#000000",size:t})))))}};ee.style=te;const ie=":host{width:auto}.tooltip-content{position:relative;padding:8px 12px;border-radius:4px;width:fit-content;background-color:var(--kritzel-controls-tooltip-background-color, #ffffff);color:var(--kritzel-controls-tooltip-color, #000000);padding:var(--kritzel-controls-tooltip-padding, 8px);border-radius:var(--kritzel-controls-tooltip-border-radius, 16px);white-space:nowrap;box-shadow:var(--kritzel-controls-tooltip-box-shadow, 0 1px 6px rgba(0, 0, 0, 0.12))}";const ne=class{constructor(e){t(this,e);this.tooltipClosed=n(this,"tooltipClosed")}get host(){return r(this)}isVisible=false;anchorElement;offsetY=24;tooltipClosed;positionX=0;positionY=0;handleOutsideClick(t){if(!this.isVisible)return;const e=t.target;if(!this.host.contains(e)){this.tooltipClosed.emit()}}handleWindowResize(){this.calculateAdjustedPosition()}async focusContent(){const t=Gt.getFocusableElements(this.host);if(t.length>0){t[0].focus()}}componentDidLoad(){this.focusSlottedContent()}componentWillLoad(){this.calculateAdjustedPosition()}componentWillUpdate(){this.calculateAdjustedPosition()}focusSlottedContent(){const t=this.host.shadowRoot?.querySelector("slot");const e=t?.assignedElements()||[];if(e.length>0){const t=e[0];t.focus()}}calculateAdjustedPosition(){if(this.isVisible&&this.anchorElement){const t=this.anchorElement.getBoundingClientRect();const e=this.host.shadowRoot?.querySelector(".tooltip-content");const i=e?.getBoundingClientRect();const n=i?.width||0;const r=12;const s=t.left+t.width/2;let o=s-n/2;const a=r;const l=window.innerWidth-n-r;this.positionX=Math.max(a,Math.min(o,l));this.positionY=window.innerHeight-t.top+this.offsetY}}render(){return e(i,{key:"c257f254b8ba6b95f251eac3136f5be282d23e30",style:{position:"fixed",zIndex:"9999",transition:"opacity 0.3s ease-in-out, transform 0.3s ease-in-out",visibility:this.isVisible?"visible":"hidden",left:`${this.positionX}px`,bottom:`${this.positionY}px`}},e("div",{key:"14f31dc995236a2309e2371ecef278a0e6374139",class:"tooltip-content",onClick:t=>t.stopPropagation()},e("slot",{key:"6dace4d6ed82878333f8771cf4670d53cea36873"})))}};ne.style=ie;const re=":host{display:flex;flex-direction:row;align-items:center;padding:4px;gap:8px;border-top-left-radius:12px;border-top-right-radius:12px;background-color:rgb(226, 226, 226);width:fit-content;user-select:none}.utility-button{display:flex;justify-content:center;align-items:center;width:28px;height:28px;padding:8px 4px;border:none;background:none;cursor:var(--kritzel-pointer-cursor, pointer);color:#333333;-webkit-tap-highlight-color:transparent;border-radius:var(--kritzel-utility-panel-button-border-radius, 8px)}.utility-button:hover,.utility-button:focus-visible{background-color:var(--kritzel-controls-control-hover-background-color, hsl(0, 0%, 0%, 4.3%))}.utility-button:disabled{opacity:0.4;cursor:not-allowed;pointer-events:none}.utility-separator{width:1px;height:16px;background-color:hsl(0, 0%, 0%, 4.3%)}";const se=class{constructor(e){t(this,e);this.undo=n(this,"undo");this.redo=n(this,"redo");this.delete=n(this,"delete")}undoState=null;undo;redo;delete;handleUndo(t){if(t.cancelable){t.preventDefault();t.stopPropagation();this.undo.emit()}}handleRedo(t){t.preventDefault();t.stopPropagation();this.redo.emit()}render(){return e(i,{key:"998008f3c138f18d0e3f5183c3280e646e6c8e73"},e("button",{key:"2ea58a2df20e038e00c0090c44714efbc1221314",class:"utility-button",disabled:!this.undoState?.canUndo,onClick:t=>this.handleUndo(t)},e("kritzel-icon",{key:"1843d211731f83f2f828b17f0bc0cf83a76705e1",name:"undo"})),e("button",{key:"71064186570d8e849a634a4c68e96f3fba1ebdab",class:"utility-button",disabled:!this.undoState?.canRedo,onClick:t=>this.handleRedo(t)},e("kritzel-icon",{key:"12694a6dcddc1f893752d3edcc1deafe700cff5c",name:"redo"})),e("div",{key:"5bbfb5e535d9e0a861d227df57bd5cc7ab8c22fb",class:"utility-separator"}),e("button",{key:"fda95410a66afa98c0abf6eb82e323f926ef596a",class:"utility-button"},e("kritzel-icon",{key:"0d1d77f6d65481825c2edbdb38de821a2de7b043",name:"delete",onClick:()=>this.delete.emit()})))}};se.style=re;const oe=":host{display:flex;flex-direction:column;z-index:1}";const ae=class{constructor(e){t(this,e);this.isWorkspaceManagerReady=n(this,"isWorkspaceManagerReady");this.workspaceChange=n(this,"workspaceChange")}get host(){return r(this)}activeWorkspace;workspaces=[];isWorkspaceManagerReady;workspaceChange;childMenuAnchor=null;openChildMenuItem=null;newWorkspace=null;editingItemId=null;handleWheel(t){if(t.ctrlKey){t.preventDefault()}}kritzelEngineRef=null;splitButtonRef;get sortedWorkspaces(){return[this.newWorkspace,...this.workspaces].filter((t=>t!=null)).sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime()))}async componentWillLoad(){await this.initializeEngine();this.isWorkspaceManagerReady.emit()}async initializeEngine(){await customElements.whenDefined("kritzel-engine");this.kritzelEngineRef=this.host.parentElement.querySelector("kritzel-engine");if(!this.kritzelEngineRef){throw new Error("kritzel-engine not found in parent element.")}}async select(t,e){if(this.editingItemId){return}if(t.action){t.action(t,e);return}this.workspaceChange.emit(t.value)}async add(){await this.splitButtonRef.open();this.newWorkspace=new $(Y.generateUUID(),"New Workspace");this.editingItemId=this.newWorkspace.id}edit(t){this.openChildMenuItem=null;this.childMenuAnchor=null;requestAnimationFrame((()=>{this.editingItemId=t.id}))}async save(t){if(this.newWorkspace){this.newWorkspace.name=t.label;await this.kritzelEngineRef.createWorkspace(this.newWorkspace);this.workspaceChange.emit(this.newWorkspace)}else{const e=t.value;e.name=t.label;await this.kritzelEngineRef.updateWorkspace(e)}this.editingItemId=null;this.newWorkspace=null}cancel(){this.newWorkspace=null;this.editingItemId=null}async delete(t){this.openChildMenuItem=null;this.childMenuAnchor=null;await this.kritzelEngineRef.deleteWorkspace(t.value);if(t.value.id===this.activeWorkspace?.id){this.activeWorkspace=this.sortedWorkspaces.find((e=>e.id!==t.value.id))||null;this.workspaceChange.emit(this.activeWorkspace)}await this.splitButtonRef.focusMenu()}toggleChildMenu(t,e){this.openChildMenuItem=t;this.childMenuAnchor=e}closeChildMenu(){this.openChildMenuItem=null;this.childMenuAnchor=null}handleMenuOpen(){this.kritzelEngineRef.disable()}handleMenuClose(){this.cancel();this.closeChildMenu();this.kritzelEngineRef.enable()}render(){const t=this.sortedWorkspaces.sort(((t,e)=>e.createdAt.getTime()-t.createdAt.getTime())).filter((t=>t!==null)).map((t=>({id:t.id,label:t.name,value:t,isEditing:this.editingItemId===t.id,isSelected:this.activeWorkspace?.id===t.id,isNewItem:this.newWorkspace?.id===t.id,isChildMenuOpen:this.openChildMenuItem?.id===t.id,childMenuAnchor:this.openChildMenuItem?.id===t.id?this.childMenuAnchor:null,children:[{id:`${t.id}-rename`,label:"Rename",value:"rename",action:(t,e)=>this.edit(e)},{id:`${t.id}-delete`,label:"Delete",value:"delete",isDisabled:this.sortedWorkspaces.length<=1,action:(t,e)=>this.delete(e)}]})));return e(i,null,e("kritzel-split-button",{ref:t=>this.splitButtonRef=t,items:t,mainButtonDisabled:this.editingItemId!=null,onMainButtonClick:()=>this.add(),onItemSelect:t=>this.select(t.detail.item,t.detail.parent),onItemToggleChildMenu:t=>this.toggleChildMenu(t.detail.item,t.detail.childMenuAnchor),onItemSave:t=>this.save(t.detail),onItemCancel:()=>this.cancel(),onItemCloseChildMenu:()=>this.closeChildMenu(),onMenuOpen:()=>this.handleMenuOpen(),onMenuClose:()=>this.handleMenuClose()}))}};ae.style=oe;export{G as kritzel_color,J as kritzel_color_palette,et as kritzel_context_menu,nt as kritzel_control_brush_config,st as kritzel_control_text_config,at as kritzel_controls,ct as kritzel_cursor_trail,ht as kritzel_dropdown,yt as kritzel_editor,Dt as kritzel_engine,Pt as kritzel_font,Ut as kritzel_font_family,Vt as kritzel_font_size,Ht as kritzel_icon,Nt as kritzel_menu,qt as kritzel_menu_item,Zt as kritzel_portal,Qt as kritzel_split_button,ee as kritzel_stroke_size,ne as kritzel_tooltip,se as kritzel_utility_panel,ae as kritzel_workspace_manager};
10
- //# sourceMappingURL=p-0fdce6ce.entry.js.map