@crystaldesign/diva-web-planner-react 24.11.0 → 24.11.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 (1623) hide show
  1. package/build/esm/ArticleProperties-a23f658a.js +164 -0
  2. package/build/esm/CatalogProperties-8e33265c.js +438 -0
  3. package/build/esm/IconHandler-2b4cd211.js +77 -0
  4. package/build/esm/OptionProperties-c0fad436.js +147 -0
  5. package/build/esm/OptionValueProperties-d85ba84a.js +116 -0
  6. package/build/esm/Planner2DGrid-cdcab7e7.js +640 -0
  7. package/build/esm/Planner3DImage-2c0c153b.js +1163 -0
  8. package/build/esm/index-001d20b6.js +156 -0
  9. package/build/esm/index-0032191a.js +144 -0
  10. package/build/esm/index-03a1f70a.js +42 -0
  11. package/build/esm/index-03bf9a3f.js +49 -0
  12. package/build/esm/index-06196013.js +85 -0
  13. package/build/esm/index-075c1e0b.js +53 -0
  14. package/build/esm/index-078f71b4.js +62 -0
  15. package/build/esm/index-08de1f4f.js +32 -0
  16. package/build/esm/index-09cead8d.js +69 -0
  17. package/build/esm/index-0af002d5.js +59 -0
  18. package/build/esm/index-0d34c4dd.js +54 -0
  19. package/build/esm/index-0db4df8f.js +157 -0
  20. package/build/esm/index-0de9ce00.js +242 -0
  21. package/build/esm/index-0f1fd58d.js +27 -0
  22. package/build/esm/index-0f88b3eb.js +43 -0
  23. package/build/esm/index-11a512cc.js +59 -0
  24. package/build/esm/index-11de12a4.js +45 -0
  25. package/build/esm/index-12522ad8.js +108 -0
  26. package/build/esm/index-12fe5d1a.js +102 -0
  27. package/build/esm/index-13354589.js +34 -0
  28. package/build/esm/index-14081b35.js +57 -0
  29. package/build/esm/index-16b51d9a.js +27 -0
  30. package/build/esm/index-1855c6c0.js +53 -0
  31. package/build/esm/index-19137190.js +97 -0
  32. package/build/esm/index-1bd58047.js +71 -0
  33. package/build/esm/index-1d4ec596.js +53 -0
  34. package/build/esm/index-1de690e8.js +52 -0
  35. package/build/esm/index-1e04abeb.js +131 -0
  36. package/build/esm/index-20f7d32c.js +41 -0
  37. package/build/esm/index-2173d651.js +75 -0
  38. package/build/esm/index-218e66a2.js +27 -0
  39. package/build/esm/index-23f18d0d.js +111 -0
  40. package/build/esm/index-2473667a.js +97 -0
  41. package/build/esm/index-2494c15f.js +144 -0
  42. package/build/esm/index-2566baa1.js +68 -0
  43. package/build/esm/index-25afea80.js +27 -0
  44. package/build/esm/index-2c01799f.js +128 -0
  45. package/build/esm/index-2d26cbe1.js +59 -0
  46. package/build/esm/index-2f937443.js +47 -0
  47. package/build/esm/index-3054c891.js +102 -0
  48. package/build/esm/index-342becc2.js +108 -0
  49. package/build/esm/index-34cec40f.js +123 -0
  50. package/build/esm/index-366c287c.js +65 -0
  51. package/build/esm/index-3777a317.js +86 -0
  52. package/build/esm/index-37c8f035.js +98 -0
  53. package/build/esm/index-394a5e65.js +268 -0
  54. package/build/esm/index-39c17c01.js +45 -0
  55. package/build/esm/index-39d04131.js +27 -0
  56. package/build/esm/index-3a359420.js +176 -0
  57. package/build/esm/index-3d92e48c.js +134 -0
  58. package/build/esm/index-3efeb656.js +73 -0
  59. package/build/esm/index-40b425e4.js +445 -0
  60. package/build/esm/index-41200533.js +27 -0
  61. package/build/esm/index-417489b5.js +127 -0
  62. package/build/esm/index-42b5a148.js +46 -0
  63. package/build/esm/index-4323a91e.js +127 -0
  64. package/build/esm/index-44138eb9.js +30 -0
  65. package/build/esm/index-44440a73.js +96 -0
  66. package/build/esm/index-45558262.js +123 -0
  67. package/build/esm/index-49ecd887.js +91 -0
  68. package/build/esm/index-49f21782.js +83 -0
  69. package/build/esm/index-4aaa7166.js +81 -0
  70. package/build/esm/index-4ac43c93.js +33 -0
  71. package/build/esm/index-4b0b0330.js +116 -0
  72. package/build/esm/index-4b1b1387.js +139 -0
  73. package/build/esm/index-4b4199d7.js +57 -0
  74. package/build/esm/index-4b78f728.js +58 -0
  75. package/build/esm/index-4b970e13.js +68 -0
  76. package/build/esm/index-4bf240a3.js +27 -0
  77. package/build/esm/index-4cf32f6d.js +87 -0
  78. package/build/esm/index-4e7d1273.js +61 -0
  79. package/build/esm/index-4f619a93.js +48 -0
  80. package/build/esm/index-4fbb1e02.js +27 -0
  81. package/build/esm/index-5062d8b6.js +179 -0
  82. package/build/esm/index-5070acb9.js +27 -0
  83. package/build/esm/index-50ed532a.js +202 -0
  84. package/build/esm/index-51dbd184.js +51 -0
  85. package/build/esm/index-537b41f5.js +62 -0
  86. package/build/esm/index-54cdb750.js +186 -0
  87. package/build/esm/index-54e8191f.js +27 -0
  88. package/build/esm/index-55797be6.js +27 -0
  89. package/build/esm/index-559ab0da.js +46 -0
  90. package/build/esm/index-58345233.js +140 -0
  91. package/build/esm/index-5946e56c.js +36 -0
  92. package/build/esm/index-5a7d694a.js +42 -0
  93. package/build/esm/index-5b64336c.js +68 -0
  94. package/build/esm/index-5e52d4a5.js +46 -0
  95. package/build/esm/index-5eeeb234.js +43 -0
  96. package/build/esm/index-60e2c940.js +97 -0
  97. package/build/esm/index-616e3212.js +136 -0
  98. package/build/esm/index-6a548501.js +36 -0
  99. package/build/esm/index-6ae957da.js +9587 -0
  100. package/build/esm/index-6b7513dc.js +164 -0
  101. package/build/esm/index-6cee73e5.js +31 -0
  102. package/build/esm/index-6d0beeaa.js +177 -0
  103. package/build/esm/index-6ea2696d.js +50 -0
  104. package/build/esm/index-6ff0ace8.js +113 -0
  105. package/build/esm/index-71ead488.js +170 -0
  106. package/build/esm/index-736ba28d.js +23 -0
  107. package/build/esm/index-74d1a051.js +75 -0
  108. package/build/esm/index-75dc38f3.js +127 -0
  109. package/build/esm/index-7c479178.js +54 -0
  110. package/build/esm/index-7e5670c9.js +175 -0
  111. package/build/esm/index-8374b61d.js +61 -0
  112. package/build/esm/index-83a68812.js +120 -0
  113. package/build/esm/index-842af387.js +101 -0
  114. package/build/esm/index-84c5c468.js +27 -0
  115. package/build/esm/index-84d686e3.js +137 -0
  116. package/build/esm/index-860ac013.js +154 -0
  117. package/build/esm/index-869700ff.js +156 -0
  118. package/build/esm/index-87a2246f.js +27 -0
  119. package/build/esm/index-87a9a090.js +73 -0
  120. package/build/esm/index-8800d2bb.js +35 -0
  121. package/build/esm/index-8959ce5c.js +123 -0
  122. package/build/esm/index-8bc15033.js +64 -0
  123. package/build/esm/index-8bd8159a.js +151 -0
  124. package/build/esm/index-8ced4a84.js +49 -0
  125. package/build/esm/index-8e3076e6.js +53 -0
  126. package/build/esm/index-8ef30823.js +78 -0
  127. package/build/esm/index-9064f786.js +78 -0
  128. package/build/esm/index-91f1ca86.js +48 -0
  129. package/build/esm/index-9317a102.js +27 -0
  130. package/build/esm/index-93c146d5.js +67 -0
  131. package/build/esm/index-93dff353.js +43 -0
  132. package/build/esm/index-96a4a56b.js +27 -0
  133. package/build/esm/index-973085b8.js +275 -0
  134. package/build/esm/index-993c8b78.js +52 -0
  135. package/build/esm/index-9c7a9d86.js +56 -0
  136. package/build/esm/index-9de7a8da.js +91 -0
  137. package/build/esm/index-9f364cba.js +86 -0
  138. package/build/esm/index-9f47aa87.js +40 -0
  139. package/build/esm/index-9f5ef973.js +62 -0
  140. package/build/esm/index-9f7b15f7.js +69 -0
  141. package/build/esm/index-a093282f.js +75 -0
  142. package/build/esm/index-a0bae903.js +91 -0
  143. package/build/esm/index-a19527fd.js +70 -0
  144. package/build/esm/index-a2c4bf4f.js +110 -0
  145. package/build/esm/index-a4811501.js +43 -0
  146. package/build/esm/index-a52a366e.js +27 -0
  147. package/build/esm/index-a67ee788.js +38 -0
  148. package/build/esm/index-a94ac347.js +127 -0
  149. package/build/esm/index-aa5c6b02.js +64 -0
  150. package/build/esm/index-aa7f29cd.js +87 -0
  151. package/build/esm/index-aaf7323a.js +215 -0
  152. package/build/esm/index-ad84f0bd.js +121 -0
  153. package/build/esm/index-aee7ac3a.js +82 -0
  154. package/build/esm/index-b0661444.js +37 -0
  155. package/build/esm/index-b07fa5bf.js +94 -0
  156. package/build/esm/index-b1d30f5b.js +40 -0
  157. package/build/esm/index-b36aebd7.js +76 -0
  158. package/build/esm/index-b7c96d94.js +27 -0
  159. package/build/esm/index-b8872c99.js +57 -0
  160. package/build/esm/index-bb303417.js +106 -0
  161. package/build/esm/index-bb7a42a4.js +132 -0
  162. package/build/esm/index-bbfc7452.js +146 -0
  163. package/build/esm/index-bd81394e.js +107 -0
  164. package/build/esm/index-bf9a3d74.js +53 -0
  165. package/build/esm/index-c0eb5880.js +123 -0
  166. package/build/esm/index-c193f4f9.js +46 -0
  167. package/build/esm/index-c25e3ea9.js +27 -0
  168. package/build/esm/index-c3abc1ea.js +121 -0
  169. package/build/esm/index-c3faf4ff.js +27 -0
  170. package/build/esm/index-c4c82b3f.js +167 -0
  171. package/build/esm/index-c57998ff.js +76 -0
  172. package/build/esm/index-c5ec72f3.js +76 -0
  173. package/build/esm/index-c64b0b97.js +93 -0
  174. package/build/esm/index-c773bdd9.js +129 -0
  175. package/build/esm/index-c873cb1b.js +171 -0
  176. package/build/esm/index-c9be2ebe.js +92 -0
  177. package/build/esm/index-cb9e1533.js +78 -0
  178. package/build/esm/index-ccf3a7d5.js +129 -0
  179. package/build/esm/index-ce4156ca.js +34 -0
  180. package/build/esm/index-d284be6d.js +76 -0
  181. package/build/esm/index-d44ed7d9.js +41 -0
  182. package/build/esm/index-d4e3aee0.js +111 -0
  183. package/build/esm/index-d574633d.js +55 -0
  184. package/build/esm/index-d9a37607.js +163 -0
  185. package/build/esm/index-d9d77394.js +38 -0
  186. package/build/esm/index-dae97211.js +45 -0
  187. package/build/esm/index-def115a3.js +112 -0
  188. package/build/esm/index-df35900f.js +32 -0
  189. package/build/esm/index-e01b992d.js +213 -0
  190. package/build/esm/index-e06b08dc.js +27 -0
  191. package/build/esm/index-e2656e60.js +44 -0
  192. package/build/esm/index-e2d8041d.js +99 -0
  193. package/build/esm/index-e4a6a703.js +54 -0
  194. package/build/esm/index-e56f484f.js +42 -0
  195. package/build/esm/index-e6f6bd6d.js +63 -0
  196. package/build/esm/index-e7051fdc.js +142 -0
  197. package/build/esm/index-e7dd2a11.js +182 -0
  198. package/build/esm/index-e8d7a92a.js +129 -0
  199. package/build/esm/index-e8d8f7be.js +48 -0
  200. package/build/esm/index-e972f93b.js +186 -0
  201. package/build/esm/index-e9f67bad.js +551 -0
  202. package/build/esm/index-eac7a8e2.js +148 -0
  203. package/build/esm/index-eadde536.js +64 -0
  204. package/build/esm/index-eb00798f.js +25 -0
  205. package/build/esm/index-ed6f6702.js +27 -0
  206. package/build/esm/index-ed701b68.js +157 -0
  207. package/build/esm/index-edaba8c2.js +50 -0
  208. package/build/esm/index-ee169456.js +27 -0
  209. package/build/esm/index-f104bda6.js +37 -0
  210. package/build/esm/index-f12edce6.js +40 -0
  211. package/build/esm/index-f17aaae0.js +115 -0
  212. package/build/esm/index-f2a64ed6.js +95 -0
  213. package/build/esm/index-f31895f8.js +75 -0
  214. package/build/esm/index-f31d028f.js +91 -0
  215. package/build/esm/index-f324b46c.js +170 -0
  216. package/build/esm/index-f3bdb840.js +156 -0
  217. package/build/esm/index-f3d6a67b.js +88 -0
  218. package/build/esm/index-f41b2ee0.js +94 -0
  219. package/build/esm/index-f4a39937.js +83 -0
  220. package/build/esm/index-f4e58a35.js +121 -0
  221. package/build/esm/index-f6275f8e.js +110 -0
  222. package/build/esm/index-f6784de4.js +76 -0
  223. package/build/esm/index-f6e64de6.js +132 -0
  224. package/build/esm/index-f9c3bdf1.js +117 -0
  225. package/build/esm/index-fabbebaa.js +39 -0
  226. package/build/esm/index-fd9f8011.js +65 -0
  227. package/build/esm/index-fdf293b5.js +139 -0
  228. package/build/esm/index-fec06618.js +156 -0
  229. package/build/esm/index-feda1fee.js +43 -0
  230. package/build/esm/index-ff47284f.js +52 -0
  231. package/build/esm/index-ff91ad31.js +71 -0
  232. package/build/esm/index.js +1 -1
  233. package/build/esm/index.module-179848d3.js +9 -0
  234. package/build/esm/index.module-2c091791.js +18 -0
  235. package/build/esm/index.module-3b3e6bf7.js +13 -0
  236. package/build/esm/index.module-4e8e23b6.js +10 -0
  237. package/build/esm/index.module-58fe7299.js +10 -0
  238. package/build/esm/index.module-705aae62.js +44 -0
  239. package/build/esm/index.module-94302b7b.js +12 -0
  240. package/build/esm/index.module-98eaef5b.js +19 -0
  241. package/build/esm/index.module-b8f75f3d.js +17 -0
  242. package/build/esm/index.module-be5c78cf.js +10 -0
  243. package/build/esm/index.module-bf8133ec.js +9 -0
  244. package/build/esm/index.module-da90a5d7.js +24 -0
  245. package/build/esm/index.module-eba8926c.js +8 -0
  246. package/build/esm/index.module-f5ba5d02.js +20 -0
  247. package/build/esm/requestProductForm-e6b083b3.js +295 -0
  248. package/build/umd/1027.diva-web-planner-react.umd.min.js +2 -0
  249. package/build/umd/1027.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  250. package/build/umd/1077.diva-web-planner-react.umd.min.js +2 -0
  251. package/build/umd/1077.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  252. package/build/umd/1085.diva-web-planner-react.umd.min.js +2 -0
  253. package/build/umd/1085.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  254. package/build/umd/1087.diva-web-planner-react.umd.min.js +2 -0
  255. package/build/umd/1087.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  256. package/build/umd/1088.diva-web-planner-react.umd.min.js +2 -0
  257. package/build/umd/1088.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  258. package/build/umd/1099.diva-web-planner-react.umd.min.js +2 -0
  259. package/build/umd/1099.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  260. package/build/umd/112.diva-web-planner-react.umd.min.js +2 -0
  261. package/build/umd/112.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  262. package/build/umd/1137.diva-web-planner-react.umd.min.js +2 -0
  263. package/build/umd/1137.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  264. package/build/umd/114.diva-web-planner-react.umd.min.js +2 -0
  265. package/build/umd/114.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  266. package/build/umd/1247.diva-web-planner-react.umd.min.js +2 -0
  267. package/build/umd/1247.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  268. package/build/umd/1259.diva-web-planner-react.umd.min.js +2 -0
  269. package/build/umd/1259.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  270. package/build/umd/1266.diva-web-planner-react.umd.min.js +2 -0
  271. package/build/umd/1266.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  272. package/build/umd/1281.diva-web-planner-react.umd.min.js +2 -0
  273. package/build/umd/1281.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  274. package/build/umd/1295.diva-web-planner-react.umd.min.js +2 -0
  275. package/build/umd/1295.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  276. package/build/umd/1306.diva-web-planner-react.umd.min.js +2 -0
  277. package/build/umd/1306.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  278. package/build/umd/1414.diva-web-planner-react.umd.min.js +2 -0
  279. package/build/umd/1414.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  280. package/build/umd/1426.diva-web-planner-react.umd.min.js +2 -0
  281. package/build/umd/1426.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  282. package/build/umd/152.diva-web-planner-react.umd.min.js +2 -0
  283. package/build/umd/152.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  284. package/build/umd/153.diva-web-planner-react.umd.min.js +2 -0
  285. package/build/umd/153.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  286. package/build/umd/1606.diva-web-planner-react.umd.min.js +2 -0
  287. package/build/umd/1606.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  288. package/build/umd/1611.diva-web-planner-react.umd.min.js +2 -0
  289. package/build/umd/1611.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  290. package/build/umd/1622.diva-web-planner-react.umd.min.js +2 -0
  291. package/build/umd/1622.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  292. package/build/umd/1694.diva-web-planner-react.umd.min.js +2 -0
  293. package/build/umd/1694.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  294. package/build/umd/1696.diva-web-planner-react.umd.min.js +2 -0
  295. package/build/umd/1696.diva-web-planner-react.umd.min.js.LICENSE.txt +33 -0
  296. package/build/umd/1805.diva-web-planner-react.umd.min.js +2 -0
  297. package/build/umd/1805.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  298. package/build/umd/1838.diva-web-planner-react.umd.min.js +2 -0
  299. package/build/umd/1838.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  300. package/build/umd/1848.diva-web-planner-react.umd.min.js +2 -0
  301. package/build/umd/1848.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  302. package/build/umd/1885.diva-web-planner-react.umd.min.js +2 -0
  303. package/build/umd/1885.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  304. package/build/umd/1910.diva-web-planner-react.umd.min.js +2 -0
  305. package/build/umd/1910.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  306. package/build/umd/1934.diva-web-planner-react.umd.min.js +2 -0
  307. package/build/umd/1934.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  308. package/build/umd/196.diva-web-planner-react.umd.min.js +2 -0
  309. package/build/umd/196.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  310. package/build/umd/2010.diva-web-planner-react.umd.min.js +2 -0
  311. package/build/umd/2010.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  312. package/build/umd/2057.diva-web-planner-react.umd.min.js +2 -0
  313. package/build/umd/2057.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  314. package/build/umd/2058.diva-web-planner-react.umd.min.js +2 -0
  315. package/build/umd/2058.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  316. package/build/umd/2060.diva-web-planner-react.umd.min.js +1 -1
  317. package/build/umd/2066.diva-web-planner-react.umd.min.js +2 -0
  318. package/build/umd/2066.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  319. package/build/umd/2195.diva-web-planner-react.umd.min.js +2 -0
  320. package/build/umd/2195.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  321. package/build/umd/221.diva-web-planner-react.umd.min.js +2 -0
  322. package/build/umd/221.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  323. package/build/umd/2235.diva-web-planner-react.umd.min.js +2 -0
  324. package/build/umd/2235.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  325. package/build/umd/2236.diva-web-planner-react.umd.min.js +2 -0
  326. package/build/umd/2236.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  327. package/build/umd/2273.diva-web-planner-react.umd.min.js +2 -0
  328. package/build/umd/2273.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  329. package/build/umd/2277.diva-web-planner-react.umd.min.js +2 -0
  330. package/build/umd/2277.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  331. package/build/umd/2305.diva-web-planner-react.umd.min.js +2 -0
  332. package/build/umd/2305.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  333. package/build/umd/2308.diva-web-planner-react.umd.min.js +2 -0
  334. package/build/umd/2308.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  335. package/build/umd/2331.diva-web-planner-react.umd.min.js +2 -0
  336. package/build/umd/2331.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  337. package/build/umd/2337.diva-web-planner-react.umd.min.js +2 -0
  338. package/build/umd/2337.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  339. package/build/umd/2461.diva-web-planner-react.umd.min.js +2 -0
  340. package/build/umd/2461.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  341. package/build/umd/2467.diva-web-planner-react.umd.min.js +2 -0
  342. package/build/umd/2467.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  343. package/build/umd/2479.diva-web-planner-react.umd.min.js +2 -0
  344. package/build/umd/2479.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  345. package/build/umd/2486.diva-web-planner-react.umd.min.js +2 -0
  346. package/build/umd/2486.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  347. package/build/umd/2553.diva-web-planner-react.umd.min.js +2 -0
  348. package/build/umd/2553.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  349. package/build/umd/2590.diva-web-planner-react.umd.min.js +2 -0
  350. package/build/umd/2590.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  351. package/build/umd/2636.diva-web-planner-react.umd.min.js +1 -1
  352. package/build/umd/2648.diva-web-planner-react.umd.min.js +2 -0
  353. package/build/umd/2648.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  354. package/build/umd/267.diva-web-planner-react.umd.min.js +2 -0
  355. package/build/umd/267.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  356. package/build/umd/2729.diva-web-planner-react.umd.min.js +2 -0
  357. package/build/umd/2729.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  358. package/build/umd/2754.diva-web-planner-react.umd.min.js +2 -0
  359. package/build/umd/2754.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  360. package/build/umd/2768.diva-web-planner-react.umd.min.js +2 -0
  361. package/build/umd/2768.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  362. package/build/umd/2833.diva-web-planner-react.umd.min.js +2 -0
  363. package/build/umd/2833.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  364. package/build/umd/286.diva-web-planner-react.umd.min.js +2 -0
  365. package/build/umd/286.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  366. package/build/umd/2891.diva-web-planner-react.umd.min.js +2 -0
  367. package/build/umd/2891.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  368. package/build/umd/2897.diva-web-planner-react.umd.min.js +2 -0
  369. package/build/umd/2897.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  370. package/build/umd/2911.diva-web-planner-react.umd.min.js +2 -0
  371. package/build/umd/2911.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  372. package/build/umd/2995.diva-web-planner-react.umd.min.js +2 -0
  373. package/build/umd/2995.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  374. package/build/umd/3039.diva-web-planner-react.umd.min.js +2 -0
  375. package/build/umd/3039.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  376. package/build/umd/3075.diva-web-planner-react.umd.min.js +2 -0
  377. package/build/umd/3075.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  378. package/build/umd/3152.diva-web-planner-react.umd.min.js +2 -0
  379. package/build/umd/3152.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  380. package/build/umd/3172.diva-web-planner-react.umd.min.js +2 -0
  381. package/build/umd/3172.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  382. package/build/umd/3235.diva-web-planner-react.umd.min.js +2 -0
  383. package/build/umd/3235.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  384. package/build/umd/3274.diva-web-planner-react.umd.min.js +2 -0
  385. package/build/umd/3274.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  386. package/build/umd/3430.diva-web-planner-react.umd.min.js +2 -0
  387. package/build/umd/3430.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  388. package/build/umd/3444.diva-web-planner-react.umd.min.js +2 -0
  389. package/build/umd/3444.diva-web-planner-react.umd.min.js.LICENSE.txt +8 -0
  390. package/build/umd/346.diva-web-planner-react.umd.min.js +2 -0
  391. package/build/umd/346.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  392. package/build/umd/3469.diva-web-planner-react.umd.min.js +2 -0
  393. package/build/umd/3469.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  394. package/build/umd/3484.diva-web-planner-react.umd.min.js +2 -0
  395. package/build/umd/3484.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  396. package/build/umd/3546.diva-web-planner-react.umd.min.js +2 -0
  397. package/build/umd/3546.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  398. package/build/umd/3623.diva-web-planner-react.umd.min.js +2 -0
  399. package/build/umd/3623.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  400. package/build/umd/3628.diva-web-planner-react.umd.min.js +2 -0
  401. package/build/umd/3628.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  402. package/build/umd/3649.diva-web-planner-react.umd.min.js +2 -0
  403. package/build/umd/3649.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  404. package/build/umd/3708.diva-web-planner-react.umd.min.js +2 -0
  405. package/build/umd/3708.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  406. package/build/umd/3732.diva-web-planner-react.umd.min.js +1 -1
  407. package/build/umd/3732.diva-web-planner-react.umd.min.js.LICENSE.txt +6 -0
  408. package/build/umd/3733.diva-web-planner-react.umd.min.js +2 -0
  409. package/build/umd/3733.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  410. package/build/umd/3847.diva-web-planner-react.umd.min.js +2 -0
  411. package/build/umd/3847.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  412. package/build/umd/3852.diva-web-planner-react.umd.min.js +2 -0
  413. package/build/umd/3852.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  414. package/build/umd/3887.diva-web-planner-react.umd.min.js +2 -0
  415. package/build/umd/3887.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  416. package/build/umd/3889.diva-web-planner-react.umd.min.js +2 -0
  417. package/build/umd/3889.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  418. package/build/umd/3901.diva-web-planner-react.umd.min.js +2 -0
  419. package/build/umd/3901.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  420. package/build/umd/395.diva-web-planner-react.umd.min.js +2 -0
  421. package/build/umd/395.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  422. package/build/umd/4007.diva-web-planner-react.umd.min.js +2 -0
  423. package/build/umd/4007.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  424. package/build/umd/4059.diva-web-planner-react.umd.min.js +2 -0
  425. package/build/umd/4059.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  426. package/build/umd/406.diva-web-planner-react.umd.min.js +2 -0
  427. package/build/umd/406.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  428. package/build/umd/4076.diva-web-planner-react.umd.min.js +2 -0
  429. package/build/umd/4076.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  430. package/build/umd/4086.diva-web-planner-react.umd.min.js +2 -0
  431. package/build/umd/4086.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  432. package/build/umd/411.diva-web-planner-react.umd.min.js +2 -0
  433. package/build/umd/411.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  434. package/build/umd/4197.diva-web-planner-react.umd.min.js +2 -0
  435. package/build/umd/4197.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  436. package/build/umd/4223.diva-web-planner-react.umd.min.js +2 -0
  437. package/build/umd/4223.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  438. package/build/umd/4252.diva-web-planner-react.umd.min.js +2 -0
  439. package/build/umd/4252.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  440. package/build/umd/4284.diva-web-planner-react.umd.min.js +2 -0
  441. package/build/umd/4284.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  442. package/build/umd/4296.diva-web-planner-react.umd.min.js +2 -0
  443. package/build/umd/4296.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  444. package/build/umd/4389.diva-web-planner-react.umd.min.js +2 -0
  445. package/build/umd/4389.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  446. package/build/umd/4410.diva-web-planner-react.umd.min.js +2 -0
  447. package/build/umd/4410.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  448. package/build/umd/4418.diva-web-planner-react.umd.min.js +2 -0
  449. package/build/umd/4418.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  450. package/build/umd/4472.diva-web-planner-react.umd.min.js +2 -0
  451. package/build/umd/4472.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  452. package/build/umd/4563.diva-web-planner-react.umd.min.js +2 -0
  453. package/build/umd/4563.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  454. package/build/umd/4631.diva-web-planner-react.umd.min.js +2 -0
  455. package/build/umd/4631.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  456. package/build/umd/4660.diva-web-planner-react.umd.min.js +2 -0
  457. package/build/umd/4660.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  458. package/build/umd/4667.diva-web-planner-react.umd.min.js +2 -0
  459. package/build/umd/4667.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  460. package/build/umd/4689.diva-web-planner-react.umd.min.js +2 -0
  461. package/build/umd/4689.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  462. package/build/umd/4703.diva-web-planner-react.umd.min.js +2 -0
  463. package/build/umd/4703.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  464. package/build/umd/4712.diva-web-planner-react.umd.min.js +2 -0
  465. package/build/umd/4712.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  466. package/build/umd/4772.diva-web-planner-react.umd.min.js +2 -0
  467. package/build/umd/4772.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  468. package/build/umd/4801.diva-web-planner-react.umd.min.js +2 -0
  469. package/build/umd/4801.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  470. package/build/umd/4848.diva-web-planner-react.umd.min.js +2 -0
  471. package/build/umd/4848.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  472. package/build/umd/4902.diva-web-planner-react.umd.min.js +2 -0
  473. package/build/umd/4902.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  474. package/build/umd/493.diva-web-planner-react.umd.min.js +2 -0
  475. package/build/umd/493.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  476. package/build/umd/4964.diva-web-planner-react.umd.min.js +2 -0
  477. package/build/umd/4964.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  478. package/build/umd/498.diva-web-planner-react.umd.min.js +2 -0
  479. package/build/umd/498.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  480. package/build/umd/5013.diva-web-planner-react.umd.min.js +2 -0
  481. package/build/umd/5013.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  482. package/build/umd/5027.diva-web-planner-react.umd.min.js +2 -0
  483. package/build/umd/5027.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  484. package/build/umd/5033.diva-web-planner-react.umd.min.js +2 -0
  485. package/build/umd/5033.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  486. package/build/umd/5052.diva-web-planner-react.umd.min.js +2 -0
  487. package/build/umd/5052.diva-web-planner-react.umd.min.js.LICENSE.txt +10 -0
  488. package/build/umd/5063.diva-web-planner-react.umd.min.js +2 -0
  489. package/build/umd/5063.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  490. package/build/umd/5095.diva-web-planner-react.umd.min.js +2 -0
  491. package/build/umd/5095.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  492. package/build/umd/5102.diva-web-planner-react.umd.min.js +2 -0
  493. package/build/umd/5102.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  494. package/build/umd/5204.diva-web-planner-react.umd.min.js +2 -0
  495. package/build/umd/5204.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  496. package/build/umd/5297.diva-web-planner-react.umd.min.js +2 -0
  497. package/build/umd/5297.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  498. package/build/umd/5320.diva-web-planner-react.umd.min.js +2 -0
  499. package/build/umd/5320.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  500. package/build/umd/546.diva-web-planner-react.umd.min.js +2 -0
  501. package/build/umd/546.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  502. package/build/umd/5462.diva-web-planner-react.umd.min.js +2 -0
  503. package/build/umd/5462.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  504. package/build/umd/5533.diva-web-planner-react.umd.min.js +2 -0
  505. package/build/umd/5533.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  506. package/build/umd/5572.diva-web-planner-react.umd.min.js +2 -0
  507. package/build/umd/5572.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  508. package/build/umd/560.diva-web-planner-react.umd.min.js +2 -0
  509. package/build/umd/560.diva-web-planner-react.umd.min.js.LICENSE.txt +10 -0
  510. package/build/umd/5619.diva-web-planner-react.umd.min.js +2 -0
  511. package/build/umd/5619.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  512. package/build/umd/5628.diva-web-planner-react.umd.min.js +2 -0
  513. package/build/umd/5628.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  514. package/build/umd/5713.diva-web-planner-react.umd.min.js +2 -0
  515. package/build/umd/5713.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  516. package/build/umd/5748.diva-web-planner-react.umd.min.js +2 -0
  517. package/build/umd/5748.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  518. package/build/umd/5765.diva-web-planner-react.umd.min.js +2 -0
  519. package/build/umd/5765.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  520. package/build/umd/5899.diva-web-planner-react.umd.min.js +2 -0
  521. package/build/umd/5899.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  522. package/build/umd/5923.diva-web-planner-react.umd.min.js +2 -0
  523. package/build/umd/5923.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  524. package/build/umd/5924.diva-web-planner-react.umd.min.js +2 -0
  525. package/build/umd/5924.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  526. package/build/umd/5940.diva-web-planner-react.umd.min.js +1 -1
  527. package/build/umd/5940.diva-web-planner-react.umd.min.js.LICENSE.txt +6 -0
  528. package/build/umd/5945.diva-web-planner-react.umd.min.js +2 -0
  529. package/build/umd/5945.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  530. package/build/umd/5985.diva-web-planner-react.umd.min.js +2 -0
  531. package/build/umd/5985.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  532. package/build/umd/6001.diva-web-planner-react.umd.min.js +2 -0
  533. package/build/umd/6001.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  534. package/build/umd/6026.diva-web-planner-react.umd.min.js +2 -0
  535. package/build/umd/6026.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  536. package/build/umd/611.diva-web-planner-react.umd.min.js +2 -0
  537. package/build/umd/611.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  538. package/build/umd/6152.diva-web-planner-react.umd.min.js +2 -0
  539. package/build/umd/6152.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  540. package/build/umd/6170.diva-web-planner-react.umd.min.js +2 -0
  541. package/build/umd/6170.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  542. package/build/umd/6189.diva-web-planner-react.umd.min.js +2 -0
  543. package/build/umd/6189.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  544. package/build/umd/6262.diva-web-planner-react.umd.min.js +2 -0
  545. package/build/umd/6262.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  546. package/build/umd/6309.diva-web-planner-react.umd.min.js +2 -0
  547. package/build/umd/6309.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  548. package/build/umd/6311.diva-web-planner-react.umd.min.js +2 -0
  549. package/build/umd/6311.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  550. package/build/umd/6373.diva-web-planner-react.umd.min.js +2 -0
  551. package/build/umd/6373.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  552. package/build/umd/6405.diva-web-planner-react.umd.min.js +2 -0
  553. package/build/umd/6405.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  554. package/build/umd/6406.diva-web-planner-react.umd.min.js +2 -0
  555. package/build/umd/6406.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  556. package/build/umd/6440.diva-web-planner-react.umd.min.js +2 -0
  557. package/build/umd/6440.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  558. package/build/umd/648.diva-web-planner-react.umd.min.js +2 -0
  559. package/build/umd/648.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  560. package/build/umd/6483.diva-web-planner-react.umd.min.js +2 -0
  561. package/build/umd/6483.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  562. package/build/umd/6499.diva-web-planner-react.umd.min.js +2 -0
  563. package/build/umd/6499.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  564. package/build/umd/6564.diva-web-planner-react.umd.min.js +2 -0
  565. package/build/umd/6564.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  566. package/build/umd/6708.diva-web-planner-react.umd.min.js +2 -0
  567. package/build/umd/6708.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  568. package/build/umd/6720.diva-web-planner-react.umd.min.js +2 -0
  569. package/build/umd/6720.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  570. package/build/umd/6749.diva-web-planner-react.umd.min.js +2 -0
  571. package/build/umd/6749.diva-web-planner-react.umd.min.js.LICENSE.txt +10 -0
  572. package/build/umd/6773.diva-web-planner-react.umd.min.js +2 -0
  573. package/build/umd/6773.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  574. package/build/umd/6795.diva-web-planner-react.umd.min.js +2 -0
  575. package/build/umd/6795.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  576. package/build/umd/6804.diva-web-planner-react.umd.min.js +2 -0
  577. package/build/umd/6804.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  578. package/build/umd/6835.diva-web-planner-react.umd.min.js +2 -0
  579. package/build/umd/6835.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  580. package/build/umd/6854.diva-web-planner-react.umd.min.js +408 -0
  581. package/build/umd/6854.diva-web-planner-react.umd.min.js.LICENSE.txt +86 -0
  582. package/build/umd/6872.diva-web-planner-react.umd.min.js +2 -0
  583. package/build/umd/6872.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  584. package/build/umd/6912.diva-web-planner-react.umd.min.js +2 -0
  585. package/build/umd/6912.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  586. package/build/umd/7002.diva-web-planner-react.umd.min.js +2 -0
  587. package/build/umd/7002.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  588. package/build/umd/7012.diva-web-planner-react.umd.min.js +2 -0
  589. package/build/umd/7012.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  590. package/build/umd/7061.diva-web-planner-react.umd.min.js +2 -0
  591. package/build/umd/7061.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  592. package/build/umd/707.diva-web-planner-react.umd.min.js +2 -0
  593. package/build/umd/707.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  594. package/build/umd/7084.diva-web-planner-react.umd.min.js +1 -1
  595. package/build/umd/7084.diva-web-planner-react.umd.min.js.LICENSE.txt +6 -0
  596. package/build/umd/7128.diva-web-planner-react.umd.min.js +2 -0
  597. package/build/umd/7128.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  598. package/build/umd/7196.diva-web-planner-react.umd.min.js +2 -0
  599. package/build/umd/7196.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  600. package/build/umd/7218.diva-web-planner-react.umd.min.js +2 -0
  601. package/build/umd/7218.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  602. package/build/umd/7242.diva-web-planner-react.umd.min.js +2 -0
  603. package/build/umd/7242.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  604. package/build/umd/7248.diva-web-planner-react.umd.min.js +2 -0
  605. package/build/umd/7248.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  606. package/build/umd/7294.diva-web-planner-react.umd.min.js +2 -0
  607. package/build/umd/7294.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  608. package/build/umd/7343.diva-web-planner-react.umd.min.js +2 -0
  609. package/build/umd/7343.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  610. package/build/umd/7358.diva-web-planner-react.umd.min.js +2 -0
  611. package/build/umd/7358.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  612. package/build/umd/7386.diva-web-planner-react.umd.min.js +2 -0
  613. package/build/umd/7386.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  614. package/build/umd/742.diva-web-planner-react.umd.min.js +1 -1
  615. package/build/umd/7426.diva-web-planner-react.umd.min.js +2 -0
  616. package/build/umd/7426.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  617. package/build/umd/7438.diva-web-planner-react.umd.min.js +2 -0
  618. package/build/umd/7438.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  619. package/build/umd/7454.diva-web-planner-react.umd.min.js +2 -0
  620. package/build/umd/7454.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  621. package/build/umd/7476.diva-web-planner-react.umd.min.js +2 -0
  622. package/build/umd/7476.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  623. package/build/umd/7610.diva-web-planner-react.umd.min.js +2 -0
  624. package/build/umd/7610.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  625. package/build/umd/7648.diva-web-planner-react.umd.min.js +2 -0
  626. package/build/umd/7648.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  627. package/build/umd/7654.diva-web-planner-react.umd.min.js +2 -0
  628. package/build/umd/7654.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  629. package/build/umd/7659.diva-web-planner-react.umd.min.js +2 -0
  630. package/build/umd/7659.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  631. package/build/umd/7698.diva-web-planner-react.umd.min.js +2 -0
  632. package/build/umd/7698.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  633. package/build/umd/7707.diva-web-planner-react.umd.min.js +2 -0
  634. package/build/umd/7707.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  635. package/build/umd/776.diva-web-planner-react.umd.min.js +2 -0
  636. package/build/umd/776.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  637. package/build/umd/7782.diva-web-planner-react.umd.min.js +2 -0
  638. package/build/umd/7782.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  639. package/build/umd/7810.diva-web-planner-react.umd.min.js +2 -0
  640. package/build/umd/7810.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  641. package/build/umd/7820.diva-web-planner-react.umd.min.js +2 -0
  642. package/build/umd/7820.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  643. package/build/umd/7829.diva-web-planner-react.umd.min.js +2 -0
  644. package/build/umd/7829.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  645. package/build/umd/7851.diva-web-planner-react.umd.min.js +2 -0
  646. package/build/umd/7851.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  647. package/build/umd/7875.diva-web-planner-react.umd.min.js +2 -0
  648. package/build/umd/7875.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  649. package/build/umd/7878.diva-web-planner-react.umd.min.js +2 -0
  650. package/build/umd/7878.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  651. package/build/umd/7899.diva-web-planner-react.umd.min.js +2 -0
  652. package/build/umd/7899.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  653. package/build/umd/7965.diva-web-planner-react.umd.min.js +2 -0
  654. package/build/umd/7965.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  655. package/build/umd/7991.diva-web-planner-react.umd.min.js +2 -0
  656. package/build/umd/7991.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  657. package/build/umd/8016.diva-web-planner-react.umd.min.js +2 -0
  658. package/build/umd/8016.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  659. package/build/umd/8025.diva-web-planner-react.umd.min.js +2 -0
  660. package/build/umd/8025.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  661. package/build/umd/8038.diva-web-planner-react.umd.min.js +2 -0
  662. package/build/umd/8038.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  663. package/build/umd/8044.diva-web-planner-react.umd.min.js +2 -0
  664. package/build/umd/8044.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  665. package/build/umd/8051.diva-web-planner-react.umd.min.js +2 -0
  666. package/build/umd/8051.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  667. package/build/umd/8096.diva-web-planner-react.umd.min.js +2 -0
  668. package/build/umd/8096.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  669. package/build/umd/8109.diva-web-planner-react.umd.min.js +2 -0
  670. package/build/umd/8109.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  671. package/build/umd/8127.diva-web-planner-react.umd.min.js +2 -0
  672. package/build/umd/8127.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  673. package/build/umd/8245.diva-web-planner-react.umd.min.js +2 -0
  674. package/build/umd/8245.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  675. package/build/umd/8249.diva-web-planner-react.umd.min.js +2 -0
  676. package/build/umd/8249.diva-web-planner-react.umd.min.js.LICENSE.txt +16 -0
  677. package/build/umd/8255.diva-web-planner-react.umd.min.js +2 -0
  678. package/build/umd/8255.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  679. package/build/umd/8264.diva-web-planner-react.umd.min.js +2 -0
  680. package/build/umd/8264.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  681. package/build/umd/8277.diva-web-planner-react.umd.min.js +2 -0
  682. package/build/umd/8277.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  683. package/build/umd/8297.diva-web-planner-react.umd.min.js +2 -0
  684. package/build/umd/8297.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  685. package/build/umd/83.diva-web-planner-react.umd.min.js +2 -0
  686. package/build/umd/83.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  687. package/build/umd/8314.diva-web-planner-react.umd.min.js +2 -0
  688. package/build/umd/8314.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  689. package/build/umd/8365.diva-web-planner-react.umd.min.js +2 -0
  690. package/build/umd/8365.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  691. package/build/umd/8395.diva-web-planner-react.umd.min.js +2 -0
  692. package/build/umd/8395.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  693. package/build/umd/8404.diva-web-planner-react.umd.min.js +2 -0
  694. package/build/umd/8404.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  695. package/build/umd/8430.diva-web-planner-react.umd.min.js +2 -0
  696. package/build/umd/8430.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  697. package/build/umd/8434.diva-web-planner-react.umd.min.js +2 -0
  698. package/build/umd/8434.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  699. package/build/umd/8467.diva-web-planner-react.umd.min.js +2 -0
  700. package/build/umd/8467.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  701. package/build/umd/8552.diva-web-planner-react.umd.min.js +2 -0
  702. package/build/umd/8552.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  703. package/build/umd/86.diva-web-planner-react.umd.min.js +2 -0
  704. package/build/umd/86.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  705. package/build/umd/8608.diva-web-planner-react.umd.min.js +2 -0
  706. package/build/umd/8608.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  707. package/build/umd/8654.diva-web-planner-react.umd.min.js +2 -0
  708. package/build/umd/8654.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  709. package/build/umd/8664.diva-web-planner-react.umd.min.js +2 -0
  710. package/build/umd/8664.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  711. package/build/umd/8670.diva-web-planner-react.umd.min.js +2 -0
  712. package/build/umd/8670.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  713. package/build/umd/8696.diva-web-planner-react.umd.min.js +2 -0
  714. package/build/umd/8696.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  715. package/build/umd/8710.diva-web-planner-react.umd.min.js +2 -0
  716. package/build/umd/8710.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  717. package/build/umd/8720.diva-web-planner-react.umd.min.js +2 -0
  718. package/build/umd/8720.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  719. package/build/umd/8726.diva-web-planner-react.umd.min.js +2 -0
  720. package/build/umd/8726.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  721. package/build/umd/8761.diva-web-planner-react.umd.min.js +2 -0
  722. package/build/umd/8761.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  723. package/build/umd/8810.diva-web-planner-react.umd.min.js +2 -0
  724. package/build/umd/8810.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  725. package/build/umd/8833.diva-web-planner-react.umd.min.js +2 -0
  726. package/build/umd/8833.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  727. package/build/umd/8835.diva-web-planner-react.umd.min.js +2 -0
  728. package/build/umd/8835.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  729. package/build/umd/8865.diva-web-planner-react.umd.min.js +2 -0
  730. package/build/umd/8865.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  731. package/build/umd/8871.diva-web-planner-react.umd.min.js +2 -0
  732. package/build/umd/8871.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  733. package/build/umd/8925.diva-web-planner-react.umd.min.js +2 -0
  734. package/build/umd/8925.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  735. package/build/umd/8928.diva-web-planner-react.umd.min.js +2 -0
  736. package/build/umd/8928.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  737. package/build/umd/8966.diva-web-planner-react.umd.min.js +2 -0
  738. package/build/umd/8966.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  739. package/build/umd/8994.diva-web-planner-react.umd.min.js +2 -0
  740. package/build/umd/8994.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  741. package/build/umd/9013.diva-web-planner-react.umd.min.js +2 -0
  742. package/build/umd/9013.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  743. package/build/umd/9067.diva-web-planner-react.umd.min.js +2 -0
  744. package/build/umd/9067.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  745. package/build/umd/9068.diva-web-planner-react.umd.min.js +2 -0
  746. package/build/umd/9068.diva-web-planner-react.umd.min.js.LICENSE.txt +10 -0
  747. package/build/umd/9070.diva-web-planner-react.umd.min.js +2 -0
  748. package/build/umd/9070.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  749. package/build/umd/910.diva-web-planner-react.umd.min.js +2 -0
  750. package/build/umd/910.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  751. package/build/umd/9111.diva-web-planner-react.umd.min.js +2 -0
  752. package/build/umd/9111.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  753. package/build/umd/9115.diva-web-planner-react.umd.min.js +2 -0
  754. package/build/umd/9115.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  755. package/build/umd/9145.diva-web-planner-react.umd.min.js +2 -0
  756. package/build/umd/9145.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  757. package/build/umd/9178.diva-web-planner-react.umd.min.js +2 -0
  758. package/build/umd/9178.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  759. package/build/umd/933.diva-web-planner-react.umd.min.js +2 -0
  760. package/build/umd/933.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  761. package/build/umd/936.diva-web-planner-react.umd.min.js +2 -0
  762. package/build/umd/936.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  763. package/build/umd/9396.diva-web-planner-react.umd.min.js +2 -0
  764. package/build/umd/9396.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  765. package/build/umd/9406.diva-web-planner-react.umd.min.js +2 -0
  766. package/build/umd/9406.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  767. package/build/umd/9429.diva-web-planner-react.umd.min.js +2 -0
  768. package/build/umd/9429.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  769. package/build/umd/9450.diva-web-planner-react.umd.min.js +2 -0
  770. package/build/umd/9450.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  771. package/build/umd/9451.diva-web-planner-react.umd.min.js +2 -0
  772. package/build/umd/9451.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  773. package/build/umd/9534.diva-web-planner-react.umd.min.js +2 -0
  774. package/build/umd/9534.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  775. package/build/umd/954.diva-web-planner-react.umd.min.js +2 -0
  776. package/build/umd/954.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  777. package/build/umd/9564.diva-web-planner-react.umd.min.js +2 -0
  778. package/build/umd/9564.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  779. package/build/umd/9596.diva-web-planner-react.umd.min.js +2 -0
  780. package/build/umd/9596.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  781. package/build/umd/9636.diva-web-planner-react.umd.min.js +2 -0
  782. package/build/umd/9636.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  783. package/build/umd/9638.diva-web-planner-react.umd.min.js +2 -0
  784. package/build/umd/9638.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  785. package/build/umd/9657.diva-web-planner-react.umd.min.js +2 -0
  786. package/build/umd/9657.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  787. package/build/umd/9691.diva-web-planner-react.umd.min.js +2 -0
  788. package/build/umd/9691.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  789. package/build/umd/9705.diva-web-planner-react.umd.min.js +2 -0
  790. package/build/umd/9705.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  791. package/build/umd/9744.diva-web-planner-react.umd.min.js +2 -0
  792. package/build/umd/9744.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  793. package/build/umd/9752.diva-web-planner-react.umd.min.js +2 -0
  794. package/build/umd/9752.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  795. package/build/umd/9773.diva-web-planner-react.umd.min.js +2 -0
  796. package/build/umd/9773.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  797. package/build/umd/9774.diva-web-planner-react.umd.min.js +2 -0
  798. package/build/umd/9774.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  799. package/build/umd/9789.diva-web-planner-react.umd.min.js +2 -0
  800. package/build/umd/9789.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  801. package/build/umd/9805.diva-web-planner-react.umd.min.js +2 -0
  802. package/build/umd/9805.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  803. package/build/umd/9851.diva-web-planner-react.umd.min.js +2 -0
  804. package/build/umd/9851.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  805. package/build/umd/9853.diva-web-planner-react.umd.min.js +2 -0
  806. package/build/umd/9853.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  807. package/build/umd/988.diva-web-planner-react.umd.min.js +2 -0
  808. package/build/umd/988.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  809. package/build/umd/9906.diva-web-planner-react.umd.min.js +2 -0
  810. package/build/umd/9906.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  811. package/build/umd/9957.diva-web-planner-react.umd.min.js +2 -0
  812. package/build/umd/9957.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  813. package/build/umd/9964.diva-web-planner-react.umd.min.js +2 -0
  814. package/build/umd/9964.diva-web-planner-react.umd.min.js.LICENSE.txt +7 -0
  815. package/build/umd/9991.diva-web-planner-react.umd.min.js +2 -0
  816. package/build/umd/9991.diva-web-planner-react.umd.min.js.LICENSE.txt +1 -0
  817. package/build/umd/diva-web-planner-react.umd.min.js +1 -1
  818. package/build/umd/report.html +1 -1
  819. package/package.json +6 -6
  820. package/build/esm/ArticleProperties-ad4aaabc.js +0 -164
  821. package/build/esm/CatalogProperties-862d2c79.js +0 -438
  822. package/build/esm/IconHandler-3f16125d.js +0 -77
  823. package/build/esm/OptionProperties-950b94a1.js +0 -147
  824. package/build/esm/OptionValueProperties-18877433.js +0 -116
  825. package/build/esm/Planner2DGrid-16ef124d.js +0 -640
  826. package/build/esm/Planner3DImage-c53a2e4f.js +0 -1163
  827. package/build/esm/index-04598143.js +0 -156
  828. package/build/esm/index-04d55e82.js +0 -41
  829. package/build/esm/index-08ae484e.js +0 -129
  830. package/build/esm/index-0aba93fb.js +0 -123
  831. package/build/esm/index-0afbc6bf.js +0 -101
  832. package/build/esm/index-0c044938.js +0 -61
  833. package/build/esm/index-0cc75729.js +0 -71
  834. package/build/esm/index-0db3b553.js +0 -91
  835. package/build/esm/index-0e206c3f.js +0 -137
  836. package/build/esm/index-0e24de6a.js +0 -127
  837. package/build/esm/index-0e444930.js +0 -59
  838. package/build/esm/index-10d8e944.js +0 -43
  839. package/build/esm/index-11c4a30a.js +0 -83
  840. package/build/esm/index-1305263d.js +0 -76
  841. package/build/esm/index-1371aac0.js +0 -46
  842. package/build/esm/index-15a622b8.js +0 -68
  843. package/build/esm/index-16f2c33d.js +0 -81
  844. package/build/esm/index-193e341d.js +0 -115
  845. package/build/esm/index-1b795043.js +0 -37
  846. package/build/esm/index-1e8b8742.js +0 -91
  847. package/build/esm/index-217cf030.js +0 -27
  848. package/build/esm/index-22358e80.js +0 -51
  849. package/build/esm/index-23ae379e.js +0 -551
  850. package/build/esm/index-25c9f645.js +0 -156
  851. package/build/esm/index-26f8a6f4.js +0 -140
  852. package/build/esm/index-27375692.js +0 -61
  853. package/build/esm/index-29a35559.js +0 -186
  854. package/build/esm/index-2c9173bf.js +0 -95
  855. package/build/esm/index-2cde3401.js +0 -136
  856. package/build/esm/index-2ea4ad37.js +0 -52
  857. package/build/esm/index-2fd6b3ad.js +0 -36
  858. package/build/esm/index-3199bfee.js +0 -177
  859. package/build/esm/index-39c29b9a.js +0 -242
  860. package/build/esm/index-3a646590.js +0 -38
  861. package/build/esm/index-3b758b96.js +0 -163
  862. package/build/esm/index-3e7715a6.js +0 -97
  863. package/build/esm/index-3ede4539.js +0 -73
  864. package/build/esm/index-40c59259.js +0 -27
  865. package/build/esm/index-4128ec05.js +0 -27
  866. package/build/esm/index-42d77ae5.js +0 -27
  867. package/build/esm/index-463de988.js +0 -53
  868. package/build/esm/index-46f51d6f.js +0 -213
  869. package/build/esm/index-470d4669.js +0 -164
  870. package/build/esm/index-493d8c54.js +0 -27
  871. package/build/esm/index-4948eafa.js +0 -110
  872. package/build/esm/index-499b06bd.js +0 -78
  873. package/build/esm/index-4b3ff6d3.js +0 -157
  874. package/build/esm/index-4b6e23d0.js +0 -27
  875. package/build/esm/index-4e63b857.js +0 -99
  876. package/build/esm/index-4f23a188.js +0 -176
  877. package/build/esm/index-4fe258c5.js +0 -35
  878. package/build/esm/index-506b05bd.js +0 -167
  879. package/build/esm/index-50c80005.js +0 -42
  880. package/build/esm/index-51a068d6.js +0 -76
  881. package/build/esm/index-51bbb435.js +0 -82
  882. package/build/esm/index-52866ccf.js +0 -102
  883. package/build/esm/index-538fdf33.js +0 -27
  884. package/build/esm/index-5492c42e.js +0 -64
  885. package/build/esm/index-556513f0.js +0 -48
  886. package/build/esm/index-5647c907.js +0 -94
  887. package/build/esm/index-574eccea.js +0 -39
  888. package/build/esm/index-5773de2c.js +0 -131
  889. package/build/esm/index-57e5c7bc.js +0 -27
  890. package/build/esm/index-58821613.js +0 -27
  891. package/build/esm/index-5971761f.js +0 -171
  892. package/build/esm/index-59a3b196.js +0 -54
  893. package/build/esm/index-5a54730f.js +0 -59
  894. package/build/esm/index-5a54767d.js +0 -37
  895. package/build/esm/index-5afa8ae8.js +0 -134
  896. package/build/esm/index-5b5662e6.js +0 -87
  897. package/build/esm/index-5c73581e.js +0 -127
  898. package/build/esm/index-60fa19cd.js +0 -92
  899. package/build/esm/index-61af1648.js +0 -75
  900. package/build/esm/index-61e1a114.js +0 -57
  901. package/build/esm/index-67d18e45.js +0 -127
  902. package/build/esm/index-684ed601.js +0 -27
  903. package/build/esm/index-68d8a5f6.js +0 -45
  904. package/build/esm/index-6a21be1e.js +0 -64
  905. package/build/esm/index-6c73961f.js +0 -75
  906. package/build/esm/index-6e5a5052.js +0 -110
  907. package/build/esm/index-710506ce.js +0 -25
  908. package/build/esm/index-71e09ba6.js +0 -40
  909. package/build/esm/index-7217621f.js +0 -108
  910. package/build/esm/index-73405966.js +0 -27
  911. package/build/esm/index-73c186e8.js +0 -55
  912. package/build/esm/index-73fd558b.js +0 -50
  913. package/build/esm/index-75def7d9.js +0 -91
  914. package/build/esm/index-76364dda.js +0 -57
  915. package/build/esm/index-7978c70c.js +0 -32
  916. package/build/esm/index-7b2c77fc.js +0 -50
  917. package/build/esm/index-7b2dc821.js +0 -33
  918. package/build/esm/index-7ccc65da.js +0 -94
  919. package/build/esm/index-7d24a508.js +0 -129
  920. package/build/esm/index-7d3f6ebe.js +0 -142
  921. package/build/esm/index-7d8e85e9.js +0 -27
  922. package/build/esm/index-7e79f214.js +0 -67
  923. package/build/esm/index-80295292.js +0 -123
  924. package/build/esm/index-80813811.js +0 -43
  925. package/build/esm/index-81f5b321.js +0 -47
  926. package/build/esm/index-8397c369.js +0 -139
  927. package/build/esm/index-84207333.js +0 -46
  928. package/build/esm/index-85a3f724.js +0 -144
  929. package/build/esm/index-868d8ed8.js +0 -76
  930. package/build/esm/index-873531d1.js +0 -65
  931. package/build/esm/index-88a1e093.js +0 -97
  932. package/build/esm/index-89cbbf70.js +0 -27
  933. package/build/esm/index-89d06f11.js +0 -27
  934. package/build/esm/index-8aa8b3c6.js +0 -42
  935. package/build/esm/index-8c92be1f.js +0 -156
  936. package/build/esm/index-8e45dee1.js +0 -62
  937. package/build/esm/index-8eb73d6a.js +0 -120
  938. package/build/esm/index-8f250571.js +0 -69
  939. package/build/esm/index-8f2610a4.js +0 -56
  940. package/build/esm/index-8fadff48.js +0 -54
  941. package/build/esm/index-8fbb0b4d.js +0 -128
  942. package/build/esm/index-8fc51f02.js +0 -156
  943. package/build/esm/index-904a4e92.js +0 -182
  944. package/build/esm/index-90c552cd.js +0 -445
  945. package/build/esm/index-9224cea6.js +0 -45
  946. package/build/esm/index-92d56474.js +0 -202
  947. package/build/esm/index-94db34a7.js +0 -76
  948. package/build/esm/index-95e686fe.js +0 -76
  949. package/build/esm/index-95f99f74.js +0 -132
  950. package/build/esm/index-965718c6.js +0 -154
  951. package/build/esm/index-96ca37fc.js +0 -275
  952. package/build/esm/index-9792f929.js +0 -215
  953. package/build/esm/index-97b68154.js +0 -83
  954. package/build/esm/index-97dd0b72.js +0 -78
  955. package/build/esm/index-989ab649.js +0 -41
  956. package/build/esm/index-990d1a26.js +0 -34
  957. package/build/esm/index-9a6c023e.js +0 -68
  958. package/build/esm/index-9c428c97.js +0 -36
  959. package/build/esm/index-9cae369c.js +0 -121
  960. package/build/esm/index-9d5346ea.js +0 -52
  961. package/build/esm/index-9ed6924d.js +0 -34
  962. package/build/esm/index-a1e719a5.js +0 -53
  963. package/build/esm/index-a21b8051.js +0 -27
  964. package/build/esm/index-a2341787.js +0 -111
  965. package/build/esm/index-a2f0bee7.js +0 -88
  966. package/build/esm/index-a41ddfe1.js +0 -86
  967. package/build/esm/index-a5b06d0b.js +0 -53
  968. package/build/esm/index-a6a32ebd.js +0 -64
  969. package/build/esm/index-a95a2c76.js +0 -40
  970. package/build/esm/index-aa0d34b9.js +0 -146
  971. package/build/esm/index-ab6f18e7.js +0 -107
  972. package/build/esm/index-ab829d63.js +0 -71
  973. package/build/esm/index-ab9299a9.js +0 -97
  974. package/build/esm/index-acff910c.js +0 -27
  975. package/build/esm/index-aecf74ab.js +0 -139
  976. package/build/esm/index-af5f4e78.js +0 -27
  977. package/build/esm/index-afaf915c.js +0 -58
  978. package/build/esm/index-afb53cfd.js +0 -32
  979. package/build/esm/index-afb5fb5d.js +0 -127
  980. package/build/esm/index-b14e742e.js +0 -91
  981. package/build/esm/index-b1d1df6c.js +0 -44
  982. package/build/esm/index-b29be090.js +0 -68
  983. package/build/esm/index-b308c220.js +0 -157
  984. package/build/esm/index-b361e795.js +0 -96
  985. package/build/esm/index-b37dcde2.js +0 -23
  986. package/build/esm/index-b3badc96.js +0 -30
  987. package/build/esm/index-b6bf3333.js +0 -73
  988. package/build/esm/index-b76eef0f.js +0 -75
  989. package/build/esm/index-b7d2ad37.js +0 -69
  990. package/build/esm/index-b7f00826.js +0 -116
  991. package/build/esm/index-ba10c7a8.js +0 -93
  992. package/build/esm/index-baceec21.js +0 -65
  993. package/build/esm/index-bcea3f10.js +0 -108
  994. package/build/esm/index-bd36055e.js +0 -48
  995. package/build/esm/index-bf352463.js +0 -63
  996. package/build/esm/index-c1e0cf86.js +0 -78
  997. package/build/esm/index-c2584885.js +0 -170
  998. package/build/esm/index-c333c380.js +0 -132
  999. package/build/esm/index-c3aeb47b.js +0 -102
  1000. package/build/esm/index-c4775c2e.js +0 -43
  1001. package/build/esm/index-c4a170c0.js +0 -27
  1002. package/build/esm/index-c7339c6a.js +0 -27
  1003. package/build/esm/index-c9c3db8a.js +0 -87
  1004. package/build/esm/index-cb4f9308.js +0 -70
  1005. package/build/esm/index-cc8dbdac.js +0 -38
  1006. package/build/esm/index-ce490cda.js +0 -49
  1007. package/build/esm/index-ceac7152.js +0 -9587
  1008. package/build/esm/index-d00e5b1f.js +0 -43
  1009. package/build/esm/index-d0f28655.js +0 -123
  1010. package/build/esm/index-d27f402e.js +0 -98
  1011. package/build/esm/index-d512573e.js +0 -179
  1012. package/build/esm/index-d53cbefe.js +0 -75
  1013. package/build/esm/index-d5b9eee6.js +0 -148
  1014. package/build/esm/index-d5cf3f49.js +0 -48
  1015. package/build/esm/index-d6085391.js +0 -111
  1016. package/build/esm/index-d6a76043.js +0 -144
  1017. package/build/esm/index-d8078de8.js +0 -53
  1018. package/build/esm/index-d8cb8f3c.js +0 -117
  1019. package/build/esm/index-da820de6.js +0 -175
  1020. package/build/esm/index-dd8dba83.js +0 -27
  1021. package/build/esm/index-dfb7975d.js +0 -42
  1022. package/build/esm/index-e0442a96.js +0 -46
  1023. package/build/esm/index-e24e318e.js +0 -45
  1024. package/build/esm/index-e278d05e.js +0 -121
  1025. package/build/esm/index-e30d972e.js +0 -121
  1026. package/build/esm/index-e54c4a83.js +0 -170
  1027. package/build/esm/index-e610c16a.js +0 -54
  1028. package/build/esm/index-e63eb8cf.js +0 -52
  1029. package/build/esm/index-e8634331.js +0 -62
  1030. package/build/esm/index-e8e48df7.js +0 -151
  1031. package/build/esm/index-ea6e93f1.js +0 -112
  1032. package/build/esm/index-ec549beb.js +0 -59
  1033. package/build/esm/index-ec7a941f.js +0 -129
  1034. package/build/esm/index-ed959987.js +0 -268
  1035. package/build/esm/index-f06d32ec.js +0 -46
  1036. package/build/esm/index-f530765c.js +0 -43
  1037. package/build/esm/index-f53c51df.js +0 -106
  1038. package/build/esm/index-f716b083.js +0 -186
  1039. package/build/esm/index-f735526e.js +0 -113
  1040. package/build/esm/index-f753a21a.js +0 -62
  1041. package/build/esm/index-f7f4ec7b.js +0 -53
  1042. package/build/esm/index-f848f570.js +0 -85
  1043. package/build/esm/index-f9068fcb.js +0 -31
  1044. package/build/esm/index-fb1b65be.js +0 -123
  1045. package/build/esm/index-fba00d25.js +0 -27
  1046. package/build/esm/index-fc7ffbaa.js +0 -40
  1047. package/build/esm/index-fc89b69e.js +0 -86
  1048. package/build/esm/index-fd1d46f0.js +0 -27
  1049. package/build/esm/index-fe442524.js +0 -49
  1050. package/build/esm/index-ff721b9e.js +0 -57
  1051. package/build/esm/index.module-02c9581a.js +0 -24
  1052. package/build/esm/index.module-4b848fc5.js +0 -8
  1053. package/build/esm/index.module-554572ea.js +0 -12
  1054. package/build/esm/index.module-78a0c9bc.js +0 -17
  1055. package/build/esm/index.module-7d5da655.js +0 -13
  1056. package/build/esm/index.module-8a42df78.js +0 -9
  1057. package/build/esm/index.module-92dc1689.js +0 -20
  1058. package/build/esm/index.module-9dd324d1.js +0 -44
  1059. package/build/esm/index.module-b014fcfb.js +0 -10
  1060. package/build/esm/index.module-bb0d9c75.js +0 -10
  1061. package/build/esm/index.module-cfe1950c.js +0 -10
  1062. package/build/esm/index.module-e5c4422b.js +0 -9
  1063. package/build/esm/index.module-eaf26f9e.js +0 -18
  1064. package/build/esm/index.module-f9ed15bf.js +0 -19
  1065. package/build/esm/requestProductForm-e9e88800.js +0 -295
  1066. package/build/umd/109.diva-web-planner-react.umd.min.js +0 -2
  1067. package/build/umd/109.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1068. package/build/umd/1095.diva-web-planner-react.umd.min.js +0 -2
  1069. package/build/umd/1095.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1070. package/build/umd/1096.diva-web-planner-react.umd.min.js +0 -2
  1071. package/build/umd/1096.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1072. package/build/umd/1120.diva-web-planner-react.umd.min.js +0 -2
  1073. package/build/umd/1120.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1074. package/build/umd/1197.diva-web-planner-react.umd.min.js +0 -2
  1075. package/build/umd/1197.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1076. package/build/umd/1221.diva-web-planner-react.umd.min.js +0 -2
  1077. package/build/umd/1221.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1078. package/build/umd/1240.diva-web-planner-react.umd.min.js +0 -2
  1079. package/build/umd/1240.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1080. package/build/umd/1254.diva-web-planner-react.umd.min.js +0 -2
  1081. package/build/umd/1254.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1082. package/build/umd/1393.diva-web-planner-react.umd.min.js +0 -2
  1083. package/build/umd/1393.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -10
  1084. package/build/umd/1416.diva-web-planner-react.umd.min.js +0 -2
  1085. package/build/umd/1416.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1086. package/build/umd/1420.diva-web-planner-react.umd.min.js +0 -2
  1087. package/build/umd/1420.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1088. package/build/umd/1477.diva-web-planner-react.umd.min.js +0 -2
  1089. package/build/umd/1477.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1090. package/build/umd/1500.diva-web-planner-react.umd.min.js +0 -2
  1091. package/build/umd/1500.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1092. package/build/umd/1513.diva-web-planner-react.umd.min.js +0 -2
  1093. package/build/umd/1513.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1094. package/build/umd/1546.diva-web-planner-react.umd.min.js +0 -2
  1095. package/build/umd/1546.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1096. package/build/umd/1573.diva-web-planner-react.umd.min.js +0 -2
  1097. package/build/umd/1573.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1098. package/build/umd/1613.diva-web-planner-react.umd.min.js +0 -2
  1099. package/build/umd/1613.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1100. package/build/umd/164.diva-web-planner-react.umd.min.js +0 -2
  1101. package/build/umd/164.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1102. package/build/umd/175.diva-web-planner-react.umd.min.js +0 -2
  1103. package/build/umd/175.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1104. package/build/umd/1762.diva-web-planner-react.umd.min.js +0 -2
  1105. package/build/umd/1762.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1106. package/build/umd/1773.diva-web-planner-react.umd.min.js +0 -2
  1107. package/build/umd/1773.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1108. package/build/umd/1819.diva-web-planner-react.umd.min.js +0 -2
  1109. package/build/umd/1819.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1110. package/build/umd/1840.diva-web-planner-react.umd.min.js +0 -2
  1111. package/build/umd/1840.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -33
  1112. package/build/umd/1868.diva-web-planner-react.umd.min.js +0 -2
  1113. package/build/umd/1868.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1114. package/build/umd/1891.diva-web-planner-react.umd.min.js +0 -2
  1115. package/build/umd/1891.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1116. package/build/umd/1965.diva-web-planner-react.umd.min.js +0 -2
  1117. package/build/umd/1965.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1118. package/build/umd/1969.diva-web-planner-react.umd.min.js +0 -2
  1119. package/build/umd/1969.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1120. package/build/umd/1976.diva-web-planner-react.umd.min.js +0 -2
  1121. package/build/umd/1976.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1122. package/build/umd/1984.diva-web-planner-react.umd.min.js +0 -2
  1123. package/build/umd/1984.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1124. package/build/umd/201.diva-web-planner-react.umd.min.js +0 -2
  1125. package/build/umd/201.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1126. package/build/umd/2032.diva-web-planner-react.umd.min.js +0 -2
  1127. package/build/umd/2032.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1128. package/build/umd/2081.diva-web-planner-react.umd.min.js +0 -2
  1129. package/build/umd/2081.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1130. package/build/umd/2216.diva-web-planner-react.umd.min.js +0 -2
  1131. package/build/umd/2216.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1132. package/build/umd/2256.diva-web-planner-react.umd.min.js +0 -2
  1133. package/build/umd/2256.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1134. package/build/umd/2257.diva-web-planner-react.umd.min.js +0 -2
  1135. package/build/umd/2257.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1136. package/build/umd/2300.diva-web-planner-react.umd.min.js +0 -2
  1137. package/build/umd/2300.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1138. package/build/umd/2309.diva-web-planner-react.umd.min.js +0 -2
  1139. package/build/umd/2309.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1140. package/build/umd/231.diva-web-planner-react.umd.min.js +0 -2
  1141. package/build/umd/231.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1142. package/build/umd/2356.diva-web-planner-react.umd.min.js +0 -2
  1143. package/build/umd/2356.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1144. package/build/umd/2424.diva-web-planner-react.umd.min.js +0 -2
  1145. package/build/umd/2424.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1146. package/build/umd/2476.diva-web-planner-react.umd.min.js +0 -2
  1147. package/build/umd/2476.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1148. package/build/umd/2487.diva-web-planner-react.umd.min.js +0 -2
  1149. package/build/umd/2487.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1150. package/build/umd/2508.diva-web-planner-react.umd.min.js +0 -2
  1151. package/build/umd/2508.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1152. package/build/umd/2523.diva-web-planner-react.umd.min.js +0 -2
  1153. package/build/umd/2523.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1154. package/build/umd/2564.diva-web-planner-react.umd.min.js +0 -2
  1155. package/build/umd/2564.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1156. package/build/umd/2596.diva-web-planner-react.umd.min.js +0 -2
  1157. package/build/umd/2596.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1158. package/build/umd/2619.diva-web-planner-react.umd.min.js +0 -2
  1159. package/build/umd/2619.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1160. package/build/umd/265.diva-web-planner-react.umd.min.js +0 -2
  1161. package/build/umd/265.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1162. package/build/umd/2674.diva-web-planner-react.umd.min.js +0 -2
  1163. package/build/umd/2674.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1164. package/build/umd/2684.diva-web-planner-react.umd.min.js +0 -2
  1165. package/build/umd/2684.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1166. package/build/umd/2692.diva-web-planner-react.umd.min.js +0 -2
  1167. package/build/umd/2692.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1168. package/build/umd/2731.diva-web-planner-react.umd.min.js +0 -2
  1169. package/build/umd/2731.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1170. package/build/umd/2743.diva-web-planner-react.umd.min.js +0 -2
  1171. package/build/umd/2743.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1172. package/build/umd/2759.diva-web-planner-react.umd.min.js +0 -2
  1173. package/build/umd/2759.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1174. package/build/umd/2785.diva-web-planner-react.umd.min.js +0 -2
  1175. package/build/umd/2785.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1176. package/build/umd/2993.diva-web-planner-react.umd.min.js +0 -2
  1177. package/build/umd/2993.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1178. package/build/umd/3010.diva-web-planner-react.umd.min.js +0 -2
  1179. package/build/umd/3010.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1180. package/build/umd/3053.diva-web-planner-react.umd.min.js +0 -2
  1181. package/build/umd/3053.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1182. package/build/umd/3098.diva-web-planner-react.umd.min.js +0 -2
  1183. package/build/umd/3098.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1184. package/build/umd/3112.diva-web-planner-react.umd.min.js +0 -2
  1185. package/build/umd/3112.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1186. package/build/umd/3189.diva-web-planner-react.umd.min.js +0 -2
  1187. package/build/umd/3189.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1188. package/build/umd/319.diva-web-planner-react.umd.min.js +0 -2
  1189. package/build/umd/319.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1190. package/build/umd/3193.diva-web-planner-react.umd.min.js +0 -2
  1191. package/build/umd/3193.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1192. package/build/umd/3209.diva-web-planner-react.umd.min.js +0 -2
  1193. package/build/umd/3209.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1194. package/build/umd/3279.diva-web-planner-react.umd.min.js +0 -2
  1195. package/build/umd/3279.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1196. package/build/umd/3289.diva-web-planner-react.umd.min.js +0 -2
  1197. package/build/umd/3289.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1198. package/build/umd/3338.diva-web-planner-react.umd.min.js +0 -2
  1199. package/build/umd/3338.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1200. package/build/umd/3352.diva-web-planner-react.umd.min.js +0 -408
  1201. package/build/umd/3352.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -86
  1202. package/build/umd/3366.diva-web-planner-react.umd.min.js +0 -2
  1203. package/build/umd/3366.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1204. package/build/umd/3367.diva-web-planner-react.umd.min.js +0 -2
  1205. package/build/umd/3367.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1206. package/build/umd/3452.diva-web-planner-react.umd.min.js +0 -2
  1207. package/build/umd/3452.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1208. package/build/umd/3528.diva-web-planner-react.umd.min.js +0 -2
  1209. package/build/umd/3528.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1210. package/build/umd/3563.diva-web-planner-react.umd.min.js +0 -2
  1211. package/build/umd/3563.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1212. package/build/umd/3667.diva-web-planner-react.umd.min.js +0 -2
  1213. package/build/umd/3667.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1214. package/build/umd/3703.diva-web-planner-react.umd.min.js +0 -2
  1215. package/build/umd/3703.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1216. package/build/umd/3715.diva-web-planner-react.umd.min.js +0 -2
  1217. package/build/umd/3715.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1218. package/build/umd/3718.diva-web-planner-react.umd.min.js +0 -2
  1219. package/build/umd/3718.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1220. package/build/umd/3744.diva-web-planner-react.umd.min.js +0 -2
  1221. package/build/umd/3744.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1222. package/build/umd/3802.diva-web-planner-react.umd.min.js +0 -2
  1223. package/build/umd/3802.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1224. package/build/umd/3805.diva-web-planner-react.umd.min.js +0 -2
  1225. package/build/umd/3805.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1226. package/build/umd/386.diva-web-planner-react.umd.min.js +0 -2
  1227. package/build/umd/386.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1228. package/build/umd/3864.diva-web-planner-react.umd.min.js +0 -2
  1229. package/build/umd/3864.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1230. package/build/umd/3865.diva-web-planner-react.umd.min.js +0 -2
  1231. package/build/umd/3865.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1232. package/build/umd/388.diva-web-planner-react.umd.min.js +0 -2
  1233. package/build/umd/388.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1234. package/build/umd/3994.diva-web-planner-react.umd.min.js +0 -2
  1235. package/build/umd/3994.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1236. package/build/umd/40.diva-web-planner-react.umd.min.js +0 -2
  1237. package/build/umd/40.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1238. package/build/umd/4004.diva-web-planner-react.umd.min.js +0 -2
  1239. package/build/umd/4004.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1240. package/build/umd/4023.diva-web-planner-react.umd.min.js +0 -2
  1241. package/build/umd/4023.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1242. package/build/umd/408.diva-web-planner-react.umd.min.js +0 -2
  1243. package/build/umd/408.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1244. package/build/umd/409.diva-web-planner-react.umd.min.js +0 -2
  1245. package/build/umd/409.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1246. package/build/umd/4133.diva-web-planner-react.umd.min.js +0 -2
  1247. package/build/umd/4133.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1248. package/build/umd/416.diva-web-planner-react.umd.min.js +0 -2
  1249. package/build/umd/416.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1250. package/build/umd/4168.diva-web-planner-react.umd.min.js +0 -2
  1251. package/build/umd/4168.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1252. package/build/umd/4178.diva-web-planner-react.umd.min.js +0 -2
  1253. package/build/umd/4178.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1254. package/build/umd/4209.diva-web-planner-react.umd.min.js +0 -2
  1255. package/build/umd/4209.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1256. package/build/umd/4215.diva-web-planner-react.umd.min.js +0 -2
  1257. package/build/umd/4215.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1258. package/build/umd/4228.diva-web-planner-react.umd.min.js +0 -2
  1259. package/build/umd/4228.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1260. package/build/umd/4233.diva-web-planner-react.umd.min.js +0 -2
  1261. package/build/umd/4233.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1262. package/build/umd/4300.diva-web-planner-react.umd.min.js +0 -2
  1263. package/build/umd/4300.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1264. package/build/umd/4340.diva-web-planner-react.umd.min.js +0 -2
  1265. package/build/umd/4340.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1266. package/build/umd/4357.diva-web-planner-react.umd.min.js +0 -2
  1267. package/build/umd/4357.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1268. package/build/umd/4435.diva-web-planner-react.umd.min.js +0 -2
  1269. package/build/umd/4435.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1270. package/build/umd/4444.diva-web-planner-react.umd.min.js +0 -2
  1271. package/build/umd/4444.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1272. package/build/umd/449.diva-web-planner-react.umd.min.js +0 -2
  1273. package/build/umd/449.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1274. package/build/umd/4515.diva-web-planner-react.umd.min.js +0 -2
  1275. package/build/umd/4515.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1276. package/build/umd/455.diva-web-planner-react.umd.min.js +0 -2
  1277. package/build/umd/455.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1278. package/build/umd/4589.diva-web-planner-react.umd.min.js +0 -2
  1279. package/build/umd/4589.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1280. package/build/umd/4611.diva-web-planner-react.umd.min.js +0 -2
  1281. package/build/umd/4611.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1282. package/build/umd/4732.diva-web-planner-react.umd.min.js +0 -2
  1283. package/build/umd/4732.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1284. package/build/umd/4751.diva-web-planner-react.umd.min.js +0 -2
  1285. package/build/umd/4751.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1286. package/build/umd/48.diva-web-planner-react.umd.min.js +0 -2
  1287. package/build/umd/48.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1288. package/build/umd/4835.diva-web-planner-react.umd.min.js +0 -2
  1289. package/build/umd/4835.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1290. package/build/umd/4936.diva-web-planner-react.umd.min.js +0 -2
  1291. package/build/umd/4936.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1292. package/build/umd/494.diva-web-planner-react.umd.min.js +0 -2
  1293. package/build/umd/494.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1294. package/build/umd/4991.diva-web-planner-react.umd.min.js +0 -2
  1295. package/build/umd/4991.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1296. package/build/umd/506.diva-web-planner-react.umd.min.js +0 -2
  1297. package/build/umd/506.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1298. package/build/umd/5075.diva-web-planner-react.umd.min.js +0 -2
  1299. package/build/umd/5075.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1300. package/build/umd/5080.diva-web-planner-react.umd.min.js +0 -2
  1301. package/build/umd/5080.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1302. package/build/umd/5117.diva-web-planner-react.umd.min.js +0 -2
  1303. package/build/umd/5117.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1304. package/build/umd/5174.diva-web-planner-react.umd.min.js +0 -2
  1305. package/build/umd/5174.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1306. package/build/umd/5183.diva-web-planner-react.umd.min.js +0 -2
  1307. package/build/umd/5183.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1308. package/build/umd/5221.diva-web-planner-react.umd.min.js +0 -2
  1309. package/build/umd/5221.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1310. package/build/umd/5273.diva-web-planner-react.umd.min.js +0 -2
  1311. package/build/umd/5273.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1312. package/build/umd/5310.diva-web-planner-react.umd.min.js +0 -2
  1313. package/build/umd/5310.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1314. package/build/umd/5374.diva-web-planner-react.umd.min.js +0 -2
  1315. package/build/umd/5374.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1316. package/build/umd/5401.diva-web-planner-react.umd.min.js +0 -2
  1317. package/build/umd/5401.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1318. package/build/umd/5431.diva-web-planner-react.umd.min.js +0 -2
  1319. package/build/umd/5431.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1320. package/build/umd/5434.diva-web-planner-react.umd.min.js +0 -2
  1321. package/build/umd/5434.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1322. package/build/umd/5489.diva-web-planner-react.umd.min.js +0 -2
  1323. package/build/umd/5489.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1324. package/build/umd/5557.diva-web-planner-react.umd.min.js +0 -2
  1325. package/build/umd/5557.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1326. package/build/umd/5565.diva-web-planner-react.umd.min.js +0 -2
  1327. package/build/umd/5565.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1328. package/build/umd/5670.diva-web-planner-react.umd.min.js +0 -2
  1329. package/build/umd/5670.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1330. package/build/umd/5698.diva-web-planner-react.umd.min.js +0 -2
  1331. package/build/umd/5698.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1332. package/build/umd/5770.diva-web-planner-react.umd.min.js +0 -2
  1333. package/build/umd/5770.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1334. package/build/umd/5772.diva-web-planner-react.umd.min.js +0 -2
  1335. package/build/umd/5772.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1336. package/build/umd/5782.diva-web-planner-react.umd.min.js +0 -2
  1337. package/build/umd/5782.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1338. package/build/umd/5803.diva-web-planner-react.umd.min.js +0 -2
  1339. package/build/umd/5803.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1340. package/build/umd/5843.diva-web-planner-react.umd.min.js +0 -2
  1341. package/build/umd/5843.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1342. package/build/umd/5852.diva-web-planner-react.umd.min.js +0 -2
  1343. package/build/umd/5852.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1344. package/build/umd/5860.diva-web-planner-react.umd.min.js +0 -2
  1345. package/build/umd/5860.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1346. package/build/umd/590.diva-web-planner-react.umd.min.js +0 -2
  1347. package/build/umd/590.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1348. package/build/umd/5901.diva-web-planner-react.umd.min.js +0 -2
  1349. package/build/umd/5901.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1350. package/build/umd/5914.diva-web-planner-react.umd.min.js +0 -2
  1351. package/build/umd/5914.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1352. package/build/umd/5954.diva-web-planner-react.umd.min.js +0 -2
  1353. package/build/umd/5954.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1354. package/build/umd/597.diva-web-planner-react.umd.min.js +0 -2
  1355. package/build/umd/597.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1356. package/build/umd/5971.diva-web-planner-react.umd.min.js +0 -2
  1357. package/build/umd/5971.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1358. package/build/umd/5982.diva-web-planner-react.umd.min.js +0 -2
  1359. package/build/umd/5982.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1360. package/build/umd/6030.diva-web-planner-react.umd.min.js +0 -2
  1361. package/build/umd/6030.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1362. package/build/umd/6036.diva-web-planner-react.umd.min.js +0 -2
  1363. package/build/umd/6036.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -8
  1364. package/build/umd/6088.diva-web-planner-react.umd.min.js +0 -2
  1365. package/build/umd/6088.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1366. package/build/umd/6096.diva-web-planner-react.umd.min.js +0 -2
  1367. package/build/umd/6096.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1368. package/build/umd/6162.diva-web-planner-react.umd.min.js +0 -2
  1369. package/build/umd/6162.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1370. package/build/umd/6215.diva-web-planner-react.umd.min.js +0 -2
  1371. package/build/umd/6215.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1372. package/build/umd/6230.diva-web-planner-react.umd.min.js +0 -2
  1373. package/build/umd/6230.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1374. package/build/umd/624.diva-web-planner-react.umd.min.js +0 -2
  1375. package/build/umd/624.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1376. package/build/umd/6265.diva-web-planner-react.umd.min.js +0 -2
  1377. package/build/umd/6265.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1378. package/build/umd/6276.diva-web-planner-react.umd.min.js +0 -2
  1379. package/build/umd/6276.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1380. package/build/umd/6342.diva-web-planner-react.umd.min.js +0 -2
  1381. package/build/umd/6342.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1382. package/build/umd/6392.diva-web-planner-react.umd.min.js +0 -2
  1383. package/build/umd/6392.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1384. package/build/umd/6394.diva-web-planner-react.umd.min.js +0 -2
  1385. package/build/umd/6394.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1386. package/build/umd/64.diva-web-planner-react.umd.min.js +0 -2
  1387. package/build/umd/64.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1388. package/build/umd/644.diva-web-planner-react.umd.min.js +0 -2
  1389. package/build/umd/644.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1390. package/build/umd/6461.diva-web-planner-react.umd.min.js +0 -2
  1391. package/build/umd/6461.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -16
  1392. package/build/umd/6472.diva-web-planner-react.umd.min.js +0 -2
  1393. package/build/umd/6472.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1394. package/build/umd/6486.diva-web-planner-react.umd.min.js +0 -2
  1395. package/build/umd/6486.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1396. package/build/umd/6592.diva-web-planner-react.umd.min.js +0 -2
  1397. package/build/umd/6592.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1398. package/build/umd/6595.diva-web-planner-react.umd.min.js +0 -2
  1399. package/build/umd/6595.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1400. package/build/umd/6624.diva-web-planner-react.umd.min.js +0 -2
  1401. package/build/umd/6624.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1402. package/build/umd/666.diva-web-planner-react.umd.min.js +0 -2
  1403. package/build/umd/666.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1404. package/build/umd/6665.diva-web-planner-react.umd.min.js +0 -2
  1405. package/build/umd/6665.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1406. package/build/umd/6666.diva-web-planner-react.umd.min.js +0 -2
  1407. package/build/umd/6666.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1408. package/build/umd/6677.diva-web-planner-react.umd.min.js +0 -2
  1409. package/build/umd/6677.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1410. package/build/umd/6715.diva-web-planner-react.umd.min.js +0 -2
  1411. package/build/umd/6715.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1412. package/build/umd/6736.diva-web-planner-react.umd.min.js +0 -2
  1413. package/build/umd/6736.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1414. package/build/umd/6742.diva-web-planner-react.umd.min.js +0 -2
  1415. package/build/umd/6742.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1416. package/build/umd/6753.diva-web-planner-react.umd.min.js +0 -2
  1417. package/build/umd/6753.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1418. package/build/umd/6758.diva-web-planner-react.umd.min.js +0 -2
  1419. package/build/umd/6758.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1420. package/build/umd/676.diva-web-planner-react.umd.min.js +0 -2
  1421. package/build/umd/676.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1422. package/build/umd/6761.diva-web-planner-react.umd.min.js +0 -2
  1423. package/build/umd/6761.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1424. package/build/umd/6764.diva-web-planner-react.umd.min.js +0 -2
  1425. package/build/umd/6764.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1426. package/build/umd/6790.diva-web-planner-react.umd.min.js +0 -2
  1427. package/build/umd/6790.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1428. package/build/umd/6929.diva-web-planner-react.umd.min.js +0 -2
  1429. package/build/umd/6929.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1430. package/build/umd/6953.diva-web-planner-react.umd.min.js +0 -2
  1431. package/build/umd/6953.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1432. package/build/umd/6960.diva-web-planner-react.umd.min.js +0 -2
  1433. package/build/umd/6960.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -10
  1434. package/build/umd/6973.diva-web-planner-react.umd.min.js +0 -2
  1435. package/build/umd/6973.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1436. package/build/umd/7035.diva-web-planner-react.umd.min.js +0 -2
  1437. package/build/umd/7035.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1438. package/build/umd/7051.diva-web-planner-react.umd.min.js +0 -2
  1439. package/build/umd/7051.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1440. package/build/umd/7082.diva-web-planner-react.umd.min.js +0 -2
  1441. package/build/umd/7082.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1442. package/build/umd/7094.diva-web-planner-react.umd.min.js +0 -2
  1443. package/build/umd/7094.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1444. package/build/umd/7207.diva-web-planner-react.umd.min.js +0 -2
  1445. package/build/umd/7207.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1446. package/build/umd/7237.diva-web-planner-react.umd.min.js +0 -2
  1447. package/build/umd/7237.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1448. package/build/umd/7270.diva-web-planner-react.umd.min.js +0 -2
  1449. package/build/umd/7270.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1450. package/build/umd/7348.diva-web-planner-react.umd.min.js +0 -2
  1451. package/build/umd/7348.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1452. package/build/umd/7378.diva-web-planner-react.umd.min.js +0 -2
  1453. package/build/umd/7378.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1454. package/build/umd/7422.diva-web-planner-react.umd.min.js +0 -2
  1455. package/build/umd/7422.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1456. package/build/umd/7430.diva-web-planner-react.umd.min.js +0 -2
  1457. package/build/umd/7430.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1458. package/build/umd/7470.diva-web-planner-react.umd.min.js +0 -2
  1459. package/build/umd/7470.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1460. package/build/umd/7493.diva-web-planner-react.umd.min.js +0 -2
  1461. package/build/umd/7493.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1462. package/build/umd/7505.diva-web-planner-react.umd.min.js +0 -2
  1463. package/build/umd/7505.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1464. package/build/umd/7531.diva-web-planner-react.umd.min.js +0 -2
  1465. package/build/umd/7531.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1466. package/build/umd/7559.diva-web-planner-react.umd.min.js +0 -2
  1467. package/build/umd/7559.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1468. package/build/umd/7566.diva-web-planner-react.umd.min.js +0 -2
  1469. package/build/umd/7566.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1470. package/build/umd/763.diva-web-planner-react.umd.min.js +0 -2
  1471. package/build/umd/763.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1472. package/build/umd/7692.diva-web-planner-react.umd.min.js +0 -2
  1473. package/build/umd/7692.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -10
  1474. package/build/umd/7706.diva-web-planner-react.umd.min.js +0 -2
  1475. package/build/umd/7706.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1476. package/build/umd/7736.diva-web-planner-react.umd.min.js +0 -2
  1477. package/build/umd/7736.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1478. package/build/umd/7745.diva-web-planner-react.umd.min.js +0 -2
  1479. package/build/umd/7745.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1480. package/build/umd/7765.diva-web-planner-react.umd.min.js +0 -2
  1481. package/build/umd/7765.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1482. package/build/umd/7781.diva-web-planner-react.umd.min.js +0 -2
  1483. package/build/umd/7781.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1484. package/build/umd/7787.diva-web-planner-react.umd.min.js +0 -2
  1485. package/build/umd/7787.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1486. package/build/umd/7854.diva-web-planner-react.umd.min.js +0 -2
  1487. package/build/umd/7854.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1488. package/build/umd/7868.diva-web-planner-react.umd.min.js +0 -2
  1489. package/build/umd/7868.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1490. package/build/umd/7893.diva-web-planner-react.umd.min.js +0 -2
  1491. package/build/umd/7893.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1492. package/build/umd/7902.diva-web-planner-react.umd.min.js +0 -2
  1493. package/build/umd/7902.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1494. package/build/umd/7905.diva-web-planner-react.umd.min.js +0 -2
  1495. package/build/umd/7905.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1496. package/build/umd/7921.diva-web-planner-react.umd.min.js +0 -2
  1497. package/build/umd/7921.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1498. package/build/umd/7962.diva-web-planner-react.umd.min.js +0 -2
  1499. package/build/umd/7962.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1500. package/build/umd/7988.diva-web-planner-react.umd.min.js +0 -2
  1501. package/build/umd/7988.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -10
  1502. package/build/umd/7999.diva-web-planner-react.umd.min.js +0 -2
  1503. package/build/umd/7999.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1504. package/build/umd/8035.diva-web-planner-react.umd.min.js +0 -2
  1505. package/build/umd/8035.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1506. package/build/umd/8041.diva-web-planner-react.umd.min.js +0 -2
  1507. package/build/umd/8041.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1508. package/build/umd/8071.diva-web-planner-react.umd.min.js +0 -2
  1509. package/build/umd/8071.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1510. package/build/umd/81.diva-web-planner-react.umd.min.js +0 -2
  1511. package/build/umd/81.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1512. package/build/umd/815.diva-web-planner-react.umd.min.js +0 -2
  1513. package/build/umd/815.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1514. package/build/umd/8177.diva-web-planner-react.umd.min.js +0 -2
  1515. package/build/umd/8177.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1516. package/build/umd/8181.diva-web-planner-react.umd.min.js +0 -2
  1517. package/build/umd/8181.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1518. package/build/umd/8191.diva-web-planner-react.umd.min.js +0 -2
  1519. package/build/umd/8191.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1520. package/build/umd/8232.diva-web-planner-react.umd.min.js +0 -2
  1521. package/build/umd/8232.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1522. package/build/umd/8234.diva-web-planner-react.umd.min.js +0 -2
  1523. package/build/umd/8234.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1524. package/build/umd/8238.diva-web-planner-react.umd.min.js +0 -2
  1525. package/build/umd/8238.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1526. package/build/umd/8295.diva-web-planner-react.umd.min.js +0 -2
  1527. package/build/umd/8295.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1528. package/build/umd/8307.diva-web-planner-react.umd.min.js +0 -2
  1529. package/build/umd/8307.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1530. package/build/umd/8350.diva-web-planner-react.umd.min.js +0 -2
  1531. package/build/umd/8350.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1532. package/build/umd/8417.diva-web-planner-react.umd.min.js +0 -2
  1533. package/build/umd/8417.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1534. package/build/umd/8473.diva-web-planner-react.umd.min.js +0 -2
  1535. package/build/umd/8473.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1536. package/build/umd/8571.diva-web-planner-react.umd.min.js +0 -2
  1537. package/build/umd/8571.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1538. package/build/umd/8577.diva-web-planner-react.umd.min.js +0 -2
  1539. package/build/umd/8577.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1540. package/build/umd/869.diva-web-planner-react.umd.min.js +0 -2
  1541. package/build/umd/869.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1542. package/build/umd/8692.diva-web-planner-react.umd.min.js +0 -2
  1543. package/build/umd/8692.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1544. package/build/umd/8739.diva-web-planner-react.umd.min.js +0 -2
  1545. package/build/umd/8739.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1546. package/build/umd/8862.diva-web-planner-react.umd.min.js +0 -2
  1547. package/build/umd/8862.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1548. package/build/umd/8932.diva-web-planner-react.umd.min.js +0 -2
  1549. package/build/umd/8932.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1550. package/build/umd/8988.diva-web-planner-react.umd.min.js +0 -2
  1551. package/build/umd/8988.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1552. package/build/umd/8990.diva-web-planner-react.umd.min.js +0 -2
  1553. package/build/umd/8990.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1554. package/build/umd/8995.diva-web-planner-react.umd.min.js +0 -2
  1555. package/build/umd/8995.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1556. package/build/umd/9003.diva-web-planner-react.umd.min.js +0 -2
  1557. package/build/umd/9003.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1558. package/build/umd/904.diva-web-planner-react.umd.min.js +0 -2
  1559. package/build/umd/904.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1560. package/build/umd/9062.diva-web-planner-react.umd.min.js +0 -2
  1561. package/build/umd/9062.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1562. package/build/umd/9082.diva-web-planner-react.umd.min.js +0 -2
  1563. package/build/umd/9082.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1564. package/build/umd/9124.diva-web-planner-react.umd.min.js +0 -2
  1565. package/build/umd/9124.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1566. package/build/umd/9146.diva-web-planner-react.umd.min.js +0 -2
  1567. package/build/umd/9146.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1568. package/build/umd/9189.diva-web-planner-react.umd.min.js +0 -2
  1569. package/build/umd/9189.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1570. package/build/umd/9228.diva-web-planner-react.umd.min.js +0 -2
  1571. package/build/umd/9228.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1572. package/build/umd/9289.diva-web-planner-react.umd.min.js +0 -2
  1573. package/build/umd/9289.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1574. package/build/umd/9302.diva-web-planner-react.umd.min.js +0 -2
  1575. package/build/umd/9302.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1576. package/build/umd/9334.diva-web-planner-react.umd.min.js +0 -2
  1577. package/build/umd/9334.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1578. package/build/umd/9336.diva-web-planner-react.umd.min.js +0 -2
  1579. package/build/umd/9336.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1580. package/build/umd/9338.diva-web-planner-react.umd.min.js +0 -2
  1581. package/build/umd/9338.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1582. package/build/umd/9383.diva-web-planner-react.umd.min.js +0 -2
  1583. package/build/umd/9383.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1584. package/build/umd/9435.diva-web-planner-react.umd.min.js +0 -2
  1585. package/build/umd/9435.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1586. package/build/umd/9459.diva-web-planner-react.umd.min.js +0 -2
  1587. package/build/umd/9459.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1588. package/build/umd/9577.diva-web-planner-react.umd.min.js +0 -2
  1589. package/build/umd/9577.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1590. package/build/umd/9645.diva-web-planner-react.umd.min.js +0 -2
  1591. package/build/umd/9645.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1592. package/build/umd/9649.diva-web-planner-react.umd.min.js +0 -2
  1593. package/build/umd/9649.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1594. package/build/umd/9666.diva-web-planner-react.umd.min.js +0 -2
  1595. package/build/umd/9666.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1596. package/build/umd/9674.diva-web-planner-react.umd.min.js +0 -2
  1597. package/build/umd/9674.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1598. package/build/umd/968.diva-web-planner-react.umd.min.js +0 -2
  1599. package/build/umd/968.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1600. package/build/umd/9680.diva-web-planner-react.umd.min.js +0 -2
  1601. package/build/umd/9680.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1602. package/build/umd/9692.diva-web-planner-react.umd.min.js +0 -2
  1603. package/build/umd/9692.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1604. package/build/umd/9761.diva-web-planner-react.umd.min.js +0 -2
  1605. package/build/umd/9761.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1606. package/build/umd/9762.diva-web-planner-react.umd.min.js +0 -2
  1607. package/build/umd/9762.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1608. package/build/umd/9770.diva-web-planner-react.umd.min.js +0 -2
  1609. package/build/umd/9770.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -1
  1610. package/build/umd/9786.diva-web-planner-react.umd.min.js +0 -2
  1611. package/build/umd/9786.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1612. package/build/umd/9787.diva-web-planner-react.umd.min.js +0 -2
  1613. package/build/umd/9787.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1614. package/build/umd/9825.diva-web-planner-react.umd.min.js +0 -2
  1615. package/build/umd/9825.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1616. package/build/umd/9898.diva-web-planner-react.umd.min.js +0 -2
  1617. package/build/umd/9898.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1618. package/build/umd/9915.diva-web-planner-react.umd.min.js +0 -2
  1619. package/build/umd/9915.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1620. package/build/umd/993.diva-web-planner-react.umd.min.js +0 -2
  1621. package/build/umd/993.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
  1622. package/build/umd/9989.diva-web-planner-react.umd.min.js +0 -2
  1623. package/build/umd/9989.diva-web-planner-react.umd.min.js.LICENSE.txt +0 -7
@@ -1,2 +0,0 @@
1
- /*! For license information please see 5310.diva-web-planner-react.umd.min.js.LICENSE.txt */
2
- (self.webpackChunkCrystaldesignDivaWebPlannerReact=self.webpackChunkCrystaldesignDivaWebPlannerReact||[]).push([[5310],{25310:(t,e,i)=>{var r,n,s,o,a,h,l,c,u,f,d,g,p,v,m,_,y,x,C,b,S,T,w=i(27538).hp,O=i(93e3),k=k||{version:"4.6.0"};if(e.fabric=k,"undefined"!=typeof document&&"undefined"!=typeof window)document instanceof("undefined"!=typeof HTMLDocument?HTMLDocument:Document)?k.document=document:k.document=document.implementation.createHTMLDocument(""),k.window=window;else{var P=new(i(41812).JSDOM)(decodeURIComponent("%3C!DOCTYPE%20html%3E%3Chtml%3E%3Chead%3E%3C%2Fhead%3E%3Cbody%3E%3C%2Fbody%3E%3C%2Fhtml%3E"),{features:{FetchExternalResources:["img"]},resources:"usable"}).window;k.document=P.document,k.jsdomImplForWrapper=i(36358).implForWrapper,k.nodeCanvas=i(61220).Canvas,k.window=P,DOMParser=k.window.DOMParser}function copyGLTo2DDrawImage(t,e){var i=t.canvas,r=e.targetCanvas,n=r.getContext("2d");n.translate(0,r.height),n.scale(1,-1);var s=i.height-r.height;n.drawImage(i,0,s,r.width,r.height,0,0,r.width,r.height)}function copyGLTo2DPutImageData(t,e){var i=e.targetCanvas.getContext("2d"),r=e.destinationWidth,n=e.destinationHeight,s=r*n*4,o=new Uint8Array(this.imageBuffer,0,s),a=new Uint8ClampedArray(this.imageBuffer,0,s);t.readPixels(0,0,r,n,t.RGBA,t.UNSIGNED_BYTE,o);var h=new ImageData(a,r,n);i.putImageData(h,0,0)}k.isTouchSupported="ontouchstart"in k.window||"ontouchstart"in k.document||k.window&&k.window.navigator&&k.window.navigator.maxTouchPoints>0,k.isLikelyNode=void 0!==w&&"undefined"==typeof window,k.SHARED_ATTRIBUTES=["display","transform","fill","fill-opacity","fill-rule","opacity","stroke","stroke-dasharray","stroke-linecap","stroke-dashoffset","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke-width","id","paint-order","vector-effect","instantiated_by_use","clip-path"],k.DPI=96,k.reNum="(?:[-+]?(?:\\d+|\\d*\\.\\d+)(?:[eE][-+]?\\d+)?)",k.commaWsp="(?:\\s+,?\\s*|,\\s*)",k.rePathCommand=/([-+]?((\d+\.\d+)|((\d+)|(\.\d+)))(?:[eE][-+]?\d+)?)/gi,k.reNonWord=/[ \n\.,;!\?\-]/,k.fontPaths={},k.iMatrix=[1,0,0,1,0,0],k.svgNS="http://www.w3.org/2000/svg",k.perfLimitSizeTotal=2097152,k.maxCacheSideLimit=4096,k.minCacheSideLimit=256,k.charWidthsCache={},k.textureSize=2048,k.disableStyleCopyPaste=!1,k.enableGLFiltering=!0,k.devicePixelRatio=k.window.devicePixelRatio||k.window.webkitDevicePixelRatio||k.window.mozDevicePixelRatio||1,k.browserShadowBlurConstant=1,k.arcToSegmentsCache={},k.boundsOfCurveCache={},k.cachesBoundsOfCurve=!0,k.forceGLPutImageData=!1,k.initFilterBackend=function(){return k.enableGLFiltering&&k.isWebglSupported&&k.isWebglSupported(k.textureSize)?(O.log("max texture size: "+k.maxTextureSize),new k.WebglFilterBackend({tileSize:k.textureSize})):k.Canvas2dFilterBackend?new k.Canvas2dFilterBackend:void 0},"undefined"!=typeof document&&"undefined"!=typeof window&&(window.fabric=k),function(){function _removeEventListener(t,e){if(this.__eventListeners[t]){var i=this.__eventListeners[t];e?i[i.indexOf(e)]=!1:k.util.array.fill(i,!1)}}function _once(t,e){var i=function(){e.apply(this,arguments),this.off(t,i)}.bind(this);this.on(t,i)}k.Observable={fire:function fire(t,e){if(!this.__eventListeners)return this;var i=this.__eventListeners[t];if(!i)return this;for(var r=0,n=i.length;r<n;r++)i[r]&&i[r].call(this,e||{});return this.__eventListeners[t]=i.filter((function(t){return!1!==t})),this},on:function on(t,e){if(this.__eventListeners||(this.__eventListeners={}),1===arguments.length)for(var i in t)this.on(i,t[i]);else this.__eventListeners[t]||(this.__eventListeners[t]=[]),this.__eventListeners[t].push(e);return this},once:function once(t,e){if(1===arguments.length)for(var i in t)_once.call(this,i,t[i]);else _once.call(this,t,e);return this},off:function off(t,e){if(!this.__eventListeners)return this;if(0===arguments.length)for(t in this.__eventListeners)_removeEventListener.call(this,t);else if(1===arguments.length&&"object"==typeof arguments[0])for(var i in t)_removeEventListener.call(this,i,t[i]);else _removeEventListener.call(this,t,e);return this}}}(),k.Collection={_objects:[],add:function(){if(this._objects.push.apply(this._objects,arguments),this._onObjectAdded)for(var t=0,e=arguments.length;t<e;t++)this._onObjectAdded(arguments[t]);return this.renderOnAddRemove&&this.requestRenderAll(),this},insertAt:function(t,e,i){var r=this._objects;return i?r[e]=t:r.splice(e,0,t),this._onObjectAdded&&this._onObjectAdded(t),this.renderOnAddRemove&&this.requestRenderAll(),this},remove:function(){for(var t,e=this._objects,i=!1,r=0,n=arguments.length;r<n;r++)-1!==(t=e.indexOf(arguments[r]))&&(i=!0,e.splice(t,1),this._onObjectRemoved&&this._onObjectRemoved(arguments[r]));return this.renderOnAddRemove&&i&&this.requestRenderAll(),this},forEachObject:function(t,e){for(var i=this.getObjects(),r=0,n=i.length;r<n;r++)t.call(e,i[r],r,i);return this},getObjects:function(t){return void 0===t?this._objects.concat():this._objects.filter((function(e){return e.type===t}))},item:function(t){return this._objects[t]},isEmpty:function(){return 0===this._objects.length},size:function(){return this._objects.length},contains:function(t,e){return this._objects.indexOf(t)>-1||!!e&&this._objects.some((function(e){return"function"==typeof e.contains&&e.contains(t,!0)}))},complexity:function(){return this._objects.reduce((function(t,e){return t+=e.complexity?e.complexity():0}),0)}},k.CommonMethods={_setOptions:function(t){for(var e in t)this.set(e,t[e])},_initGradient:function(t,e){!t||!t.colorStops||t instanceof k.Gradient||this.set(e,new k.Gradient(t))},_initPattern:function(t,e,i){!t||!t.source||t instanceof k.Pattern?i&&i():this.set(e,new k.Pattern(t,i))},_setObject:function(t){for(var e in t)this._set(e,t[e])},set:function(t,e){return"object"==typeof t?this._setObject(t):this._set(t,e),this},_set:function(t,e){this[t]=e},toggle:function(t){var e=this.get(t);return"boolean"==typeof e&&this.set(t,!e),this},get:function(t){return this[t]}},r=e,n=Math.sqrt,s=Math.atan2,o=Math.pow,a=Math.PI/180,h=Math.PI/2,k.util={cos:function(t){if(0===t)return 1;switch(t<0&&(t=-t),t/h){case 1:case 3:return 0;case 2:return-1}return Math.cos(t)},sin:function(t){if(0===t)return 0;var e=1;switch(t<0&&(e=-1),t/h){case 1:return e;case 2:return 0;case 3:return-e}return Math.sin(t)},removeFromArray:function(t,e){var i=t.indexOf(e);return-1!==i&&t.splice(i,1),t},getRandomInt:function(t,e){return Math.floor(Math.random()*(e-t+1))+t},degreesToRadians:function(t){return t*a},radiansToDegrees:function(t){return t/a},rotatePoint:function(t,e,i){var r=new k.Point(t.x-e.x,t.y-e.y),n=k.util.rotateVector(r,i);return new k.Point(n.x,n.y).addEquals(e)},rotateVector:function(t,e){var i=k.util.sin(e),r=k.util.cos(e);return{x:t.x*r-t.y*i,y:t.x*i+t.y*r}},transformPoint:function(t,e,i){return i?new k.Point(e[0]*t.x+e[2]*t.y,e[1]*t.x+e[3]*t.y):new k.Point(e[0]*t.x+e[2]*t.y+e[4],e[1]*t.x+e[3]*t.y+e[5])},makeBoundingBoxFromPoints:function(t,e){if(e)for(var i=0;i<t.length;i++)t[i]=k.util.transformPoint(t[i],e);var r=[t[0].x,t[1].x,t[2].x,t[3].x],n=k.util.array.min(r),s=k.util.array.max(r)-n,o=[t[0].y,t[1].y,t[2].y,t[3].y],a=k.util.array.min(o);return{left:n,top:a,width:s,height:k.util.array.max(o)-a}},invertTransform:function(t){var e=1/(t[0]*t[3]-t[1]*t[2]),i=[e*t[3],-e*t[1],-e*t[2],e*t[0]],r=k.util.transformPoint({x:t[4],y:t[5]},i,!0);return i[4]=-r.x,i[5]=-r.y,i},toFixed:function(t,e){return parseFloat(Number(t).toFixed(e))},parseUnit:function(t,e){var i=/\D{0,2}$/.exec(t),r=parseFloat(t);switch(e||(e=k.Text.DEFAULT_SVG_FONT_SIZE),i[0]){case"mm":return r*k.DPI/25.4;case"cm":return r*k.DPI/2.54;case"in":return r*k.DPI;case"pt":return r*k.DPI/72;case"pc":return r*k.DPI/72*12;case"em":return r*e;default:return r}},falseFunction:function(){return!1},getKlass:function(t,e){return t=k.util.string.camelize(t.charAt(0).toUpperCase()+t.slice(1)),k.util.resolveNamespace(e)[t]},getSvgAttributes:function(t){var e=["instantiated_by_use","style","id","class"];switch(t){case"linearGradient":e=e.concat(["x1","y1","x2","y2","gradientUnits","gradientTransform"]);break;case"radialGradient":e=e.concat(["gradientUnits","gradientTransform","cx","cy","r","fx","fy","fr"]);break;case"stop":e=e.concat(["offset","stop-color","stop-opacity"])}return e},resolveNamespace:function(t){if(!t)return k;var e,i=t.split("."),n=i.length,s=r||k.window;for(e=0;e<n;++e)s=s[i[e]];return s},loadImage:function(t,e,i,r){if(t){var n=k.util.createImage(),onLoadCallback=function(){e&&e.call(i,n,!1),n=n.onload=n.onerror=null};n.onload=onLoadCallback,n.onerror=function(){k.log("Error loading "+n.src),e&&e.call(i,null,!0),n=n.onload=n.onerror=null},0!==t.indexOf("data")&&null!=r&&(n.crossOrigin=r),"data:image/svg"===t.substring(0,14)&&(n.onload=null,k.util.loadImageInDom(n,onLoadCallback)),n.src=t}else e&&e.call(i,t)},loadImageInDom:function(t,e){var i=k.document.createElement("div");i.style.width=i.style.height="1px",i.style.left=i.style.top="-100%",i.style.position="absolute",i.appendChild(t),k.document.querySelector("body").appendChild(i),t.onload=function(){e(),i.parentNode.removeChild(i),i=null}},enlivenObjects:function(t,e,i,r){var n=[],s=0,o=(t=t||[]).length;function onLoaded(){++s===o&&e&&e(n.filter((function(t){return t})))}o?t.forEach((function(t,e){t&&t.type?k.util.getKlass(t.type,i).fromObject(t,(function(i,s){s||(n[e]=i),r&&r(t,i,s),onLoaded()})):onLoaded()})):e&&e(n)},enlivenPatterns:function(t,e){function onLoaded(){++r===n&&e&&e(i)}var i=[],r=0,n=(t=t||[]).length;n?t.forEach((function(t,e){t&&t.source?new k.Pattern(t,(function(t){i[e]=t,onLoaded()})):(i[e]=t,onLoaded())})):e&&e(i)},groupSVGElements:function(t,e,i){var r;return t&&1===t.length?t[0]:(e&&(e.width&&e.height?e.centerPoint={x:e.width/2,y:e.height/2}:(delete e.width,delete e.height)),r=new k.Group(t,e),void 0!==i&&(r.sourcePath=i),r)},populateWithProperties:function(t,e,i){if(i&&"[object Array]"===Object.prototype.toString.call(i))for(var r=0,n=i.length;r<n;r++)i[r]in t&&(e[i[r]]=t[i[r]])},drawDashedLine:function(t,e,i,r,o,a){var h=r-e,l=o-i,c=n(h*h+l*l),u=s(l,h),f=a.length,d=0,g=!0;for(t.save(),t.translate(e,i),t.moveTo(0,0),t.rotate(u),e=0;c>e;)(e+=a[d++%f])>c&&(e=c),t[g?"lineTo":"moveTo"](e,0),g=!g;t.restore()},createCanvasElement:function(){return k.document.createElement("canvas")},copyCanvasElement:function(t){var e=k.util.createCanvasElement();return e.width=t.width,e.height=t.height,e.getContext("2d").drawImage(t,0,0),e},toDataURL:function(t,e,i){return t.toDataURL("image/"+e,i)},createImage:function(){return k.document.createElement("img")},multiplyTransformMatrices:function(t,e,i){return[t[0]*e[0]+t[2]*e[1],t[1]*e[0]+t[3]*e[1],t[0]*e[2]+t[2]*e[3],t[1]*e[2]+t[3]*e[3],i?0:t[0]*e[4]+t[2]*e[5]+t[4],i?0:t[1]*e[4]+t[3]*e[5]+t[5]]},qrDecompose:function(t){var e=s(t[1],t[0]),i=o(t[0],2)+o(t[1],2),r=n(i),h=(t[0]*t[3]-t[2]*t[1])/r,l=s(t[0]*t[2]+t[1]*t[3],i);return{angle:e/a,scaleX:r,scaleY:h,skewX:l/a,skewY:0,translateX:t[4],translateY:t[5]}},calcRotateMatrix:function(t){if(!t.angle)return k.iMatrix.concat();var e=k.util.degreesToRadians(t.angle),i=k.util.cos(e),r=k.util.sin(e);return[i,r,-r,i,0,0]},calcDimensionsMatrix:function(t){var e=void 0===t.scaleX?1:t.scaleX,i=void 0===t.scaleY?1:t.scaleY,r=[t.flipX?-e:e,0,0,t.flipY?-i:i,0,0],n=k.util.multiplyTransformMatrices,s=k.util.degreesToRadians;return t.skewX&&(r=n(r,[1,0,Math.tan(s(t.skewX)),1],!0)),t.skewY&&(r=n(r,[1,Math.tan(s(t.skewY)),0,1],!0)),r},composeMatrix:function(t){var e=[1,0,0,1,t.translateX||0,t.translateY||0],i=k.util.multiplyTransformMatrices;return t.angle&&(e=i(e,k.util.calcRotateMatrix(t))),(1!==t.scaleX||1!==t.scaleY||t.skewX||t.skewY||t.flipX||t.flipY)&&(e=i(e,k.util.calcDimensionsMatrix(t))),e},resetObjectTransform:function(t){t.scaleX=1,t.scaleY=1,t.skewX=0,t.skewY=0,t.flipX=!1,t.flipY=!1,t.rotate(0)},saveObjectTransform:function(t){return{scaleX:t.scaleX,scaleY:t.scaleY,skewX:t.skewX,skewY:t.skewY,angle:t.angle,left:t.left,flipX:t.flipX,flipY:t.flipY,top:t.top}},isTransparent:function(t,e,i,r){r>0&&(e>r?e-=r:e=0,i>r?i-=r:i=0);var n,s=!0,o=t.getImageData(e,i,2*r||1,2*r||1),a=o.data.length;for(n=3;n<a&&!1!=(s=o.data[n]<=0);n+=4);return o=null,s},parsePreserveAspectRatioAttribute:function(t){var e,i="meet",r=t.split(" ");return r&&r.length&&("meet"!==(i=r.pop())&&"slice"!==i?(e=i,i="meet"):r.length&&(e=r.pop())),{meetOrSlice:i,alignX:"none"!==e?e.slice(1,4):"none",alignY:"none"!==e?e.slice(5,8):"none"}},clearFabricFontCache:function(t){(t=(t||"").toLowerCase())?k.charWidthsCache[t]&&delete k.charWidthsCache[t]:k.charWidthsCache={}},limitDimsByArea:function(t,e){var i=Math.sqrt(e*t),r=Math.floor(e/i);return{x:Math.floor(i),y:r}},capValue:function(t,e,i){return Math.max(t,Math.min(e,i))},findScaleToFit:function(t,e){return Math.min(e.width/t.width,e.height/t.height)},findScaleToCover:function(t,e){return Math.max(e.width/t.width,e.height/t.height)},matrixToSVG:function(t){return"matrix("+t.map((function(t){return k.util.toFixed(t,k.Object.NUM_FRACTION_DIGITS)})).join(" ")+")"},removeTransformFromObject:function(t,e){var i=k.util.invertTransform(e),r=k.util.multiplyTransformMatrices(i,t.calcOwnMatrix());k.util.applyTransformToObject(t,r)},addTransformToObject:function(t,e){k.util.applyTransformToObject(t,k.util.multiplyTransformMatrices(e,t.calcOwnMatrix()))},applyTransformToObject:function(t,e){var i=k.util.qrDecompose(e),r=new k.Point(i.translateX,i.translateY);t.flipX=!1,t.flipY=!1,t.set("scaleX",i.scaleX),t.set("scaleY",i.scaleY),t.skewX=i.skewX,t.skewY=i.skewY,t.angle=i.angle,t.setPositionByOrigin(r,"center","center")},sizeAfterTransform:function(t,e,i){var r=t/2,n=e/2,s=[{x:-r,y:-n},{x:r,y:-n},{x:-r,y:n},{x:r,y:n}],o=k.util.calcDimensionsMatrix(i),a=k.util.makeBoundingBoxFromPoints(s,o);return{x:a.width,y:a.height}}},function(){var t=Array.prototype.join,e={m:2,l:2,h:1,v:1,c:6,s:4,q:4,t:2,a:7},i={m:"l",M:"L"};function segmentToBezier(t,e,i,r,n,s,o,a,h,l,c){var u=k.util.cos(t),f=k.util.sin(t),d=k.util.cos(e),g=k.util.sin(e),p=i*n*d-r*s*g+o,v=r*n*d+i*s*g+a;return["C",l+h*(-i*n*f-r*s*u),c+h*(-r*n*f+i*s*u),p+h*(i*n*g+r*s*d),v+h*(r*n*g-i*s*d),p,v]}function arcToSegments(t,e,i,r,n,s,o){var a=Math.PI,h=o*a/180,l=k.util.sin(h),c=k.util.cos(h),u=0,f=0,d=-c*t*.5-l*e*.5,g=-c*e*.5+l*t*.5,p=(i=Math.abs(i))*i,v=(r=Math.abs(r))*r,m=g*g,_=d*d,y=p*v-p*m-v*_,x=0;if(y<0){var C=Math.sqrt(1-y/(p*v));i*=C,r*=C}else x=(n===s?-1:1)*Math.sqrt(y/(p*m+v*_));var b=x*i*g/r,S=-x*r*d/i,T=c*b-l*S+.5*t,w=l*b+c*S+.5*e,O=calcVectorAngle(1,0,(d-b)/i,(g-S)/r),P=calcVectorAngle((d-b)/i,(g-S)/r,(-d-b)/i,(-g-S)/r);0===s&&P>0?P-=2*a:1===s&&P<0&&(P+=2*a);for(var E=Math.ceil(Math.abs(P/a*2)),D=[],A=P/E,j=8/3*Math.sin(A/4)*Math.sin(A/4)/Math.sin(A/2),M=O+A,F=0;F<E;F++)D[F]=segmentToBezier(O,M,c,l,i,r,T,w,j,u,f),u=D[F][5],f=D[F][6],O=M,M+=A;return D}function calcVectorAngle(t,e,i,r){var n=Math.atan2(e,t),s=Math.atan2(r,i);return s>=n?s-n:2*Math.PI-(n-s)}function getBoundsOfCurve(e,i,r,n,s,o,a,h){var l;if(k.cachesBoundsOfCurve&&(l=t.call(arguments),k.boundsOfCurveCache[l]))return k.boundsOfCurveCache[l];var c,u,f,d,g,p,v,m,_=Math.sqrt,y=Math.min,x=Math.max,C=Math.abs,b=[],S=[[],[]];u=6*e-12*r+6*s,c=-3*e+9*r-9*s+3*a,f=3*r-3*e;for(var T=0;T<2;++T)if(T>0&&(u=6*i-12*n+6*o,c=-3*i+9*n-9*o+3*h,f=3*n-3*i),C(c)<1e-12){if(C(u)<1e-12)continue;0<(d=-f/u)&&d<1&&b.push(d)}else(v=u*u-4*f*c)<0||(0<(g=(-u+(m=_(v)))/(2*c))&&g<1&&b.push(g),0<(p=(-u-m)/(2*c))&&p<1&&b.push(p));for(var w,O,P,E=b.length,D=E;E--;)w=(P=1-(d=b[E]))*P*P*e+3*P*P*d*r+3*P*d*d*s+d*d*d*a,S[0][E]=w,O=P*P*P*i+3*P*P*d*n+3*P*d*d*o+d*d*d*h,S[1][E]=O;S[0][D]=e,S[1][D]=i,S[0][D+1]=a,S[1][D+1]=h;var A=[{x:y.apply(null,S[0]),y:y.apply(null,S[1])},{x:x.apply(null,S[0]),y:x.apply(null,S[1])}];return k.cachesBoundsOfCurve&&(k.boundsOfCurveCache[l]=A),A}function fromArcToBeziers(t,e,i){for(var r=i[1],n=i[2],s=i[3],o=i[4],a=i[5],h=arcToSegments(i[6]-t,i[7]-e,r,n,o,a,s),l=0,c=h.length;l<c;l++)h[l][1]+=t,h[l][2]+=e,h[l][3]+=t,h[l][4]+=e,h[l][5]+=t,h[l][6]+=e;return h}function calcLineLength(t,e,i,r){return Math.sqrt((i-t)*(i-t)+(r-e)*(r-e))}function getPointOnCubicBezierIterator(t,e,i,r,n,s,o,a){return function(h){var l=function CB1(t){return t*t*t}(h),c=function CB2(t){return 3*t*t*(1-t)}(h),u=function CB3(t){return 3*t*(1-t)*(1-t)}(h),f=function CB4(t){return(1-t)*(1-t)*(1-t)}(h);return{x:o*l+n*c+i*u+t*f,y:a*l+s*c+r*u+e*f}}}function getTangentCubicIterator(t,e,i,r,n,s,o,a){return function(h){var l=1-h,c=3*l*l*(i-t)+6*l*h*(n-i)+3*h*h*(o-n),u=3*l*l*(r-e)+6*l*h*(s-r)+3*h*h*(a-s);return Math.atan2(u,c)}}function getPointOnQuadraticBezierIterator(t,e,i,r,n,s){return function(o){var a=function QB1(t){return t*t}(o),h=function QB2(t){return 2*t*(1-t)}(o),l=function QB3(t){return(1-t)*(1-t)}(o);return{x:n*a+i*h+t*l,y:s*a+r*h+e*l}}}function getTangentQuadraticIterator(t,e,i,r,n,s){return function(o){var a=1-o,h=2*a*(i-t)+2*o*(n-i),l=2*a*(r-e)+2*o*(s-r);return Math.atan2(l,h)}}function pathIterator(t,e,i){var r,n,s={x:e,y:i},o=0;for(n=1;n<=100;n+=1)r=t(n/100),o+=calcLineLength(s.x,s.y,r.x,r.y),s=r;return o}function findPercentageForDistance(t,e){for(var i,r,n,s=0,o=0,a=t.iterator,h={x:t.x,y:t.y},l=.01,c=t.angleFinder;o<e&&s<=1&&l>1e-4;)i=a(s),n=s,(r=calcLineLength(h.x,h.y,i.x,i.y))+o>e?s-=l/=2:(h=i,s+=l,o+=r);return i.angle=c(n),i}function getPathSegmentsInfo(t){for(var e,i,r,n,s=0,o=t.length,a=0,h=0,l=0,c=0,u=[],f=0;f<o;f++){switch(r={x:a,y:h,command:(e=t[f])[0]},e[0]){case"M":r.length=0,l=a=e[1],c=h=e[2];break;case"L":r.length=calcLineLength(a,h,e[1],e[2]),a=e[1],h=e[2];break;case"C":i=getPointOnCubicBezierIterator(a,h,e[1],e[2],e[3],e[4],e[5],e[6]),n=getTangentCubicIterator(a,h,e[1],e[2],e[3],e[4],e[5],e[6]),r.iterator=i,r.angleFinder=n,r.length=pathIterator(i,a,h),a=e[5],h=e[6];break;case"Q":i=getPointOnQuadraticBezierIterator(a,h,e[1],e[2],e[3],e[4]),n=getTangentQuadraticIterator(a,h,e[1],e[2],e[3],e[4]),r.iterator=i,r.angleFinder=n,r.length=pathIterator(i,a,h),a=e[3],h=e[4];break;case"Z":case"z":r.destX=l,r.destY=c,r.length=calcLineLength(a,h,l,c),a=l,h=c}s+=r.length,u.push(r)}return u.push({length:s,x:a,y:h}),u}k.util.joinPath=function(t){return t.map((function(t){return t.join(" ")})).join(" ")},k.util.parsePath=function parsePath(t){var r,n,s,o,a,h=[],l=[],c=k.rePathCommand,u="[-+]?(?:\\d*\\.\\d+|\\d+\\.?)(?:[eE][-+]?\\d+)?\\s*",f="("+u+")"+k.commaWsp,d="([01])"+k.commaWsp+"?",g=new RegExp(f+"?"+f+"?"+f+d+d+f+"?("+u+")","g");if(!t||!t.match)return h;for(var p,v=0,m=(a=t.match(/[mzlhvcsqta][^mzlhvcsqta]*/gi)).length;v<m;v++){o=(r=a[v]).slice(1).trim(),l.length=0;var _=r.charAt(0);if(p=[_],"a"===_.toLowerCase())for(var y;y=g.exec(o);)for(var x=1;x<y.length;x++)l.push(y[x]);else for(;s=c.exec(o);)l.push(s[0]);x=0;for(var C=l.length;x<C;x++)n=parseFloat(l[x]),isNaN(n)||p.push(n);var b=e[_.toLowerCase()],S=i[_]||_;if(p.length-1>b)for(var T=1,w=p.length;T<w;T+=b)h.push([_].concat(p.slice(T,T+b))),_=S;else h.push(p)}return h},k.util.makePathSimpler=function makePathSimpler(t){var e,i,r,n,s,o,a=0,h=0,l=t.length,c=0,u=0,f=[];for(i=0;i<l;++i){switch(r=!1,(e=t[i].slice(0))[0]){case"l":e[0]="L",e[1]+=a,e[2]+=h;case"L":a=e[1],h=e[2];break;case"h":e[1]+=a;case"H":e[0]="L",e[2]=h,a=e[1];break;case"v":e[1]+=h;case"V":e[0]="L",h=e[1],e[1]=a,e[2]=h;break;case"m":e[0]="M",e[1]+=a,e[2]+=h;case"M":a=e[1],h=e[2],c=e[1],u=e[2];break;case"c":e[0]="C",e[1]+=a,e[2]+=h,e[3]+=a,e[4]+=h,e[5]+=a,e[6]+=h;case"C":s=e[3],o=e[4],a=e[5],h=e[6];break;case"s":e[0]="S",e[1]+=a,e[2]+=h,e[3]+=a,e[4]+=h;case"S":"C"===n?(s=2*a-s,o=2*h-o):(s=a,o=h),a=e[3],h=e[4],e[0]="C",e[5]=e[3],e[6]=e[4],e[3]=e[1],e[4]=e[2],e[1]=s,e[2]=o,s=e[3],o=e[4];break;case"q":e[0]="Q",e[1]+=a,e[2]+=h,e[3]+=a,e[4]+=h;case"Q":s=e[1],o=e[2],a=e[3],h=e[4];break;case"t":e[0]="T",e[1]+=a,e[2]+=h;case"T":"Q"===n?(s=2*a-s,o=2*h-o):(s=a,o=h),e[0]="Q",a=e[1],h=e[2],e[1]=s,e[2]=o,e[3]=a,e[4]=h;break;case"a":e[0]="A",e[6]+=a,e[7]+=h;case"A":r=!0,f=f.concat(fromArcToBeziers(a,h,e)),a=e[6],h=e[7];break;case"z":case"Z":a=c,h=u}r||f.push(e),n=e[0]}return f},k.util.getSmoothPathFromPoints=function getSmoothPathFromPoints(t,e){var i,r=[],n=new k.Point(t[0].x,t[0].y),s=new k.Point(t[1].x,t[1].y),o=t.length,a=1,h=0,l=o>2;for(e=e||0,l&&(a=t[2].x<s.x?-1:t[2].x===s.x?0:1,h=t[2].y<s.y?-1:t[2].y===s.y?0:1),r.push(["M",n.x-a*e,n.y-h*e]),i=1;i<o;i++){if(!n.eq(s)){var c=n.midPointFrom(s);r.push(["Q",n.x,n.y,c.x,c.y])}n=t[i],i+1<t.length&&(s=t[i+1])}return l&&(a=n.x>t[i-2].x?1:n.x===t[i-2].x?0:-1,h=n.y>t[i-2].y?1:n.y===t[i-2].y?0:-1),r.push(["L",n.x+a*e,n.y+h*e]),r},k.util.getPathSegmentsInfo=getPathSegmentsInfo,k.util.getBoundsOfCurve=getBoundsOfCurve,k.util.getPointOnPath=function getPointOnPath(t,e,i){i||(i=getPathSegmentsInfo(t));for(var r=0;e-i[r].length>0&&r<i.length-2;)e-=i[r].length,r++;var n,s=i[r],o=e/s.length,a=s.command,h=t[r];switch(a){case"M":return{x:s.x,y:s.y,angle:0};case"Z":case"z":return(n=new k.Point(s.x,s.y).lerp(new k.Point(s.destX,s.destY),o)).angle=Math.atan2(s.destY-s.y,s.destX-s.x),n;case"L":return(n=new k.Point(s.x,s.y).lerp(new k.Point(h[1],h[2]),o)).angle=Math.atan2(h[2]-s.y,h[1]-s.x),n;case"C":case"Q":return findPercentageForDistance(s,e)}},k.util.transformPath=function transformPath(t,e,i){return i&&(e=k.util.multiplyTransformMatrices(e,[1,0,0,1,-i.x,-i.y])),t.map((function(t){for(var i=t.slice(0),r={},n=1;n<t.length-1;n+=2)r.x=t[n],r.y=t[n+1],r=k.util.transformPoint(r,e),i[n]=r.x,i[n+1]=r.y;return i}))},k.util.fromArcToBeizers=fromArcToBeziers,k.util.getBoundsOfArc=function getBoundsOfArc(t,e,i,r,n,s,o,a,h){for(var l,c=0,u=0,f=[],d=arcToSegments(a-t,h-e,i,r,s,o,n),g=0,p=d.length;g<p;g++)l=getBoundsOfCurve(c,u,d[g][1],d[g][2],d[g][3],d[g][4],d[g][5],d[g][6]),f.push({x:l[0].x+t,y:l[0].y+e}),f.push({x:l[1].x+t,y:l[1].y+e}),c=d[g][5],u=d[g][6];return f},k.util.drawArc=function drawArc(t,e,i,r){fromArcToBeziers(e,i,r=r.slice(0).unshift("X")).forEach((function(e){t.bezierCurveTo.apply(t,e.slice(1))}))}}(),function(){var t=Array.prototype.slice;function find(t,e,i){if(t&&0!==t.length){var r=t.length-1,n=e?t[r][e]:t[r];if(e)for(;r--;)i(t[r][e],n)&&(n=t[r][e]);else for(;r--;)i(t[r],n)&&(n=t[r]);return n}}k.util.array={fill:function fill(t,e){for(var i=t.length;i--;)t[i]=e;return t},invoke:function invoke(e,i){for(var r=t.call(arguments,2),n=[],s=0,o=e.length;s<o;s++)n[s]=r.length?e[s][i].apply(e[s],r):e[s][i].call(e[s]);return n},min:function min(t,e){return find(t,e,(function(t,e){return t<e}))},max:function max(t,e){return find(t,e,(function(t,e){return t>=e}))}}}(),function(){function extend(t,e,i){if(i)if(!k.isLikelyNode&&e instanceof Element)t=e;else if(e instanceof Array){t=[];for(var r=0,n=e.length;r<n;r++)t[r]=extend({},e[r],i)}else if(e&&"object"==typeof e)for(var s in e)"canvas"===s||"group"===s?t[s]=null:e.hasOwnProperty(s)&&(t[s]=extend({},e[s],i));else t=e;else for(var s in e)t[s]=e[s];return t}k.util.object={extend,clone:function clone(t,e){return extend({},t,e)}},k.util.object.extend(k.util,k.Observable)}(),function(){function getWholeChar(t,e){var i=t.charCodeAt(e);if(isNaN(i))return"";if(i<55296||i>57343)return t.charAt(e);if(55296<=i&&i<=56319){if(t.length<=e+1)throw"High surrogate without following low surrogate";var r=t.charCodeAt(e+1);if(56320>r||r>57343)throw"High surrogate without following low surrogate";return t.charAt(e)+t.charAt(e+1)}if(0===e)throw"Low surrogate without preceding high surrogate";var n=t.charCodeAt(e-1);if(55296>n||n>56319)throw"Low surrogate without preceding high surrogate";return!1}k.util.string={camelize:function camelize(t){return t.replace(/-+(.)?/g,(function(t,e){return e?e.toUpperCase():""}))},capitalize:function capitalize(t,e){return t.charAt(0).toUpperCase()+(e?t.slice(1):t.slice(1).toLowerCase())},escapeXml:function escapeXml(t){return t.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/'/g,"&apos;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},graphemeSplit:function graphemeSplit(t){var e,i=0,r=[];for(i=0;i<t.length;i++)!1!==(e=getWholeChar(t,i))&&r.push(e);return r}}}(),function(){var t=Array.prototype.slice,emptyFunction=function(){},e=function(){for(var t in{toString:1})if("toString"===t)return!1;return!0}(),addMethods=function(t,i,r){for(var n in i)n in t.prototype&&"function"==typeof t.prototype[n]&&(i[n]+"").indexOf("callSuper")>-1?t.prototype[n]=function(t){return function(){var e=this.constructor.superclass;this.constructor.superclass=r;var n=i[t].apply(this,arguments);if(this.constructor.superclass=e,"initialize"!==t)return n}}(n):t.prototype[n]=i[n],e&&(i.toString!==Object.prototype.toString&&(t.prototype.toString=i.toString),i.valueOf!==Object.prototype.valueOf&&(t.prototype.valueOf=i.valueOf))};function Subclass(){}function callSuper(e){for(var i=null,r=this;r.constructor.superclass;){var n=r.constructor.superclass.prototype[e];if(r[e]!==n){i=n;break}r=r.constructor.superclass.prototype}return i?arguments.length>1?i.apply(this,t.call(arguments,1)):i.call(this):O.log("tried to callSuper "+e+", method not found in prototype chain",this)}k.util.createClass=function createClass(){var e=null,i=t.call(arguments,0);function klass(){this.initialize.apply(this,arguments)}"function"==typeof i[0]&&(e=i.shift()),klass.superclass=e,klass.subclasses=[],e&&(Subclass.prototype=e.prototype,klass.prototype=new Subclass,e.subclasses.push(klass));for(var r=0,n=i.length;r<n;r++)addMethods(klass,i[r],e);return klass.prototype.initialize||(klass.prototype.initialize=emptyFunction),klass.prototype.constructor=klass,klass.prototype.callSuper=callSuper,klass}}(),l=!!k.document.createElement("div").attachEvent,c=["touchstart","touchmove","touchend"],k.util.addListener=function(t,e,i,r){t&&t.addEventListener(e,i,!l&&r)},k.util.removeListener=function(t,e,i,r){t&&t.removeEventListener(e,i,!l&&r)},k.util.getPointer=function(t){var e=t.target,i=k.util.getScrollLeftTop(e),r=function getTouchInfo(t){var e=t.changedTouches;return e&&e[0]?e[0]:t}(t);return{x:r.clientX+i.left,y:r.clientY+i.top}},k.util.isTouchEvent=function(t){return c.indexOf(t.type)>-1||"touch"===t.pointerType},u=k.document.createElement("div"),f="string"==typeof u.style.opacity,d="string"==typeof u.style.filter,g=/alpha\s*\(\s*opacity\s*=\s*([^\)]+)\)/,p=function(t){return t},f?p=function(t,e){return t.style.opacity=e,t}:d&&(p=function(t,e){var i=t.style;return t.currentStyle&&!t.currentStyle.hasLayout&&(i.zoom=1),g.test(i.filter)?(e=e>=.9999?"":"alpha(opacity="+100*e+")",i.filter=i.filter.replace(g,e)):i.filter+=" alpha(opacity="+100*e+")",t}),k.util.setStyle=function setStyle(t,e){var i=t.style;if(!i)return t;if("string"==typeof e)return t.style.cssText+=";"+e,e.indexOf("opacity")>-1?p(t,e.match(/opacity:\s*(\d?\.?\d*)/)[1]):t;for(var r in e)"opacity"===r?p(t,e[r]):i["float"===r||"cssFloat"===r?void 0===i.styleFloat?"cssFloat":"styleFloat":r]=e[r];return t},function(){var t=Array.prototype.slice;var e,i,r,n,toArray=function(e){return t.call(e,0)};try{e=toArray(k.document.childNodes)instanceof Array}catch(t){}function makeElement(t,e){var i=k.document.createElement(t);for(var r in e)"class"===r?i.className=e[r]:"for"===r?i.htmlFor=e[r]:i.setAttribute(r,e[r]);return i}function getScrollLeftTop(t){for(var e=0,i=0,r=k.document.documentElement,n=k.document.body||{scrollLeft:0,scrollTop:0};t&&(t.parentNode||t.host)&&((t=t.parentNode||t.host)===k.document?(e=n.scrollLeft||r.scrollLeft||0,i=n.scrollTop||r.scrollTop||0):(e+=t.scrollLeft||0,i+=t.scrollTop||0),1!==t.nodeType||"fixed"!==t.style.position););return{left:e,top:i}}e||(toArray=function(t){for(var e=new Array(t.length),i=t.length;i--;)e[i]=t[i];return e}),i=k.document.defaultView&&k.document.defaultView.getComputedStyle?function(t,e){var i=k.document.defaultView.getComputedStyle(t,null);return i?i[e]:void 0}:function(t,e){var i=t.style[e];return!i&&t.currentStyle&&(i=t.currentStyle[e]),i},r=k.document.documentElement.style,n="userSelect"in r?"userSelect":"MozUserSelect"in r?"MozUserSelect":"WebkitUserSelect"in r?"WebkitUserSelect":"KhtmlUserSelect"in r?"KhtmlUserSelect":"",k.util.makeElementUnselectable=function makeElementUnselectable(t){return void 0!==t.onselectstart&&(t.onselectstart=k.util.falseFunction),n?t.style[n]="none":"string"==typeof t.unselectable&&(t.unselectable="on"),t},k.util.makeElementSelectable=function makeElementSelectable(t){return void 0!==t.onselectstart&&(t.onselectstart=null),n?t.style[n]="":"string"==typeof t.unselectable&&(t.unselectable=""),t},k.util.setImageSmoothing=function setImageSmoothing(t,e){t.imageSmoothingEnabled=t.imageSmoothingEnabled||t.webkitImageSmoothingEnabled||t.mozImageSmoothingEnabled||t.msImageSmoothingEnabled||t.oImageSmoothingEnabled,t.imageSmoothingEnabled=e},k.util.getById=function getById(t){return"string"==typeof t?k.document.getElementById(t):t},k.util.toArray=toArray,k.util.addClass=function addClass(t,e){t&&-1===(" "+t.className+" ").indexOf(" "+e+" ")&&(t.className+=(t.className?" ":"")+e)},k.util.makeElement=makeElement,k.util.wrapElement=function wrapElement(t,e,i){return"string"==typeof e&&(e=makeElement(e,i)),t.parentNode&&t.parentNode.replaceChild(e,t),e.appendChild(t),e},k.util.getScrollLeftTop=getScrollLeftTop,k.util.getElementOffset=function getElementOffset(t){var e,r,n=t&&t.ownerDocument,s={left:0,top:0},o={left:0,top:0},a={borderLeftWidth:"left",borderTopWidth:"top",paddingLeft:"left",paddingTop:"top"};if(!n)return o;for(var h in a)o[a[h]]+=parseInt(i(t,h),10)||0;return e=n.documentElement,void 0!==t.getBoundingClientRect&&(s=t.getBoundingClientRect()),r=getScrollLeftTop(t),{left:s.left+r.left-(e.clientLeft||0)+o.left,top:s.top+r.top-(e.clientTop||0)+o.top}},k.util.getNodeCanvas=function getNodeCanvas(t){var e=k.jsdomImplForWrapper(t);return e._canvas||e._image},k.util.cleanUpJsdomNode=function cleanUpJsdomNode(t){if(k.isLikelyNode){var e=k.jsdomImplForWrapper(t);e&&(e._image=null,e._canvas=null,e._currentSrc=null,e._attributes=null,e._classList=null)}}}(),function(){function emptyFn(){}k.util.request=function request(t,e){e||(e={});var i=e.method?e.method.toUpperCase():"GET",r=e.onComplete||function(){},n=new k.window.XMLHttpRequest,s=e.body||e.parameters;return n.onreadystatechange=function(){4===n.readyState&&(r(n),n.onreadystatechange=emptyFn)},"GET"===i&&(s=null,"string"==typeof e.parameters&&(t=function addParamToUrl(t,e){return t+(/\?/.test(t)?"&":"?")+e}(t,e.parameters))),n.open(i,t,!0),"POST"!==i&&"PUT"!==i||n.setRequestHeader("Content-Type","application/x-www-form-urlencoded"),n.send(s),n}}(),k.log=O.log,k.warn=O.warn,function(){function noop(){return!1}function defaultEasing(t,e,i,r){return-i*Math.cos(t/r*(Math.PI/2))+i+e}var t=k.window.requestAnimationFrame||k.window.webkitRequestAnimationFrame||k.window.mozRequestAnimationFrame||k.window.oRequestAnimationFrame||k.window.msRequestAnimationFrame||function(t){return k.window.setTimeout(t,1e3/60)},e=k.window.cancelAnimationFrame||k.window.clearTimeout;function requestAnimFrame(){return t.apply(k.window,arguments)}k.util.animate=function animate(t){var e=!1;return requestAnimFrame((function(i){t||(t={});var r,n=i||+new Date,s=t.duration||500,o=n+s,a=t.onChange||noop,h=t.abort||noop,l=t.onComplete||noop,c=t.easing||defaultEasing,u="startValue"in t?t.startValue:0,f="endValue"in t?t.endValue:100,d=t.byValue||f-u;t.onStart&&t.onStart(),function tick(t){var i=(r=t||+new Date)>o?s:r-n,g=i/s,p=c(i,u,d,s),v=Math.abs((p-u)/d);if(!e){if(!h(p,v,g))return r>o?(a(f,1,1),void l(f,1,1)):(a(p,v,g),void requestAnimFrame(tick));l(f,1,1)}}(n)})),function(){e=!0}},k.util.requestAnimFrame=requestAnimFrame,k.util.cancelAnimFrame=function cancelAnimFrame(){return e.apply(k.window,arguments)}}(),function(){function calculateColor(t,e,i){var r="rgba("+parseInt(t[0]+i*(e[0]-t[0]),10)+","+parseInt(t[1]+i*(e[1]-t[1]),10)+","+parseInt(t[2]+i*(e[2]-t[2]),10);return r+=","+(t&&e?parseFloat(t[3]+i*(e[3]-t[3])):1),r+=")"}k.util.animateColor=function animateColor(t,e,i,r){var n=new k.Color(t).getSource(),s=new k.Color(e).getSource(),o=r.onComplete,a=r.onChange;return r=r||{},k.util.animate(k.util.object.extend(r,{duration:i||500,startValue:n,endValue:s,byValue:s,easing:function(t,e,i,n){return calculateColor(e,i,r.colorEasing?r.colorEasing(t,n):1-Math.cos(t/n*(Math.PI/2)))},onComplete:function(t,e,i){if(o)return o(calculateColor(s,s,0),e,i)},onChange:function(t,e,i){if(a){if(Array.isArray(t))return a(calculateColor(t,t,0),e,i);a(t,e,i)}}}))}}(),function(){function normalize(t,e,i,r){return t<Math.abs(e)?(t=e,r=i/4):r=0===e&&0===t?i/(2*Math.PI)*Math.asin(1):i/(2*Math.PI)*Math.asin(e/t),{a:t,c:e,p:i,s:r}}function elastic(t,e,i){return t.a*Math.pow(2,10*(e-=1))*Math.sin((e*i-t.s)*(2*Math.PI)/t.p)}function easeInBounce(t,e,i,r){return i-easeOutBounce(r-t,0,i,r)+e}function easeOutBounce(t,e,i,r){return(t/=r)<1/2.75?i*(7.5625*t*t)+e:t<2/2.75?i*(7.5625*(t-=1.5/2.75)*t+.75)+e:t<2.5/2.75?i*(7.5625*(t-=2.25/2.75)*t+.9375)+e:i*(7.5625*(t-=2.625/2.75)*t+.984375)+e}k.util.ease={easeInQuad:function(t,e,i,r){return i*(t/=r)*t+e},easeOutQuad:function(t,e,i,r){return-i*(t/=r)*(t-2)+e},easeInOutQuad:function(t,e,i,r){return(t/=r/2)<1?i/2*t*t+e:-i/2*(--t*(t-2)-1)+e},easeInCubic:function(t,e,i,r){return i*(t/=r)*t*t+e},easeOutCubic:function easeOutCubic(t,e,i,r){return i*((t=t/r-1)*t*t+1)+e},easeInOutCubic:function easeInOutCubic(t,e,i,r){return(t/=r/2)<1?i/2*t*t*t+e:i/2*((t-=2)*t*t+2)+e},easeInQuart:function easeInQuart(t,e,i,r){return i*(t/=r)*t*t*t+e},easeOutQuart:function easeOutQuart(t,e,i,r){return-i*((t=t/r-1)*t*t*t-1)+e},easeInOutQuart:function easeInOutQuart(t,e,i,r){return(t/=r/2)<1?i/2*t*t*t*t+e:-i/2*((t-=2)*t*t*t-2)+e},easeInQuint:function easeInQuint(t,e,i,r){return i*(t/=r)*t*t*t*t+e},easeOutQuint:function easeOutQuint(t,e,i,r){return i*((t=t/r-1)*t*t*t*t+1)+e},easeInOutQuint:function easeInOutQuint(t,e,i,r){return(t/=r/2)<1?i/2*t*t*t*t*t+e:i/2*((t-=2)*t*t*t*t+2)+e},easeInSine:function easeInSine(t,e,i,r){return-i*Math.cos(t/r*(Math.PI/2))+i+e},easeOutSine:function easeOutSine(t,e,i,r){return i*Math.sin(t/r*(Math.PI/2))+e},easeInOutSine:function easeInOutSine(t,e,i,r){return-i/2*(Math.cos(Math.PI*t/r)-1)+e},easeInExpo:function easeInExpo(t,e,i,r){return 0===t?e:i*Math.pow(2,10*(t/r-1))+e},easeOutExpo:function easeOutExpo(t,e,i,r){return t===r?e+i:i*(1-Math.pow(2,-10*t/r))+e},easeInOutExpo:function easeInOutExpo(t,e,i,r){return 0===t?e:t===r?e+i:(t/=r/2)<1?i/2*Math.pow(2,10*(t-1))+e:i/2*(2-Math.pow(2,-10*--t))+e},easeInCirc:function easeInCirc(t,e,i,r){return-i*(Math.sqrt(1-(t/=r)*t)-1)+e},easeOutCirc:function easeOutCirc(t,e,i,r){return i*Math.sqrt(1-(t=t/r-1)*t)+e},easeInOutCirc:function easeInOutCirc(t,e,i,r){return(t/=r/2)<1?-i/2*(Math.sqrt(1-t*t)-1)+e:i/2*(Math.sqrt(1-(t-=2)*t)+1)+e},easeInElastic:function easeInElastic(t,e,i,r){var n=0;return 0===t?e:1===(t/=r)?e+i:(n||(n=.3*r),-elastic(normalize(i,i,n,1.70158),t,r)+e)},easeOutElastic:function easeOutElastic(t,e,i,r){var n=0;if(0===t)return e;if(1===(t/=r))return e+i;n||(n=.3*r);var s=normalize(i,i,n,1.70158);return s.a*Math.pow(2,-10*t)*Math.sin((t*r-s.s)*(2*Math.PI)/s.p)+s.c+e},easeInOutElastic:function easeInOutElastic(t,e,i,r){var n=0;if(0===t)return e;if(2===(t/=r/2))return e+i;n||(n=r*(.3*1.5));var s=normalize(i,i,n,1.70158);return t<1?-.5*elastic(s,t,r)+e:s.a*Math.pow(2,-10*(t-=1))*Math.sin((t*r-s.s)*(2*Math.PI)/s.p)*.5+s.c+e},easeInBack:function easeInBack(t,e,i,r,n){return void 0===n&&(n=1.70158),i*(t/=r)*t*((n+1)*t-n)+e},easeOutBack:function easeOutBack(t,e,i,r,n){return void 0===n&&(n=1.70158),i*((t=t/r-1)*t*((n+1)*t+n)+1)+e},easeInOutBack:function easeInOutBack(t,e,i,r,n){return void 0===n&&(n=1.70158),(t/=r/2)<1?i/2*(t*t*((1+(n*=1.525))*t-n))+e:i/2*((t-=2)*t*((1+(n*=1.525))*t+n)+2)+e},easeInBounce,easeOutBounce,easeInOutBounce:function easeInOutBounce(t,e,i,r){return t<r/2?.5*easeInBounce(2*t,0,i,r)+e:.5*easeOutBounce(2*t-r,0,i,r)+.5*i+e}}}(),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n=e.util.toFixed,s=e.util.parseUnit,o=e.util.multiplyTransformMatrices,a={cx:"left",x:"left",r:"radius",cy:"top",y:"top",display:"visible",visibility:"visible",transform:"transformMatrix","fill-opacity":"fillOpacity","fill-rule":"fillRule","font-family":"fontFamily","font-size":"fontSize","font-style":"fontStyle","font-weight":"fontWeight","letter-spacing":"charSpacing","paint-order":"paintFirst","stroke-dasharray":"strokeDashArray","stroke-dashoffset":"strokeDashOffset","stroke-linecap":"strokeLineCap","stroke-linejoin":"strokeLineJoin","stroke-miterlimit":"strokeMiterLimit","stroke-opacity":"strokeOpacity","stroke-width":"strokeWidth","text-decoration":"textDecoration","text-anchor":"textAnchor",opacity:"opacity","clip-path":"clipPath","clip-rule":"clipRule","vector-effect":"strokeUniform","image-rendering":"imageSmoothing"},h={stroke:"strokeOpacity",fill:"fillOpacity"},l="font-size",c="clip-path";function normalizeAttr(t){return t in a?a[t]:t}function normalizeValue(t,i,r,n){var a,h="[object Array]"===Object.prototype.toString.call(i);if("fill"!==t&&"stroke"!==t||"none"!==i){if("strokeUniform"===t)return"non-scaling-stroke"===i;if("strokeDashArray"===t)i="none"===i?null:i.replace(/,/g," ").split(/\s+/).map(parseFloat);else if("transformMatrix"===t)i=r&&r.transformMatrix?o(r.transformMatrix,e.parseTransformAttribute(i)):e.parseTransformAttribute(i);else if("visible"===t)i="none"!==i&&"hidden"!==i,r&&!1===r.visible&&(i=!1);else if("opacity"===t)i=parseFloat(i),r&&void 0!==r.opacity&&(i*=r.opacity);else if("textAnchor"===t)i="start"===i?"left":"end"===i?"right":"center";else if("charSpacing"===t)a=s(i,n)/n*1e3;else if("paintFirst"===t){var l=i.indexOf("fill"),c=i.indexOf("stroke");i="fill";(l>-1&&c>-1&&c<l||-1===l&&c>-1)&&(i="stroke")}else{if("href"===t||"xlink:href"===t||"font"===t)return i;if("imageSmoothing"===t)return"optimizeQuality"===i;a=h?i.map(s):s(i,n)}}else i="";return!h&&isNaN(a)?i:a}function getSvgRegex(t){return new RegExp("^("+t.join("|")+")\\b","i")}function _getMultipleNodes(t,e){var i,r,n,s,o=[];for(n=0,s=e.length;n<s;n++)i=e[n],r=t.getElementsByTagName(i),o=o.concat(Array.prototype.slice.call(r));return o}function elementMatchesRule(t,e){var i,r=!0;return(i=selectorMatches(t,e.pop()))&&e.length&&(r=function doesSomeParentMatch(t,e){var i,r=!0;for(;t.parentNode&&1===t.parentNode.nodeType&&e.length;)r&&(i=e.pop()),r=selectorMatches(t=t.parentNode,i);return 0===e.length}(t,e)),i&&r&&0===e.length}function selectorMatches(t,e){var i,r,n=t.nodeName,s=t.getAttribute("class"),o=t.getAttribute("id");if(i=new RegExp("^"+n,"i"),e=e.replace(i,""),o&&e.length&&(i=new RegExp("#"+o+"(?![a-zA-Z\\-]+)","i"),e=e.replace(i,"")),s&&e.length)for(r=(s=s.split(" ")).length;r--;)i=new RegExp("\\."+s[r]+"(?![a-zA-Z\\-]+)","i"),e=e.replace(i,"");return 0===e.length}function elementById(t,e){var i;if(t.getElementById&&(i=t.getElementById(e)),i)return i;var r,n,s,o=t.getElementsByTagName("*");for(n=0,s=o.length;n<s;n++)if(e===(r=o[n]).getAttribute("id"))return r}e.svgValidTagNamesRegEx=getSvgRegex(["path","circle","polygon","polyline","ellipse","rect","line","image","text"]),e.svgViewBoxElementsRegEx=getSvgRegex(["symbol","image","marker","pattern","view","svg"]),e.svgInvalidAncestorsRegEx=getSvgRegex(["pattern","defs","symbol","metadata","clipPath","mask","desc"]),e.svgValidParentsRegEx=getSvgRegex(["symbol","g","a","svg","clipPath","defs"]),e.cssRules={},e.gradientDefs={},e.clipPaths={},e.parseTransformAttribute=function(){function skewMatrix(t,i,r){t[r]=Math.tan(e.util.degreesToRadians(i[0]))}var t=e.iMatrix,i=e.reNum,r=e.commaWsp,n="(?:"+("(?:(matrix)\\s*\\(\\s*("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")"+r+"("+i+")\\s*\\))")+"|"+("(?:(translate)\\s*\\(\\s*("+i+")(?:"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(scale)\\s*\\(\\s*("+i+")(?:"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(rotate)\\s*\\(\\s*("+i+")(?:"+r+"("+i+")"+r+"("+i+"))?\\s*\\))")+"|"+("(?:(skewX)\\s*\\(\\s*("+i+")\\s*\\))")+"|"+("(?:(skewY)\\s*\\(\\s*("+i+")\\s*\\))")+")",s=new RegExp("^\\s*(?:"+("(?:"+n+"(?:"+r+"*"+n+")*)")+"?)\\s*$"),o=new RegExp(n,"g");return function(i){var r=t.concat(),a=[];if(!i||i&&!s.test(i))return r;i.replace(o,(function(i){var s=new RegExp(n).exec(i).filter((function(t){return!!t})),o=s[1],h=s.slice(2).map(parseFloat);switch(o){case"translate":!function translateMatrix(t,e){t[4]=e[0],2===e.length&&(t[5]=e[1])}(r,h);break;case"rotate":h[0]=e.util.degreesToRadians(h[0]),function rotateMatrix(t,i){var r=e.util.cos(i[0]),n=e.util.sin(i[0]),s=0,o=0;3===i.length&&(s=i[1],o=i[2]),t[0]=r,t[1]=n,t[2]=-n,t[3]=r,t[4]=s-(r*s-n*o),t[5]=o-(n*s+r*o)}(r,h);break;case"scale":!function scaleMatrix(t,e){var i=e[0],r=2===e.length?e[1]:e[0];t[0]=i,t[3]=r}(r,h);break;case"skewX":skewMatrix(r,h,2);break;case"skewY":skewMatrix(r,h,1);break;case"matrix":r=h}a.push(r.concat()),r=t.concat()}));for(var h=a[0];a.length>1;)a.shift(),h=e.util.multiplyTransformMatrices(h,a[0]);return h}}();var u=new RegExp("^\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*,?\\s*("+e.reNum+"+)\\s*$");function applyViewboxTransform(t){if(!e.svgViewBoxElementsRegEx.test(t.nodeName))return{};var i,r,n,o,a,h,l=t.getAttribute("viewBox"),c=1,f=1,d=t.getAttribute("width"),g=t.getAttribute("height"),p=t.getAttribute("x")||0,v=t.getAttribute("y")||0,m=t.getAttribute("preserveAspectRatio")||"",_=!l||!(l=l.match(u)),y=!d||!g||"100%"===d||"100%"===g,x=_&&y,C={},b="",S=0,T=0;if(C.width=0,C.height=0,C.toBeParsed=x,_&&(p||v)&&t.parentNode&&"#document"!==t.parentNode.nodeName&&(b=" translate("+s(p)+" "+s(v)+") ",a=(t.getAttribute("transform")||"")+b,t.setAttribute("transform",a),t.removeAttribute("x"),t.removeAttribute("y")),x)return C;if(_)return C.width=s(d),C.height=s(g),C;if(i=-parseFloat(l[1]),r=-parseFloat(l[2]),n=parseFloat(l[3]),o=parseFloat(l[4]),C.minX=i,C.minY=r,C.viewBoxWidth=n,C.viewBoxHeight=o,y?(C.width=n,C.height=o):(C.width=s(d),C.height=s(g),c=C.width/n,f=C.height/o),"none"!==(m=e.util.parsePreserveAspectRatioAttribute(m)).alignX&&("meet"===m.meetOrSlice&&(f=c=c>f?f:c),"slice"===m.meetOrSlice&&(f=c=c>f?c:f),S=C.width-n*c,T=C.height-o*c,"Mid"===m.alignX&&(S/=2),"Mid"===m.alignY&&(T/=2),"Min"===m.alignX&&(S=0),"Min"===m.alignY&&(T=0)),1===c&&1===f&&0===i&&0===r&&0===p&&0===v)return C;if((p||v)&&"#document"!==t.parentNode.nodeName&&(b=" translate("+s(p)+" "+s(v)+") "),a=b+" matrix("+c+" 0 0 "+f+" "+(i*c+S)+" "+(r*f+T)+") ","svg"===t.nodeName){for(h=t.ownerDocument.createElementNS(e.svgNS,"g");t.firstChild;)h.appendChild(t.firstChild);t.appendChild(h)}else(h=t).removeAttribute("x"),h.removeAttribute("y"),a=h.getAttribute("transform")+a;return h.setAttribute("transform",a),C}function recursivelyParseGradientsXlink(t,e){var i="xlink:href",r=elementById(t,e.getAttribute(i).substr(1));if(r&&r.getAttribute(i)&&recursivelyParseGradientsXlink(t,r),["gradientTransform","x1","x2","y1","y2","gradientUnits","cx","cy","r","fx","fy"].forEach((function(t){r&&!e.hasAttribute(t)&&r.hasAttribute(t)&&e.setAttribute(t,r.getAttribute(t))})),!e.children.length)for(var n=r.cloneNode(!0);n.firstChild;)e.appendChild(n.firstChild);e.removeAttribute(i)}e.parseSVGDocument=function(t,i,n,s){if(t){!function parseUseDirectives(t){for(var i=_getMultipleNodes(t,["use","svg:use"]),r=0;i.length&&r<i.length;){var n=i[r],s=n.getAttribute("xlink:href")||n.getAttribute("href");if(null===s)return;var o,a,h,l,c=s.substr(1),u=n.getAttribute("x")||0,f=n.getAttribute("y")||0,d=elementById(t,c).cloneNode(!0),g=(d.getAttribute("transform")||"")+" translate("+u+", "+f+")",p=i.length,v=e.svgNS;if(applyViewboxTransform(d),/^svg$/i.test(d.nodeName)){var m=d.ownerDocument.createElementNS(v,"g");for(a=0,l=(h=d.attributes).length;a<l;a++)o=h.item(a),m.setAttributeNS(v,o.nodeName,o.nodeValue);for(;d.firstChild;)m.appendChild(d.firstChild);d=m}for(a=0,l=(h=n.attributes).length;a<l;a++)"x"!==(o=h.item(a)).nodeName&&"y"!==o.nodeName&&"xlink:href"!==o.nodeName&&"href"!==o.nodeName&&("transform"===o.nodeName?g=o.nodeValue+" "+g:d.setAttribute(o.nodeName,o.nodeValue));d.setAttribute("transform",g),d.setAttribute("instantiated_by_use","1"),d.removeAttribute("id"),n.parentNode.replaceChild(d,n),i.length===p&&r++}}(t);var o,a,h=e.Object.__uid++,l=applyViewboxTransform(t),c=e.util.toArray(t.getElementsByTagName("*"));if(l.crossOrigin=s&&s.crossOrigin,l.svgUid=h,0===c.length&&e.isLikelyNode){var u=[];for(o=0,a=(c=t.selectNodes('//*[name(.)!="svg"]')).length;o<a;o++)u[o]=c[o];c=u}var f=c.filter((function(t){return applyViewboxTransform(t),e.svgValidTagNamesRegEx.test(t.nodeName.replace("svg:",""))&&!function hasAncestorWithNodeName(t,e){for(;t&&(t=t.parentNode);)if(t.nodeName&&e.test(t.nodeName.replace("svg:",""))&&!t.getAttribute("instantiated_by_use"))return!0;return!1}(t,e.svgInvalidAncestorsRegEx)}));if(!f||f&&!f.length)i&&i([],{});else{var d={};c.filter((function(t){return"clipPath"===t.nodeName.replace("svg:","")})).forEach((function(t){var i=t.getAttribute("id");d[i]=e.util.toArray(t.getElementsByTagName("*")).filter((function(t){return e.svgValidTagNamesRegEx.test(t.nodeName.replace("svg:",""))}))})),e.gradientDefs[h]=e.getGradientDefs(t),e.cssRules[h]=e.getCSSRules(t),e.clipPaths[h]=d,e.parseElements(f,(function(t,r){i&&(i(t,l,r,c),delete e.gradientDefs[h],delete e.cssRules[h],delete e.clipPaths[h])}),r(l),n,s)}}};var f=new RegExp("(normal|italic)?\\s*(normal|small-caps)?\\s*(normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)?\\s*("+e.reNum+"(?:px|cm|mm|em|pt|pc|in)*)(?:\\/(normal|"+e.reNum+"))?\\s+(.*)");i(e,{parseFontDeclaration:function(t,e){var i=t.match(f);if(i){var r=i[1],n=i[3],o=i[4],a=i[5],h=i[6];r&&(e.fontStyle=r),n&&(e.fontWeight=isNaN(parseFloat(n))?n:parseFloat(n)),o&&(e.fontSize=s(o)),h&&(e.fontFamily=h),a&&(e.lineHeight="normal"===a?1:a)}},getGradientDefs:function(t){var e,i=_getMultipleNodes(t,["linearGradient","radialGradient","svg:linearGradient","svg:radialGradient"]),r=0,n={};for(r=i.length;r--;)(e=i[r]).getAttribute("xlink:href")&&recursivelyParseGradientsXlink(t,e),n[e.getAttribute("id")]=e;return n},parseAttributes:function(t,r,o){if(t){var a,u,f,d={};void 0===o&&(o=t.getAttribute("svgUid")),t.parentNode&&e.svgValidParentsRegEx.test(t.parentNode.nodeName)&&(d=e.parseAttributes(t.parentNode,r,o));var g=r.reduce((function(e,i){return(a=t.getAttribute(i))&&(e[i]=a),e}),{}),p=i(function getGlobalStylesForElement(t,i){var r={};for(var n in e.cssRules[i])if(elementMatchesRule(t,n.split(" ")))for(var s in e.cssRules[i][n])r[s]=e.cssRules[i][n][s];return r}(t,o),e.parseStyleAttribute(t));g=i(g,p),p[c]&&t.setAttribute(c,p[c]),u=f=d.fontSize||e.Text.DEFAULT_SVG_FONT_SIZE,g[l]&&(g[l]=u=s(g[l],f));var v,m,_={};for(var y in g)m=normalizeValue(v=normalizeAttr(y),g[y],d,u),_[v]=m;_&&_.font&&e.parseFontDeclaration(_.font,_);var x=i(d,_);return e.svgValidParentsRegEx.test(t.nodeName)?x:function _setStrokeFillOpacity(t){for(var i in h)if(void 0!==t[h[i]]&&""!==t[i]){if(void 0===t[i]){if(!e.Object.prototype[i])continue;t[i]=e.Object.prototype[i]}if(0!==t[i].indexOf("url(")){var r=new e.Color(t[i]);t[i]=r.setAlpha(n(r.getAlpha()*t[h[i]],2)).toRgba()}}return t}(x)}},parseElements:function(t,i,r,n,s){new e.ElementsParser(t,i,r,n,s).parse()},parseStyleAttribute:function(t){var e={},i=t.getAttribute("style");return i?("string"==typeof i?function parseStyleString(t,e){var i,r;t.replace(/;\s*$/,"").split(";").forEach((function(t){var n=t.split(":");i=n[0].trim().toLowerCase(),r=n[1].trim(),e[i]=r}))}(i,e):function parseStyleObject(t,e){var i,r;for(var n in t)void 0!==t[n]&&(i=n.toLowerCase(),r=t[n],e[i]=r)}(i,e),e):e},parsePointsAttribute:function(t){if(!t)return null;var e,i,r=[];for(e=0,i=(t=(t=t.replace(/,/g," ").trim()).split(/\s+/)).length;e<i;e+=2)r.push({x:parseFloat(t[e]),y:parseFloat(t[e+1])});return r},getCSSRules:function(t){var i,r,n=t.getElementsByTagName("style"),s={};for(i=0,r=n.length;i<r;i++){var o=n[i].textContent;""!==(o=o.replace(/\/\*[\s\S]*?\*\//g,"")).trim()&&o.match(/[^{]*\{[\s\S]*?\}/g).map((function(t){return t.trim()})).forEach((function(t){var n=t.match(/([\s\S]*?)\s*\{([^}]*)\}/),o={},a=n[2].trim().replace(/;$/,"").split(/\s*;\s*/);for(i=0,r=a.length;i<r;i++){var h=a[i].split(/\s*:\s*/),l=h[0],c=h[1];o[l]=c}(t=n[1]).split(",").forEach((function(t){""!==(t=t.replace(/^svg/i,"").trim())&&(s[t]?e.util.object.extend(s[t],o):s[t]=e.util.object.clone(o))}))}))}return s},loadSVGFromURL:function(t,i,r,n){t=t.replace(/^\n\s*/,"").trim(),new e.util.request(t,{method:"get",onComplete:function onComplete(t){var s=t.responseXML;if(!s||!s.documentElement)return i&&i(null),!1;e.parseSVGDocument(s.documentElement,(function(t,e,r,n){i&&i(t,e,r,n)}),r,n)}})},loadSVGFromString:function(t,i,r,n){var s=(new e.window.DOMParser).parseFromString(t.trim(),"text/xml");e.parseSVGDocument(s.documentElement,(function(t,e,r,n){i(t,e,r,n)}),r,n)}})}(e),k.ElementsParser=function(t,e,i,r,n,s){this.elements=t,this.callback=e,this.options=i,this.reviver=r,this.svgUid=i&&i.svgUid||0,this.parsingOptions=n,this.regexUrl=/^url\(['"]?#([^'"]+)['"]?\)/g,this.doc=s},(v=k.ElementsParser.prototype).parse=function(){this.instances=new Array(this.elements.length),this.numElements=this.elements.length,this.createObjects()},v.createObjects=function(){var t=this;this.elements.forEach((function(e,i){e.setAttribute("svgUid",t.svgUid),t.createObject(e,i)}))},v.findTag=function(t){return k[k.util.string.capitalize(t.tagName.replace("svg:",""))]},v.createObject=function(t,e){var i=this.findTag(t);if(i&&i.fromElement)try{i.fromElement(t,this.createCallback(e,t),this.options)}catch(t){k.log(t)}else this.checkIfDone()},v.createCallback=function(t,e){var i=this;return function(r){var n;i.resolveGradient(r,e,"fill"),i.resolveGradient(r,e,"stroke"),r instanceof k.Image&&r._originalElement&&(n=r.parsePreserveAspectRatioAttribute(e)),r._removeTransformMatrix(n),i.resolveClipPath(r,e),i.reviver&&i.reviver(e,r),i.instances[t]=r,i.checkIfDone()}},v.extractPropertyDefinition=function(t,e,i){var r=t[e],n=this.regexUrl;if(n.test(r)){n.lastIndex=0;var s=n.exec(r)[1];return n.lastIndex=0,k[i][this.svgUid][s]}},v.resolveGradient=function(t,e,i){var r=this.extractPropertyDefinition(t,i,"gradientDefs");if(r){var n=e.getAttribute(i+"-opacity"),s=k.Gradient.fromElement(r,t,n,this.options);t.set(i,s)}},v.createClipPathCallback=function(t,e){return function(t){t._removeTransformMatrix(),t.fillRule=t.clipRule,e.push(t)}},v.resolveClipPath=function(t,e){var i,r,n,s,o=this.extractPropertyDefinition(t,"clipPath","clipPaths");if(o){n=[],r=k.util.invertTransform(t.calcTransformMatrix());for(var a=o[0].parentNode,h=e;h.parentNode&&h.getAttribute("clip-path")!==t.clipPath;)h=h.parentNode;h.parentNode.appendChild(a);for(var l=0;l<o.length;l++)i=o[l],this.findTag(i).fromElement(i,this.createClipPathCallback(t,n),this.options);o=1===n.length?n[0]:new k.Group(n),s=k.util.multiplyTransformMatrices(r,o.calcTransformMatrix()),o.clipPath&&this.resolveClipPath(o,h);var c=k.util.qrDecompose(s);o.flipX=!1,o.flipY=!1,o.set("scaleX",c.scaleX),o.set("scaleY",c.scaleY),o.angle=c.angle,o.skewX=c.skewX,o.skewY=0,o.setPositionByOrigin({x:c.translateX,y:c.translateY},"center","center"),t.clipPath=o}else delete t.clipPath},v.checkIfDone=function(){0==--this.numElements&&(this.instances=this.instances.filter((function(t){return null!=t})),this.callback(this.instances,this.elements))},function(t){"use strict";var e=t.fabric||(t.fabric={});function Point(t,e){this.x=t,this.y=e}e.Point?e.warn("fabric.Point is already defined"):(e.Point=Point,Point.prototype={type:"point",constructor:Point,add:function(t){return new Point(this.x+t.x,this.y+t.y)},addEquals:function(t){return this.x+=t.x,this.y+=t.y,this},scalarAdd:function(t){return new Point(this.x+t,this.y+t)},scalarAddEquals:function(t){return this.x+=t,this.y+=t,this},subtract:function(t){return new Point(this.x-t.x,this.y-t.y)},subtractEquals:function(t){return this.x-=t.x,this.y-=t.y,this},scalarSubtract:function(t){return new Point(this.x-t,this.y-t)},scalarSubtractEquals:function(t){return this.x-=t,this.y-=t,this},multiply:function(t){return new Point(this.x*t,this.y*t)},multiplyEquals:function(t){return this.x*=t,this.y*=t,this},divide:function(t){return new Point(this.x/t,this.y/t)},divideEquals:function(t){return this.x/=t,this.y/=t,this},eq:function(t){return this.x===t.x&&this.y===t.y},lt:function(t){return this.x<t.x&&this.y<t.y},lte:function(t){return this.x<=t.x&&this.y<=t.y},gt:function(t){return this.x>t.x&&this.y>t.y},gte:function(t){return this.x>=t.x&&this.y>=t.y},lerp:function(t,e){return void 0===e&&(e=.5),e=Math.max(Math.min(1,e),0),new Point(this.x+(t.x-this.x)*e,this.y+(t.y-this.y)*e)},distanceFrom:function(t){var e=this.x-t.x,i=this.y-t.y;return Math.sqrt(e*e+i*i)},midPointFrom:function(t){return this.lerp(t)},min:function(t){return new Point(Math.min(this.x,t.x),Math.min(this.y,t.y))},max:function(t){return new Point(Math.max(this.x,t.x),Math.max(this.y,t.y))},toString:function(){return this.x+","+this.y},setXY:function(t,e){return this.x=t,this.y=e,this},setX:function(t){return this.x=t,this},setY:function(t){return this.y=t,this},setFromPoint:function(t){return this.x=t.x,this.y=t.y,this},swap:function(t){var e=this.x,i=this.y;this.x=t.x,this.y=t.y,t.x=e,t.y=i},clone:function(){return new Point(this.x,this.y)}})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});function Intersection(t){this.status=t,this.points=[]}e.Intersection?e.warn("fabric.Intersection is already defined"):(e.Intersection=Intersection,e.Intersection.prototype={constructor:Intersection,appendPoint:function(t){return this.points.push(t),this},appendPoints:function(t){return this.points=this.points.concat(t),this}},e.Intersection.intersectLineLine=function(t,i,r,n){var s,o=(n.x-r.x)*(t.y-r.y)-(n.y-r.y)*(t.x-r.x),a=(i.x-t.x)*(t.y-r.y)-(i.y-t.y)*(t.x-r.x),h=(n.y-r.y)*(i.x-t.x)-(n.x-r.x)*(i.y-t.y);if(0!==h){var l=o/h,c=a/h;0<=l&&l<=1&&0<=c&&c<=1?(s=new Intersection("Intersection")).appendPoint(new e.Point(t.x+l*(i.x-t.x),t.y+l*(i.y-t.y))):s=new Intersection}else s=new Intersection(0===o||0===a?"Coincident":"Parallel");return s},e.Intersection.intersectLinePolygon=function(t,e,i){var r,n,s,o,a=new Intersection,h=i.length;for(o=0;o<h;o++)r=i[o],n=i[(o+1)%h],s=Intersection.intersectLineLine(t,e,r,n),a.appendPoints(s.points);return a.points.length>0&&(a.status="Intersection"),a},e.Intersection.intersectPolygonPolygon=function(t,e){var i,r=new Intersection,n=t.length;for(i=0;i<n;i++){var s=t[i],o=t[(i+1)%n],a=Intersection.intersectLinePolygon(s,o,e);r.appendPoints(a.points)}return r.points.length>0&&(r.status="Intersection"),r},e.Intersection.intersectPolygonRectangle=function(t,i,r){var n=i.min(r),s=i.max(r),o=new e.Point(s.x,n.y),a=new e.Point(n.x,s.y),h=Intersection.intersectLinePolygon(n,o,t),l=Intersection.intersectLinePolygon(o,s,t),c=Intersection.intersectLinePolygon(s,a,t),u=Intersection.intersectLinePolygon(a,n,t),f=new Intersection;return f.appendPoints(h.points),f.appendPoints(l.points),f.appendPoints(c.points),f.appendPoints(u.points),f.points.length>0&&(f.status="Intersection"),f})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});function Color(t){t?this._tryParsingColor(t):this.setSource([0,0,0,1])}function hue2rgb(t,e,i){return i<0&&(i+=1),i>1&&(i-=1),i<1/6?t+6*(e-t)*i:i<.5?e:i<2/3?t+(e-t)*(2/3-i)*6:t}e.Color?e.warn("fabric.Color is already defined."):(e.Color=Color,e.Color.prototype={_tryParsingColor:function(t){var e;t in Color.colorNameMap&&(t=Color.colorNameMap[t]),"transparent"===t&&(e=[255,255,255,0]),e||(e=Color.sourceFromHex(t)),e||(e=Color.sourceFromRgb(t)),e||(e=Color.sourceFromHsl(t)),e||(e=[0,0,0,1]),e&&this.setSource(e)},_rgbToHsl:function(t,i,r){t/=255,i/=255,r/=255;var n,s,o,a=e.util.array.max([t,i,r]),h=e.util.array.min([t,i,r]);if(o=(a+h)/2,a===h)n=s=0;else{var l=a-h;switch(s=o>.5?l/(2-a-h):l/(a+h),a){case t:n=(i-r)/l+(i<r?6:0);break;case i:n=(r-t)/l+2;break;case r:n=(t-i)/l+4}n/=6}return[Math.round(360*n),Math.round(100*s),Math.round(100*o)]},getSource:function(){return this._source},setSource:function(t){this._source=t},toRgb:function(){var t=this.getSource();return"rgb("+t[0]+","+t[1]+","+t[2]+")"},toRgba:function(){var t=this.getSource();return"rgba("+t[0]+","+t[1]+","+t[2]+","+t[3]+")"},toHsl:function(){var t=this.getSource(),e=this._rgbToHsl(t[0],t[1],t[2]);return"hsl("+e[0]+","+e[1]+"%,"+e[2]+"%)"},toHsla:function(){var t=this.getSource(),e=this._rgbToHsl(t[0],t[1],t[2]);return"hsla("+e[0]+","+e[1]+"%,"+e[2]+"%,"+t[3]+")"},toHex:function(){var t,e,i,r=this.getSource();return t=1===(t=r[0].toString(16)).length?"0"+t:t,e=1===(e=r[1].toString(16)).length?"0"+e:e,i=1===(i=r[2].toString(16)).length?"0"+i:i,t.toUpperCase()+e.toUpperCase()+i.toUpperCase()},toHexa:function(){var t,e=this.getSource();return t=1===(t=(t=Math.round(255*e[3])).toString(16)).length?"0"+t:t,this.toHex()+t.toUpperCase()},getAlpha:function(){return this.getSource()[3]},setAlpha:function(t){var e=this.getSource();return e[3]=t,this.setSource(e),this},toGrayscale:function(){var t=this.getSource(),e=parseInt((.3*t[0]+.59*t[1]+.11*t[2]).toFixed(0),10),i=t[3];return this.setSource([e,e,e,i]),this},toBlackWhite:function(t){var e=this.getSource(),i=(.3*e[0]+.59*e[1]+.11*e[2]).toFixed(0),r=e[3];return t=t||127,i=Number(i)<Number(t)?0:255,this.setSource([i,i,i,r]),this},overlayWith:function(t){t instanceof Color||(t=new Color(t));var e,i=[],r=this.getAlpha(),n=this.getSource(),s=t.getSource();for(e=0;e<3;e++)i.push(Math.round(.5*n[e]+.5*s[e]));return i[3]=r,this.setSource(i),this}},e.Color.reRGBa=/^rgba?\(\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*,\s*(\d{1,3}(?:\.\d+)?\%?)\s*(?:\s*,\s*((?:\d*\.?\d+)?)\s*)?\)$/i,e.Color.reHSLa=/^hsla?\(\s*(\d{1,3})\s*,\s*(\d{1,3}\%)\s*,\s*(\d{1,3}\%)\s*(?:\s*,\s*(\d+(?:\.\d+)?)\s*)?\)$/i,e.Color.reHex=/^#?([0-9a-f]{8}|[0-9a-f]{6}|[0-9a-f]{4}|[0-9a-f]{3})$/i,e.Color.colorNameMap={aliceblue:"#F0F8FF",antiquewhite:"#FAEBD7",aqua:"#00FFFF",aquamarine:"#7FFFD4",azure:"#F0FFFF",beige:"#F5F5DC",bisque:"#FFE4C4",black:"#000000",blanchedalmond:"#FFEBCD",blue:"#0000FF",blueviolet:"#8A2BE2",brown:"#A52A2A",burlywood:"#DEB887",cadetblue:"#5F9EA0",chartreuse:"#7FFF00",chocolate:"#D2691E",coral:"#FF7F50",cornflowerblue:"#6495ED",cornsilk:"#FFF8DC",crimson:"#DC143C",cyan:"#00FFFF",darkblue:"#00008B",darkcyan:"#008B8B",darkgoldenrod:"#B8860B",darkgray:"#A9A9A9",darkgrey:"#A9A9A9",darkgreen:"#006400",darkkhaki:"#BDB76B",darkmagenta:"#8B008B",darkolivegreen:"#556B2F",darkorange:"#FF8C00",darkorchid:"#9932CC",darkred:"#8B0000",darksalmon:"#E9967A",darkseagreen:"#8FBC8F",darkslateblue:"#483D8B",darkslategray:"#2F4F4F",darkslategrey:"#2F4F4F",darkturquoise:"#00CED1",darkviolet:"#9400D3",deeppink:"#FF1493",deepskyblue:"#00BFFF",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1E90FF",firebrick:"#B22222",floralwhite:"#FFFAF0",forestgreen:"#228B22",fuchsia:"#FF00FF",gainsboro:"#DCDCDC",ghostwhite:"#F8F8FF",gold:"#FFD700",goldenrod:"#DAA520",gray:"#808080",grey:"#808080",green:"#008000",greenyellow:"#ADFF2F",honeydew:"#F0FFF0",hotpink:"#FF69B4",indianred:"#CD5C5C",indigo:"#4B0082",ivory:"#FFFFF0",khaki:"#F0E68C",lavender:"#E6E6FA",lavenderblush:"#FFF0F5",lawngreen:"#7CFC00",lemonchiffon:"#FFFACD",lightblue:"#ADD8E6",lightcoral:"#F08080",lightcyan:"#E0FFFF",lightgoldenrodyellow:"#FAFAD2",lightgray:"#D3D3D3",lightgrey:"#D3D3D3",lightgreen:"#90EE90",lightpink:"#FFB6C1",lightsalmon:"#FFA07A",lightseagreen:"#20B2AA",lightskyblue:"#87CEFA",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#B0C4DE",lightyellow:"#FFFFE0",lime:"#00FF00",limegreen:"#32CD32",linen:"#FAF0E6",magenta:"#FF00FF",maroon:"#800000",mediumaquamarine:"#66CDAA",mediumblue:"#0000CD",mediumorchid:"#BA55D3",mediumpurple:"#9370DB",mediumseagreen:"#3CB371",mediumslateblue:"#7B68EE",mediumspringgreen:"#00FA9A",mediumturquoise:"#48D1CC",mediumvioletred:"#C71585",midnightblue:"#191970",mintcream:"#F5FFFA",mistyrose:"#FFE4E1",moccasin:"#FFE4B5",navajowhite:"#FFDEAD",navy:"#000080",oldlace:"#FDF5E6",olive:"#808000",olivedrab:"#6B8E23",orange:"#FFA500",orangered:"#FF4500",orchid:"#DA70D6",palegoldenrod:"#EEE8AA",palegreen:"#98FB98",paleturquoise:"#AFEEEE",palevioletred:"#DB7093",papayawhip:"#FFEFD5",peachpuff:"#FFDAB9",peru:"#CD853F",pink:"#FFC0CB",plum:"#DDA0DD",powderblue:"#B0E0E6",purple:"#800080",rebeccapurple:"#663399",red:"#FF0000",rosybrown:"#BC8F8F",royalblue:"#4169E1",saddlebrown:"#8B4513",salmon:"#FA8072",sandybrown:"#F4A460",seagreen:"#2E8B57",seashell:"#FFF5EE",sienna:"#A0522D",silver:"#C0C0C0",skyblue:"#87CEEB",slateblue:"#6A5ACD",slategray:"#708090",slategrey:"#708090",snow:"#FFFAFA",springgreen:"#00FF7F",steelblue:"#4682B4",tan:"#D2B48C",teal:"#008080",thistle:"#D8BFD8",tomato:"#FF6347",turquoise:"#40E0D0",violet:"#EE82EE",wheat:"#F5DEB3",white:"#FFFFFF",whitesmoke:"#F5F5F5",yellow:"#FFFF00",yellowgreen:"#9ACD32"},e.Color.fromRgb=function(t){return Color.fromSource(Color.sourceFromRgb(t))},e.Color.sourceFromRgb=function(t){var e=t.match(Color.reRGBa);if(e){var i=parseInt(e[1],10)/(/%$/.test(e[1])?100:1)*(/%$/.test(e[1])?255:1),r=parseInt(e[2],10)/(/%$/.test(e[2])?100:1)*(/%$/.test(e[2])?255:1),n=parseInt(e[3],10)/(/%$/.test(e[3])?100:1)*(/%$/.test(e[3])?255:1);return[parseInt(i,10),parseInt(r,10),parseInt(n,10),e[4]?parseFloat(e[4]):1]}},e.Color.fromRgba=Color.fromRgb,e.Color.fromHsl=function(t){return Color.fromSource(Color.sourceFromHsl(t))},e.Color.sourceFromHsl=function(t){var e=t.match(Color.reHSLa);if(e){var i,r,n,s=(parseFloat(e[1])%360+360)%360/360,o=parseFloat(e[2])/(/%$/.test(e[2])?100:1),a=parseFloat(e[3])/(/%$/.test(e[3])?100:1);if(0===o)i=r=n=a;else{var h=a<=.5?a*(o+1):a+o-a*o,l=2*a-h;i=hue2rgb(l,h,s+1/3),r=hue2rgb(l,h,s),n=hue2rgb(l,h,s-1/3)}return[Math.round(255*i),Math.round(255*r),Math.round(255*n),e[4]?parseFloat(e[4]):1]}},e.Color.fromHsla=Color.fromHsl,e.Color.fromHex=function(t){return Color.fromSource(Color.sourceFromHex(t))},e.Color.sourceFromHex=function(t){if(t.match(Color.reHex)){var e=t.slice(t.indexOf("#")+1),i=3===e.length||4===e.length,r=8===e.length||4===e.length,n=i?e.charAt(0)+e.charAt(0):e.substring(0,2),s=i?e.charAt(1)+e.charAt(1):e.substring(2,4),o=i?e.charAt(2)+e.charAt(2):e.substring(4,6),a=r?i?e.charAt(3)+e.charAt(3):e.substring(6,8):"FF";return[parseInt(n,16),parseInt(s,16),parseInt(o,16),parseFloat((parseInt(a,16)/255).toFixed(2))]}},e.Color.fromSource=function(t){var e=new Color;return e.setSource(t),e})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=["e","se","s","sw","w","nw","n","ne","e"],r=["ns","nesw","ew","nwse"],n={},s="left",o="top",a="right",h="bottom",l="center",c={top:h,bottom:o,left:a,right:s,center:l},u=e.util.radiansToDegrees,f=Math.sign||function(t){return(t>0)-(t<0)||+t};function findCornerQuadrant(t,e){var i=t.angle+u(Math.atan2(e.y,e.x))+360;return Math.round(i%360/45)}function fireEvent(t,i){var r=i.transform.target,n=r.canvas,s=e.util.object.clone(i);s.target=r,n&&n.fire("object:"+t,s),r.fire(t,i)}function scaleIsProportional(t,e){var i=e.canvas,r=t[i.uniScaleKey];return i.uniformScaling&&!r||!i.uniformScaling&&r}function isTransformCentered(t){return t.originX===l&&t.originY===l}function scalingIsForbidden(t,e,i){var r=t.lockScalingX,n=t.lockScalingY;return!(!r||!n)||(!(e||!r&&!n||!i)||(!(!r||"x"!==e)||!(!n||"y"!==e)))}function commonEventInfo(t,e,i,r){return{e:t,transform:e,pointer:{x:i,y:r}}}function wrapWithFixedAnchor(t){return function(e,i,r,n){var s=i.target,o=s.getCenterPoint(),a=s.translateToOriginPoint(o,i.originX,i.originY),h=t(e,i,r,n);return s.setPositionByOrigin(a,i.originX,i.originY),h}}function wrapWithFireEvent(t,e){return function(i,r,n,s){var o=e(i,r,n,s);return o&&fireEvent(t,commonEventInfo(i,r,n,s)),o}}function getLocalPoint(t,i,r,n,s){var o=t.target,a=o.controls[t.corner],h=o.canvas.getZoom(),l=o.padding/h,c=o.toLocalPoint(new e.Point(n,s),i,r);return c.x>=l&&(c.x-=l),c.x<=-l&&(c.x+=l),c.y>=l&&(c.y-=l),c.y<=l&&(c.y+=l),c.x-=a.offsetX,c.y-=a.offsetY,c}function targetHasOneFlip(t){return t.flipX!==t.flipY}function compensateScaleForSkew(t,e,i,r,n){if(0!==t[e]){var s=n/t._getTransformedDimensions()[r]*t[i];t.set(i,s)}}function skewObjectX(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(0,l.skewY),f=getLocalPoint(e,e.originX,e.originY,i,r),d=Math.abs(2*f.x)-c.x,g=l.skewX;d<2?n=0:(n=u(Math.atan2(d/l.scaleX,c.y/l.scaleY)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),targetHasOneFlip(l)&&(n=-n));var p=g!==n;if(p){var v=l._getTransformedDimensions().y;l.set("skewX",n),compensateScaleForSkew(l,"skewY","scaleY","y",v)}return p}function skewObjectY(t,e,i,r){var n,l=e.target,c=l._getTransformedDimensions(l.skewX,0),f=getLocalPoint(e,e.originX,e.originY,i,r),d=Math.abs(2*f.y)-c.y,g=l.skewY;d<2?n=0:(n=u(Math.atan2(d/l.scaleY,c.x/l.scaleX)),e.originX===s&&e.originY===h&&(n=-n),e.originX===a&&e.originY===o&&(n=-n),targetHasOneFlip(l)&&(n=-n));var p=g!==n;if(p){var v=l._getTransformedDimensions().x;l.set("skewY",n),compensateScaleForSkew(l,"skewX","scaleX","x",v)}return p}function scaleObject(t,e,i,r,n){n=n||{};var s,o,a,h,l,u,d=e.target,g=d.lockScalingX,p=d.lockScalingY,v=n.by,m=scaleIsProportional(t,d),_=scalingIsForbidden(d,v,m),y=e.gestureScale;if(_)return!1;if(y)o=e.scaleX*y,a=e.scaleY*y;else{if(s=getLocalPoint(e,e.originX,e.originY,i,r),l="y"!==v?f(s.x):1,u="x"!==v?f(s.y):1,e.signX||(e.signX=l),e.signY||(e.signY=u),d.lockScalingFlip&&(e.signX!==l||e.signY!==u))return!1;if(h=d._getTransformedDimensions(),m&&!v){var x=Math.abs(s.x)+Math.abs(s.y),C=e.original,b=x/(Math.abs(h.x*C.scaleX/d.scaleX)+Math.abs(h.y*C.scaleY/d.scaleY));o=C.scaleX*b,a=C.scaleY*b}else o=Math.abs(s.x*d.scaleX/h.x),a=Math.abs(s.y*d.scaleY/h.y);isTransformCentered(e)&&(o*=2,a*=2),e.signX!==l&&"y"!==v&&(e.originX=c[e.originX],o*=-1,e.signX=l),e.signY!==u&&"x"!==v&&(e.originY=c[e.originY],a*=-1,e.signY=u)}var S=d.scaleX,T=d.scaleY;return v?("x"===v&&d.set("scaleX",o),"y"===v&&d.set("scaleY",a)):(!g&&d.set("scaleX",o),!p&&d.set("scaleY",a)),S!==d.scaleX||T!==d.scaleY}n.scaleCursorStyleHandler=function scaleCursorStyleHandler(t,e,r){var n=scaleIsProportional(t,r),s="";if(0!==e.x&&0===e.y?s="x":0===e.x&&0!==e.y&&(s="y"),scalingIsForbidden(r,s,n))return"not-allowed";var o=findCornerQuadrant(r,e);return i[o]+"-resize"},n.skewCursorStyleHandler=function skewCursorStyleHandler(t,e,i){var n="not-allowed";if(0!==e.x&&i.lockSkewingY)return n;if(0!==e.y&&i.lockSkewingX)return n;var s=findCornerQuadrant(i,e)%4;return r[s]+"-resize"},n.scaleSkewCursorStyleHandler=function scaleSkewCursorStyleHandler(t,e,i){return t[i.canvas.altActionKey]?n.skewCursorStyleHandler(t,e,i):n.scaleCursorStyleHandler(t,e,i)},n.rotationWithSnapping=wrapWithFireEvent("rotating",wrapWithFixedAnchor((function rotationWithSnapping(t,e,i,r){var n=e,s=n.target,o=s.translateToOriginPoint(s.getCenterPoint(),n.originX,n.originY);if(s.lockRotation)return!1;var a,h=Math.atan2(n.ey-o.y,n.ex-o.x),l=Math.atan2(r-o.y,i-o.x),c=u(l-h+n.theta);if(s.snapAngle>0){var f=s.snapAngle,d=s.snapThreshold||f,g=Math.ceil(c/f)*f,p=Math.floor(c/f)*f;Math.abs(c-p)<d?c=p:Math.abs(c-g)<d&&(c=g)}return c<0&&(c=360+c),c%=360,a=s.angle!==c,s.angle=c,a}))),n.scalingEqually=wrapWithFireEvent("scaling",wrapWithFixedAnchor((function scaleObjectFromCorner(t,e,i,r){return scaleObject(t,e,i,r)}))),n.scalingX=wrapWithFireEvent("scaling",wrapWithFixedAnchor((function scaleObjectX(t,e,i,r){return scaleObject(t,e,i,r,{by:"x"})}))),n.scalingY=wrapWithFireEvent("scaling",wrapWithFixedAnchor((function scaleObjectY(t,e,i,r){return scaleObject(t,e,i,r,{by:"y"})}))),n.scalingYOrSkewingX=function scalingYOrSkewingX(t,e,i,r){return t[e.target.canvas.altActionKey]?n.skewHandlerX(t,e,i,r):n.scalingY(t,e,i,r)},n.scalingXOrSkewingY=function scalingXOrSkewingY(t,e,i,r){return t[e.target.canvas.altActionKey]?n.skewHandlerY(t,e,i,r):n.scalingX(t,e,i,r)},n.changeWidth=wrapWithFireEvent("resizing",wrapWithFixedAnchor((function changeWidth(t,e,i,r){var n=e.target,s=getLocalPoint(e,e.originX,e.originY,i,r),o=n.strokeWidth/(n.strokeUniform?n.scaleX:1),a=isTransformCentered(e)?2:1,h=n.width,l=Math.abs(s.x*a/n.scaleX)-o;return n.set("width",Math.max(l,0)),h!==l}))),n.skewHandlerX=function skewHandlerX(t,e,i,r){var n,h=e.target,c=h.skewX,u=e.originY;return!h.lockSkewingX&&(0===c?n=getLocalPoint(e,l,l,i,r).x>0?s:a:(c>0&&(n=u===o?s:a),c<0&&(n=u===o?a:s),targetHasOneFlip(h)&&(n=n===s?a:s)),e.originX=n,wrapWithFireEvent("skewing",wrapWithFixedAnchor(skewObjectX))(t,e,i,r))},n.skewHandlerY=function skewHandlerY(t,e,i,r){var n,a=e.target,c=a.skewY,u=e.originX;return!a.lockSkewingY&&(0===c?n=getLocalPoint(e,l,l,i,r).y>0?o:h:(c>0&&(n=u===s?o:h),c<0&&(n=u===s?h:o),targetHasOneFlip(a)&&(n=n===o?h:o)),e.originY=n,wrapWithFireEvent("skewing",wrapWithFixedAnchor(skewObjectY))(t,e,i,r))},n.dragHandler=function dragHandler(t,e,i,r){var n=e.target,s=i-e.offsetX,o=r-e.offsetY,a=!n.get("lockMovementX")&&n.left!==s,h=!n.get("lockMovementY")&&n.top!==o;return a&&n.set("left",s),h&&n.set("top",o),(a||h)&&fireEvent("moving",commonEventInfo(t,e,i,r)),a||h},n.scaleOrSkewActionName=function scaleOrSkewActionName(t,e,i){var r=t[i.canvas.altActionKey];return 0===e.x?r?"skewX":"scaleY":0===e.y?r?"skewY":"scaleX":void 0},n.rotationStyleHandler=function rotationStyleHandler(t,e,i){return i.lockRotation?"not-allowed":e.cursorStyle},n.fireEvent=fireEvent,n.wrapWithFixedAnchor=wrapWithFixedAnchor,n.wrapWithFireEvent=wrapWithFireEvent,n.getLocalPoint=getLocalPoint,e.controlsUtils=n}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.degreesToRadians,r=e.controlsUtils;r.renderCircleControl=function renderCircleControl(t,e,i,r,n){r=r||{};var s,o=this.sizeX||r.cornerSize||n.cornerSize,a=this.sizeY||r.cornerSize||n.cornerSize,h=void 0!==r.transparentCorners?r.transparentCorners:n.transparentCorners,l=h?"stroke":"fill",c=!h&&(r.cornerStrokeColor||n.cornerStrokeColor),u=e,f=i;t.save(),t.fillStyle=r.cornerColor||n.cornerColor,t.strokeStyle=r.cornerStrokeColor||n.cornerStrokeColor,o>a?(s=o,t.scale(1,a/o),f=i*o/a):a>o?(s=a,t.scale(o/a,1),u=e*a/o):s=o,t.lineWidth=1,t.beginPath(),t.arc(u,f,s/2,0,2*Math.PI,!1),t[l](),c&&t.stroke(),t.restore()},r.renderSquareControl=function renderSquareControl(t,e,r,n,s){n=n||{};var o=this.sizeX||n.cornerSize||s.cornerSize,a=this.sizeY||n.cornerSize||s.cornerSize,h=void 0!==n.transparentCorners?n.transparentCorners:s.transparentCorners,l=h?"stroke":"fill",c=!h&&(n.cornerStrokeColor||s.cornerStrokeColor),u=o/2,f=a/2;t.save(),t.fillStyle=n.cornerColor||s.cornerColor,t.strokeStyle=n.cornerStrokeColor||s.cornerStrokeColor,t.lineWidth=1,t.translate(e,r),t.rotate(i(s.angle)),t[l+"Rect"](-u,-f,o,a),c&&t.strokeRect(-u,-f,o,a),t.restore()}}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Control=function Control(t){for(var e in t)this[e]=t[e]},e.Control.prototype={visible:!0,actionName:"scale",angle:0,x:0,y:0,offsetX:0,offsetY:0,sizeX:null,sizeY:null,touchSizeX:null,touchSizeY:null,cursorStyle:"crosshair",withConnection:!1,actionHandler:function(){},mouseDownHandler:function(){},mouseUpHandler:function(){},getActionHandler:function(){return this.actionHandler},getMouseDownHandler:function(){return this.mouseDownHandler},getMouseUpHandler:function(){return this.mouseUpHandler},cursorStyleHandler:function(t,e){return e.cursorStyle},getActionName:function(t,e){return e.actionName},getVisibility:function(t,e){var i=t._controlsVisibility;return i&&void 0!==i[e]?i[e]:this.visible},setVisibility:function(t){this.visible=t},positionHandler:function(t,i){return e.util.transformPoint({x:this.x*t.x+this.offsetX,y:this.y*t.y+this.offsetY},i)},calcCornerCoords:function(t,i,r,n,s){var o,a,h,l,c=s?this.touchSizeX:this.sizeX,u=s?this.touchSizeY:this.sizeY;if(c&&u&&c!==u){var f=Math.atan2(u,c),d=Math.sqrt(c*c+u*u)/2,g=f-e.util.degreesToRadians(t),p=Math.PI/2-f-e.util.degreesToRadians(t);o=d*e.util.cos(g),a=d*e.util.sin(g),h=d*e.util.cos(p),l=d*e.util.sin(p)}else{d=.7071067812*(c&&u?c:i);g=e.util.degreesToRadians(45-t);o=h=d*e.util.cos(g),a=l=d*e.util.sin(g)}return{tl:{x:r-l,y:n-h},tr:{x:r+o,y:n-a},bl:{x:r-o,y:n+a},br:{x:r+l,y:n+h}}},render:function(t,i,r,n,s){if("circle"===((n=n||{}).cornerStyle||s.cornerStyle))e.controlsUtils.renderCircleControl.call(this,t,i,r,n,s);else e.controlsUtils.renderSquareControl.call(this,t,i,r,n,s)}}}(e),function(){function getColorStop(t,e){var i,r,n,s,o=t.getAttribute("style"),a=t.getAttribute("offset")||0;if(a=(a=parseFloat(a)/(/%$/.test(a)?100:1))<0?0:a>1?1:a,o){var h=o.split(/\s*;\s*/);for(""===h[h.length-1]&&h.pop(),s=h.length;s--;){var l=h[s].split(/\s*:\s*/),c=l[0].trim(),u=l[1].trim();"stop-color"===c?i=u:"stop-opacity"===c&&(n=u)}}return i||(i=t.getAttribute("stop-color")||"rgb(0,0,0)"),n||(n=t.getAttribute("stop-opacity")),r=(i=new k.Color(i)).getAlpha(),n=isNaN(parseFloat(n))?1:parseFloat(n),n*=r*e,{offset:a,color:i.toRgb(),opacity:n}}var t=k.util.object.clone;k.Gradient=k.util.createClass({offsetX:0,offsetY:0,gradientTransform:null,gradientUnits:"pixels",type:"linear",initialize:function(t){t||(t={}),t.coords||(t.coords={});var e,i=this;Object.keys(t).forEach((function(e){i[e]=t[e]})),this.id?this.id+="_"+k.Object.__uid++:this.id=k.Object.__uid++,e={x1:t.coords.x1||0,y1:t.coords.y1||0,x2:t.coords.x2||0,y2:t.coords.y2||0},"radial"===this.type&&(e.r1=t.coords.r1||0,e.r2=t.coords.r2||0),this.coords=e,this.colorStops=t.colorStops.slice()},addColorStop:function(t){for(var e in t){var i=new k.Color(t[e]);this.colorStops.push({offset:parseFloat(e),color:i.toRgb(),opacity:i.getAlpha()})}return this},toObject:function(t){var e={type:this.type,coords:this.coords,colorStops:this.colorStops,offsetX:this.offsetX,offsetY:this.offsetY,gradientUnits:this.gradientUnits,gradientTransform:this.gradientTransform?this.gradientTransform.concat():this.gradientTransform};return k.util.populateWithProperties(this,e,t),e},toSVG:function(e,i){var r,n,s,o,a=t(this.coords,!0),h=(i=i||{},t(this.colorStops,!0)),l=a.r1>a.r2,c=this.gradientTransform?this.gradientTransform.concat():k.iMatrix.concat(),u=-this.offsetX,f=-this.offsetY,d=!!i.additionalTransform,g="pixels"===this.gradientUnits?"userSpaceOnUse":"objectBoundingBox";if(h.sort((function(t,e){return t.offset-e.offset})),"objectBoundingBox"===g?(u/=e.width,f/=e.height):(u+=e.width/2,f+=e.height/2),"path"===e.type&&"percentage"!==this.gradientUnits&&(u-=e.pathOffset.x,f-=e.pathOffset.y),c[4]-=u,c[5]-=f,o='id="SVGID_'+this.id+'" gradientUnits="'+g+'"',o+=' gradientTransform="'+(d?i.additionalTransform+" ":"")+k.util.matrixToSVG(c)+'" ',"linear"===this.type?s=["<linearGradient ",o,' x1="',a.x1,'" y1="',a.y1,'" x2="',a.x2,'" y2="',a.y2,'">\n']:"radial"===this.type&&(s=["<radialGradient ",o,' cx="',l?a.x1:a.x2,'" cy="',l?a.y1:a.y2,'" r="',l?a.r1:a.r2,'" fx="',l?a.x2:a.x1,'" fy="',l?a.y2:a.y1,'">\n']),"radial"===this.type){if(l)for((h=h.concat()).reverse(),r=0,n=h.length;r<n;r++)h[r].offset=1-h[r].offset;var p=Math.min(a.r1,a.r2);if(p>0){var v=p/Math.max(a.r1,a.r2);for(r=0,n=h.length;r<n;r++)h[r].offset+=v*(1-h[r].offset)}}for(r=0,n=h.length;r<n;r++){var m=h[r];s.push("<stop ",'offset="',100*m.offset+"%",'" style="stop-color:',m.color,void 0!==m.opacity?";stop-opacity: "+m.opacity:";",'"/>\n')}return s.push("linear"===this.type?"</linearGradient>\n":"</radialGradient>\n"),s.join("")},toLive:function(t){var e,i,r,n=k.util.object.clone(this.coords);if(this.type){for("linear"===this.type?e=t.createLinearGradient(n.x1,n.y1,n.x2,n.y2):"radial"===this.type&&(e=t.createRadialGradient(n.x1,n.y1,n.r1,n.x2,n.y2,n.r2)),i=0,r=this.colorStops.length;i<r;i++){var s=this.colorStops[i].color,o=this.colorStops[i].opacity,a=this.colorStops[i].offset;void 0!==o&&(s=new k.Color(s).setAlpha(o).toRgba()),e.addColorStop(a,s)}return e}}}),k.util.object.extend(k.Gradient,{fromElement:function(t,e,i,r){var n=parseFloat(i)/(/%$/.test(i)?100:1);n=n<0?0:n>1?1:n,isNaN(n)&&(n=1);var s,o,a,h,l=t.getElementsByTagName("stop"),c="userSpaceOnUse"===t.getAttribute("gradientUnits")?"pixels":"percentage",u=t.getAttribute("gradientTransform")||"",f=[],d=0,g=0;for("linearGradient"===t.nodeName||"LINEARGRADIENT"===t.nodeName?(s="linear",o=function getLinearCoords(t){return{x1:t.getAttribute("x1")||0,y1:t.getAttribute("y1")||0,x2:t.getAttribute("x2")||"100%",y2:t.getAttribute("y2")||0}}(t)):(s="radial",o=function getRadialCoords(t){return{x1:t.getAttribute("fx")||t.getAttribute("cx")||"50%",y1:t.getAttribute("fy")||t.getAttribute("cy")||"50%",r1:0,x2:t.getAttribute("cx")||"50%",y2:t.getAttribute("cy")||"50%",r2:t.getAttribute("r")||"50%"}}(t)),a=l.length;a--;)f.push(getColorStop(l[a],n));return h=k.parseTransformAttribute(u),function __convertPercentUnitsToValues(t,e,i,r){var n,s;Object.keys(e).forEach((function(t){"Infinity"===(n=e[t])?s=1:"-Infinity"===n?s=0:(s=parseFloat(e[t],10),"string"==typeof n&&/^(\d+\.\d+)%|(\d+)%$/.test(n)&&(s*=.01,"pixels"===r&&("x1"!==t&&"x2"!==t&&"r2"!==t||(s*=i.viewBoxWidth||i.width),"y1"!==t&&"y2"!==t||(s*=i.viewBoxHeight||i.height)))),e[t]=s}))}(0,o,r,c),"pixels"===c&&(d=-e.left,g=-e.top),new k.Gradient({id:t.getAttribute("id"),type:s,coords:o,colorStops:f,gradientUnits:c,gradientTransform:h,offsetX:d,offsetY:g})}})}(),function(){"use strict";var t=k.util.toFixed;k.Pattern=k.util.createClass({repeat:"repeat",offsetX:0,offsetY:0,crossOrigin:"",patternTransform:null,initialize:function(t,e){if(t||(t={}),this.id=k.Object.__uid++,this.setOptions(t),!t.source||t.source&&"string"!=typeof t.source)e&&e(this);else{var i=this;this.source=k.util.createImage(),k.util.loadImage(t.source,(function(t,r){i.source=t,e&&e(i,r)}),null,this.crossOrigin)}},toObject:function(e){var i,r,n=k.Object.NUM_FRACTION_DIGITS;return"string"==typeof this.source.src?i=this.source.src:"object"==typeof this.source&&this.source.toDataURL&&(i=this.source.toDataURL()),r={type:"pattern",source:i,repeat:this.repeat,crossOrigin:this.crossOrigin,offsetX:t(this.offsetX,n),offsetY:t(this.offsetY,n),patternTransform:this.patternTransform?this.patternTransform.concat():null},k.util.populateWithProperties(this,r,e),r},toSVG:function(t){var e="function"==typeof this.source?this.source():this.source,i=e.width/t.width,r=e.height/t.height,n=this.offsetX/t.width,s=this.offsetY/t.height,o="";return"repeat-x"!==this.repeat&&"no-repeat"!==this.repeat||(r=1,s&&(r+=Math.abs(s))),"repeat-y"!==this.repeat&&"no-repeat"!==this.repeat||(i=1,n&&(i+=Math.abs(n))),e.src?o=e.src:e.toDataURL&&(o=e.toDataURL()),'<pattern id="SVGID_'+this.id+'" x="'+n+'" y="'+s+'" width="'+i+'" height="'+r+'">\n<image x="0" y="0" width="'+e.width+'" height="'+e.height+'" xlink:href="'+o+'"></image>\n</pattern>\n'},setOptions:function(t){for(var e in t)this[e]=t[e]},toLive:function(t){var e=this.source;if(!e)return"";if(void 0!==e.src){if(!e.complete)return"";if(0===e.naturalWidth||0===e.naturalHeight)return""}return t.createPattern(e,this.repeat)}})}(),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.toFixed;e.Shadow?e.warn("fabric.Shadow is already defined."):(e.Shadow=e.util.createClass({color:"rgb(0,0,0)",blur:0,offsetX:0,offsetY:0,affectStroke:!1,includeDefaultValues:!0,nonScaling:!1,initialize:function(t){for(var i in"string"==typeof t&&(t=this._parseShadow(t)),t)this[i]=t[i];this.id=e.Object.__uid++},_parseShadow:function(t){var i=t.trim(),r=e.Shadow.reOffsetsAndBlur.exec(i)||[];return{color:(i.replace(e.Shadow.reOffsetsAndBlur,"")||"rgb(0,0,0)").trim(),offsetX:parseFloat(r[1],10)||0,offsetY:parseFloat(r[2],10)||0,blur:parseFloat(r[3],10)||0}},toString:function(){return[this.offsetX,this.offsetY,this.blur,this.color].join("px ")},toSVG:function(t){var r=40,n=40,s=e.Object.NUM_FRACTION_DIGITS,o=e.util.rotateVector({x:this.offsetX,y:this.offsetY},e.util.degreesToRadians(-t.angle)),a=new e.Color(this.color);return t.width&&t.height&&(r=100*i((Math.abs(o.x)+this.blur)/t.width,s)+20,n=100*i((Math.abs(o.y)+this.blur)/t.height,s)+20),t.flipX&&(o.x*=-1),t.flipY&&(o.y*=-1),'<filter id="SVGID_'+this.id+'" y="-'+n+'%" height="'+(100+2*n)+'%" x="-'+r+'%" width="'+(100+2*r)+'%" >\n\t<feGaussianBlur in="SourceAlpha" stdDeviation="'+i(this.blur?this.blur/2:0,s)+'"></feGaussianBlur>\n\t<feOffset dx="'+i(o.x,s)+'" dy="'+i(o.y,s)+'" result="oBlur" ></feOffset>\n\t<feFlood flood-color="'+a.toRgb()+'" flood-opacity="'+a.getAlpha()+'"/>\n\t<feComposite in2="oBlur" operator="in" />\n\t<feMerge>\n\t\t<feMergeNode></feMergeNode>\n\t\t<feMergeNode in="SourceGraphic"></feMergeNode>\n\t</feMerge>\n</filter>\n'},toObject:function(){if(this.includeDefaultValues)return{color:this.color,blur:this.blur,offsetX:this.offsetX,offsetY:this.offsetY,affectStroke:this.affectStroke,nonScaling:this.nonScaling};var t={},i=e.Shadow.prototype;return["color","blur","offsetX","offsetY","affectStroke","nonScaling"].forEach((function(e){this[e]!==i[e]&&(t[e]=this[e])}),this),t}}),e.Shadow.reOffsetsAndBlur=/(?:\s|^)(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(-?\d+(?:\.\d*)?(?:px)?(?:\s?|$))?(\d+(?:\.\d*)?(?:px)?)?(?:\s?|$)(?:$|\s)/)}(e),function(){"use strict";if(k.StaticCanvas)k.warn("fabric.StaticCanvas is already defined.");else{var t=k.util.object.extend,e=k.util.getElementOffset,i=k.util.removeFromArray,r=k.util.toFixed,n=k.util.transformPoint,s=k.util.invertTransform,o=k.util.getNodeCanvas,a=k.util.createCanvasElement,h=new Error("Could not initialize `canvas` element");k.StaticCanvas=k.util.createClass(k.CommonMethods,{initialize:function(t,e){e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e)},backgroundColor:"",backgroundImage:null,overlayColor:"",overlayImage:null,includeDefaultValues:!0,stateful:!1,renderOnAddRemove:!0,controlsAboveOverlay:!1,allowTouchScrolling:!1,imageSmoothingEnabled:!0,viewportTransform:k.iMatrix.concat(),backgroundVpt:!0,overlayVpt:!0,enableRetinaScaling:!0,vptCoords:{},skipOffscreen:!0,clipPath:void 0,_initStatic:function(t,e){var i=this.requestRenderAllBound;this._objects=[],this._createLowerCanvas(t),this._initOptions(e),this.interactive||this._initRetinaScaling(),e.overlayImage&&this.setOverlayImage(e.overlayImage,i),e.backgroundImage&&this.setBackgroundImage(e.backgroundImage,i),e.backgroundColor&&this.setBackgroundColor(e.backgroundColor,i),e.overlayColor&&this.setOverlayColor(e.overlayColor,i),this.calcOffset()},_isRetinaScaling:function(){return 1!==k.devicePixelRatio&&this.enableRetinaScaling},getRetinaScaling:function(){return this._isRetinaScaling()?k.devicePixelRatio:1},_initRetinaScaling:function(){if(this._isRetinaScaling()){var t=k.devicePixelRatio;this.__initRetinaScaling(t,this.lowerCanvasEl,this.contextContainer),this.upperCanvasEl&&this.__initRetinaScaling(t,this.upperCanvasEl,this.contextTop)}},__initRetinaScaling:function(t,e,i){e.setAttribute("width",this.width*t),e.setAttribute("height",this.height*t),i.scale(t,t)},calcOffset:function(){return this._offset=e(this.lowerCanvasEl),this},setOverlayImage:function(t,e,i){return this.__setBgOverlayImage("overlayImage",t,e,i)},setBackgroundImage:function(t,e,i){return this.__setBgOverlayImage("backgroundImage",t,e,i)},setOverlayColor:function(t,e){return this.__setBgOverlayColor("overlayColor",t,e)},setBackgroundColor:function(t,e){return this.__setBgOverlayColor("backgroundColor",t,e)},__setBgOverlayImage:function(t,e,i,r){return"string"==typeof e?k.util.loadImage(e,(function(e,n){if(e){var s=new k.Image(e,r);this[t]=s,s.canvas=this}i&&i(e,n)}),this,r&&r.crossOrigin):(r&&e.setOptions(r),this[t]=e,e&&(e.canvas=this),i&&i(e,!1)),this},__setBgOverlayColor:function(t,e,i){return this[t]=e,this._initGradient(e,t),this._initPattern(e,t,i),this},_createCanvasElement:function(){var t=a();if(!t)throw h;if(t.style||(t.style={}),void 0===t.getContext)throw h;return t},_initOptions:function(t){var e=this.lowerCanvasEl;this._setOptions(t),this.width=this.width||parseInt(e.width,10)||0,this.height=this.height||parseInt(e.height,10)||0,this.lowerCanvasEl.style&&(e.width=this.width,e.height=this.height,e.style.width=this.width+"px",e.style.height=this.height+"px",this.viewportTransform=this.viewportTransform.slice())},_createLowerCanvas:function(t){t&&t.getContext?this.lowerCanvasEl=t:this.lowerCanvasEl=k.util.getById(t)||this._createCanvasElement(),k.util.addClass(this.lowerCanvasEl,"lower-canvas"),this._originalCanvasStyle=this.lowerCanvasEl.style,this.interactive&&this._applyCanvasStyle(this.lowerCanvasEl),this.contextContainer=this.lowerCanvasEl.getContext("2d")},getWidth:function(){return this.width},getHeight:function(){return this.height},setWidth:function(t,e){return this.setDimensions({width:t},e)},setHeight:function(t,e){return this.setDimensions({height:t},e)},setDimensions:function(t,e){var i;for(var r in e=e||{},t)i=t[r],e.cssOnly||(this._setBackstoreDimension(r,t[r]),i+="px",this.hasLostContext=!0),e.backstoreOnly||this._setCssDimension(r,i);return this._isCurrentlyDrawing&&this.freeDrawingBrush&&this.freeDrawingBrush._setBrushStyles(),this._initRetinaScaling(),this.calcOffset(),e.cssOnly||this.requestRenderAll(),this},_setBackstoreDimension:function(t,e){return this.lowerCanvasEl[t]=e,this.upperCanvasEl&&(this.upperCanvasEl[t]=e),this.cacheCanvasEl&&(this.cacheCanvasEl[t]=e),this[t]=e,this},_setCssDimension:function(t,e){return this.lowerCanvasEl.style[t]=e,this.upperCanvasEl&&(this.upperCanvasEl.style[t]=e),this.wrapperEl&&(this.wrapperEl.style[t]=e),this},getZoom:function(){return this.viewportTransform[0]},setViewportTransform:function(t){var e,i,r,n=this._activeObject,s=this.backgroundImage,o=this.overlayImage;for(this.viewportTransform=t,i=0,r=this._objects.length;i<r;i++)(e=this._objects[i]).group||e.setCoords(!0);return n&&n.setCoords(),s&&s.setCoords(!0),o&&o.setCoords(!0),this.calcViewportBoundaries(),this.renderOnAddRemove&&this.requestRenderAll(),this},zoomToPoint:function(t,e){var i=t,r=this.viewportTransform.slice(0);t=n(t,s(this.viewportTransform)),r[0]=e,r[3]=e;var o=n(t,r);return r[4]+=i.x-o.x,r[5]+=i.y-o.y,this.setViewportTransform(r)},setZoom:function(t){return this.zoomToPoint(new k.Point(0,0),t),this},absolutePan:function(t){var e=this.viewportTransform.slice(0);return e[4]=-t.x,e[5]=-t.y,this.setViewportTransform(e)},relativePan:function(t){return this.absolutePan(new k.Point(-t.x-this.viewportTransform[4],-t.y-this.viewportTransform[5]))},getElement:function(){return this.lowerCanvasEl},_onObjectAdded:function(t){this.stateful&&t.setupState(),t._set("canvas",this),t.setCoords(),this.fire("object:added",{target:t}),t.fire("added")},_onObjectRemoved:function(t){this.fire("object:removed",{target:t}),t.fire("removed"),delete t.canvas},clearContext:function(t){return t.clearRect(0,0,this.width,this.height),this},getContext:function(){return this.contextContainer},clear:function(){return this.remove.apply(this,this.getObjects()),this.backgroundImage=null,this.overlayImage=null,this.backgroundColor="",this.overlayColor="",this._hasITextHandlers&&(this.off("mouse:up",this._mouseUpITextHandler),this._iTextInstances=null,this._hasITextHandlers=!1),this.clearContext(this.contextContainer),this.fire("canvas:cleared"),this.renderOnAddRemove&&this.requestRenderAll(),this},renderAll:function(){var t=this.contextContainer;return this.renderCanvas(t,this._objects),this},renderAndReset:function(){this.isRendering=0,this.renderAll()},requestRenderAll:function(){return this.isRendering||(this.isRendering=k.util.requestAnimFrame(this.renderAndResetBound)),this},calcViewportBoundaries:function(){var t={},e=this.width,i=this.height,r=s(this.viewportTransform);return t.tl=n({x:0,y:0},r),t.br=n({x:e,y:i},r),t.tr=new k.Point(t.br.x,t.tl.y),t.bl=new k.Point(t.tl.x,t.br.y),this.vptCoords=t,t},cancelRequestedRender:function(){this.isRendering&&(k.util.cancelAnimFrame(this.isRendering),this.isRendering=0)},renderCanvas:function(t,e){var i=this.viewportTransform,r=this.clipPath;this.cancelRequestedRender(),this.calcViewportBoundaries(),this.clearContext(t),k.util.setImageSmoothing(t,this.imageSmoothingEnabled),this.fire("before:render",{ctx:t}),this._renderBackground(t),t.save(),t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this._renderObjects(t,e),t.restore(),!this.controlsAboveOverlay&&this.interactive&&this.drawControls(t),r&&(r.canvas=this,r.shouldCache(),r._transformDone=!0,r.renderCache({forClipping:!0}),this.drawClipPathOnCanvas(t)),this._renderOverlay(t),this.controlsAboveOverlay&&this.interactive&&this.drawControls(t),this.fire("after:render",{ctx:t})},drawClipPathOnCanvas:function(t){var e=this.viewportTransform,i=this.clipPath;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5]),t.globalCompositeOperation="destination-in",i.transform(t),t.scale(1/i.zoomX,1/i.zoomY),t.drawImage(i._cacheCanvas,-i.cacheTranslationX,-i.cacheTranslationY),t.restore()},_renderObjects:function(t,e){var i,r;for(i=0,r=e.length;i<r;++i)e[i]&&e[i].render(t)},_renderBackgroundOrOverlay:function(t,e){var i=this[e+"Color"],r=this[e+"Image"],n=this.viewportTransform,s=this[e+"Vpt"];if(i||r){if(i){t.save(),t.beginPath(),t.moveTo(0,0),t.lineTo(this.width,0),t.lineTo(this.width,this.height),t.lineTo(0,this.height),t.closePath(),t.fillStyle=i.toLive?i.toLive(t,this):i,s&&t.transform(n[0],n[1],n[2],n[3],n[4],n[5]),t.transform(1,0,0,1,i.offsetX||0,i.offsetY||0);var o=i.gradientTransform||i.patternTransform;o&&t.transform(o[0],o[1],o[2],o[3],o[4],o[5]),t.fill(),t.restore()}r&&(t.save(),s&&t.transform(n[0],n[1],n[2],n[3],n[4],n[5]),r.render(t),t.restore())}},_renderBackground:function(t){this._renderBackgroundOrOverlay(t,"background")},_renderOverlay:function(t){this._renderBackgroundOrOverlay(t,"overlay")},getCenter:function(){return{top:this.height/2,left:this.width/2}},centerObjectH:function(t){return this._centerObject(t,new k.Point(this.getCenter().left,t.getCenterPoint().y))},centerObjectV:function(t){return this._centerObject(t,new k.Point(t.getCenterPoint().x,this.getCenter().top))},centerObject:function(t){var e=this.getCenter();return this._centerObject(t,new k.Point(e.left,e.top))},viewportCenterObject:function(t){var e=this.getVpCenter();return this._centerObject(t,e)},viewportCenterObjectH:function(t){var e=this.getVpCenter();return this._centerObject(t,new k.Point(e.x,t.getCenterPoint().y)),this},viewportCenterObjectV:function(t){var e=this.getVpCenter();return this._centerObject(t,new k.Point(t.getCenterPoint().x,e.y))},getVpCenter:function(){var t=this.getCenter(),e=s(this.viewportTransform);return n({x:t.left,y:t.top},e)},_centerObject:function(t,e){return t.setPositionByOrigin(e,"center","center"),t.setCoords(),this.renderOnAddRemove&&this.requestRenderAll(),this},toDatalessJSON:function(t){return this.toDatalessObject(t)},toObject:function(t){return this._toObjectMethod("toObject",t)},toDatalessObject:function(t){return this._toObjectMethod("toDatalessObject",t)},_toObjectMethod:function(e,i){var r=this.clipPath,n={version:k.version,objects:this._toObjects(e,i)};return r&&!r.excludeFromExport&&(n.clipPath=this._toObject(this.clipPath,e,i)),t(n,this.__serializeBgOverlay(e,i)),k.util.populateWithProperties(this,n,i),n},_toObjects:function(t,e){return this._objects.filter((function(t){return!t.excludeFromExport})).map((function(i){return this._toObject(i,t,e)}),this)},_toObject:function(t,e,i){var r;this.includeDefaultValues||(r=t.includeDefaultValues,t.includeDefaultValues=!1);var n=t[e](i);return this.includeDefaultValues||(t.includeDefaultValues=r),n},__serializeBgOverlay:function(t,e){var i={},r=this.backgroundImage,n=this.overlayImage,s=this.backgroundColor,o=this.overlayColor;return s&&s.toObject?s.excludeFromExport||(i.background=s.toObject(e)):s&&(i.background=s),o&&o.toObject?o.excludeFromExport||(i.overlay=o.toObject(e)):o&&(i.overlay=o),r&&!r.excludeFromExport&&(i.backgroundImage=this._toObject(r,t,e)),n&&!n.excludeFromExport&&(i.overlayImage=this._toObject(n,t,e)),i},svgViewportTransformation:!0,toSVG:function(t,e){t||(t={}),t.reviver=e;var i=[];return this._setSVGPreamble(i,t),this._setSVGHeader(i,t),this.clipPath&&i.push('<g clip-path="url(#'+this.clipPath.clipPathId+')" >\n'),this._setSVGBgOverlayColor(i,"background"),this._setSVGBgOverlayImage(i,"backgroundImage",e),this._setSVGObjects(i,e),this.clipPath&&i.push("</g>\n"),this._setSVGBgOverlayColor(i,"overlay"),this._setSVGBgOverlayImage(i,"overlayImage",e),i.push("</svg>"),i.join("")},_setSVGPreamble:function(t,e){e.suppressPreamble||t.push('<?xml version="1.0" encoding="',e.encoding||"UTF-8",'" standalone="no" ?>\n','<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" ','"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n')},_setSVGHeader:function(t,e){var i,n=e.width||this.width,s=e.height||this.height,o='viewBox="0 0 '+this.width+" "+this.height+'" ',a=k.Object.NUM_FRACTION_DIGITS;e.viewBox?o='viewBox="'+e.viewBox.x+" "+e.viewBox.y+" "+e.viewBox.width+" "+e.viewBox.height+'" ':this.svgViewportTransformation&&(i=this.viewportTransform,o='viewBox="'+r(-i[4]/i[0],a)+" "+r(-i[5]/i[3],a)+" "+r(this.width/i[0],a)+" "+r(this.height/i[3],a)+'" '),t.push("<svg ",'xmlns="http://www.w3.org/2000/svg" ','xmlns:xlink="http://www.w3.org/1999/xlink" ','version="1.1" ','width="',n,'" ','height="',s,'" ',o,'xml:space="preserve">\n',"<desc>Created with Fabric.js ",k.version,"</desc>\n","<defs>\n",this.createSVGFontFacesMarkup(),this.createSVGRefElementsMarkup(),this.createSVGClipPathMarkup(e),"</defs>\n")},createSVGClipPathMarkup:function(t){var e=this.clipPath;return e?(e.clipPathId="CLIPPATH_"+k.Object.__uid++,'<clipPath id="'+e.clipPathId+'" >\n'+this.clipPath.toClipPathSVG(t.reviver)+"</clipPath>\n"):""},createSVGRefElementsMarkup:function(){var t=this;return["background","overlay"].map((function(e){var i=t[e+"Color"];if(i&&i.toLive){var r=t[e+"Vpt"],n=t.viewportTransform,s={width:t.width/(r?n[0]:1),height:t.height/(r?n[3]:1)};return i.toSVG(s,{additionalTransform:r?k.util.matrixToSVG(n):""})}})).join("")},createSVGFontFacesMarkup:function(){var t,e,i,r,n,s,o,a,h="",l={},c=k.fontPaths,u=[];for(this._objects.forEach((function add(t){u.push(t),t._objects&&t._objects.forEach(add)})),o=0,a=u.length;o<a;o++)if(e=(t=u[o]).fontFamily,-1!==t.type.indexOf("text")&&!l[e]&&c[e]&&(l[e]=!0,t.styles))for(n in i=t.styles)for(s in r=i[n])!l[e=r[s].fontFamily]&&c[e]&&(l[e]=!0);for(var f in l)h+=["\t\t@font-face {\n","\t\t\tfont-family: '",f,"';\n","\t\t\tsrc: url('",c[f],"');\n","\t\t}\n"].join("");return h&&(h=['\t<style type="text/css">',"<![CDATA[\n",h,"]]>","</style>\n"].join("")),h},_setSVGObjects:function(t,e){var i,r,n,s=this._objects;for(r=0,n=s.length;r<n;r++)(i=s[r]).excludeFromExport||this._setSVGObject(t,i,e)},_setSVGObject:function(t,e,i){t.push(e.toSVG(i))},_setSVGBgOverlayImage:function(t,e,i){this[e]&&!this[e].excludeFromExport&&this[e].toSVG&&t.push(this[e].toSVG(i))},_setSVGBgOverlayColor:function(t,e){var i=this[e+"Color"],r=this.viewportTransform,n=this.width,s=this.height;if(i)if(i.toLive){var o=i.repeat,a=k.util.invertTransform(r),h=this[e+"Vpt"]?k.util.matrixToSVG(a):"";t.push('<rect transform="'+h+" translate(",n/2,",",s/2,')"',' x="',i.offsetX-n/2,'" y="',i.offsetY-s/2,'" ','width="',"repeat-y"===o||"no-repeat"===o?i.source.width:n,'" height="',"repeat-x"===o||"no-repeat"===o?i.source.height:s,'" fill="url(#SVGID_'+i.id+')"',"></rect>\n")}else t.push('<rect x="0" y="0" width="100%" height="100%" ','fill="',i,'"',"></rect>\n")},sendToBack:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(e=(n=s._objects).length;e--;)r=n[e],i(this._objects,r),this._objects.unshift(r);else i(this._objects,t),this._objects.unshift(t);return this.renderOnAddRemove&&this.requestRenderAll(),this},bringToFront:function(t){if(!t)return this;var e,r,n,s=this._activeObject;if(t===s&&"activeSelection"===t.type)for(n=s._objects,e=0;e<n.length;e++)r=n[e],i(this._objects,r),this._objects.push(r);else i(this._objects,t),this._objects.push(t);return this.renderOnAddRemove&&this.requestRenderAll(),this},sendBackwards:function(t,e){if(!t)return this;var r,n,s,o,a,h=this._activeObject,l=0;if(t===h&&"activeSelection"===t.type)for(a=h._objects,r=0;r<a.length;r++)n=a[r],(s=this._objects.indexOf(n))>0+l&&(o=s-1,i(this._objects,n),this._objects.splice(o,0,n)),l++;else 0!==(s=this._objects.indexOf(t))&&(o=this._findNewLowerIndex(t,s,e),i(this._objects,t),this._objects.splice(o,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewLowerIndex:function(t,e,i){var r,n;if(i)for(r=e,n=e-1;n>=0;--n){if(t.intersectsWithObject(this._objects[n])||t.isContainedWithinObject(this._objects[n])||this._objects[n].isContainedWithinObject(t)){r=n;break}}else r=e-1;return r},bringForward:function(t,e){if(!t)return this;var r,n,s,o,a,h=this._activeObject,l=0;if(t===h&&"activeSelection"===t.type)for(r=(a=h._objects).length;r--;)n=a[r],(s=this._objects.indexOf(n))<this._objects.length-1-l&&(o=s+1,i(this._objects,n),this._objects.splice(o,0,n)),l++;else(s=this._objects.indexOf(t))!==this._objects.length-1&&(o=this._findNewUpperIndex(t,s,e),i(this._objects,t),this._objects.splice(o,0,t));return this.renderOnAddRemove&&this.requestRenderAll(),this},_findNewUpperIndex:function(t,e,i){var r,n,s;if(i)for(r=e,n=e+1,s=this._objects.length;n<s;++n){if(t.intersectsWithObject(this._objects[n])||t.isContainedWithinObject(this._objects[n])||this._objects[n].isContainedWithinObject(t)){r=n;break}}else r=e+1;return r},moveTo:function(t,e){return i(this._objects,t),this._objects.splice(e,0,t),this.renderOnAddRemove&&this.requestRenderAll()},dispose:function(){return this.isRendering&&(k.util.cancelAnimFrame(this.isRendering),this.isRendering=0),this.forEachObject((function(t){t.dispose&&t.dispose()})),this._objects=[],this.backgroundImage&&this.backgroundImage.dispose&&this.backgroundImage.dispose(),this.backgroundImage=null,this.overlayImage&&this.overlayImage.dispose&&this.overlayImage.dispose(),this.overlayImage=null,this._iTextInstances=null,this.contextContainer=null,this.lowerCanvasEl.classList.remove("lower-canvas"),this.lowerCanvasEl.style=this._originalCanvasStyle,delete this._originalCanvasStyle,this.lowerCanvasEl.setAttribute("width",this.width),this.lowerCanvasEl.setAttribute("height",this.height),k.util.cleanUpJsdomNode(this.lowerCanvasEl),this.lowerCanvasEl=void 0,this},toString:function(){return"#<fabric.Canvas ("+this.complexity()+"): { objects: "+this._objects.length+" }>"}}),t(k.StaticCanvas.prototype,k.Observable),t(k.StaticCanvas.prototype,k.Collection),t(k.StaticCanvas.prototype,k.DataURLExporter),t(k.StaticCanvas,{EMPTY_JSON:'{"objects": [], "background": "white"}',supports:function(t){var e=a();if(!e||!e.getContext)return null;var i=e.getContext("2d");return i&&"setLineDash"===t?void 0!==i.setLineDash:null}}),k.StaticCanvas.prototype.toJSON=k.StaticCanvas.prototype.toObject,k.isLikelyNode&&(k.StaticCanvas.prototype.createPNGStream=function(){var t=o(this.lowerCanvasEl);return t&&t.createPNGStream()},k.StaticCanvas.prototype.createJPEGStream=function(t){var e=o(this.lowerCanvasEl);return e&&e.createJPEGStream(t)})}}(),k.BaseBrush=k.util.createClass({color:"rgb(0, 0, 0)",width:1,shadow:null,strokeLineCap:"round",strokeLineJoin:"round",strokeMiterLimit:10,strokeDashArray:null,limitedToCanvasSize:!1,_setBrushStyles:function(){var t=this.canvas.contextTop;t.strokeStyle=this.color,t.lineWidth=this.width,t.lineCap=this.strokeLineCap,t.miterLimit=this.strokeMiterLimit,t.lineJoin=this.strokeLineJoin,t.setLineDash(this.strokeDashArray||[])},_saveAndTransform:function(t){var e=this.canvas.viewportTransform;t.save(),t.transform(e[0],e[1],e[2],e[3],e[4],e[5])},_setShadow:function(){if(this.shadow){var t=this.canvas,e=this.shadow,i=t.contextTop,r=t.getZoom();t&&t._isRetinaScaling()&&(r*=k.devicePixelRatio),i.shadowColor=e.color,i.shadowBlur=e.blur*r,i.shadowOffsetX=e.offsetX*r,i.shadowOffsetY=e.offsetY*r}},needsFullRender:function(){return new k.Color(this.color).getAlpha()<1||!!this.shadow},_resetShadow:function(){var t=this.canvas.contextTop;t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0},_isOutSideCanvas:function(t){return t.x<0||t.x>this.canvas.getWidth()||t.y<0||t.y>this.canvas.getHeight()}}),k.PencilBrush=k.util.createClass(k.BaseBrush,{decimate:.4,initialize:function(t){this.canvas=t,this._points=[]},_drawSegment:function(t,e,i){var r=e.midPointFrom(i);return t.quadraticCurveTo(e.x,e.y,r.x,r.y),r},onMouseDown:function(t,e){this.canvas._isMainEvent(e.e)&&(this._prepareForDrawing(t),this._captureDrawingPath(t),this._render())},onMouseMove:function(t,e){if(this.canvas._isMainEvent(e.e)&&(!0!==this.limitedToCanvasSize||!this._isOutSideCanvas(t))&&this._captureDrawingPath(t)&&this._points.length>1)if(this.needsFullRender())this.canvas.clearContext(this.canvas.contextTop),this._render();else{var i=this._points,r=i.length,n=this.canvas.contextTop;this._saveAndTransform(n),this.oldEnd&&(n.beginPath(),n.moveTo(this.oldEnd.x,this.oldEnd.y)),this.oldEnd=this._drawSegment(n,i[r-2],i[r-1],!0),n.stroke(),n.restore()}},onMouseUp:function(t){return!this.canvas._isMainEvent(t.e)||(this.oldEnd=void 0,this._finalizeAndAddPath(),!1)},_prepareForDrawing:function(t){var e=new k.Point(t.x,t.y);this._reset(),this._addPoint(e),this.canvas.contextTop.moveTo(e.x,e.y)},_addPoint:function(t){return!(this._points.length>1&&t.eq(this._points[this._points.length-1])||(this._points.push(t),0))},_reset:function(){this._points=[],this._setBrushStyles(),this._setShadow()},_captureDrawingPath:function(t){var e=new k.Point(t.x,t.y);return this._addPoint(e)},_render:function(){var t,e,i=this.canvas.contextTop,r=this._points[0],n=this._points[1];if(this._saveAndTransform(i),i.beginPath(),2===this._points.length&&r.x===n.x&&r.y===n.y){var s=this.width/1e3;r=new k.Point(r.x,r.y),n=new k.Point(n.x,n.y),r.x-=s,n.x+=s}for(i.moveTo(r.x,r.y),t=1,e=this._points.length;t<e;t++)this._drawSegment(i,r,n),r=this._points[t],n=this._points[t+1];i.lineTo(r.x,r.y),i.stroke(),i.restore()},convertPointsToSVGPath:function(t){var e=this.width/1e3;return k.util.getSmoothPathFromPoints(t,e)},_isEmptySVGPath:function(t){return"M 0 0 Q 0 0 0 0 L 0 0"===k.util.joinPath(t)},createPath:function(t){var e=new k.Path(t,{fill:null,stroke:this.color,strokeWidth:this.width,strokeLineCap:this.strokeLineCap,strokeMiterLimit:this.strokeMiterLimit,strokeLineJoin:this.strokeLineJoin,strokeDashArray:this.strokeDashArray});return this.shadow&&(this.shadow.affectStroke=!0,e.shadow=new k.Shadow(this.shadow)),e},decimatePoints:function(t,e){if(t.length<=2)return t;var i,r=this.canvas.getZoom(),n=Math.pow(e/r,2),s=t.length-1,o=t[0],a=[o];for(i=1;i<s-1;i++)Math.pow(o.x-t[i].x,2)+Math.pow(o.y-t[i].y,2)>=n&&(o=t[i],a.push(o));return a.push(t[s]),a},_finalizeAndAddPath:function(){this.canvas.contextTop.closePath(),this.decimate&&(this._points=this.decimatePoints(this._points,this.decimate));var t=this.convertPointsToSVGPath(this._points);if(this._isEmptySVGPath(t))this.canvas.requestRenderAll();else{var e=this.createPath(t);this.canvas.clearContext(this.canvas.contextTop),this.canvas.fire("before:path:created",{path:e}),this.canvas.add(e),this.canvas.requestRenderAll(),e.setCoords(),this._resetShadow(),this.canvas.fire("path:created",{path:e})}}}),k.CircleBrush=k.util.createClass(k.BaseBrush,{width:10,initialize:function(t){this.canvas=t,this.points=[]},drawDot:function(t){var e=this.addPoint(t),i=this.canvas.contextTop;this._saveAndTransform(i),this.dot(i,e),i.restore()},dot:function(t,e){t.fillStyle=e.fill,t.beginPath(),t.arc(e.x,e.y,e.radius,0,2*Math.PI,!1),t.closePath(),t.fill()},onMouseDown:function(t){this.points.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.drawDot(t)},_render:function(){var t,e,i=this.canvas.contextTop,r=this.points;for(this._saveAndTransform(i),t=0,e=r.length;t<e;t++)this.dot(i,r[t]);i.restore()},onMouseMove:function(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.needsFullRender()?(this.canvas.clearContext(this.canvas.contextTop),this.addPoint(t),this._render()):this.drawDot(t))},onMouseUp:function(){var t,e,i=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;var r=[];for(t=0,e=this.points.length;t<e;t++){var n=this.points[t],s=new k.Circle({radius:n.radius,left:n.x,top:n.y,originX:"center",originY:"center",fill:n.fill});this.shadow&&(s.shadow=new k.Shadow(this.shadow)),r.push(s)}var o=new k.Group(r);o.canvas=this.canvas,this.canvas.fire("before:path:created",{path:o}),this.canvas.add(o),this.canvas.fire("path:created",{path:o}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=i,this.canvas.requestRenderAll()},addPoint:function(t){var e=new k.Point(t.x,t.y),i=k.util.getRandomInt(Math.max(0,this.width-20),this.width+20)/2,r=new k.Color(this.color).setAlpha(k.util.getRandomInt(0,100)/100).toRgba();return e.radius=i,e.fill=r,this.points.push(e),e}}),k.SprayBrush=k.util.createClass(k.BaseBrush,{width:10,density:20,dotWidth:1,dotWidthVariance:1,randomOpacity:!1,optimizeOverlapping:!0,initialize:function(t){this.canvas=t,this.sprayChunks=[]},onMouseDown:function(t){this.sprayChunks.length=0,this.canvas.clearContext(this.canvas.contextTop),this._setShadow(),this.addSprayChunk(t),this.render(this.sprayChunkPoints)},onMouseMove:function(t){!0===this.limitedToCanvasSize&&this._isOutSideCanvas(t)||(this.addSprayChunk(t),this.render(this.sprayChunkPoints))},onMouseUp:function(){var t=this.canvas.renderOnAddRemove;this.canvas.renderOnAddRemove=!1;for(var e=[],i=0,r=this.sprayChunks.length;i<r;i++)for(var n=this.sprayChunks[i],s=0,o=n.length;s<o;s++){var a=new k.Rect({width:n[s].width,height:n[s].width,left:n[s].x+1,top:n[s].y+1,originX:"center",originY:"center",fill:this.color});e.push(a)}this.optimizeOverlapping&&(e=this._getOptimizedRects(e));var h=new k.Group(e);this.shadow&&h.set("shadow",new k.Shadow(this.shadow)),this.canvas.fire("before:path:created",{path:h}),this.canvas.add(h),this.canvas.fire("path:created",{path:h}),this.canvas.clearContext(this.canvas.contextTop),this._resetShadow(),this.canvas.renderOnAddRemove=t,this.canvas.requestRenderAll()},_getOptimizedRects:function(t){var e,i,r,n={};for(i=0,r=t.length;i<r;i++)n[e=t[i].left+""+t[i].top]||(n[e]=t[i]);var s=[];for(e in n)s.push(n[e]);return s},render:function(t){var e,i,r=this.canvas.contextTop;for(r.fillStyle=this.color,this._saveAndTransform(r),e=0,i=t.length;e<i;e++){var n=t[e];void 0!==n.opacity&&(r.globalAlpha=n.opacity),r.fillRect(n.x,n.y,n.width,n.width)}r.restore()},_render:function(){var t,e,i=this.canvas.contextTop;for(i.fillStyle=this.color,this._saveAndTransform(i),t=0,e=this.sprayChunks.length;t<e;t++)this.render(this.sprayChunks[t]);i.restore()},addSprayChunk:function(t){this.sprayChunkPoints=[];var e,i,r,n,s=this.width/2;for(n=0;n<this.density;n++){e=k.util.getRandomInt(t.x-s,t.x+s),i=k.util.getRandomInt(t.y-s,t.y+s),r=this.dotWidthVariance?k.util.getRandomInt(Math.max(1,this.dotWidth-this.dotWidthVariance),this.dotWidth+this.dotWidthVariance):this.dotWidth;var o=new k.Point(e,i);o.width=r,this.randomOpacity&&(o.opacity=k.util.getRandomInt(0,100)/100),this.sprayChunkPoints.push(o)}this.sprayChunks.push(this.sprayChunkPoints)}}),k.PatternBrush=k.util.createClass(k.PencilBrush,{getPatternSrc:function(){var t=k.util.createCanvasElement(),e=t.getContext("2d");return t.width=t.height=25,e.fillStyle=this.color,e.beginPath(),e.arc(10,10,10,0,2*Math.PI,!1),e.closePath(),e.fill(),t},getPatternSrcFunction:function(){return String(this.getPatternSrc).replace("this.color",'"'+this.color+'"')},getPattern:function(){return this.canvas.contextTop.createPattern(this.source||this.getPatternSrc(),"repeat")},_setBrushStyles:function(){this.callSuper("_setBrushStyles"),this.canvas.contextTop.strokeStyle=this.getPattern()},createPath:function(t){var e=this.callSuper("createPath",t),i=e._getLeftTopCoords().scalarAdd(e.strokeWidth/2);return e.stroke=new k.Pattern({source:this.source||this.getPatternSrcFunction(),offsetX:-i.x,offsetY:-i.y}),e}}),function(){var t=k.util.getPointer,e=k.util.degreesToRadians,i=k.util.isTouchEvent;for(var r in k.Canvas=k.util.createClass(k.StaticCanvas,{initialize:function(t,e){e||(e={}),this.renderAndResetBound=this.renderAndReset.bind(this),this.requestRenderAllBound=this.requestRenderAll.bind(this),this._initStatic(t,e),this._initInteractive(),this._createCacheCanvas()},uniformScaling:!0,uniScaleKey:"shiftKey",centeredScaling:!1,centeredRotation:!1,centeredKey:"altKey",altActionKey:"shiftKey",interactive:!0,selection:!0,selectionKey:"shiftKey",altSelectionKey:null,selectionColor:"rgba(100, 100, 255, 0.3)",selectionDashArray:[],selectionBorderColor:"rgba(255, 255, 255, 0.3)",selectionLineWidth:1,selectionFullyContained:!1,hoverCursor:"move",moveCursor:"move",defaultCursor:"default",freeDrawingCursor:"crosshair",rotationCursor:"crosshair",notAllowedCursor:"not-allowed",containerClass:"canvas-container",perPixelTargetFind:!1,targetFindTolerance:0,skipTargetFind:!1,isDrawingMode:!1,preserveObjectStacking:!1,snapAngle:0,snapThreshold:null,stopContextMenu:!1,fireRightClick:!1,fireMiddleClick:!1,targets:[],_hoveredTarget:null,_hoveredTargets:[],_initInteractive:function(){this._currentTransform=null,this._groupSelector=null,this._initWrapperElement(),this._createUpperCanvas(),this._initEventListeners(),this._initRetinaScaling(),this.freeDrawingBrush=k.PencilBrush&&new k.PencilBrush(this),this.calcOffset()},_chooseObjectsToRender:function(){var t,e,i,r=this.getActiveObjects();if(r.length>0&&!this.preserveObjectStacking){e=[],i=[];for(var n=0,s=this._objects.length;n<s;n++)t=this._objects[n],-1===r.indexOf(t)?e.push(t):i.push(t);r.length>1&&(this._activeObject._objects=i),e.push.apply(e,i)}else e=this._objects;return e},renderAll:function(){!this.contextTopDirty||this._groupSelector||this.isDrawingMode||(this.clearContext(this.contextTop),this.contextTopDirty=!1),this.hasLostContext&&this.renderTopLayer(this.contextTop);var t=this.contextContainer;return this.renderCanvas(t,this._chooseObjectsToRender()),this},renderTopLayer:function(t){t.save(),this.isDrawingMode&&this._isCurrentlyDrawing&&(this.freeDrawingBrush&&this.freeDrawingBrush._render(),this.contextTopDirty=!0),this.selection&&this._groupSelector&&(this._drawSelection(t),this.contextTopDirty=!0),t.restore()},renderTop:function(){var t=this.contextTop;return this.clearContext(t),this.renderTopLayer(t),this.fire("after:render"),this},_normalizePointer:function(t,e){var i=t.calcTransformMatrix(),r=k.util.invertTransform(i),n=this.restorePointerVpt(e);return k.util.transformPoint(n,r)},isTargetTransparent:function(t,e,i){if(t.shouldCache()&&t._cacheCanvas&&t!==this._activeObject){var r=this._normalizePointer(t,{x:e,y:i}),n=Math.max(t.cacheTranslationX+r.x*t.zoomX,0),s=Math.max(t.cacheTranslationY+r.y*t.zoomY,0);return k.util.isTransparent(t._cacheContext,Math.round(n),Math.round(s),this.targetFindTolerance)}var o=this.contextCache,a=t.selectionBackgroundColor,h=this.viewportTransform;return t.selectionBackgroundColor="",this.clearContext(o),o.save(),o.transform(h[0],h[1],h[2],h[3],h[4],h[5]),t.render(o),o.restore(),t.selectionBackgroundColor=a,k.util.isTransparent(o,e,i,this.targetFindTolerance)},_isSelectionKeyPressed:function(t){return"[object Array]"===Object.prototype.toString.call(this.selectionKey)?!!this.selectionKey.find((function(e){return!0===t[e]})):t[this.selectionKey]},_shouldClearSelection:function(t,e){var i=this.getActiveObjects(),r=this._activeObject;return!e||e&&r&&i.length>1&&-1===i.indexOf(e)&&r!==e&&!this._isSelectionKeyPressed(t)||e&&!e.evented||e&&!e.selectable&&r&&r!==e},_shouldCenterTransform:function(t,e,i){var r;if(t)return"scale"===e||"scaleX"===e||"scaleY"===e||"resizing"===e?r=this.centeredScaling||t.centeredScaling:"rotate"===e&&(r=this.centeredRotation||t.centeredRotation),r?!i:i},_getOriginFromCorner:function(t,e){var i={x:t.originX,y:t.originY};return"ml"===e||"tl"===e||"bl"===e?i.x="right":"mr"!==e&&"tr"!==e&&"br"!==e||(i.x="left"),"tl"===e||"mt"===e||"tr"===e?i.y="bottom":"bl"!==e&&"mb"!==e&&"br"!==e||(i.y="top"),i},_getActionFromCorner:function(t,e,i,r){if(!e||!t)return"drag";var n=r.controls[e];return n.getActionName(i,n,r)},_setupCurrentTransform:function(t,i,r){if(i){var n=this.getPointer(t),s=i.__corner,o=i.controls[s],a=r&&s?o.getActionHandler(t,i,o):k.controlsUtils.dragHandler,h=this._getActionFromCorner(r,s,t,i),l=this._getOriginFromCorner(i,s),c=t[this.centeredKey],u={target:i,action:h,actionHandler:a,corner:s,scaleX:i.scaleX,scaleY:i.scaleY,skewX:i.skewX,skewY:i.skewY,offsetX:n.x-i.left,offsetY:n.y-i.top,originX:l.x,originY:l.y,ex:n.x,ey:n.y,lastX:n.x,lastY:n.y,theta:e(i.angle),width:i.width*i.scaleX,shiftKey:t.shiftKey,altKey:c,original:k.util.saveObjectTransform(i)};this._shouldCenterTransform(i,h,c)&&(u.originX="center",u.originY="center"),u.original.originX=l.x,u.original.originY=l.y,this._currentTransform=u,this._beforeTransform(t)}},setCursor:function(t){this.upperCanvasEl.style.cursor=t},_drawSelection:function(t){var e=this._groupSelector,i=new k.Point(e.ex,e.ey),r=k.util.transformPoint(i,this.viewportTransform),n=new k.Point(e.ex+e.left,e.ey+e.top),s=k.util.transformPoint(n,this.viewportTransform),o=Math.min(r.x,s.x),a=Math.min(r.y,s.y),h=Math.max(r.x,s.x),l=Math.max(r.y,s.y),c=this.selectionLineWidth/2;this.selectionColor&&(t.fillStyle=this.selectionColor,t.fillRect(o,a,h-o,l-a)),this.selectionLineWidth&&this.selectionBorderColor&&(t.lineWidth=this.selectionLineWidth,t.strokeStyle=this.selectionBorderColor,o+=c,a+=c,h-=c,l-=c,k.Object.prototype._setLineDash.call(this,t,this.selectionDashArray),t.strokeRect(o,a,h-o,l-a))},findTarget:function(t,e){if(!this.skipTargetFind){var r,n,s=this.getPointer(t,!0),o=this._activeObject,a=this.getActiveObjects(),h=i(t),l=a.length>1&&!e||1===a.length;if(this.targets=[],l&&o._findTargetCorner(s,h))return o;if(a.length>1&&!e&&o===this._searchPossibleTargets([o],s))return o;if(1===a.length&&o===this._searchPossibleTargets([o],s)){if(!this.preserveObjectStacking)return o;r=o,n=this.targets,this.targets=[]}var c=this._searchPossibleTargets(this._objects,s);return t[this.altSelectionKey]&&c&&r&&c!==r&&(c=r,this.targets=n),c}},_checkTarget:function(t,e,i){if(e&&e.visible&&e.evented&&e.containsPoint(t)){if(!this.perPixelTargetFind&&!e.perPixelTargetFind||e.isEditing)return!0;if(!this.isTargetTransparent(e,i.x,i.y))return!0}},_searchPossibleTargets:function(t,e){for(var i,r,n=t.length;n--;){var s=t[n],o=s.group?this._normalizePointer(s.group,e):e;if(this._checkTarget(o,s,e)){(i=t[n]).subTargetCheck&&i instanceof k.Group&&(r=this._searchPossibleTargets(i._objects,e))&&this.targets.push(r);break}}return i},restorePointerVpt:function(t){return k.util.transformPoint(t,k.util.invertTransform(this.viewportTransform))},getPointer:function(e,i){if(this._absolutePointer&&!i)return this._absolutePointer;if(this._pointer&&i)return this._pointer;var r,n=t(e),s=this.upperCanvasEl,o=s.getBoundingClientRect(),a=o.width||0,h=o.height||0;a&&h||("top"in o&&"bottom"in o&&(h=Math.abs(o.top-o.bottom)),"right"in o&&"left"in o&&(a=Math.abs(o.right-o.left))),this.calcOffset(),n.x=n.x-this._offset.left,n.y=n.y-this._offset.top,i||(n=this.restorePointerVpt(n));var l=this.getRetinaScaling();return 1!==l&&(n.x/=l,n.y/=l),r=0===a||0===h?{width:1,height:1}:{width:s.width/a,height:s.height/h},{x:n.x*r.width,y:n.y*r.height}},_createUpperCanvas:function(){var t=this.lowerCanvasEl.className.replace(/\s*lower-canvas\s*/,""),e=this.lowerCanvasEl,i=this.upperCanvasEl;i?i.className="":(i=this._createCanvasElement(),this.upperCanvasEl=i),k.util.addClass(i,"upper-canvas "+t),this.wrapperEl.appendChild(i),this._copyCanvasStyle(e,i),this._applyCanvasStyle(i),this.contextTop=i.getContext("2d")},_createCacheCanvas:function(){this.cacheCanvasEl=this._createCanvasElement(),this.cacheCanvasEl.setAttribute("width",this.width),this.cacheCanvasEl.setAttribute("height",this.height),this.contextCache=this.cacheCanvasEl.getContext("2d")},_initWrapperElement:function(){this.wrapperEl=k.util.wrapElement(this.lowerCanvasEl,"div",{class:this.containerClass}),k.util.setStyle(this.wrapperEl,{width:this.width+"px",height:this.height+"px",position:"relative"}),k.util.makeElementUnselectable(this.wrapperEl)},_applyCanvasStyle:function(t){var e=this.width||t.width,i=this.height||t.height;k.util.setStyle(t,{position:"absolute",width:e+"px",height:i+"px",left:0,top:0,"touch-action":this.allowTouchScrolling?"manipulation":"none","-ms-touch-action":this.allowTouchScrolling?"manipulation":"none"}),t.width=e,t.height=i,k.util.makeElementUnselectable(t)},_copyCanvasStyle:function(t,e){e.style.cssText=t.style.cssText},getSelectionContext:function(){return this.contextTop},getSelectionElement:function(){return this.upperCanvasEl},getActiveObject:function(){return this._activeObject},getActiveObjects:function(){var t=this._activeObject;return t?"activeSelection"===t.type&&t._objects?t._objects.slice(0):[t]:[]},_onObjectRemoved:function(t){t===this._activeObject&&(this.fire("before:selection:cleared",{target:t}),this._discardActiveObject(),this.fire("selection:cleared",{target:t}),t.fire("deselected")),t===this._hoveredTarget&&(this._hoveredTarget=null,this._hoveredTargets=[]),this.callSuper("_onObjectRemoved",t)},_fireSelectionEvents:function(t,e){var i=!1,r=this.getActiveObjects(),n=[],s=[];t.forEach((function(t){-1===r.indexOf(t)&&(i=!0,t.fire("deselected",{e,target:t}),s.push(t))})),r.forEach((function(r){-1===t.indexOf(r)&&(i=!0,r.fire("selected",{e,target:r}),n.push(r))})),t.length>0&&r.length>0?i&&this.fire("selection:updated",{e,selected:n,deselected:s,updated:n[0]||s[0],target:this._activeObject}):r.length>0?this.fire("selection:created",{e,selected:n,target:this._activeObject}):t.length>0&&this.fire("selection:cleared",{e,deselected:s})},setActiveObject:function(t,e){var i=this.getActiveObjects();return this._setActiveObject(t,e),this._fireSelectionEvents(i,e),this},_setActiveObject:function(t,e){return this._activeObject!==t&&(!!this._discardActiveObject(e,t)&&(!t.onSelect({e})&&(this._activeObject=t,!0)))},_discardActiveObject:function(t,e){var i=this._activeObject;if(i){if(i.onDeselect({e:t,object:e}))return!1;this._activeObject=null}return!0},discardActiveObject:function(t){var e=this.getActiveObjects(),i=this.getActiveObject();return e.length&&this.fire("before:selection:cleared",{target:i,e:t}),this._discardActiveObject(t),this._fireSelectionEvents(e,t),this},dispose:function(){var t=this.wrapperEl;return this.removeListeners(),t.removeChild(this.upperCanvasEl),t.removeChild(this.lowerCanvasEl),this.contextCache=null,this.contextTop=null,["upperCanvasEl","cacheCanvasEl"].forEach(function(t){k.util.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this)),t.parentNode&&t.parentNode.replaceChild(this.lowerCanvasEl,this.wrapperEl),delete this.wrapperEl,k.StaticCanvas.prototype.dispose.call(this),this},clear:function(){return this.discardActiveObject(),this.clearContext(this.contextTop),this.callSuper("clear")},drawControls:function(t){var e=this._activeObject;e&&e._renderControls(t)},_toObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(t),n=this.callSuper("_toObject",t,e,i);return this._unwindGroupTransformOnObject(t,r),n},_realizeGroupTransformOnObject:function(t){if(t.group&&"activeSelection"===t.group.type&&this._activeObject===t.group){var e={};return["angle","flipX","flipY","left","scaleX","scaleY","skewX","skewY","top"].forEach((function(i){e[i]=t[i]})),k.util.addTransformToObject(t,this._activeObject.calcOwnMatrix()),e}return null},_unwindGroupTransformOnObject:function(t,e){e&&t.set(e)},_setSVGObject:function(t,e,i){var r=this._realizeGroupTransformOnObject(e);this.callSuper("_setSVGObject",t,e,i),this._unwindGroupTransformOnObject(e,r)},setViewportTransform:function(t){this.renderOnAddRemove&&this._activeObject&&this._activeObject.isEditing&&this._activeObject.clearContextTop(),k.StaticCanvas.prototype.setViewportTransform.call(this,t)}}),k.StaticCanvas)"prototype"!==r&&(k.Canvas[r]=k.StaticCanvas[r])}(),function(){var t=k.util.addListener,e=k.util.removeListener,i={passive:!1};function checkClick(t,e){return t.button&&t.button===e-1}k.util.object.extend(k.Canvas.prototype,{mainTouchId:null,_initEventListeners:function(){this.removeListeners(),this._bindEvents(),this.addOrRemove(t,"add")},_getEventPrefix:function(){return this.enablePointerEvents?"pointer":"mouse"},addOrRemove:function(t,e){var r=this.upperCanvasEl,n=this._getEventPrefix();t(k.window,"resize",this._onResize),t(r,n+"down",this._onMouseDown),t(r,n+"move",this._onMouseMove,i),t(r,n+"out",this._onMouseOut),t(r,n+"enter",this._onMouseEnter),t(r,"wheel",this._onMouseWheel),t(r,"contextmenu",this._onContextMenu),t(r,"dblclick",this._onDoubleClick),t(r,"dragover",this._onDragOver),t(r,"dragenter",this._onDragEnter),t(r,"dragleave",this._onDragLeave),t(r,"drop",this._onDrop),this.enablePointerEvents||t(r,"touchstart",this._onTouchStart,i),"undefined"!=typeof eventjs&&e in eventjs&&(eventjs[e](r,"gesture",this._onGesture),eventjs[e](r,"drag",this._onDrag),eventjs[e](r,"orientation",this._onOrientationChange),eventjs[e](r,"shake",this._onShake),eventjs[e](r,"longpress",this._onLongPress))},removeListeners:function(){this.addOrRemove(e,"remove");var t=this._getEventPrefix();e(k.document,t+"up",this._onMouseUp),e(k.document,"touchend",this._onTouchEnd,i),e(k.document,t+"move",this._onMouseMove,i),e(k.document,"touchmove",this._onMouseMove,i)},_bindEvents:function(){this.eventsBound||(this._onMouseDown=this._onMouseDown.bind(this),this._onTouchStart=this._onTouchStart.bind(this),this._onMouseMove=this._onMouseMove.bind(this),this._onMouseUp=this._onMouseUp.bind(this),this._onTouchEnd=this._onTouchEnd.bind(this),this._onResize=this._onResize.bind(this),this._onGesture=this._onGesture.bind(this),this._onDrag=this._onDrag.bind(this),this._onShake=this._onShake.bind(this),this._onLongPress=this._onLongPress.bind(this),this._onOrientationChange=this._onOrientationChange.bind(this),this._onMouseWheel=this._onMouseWheel.bind(this),this._onMouseOut=this._onMouseOut.bind(this),this._onMouseEnter=this._onMouseEnter.bind(this),this._onContextMenu=this._onContextMenu.bind(this),this._onDoubleClick=this._onDoubleClick.bind(this),this._onDragOver=this._onDragOver.bind(this),this._onDragEnter=this._simpleEventHandler.bind(this,"dragenter"),this._onDragLeave=this._simpleEventHandler.bind(this,"dragleave"),this._onDrop=this._simpleEventHandler.bind(this,"drop"),this.eventsBound=!0)},_onGesture:function(t,e){this.__onTransformGesture&&this.__onTransformGesture(t,e)},_onDrag:function(t,e){this.__onDrag&&this.__onDrag(t,e)},_onMouseWheel:function(t){this.__onMouseWheel(t)},_onMouseOut:function(t){var e=this._hoveredTarget;this.fire("mouse:out",{target:e,e:t}),this._hoveredTarget=null,e&&e.fire("mouseout",{e:t});var i=this;this._hoveredTargets.forEach((function(r){i.fire("mouse:out",{target:e,e:t}),r&&e.fire("mouseout",{e:t})})),this._hoveredTargets=[],this._iTextInstances&&this._iTextInstances.forEach((function(t){t.isEditing&&t.hiddenTextarea.focus()}))},_onMouseEnter:function(t){this._currentTransform||this.findTarget(t)||(this.fire("mouse:over",{target:null,e:t}),this._hoveredTarget=null,this._hoveredTargets=[])},_onOrientationChange:function(t,e){this.__onOrientationChange&&this.__onOrientationChange(t,e)},_onShake:function(t,e){this.__onShake&&this.__onShake(t,e)},_onLongPress:function(t,e){this.__onLongPress&&this.__onLongPress(t,e)},_onDragOver:function(t){t.preventDefault();var e=this._simpleEventHandler("dragover",t);this._fireEnterLeaveEvents(e,t)},_onContextMenu:function(t){return this.stopContextMenu&&(t.stopPropagation(),t.preventDefault()),!1},_onDoubleClick:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"dblclick"),this._resetTransformEventData(t)},getPointerId:function(t){var e=t.changedTouches;return e?e[0]&&e[0].identifier:this.enablePointerEvents?t.pointerId:-1},_isMainEvent:function(t){return!0===t.isPrimary||!1!==t.isPrimary&&("touchend"===t.type&&0===t.touches.length||(!t.changedTouches||t.changedTouches[0].identifier===this.mainTouchId))},_onTouchStart:function(r){r.preventDefault(),null===this.mainTouchId&&(this.mainTouchId=this.getPointerId(r)),this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();t(k.document,"touchend",this._onTouchEnd,i),t(k.document,"touchmove",this._onMouseMove,i),e(n,s+"down",this._onMouseDown)},_onMouseDown:function(r){this.__onMouseDown(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();e(n,s+"move",this._onMouseMove,i),t(k.document,s+"up",this._onMouseUp),t(k.document,s+"move",this._onMouseMove,i)},_onTouchEnd:function(r){if(!(r.touches.length>0)){this.__onMouseUp(r),this._resetTransformEventData(),this.mainTouchId=null;var n=this._getEventPrefix();e(k.document,"touchend",this._onTouchEnd,i),e(k.document,"touchmove",this._onMouseMove,i);var s=this;this._willAddMouseDown&&clearTimeout(this._willAddMouseDown),this._willAddMouseDown=setTimeout((function(){t(s.upperCanvasEl,n+"down",s._onMouseDown),s._willAddMouseDown=0}),400)}},_onMouseUp:function(r){this.__onMouseUp(r),this._resetTransformEventData();var n=this.upperCanvasEl,s=this._getEventPrefix();this._isMainEvent(r)&&(e(k.document,s+"up",this._onMouseUp),e(k.document,s+"move",this._onMouseMove,i),t(n,s+"move",this._onMouseMove,i))},_onMouseMove:function(t){!this.allowTouchScrolling&&t.preventDefault&&t.preventDefault(),this.__onMouseMove(t)},_onResize:function(){this.calcOffset()},_shouldRender:function(t){var e=this._activeObject;return!!(!!e!=!!t||e&&t&&e!==t)||(e&&e.isEditing,!1)},__onMouseUp:function(t){var e,i=this._currentTransform,r=this._groupSelector,n=!1,s=!r||0===r.left&&0===r.top;if(this._cacheTransformEventData(t),e=this._target,this._handleEvent(t,"up:before"),checkClick(t,3))this.fireRightClick&&this._handleEvent(t,"up",3,s);else{if(checkClick(t,2))return this.fireMiddleClick&&this._handleEvent(t,"up",2,s),void this._resetTransformEventData();if(this.isDrawingMode&&this._isCurrentlyDrawing)this._onMouseUpInDrawingMode(t);else if(this._isMainEvent(t)){if(i&&(this._finalizeCurrentTransform(t),n=i.actionPerformed),!s){var o=e===this._activeObject;this._maybeGroupObjects(t),n||(n=this._shouldRender(e)||!o&&e===this._activeObject)}if(e){if(e.selectable&&e!==this._activeObject&&"up"===e.activeOn)this.setActiveObject(e,t),n=!0;else{var a=e._findTargetCorner(this.getPointer(t,!0),k.util.isTouchEvent(t)),h=e.controls[a],l=h&&h.getMouseUpHandler(t,e,h);if(l){var c=this.getPointer(t);l(t,i,c.x,c.y)}}e.isMoving=!1}this._setCursorFromEvent(t,e),this._handleEvent(t,"up",1,s),this._groupSelector=null,this._currentTransform=null,e&&(e.__corner=0),n?this.requestRenderAll():s||this.renderTop()}}},_simpleEventHandler:function(t,e){var i=this.findTarget(e),r=this.targets,n={e,target:i,subTargets:r};if(this.fire(t,n),i&&i.fire(t,n),!r)return i;for(var s=0;s<r.length;s++)r[s].fire(t,n);return i},_handleEvent:function(t,e,i,r){var n=this._target,s=this.targets||[],o={e:t,target:n,subTargets:s,button:i||1,isClick:r||!1,pointer:this._pointer,absolutePointer:this._absolutePointer,transform:this._currentTransform};"up"===e&&(o.currentTarget=this.findTarget(t),o.currentSubTargets=this.targets),this.fire("mouse:"+e,o),n&&n.fire("mouse"+e,o);for(var a=0;a<s.length;a++)s[a].fire("mouse"+e,o)},_finalizeCurrentTransform:function(t){var e,i=this._currentTransform,r=i.target,n={e:t,target:r,transform:i,action:i.action};r._scaling&&(r._scaling=!1),r.setCoords(),(i.actionPerformed||this.stateful&&r.hasStateChanged())&&(i.actionPerformed&&(e=this._addEventOptions(n,i),this._fire(e,n)),this._fire("modified",n))},_addEventOptions:function(t,e){var i,r;switch(e.action){case"scaleX":i="scaled",r="x";break;case"scaleY":i="scaled",r="y";break;case"skewX":i="skewed",r="x";break;case"skewY":i="skewed",r="y";break;case"scale":i="scaled",r="equally";break;case"rotate":i="rotated";break;case"drag":i="moved"}return t.by=r,i},_onMouseDownInDrawingMode:function(t){this._isCurrentlyDrawing=!0,this.getActiveObject()&&this.discardActiveObject(t).requestRenderAll();var e=this.getPointer(t);this.freeDrawingBrush.onMouseDown(e,{e:t,pointer:e}),this._handleEvent(t,"down")},_onMouseMoveInDrawingMode:function(t){if(this._isCurrentlyDrawing){var e=this.getPointer(t);this.freeDrawingBrush.onMouseMove(e,{e:t,pointer:e})}this.setCursor(this.freeDrawingCursor),this._handleEvent(t,"move")},_onMouseUpInDrawingMode:function(t){var e=this.getPointer(t);this._isCurrentlyDrawing=this.freeDrawingBrush.onMouseUp({e:t,pointer:e}),this._handleEvent(t,"up")},__onMouseDown:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"down:before");var e=this._target;if(checkClick(t,3))this.fireRightClick&&this._handleEvent(t,"down",3);else if(checkClick(t,2))this.fireMiddleClick&&this._handleEvent(t,"down",2);else if(this.isDrawingMode)this._onMouseDownInDrawingMode(t);else if(this._isMainEvent(t)&&!this._currentTransform){var i=this._pointer;this._previousPointer=i;var r=this._shouldRender(e),n=this._shouldGroup(t,e);if(this._shouldClearSelection(t,e)?this.discardActiveObject(t):n&&(this._handleGrouping(t,e),e=this._activeObject),!this.selection||e&&(e.selectable||e.isEditing||e===this._activeObject)||(this._groupSelector={ex:this._absolutePointer.x,ey:this._absolutePointer.y,top:0,left:0}),e){var s=e===this._activeObject;e.selectable&&"down"===e.activeOn&&this.setActiveObject(e,t);var o=e._findTargetCorner(this.getPointer(t,!0),k.util.isTouchEvent(t));if(e.__corner=o,e===this._activeObject&&(o||!n)){this._setupCurrentTransform(t,e,s);var a=e.controls[o],h=(i=this.getPointer(t),a&&a.getMouseDownHandler(t,e,a));h&&h(t,this._currentTransform,i.x,i.y)}}this._handleEvent(t,"down"),(r||n)&&this.requestRenderAll()}},_resetTransformEventData:function(){this._target=null,this._pointer=null,this._absolutePointer=null},_cacheTransformEventData:function(t){this._resetTransformEventData(),this._pointer=this.getPointer(t,!0),this._absolutePointer=this.restorePointerVpt(this._pointer),this._target=this._currentTransform?this._currentTransform.target:this.findTarget(t)||null},_beforeTransform:function(t){var e=this._currentTransform;this.stateful&&e.target.saveState(),this.fire("before:transform",{e:t,transform:e})},__onMouseMove:function(t){var e,i;if(this._handleEvent(t,"move:before"),this._cacheTransformEventData(t),this.isDrawingMode)this._onMouseMoveInDrawingMode(t);else if(this._isMainEvent(t)){var r=this._groupSelector;r?(i=this._absolutePointer,r.left=i.x-r.ex,r.top=i.y-r.ey,this.renderTop()):this._currentTransform?this._transformObject(t):(e=this.findTarget(t)||null,this._setCursorFromEvent(t,e),this._fireOverOutEvents(e,t)),this._handleEvent(t,"move"),this._resetTransformEventData()}},_fireOverOutEvents:function(t,e){var i=this._hoveredTarget,r=this._hoveredTargets,n=this.targets,s=Math.max(r.length,n.length);this.fireSyntheticInOutEvents(t,e,{oldTarget:i,evtOut:"mouseout",canvasEvtOut:"mouse:out",evtIn:"mouseover",canvasEvtIn:"mouse:over"});for(var o=0;o<s;o++)this.fireSyntheticInOutEvents(n[o],e,{oldTarget:r[o],evtOut:"mouseout",evtIn:"mouseover"});this._hoveredTarget=t,this._hoveredTargets=this.targets.concat()},_fireEnterLeaveEvents:function(t,e){var i=this._draggedoverTarget,r=this._hoveredTargets,n=this.targets,s=Math.max(r.length,n.length);this.fireSyntheticInOutEvents(t,e,{oldTarget:i,evtOut:"dragleave",evtIn:"dragenter"});for(var o=0;o<s;o++)this.fireSyntheticInOutEvents(n[o],e,{oldTarget:r[o],evtOut:"dragleave",evtIn:"dragenter"});this._draggedoverTarget=t},fireSyntheticInOutEvents:function(t,e,i){var r,n,s,o=i.oldTarget,a=o!==t,h=i.canvasEvtIn,l=i.canvasEvtOut;a&&(r={e,target:t,previousTarget:o},n={e,target:o,nextTarget:t}),s=t&&a,o&&a&&(l&&this.fire(l,n),o.fire(i.evtOut,n)),s&&(h&&this.fire(h,r),t.fire(i.evtIn,r))},__onMouseWheel:function(t){this._cacheTransformEventData(t),this._handleEvent(t,"wheel"),this._resetTransformEventData()},_transformObject:function(t){var e=this.getPointer(t),i=this._currentTransform;i.reset=!1,i.shiftKey=t.shiftKey,i.altKey=t[this.centeredKey],this._performTransformAction(t,i,e),i.actionPerformed&&this.requestRenderAll()},_performTransformAction:function(t,e,i){var r=i.x,n=i.y,s=e.action,o=!1,a=e.actionHandler;a&&(o=a(t,e,r,n)),"drag"===s&&o&&(e.target.isMoving=!0,this.setCursor(e.target.moveCursor||this.moveCursor)),e.actionPerformed=e.actionPerformed||o},_fire:k.controlsUtils.fireEvent,_setCursorFromEvent:function(t,e){if(!e)return this.setCursor(this.defaultCursor),!1;var i=e.hoverCursor||this.hoverCursor,r=this._activeObject&&"activeSelection"===this._activeObject.type?this._activeObject:null,n=(!r||!r.contains(e))&&e._findTargetCorner(this.getPointer(t,!0));n?this.setCursor(this.getCornerCursor(n,e,t)):(e.subTargetCheck&&this.targets.concat().reverse().map((function(t){i=t.hoverCursor||i})),this.setCursor(i))},getCornerCursor:function(t,e,i){var r=e.controls[t];return r.cursorStyleHandler(i,r,e)}})}(),m=Math.min,_=Math.max,k.util.object.extend(k.Canvas.prototype,{_shouldGroup:function(t,e){var i=this._activeObject;return i&&this._isSelectionKeyPressed(t)&&e&&e.selectable&&this.selection&&(i!==e||"activeSelection"===i.type)&&!e.onSelect({e:t})},_handleGrouping:function(t,e){var i=this._activeObject;i.__corner||(e!==i||(e=this.findTarget(t,!0))&&e.selectable)&&(i&&"activeSelection"===i.type?this._updateActiveSelection(e,t):this._createActiveSelection(e,t))},_updateActiveSelection:function(t,e){var i=this._activeObject,r=i._objects.slice(0);i.contains(t)?(i.removeWithUpdate(t),this._hoveredTarget=t,this._hoveredTargets=this.targets.concat(),1===i.size()&&this._setActiveObject(i.item(0),e)):(i.addWithUpdate(t),this._hoveredTarget=i,this._hoveredTargets=this.targets.concat()),this._fireSelectionEvents(r,e)},_createActiveSelection:function(t,e){var i=this.getActiveObjects(),r=this._createGroup(t);this._hoveredTarget=r,this._setActiveObject(r,e),this._fireSelectionEvents(i,e)},_createGroup:function(t){var e=this._objects,i=e.indexOf(this._activeObject)<e.indexOf(t)?[this._activeObject,t]:[t,this._activeObject];return this._activeObject.isEditing&&this._activeObject.exitEditing(),new k.ActiveSelection(i,{canvas:this})},_groupSelectedObjects:function(t){var e,i=this._collectObjects(t);1===i.length?this.setActiveObject(i[0],t):i.length>1&&(e=new k.ActiveSelection(i.reverse(),{canvas:this}),this.setActiveObject(e,t))},_collectObjects:function(t){for(var e,i=[],r=this._groupSelector.ex,n=this._groupSelector.ey,s=r+this._groupSelector.left,o=n+this._groupSelector.top,a=new k.Point(m(r,s),m(n,o)),h=new k.Point(_(r,s),_(n,o)),l=!this.selectionFullyContained,c=r===s&&n===o,u=this._objects.length;u--&&!((e=this._objects[u])&&e.selectable&&e.visible&&(l&&e.intersectsWithRect(a,h,!0)||e.isContainedWithinRect(a,h,!0)||l&&e.containsPoint(a,null,!0)||l&&e.containsPoint(h,null,!0))&&(i.push(e),c)););return i.length>1&&(i=i.filter((function(e){return!e.onSelect({e:t})}))),i},_maybeGroupObjects:function(t){this.selection&&this._groupSelector&&this._groupSelectedObjects(t),this.setCursor(this.defaultCursor),this._groupSelector=null}}),k.util.object.extend(k.StaticCanvas.prototype,{toDataURL:function(t){t||(t={});var e=t.format||"png",i=t.quality||1,r=(t.multiplier||1)*(t.enableRetinaScaling?this.getRetinaScaling():1),n=this.toCanvasElement(r,t);return k.util.toDataURL(n,e,i)},toCanvasElement:function(t,e){t=t||1;var i=((e=e||{}).width||this.width)*t,r=(e.height||this.height)*t,n=this.getZoom(),s=this.width,o=this.height,a=n*t,h=this.viewportTransform,l=(h[4]-(e.left||0))*t,c=(h[5]-(e.top||0))*t,u=this.interactive,f=[a,0,0,a,l,c],d=this.enableRetinaScaling,g=k.util.createCanvasElement(),p=this.contextTop;return g.width=i,g.height=r,this.contextTop=null,this.enableRetinaScaling=!1,this.interactive=!1,this.viewportTransform=f,this.width=i,this.height=r,this.calcViewportBoundaries(),this.renderCanvas(g.getContext("2d"),this._objects),this.viewportTransform=h,this.width=s,this.height=o,this.calcViewportBoundaries(),this.interactive=u,this.enableRetinaScaling=d,this.contextTop=p,g}}),k.util.object.extend(k.StaticCanvas.prototype,{loadFromJSON:function(t,e,i){if(t){var r="string"==typeof t?JSON.parse(t):k.util.object.clone(t),n=this,s=r.clipPath,o=this.renderOnAddRemove;return this.renderOnAddRemove=!1,delete r.clipPath,this._enlivenObjects(r.objects,(function(t){n.clear(),n._setBgOverlay(r,(function(){s?n._enlivenObjects([s],(function(i){n.clipPath=i[0],n.__setupCanvas.call(n,r,t,o,e)})):n.__setupCanvas.call(n,r,t,o,e)}))}),i),this}},__setupCanvas:function(t,e,i,r){var n=this;e.forEach((function(t,e){n.insertAt(t,e)})),this.renderOnAddRemove=i,delete t.objects,delete t.backgroundImage,delete t.overlayImage,delete t.background,delete t.overlay,this._setOptions(t),this.renderAll(),r&&r()},_setBgOverlay:function(t,e){var i={backgroundColor:!1,overlayColor:!1,backgroundImage:!1,overlayImage:!1};if(t.backgroundImage||t.overlayImage||t.background||t.overlay){var cbIfLoaded=function(){i.backgroundImage&&i.overlayImage&&i.backgroundColor&&i.overlayColor&&e&&e()};this.__setBgOverlay("backgroundImage",t.backgroundImage,i,cbIfLoaded),this.__setBgOverlay("overlayImage",t.overlayImage,i,cbIfLoaded),this.__setBgOverlay("backgroundColor",t.background,i,cbIfLoaded),this.__setBgOverlay("overlayColor",t.overlay,i,cbIfLoaded)}else e&&e()},__setBgOverlay:function(t,e,i,r){var n=this;if(!e)return i[t]=!0,void(r&&r());"backgroundImage"===t||"overlayImage"===t?k.util.enlivenObjects([e],(function(e){n[t]=e[0],i[t]=!0,r&&r()})):this["set"+k.util.string.capitalize(t,!0)](e,(function(){i[t]=!0,r&&r()}))},_enlivenObjects:function(t,e,i){t&&0!==t.length?k.util.enlivenObjects(t,(function(t){e&&e(t)}),null,i):e&&e([])},_toDataURL:function(t,e){this.clone((function(i){e(i.toDataURL(t))}))},_toDataURLWithMultiplier:function(t,e,i){this.clone((function(r){i(r.toDataURLWithMultiplier(t,e))}))},clone:function(t,e){var i=JSON.stringify(this.toJSON(e));this.cloneWithoutData((function(e){e.loadFromJSON(i,(function(){t&&t(e)}))}))},cloneWithoutData:function(t){var e=k.util.createCanvasElement();e.width=this.width,e.height=this.height;var i=new k.Canvas(e);this.backgroundImage?(i.setBackgroundImage(this.backgroundImage.src,(function(){i.renderAll(),t&&t(i)})),i.backgroundImageOpacity=this.backgroundImageOpacity,i.backgroundImageStretch=this.backgroundImageStretch):t&&t(i)}}),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n=e.util.toFixed,s=e.util.string.capitalize,o=e.util.degreesToRadians,a=!e.isLikelyNode;e.Object||(e.Object=e.util.createClass(e.CommonMethods,{type:"object",originX:"left",originY:"top",top:0,left:0,width:0,height:0,scaleX:1,scaleY:1,flipX:!1,flipY:!1,opacity:1,angle:0,skewX:0,skewY:0,cornerSize:13,touchCornerSize:24,transparentCorners:!0,hoverCursor:null,moveCursor:null,padding:0,borderColor:"rgb(178,204,255)",borderDashArray:null,cornerColor:"rgb(178,204,255)",cornerStrokeColor:null,cornerStyle:"rect",cornerDashArray:null,centeredScaling:!1,centeredRotation:!0,fill:"rgb(0,0,0)",fillRule:"nonzero",globalCompositeOperation:"source-over",backgroundColor:"",selectionBackgroundColor:"",stroke:null,strokeWidth:1,strokeDashArray:null,strokeDashOffset:0,strokeLineCap:"butt",strokeLineJoin:"miter",strokeMiterLimit:4,shadow:null,borderOpacityWhenMoving:.4,borderScaleFactor:1,minScaleLimit:0,selectable:!0,evented:!0,visible:!0,hasControls:!0,hasBorders:!0,perPixelTargetFind:!1,includeDefaultValues:!0,lockMovementX:!1,lockMovementY:!1,lockRotation:!1,lockScalingX:!1,lockScalingY:!1,lockSkewingX:!1,lockSkewingY:!1,lockScalingFlip:!1,excludeFromExport:!1,objectCaching:a,statefullCache:!1,noScaleCache:!0,strokeUniform:!1,dirty:!0,__corner:0,paintFirst:"fill",activeOn:"down",stateProperties:"top left width height scaleX scaleY flipX flipY originX originY transformMatrix stroke strokeWidth strokeDashArray strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit angle opacity fill globalCompositeOperation shadow visible backgroundColor skewX skewY fillRule paintFirst clipPath strokeUniform".split(" "),cacheProperties:"fill stroke strokeWidth strokeDashArray width height paintFirst strokeUniform strokeLineCap strokeDashOffset strokeLineJoin strokeMiterLimit backgroundColor clipPath".split(" "),colorProperties:"fill stroke backgroundColor".split(" "),clipPath:void 0,inverted:!1,absolutePositioned:!1,initialize:function(t){t&&this.setOptions(t)},_createCacheCanvas:function(){this._cacheProperties={},this._cacheCanvas=e.util.createCanvasElement(),this._cacheContext=this._cacheCanvas.getContext("2d"),this._updateCacheCanvas(),this.dirty=!0},_limitCacheSize:function(t){var i=e.perfLimitSizeTotal,r=t.width,n=t.height,s=e.maxCacheSideLimit,o=e.minCacheSideLimit;if(r<=s&&n<=s&&r*n<=i)return r<o&&(t.width=o),n<o&&(t.height=o),t;var a=r/n,h=e.util.limitDimsByArea(a,i),l=e.util.capValue,c=l(o,h.x,s),u=l(o,h.y,s);return r>c&&(t.zoomX/=r/c,t.width=c,t.capped=!0),n>u&&(t.zoomY/=n/u,t.height=u,t.capped=!0),t},_getCacheCanvasDimensions:function(){var t=this.getTotalObjectScaling(),e=this._getTransformedDimensions(0,0),i=e.x*t.scaleX/this.scaleX,r=e.y*t.scaleY/this.scaleY;return{width:i+2,height:r+2,zoomX:t.scaleX,zoomY:t.scaleY,x:i,y:r}},_updateCacheCanvas:function(){var t=this.canvas;if(this.noScaleCache&&t&&t._currentTransform){var i=t._currentTransform.target,r=t._currentTransform.action;if(this===i&&r.slice&&"scale"===r.slice(0,5))return!1}var n,s,o=this._cacheCanvas,a=this._limitCacheSize(this._getCacheCanvasDimensions()),h=e.minCacheSideLimit,l=a.width,c=a.height,u=a.zoomX,f=a.zoomY,d=l!==this.cacheWidth||c!==this.cacheHeight,g=this.zoomX!==u||this.zoomY!==f,p=d||g,v=0,m=0,_=!1;if(d){var y=this._cacheCanvas.width,x=this._cacheCanvas.height,C=l>y||c>x;_=C||(l<.9*y||c<.9*x)&&y>h&&x>h,C&&!a.capped&&(l>h||c>h)&&(v=.1*l,m=.1*c)}return this instanceof e.Text&&this.path&&(p=!0,_=!0,v+=this.getHeightOfLine(0)*this.zoomX,m+=this.getHeightOfLine(0)*this.zoomY),!!p&&(_?(o.width=Math.ceil(l+v),o.height=Math.ceil(c+m)):(this._cacheContext.setTransform(1,0,0,1,0,0),this._cacheContext.clearRect(0,0,o.width,o.height)),n=a.x/2,s=a.y/2,this.cacheTranslationX=Math.round(o.width/2-n)+n,this.cacheTranslationY=Math.round(o.height/2-s)+s,this.cacheWidth=l,this.cacheHeight=c,this._cacheContext.translate(this.cacheTranslationX,this.cacheTranslationY),this._cacheContext.scale(u,f),this.zoomX=u,this.zoomY=f,!0)},setOptions:function(t){this._setOptions(t),this._initGradient(t.fill,"fill"),this._initGradient(t.stroke,"stroke"),this._initPattern(t.fill,"fill"),this._initPattern(t.stroke,"stroke")},transform:function(t){var e=this.group&&!this.group._transformDone||this.group&&this.canvas&&t===this.canvas.contextTop,i=this.calcTransformMatrix(!e);t.transform(i[0],i[1],i[2],i[3],i[4],i[5])},toObject:function(t){var i=e.Object.NUM_FRACTION_DIGITS,r={type:this.type,version:e.version,originX:this.originX,originY:this.originY,left:n(this.left,i),top:n(this.top,i),width:n(this.width,i),height:n(this.height,i),fill:this.fill&&this.fill.toObject?this.fill.toObject():this.fill,stroke:this.stroke&&this.stroke.toObject?this.stroke.toObject():this.stroke,strokeWidth:n(this.strokeWidth,i),strokeDashArray:this.strokeDashArray?this.strokeDashArray.concat():this.strokeDashArray,strokeLineCap:this.strokeLineCap,strokeDashOffset:this.strokeDashOffset,strokeLineJoin:this.strokeLineJoin,strokeUniform:this.strokeUniform,strokeMiterLimit:n(this.strokeMiterLimit,i),scaleX:n(this.scaleX,i),scaleY:n(this.scaleY,i),angle:n(this.angle,i),flipX:this.flipX,flipY:this.flipY,opacity:n(this.opacity,i),shadow:this.shadow&&this.shadow.toObject?this.shadow.toObject():this.shadow,visible:this.visible,backgroundColor:this.backgroundColor,fillRule:this.fillRule,paintFirst:this.paintFirst,globalCompositeOperation:this.globalCompositeOperation,skewX:n(this.skewX,i),skewY:n(this.skewY,i)};return this.clipPath&&!this.clipPath.excludeFromExport&&(r.clipPath=this.clipPath.toObject(t),r.clipPath.inverted=this.clipPath.inverted,r.clipPath.absolutePositioned=this.clipPath.absolutePositioned),e.util.populateWithProperties(this,r,t),this.includeDefaultValues||(r=this._removeDefaultValues(r)),r},toDatalessObject:function(t){return this.toObject(t)},_removeDefaultValues:function(t){var i=e.util.getKlass(t.type).prototype;return i.stateProperties.forEach((function(e){"left"!==e&&"top"!==e&&(t[e]===i[e]&&delete t[e],"[object Array]"===Object.prototype.toString.call(t[e])&&"[object Array]"===Object.prototype.toString.call(i[e])&&0===t[e].length&&0===i[e].length&&delete t[e])})),t},toString:function(){return"#<fabric."+s(this.type)+">"},getObjectScaling:function(){if(!this.group)return{scaleX:this.scaleX,scaleY:this.scaleY};var t=e.util.qrDecompose(this.calcTransformMatrix());return{scaleX:Math.abs(t.scaleX),scaleY:Math.abs(t.scaleY)}},getTotalObjectScaling:function(){var t=this.getObjectScaling(),e=t.scaleX,i=t.scaleY;if(this.canvas){var r=this.canvas.getZoom(),n=this.canvas.getRetinaScaling();e*=r*n,i*=r*n}return{scaleX:e,scaleY:i}},getObjectOpacity:function(){var t=this.opacity;return this.group&&(t*=this.group.getObjectOpacity()),t},_set:function(t,i){var r="scaleX"===t||"scaleY"===t,n=this[t]!==i,s=!1;return r&&(i=this._constrainScale(i)),"scaleX"===t&&i<0?(this.flipX=!this.flipX,i*=-1):"scaleY"===t&&i<0?(this.flipY=!this.flipY,i*=-1):"shadow"!==t||!i||i instanceof e.Shadow?"dirty"===t&&this.group&&this.group.set("dirty",i):i=new e.Shadow(i),this[t]=i,n&&(s=this.group&&this.group.isOnACache(),this.cacheProperties.indexOf(t)>-1?(this.dirty=!0,s&&this.group.set("dirty",!0)):s&&this.stateProperties.indexOf(t)>-1&&this.group.set("dirty",!0)),this},setOnGroup:function(){},getViewportTransform:function(){return this.canvas&&this.canvas.viewportTransform?this.canvas.viewportTransform:e.iMatrix.concat()},isNotVisible:function(){return 0===this.opacity||!this.width&&!this.height&&0===this.strokeWidth||!this.visible},render:function(t){this.isNotVisible()||this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(t.save(),this._setupCompositeOperation(t),this.drawSelectionBackground(t),this.transform(t),this._setOpacity(t),this._setShadow(t,this),this.shouldCache()?(this.renderCache(),this.drawCacheOnCanvas(t)):(this._removeCacheCanvas(),this.dirty=!1,this.drawObject(t),this.objectCaching&&this.statefullCache&&this.saveState({propertySet:"cacheProperties"})),t.restore())},renderCache:function(t){t=t||{},this._cacheCanvas||this._createCacheCanvas(),this.isCacheDirty()&&(this.statefullCache&&this.saveState({propertySet:"cacheProperties"}),this.drawObject(this._cacheContext,t.forClipping),this.dirty=!1)},_removeCacheCanvas:function(){this._cacheCanvas=null,this.cacheWidth=0,this.cacheHeight=0},hasStroke:function(){return this.stroke&&"transparent"!==this.stroke&&0!==this.strokeWidth},hasFill:function(){return this.fill&&"transparent"!==this.fill},needsItsOwnCache:function(){return!("stroke"!==this.paintFirst||!this.hasFill()||!this.hasStroke()||"object"!=typeof this.shadow)||!!this.clipPath},shouldCache:function(){return this.ownCaching=this.needsItsOwnCache()||this.objectCaching&&(!this.group||!this.group.isOnACache()),this.ownCaching},willDrawShadow:function(){return!!this.shadow&&(0!==this.shadow.offsetX||0!==this.shadow.offsetY)},drawClipPathOnCache:function(t){var i=this.clipPath;if(t.save(),i.inverted?t.globalCompositeOperation="destination-out":t.globalCompositeOperation="destination-in",i.absolutePositioned){var r=e.util.invertTransform(this.calcTransformMatrix());t.transform(r[0],r[1],r[2],r[3],r[4],r[5])}i.transform(t),t.scale(1/i.zoomX,1/i.zoomY),t.drawImage(i._cacheCanvas,-i.cacheTranslationX,-i.cacheTranslationY),t.restore()},drawObject:function(t,e){var i=this.fill,r=this.stroke;e?(this.fill="black",this.stroke="",this._setClippingProperties(t)):this._renderBackground(t),this._render(t),this._drawClipPath(t),this.fill=i,this.stroke=r},_drawClipPath:function(t){var e=this.clipPath;e&&(e.canvas=this.canvas,e.shouldCache(),e._transformDone=!0,e.renderCache({forClipping:!0}),this.drawClipPathOnCache(t))},drawCacheOnCanvas:function(t){t.scale(1/this.zoomX,1/this.zoomY),t.drawImage(this._cacheCanvas,-this.cacheTranslationX,-this.cacheTranslationY)},isCacheDirty:function(t){if(this.isNotVisible())return!1;if(this._cacheCanvas&&!t&&this._updateCacheCanvas())return!0;if(this.dirty||this.clipPath&&this.clipPath.absolutePositioned||this.statefullCache&&this.hasStateChanged("cacheProperties")){if(this._cacheCanvas&&!t){var e=this.cacheWidth/this.zoomX,i=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-e/2,-i/2,e,i)}return!0}return!1},_renderBackground:function(t){if(this.backgroundColor){var e=this._getNonTransformedDimensions();t.fillStyle=this.backgroundColor,t.fillRect(-e.x/2,-e.y/2,e.x,e.y),this._removeShadow(t)}},_setOpacity:function(t){this.group&&!this.group._transformDone?t.globalAlpha=this.getObjectOpacity():t.globalAlpha*=this.opacity},_setStrokeStyles:function(t,e){var i=e.stroke;i&&(t.lineWidth=e.strokeWidth,t.lineCap=e.strokeLineCap,t.lineDashOffset=e.strokeDashOffset,t.lineJoin=e.strokeLineJoin,t.miterLimit=e.strokeMiterLimit,i.toLive?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?this._applyPatternForTransformedGradient(t,i):(t.strokeStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,i)):t.strokeStyle=e.stroke)},_setFillStyles:function(t,e){var i=e.fill;i&&(i.toLive?(t.fillStyle=i.toLive(t,this),this._applyPatternGradientTransform(t,e.fill)):t.fillStyle=i)},_setClippingProperties:function(t){t.globalAlpha=1,t.strokeStyle="transparent",t.fillStyle="#000000"},_setLineDash:function(t,e){e&&0!==e.length&&(1&e.length&&e.push.apply(e,e),t.setLineDash(e))},_renderControls:function(t,i){var r,n,s,a=this.getViewportTransform(),h=this.calcTransformMatrix();n=void 0!==(i=i||{}).hasBorders?i.hasBorders:this.hasBorders,s=void 0!==i.hasControls?i.hasControls:this.hasControls,h=e.util.multiplyTransformMatrices(a,h),r=e.util.qrDecompose(h),t.save(),t.translate(r.translateX,r.translateY),t.lineWidth=1*this.borderScaleFactor,this.group||(t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1),t.rotate(o(r.angle)),i.forActiveSelection||this.group?n&&this.drawBordersInGroup(t,r,i):n&&this.drawBorders(t,i),s&&this.drawControls(t,i),t.restore()},_setShadow:function(t){if(this.shadow){var i,r=this.shadow,n=this.canvas,s=n&&n.viewportTransform[0]||1,o=n&&n.viewportTransform[3]||1;i=r.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),n&&n._isRetinaScaling()&&(s*=e.devicePixelRatio,o*=e.devicePixelRatio),t.shadowColor=r.color,t.shadowBlur=r.blur*e.browserShadowBlurConstant*(s+o)*(i.scaleX+i.scaleY)/4,t.shadowOffsetX=r.offsetX*s*i.scaleX,t.shadowOffsetY=r.offsetY*o*i.scaleY}},_removeShadow:function(t){this.shadow&&(t.shadowColor="",t.shadowBlur=t.shadowOffsetX=t.shadowOffsetY=0)},_applyPatternGradientTransform:function(t,e){if(!e||!e.toLive)return{offsetX:0,offsetY:0};var i=e.gradientTransform||e.patternTransform,r=-this.width/2+e.offsetX||0,n=-this.height/2+e.offsetY||0;return"percentage"===e.gradientUnits?t.transform(this.width,0,0,this.height,r,n):t.transform(1,0,0,1,r,n),i&&t.transform(i[0],i[1],i[2],i[3],i[4],i[5]),{offsetX:r,offsetY:n}},_renderPaintInOrder:function(t){"stroke"===this.paintFirst?(this._renderStroke(t),this._renderFill(t)):(this._renderFill(t),this._renderStroke(t))},_render:function(){},_renderFill:function(t){this.fill&&(t.save(),this._setFillStyles(t,this),"evenodd"===this.fillRule?t.fill("evenodd"):t.fill(),t.restore())},_renderStroke:function(t){if(this.stroke&&0!==this.strokeWidth){if(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this.strokeUniform&&this.group){var e=this.getObjectScaling();t.scale(1/e.scaleX,1/e.scaleY)}else this.strokeUniform&&t.scale(1/this.scaleX,1/this.scaleY);this._setLineDash(t,this.strokeDashArray),this._setStrokeStyles(t,this),t.stroke(),t.restore()}},_applyPatternForTransformedGradient:function(t,i){var r,n=this._limitCacheSize(this._getCacheCanvasDimensions()),s=e.util.createCanvasElement(),o=this.canvas.getRetinaScaling(),a=n.x/this.scaleX/o,h=n.y/this.scaleY/o;s.width=a,s.height=h,(r=s.getContext("2d")).beginPath(),r.moveTo(0,0),r.lineTo(a,0),r.lineTo(a,h),r.lineTo(0,h),r.closePath(),r.translate(a/2,h/2),r.scale(n.zoomX/this.scaleX/o,n.zoomY/this.scaleY/o),this._applyPatternGradientTransform(r,i),r.fillStyle=i.toLive(t),r.fill(),t.translate(-this.width/2-this.strokeWidth/2,-this.height/2-this.strokeWidth/2),t.scale(o*this.scaleX/n.zoomX,o*this.scaleY/n.zoomY),t.strokeStyle=r.createPattern(s,"no-repeat")},_findCenterFromElement:function(){return{x:this.left+this.width/2,y:this.top+this.height/2}},_assignTransformMatrixProps:function(){if(this.transformMatrix){var t=e.util.qrDecompose(this.transformMatrix);this.flipX=!1,this.flipY=!1,this.set("scaleX",t.scaleX),this.set("scaleY",t.scaleY),this.angle=t.angle,this.skewX=t.skewX,this.skewY=0}},_removeTransformMatrix:function(t){var i=this._findCenterFromElement();this.transformMatrix&&(this._assignTransformMatrixProps(),i=e.util.transformPoint(i,this.transformMatrix)),this.transformMatrix=null,t&&(this.scaleX*=t.scaleX,this.scaleY*=t.scaleY,this.cropX=t.cropX,this.cropY=t.cropY,i.x+=t.offsetLeft,i.y+=t.offsetTop,this.width=t.width,this.height=t.height),this.setPositionByOrigin(i,"center","center")},clone:function(t,i){var r=this.toObject(i);this.constructor.fromObject?this.constructor.fromObject(r,t):e.Object._fromObject("Object",r,t)},cloneAsImage:function(t,i){var r=this.toCanvasElement(i);return t&&t(new e.Image(r)),this},toCanvasElement:function(t){t||(t={});var i=e.util,r=i.saveObjectTransform(this),n=this.group,s=this.shadow,o=Math.abs,a=(t.multiplier||1)*(t.enableRetinaScaling?e.devicePixelRatio:1);delete this.group,t.withoutTransform&&i.resetObjectTransform(this),t.withoutShadow&&(this.shadow=null);var h,l,c,u,f=e.util.createCanvasElement(),d=this.getBoundingRect(!0,!0),g=this.shadow,p={x:0,y:0};g&&(l=g.blur,h=g.nonScaling?{scaleX:1,scaleY:1}:this.getObjectScaling(),p.x=2*Math.round(o(g.offsetX)+l)*o(h.scaleX),p.y=2*Math.round(o(g.offsetY)+l)*o(h.scaleY)),c=d.width+p.x,u=d.height+p.y,f.width=Math.ceil(c),f.height=Math.ceil(u);var v=new e.StaticCanvas(f,{enableRetinaScaling:!1,renderOnAddRemove:!1,skipOffscreen:!1});"jpeg"===t.format&&(v.backgroundColor="#fff"),this.setPositionByOrigin(new e.Point(v.width/2,v.height/2),"center","center");var m=this.canvas;v.add(this);var _=v.toCanvasElement(a||1,t);return this.shadow=s,this.set("canvas",m),n&&(this.group=n),this.set(r).setCoords(),v._objects=[],v.dispose(),v=null,_},toDataURL:function(t){return t||(t={}),e.util.toDataURL(this.toCanvasElement(t),t.format||"png",t.quality||1)},isType:function(t){return this.type===t},complexity:function(){return 1},toJSON:function(t){return this.toObject(t)},rotate:function(t){var e=("center"!==this.originX||"center"!==this.originY)&&this.centeredRotation;return e&&this._setOriginToCenter(),this.set("angle",t),e&&this._resetOrigin(),this},centerH:function(){return this.canvas&&this.canvas.centerObjectH(this),this},viewportCenterH:function(){return this.canvas&&this.canvas.viewportCenterObjectH(this),this},centerV:function(){return this.canvas&&this.canvas.centerObjectV(this),this},viewportCenterV:function(){return this.canvas&&this.canvas.viewportCenterObjectV(this),this},center:function(){return this.canvas&&this.canvas.centerObject(this),this},viewportCenter:function(){return this.canvas&&this.canvas.viewportCenterObject(this),this},getLocalPointer:function(t,i){i=i||this.canvas.getPointer(t);var r=new e.Point(i.x,i.y),n=this._getLeftTopCoords();return this.angle&&(r=e.util.rotatePoint(r,n,o(-this.angle))),{x:r.x-n.x,y:r.y-n.y}},_setupCompositeOperation:function(t){this.globalCompositeOperation&&(t.globalCompositeOperation=this.globalCompositeOperation)}}),e.util.createAccessors&&e.util.createAccessors(e.Object),i(e.Object.prototype,e.Observable),e.Object.NUM_FRACTION_DIGITS=2,e.Object._fromObject=function(t,i,n,s){var o=e[t];i=r(i,!0),e.util.enlivenPatterns([i.fill,i.stroke],(function(t){void 0!==t[0]&&(i.fill=t[0]),void 0!==t[1]&&(i.stroke=t[1]),e.util.enlivenObjects([i.clipPath],(function(t){i.clipPath=t[0];var e=s?new o(i[s],i):new o(i);n&&n(e)}))}))},e.Object.__uid=0)}(e),y=k.util.degreesToRadians,x={left:-.5,center:0,right:.5},C={top:-.5,center:0,bottom:.5},k.util.object.extend(k.Object.prototype,{translateToGivenOrigin:function(t,e,i,r,n){var s,o,a,h=t.x,l=t.y;return"string"==typeof e?e=x[e]:e-=.5,"string"==typeof r?r=x[r]:r-=.5,"string"==typeof i?i=C[i]:i-=.5,"string"==typeof n?n=C[n]:n-=.5,o=n-i,((s=r-e)||o)&&(a=this._getTransformedDimensions(),h=t.x+s*a.x,l=t.y+o*a.y),new k.Point(h,l)},translateToCenterPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,e,i,"center","center");return this.angle?k.util.rotatePoint(r,t,y(this.angle)):r},translateToOriginPoint:function(t,e,i){var r=this.translateToGivenOrigin(t,"center","center",e,i);return this.angle?k.util.rotatePoint(r,t,y(this.angle)):r},getCenterPoint:function(){var t=new k.Point(this.left,this.top);return this.translateToCenterPoint(t,this.originX,this.originY)},getPointByOrigin:function(t,e){var i=this.getCenterPoint();return this.translateToOriginPoint(i,t,e)},toLocalPoint:function(t,e,i){var r,n,s=this.getCenterPoint();return r=void 0!==e&&void 0!==i?this.translateToGivenOrigin(s,"center","center",e,i):new k.Point(this.left,this.top),n=new k.Point(t.x,t.y),this.angle&&(n=k.util.rotatePoint(n,s,-y(this.angle))),n.subtractEquals(r)},setPositionByOrigin:function(t,e,i){var r=this.translateToCenterPoint(t,e,i),n=this.translateToOriginPoint(r,this.originX,this.originY);this.set("left",n.x),this.set("top",n.y)},adjustPosition:function(t){var e,i,r=y(this.angle),n=this.getScaledWidth(),s=k.util.cos(r)*n,o=k.util.sin(r)*n;e="string"==typeof this.originX?x[this.originX]:this.originX-.5,i="string"==typeof t?x[t]:t-.5,this.left+=s*(i-e),this.top+=o*(i-e),this.setCoords(),this.originX=t},_setOriginToCenter:function(){this._originalOriginX=this.originX,this._originalOriginY=this.originY;var t=this.getCenterPoint();this.originX="center",this.originY="center",this.left=t.x,this.top=t.y},_resetOrigin:function(){var t=this.translateToOriginPoint(this.getCenterPoint(),this._originalOriginX,this._originalOriginY);this.originX=this._originalOriginX,this.originY=this._originalOriginY,this.left=t.x,this.top=t.y,this._originalOriginX=null,this._originalOriginY=null},_getLeftTopCoords:function(){return this.translateToOriginPoint(this.getCenterPoint(),"left","top")}}),function(){var t=k.util,e=t.degreesToRadians,i=t.multiplyTransformMatrices,r=t.transformPoint;t.object.extend(k.Object.prototype,{oCoords:null,aCoords:null,lineCoords:null,ownMatrixCache:null,matrixCache:null,controls:{},_getCoords:function(t,e){return e?t?this.calcACoords():this.calcLineCoords():(this.aCoords&&this.lineCoords||this.setCoords(!0),t?this.aCoords:this.lineCoords)},getCoords:function(t,e){return function arrayFromCoords(t){return[new k.Point(t.tl.x,t.tl.y),new k.Point(t.tr.x,t.tr.y),new k.Point(t.br.x,t.br.y),new k.Point(t.bl.x,t.bl.y)]}(this._getCoords(t,e))},intersectsWithRect:function(t,e,i,r){var n=this.getCoords(i,r);return"Intersection"===k.Intersection.intersectPolygonRectangle(n,t,e).status},intersectsWithObject:function(t,e,i){return"Intersection"===k.Intersection.intersectPolygonPolygon(this.getCoords(e,i),t.getCoords(e,i)).status||t.isContainedWithinObject(this,e,i)||this.isContainedWithinObject(t,e,i)},isContainedWithinObject:function(t,e,i){for(var r=this.getCoords(e,i),n=e?t.aCoords:t.lineCoords,s=0,o=t._getImageLines(n);s<4;s++)if(!t.containsPoint(r[s],o))return!1;return!0},isContainedWithinRect:function(t,e,i,r){var n=this.getBoundingRect(i,r);return n.left>=t.x&&n.left+n.width<=e.x&&n.top>=t.y&&n.top+n.height<=e.y},containsPoint:function(t,e,i,r){var n=this._getCoords(i,r),s=(e=e||this._getImageLines(n),this._findCrossPoints(t,e));return 0!==s&&s%2==1},isOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.getCoords(!0,t).some((function(t){return t.x<=i.x&&t.x>=e.x&&t.y<=i.y&&t.y>=e.y}))||(!!this.intersectsWithRect(e,i,!0,t)||this._containsCenterOfCanvas(e,i,t))},_containsCenterOfCanvas:function(t,e,i){var r={x:(t.x+e.x)/2,y:(t.y+e.y)/2};return!!this.containsPoint(r,null,!0,i)},isPartiallyOnScreen:function(t){if(!this.canvas)return!1;var e=this.canvas.vptCoords.tl,i=this.canvas.vptCoords.br;return!!this.intersectsWithRect(e,i,!0,t)||this.getCoords(!0,t).every((function(t){return(t.x>=i.x||t.x<=e.x)&&(t.y>=i.y||t.y<=e.y)}))&&this._containsCenterOfCanvas(e,i,t)},_getImageLines:function(t){return{topline:{o:t.tl,d:t.tr},rightline:{o:t.tr,d:t.br},bottomline:{o:t.br,d:t.bl},leftline:{o:t.bl,d:t.tl}}},_findCrossPoints:function(t,e){var i,r,n,s=0;for(var o in e)if(!((n=e[o]).o.y<t.y&&n.d.y<t.y||n.o.y>=t.y&&n.d.y>=t.y||(n.o.x===n.d.x&&n.o.x>=t.x?r=n.o.x:(i=(n.d.y-n.o.y)/(n.d.x-n.o.x),r=-(t.y-0*t.x-(n.o.y-i*n.o.x))/(0-i)),r>=t.x&&(s+=1),2!==s)))break;return s},getBoundingRect:function(e,i){var r=this.getCoords(e,i);return t.makeBoundingBoxFromPoints(r)},getScaledWidth:function(){return this._getTransformedDimensions().x},getScaledHeight:function(){return this._getTransformedDimensions().y},_constrainScale:function(t){return Math.abs(t)<this.minScaleLimit?t<0?-this.minScaleLimit:this.minScaleLimit:0===t?1e-4:t},scale:function(t){return this._set("scaleX",t),this._set("scaleY",t),this.setCoords()},scaleToWidth:function(t,e){var i=this.getBoundingRect(e).width/this.getScaledWidth();return this.scale(t/this.width/i)},scaleToHeight:function(t,e){var i=this.getBoundingRect(e).height/this.getScaledHeight();return this.scale(t/this.height/i)},calcCoords:function(t){return t?this.calcACoords():this.calcOCoords()},calcLineCoords:function(){var i=this.getViewportTransform(),n=this.padding,s=e(this.angle),o=t.cos(s)*n,a=t.sin(s)*n,h=o+a,l=o-a,c=this.calcACoords(),u={tl:r(c.tl,i),tr:r(c.tr,i),bl:r(c.bl,i),br:r(c.br,i)};return n&&(u.tl.x-=l,u.tl.y-=h,u.tr.x+=h,u.tr.y-=l,u.bl.x-=h,u.bl.y+=l,u.br.x+=l,u.br.y+=h),u},calcOCoords:function(){var t=this._calcRotateMatrix(),e=this._calcTranslateMatrix(),r=this.getViewportTransform(),n=i(r,e),s=i(n,t),o=(s=i(s,[1/r[0],0,0,1/r[3],0,0]),this._calculateCurrentDimensions()),a={};return this.forEachControl((function(t,e,i){a[e]=t.positionHandler(o,s,i)})),a},calcACoords:function(){var t=this._calcRotateMatrix(),e=this._calcTranslateMatrix(),n=i(e,t),s=this._getTransformedDimensions(),o=s.x/2,a=s.y/2;return{tl:r({x:-o,y:-a},n),tr:r({x:o,y:-a},n),bl:r({x:-o,y:a},n),br:r({x:o,y:a},n)}},setCoords:function(t){return this.aCoords=this.calcACoords(),this.lineCoords=this.group?this.aCoords:this.calcLineCoords(),t||(this.oCoords=this.calcOCoords(),this._setCornerCoords&&this._setCornerCoords()),this},_calcRotateMatrix:function(){return t.calcRotateMatrix(this)},_calcTranslateMatrix:function(){var t=this.getCenterPoint();return[1,0,0,1,t.x,t.y]},transformMatrixKey:function(t){var e="_",i="";return!t&&this.group&&(i=this.group.transformMatrixKey(t)+e),i+this.top+e+this.left+e+this.scaleX+e+this.scaleY+e+this.skewX+e+this.skewY+e+this.angle+e+this.originX+e+this.originY+e+this.width+e+this.height+e+this.strokeWidth+this.flipX+this.flipY},calcTransformMatrix:function(t){var e=this.calcOwnMatrix();if(t||!this.group)return e;var r=this.transformMatrixKey(t),n=this.matrixCache||(this.matrixCache={});return n.key===r?n.value:(this.group&&(e=i(this.group.calcTransformMatrix(!1),e)),n.key=r,n.value=e,e)},calcOwnMatrix:function(){var e=this.transformMatrixKey(!0),i=this.ownMatrixCache||(this.ownMatrixCache={});if(i.key===e)return i.value;var r=this._calcTranslateMatrix(),n={angle:this.angle,translateX:r[4],translateY:r[5],scaleX:this.scaleX,scaleY:this.scaleY,skewX:this.skewX,skewY:this.skewY,flipX:this.flipX,flipY:this.flipY};return i.key=e,i.value=t.composeMatrix(n),i.value},_calcDimensionsTransformMatrix:function(e,i,r){return t.calcDimensionsMatrix({skewX:e,skewY:i,scaleX:this.scaleX*(r&&this.flipX?-1:1),scaleY:this.scaleY*(r&&this.flipY?-1:1)})},_getNonTransformedDimensions:function(){var t=this.strokeWidth;return{x:this.width+t,y:this.height+t}},_getTransformedDimensions:function(e,i){void 0===e&&(e=this.skewX),void 0===i&&(i=this.skewY);var r,n,s,o=0===e&&0===i;if(this.strokeUniform?(n=this.width,s=this.height):(n=(r=this._getNonTransformedDimensions()).x,s=r.y),o)return this._finalizeDimensions(n*this.scaleX,s*this.scaleY);var a=t.sizeAfterTransform(n,s,{scaleX:this.scaleX,scaleY:this.scaleY,skewX:e,skewY:i});return this._finalizeDimensions(a.x,a.y)},_finalizeDimensions:function(t,e){return this.strokeUniform?{x:t+this.strokeWidth,y:e+this.strokeWidth}:{x:t,y:e}},_calculateCurrentDimensions:function(){var t=this.getViewportTransform(),e=this._getTransformedDimensions();return r(e,t,!0).scalarAdd(2*this.padding)}})}(),k.util.object.extend(k.Object.prototype,{sendToBack:function(){return this.group?k.StaticCanvas.prototype.sendToBack.call(this.group,this):this.canvas&&this.canvas.sendToBack(this),this},bringToFront:function(){return this.group?k.StaticCanvas.prototype.bringToFront.call(this.group,this):this.canvas&&this.canvas.bringToFront(this),this},sendBackwards:function(t){return this.group?k.StaticCanvas.prototype.sendBackwards.call(this.group,this,t):this.canvas&&this.canvas.sendBackwards(this,t),this},bringForward:function(t){return this.group?k.StaticCanvas.prototype.bringForward.call(this.group,this,t):this.canvas&&this.canvas.bringForward(this,t),this},moveTo:function(t){return this.group&&"activeSelection"!==this.group.type?k.StaticCanvas.prototype.moveTo.call(this.group,this,t):this.canvas&&this.canvas.moveTo(this,t),this}}),function(){function getSvgColorString(t,e){if(e){if(e.toLive)return t+": url(#SVGID_"+e.id+"); ";var i=new k.Color(e),r=t+": "+i.toRgb()+"; ",n=i.getAlpha();return 1!==n&&(r+=t+"-opacity: "+n.toString()+"; "),r}return t+": none; "}var t=k.util.toFixed;k.util.object.extend(k.Object.prototype,{getSvgStyles:function(t){var e=this.fillRule?this.fillRule:"nonzero",i=this.strokeWidth?this.strokeWidth:"0",r=this.strokeDashArray?this.strokeDashArray.join(" "):"none",n=this.strokeDashOffset?this.strokeDashOffset:"0",s=this.strokeLineCap?this.strokeLineCap:"butt",o=this.strokeLineJoin?this.strokeLineJoin:"miter",a=this.strokeMiterLimit?this.strokeMiterLimit:"4",h=void 0!==this.opacity?this.opacity:"1",l=this.visible?"":" visibility: hidden;",c=t?"":this.getSvgFilter(),u=getSvgColorString("fill",this.fill);return[getSvgColorString("stroke",this.stroke),"stroke-width: ",i,"; ","stroke-dasharray: ",r,"; ","stroke-linecap: ",s,"; ","stroke-dashoffset: ",n,"; ","stroke-linejoin: ",o,"; ","stroke-miterlimit: ",a,"; ",u,"fill-rule: ",e,"; ","opacity: ",h,";",c,l].join("")},getSvgSpanStyles:function(t,e){var i="; ",r=t.fontFamily?"font-family: "+(-1===t.fontFamily.indexOf("'")&&-1===t.fontFamily.indexOf('"')?"'"+t.fontFamily+"'":t.fontFamily)+i:"",n=t.strokeWidth?"stroke-width: "+t.strokeWidth+i:"",s=(r=r,t.fontSize?"font-size: "+t.fontSize+"px"+i:""),o=t.fontStyle?"font-style: "+t.fontStyle+i:"",a=t.fontWeight?"font-weight: "+t.fontWeight+i:"",h=t.fill?getSvgColorString("fill",t.fill):"",l=t.stroke?getSvgColorString("stroke",t.stroke):"",c=this.getSvgTextDecoration(t);return c&&(c="text-decoration: "+c+i),[l,n,r,s,o,a,c,h,t.deltaY?"baseline-shift: "+-t.deltaY+"; ":"",e?"white-space: pre; ":""].join("")},getSvgTextDecoration:function(t){return["overline","underline","line-through"].filter((function(e){return t[e.replace("-","")]})).join(" ")},getSvgFilter:function(){return this.shadow?"filter: url(#SVGID_"+this.shadow.id+");":""},getSvgCommons:function(){return[this.id?'id="'+this.id+'" ':"",this.clipPath?'clip-path="url(#'+this.clipPath.clipPathId+')" ':""].join("")},getSvgTransform:function(t,e){var i=t?this.calcTransformMatrix():this.calcOwnMatrix();return'transform="'+k.util.matrixToSVG(i)+(e||"")+'" '},_setSVGBg:function(e){if(this.backgroundColor){var i=k.Object.NUM_FRACTION_DIGITS;e.push("\t\t<rect ",this._getFillAttributes(this.backgroundColor),' x="',t(-this.width/2,i),'" y="',t(-this.height/2,i),'" width="',t(this.width,i),'" height="',t(this.height,i),'"></rect>\n')}},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(t),{reviver:t})},toClipPathSVG:function(t){return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(t),{reviver:t})},_createBaseClipPathSVGMarkup:function(t,e){var i=(e=e||{}).reviver,r=e.additionalTransform||"",n=[this.getSvgTransform(!0,r),this.getSvgCommons()].join(""),s=t.indexOf("COMMON_PARTS");return t[s]=n,i?i(t.join("")):t.join("")},_createBaseSVGMarkup:function(t,e){var i,r,n=(e=e||{}).noStyle,s=e.reviver,o=n?"":'style="'+this.getSvgStyles()+'" ',a=e.withShadow?'style="'+this.getSvgFilter()+'" ':"",h=this.clipPath,l=this.strokeUniform?'vector-effect="non-scaling-stroke" ':"",c=h&&h.absolutePositioned,u=this.stroke,f=this.fill,d=this.shadow,g=[],p=t.indexOf("COMMON_PARTS"),v=e.additionalTransform;return h&&(h.clipPathId="CLIPPATH_"+k.Object.__uid++,r='<clipPath id="'+h.clipPathId+'" >\n'+h.toClipPathSVG(s)+"</clipPath>\n"),c&&g.push("<g ",a,this.getSvgCommons()," >\n"),g.push("<g ",this.getSvgTransform(!1),c?"":a+this.getSvgCommons()," >\n"),i=[o,l,n?"":this.addPaintOrder()," ",v?'transform="'+v+'" ':""].join(""),t[p]=i,f&&f.toLive&&g.push(f.toSVG(this)),u&&u.toLive&&g.push(u.toSVG(this)),d&&g.push(d.toSVG(this)),h&&g.push(r),g.push(t.join("")),g.push("</g>\n"),c&&g.push("</g>\n"),s?s(g.join("")):g.join("")},addPaintOrder:function(){return"fill"!==this.paintFirst?' paint-order="'+this.paintFirst+'" ':""}})}(),function(){var t=k.util.object.extend,e="stateProperties";function saveProps(e,i,r){var n={};r.forEach((function(t){n[t]=e[t]})),t(e[i],n,!0)}function _isEqual(t,e,i){if(t===e)return!0;if(Array.isArray(t)){if(!Array.isArray(e)||t.length!==e.length)return!1;for(var r=0,n=t.length;r<n;r++)if(!_isEqual(t[r],e[r]))return!1;return!0}if(t&&"object"==typeof t){var s,o=Object.keys(t);if(!e||"object"!=typeof e||!i&&o.length!==Object.keys(e).length)return!1;for(r=0,n=o.length;r<n;r++)if("canvas"!==(s=o[r])&&"group"!==s&&!_isEqual(t[s],e[s]))return!1;return!0}}k.util.object.extend(k.Object.prototype,{hasStateChanged:function(t){var i="_"+(t=t||e);return Object.keys(this[i]).length<this[t].length||!_isEqual(this[i],this,!0)},saveState:function(t){var i=t&&t.propertySet||e,r="_"+i;return this[r]?(saveProps(this,r,this[i]),t&&t.stateProperties&&saveProps(this,r,t.stateProperties),this):this.setupState(t)},setupState:function(t){var i=(t=t||{}).propertySet||e;return t.propertySet=i,this["_"+i]={},this.saveState(t),this}})}(),function(){var t=k.util.degreesToRadians;k.util.object.extend(k.Object.prototype,{_findTargetCorner:function(t,e){if(!this.hasControls||this.group||!this.canvas||this.canvas._activeObject!==this)return!1;var i,r,n,s=t.x,o=t.y,a=Object.keys(this.oCoords),h=a.length-1;for(this.__corner=0;h>=0;h--)if(n=a[h],this.isControlVisible(n)&&(r=this._getImageLines(e?this.oCoords[n].touchCorner:this.oCoords[n].corner),0!==(i=this._findCrossPoints({x:s,y:o},r))&&i%2==1))return this.__corner=n,n;return!1},forEachControl:function(t){for(var e in this.controls)t(this.controls[e],e,this)},_setCornerCoords:function(){var t=this.oCoords;for(var e in t){var i=this.controls[e];t[e].corner=i.calcCornerCoords(this.angle,this.cornerSize,t[e].x,t[e].y,!1),t[e].touchCorner=i.calcCornerCoords(this.angle,this.touchCornerSize,t[e].x,t[e].y,!0)}},drawSelectionBackground:function(e){if(!this.selectionBackgroundColor||this.canvas&&!this.canvas.interactive||this.canvas&&this.canvas._activeObject!==this)return this;e.save();var i=this.getCenterPoint(),r=this._calculateCurrentDimensions(),n=this.canvas.viewportTransform;return e.translate(i.x,i.y),e.scale(1/n[0],1/n[3]),e.rotate(t(this.angle)),e.fillStyle=this.selectionBackgroundColor,e.fillRect(-r.x/2,-r.y/2,r.x,r.y),e.restore(),this},drawBorders:function(t,e){e=e||{};var i=this._calculateCurrentDimensions(),r=this.borderScaleFactor,n=i.x+r,s=i.y+r,o=void 0!==e.hasControls?e.hasControls:this.hasControls,a=!1;return t.save(),t.strokeStyle=e.borderColor||this.borderColor,this._setLineDash(t,e.borderDashArray||this.borderDashArray),t.strokeRect(-n/2,-s/2,n,s),o&&(t.beginPath(),this.forEachControl((function(e,i,r){e.withConnection&&e.getVisibility(r,i)&&(a=!0,t.moveTo(e.x*n,e.y*s),t.lineTo(e.x*n+e.offsetX,e.y*s+e.offsetY))})),a&&t.stroke()),t.restore(),this},drawBordersInGroup:function(t,e,i){i=i||{};var r=k.util.sizeAfterTransform(this.width,this.height,e),n=this.strokeWidth,s=this.strokeUniform,o=this.borderScaleFactor,a=r.x+n*(s?this.canvas.getZoom():e.scaleX)+o,h=r.y+n*(s?this.canvas.getZoom():e.scaleY)+o;return t.save(),this._setLineDash(t,i.borderDashArray||this.borderDashArray),t.strokeStyle=i.borderColor||this.borderColor,t.strokeRect(-a/2,-h/2,a,h),t.restore(),this},drawControls:function(t,e){e=e||{},t.save();var i,r,n=this.canvas.getRetinaScaling();return t.setTransform(n,0,0,n,0,0),t.strokeStyle=t.fillStyle=e.cornerColor||this.cornerColor,this.transparentCorners||(t.strokeStyle=e.cornerStrokeColor||this.cornerStrokeColor),this._setLineDash(t,e.cornerDashArray||this.cornerDashArray),this.setCoords(),this.group&&(i=this.group.calcTransformMatrix()),this.forEachControl((function(n,s,o){r=o.oCoords[s],n.getVisibility(o,s)&&(i&&(r=k.util.transformPoint(r,i)),n.render(t,r.x,r.y,e,o))})),t.restore(),this},isControlVisible:function(t){return this.controls[t]&&this.controls[t].getVisibility(this,t)},setControlVisible:function(t,e){return this._controlsVisibility||(this._controlsVisibility={}),this._controlsVisibility[t]=e,this},setControlsVisibility:function(t){for(var e in t||(t={}),t)this.setControlVisible(e,t[e]);return this},onDeselect:function(){},onSelect:function(){}})}(),k.util.object.extend(k.StaticCanvas.prototype,{FX_DURATION:500,fxCenterObjectH:function(t,e){var empty=function(){},i=(e=e||{}).onComplete||empty,r=e.onChange||empty,n=this;return k.util.animate({startValue:t.left,endValue:this.getCenter().left,duration:this.FX_DURATION,onChange:function(e){t.set("left",e),n.requestRenderAll(),r()},onComplete:function(){t.setCoords(),i()}}),this},fxCenterObjectV:function(t,e){var empty=function(){},i=(e=e||{}).onComplete||empty,r=e.onChange||empty,n=this;return k.util.animate({startValue:t.top,endValue:this.getCenter().top,duration:this.FX_DURATION,onChange:function(e){t.set("top",e),n.requestRenderAll(),r()},onComplete:function(){t.setCoords(),i()}}),this},fxRemove:function(t,e){var empty=function(){},i=(e=e||{}).onComplete||empty,r=e.onChange||empty,n=this;return k.util.animate({startValue:t.opacity,endValue:0,duration:this.FX_DURATION,onChange:function(e){t.set("opacity",e),n.requestRenderAll(),r()},onComplete:function(){n.remove(t),i()}}),this}}),k.util.object.extend(k.Object.prototype,{animate:function(){if(arguments[0]&&"object"==typeof arguments[0]){var t,e,i=[];for(t in arguments[0])i.push(t);for(var r=0,n=i.length;r<n;r++)t=i[r],e=r!==n-1,this._animate(t,arguments[0][t],arguments[1],e)}else this._animate.apply(this,arguments);return this},_animate:function(t,e,i,r){var n,s=this;e=e.toString(),i=i?k.util.object.clone(i):{},~t.indexOf(".")&&(n=t.split("."));var o=s.colorProperties.indexOf(t)>-1||n&&s.colorProperties.indexOf(n[1])>-1,a=n?this.get(n[0])[n[1]]:this.get(t);"from"in i||(i.from=a),o||(e=~e.indexOf("=")?a+parseFloat(e.replace("=","")):parseFloat(e));var h={startValue:i.from,endValue:e,byValue:i.by,easing:i.easing,duration:i.duration,abort:i.abort&&function(t,e,r){return i.abort.call(s,t,e,r)},onChange:function(e,o,a){n?s[n[0]][n[1]]=e:s.set(t,e),r||i.onChange&&i.onChange(e,o,a)},onComplete:function(t,e,n){r||(s.setCoords(),i.onComplete&&i.onComplete(t,e,n))}};return o?k.util.animateColor(h.startValue,h.endValue,h.duration,h):k.util.animate(h)}}),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.object.clone,n={x1:1,x2:1,y1:1,y2:1};function makeEdgeToOriginGetter(t,e){var i=t.origin,r=t.axis1,n=t.axis2,s=t.dimension,o=e.nearest,a=e.center,h=e.farthest;return function(){switch(this.get(i)){case o:return Math.min(this.get(r),this.get(n));case a:return Math.min(this.get(r),this.get(n))+.5*this.get(s);case h:return Math.max(this.get(r),this.get(n))}}}e.Line?e.warn("fabric.Line is already defined"):(e.Line=e.util.createClass(e.Object,{type:"line",x1:0,y1:0,x2:0,y2:0,cacheProperties:e.Object.prototype.cacheProperties.concat("x1","x2","y1","y2"),initialize:function(t,e){t||(t=[0,0,0,0]),this.callSuper("initialize",e),this.set("x1",t[0]),this.set("y1",t[1]),this.set("x2",t[2]),this.set("y2",t[3]),this._setWidthHeight(e)},_setWidthHeight:function(t){t||(t={}),this.width=Math.abs(this.x2-this.x1),this.height=Math.abs(this.y2-this.y1),this.left="left"in t?t.left:this._getLeftToOriginX(),this.top="top"in t?t.top:this._getTopToOriginY()},_set:function(t,e){return this.callSuper("_set",t,e),void 0!==n[t]&&this._setWidthHeight(),this},_getLeftToOriginX:makeEdgeToOriginGetter({origin:"originX",axis1:"x1",axis2:"x2",dimension:"width"},{nearest:"left",center:"center",farthest:"right"}),_getTopToOriginY:makeEdgeToOriginGetter({origin:"originY",axis1:"y1",axis2:"y2",dimension:"height"},{nearest:"top",center:"center",farthest:"bottom"}),_render:function(t){t.beginPath();var e=this.calcLinePoints();t.moveTo(e.x1,e.y1),t.lineTo(e.x2,e.y2),t.lineWidth=this.strokeWidth;var i=t.strokeStyle;t.strokeStyle=this.stroke||t.fillStyle,this.stroke&&this._renderStroke(t),t.strokeStyle=i},_findCenterFromElement:function(){return{x:(this.x1+this.x2)/2,y:(this.y1+this.y2)/2}},toObject:function(t){return i(this.callSuper("toObject",t),this.calcLinePoints())},_getNonTransformedDimensions:function(){var t=this.callSuper("_getNonTransformedDimensions");return"butt"===this.strokeLineCap&&(0===this.width&&(t.y-=this.strokeWidth),0===this.height&&(t.x-=this.strokeWidth)),t},calcLinePoints:function(){var t=this.x1<=this.x2?-1:1,e=this.y1<=this.y2?-1:1,i=t*this.width*.5,r=e*this.height*.5;return{x1:i,x2:t*this.width*-.5,y1:r,y2:e*this.height*-.5}},_toSVG:function(){var t=this.calcLinePoints();return["<line ","COMMON_PARTS",'x1="',t.x1,'" y1="',t.y1,'" x2="',t.x2,'" y2="',t.y2,'" />\n']}}),e.Line.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x1 y1 x2 y2".split(" ")),e.Line.fromElement=function(t,r,n){n=n||{};var s=e.parseAttributes(t,e.Line.ATTRIBUTE_NAMES),o=[s.x1||0,s.y1||0,s.x2||0,s.y2||0];r(new e.Line(o,i(s,n)))},e.Line.fromObject=function(t,i){var n=r(t,!0);n.points=[t.x1,t.y1,t.x2,t.y2],e.Object._fromObject("Line",n,(function _callback(t){delete t.points,i&&i(t)}),"points")})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=Math.PI;e.Circle?e.warn("fabric.Circle is already defined."):(e.Circle=e.util.createClass(e.Object,{type:"circle",radius:0,startAngle:0,endAngle:2*i,cacheProperties:e.Object.prototype.cacheProperties.concat("radius","startAngle","endAngle"),_set:function(t,e){return this.callSuper("_set",t,e),"radius"===t&&this.setRadius(e),this},toObject:function(t){return this.callSuper("toObject",["radius","startAngle","endAngle"].concat(t))},_toSVG:function(){var t,r=(this.endAngle-this.startAngle)%(2*i);if(0===r)t=["<circle ","COMMON_PARTS",'cx="0" cy="0" ','r="',this.radius,'" />\n'];else{var n=e.util.cos(this.startAngle)*this.radius,s=e.util.sin(this.startAngle)*this.radius,o=e.util.cos(this.endAngle)*this.radius,a=e.util.sin(this.endAngle)*this.radius,h=r>i?"1":"0";t=['<path d="M '+n+" "+s," A "+this.radius+" "+this.radius," 0 ",+h+" 1"," "+o+" "+a,'" ',"COMMON_PARTS"," />\n"]}return t},_render:function(t){t.beginPath(),t.arc(0,0,this.radius,this.startAngle,this.endAngle,!1),this._renderPaintInOrder(t)},getRadiusX:function(){return this.get("radius")*this.get("scaleX")},getRadiusY:function(){return this.get("radius")*this.get("scaleY")},setRadius:function(t){return this.radius=t,this.set("width",2*t).set("height",2*t)}}),e.Circle.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy r".split(" ")),e.Circle.fromElement=function(t,i){var r=e.parseAttributes(t,e.Circle.ATTRIBUTE_NAMES);if(!function isValidRadius(t){return"radius"in t&&t.radius>=0}(r))throw new Error("value of `r` attribute is required and can not be negative");r.left=(r.left||0)-r.radius,r.top=(r.top||0)-r.radius,i(new e.Circle(r))},e.Circle.fromObject=function(t,i){e.Object._fromObject("Circle",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Triangle?e.warn("fabric.Triangle is already defined"):(e.Triangle=e.util.createClass(e.Object,{type:"triangle",width:100,height:100,_render:function(t){var e=this.width/2,i=this.height/2;t.beginPath(),t.moveTo(-e,i),t.lineTo(0,-i),t.lineTo(e,i),t.closePath(),this._renderPaintInOrder(t)},_toSVG:function(){var t=this.width/2,e=this.height/2;return["<polygon ","COMMON_PARTS",'points="',[-t+" "+e,"0 "+-e,t+" "+e].join(","),'" />']}}),e.Triangle.fromObject=function(t,i){return e.Object._fromObject("Triangle",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=2*Math.PI;e.Ellipse?e.warn("fabric.Ellipse is already defined."):(e.Ellipse=e.util.createClass(e.Object,{type:"ellipse",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this.set("rx",t&&t.rx||0),this.set("ry",t&&t.ry||0)},_set:function(t,e){switch(this.callSuper("_set",t,e),t){case"rx":this.rx=e,this.set("width",2*e);break;case"ry":this.ry=e,this.set("height",2*e)}return this},getRx:function(){return this.get("rx")*this.get("scaleX")},getRy:function(){return this.get("ry")*this.get("scaleY")},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["<ellipse ","COMMON_PARTS",'cx="0" cy="0" ','rx="',this.rx,'" ry="',this.ry,'" />\n']},_render:function(t){t.beginPath(),t.save(),t.transform(1,0,0,this.ry/this.rx,0,0),t.arc(0,0,this.rx,0,i,!1),t.restore(),this._renderPaintInOrder(t)}}),e.Ellipse.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("cx cy rx ry".split(" ")),e.Ellipse.fromElement=function(t,i){var r=e.parseAttributes(t,e.Ellipse.ATTRIBUTE_NAMES);r.left=(r.left||0)-r.rx,r.top=(r.top||0)-r.ry,i(new e.Ellipse(r))},e.Ellipse.fromObject=function(t,i){e.Object._fromObject("Ellipse",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend;e.Rect?e.warn("fabric.Rect is already defined"):(e.Rect=e.util.createClass(e.Object,{stateProperties:e.Object.prototype.stateProperties.concat("rx","ry"),type:"rect",rx:0,ry:0,cacheProperties:e.Object.prototype.cacheProperties.concat("rx","ry"),initialize:function(t){this.callSuper("initialize",t),this._initRxRy()},_initRxRy:function(){this.rx&&!this.ry?this.ry=this.rx:this.ry&&!this.rx&&(this.rx=this.ry)},_render:function(t){var e=this.rx?Math.min(this.rx,this.width/2):0,i=this.ry?Math.min(this.ry,this.height/2):0,r=this.width,n=this.height,s=-this.width/2,o=-this.height/2,a=0!==e||0!==i,h=.4477152502;t.beginPath(),t.moveTo(s+e,o),t.lineTo(s+r-e,o),a&&t.bezierCurveTo(s+r-h*e,o,s+r,o+h*i,s+r,o+i),t.lineTo(s+r,o+n-i),a&&t.bezierCurveTo(s+r,o+n-h*i,s+r-h*e,o+n,s+r-e,o+n),t.lineTo(s+e,o+n),a&&t.bezierCurveTo(s+h*e,o+n,s,o+n-h*i,s,o+n-i),t.lineTo(s,o+i),a&&t.bezierCurveTo(s,o+h*i,s+h*e,o,s+e,o),t.closePath(),this._renderPaintInOrder(t)},toObject:function(t){return this.callSuper("toObject",["rx","ry"].concat(t))},_toSVG:function(){return["<rect ","COMMON_PARTS",'x="',-this.width/2,'" y="',-this.height/2,'" rx="',this.rx,'" ry="',this.ry,'" width="',this.width,'" height="',this.height,'" />\n']}}),e.Rect.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y rx ry width height".split(" ")),e.Rect.fromElement=function(t,r,n){if(!t)return r(null);n=n||{};var s=e.parseAttributes(t,e.Rect.ATTRIBUTE_NAMES);s.left=s.left||0,s.top=s.top||0,s.height=s.height||0,s.width=s.width||0;var o=new e.Rect(i(n?e.util.object.clone(n):{},s));o.visible=o.visible&&o.width>0&&o.height>0,r(o)},e.Rect.fromObject=function(t,i){return e.Object._fromObject("Rect",t,i)})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.util.array.min,n=e.util.array.max,s=e.util.toFixed;e.Polyline?e.warn("fabric.Polyline is already defined"):(e.Polyline=e.util.createClass(e.Object,{type:"polyline",points:null,cacheProperties:e.Object.prototype.cacheProperties.concat("points"),initialize:function(t,e){e=e||{},this.points=t||[],this.callSuper("initialize",e),this._setPositionDimensions(e)},_setPositionDimensions:function(t){var e,i=this._calcDimensions(t);this.width=i.width,this.height=i.height,t.fromSVG||(e=this.translateToGivenOrigin({x:i.left-this.strokeWidth/2,y:i.top-this.strokeWidth/2},"left","top",this.originX,this.originY)),void 0===t.left&&(this.left=t.fromSVG?i.left:e.x),void 0===t.top&&(this.top=t.fromSVG?i.top:e.y),this.pathOffset={x:i.left+this.width/2,y:i.top+this.height/2}},_calcDimensions:function(){var t=this.points,e=r(t,"x")||0,i=r(t,"y")||0;return{left:e,top:i,width:(n(t,"x")||0)-e,height:(n(t,"y")||0)-i}},toObject:function(t){return i(this.callSuper("toObject",t),{points:this.points.concat()})},_toSVG:function(){for(var t=[],i=this.pathOffset.x,r=this.pathOffset.y,n=e.Object.NUM_FRACTION_DIGITS,o=0,a=this.points.length;o<a;o++)t.push(s(this.points[o].x-i,n),",",s(this.points[o].y-r,n)," ");return["<"+this.type+" ","COMMON_PARTS",'points="',t.join(""),'" />\n']},commonRender:function(t){var e,i=this.points.length,r=this.pathOffset.x,n=this.pathOffset.y;if(!i||isNaN(this.points[i-1].y))return!1;t.beginPath(),t.moveTo(this.points[0].x-r,this.points[0].y-n);for(var s=0;s<i;s++)e=this.points[s],t.lineTo(e.x-r,e.y-n);return!0},_render:function(t){this.commonRender(t)&&this._renderPaintInOrder(t)},complexity:function(){return this.get("points").length}}),e.Polyline.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat(),e.Polyline.fromElementGenerator=function(t){return function(r,n,s){if(!r)return n(null);s||(s={});var o=e.parsePointsAttribute(r.getAttribute("points")),a=e.parseAttributes(r,e[t].ATTRIBUTE_NAMES);a.fromSVG=!0,n(new e[t](o,i(a,s)))}},e.Polyline.fromElement=e.Polyline.fromElementGenerator("Polyline"),e.Polyline.fromObject=function(t,i){return e.Object._fromObject("Polyline",t,i,"points")})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Polygon?e.warn("fabric.Polygon is already defined"):(e.Polygon=e.util.createClass(e.Polyline,{type:"polygon",_render:function(t){this.commonRender(t)&&(t.closePath(),this._renderPaintInOrder(t))}}),e.Polygon.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat(),e.Polygon.fromElement=e.Polyline.fromElementGenerator("Polygon"),e.Polygon.fromObject=function(t,i){e.Object._fromObject("Polygon",t,i,"points")})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.array.min,r=e.util.array.max,n=e.util.object.extend,s=Object.prototype.toString,o=e.util.toFixed;e.Path?e.warn("fabric.Path is already defined"):(e.Path=e.util.createClass(e.Object,{type:"path",path:null,cacheProperties:e.Object.prototype.cacheProperties.concat("path","fillRule"),stateProperties:e.Object.prototype.stateProperties.concat("path"),initialize:function(t,i){i=i||{},this.callSuper("initialize",i),t||(t=[]);var r="[object Array]"===s.call(t);this.path=e.util.makePathSimpler(r?t:e.util.parsePath(t)),this.path&&e.Polyline.prototype._setPositionDimensions.call(this,i)},_renderPathCommands:function(t){var e,i=0,r=0,n=0,s=0,o=0,a=0,h=-this.pathOffset.x,l=-this.pathOffset.y;t.beginPath();for(var c=0,u=this.path.length;c<u;++c)switch((e=this.path[c])[0]){case"L":n=e[1],s=e[2],t.lineTo(n+h,s+l);break;case"M":i=n=e[1],r=s=e[2],t.moveTo(n+h,s+l);break;case"C":n=e[5],s=e[6],o=e[3],a=e[4],t.bezierCurveTo(e[1]+h,e[2]+l,o+h,a+l,n+h,s+l);break;case"Q":t.quadraticCurveTo(e[1]+h,e[2]+l,e[3]+h,e[4]+l),n=e[3],s=e[4],o=e[1],a=e[2];break;case"z":case"Z":n=i,s=r,t.closePath()}},_render:function(t){this._renderPathCommands(t),this._renderPaintInOrder(t)},toString:function(){return"#<fabric.Path ("+this.complexity()+'): { "top": '+this.top+', "left": '+this.left+" }>"},toObject:function(t){return n(this.callSuper("toObject",t),{path:this.path.map((function(t){return t.slice()}))})},toDatalessObject:function(t){var e=this.toObject(["sourcePath"].concat(t));return e.sourcePath&&delete e.path,e},_toSVG:function(){return["<path ","COMMON_PARTS",'d="',e.util.joinPath(this.path),'" stroke-linecap="round" ',"/>\n"]},_getOffsetTransform:function(){var t=e.Object.NUM_FRACTION_DIGITS;return" translate("+o(-this.pathOffset.x,t)+", "+o(-this.pathOffset.y,t)+")"},toClipPathSVG:function(t){var e=this._getOffsetTransform();return"\t"+this._createBaseClipPathSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},toSVG:function(t){var e=this._getOffsetTransform();return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,additionalTransform:e})},complexity:function(){return this.path.length},_calcDimensions:function(){for(var t,n,s=[],o=[],a=0,h=0,l=0,c=0,u=0,f=this.path.length;u<f;++u){switch((t=this.path[u])[0]){case"L":l=t[1],c=t[2],n=[];break;case"M":a=l=t[1],h=c=t[2],n=[];break;case"C":n=e.util.getBoundsOfCurve(l,c,t[1],t[2],t[3],t[4],t[5],t[6]),l=t[5],c=t[6];break;case"Q":n=e.util.getBoundsOfCurve(l,c,t[1],t[2],t[1],t[2],t[3],t[4]),l=t[3],c=t[4];break;case"z":case"Z":l=a,c=h}n.forEach((function(t){s.push(t.x),o.push(t.y)})),s.push(l),o.push(c)}var d=i(s)||0,g=i(o)||0;return{left:d,top:g,width:(r(s)||0)-d,height:(r(o)||0)-g}}}),e.Path.fromObject=function(t,i){if("string"==typeof t.sourcePath){var r=t.sourcePath;e.loadSVGFromURL(r,(function(e){var r=e[0];r.setOptions(t),i&&i(r)}))}else e.Object._fromObject("Path",t,i,"path")},e.Path.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat(["d"]),e.Path.fromElement=function(t,i,r){var s=e.parseAttributes(t,e.Path.ATTRIBUTE_NAMES);s.fromSVG=!0,i(new e.Path(s.d,n(s,r)))})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.array.min,r=e.util.array.max;e.Group||(e.Group=e.util.createClass(e.Object,e.Collection,{type:"group",strokeWidth:0,subTargetCheck:!1,cacheProperties:[],useSetOnGroup:!1,initialize:function(t,e,i){e=e||{},this._objects=[],i&&this.callSuper("initialize",e),this._objects=t||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;if(i)this._updateObjectsACoords();else{var n=e&&e.centerPoint;void 0!==e.originX&&(this.originX=e.originX),void 0!==e.originY&&(this.originY=e.originY),n||this._calcBounds(),this._updateObjectsCoords(n),delete e.centerPoint,this.callSuper("initialize",e)}this.setCoords()},_updateObjectsACoords:function(){for(var t=this._objects.length;t--;)this._objects[t].setCoords(true)},_updateObjectsCoords:function(t){t=t||this.getCenterPoint();for(var e=this._objects.length;e--;)this._updateObjectCoords(this._objects[e],t)},_updateObjectCoords:function(t,e){var i=t.left,r=t.top;t.set({left:i-e.x,top:r-e.y}),t.group=this,t.setCoords(!0)},toString:function(){return"#<fabric.Group: ("+this.complexity()+")>"},addWithUpdate:function(t){var i=!!this.group;return this._restoreObjectsState(),e.util.resetObjectTransform(this),t&&(i&&e.util.removeTransformFromObject(t,this.group.calcTransformMatrix()),this._objects.push(t),t.group=this,t._set("canvas",this.canvas)),this._calcBounds(),this._updateObjectsCoords(),this.dirty=!0,i?this.group.addWithUpdate():this.setCoords(),this},removeWithUpdate:function(t){return this._restoreObjectsState(),e.util.resetObjectTransform(this),this.remove(t),this._calcBounds(),this._updateObjectsCoords(),this.setCoords(),this.dirty=!0,this},_onObjectAdded:function(t){this.dirty=!0,t.group=this,t._set("canvas",this.canvas)},_onObjectRemoved:function(t){this.dirty=!0,delete t.group},_set:function(t,i){var r=this._objects.length;if(this.useSetOnGroup)for(;r--;)this._objects[r].setOnGroup(t,i);if("canvas"===t)for(;r--;)this._objects[r]._set(t,i);e.Object.prototype._set.call(this,t,i)},toObject:function(t){var i=this.includeDefaultValues,r=this._objects.filter((function(t){return!t.excludeFromExport})).map((function(e){var r=e.includeDefaultValues;e.includeDefaultValues=i;var n=e.toObject(t);return e.includeDefaultValues=r,n})),n=e.Object.prototype.toObject.call(this,t);return n.objects=r,n},toDatalessObject:function(t){var i,r=this.sourcePath;if(r)i=r;else{var n=this.includeDefaultValues;i=this._objects.map((function(e){var i=e.includeDefaultValues;e.includeDefaultValues=n;var r=e.toDatalessObject(t);return e.includeDefaultValues=i,r}))}var s=e.Object.prototype.toDatalessObject.call(this,t);return s.objects=i,s},render:function(t){this._transformDone=!0,this.callSuper("render",t),this._transformDone=!1},shouldCache:function(){var t=e.Object.prototype.shouldCache.call(this);if(t)for(var i=0,r=this._objects.length;i<r;i++)if(this._objects[i].willDrawShadow())return this.ownCaching=!1,!1;return t},willDrawShadow:function(){if(e.Object.prototype.willDrawShadow.call(this))return!0;for(var t=0,i=this._objects.length;t<i;t++)if(this._objects[t].willDrawShadow())return!0;return!1},isOnACache:function(){return this.ownCaching||this.group&&this.group.isOnACache()},drawObject:function(t){for(var e=0,i=this._objects.length;e<i;e++)this._objects[e].render(t);this._drawClipPath(t)},isCacheDirty:function(t){if(this.callSuper("isCacheDirty",t))return!0;if(!this.statefullCache)return!1;for(var e=0,i=this._objects.length;e<i;e++)if(this._objects[e].isCacheDirty(!0)){if(this._cacheCanvas){var r=this.cacheWidth/this.zoomX,n=this.cacheHeight/this.zoomY;this._cacheContext.clearRect(-r/2,-n/2,r,n)}return!0}return!1},_restoreObjectsState:function(){var t=this.calcOwnMatrix();return this._objects.forEach((function(i){e.util.addTransformToObject(i,t),delete i.group,i.setCoords()})),this},realizeTransform:function(t,i){return e.util.addTransformToObject(t,i),t},destroy:function(){return this._objects.forEach((function(t){t.set("dirty",!0)})),this._restoreObjectsState()},toActiveSelection:function(){if(this.canvas){var t=this._objects,i=this.canvas;this._objects=[];var r=this.toObject();delete r.objects;var n=new e.ActiveSelection([]);return n.set(r),n.type="activeSelection",i.remove(this),t.forEach((function(t){t.group=n,t.dirty=!0,i.add(t)})),n.canvas=i,n._objects=t,i._activeObject=n,n.setCoords(),n}},ungroupOnCanvas:function(){return this._restoreObjectsState()},setObjectsCoords:function(){return this.forEachObject((function(t){t.setCoords(true)})),this},_calcBounds:function(t){for(var e,i,r,n,s=[],o=[],a=["tr","br","bl","tl"],h=0,l=this._objects.length,c=a.length;h<l;++h){for(r=(e=this._objects[h]).calcACoords(),n=0;n<c;n++)i=a[n],s.push(r[i].x),o.push(r[i].y);e.aCoords=r}this._getBounds(s,o,t)},_getBounds:function(t,n,s){var o=new e.Point(i(t),i(n)),a=new e.Point(r(t),r(n)),h=o.y||0,l=o.x||0,c=a.x-o.x||0,u=a.y-o.y||0;this.width=c,this.height=u,s||this.setPositionByOrigin({x:l,y:h},"left","top")},_toSVG:function(t){for(var e=["<g ","COMMON_PARTS"," >\n"],i=0,r=this._objects.length;i<r;i++)e.push("\t\t",this._objects[i].toSVG(t));return e.push("</g>\n"),e},getSvgStyles:function(){var t=void 0!==this.opacity&&1!==this.opacity?"opacity: "+this.opacity+";":"",e=this.visible?"":" visibility: hidden;";return[t,this.getSvgFilter(),e].join("")},toClipPathSVG:function(t){for(var e=[],i=0,r=this._objects.length;i<r;i++)e.push("\t",this._objects[i].toClipPathSVG(t));return this._createBaseClipPathSVGMarkup(e,{reviver:t})}}),e.Group.fromObject=function(t,i){var r=t.objects,n=e.util.object.clone(t,!0);delete n.objects,"string"!=typeof r?e.util.enlivenObjects(r,(function(r){e.util.enlivenObjects([t.clipPath],(function(n){var s=e.util.object.clone(t,!0);s.clipPath=n[0],delete s.objects,i&&i(new e.Group(r,s,!0))}))})):e.loadSVGFromURL(r,(function(s){var o=e.util.groupSVGElements(s,t,r);o.set(n),i&&i(o)}))})}(e),function(t){"use strict";var e=t.fabric||(t.fabric={});e.ActiveSelection||(e.ActiveSelection=e.util.createClass(e.Group,{type:"activeSelection",initialize:function(t,i){i=i||{},this._objects=t||[];for(var r=this._objects.length;r--;)this._objects[r].group=this;i.originX&&(this.originX=i.originX),i.originY&&(this.originY=i.originY),this._calcBounds(),this._updateObjectsCoords(),e.Object.prototype.initialize.call(this,i),this.setCoords()},toGroup:function(){var t=this._objects.concat();this._objects=[];var i=e.Object.prototype.toObject.call(this),r=new e.Group([]);if(delete i.type,r.set(i),t.forEach((function(t){t.canvas.remove(t),t.group=r})),r._objects=t,!this.canvas)return r;var n=this.canvas;return n.add(r),n._activeObject=r,r.setCoords(),r},onDeselect:function(){return this.destroy(),!1},toString:function(){return"#<fabric.ActiveSelection: ("+this.complexity()+")>"},shouldCache:function(){return!1},isOnACache:function(){return!1},_renderControls:function(t,e,i){t.save(),t.globalAlpha=this.isMoving?this.borderOpacityWhenMoving:1,this.callSuper("_renderControls",t,e),void 0===(i=i||{}).hasControls&&(i.hasControls=!1),i.forActiveSelection=!0;for(var r=0,n=this._objects.length;r<n;r++)this._objects[r]._renderControls(t,i);t.restore()}}),e.ActiveSelection.fromObject=function(t,i){e.util.enlivenObjects(t.objects,(function(r){delete t.objects,i&&i(new e.ActiveSelection(r,t,!0))}))})}(e),function(t){"use strict";var e=k.util.object.extend;t.fabric||(t.fabric={}),t.fabric.Image?k.warn("fabric.Image is already defined."):(k.Image=k.util.createClass(k.Object,{type:"image",strokeWidth:0,srcFromAttribute:!1,_lastScaleX:1,_lastScaleY:1,_filterScalingX:1,_filterScalingY:1,minimumScaleTrigger:.5,stateProperties:k.Object.prototype.stateProperties.concat("cropX","cropY"),cacheProperties:k.Object.prototype.cacheProperties.concat("cropX","cropY"),cacheKey:"",cropX:0,cropY:0,imageSmoothing:!0,initialize:function(t,e){e||(e={}),this.filters=[],this.cacheKey="texture"+k.Object.__uid++,this.callSuper("initialize",e),this._initElement(t,e)},getElement:function(){return this._element||{}},setElement:function(t,e){return this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._element=t,this._originalElement=t,this._initConfig(e),0!==this.filters.length&&this.applyFilters(),this.resizeFilter&&this.applyResizeFilters(),this},removeTexture:function(t){var e=k.filterBackend;e&&e.evictCachesForKey&&e.evictCachesForKey(t)},dispose:function(){this.removeTexture(this.cacheKey),this.removeTexture(this.cacheKey+"_filtered"),this._cacheContext=void 0,["_originalElement","_element","_filteredEl","_cacheCanvas"].forEach(function(t){k.util.cleanUpJsdomNode(this[t]),this[t]=void 0}.bind(this))},getCrossOrigin:function(){return this._originalElement&&(this._originalElement.crossOrigin||null)},getOriginalSize:function(){var t=this.getElement();return{width:t.naturalWidth||t.width,height:t.naturalHeight||t.height}},_stroke:function(t){if(this.stroke&&0!==this.strokeWidth){var e=this.width/2,i=this.height/2;t.beginPath(),t.moveTo(-e,-i),t.lineTo(e,-i),t.lineTo(e,i),t.lineTo(-e,i),t.lineTo(-e,-i),t.closePath()}},toObject:function(t){var i=[];this.filters.forEach((function(t){t&&i.push(t.toObject())}));var r=e(this.callSuper("toObject",["cropX","cropY"].concat(t)),{src:this.getSrc(),crossOrigin:this.getCrossOrigin(),filters:i});return this.resizeFilter&&(r.resizeFilter=this.resizeFilter.toObject()),r},hasCrop:function(){return this.cropX||this.cropY||this.width<this._element.width||this.height<this._element.height},_toSVG:function(){var t,e=[],i=[],r=this._element,n=-this.width/2,s=-this.height/2,o="",a="";if(!r)return[];if(this.hasCrop()){var h=k.Object.__uid++;e.push('<clipPath id="imageCrop_'+h+'">\n','\t<rect x="'+n+'" y="'+s+'" width="'+this.width+'" height="'+this.height+'" />\n',"</clipPath>\n"),o=' clip-path="url(#imageCrop_'+h+')" '}if(this.imageSmoothing||(a='" image-rendering="optimizeSpeed'),i.push("\t<image ","COMMON_PARTS",'xlink:href="',this.getSvgSrc(!0),'" x="',n-this.cropX,'" y="',s-this.cropY,'" width="',r.width||r.naturalWidth,'" height="',r.height||r.height,a,'"',o,"></image>\n"),this.stroke||this.strokeDashArray){var l=this.fill;this.fill=null,t=["\t<rect ",'x="',n,'" y="',s,'" width="',this.width,'" height="',this.height,'" style="',this.getSvgStyles(),'"/>\n'],this.fill=l}return e="fill"!==this.paintFirst?e.concat(t,i):e.concat(i,t)},getSrc:function(t){var e=t?this._element:this._originalElement;return e?e.toDataURL?e.toDataURL():this.srcFromAttribute?e.getAttribute("src"):e.src:this.src||""},setSrc:function(t,e,i){return k.util.loadImage(t,(function(t,r){this.setElement(t,i),this._setWidthHeight(),e&&e(this,r)}),this,i&&i.crossOrigin),this},toString:function(){return'#<fabric.Image: { src: "'+this.getSrc()+'" }>'},applyResizeFilters:function(){var t=this.resizeFilter,e=this.minimumScaleTrigger,i=this.getTotalObjectScaling(),r=i.scaleX,n=i.scaleY,s=this._filteredEl||this._originalElement;if(this.group&&this.set("dirty",!0),!t||r>e&&n>e)return this._element=s,this._filterScalingX=1,this._filterScalingY=1,this._lastScaleX=r,void(this._lastScaleY=n);k.filterBackend||(k.filterBackend=k.initFilterBackend());var o=k.util.createCanvasElement(),a=this._filteredEl?this.cacheKey+"_filtered":this.cacheKey,h=s.width,l=s.height;o.width=h,o.height=l,this._element=o,this._lastScaleX=t.scaleX=r,this._lastScaleY=t.scaleY=n,k.filterBackend.applyFilters([t],s,h,l,this._element,a),this._filterScalingX=o.width/this._originalElement.width,this._filterScalingY=o.height/this._originalElement.height},applyFilters:function(t){if(t=(t=t||this.filters||[]).filter((function(t){return t&&!t.isNeutralState()})),this.set("dirty",!0),this.removeTexture(this.cacheKey+"_filtered"),0===t.length)return this._element=this._originalElement,this._filteredEl=null,this._filterScalingX=1,this._filterScalingY=1,this;var e=this._originalElement,i=e.naturalWidth||e.width,r=e.naturalHeight||e.height;if(this._element===this._originalElement){var n=k.util.createCanvasElement();n.width=i,n.height=r,this._element=n,this._filteredEl=n}else this._element=this._filteredEl,this._filteredEl.getContext("2d").clearRect(0,0,i,r),this._lastScaleX=1,this._lastScaleY=1;return k.filterBackend||(k.filterBackend=k.initFilterBackend()),k.filterBackend.applyFilters(t,this._originalElement,i,r,this._element,this.cacheKey),this._originalElement.width===this._element.width&&this._originalElement.height===this._element.height||(this._filterScalingX=this._element.width/this._originalElement.width,this._filterScalingY=this._element.height/this._originalElement.height),this},_render:function(t){k.util.setImageSmoothing(t,this.imageSmoothing),!0!==this.isMoving&&this.resizeFilter&&this._needsResize()&&this.applyResizeFilters(),this._stroke(t),this._renderPaintInOrder(t)},drawCacheOnCanvas:function(t){k.util.setImageSmoothing(t,this.imageSmoothing),k.Object.prototype.drawCacheOnCanvas.call(this,t)},shouldCache:function(){return this.needsItsOwnCache()},_renderFill:function(t){var e=this._element;if(e){var i=this._filterScalingX,r=this._filterScalingY,n=this.width,s=this.height,o=Math.min,a=Math.max,h=a(this.cropX,0),l=a(this.cropY,0),c=e.naturalWidth||e.width,u=e.naturalHeight||e.height,f=h*i,d=l*r,g=o(n*i,c-f),p=o(s*r,u-d),v=-n/2,m=-s/2,_=o(n,c/i-h),y=o(s,u/r-l);e&&t.drawImage(e,f,d,g,p,v,m,_,y)}},_needsResize:function(){var t=this.getTotalObjectScaling();return t.scaleX!==this._lastScaleX||t.scaleY!==this._lastScaleY},_resetWidthHeight:function(){this.set(this.getOriginalSize())},_initElement:function(t,e){this.setElement(k.util.getById(t),e),k.util.addClass(this.getElement(),k.Image.CSS_CANVAS)},_initConfig:function(t){t||(t={}),this.setOptions(t),this._setWidthHeight(t)},_initFilters:function(t,e){t&&t.length?k.util.enlivenObjects(t,(function(t){e&&e(t)}),"fabric.Image.filters"):e&&e()},_setWidthHeight:function(t){t||(t={});var e=this.getElement();this.width=t.width||e.naturalWidth||e.width||0,this.height=t.height||e.naturalHeight||e.height||0},parsePreserveAspectRatioAttribute:function(){var t,e=k.util.parsePreserveAspectRatioAttribute(this.preserveAspectRatio||""),i=this._element.width,r=this._element.height,n=1,s=1,o=0,a=0,h=0,l=0,c=this.width,u=this.height,f={width:c,height:u};return!e||"none"===e.alignX&&"none"===e.alignY?(n=c/i,s=u/r):("meet"===e.meetOrSlice&&(t=(c-i*(n=s=k.util.findScaleToFit(this._element,f)))/2,"Min"===e.alignX&&(o=-t),"Max"===e.alignX&&(o=t),t=(u-r*s)/2,"Min"===e.alignY&&(a=-t),"Max"===e.alignY&&(a=t)),"slice"===e.meetOrSlice&&(t=i-c/(n=s=k.util.findScaleToCover(this._element,f)),"Mid"===e.alignX&&(h=t/2),"Max"===e.alignX&&(h=t),t=r-u/s,"Mid"===e.alignY&&(l=t/2),"Max"===e.alignY&&(l=t),i=c/n,r=u/s)),{width:i,height:r,scaleX:n,scaleY:s,offsetLeft:o,offsetTop:a,cropX:h,cropY:l}}}),k.Image.CSS_CANVAS="canvas-img",k.Image.prototype.getSvgSrc=k.Image.prototype.getSrc,k.Image.fromObject=function(t,e){var i=k.util.object.clone(t);k.util.loadImage(i.src,(function(t,r){r?e&&e(null,!0):k.Image.prototype._initFilters.call(i,i.filters,(function(r){i.filters=r||[],k.Image.prototype._initFilters.call(i,[i.resizeFilter],(function(r){i.resizeFilter=r[0],k.util.enlivenObjects([i.clipPath],(function(r){i.clipPath=r[0];var n=new k.Image(t,i);e(n,!1)}))}))}))}),null,i.crossOrigin)},k.Image.fromURL=function(t,e,i){k.util.loadImage(t,(function(t,r){e&&e(new k.Image(t,i),r)}),null,i&&i.crossOrigin)},k.Image.ATTRIBUTE_NAMES=k.SHARED_ATTRIBUTES.concat("x y width height preserveAspectRatio xlink:href crossOrigin image-rendering".split(" ")),k.Image.fromElement=function(t,i,r){var n=k.parseAttributes(t,k.Image.ATTRIBUTE_NAMES);k.Image.fromURL(n["xlink:href"],i,e(r?k.util.object.clone(r):{},n))})}(e),k.util.object.extend(k.Object.prototype,{_getAngleValueForStraighten:function(){var t=this.angle%360;return t>0?90*Math.round((t-1)/90):90*Math.round(t/90)},straighten:function(){return this.rotate(this._getAngleValueForStraighten()),this},fxStraighten:function(t){var empty=function(){},e=(t=t||{}).onComplete||empty,i=t.onChange||empty,r=this;return k.util.animate({startValue:this.get("angle"),endValue:this._getAngleValueForStraighten(),duration:this.FX_DURATION,onChange:function(t){r.rotate(t),i()},onComplete:function(){r.setCoords(),e()}}),this}}),k.util.object.extend(k.StaticCanvas.prototype,{straightenObject:function(t){return t.straighten(),this.requestRenderAll(),this},fxStraightenObject:function(t){return t.fxStraighten({onChange:this.requestRenderAllBound}),this}}),function(){"use strict";function testPrecision(t,e){var i="precision "+e+" float;\nvoid main(){}",r=t.createShader(t.FRAGMENT_SHADER);return t.shaderSource(r,i),t.compileShader(r),!!t.getShaderParameter(r,t.COMPILE_STATUS)}function WebglFilterBackend(t){t&&t.tileSize&&(this.tileSize=t.tileSize),this.setupGLContext(this.tileSize,this.tileSize),this.captureGPUInfo()}k.isWebglSupported=function(t){if(k.isLikelyNode)return!1;t=t||k.WebglFilterBackend.prototype.tileSize;var e=document.createElement("canvas"),i=e.getContext("webgl")||e.getContext("experimental-webgl"),r=!1;if(i){k.maxTextureSize=i.getParameter(i.MAX_TEXTURE_SIZE),r=k.maxTextureSize>=t;for(var n=["highp","mediump","lowp"],s=0;s<3;s++)if(testPrecision(i,n[s])){k.webGlPrecision=n[s];break}}return this.isSupported=r,r},k.WebglFilterBackend=WebglFilterBackend,WebglFilterBackend.prototype={tileSize:2048,resources:{},setupGLContext:function(t,e){this.dispose(),this.createWebGLCanvas(t,e),this.aPosition=new Float32Array([0,0,0,1,1,0,1,1]),this.chooseFastestCopyGLTo2DMethod(t,e)},chooseFastestCopyGLTo2DMethod:function(t,e){var i,r=void 0!==window.performance;try{new ImageData(1,1),i=!0}catch(t){i=!1}var n="undefined"!=typeof ArrayBuffer,s="undefined"!=typeof Uint8ClampedArray;if(r&&i&&n&&s){var o=k.util.createCanvasElement(),a=new ArrayBuffer(t*e*4);if(k.forceGLPutImageData)return this.imageBuffer=a,void(this.copyGLTo2D=copyGLTo2DPutImageData);var h,l,c={imageBuffer:a,destinationWidth:t,destinationHeight:e,targetCanvas:o};o.width=t,o.height=e,h=window.performance.now(),copyGLTo2DDrawImage.call(c,this.gl,c),l=window.performance.now()-h,h=window.performance.now(),copyGLTo2DPutImageData.call(c,this.gl,c),l>window.performance.now()-h?(this.imageBuffer=a,this.copyGLTo2D=copyGLTo2DPutImageData):this.copyGLTo2D=copyGLTo2DDrawImage}},createWebGLCanvas:function(t,e){var i=k.util.createCanvasElement();i.width=t,i.height=e;var r={alpha:!0,premultipliedAlpha:!1,depth:!1,stencil:!1,antialias:!1},n=i.getContext("webgl",r);n||(n=i.getContext("experimental-webgl",r)),n&&(n.clearColor(0,0,0,0),this.canvas=i,this.gl=n)},applyFilters:function(t,e,i,r,n,s){var o,a=this.gl;s&&(o=this.getCachedTexture(s,e));var h={originalWidth:e.width||e.originalWidth,originalHeight:e.height||e.originalHeight,sourceWidth:i,sourceHeight:r,destinationWidth:i,destinationHeight:r,context:a,sourceTexture:this.createTexture(a,i,r,!o&&e),targetTexture:this.createTexture(a,i,r),originalTexture:o||this.createTexture(a,i,r,!o&&e),passes:t.length,webgl:!0,aPosition:this.aPosition,programCache:this.programCache,pass:0,filterBackend:this,targetCanvas:n},l=a.createFramebuffer();return a.bindFramebuffer(a.FRAMEBUFFER,l),t.forEach((function(t){t&&t.applyTo(h)})),function resizeCanvasIfNeeded(t){var e=t.targetCanvas,i=e.width,r=e.height,n=t.destinationWidth,s=t.destinationHeight;i===n&&r===s||(e.width=n,e.height=s)}(h),this.copyGLTo2D(a,h),a.bindTexture(a.TEXTURE_2D,null),a.deleteTexture(h.sourceTexture),a.deleteTexture(h.targetTexture),a.deleteFramebuffer(l),n.getContext("2d").setTransform(1,0,0,1,0,0),h},dispose:function(){this.canvas&&(this.canvas=null,this.gl=null),this.clearWebGLCaches()},clearWebGLCaches:function(){this.programCache={},this.textureCache={}},createTexture:function(t,e,i,r){var n=t.createTexture();return t.bindTexture(t.TEXTURE_2D,n),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MAG_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_MIN_FILTER,t.NEAREST),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_S,t.CLAMP_TO_EDGE),t.texParameteri(t.TEXTURE_2D,t.TEXTURE_WRAP_T,t.CLAMP_TO_EDGE),r?t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,r):t.texImage2D(t.TEXTURE_2D,0,t.RGBA,e,i,0,t.RGBA,t.UNSIGNED_BYTE,null),n},getCachedTexture:function(t,e){if(this.textureCache[t])return this.textureCache[t];var i=this.createTexture(this.gl,e.width,e.height,e);return this.textureCache[t]=i,i},evictCachesForKey:function(t){this.textureCache[t]&&(this.gl.deleteTexture(this.textureCache[t]),delete this.textureCache[t])},copyGLTo2D:copyGLTo2DDrawImage,captureGPUInfo:function(){if(this.gpuInfo)return this.gpuInfo;var t=this.gl,e={renderer:"",vendor:""};if(!t)return e;var i=t.getExtension("WEBGL_debug_renderer_info");if(i){var r=t.getParameter(i.UNMASKED_RENDERER_WEBGL),n=t.getParameter(i.UNMASKED_VENDOR_WEBGL);r&&(e.renderer=r.toLowerCase()),n&&(e.vendor=n.toLowerCase())}return this.gpuInfo=e,e}}}(),function(){"use strict";var noop=function(){};function Canvas2dFilterBackend(){}k.Canvas2dFilterBackend=Canvas2dFilterBackend,Canvas2dFilterBackend.prototype={evictCachesForKey:noop,dispose:noop,clearWebGLCaches:noop,resources:{},applyFilters:function(t,e,i,r,n){var s=n.getContext("2d");s.drawImage(e,0,0,i,r);var o={sourceWidth:i,sourceHeight:r,imageData:s.getImageData(0,0,i,r),originalEl:e,originalImageData:s.getImageData(0,0,i,r),canvasEl:n,ctx:s,filterBackend:this};return t.forEach((function(t){t.applyTo(o)})),o.imageData.width===i&&o.imageData.height===r||(n.width=o.imageData.width,n.height=o.imageData.height),s.putImageData(o.imageData,0,0),o}}}(),k.Image=k.Image||{},k.Image.filters=k.Image.filters||{},k.Image.filters.BaseFilter=k.util.createClass({type:"BaseFilter",vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvoid main() {\nvTexCoord = aPosition;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:"precision highp float;\nvarying vec2 vTexCoord;\nuniform sampler2D uTexture;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\n}",initialize:function(t){t&&this.setOptions(t)},setOptions:function(t){for(var e in t)this[e]=t[e]},createProgram:function(t,e,i){e=e||this.fragmentSource,i=i||this.vertexSource,"highp"!==k.webGlPrecision&&(e=e.replace(/precision highp float/g,"precision "+k.webGlPrecision+" float"));var r=t.createShader(t.VERTEX_SHADER);if(t.shaderSource(r,i),t.compileShader(r),!t.getShaderParameter(r,t.COMPILE_STATUS))throw new Error("Vertex shader compile error for "+this.type+": "+t.getShaderInfoLog(r));var n=t.createShader(t.FRAGMENT_SHADER);if(t.shaderSource(n,e),t.compileShader(n),!t.getShaderParameter(n,t.COMPILE_STATUS))throw new Error("Fragment shader compile error for "+this.type+": "+t.getShaderInfoLog(n));var s=t.createProgram();if(t.attachShader(s,r),t.attachShader(s,n),t.linkProgram(s),!t.getProgramParameter(s,t.LINK_STATUS))throw new Error('Shader link error for "${this.type}" '+t.getProgramInfoLog(s));var o=this.getAttributeLocations(t,s),a=this.getUniformLocations(t,s)||{};return a.uStepW=t.getUniformLocation(s,"uStepW"),a.uStepH=t.getUniformLocation(s,"uStepH"),{program:s,attributeLocations:o,uniformLocations:a}},getAttributeLocations:function(t,e){return{aPosition:t.getAttribLocation(e,"aPosition")}},getUniformLocations:function(){return{}},sendAttributeData:function(t,e,i){var r=e.aPosition,n=t.createBuffer();t.bindBuffer(t.ARRAY_BUFFER,n),t.enableVertexAttribArray(r),t.vertexAttribPointer(r,2,t.FLOAT,!1,0,0),t.bufferData(t.ARRAY_BUFFER,i,t.STATIC_DRAW)},_setupFrameBuffer:function(t){var e,i,r=t.context;t.passes>1?(e=t.destinationWidth,i=t.destinationHeight,t.sourceWidth===e&&t.sourceHeight===i||(r.deleteTexture(t.targetTexture),t.targetTexture=t.filterBackend.createTexture(r,e,i)),r.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,t.targetTexture,0)):(r.bindFramebuffer(r.FRAMEBUFFER,null),r.finish())},_swapTextures:function(t){t.passes--,t.pass++;var e=t.targetTexture;t.targetTexture=t.sourceTexture,t.sourceTexture=e},isNeutralState:function(){var t=this.mainParameter,e=k.Image.filters[this.type].prototype;if(t){if(Array.isArray(e[t])){for(var i=e[t].length;i--;)if(this[t][i]!==e[t][i])return!1;return!0}return e[t]===this[t]}return!1},applyTo:function(t){t.webgl?(this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)},retrieveShader:function(t){return t.programCache.hasOwnProperty(this.type)||(t.programCache[this.type]=this.createProgram(t.context)),t.programCache[this.type]},applyToWebGL:function(t){var e=t.context,i=this.retrieveShader(t);0===t.pass&&t.originalTexture?e.bindTexture(e.TEXTURE_2D,t.originalTexture):e.bindTexture(e.TEXTURE_2D,t.sourceTexture),e.useProgram(i.program),this.sendAttributeData(e,i.attributeLocations,t.aPosition),e.uniform1f(i.uniformLocations.uStepW,1/t.sourceWidth),e.uniform1f(i.uniformLocations.uStepH,1/t.sourceHeight),this.sendUniformData(e,i.uniformLocations),e.viewport(0,0,t.destinationWidth,t.destinationHeight),e.drawArrays(e.TRIANGLE_STRIP,0,4)},bindAdditionalTexture:function(t,e,i){t.activeTexture(i),t.bindTexture(t.TEXTURE_2D,e),t.activeTexture(t.TEXTURE0)},unbindAdditionalTexture:function(t,e){t.activeTexture(e),t.bindTexture(t.TEXTURE_2D,null),t.activeTexture(t.TEXTURE0)},getMainParameter:function(){return this[this.mainParameter]},setMainParameter:function(t){this[this.mainParameter]=t},sendUniformData:function(){},createHelpLayer:function(t){if(!t.helpLayer){var e=document.createElement("canvas");e.width=t.sourceWidth,e.height=t.sourceHeight,t.helpLayer=e}},toObject:function(){var t={type:this.type},e=this.mainParameter;return e&&(t[e]=this[e]),t},toJSON:function(){return this.toObject()}}),k.Image.filters.BaseFilter.fromObject=function(t,e){var i=new k.Image.filters[t.type](t);return e&&e(i),i},function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.ColorMatrix=r(i.BaseFilter,{type:"ColorMatrix",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nuniform mat4 uColorMatrix;\nuniform vec4 uConstants;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor *= uColorMatrix;\ncolor += uConstants;\ngl_FragColor = color;\n}",matrix:[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],mainParameter:"matrix",colorsOnly:!0,initialize:function(t){this.callSuper("initialize",t),this.matrix=this.matrix.slice(0)},applyTo2d:function(t){var e,i,r,n,s,o=t.imageData.data,a=o.length,h=this.matrix,l=this.colorsOnly;for(s=0;s<a;s+=4)e=o[s],i=o[s+1],r=o[s+2],l?(o[s]=e*h[0]+i*h[1]+r*h[2]+255*h[4],o[s+1]=e*h[5]+i*h[6]+r*h[7]+255*h[9],o[s+2]=e*h[10]+i*h[11]+r*h[12]+255*h[14]):(n=o[s+3],o[s]=e*h[0]+i*h[1]+r*h[2]+n*h[3]+255*h[4],o[s+1]=e*h[5]+i*h[6]+r*h[7]+n*h[8]+255*h[9],o[s+2]=e*h[10]+i*h[11]+r*h[12]+n*h[13]+255*h[14],o[s+3]=e*h[15]+i*h[16]+r*h[17]+n*h[18]+255*h[19])},getUniformLocations:function(t,e){return{uColorMatrix:t.getUniformLocation(e,"uColorMatrix"),uConstants:t.getUniformLocation(e,"uConstants")}},sendUniformData:function(t,e){var i=this.matrix,r=[i[0],i[1],i[2],i[3],i[5],i[6],i[7],i[8],i[10],i[11],i[12],i[13],i[15],i[16],i[17],i[18]],n=[i[4],i[9],i[14],i[19]];t.uniformMatrix4fv(e.uColorMatrix,!1,r),t.uniform4fv(e.uConstants,n)}}),e.Image.filters.ColorMatrix.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Brightness=r(i.BaseFilter,{type:"Brightness",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBrightness;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += uBrightness;\ngl_FragColor = color;\n}",brightness:0,mainParameter:"brightness",applyTo2d:function(t){if(0!==this.brightness){var e,i=t.imageData.data,r=i.length,n=Math.round(255*this.brightness);for(e=0;e<r;e+=4)i[e]=i[e]+n,i[e+1]=i[e+1]+n,i[e+2]=i[e+2]+n}},getUniformLocations:function(t,e){return{uBrightness:t.getUniformLocation(e,"uBrightness")}},sendUniformData:function(t,e){t.uniform1f(e.uBrightness,this.brightness)}}),e.Image.filters.Brightness.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.Image.filters,n=e.util.createClass;r.Convolute=n(r.BaseFilter,{type:"Convolute",opaque:!1,matrix:[0,0,0,0,1,0,0,0,0],fragmentSource:{Convolute_3_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1), uStepH * (h - 1));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 3.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_3_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[9];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 3.0; h+=1.0) {\nfor (float w = 0.0; w < 3.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 1.0), uStepH * (h - 1.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 3.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_5_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 5.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_5_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[25];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 5.0; h+=1.0) {\nfor (float w = 0.0; w < 5.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 2.0), uStepH * (h - 2.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 5.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_7_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 7.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_7_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[49];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 7.0; h+=1.0) {\nfor (float w = 0.0; w < 7.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 3.0), uStepH * (h - 3.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 7.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}",Convolute_9_1:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 0);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor += texture2D(uTexture, vTexCoord + matrixPos) * uMatrix[int(h * 9.0 + w)];\n}\n}\ngl_FragColor = color;\n}",Convolute_9_0:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uMatrix[81];\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = vec4(0, 0, 0, 1);\nfor (float h = 0.0; h < 9.0; h+=1.0) {\nfor (float w = 0.0; w < 9.0; w+=1.0) {\nvec2 matrixPos = vec2(uStepW * (w - 4.0), uStepH * (h - 4.0));\ncolor.rgb += texture2D(uTexture, vTexCoord + matrixPos).rgb * uMatrix[int(h * 9.0 + w)];\n}\n}\nfloat alpha = texture2D(uTexture, vTexCoord).a;\ngl_FragColor = color;\ngl_FragColor.a = alpha;\n}"},retrieveShader:function(t){var e=Math.sqrt(this.matrix.length),i=this.type+"_"+e+"_"+(this.opaque?1:0),r=this.fragmentSource[i];return t.programCache.hasOwnProperty(i)||(t.programCache[i]=this.createProgram(t.context,r)),t.programCache[i]},applyTo2d:function(t){var e,i,r,n,s,o,a,h,l,c,u,f,d,g=t.imageData,p=g.data,v=this.matrix,m=Math.round(Math.sqrt(v.length)),_=Math.floor(m/2),y=g.width,x=g.height,C=t.ctx.createImageData(y,x),b=C.data,S=this.opaque?1:0;for(u=0;u<x;u++)for(c=0;c<y;c++){for(s=4*(u*y+c),e=0,i=0,r=0,n=0,d=0;d<m;d++)for(f=0;f<m;f++)o=c+f-_,(a=u+d-_)<0||a>=x||o<0||o>=y||(h=4*(a*y+o),l=v[d*m+f],e+=p[h]*l,i+=p[h+1]*l,r+=p[h+2]*l,S||(n+=p[h+3]*l));b[s]=e,b[s+1]=i,b[s+2]=r,b[s+3]=S?p[s+3]:n}t.imageData=C},getUniformLocations:function(t,e){return{uMatrix:t.getUniformLocation(e,"uMatrix"),uOpaque:t.getUniformLocation(e,"uOpaque"),uHalfSize:t.getUniformLocation(e,"uHalfSize"),uSize:t.getUniformLocation(e,"uSize")}},sendUniformData:function(t,e){t.uniform1fv(e.uMatrix,this.matrix)},toObject:function(){return i(this.callSuper("toObject"),{opaque:this.opaque,matrix:this.matrix})}}),e.Image.filters.Convolute.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Grayscale=r(i.BaseFilter,{type:"Grayscale",fragmentSource:{average:"precision highp float;\nuniform sampler2D uTexture;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat average = (color.r + color.b + color.g) / 3.0;\ngl_FragColor = vec4(average, average, average, color.a);\n}",lightness:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = (max(max(col.r, col.g),col.b) + min(min(col.r, col.g),col.b)) / 2.0;\ngl_FragColor = vec4(average, average, average, col.a);\n}",luminosity:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uMode;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 col = texture2D(uTexture, vTexCoord);\nfloat average = 0.21 * col.r + 0.72 * col.g + 0.07 * col.b;\ngl_FragColor = vec4(average, average, average, col.a);\n}"},mode:"average",mainParameter:"mode",applyTo2d:function(t){var e,i,r=t.imageData.data,n=r.length,s=this.mode;for(e=0;e<n;e+=4)"average"===s?i=(r[e]+r[e+1]+r[e+2])/3:"lightness"===s?i=(Math.min(r[e],r[e+1],r[e+2])+Math.max(r[e],r[e+1],r[e+2]))/2:"luminosity"===s&&(i=.21*r[e]+.72*r[e+1]+.07*r[e+2]),r[e]=i,r[e+1]=i,r[e+2]=i},retrieveShader:function(t){var e=this.type+"_"+this.mode;if(!t.programCache.hasOwnProperty(e)){var i=this.fragmentSource[this.mode];t.programCache[e]=this.createProgram(t.context,i)}return t.programCache[e]},getUniformLocations:function(t,e){return{uMode:t.getUniformLocation(e,"uMode")}},sendUniformData:function(t,e){t.uniform1i(e.uMode,1)},isNeutralState:function(){return!1}}),e.Image.filters.Grayscale.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Invert=r(i.BaseFilter,{type:"Invert",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform int uInvert;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nif (uInvert == 1) {\ngl_FragColor = vec4(1.0 - color.r,1.0 -color.g,1.0 -color.b,color.a);\n} else {\ngl_FragColor = color;\n}\n}",invert:!0,mainParameter:"invert",applyTo2d:function(t){var e,i=t.imageData.data,r=i.length;for(e=0;e<r;e+=4)i[e]=255-i[e],i[e+1]=255-i[e+1],i[e+2]=255-i[e+2]},isNeutralState:function(){return!this.invert},getUniformLocations:function(t,e){return{uInvert:t.getUniformLocation(e,"uInvert")}},sendUniformData:function(t,e){t.uniform1i(e.uInvert,this.invert)}}),e.Image.filters.Invert.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.Image.filters,n=e.util.createClass;r.Noise=n(r.BaseFilter,{type:"Noise",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uStepH;\nuniform float uNoise;\nuniform float uSeed;\nvarying vec2 vTexCoord;\nfloat rand(vec2 co, float seed, float vScale) {\nreturn fract(sin(dot(co.xy * vScale ,vec2(12.9898 , 78.233))) * 43758.5453 * (seed + 0.01) / 2.0);\n}\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ncolor.rgb += (0.5 - rand(vTexCoord, uSeed, 0.1 / uStepH)) * uNoise;\ngl_FragColor = color;\n}",mainParameter:"noise",noise:0,applyTo2d:function(t){if(0!==this.noise){var e,i,r=t.imageData.data,n=r.length,s=this.noise;for(e=0,n=r.length;e<n;e+=4)i=(.5-Math.random())*s,r[e]+=i,r[e+1]+=i,r[e+2]+=i}},getUniformLocations:function(t,e){return{uNoise:t.getUniformLocation(e,"uNoise"),uSeed:t.getUniformLocation(e,"uSeed")}},sendUniformData:function(t,e){t.uniform1f(e.uNoise,this.noise/255),t.uniform1f(e.uSeed,Math.random())},toObject:function(){return i(this.callSuper("toObject"),{noise:this.noise})}}),e.Image.filters.Noise.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Pixelate=r(i.BaseFilter,{type:"Pixelate",blocksize:4,mainParameter:"blocksize",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uBlocksize;\nuniform float uStepW;\nuniform float uStepH;\nvarying vec2 vTexCoord;\nvoid main() {\nfloat blockW = uBlocksize * uStepW;\nfloat blockH = uBlocksize * uStepW;\nint posX = int(vTexCoord.x / blockW);\nint posY = int(vTexCoord.y / blockH);\nfloat fposX = float(posX);\nfloat fposY = float(posY);\nvec2 squareCoords = vec2(fposX * blockW, fposY * blockH);\nvec4 color = texture2D(uTexture, squareCoords);\ngl_FragColor = color;\n}",applyTo2d:function(t){var e,i,r,n,s,o,a,h,l,c,u,f=t.imageData,d=f.data,g=f.height,p=f.width;for(i=0;i<g;i+=this.blocksize)for(r=0;r<p;r+=this.blocksize)for(n=d[e=4*i*p+4*r],s=d[e+1],o=d[e+2],a=d[e+3],c=Math.min(i+this.blocksize,g),u=Math.min(r+this.blocksize,p),h=i;h<c;h++)for(l=r;l<u;l++)d[e=4*h*p+4*l]=n,d[e+1]=s,d[e+2]=o,d[e+3]=a},isNeutralState:function(){return 1===this.blocksize},getUniformLocations:function(t,e){return{uBlocksize:t.getUniformLocation(e,"uBlocksize"),uStepW:t.getUniformLocation(e,"uStepW"),uStepH:t.getUniformLocation(e,"uStepH")}},sendUniformData:function(t,e){t.uniform1f(e.uBlocksize,this.blocksize)}}),e.Image.filters.Pixelate.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.extend,r=e.Image.filters,n=e.util.createClass;r.RemoveColor=n(r.BaseFilter,{type:"RemoveColor",color:"#FFFFFF",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uLow;\nuniform vec4 uHigh;\nvarying vec2 vTexCoord;\nvoid main() {\ngl_FragColor = texture2D(uTexture, vTexCoord);\nif(all(greaterThan(gl_FragColor.rgb,uLow.rgb)) && all(greaterThan(uHigh.rgb,gl_FragColor.rgb))) {\ngl_FragColor.a = 0.0;\n}\n}",distance:.02,useAlpha:!1,applyTo2d:function(t){var i,r,n,s,o=t.imageData.data,a=255*this.distance,h=new e.Color(this.color).getSource(),l=[h[0]-a,h[1]-a,h[2]-a],c=[h[0]+a,h[1]+a,h[2]+a];for(i=0;i<o.length;i+=4)r=o[i],n=o[i+1],s=o[i+2],r>l[0]&&n>l[1]&&s>l[2]&&r<c[0]&&n<c[1]&&s<c[2]&&(o[i+3]=0)},getUniformLocations:function(t,e){return{uLow:t.getUniformLocation(e,"uLow"),uHigh:t.getUniformLocation(e,"uHigh")}},sendUniformData:function(t,i){var r=new e.Color(this.color).getSource(),n=parseFloat(this.distance),s=[0+r[0]/255-n,0+r[1]/255-n,0+r[2]/255-n,1],o=[r[0]/255+n,r[1]/255+n,r[2]/255+n,1];t.uniform4fv(i.uLow,s),t.uniform4fv(i.uHigh,o)},toObject:function(){return i(this.callSuper("toObject"),{color:this.color,distance:this.distance})}}),e.Image.filters.RemoveColor.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass,n={Brownie:[.5997,.34553,-.27082,0,.186,-.0377,.86095,.15059,0,-.1449,.24113,-.07441,.44972,0,-.02965,0,0,0,1,0],Vintage:[.62793,.32021,-.03965,0,.03784,.02578,.64411,.03259,0,.02926,.0466,-.08512,.52416,0,.02023,0,0,0,1,0],Kodachrome:[1.12855,-.39673,-.03992,0,.24991,-.16404,1.08352,-.05498,0,.09698,-.16786,-.56034,1.60148,0,.13972,0,0,0,1,0],Technicolor:[1.91252,-.85453,-.09155,0,.04624,-.30878,1.76589,-.10601,0,-.27589,-.2311,-.75018,1.84759,0,.12137,0,0,0,1,0],Polaroid:[1.438,-.062,-.062,0,0,-.122,1.378,-.122,0,0,-.016,-.016,1.483,0,0,0,0,0,1,0],Sepia:[.393,.769,.189,0,0,.349,.686,.168,0,0,.272,.534,.131,0,0,0,0,0,1,0],BlackWhite:[1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,1.5,1.5,1.5,0,-1,0,0,0,1,0]};for(var s in n)i[s]=r(i.ColorMatrix,{type:s,matrix:n[s],mainParameter:!1,colorsOnly:!0}),e.Image.filters[s].fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric,i=e.Image.filters,r=e.util.createClass;i.BlendColor=r(i.BaseFilter,{type:"BlendColor",color:"#F95C63",mode:"multiply",alpha:1,fragmentSource:{multiply:"gl_FragColor.rgb *= uColor.rgb;\n",screen:"gl_FragColor.rgb = 1.0 - (1.0 - gl_FragColor.rgb) * (1.0 - uColor.rgb);\n",add:"gl_FragColor.rgb += uColor.rgb;\n",diff:"gl_FragColor.rgb = abs(gl_FragColor.rgb - uColor.rgb);\n",subtract:"gl_FragColor.rgb -= uColor.rgb;\n",lighten:"gl_FragColor.rgb = max(gl_FragColor.rgb, uColor.rgb);\n",darken:"gl_FragColor.rgb = min(gl_FragColor.rgb, uColor.rgb);\n",exclusion:"gl_FragColor.rgb += uColor.rgb - 2.0 * (uColor.rgb * gl_FragColor.rgb);\n",overlay:"if (uColor.r < 0.5) {\ngl_FragColor.r *= 2.0 * uColor.r;\n} else {\ngl_FragColor.r = 1.0 - 2.0 * (1.0 - gl_FragColor.r) * (1.0 - uColor.r);\n}\nif (uColor.g < 0.5) {\ngl_FragColor.g *= 2.0 * uColor.g;\n} else {\ngl_FragColor.g = 1.0 - 2.0 * (1.0 - gl_FragColor.g) * (1.0 - uColor.g);\n}\nif (uColor.b < 0.5) {\ngl_FragColor.b *= 2.0 * uColor.b;\n} else {\ngl_FragColor.b = 1.0 - 2.0 * (1.0 - gl_FragColor.b) * (1.0 - uColor.b);\n}\n",tint:"gl_FragColor.rgb *= (1.0 - uColor.a);\ngl_FragColor.rgb += uColor.rgb;\n"},buildSource:function(t){return"precision highp float;\nuniform sampler2D uTexture;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\ngl_FragColor = color;\nif (color.a > 0.0) {\n"+this.fragmentSource[t]+"}\n}"},retrieveShader:function(t){var e,i=this.type+"_"+this.mode;return t.programCache.hasOwnProperty(i)||(e=this.buildSource(this.mode),t.programCache[i]=this.createProgram(t.context,e)),t.programCache[i]},applyTo2d:function(t){var i,r,n,s,o,a,h,l=t.imageData.data,c=l.length,u=1-this.alpha;i=(h=new e.Color(this.color).getSource())[0]*this.alpha,r=h[1]*this.alpha,n=h[2]*this.alpha;for(var f=0;f<c;f+=4)switch(s=l[f],o=l[f+1],a=l[f+2],this.mode){case"multiply":l[f]=s*i/255,l[f+1]=o*r/255,l[f+2]=a*n/255;break;case"screen":l[f]=255-(255-s)*(255-i)/255,l[f+1]=255-(255-o)*(255-r)/255,l[f+2]=255-(255-a)*(255-n)/255;break;case"add":l[f]=s+i,l[f+1]=o+r,l[f+2]=a+n;break;case"diff":case"difference":l[f]=Math.abs(s-i),l[f+1]=Math.abs(o-r),l[f+2]=Math.abs(a-n);break;case"subtract":l[f]=s-i,l[f+1]=o-r,l[f+2]=a-n;break;case"darken":l[f]=Math.min(s,i),l[f+1]=Math.min(o,r),l[f+2]=Math.min(a,n);break;case"lighten":l[f]=Math.max(s,i),l[f+1]=Math.max(o,r),l[f+2]=Math.max(a,n);break;case"overlay":l[f]=i<128?2*s*i/255:255-2*(255-s)*(255-i)/255,l[f+1]=r<128?2*o*r/255:255-2*(255-o)*(255-r)/255,l[f+2]=n<128?2*a*n/255:255-2*(255-a)*(255-n)/255;break;case"exclusion":l[f]=i+s-2*i*s/255,l[f+1]=r+o-2*r*o/255,l[f+2]=n+a-2*n*a/255;break;case"tint":l[f]=i+s*u,l[f+1]=r+o*u,l[f+2]=n+a*u}},getUniformLocations:function(t,e){return{uColor:t.getUniformLocation(e,"uColor")}},sendUniformData:function(t,i){var r=new e.Color(this.color).getSource();r[0]=this.alpha*r[0]/255,r[1]=this.alpha*r[1]/255,r[2]=this.alpha*r[2]/255,r[3]=this.alpha,t.uniform4fv(i.uColor,r)},toObject:function(){return{type:this.type,color:this.color,mode:this.mode,alpha:this.alpha}}}),e.Image.filters.BlendColor.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric,i=e.Image.filters,r=e.util.createClass;i.BlendImage=r(i.BaseFilter,{type:"BlendImage",image:null,mode:"multiply",alpha:1,vertexSource:"attribute vec2 aPosition;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nuniform mat3 uTransformMatrix;\nvoid main() {\nvTexCoord = aPosition;\nvTexCoord2 = (uTransformMatrix * vec3(aPosition, 1.0)).xy;\ngl_Position = vec4(aPosition * 2.0 - 1.0, 0.0, 1.0);\n}",fragmentSource:{multiply:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.rgba *= color2.rgba;\ngl_FragColor = color;\n}",mask:"precision highp float;\nuniform sampler2D uTexture;\nuniform sampler2D uImage;\nuniform vec4 uColor;\nvarying vec2 vTexCoord;\nvarying vec2 vTexCoord2;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec4 color2 = texture2D(uImage, vTexCoord2);\ncolor.a = color2.a;\ngl_FragColor = color;\n}"},retrieveShader:function(t){var e=this.type+"_"+this.mode,i=this.fragmentSource[this.mode];return t.programCache.hasOwnProperty(e)||(t.programCache[e]=this.createProgram(t.context,i)),t.programCache[e]},applyToWebGL:function(t){var e=t.context,i=this.createTexture(t.filterBackend,this.image);this.bindAdditionalTexture(e,i,e.TEXTURE1),this.callSuper("applyToWebGL",t),this.unbindAdditionalTexture(e,e.TEXTURE1)},createTexture:function(t,e){return t.getCachedTexture(e.cacheKey,e._element)},calculateMatrix:function(){var t=this.image,e=t._element.width,i=t._element.height;return[1/t.scaleX,0,0,0,1/t.scaleY,0,-t.left/e,-t.top/i,1]},applyTo2d:function(t){var i,r,n,s,o,a,h,l,c,u,f,d=t.imageData,g=t.filterBackend.resources,p=d.data,v=p.length,m=d.width,_=d.height,y=this.image;g.blendImage||(g.blendImage=e.util.createCanvasElement()),u=(c=g.blendImage).getContext("2d"),c.width!==m||c.height!==_?(c.width=m,c.height=_):u.clearRect(0,0,m,_),u.setTransform(y.scaleX,0,0,y.scaleY,y.left,y.top),u.drawImage(y._element,0,0,m,_),f=u.getImageData(0,0,m,_).data;for(var x=0;x<v;x+=4)switch(o=p[x],a=p[x+1],h=p[x+2],l=p[x+3],i=f[x],r=f[x+1],n=f[x+2],s=f[x+3],this.mode){case"multiply":p[x]=o*i/255,p[x+1]=a*r/255,p[x+2]=h*n/255,p[x+3]=l*s/255;break;case"mask":p[x+3]=s}},getUniformLocations:function(t,e){return{uTransformMatrix:t.getUniformLocation(e,"uTransformMatrix"),uImage:t.getUniformLocation(e,"uImage")}},sendUniformData:function(t,e){var i=this.calculateMatrix();t.uniform1i(e.uImage,1),t.uniformMatrix3fv(e.uTransformMatrix,!1,i)},toObject:function(){return{type:this.type,image:this.image&&this.image.toObject(),mode:this.mode,alpha:this.alpha}}}),e.Image.filters.BlendImage.fromObject=function(t,i){e.Image.fromObject(t.image,(function(r){var n=e.util.object.clone(t);n.image=r,i(new e.Image.filters.BlendImage(n))}))}}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=Math.pow,r=Math.floor,n=Math.sqrt,s=Math.abs,o=Math.round,a=Math.sin,h=Math.ceil,l=e.Image.filters,c=e.util.createClass;l.Resize=c(l.BaseFilter,{type:"Resize",resizeType:"hermite",scaleX:1,scaleY:1,lanczosLobes:3,getUniformLocations:function(t,e){return{uDelta:t.getUniformLocation(e,"uDelta"),uTaps:t.getUniformLocation(e,"uTaps")}},sendUniformData:function(t,e){t.uniform2fv(e.uDelta,this.horizontal?[1/this.width,0]:[0,1/this.height]),t.uniform1fv(e.uTaps,this.taps)},retrieveShader:function(t){var e=this.getFilterWindow(),i=this.type+"_"+e;if(!t.programCache.hasOwnProperty(i)){var r=this.generateShader(e);t.programCache[i]=this.createProgram(t.context,r)}return t.programCache[i]},getFilterWindow:function(){var t=this.tempScale;return Math.ceil(this.lanczosLobes/t)},getTaps:function(){for(var t=this.lanczosCreate(this.lanczosLobes),e=this.tempScale,i=this.getFilterWindow(),r=new Array(i),n=1;n<=i;n++)r[n-1]=t(n*e);return r},generateShader:function(t){for(var e=new Array(t),i=this.fragmentSourceTOP,r=1;r<=t;r++)e[r-1]=r+".0 * uDelta";return i+="uniform float uTaps["+t+"];\n",i+="void main() {\n",i+=" vec4 color = texture2D(uTexture, vTexCoord);\n",i+=" float sum = 1.0;\n",e.forEach((function(t,e){i+=" color += texture2D(uTexture, vTexCoord + "+t+") * uTaps["+e+"];\n",i+=" color += texture2D(uTexture, vTexCoord - "+t+") * uTaps["+e+"];\n",i+=" sum += 2.0 * uTaps["+e+"];\n"})),i+=" gl_FragColor = color / sum;\n",i+="}"},fragmentSourceTOP:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\n",applyTo:function(t){t.webgl?(t.passes++,this.width=t.sourceWidth,this.horizontal=!0,this.dW=Math.round(this.width*this.scaleX),this.dH=t.sourceHeight,this.tempScale=this.dW/this.width,this.taps=this.getTaps(),t.destinationWidth=this.dW,this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t),t.sourceWidth=t.destinationWidth,this.height=t.sourceHeight,this.horizontal=!1,this.dH=Math.round(this.height*this.scaleY),this.tempScale=this.dH/this.height,this.taps=this.getTaps(),t.destinationHeight=this.dH,this._setupFrameBuffer(t),this.applyToWebGL(t),this._swapTextures(t),t.sourceHeight=t.destinationHeight):this.applyTo2d(t)},isNeutralState:function(){return 1===this.scaleX&&1===this.scaleY},lanczosCreate:function(t){return function(e){if(e>=t||e<=-t)return 0;if(e<1.1920929e-7&&e>-1.1920929e-7)return 1;var i=(e*=Math.PI)/t;return a(e)/e*a(i)/i}},applyTo2d:function(t){var e=t.imageData,i=this.scaleX,r=this.scaleY;this.rcpScaleX=1/i,this.rcpScaleY=1/r;var n,s=e.width,a=e.height,h=o(s*i),l=o(a*r);"sliceHack"===this.resizeType?n=this.sliceByTwo(t,s,a,h,l):"hermite"===this.resizeType?n=this.hermiteFastResize(t,s,a,h,l):"bilinear"===this.resizeType?n=this.bilinearFiltering(t,s,a,h,l):"lanczos"===this.resizeType&&(n=this.lanczosResize(t,s,a,h,l)),t.imageData=n},sliceByTwo:function(t,i,n,s,o){var a,h,l=t.imageData,c=.5,u=!1,f=!1,d=i*c,g=n*c,p=e.filterBackend.resources,v=0,m=0,_=i,y=0;for(p.sliceByTwo||(p.sliceByTwo=document.createElement("canvas")),((a=p.sliceByTwo).width<1.5*i||a.height<n)&&(a.width=1.5*i,a.height=n),(h=a.getContext("2d")).clearRect(0,0,1.5*i,n),h.putImageData(l,0,0),s=r(s),o=r(o);!u||!f;)i=d,n=g,s<r(d*c)?d=r(d*c):(d=s,u=!0),o<r(g*c)?g=r(g*c):(g=o,f=!0),h.drawImage(a,v,m,i,n,_,y,d,g),v=_,m=y,y+=g;return h.getImageData(v,m,s,o)},lanczosResize:function(t,e,o,a,l){var c=t.imageData.data,u=t.ctx.createImageData(a,l),f=u.data,d=this.lanczosCreate(this.lanczosLobes),g=this.rcpScaleX,p=this.rcpScaleY,v=2/this.rcpScaleX,m=2/this.rcpScaleY,_=h(g*this.lanczosLobes/2),y=h(p*this.lanczosLobes/2),x={},C={},b={};return function process(t){var h,S,T,w,O,k,P,E,D,A,j;for(C.x=(t+.5)*g,b.x=r(C.x),h=0;h<l;h++){for(C.y=(h+.5)*p,b.y=r(C.y),O=0,k=0,P=0,E=0,D=0,S=b.x-_;S<=b.x+_;S++)if(!(S<0||S>=e)){A=r(1e3*s(S-C.x)),x[A]||(x[A]={});for(var M=b.y-y;M<=b.y+y;M++)M<0||M>=o||(j=r(1e3*s(M-C.y)),x[A][j]||(x[A][j]=d(n(i(A*v,2)+i(j*m,2))/1e3)),(T=x[A][j])>0&&(O+=T,k+=T*c[w=4*(M*e+S)],P+=T*c[w+1],E+=T*c[w+2],D+=T*c[w+3]))}f[w=4*(h*a+t)]=k/O,f[w+1]=P/O,f[w+2]=E/O,f[w+3]=D/O}return++t<a?process(t):u}(0)},bilinearFiltering:function(t,e,i,n,s){var o,a,h,l,c,u,f,d,g,p=0,v=this.rcpScaleX,m=this.rcpScaleY,_=4*(e-1),y=t.imageData.data,x=t.ctx.createImageData(n,s),C=x.data;for(h=0;h<s;h++)for(l=0;l<n;l++)for(c=v*l-(o=r(v*l)),u=m*h-(a=r(m*h)),g=4*(a*e+o),f=0;f<4;f++)d=y[g+f]*(1-c)*(1-u)+y[g+4+f]*c*(1-u)+y[g+_+f]*u*(1-c)+y[g+_+4+f]*c*u,C[p++]=d;return x},hermiteFastResize:function(t,e,i,o,a){for(var l=this.rcpScaleX,c=this.rcpScaleY,u=h(l/2),f=h(c/2),d=t.imageData.data,g=t.ctx.createImageData(o,a),p=g.data,v=0;v<a;v++)for(var m=0;m<o;m++){for(var _=4*(m+v*o),y=0,x=0,C=0,b=0,S=0,T=0,w=0,O=(v+.5)*c,k=r(v*c);k<(v+1)*c;k++)for(var P=s(O-(k+.5))/f,E=(m+.5)*l,D=P*P,A=r(m*l);A<(m+1)*l;A++){var j=s(E-(A+.5))/u,M=n(D+j*j);M>1&&M<-1||(y=2*M*M*M-3*M*M+1)>0&&(w+=y*d[(j=4*(A+k*e))+3],C+=y,d[j+3]<255&&(y=y*d[j+3]/250),b+=y*d[j],S+=y*d[j+1],T+=y*d[j+2],x+=y)}p[_]=b/x,p[_+1]=S/x,p[_+2]=T/x,p[_+3]=w/C}return g},toObject:function(){return{type:this.type,scaleX:this.scaleX,scaleY:this.scaleY,resizeType:this.resizeType,lanczosLobes:this.lanczosLobes}}}),e.Image.filters.Resize.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Contrast=r(i.BaseFilter,{type:"Contrast",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uContrast;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat contrastF = 1.015 * (uContrast + 1.0) / (1.0 * (1.015 - uContrast));\ncolor.rgb = contrastF * (color.rgb - 0.5) + 0.5;\ngl_FragColor = color;\n}",contrast:0,mainParameter:"contrast",applyTo2d:function(t){if(0!==this.contrast){var e,i=t.imageData.data,r=i.length,n=Math.floor(255*this.contrast),s=259*(n+255)/(255*(259-n));for(e=0;e<r;e+=4)i[e]=s*(i[e]-128)+128,i[e+1]=s*(i[e+1]-128)+128,i[e+2]=s*(i[e+2]-128)+128}},getUniformLocations:function(t,e){return{uContrast:t.getUniformLocation(e,"uContrast")}},sendUniformData:function(t,e){t.uniform1f(e.uContrast,this.contrast)}}),e.Image.filters.Contrast.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Saturation=r(i.BaseFilter,{type:"Saturation",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uSaturation;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat rgMax = max(color.r, color.g);\nfloat rgbMax = max(rgMax, color.b);\ncolor.r += rgbMax != color.r ? (rgbMax - color.r) * uSaturation : 0.00;\ncolor.g += rgbMax != color.g ? (rgbMax - color.g) * uSaturation : 0.00;\ncolor.b += rgbMax != color.b ? (rgbMax - color.b) * uSaturation : 0.00;\ngl_FragColor = color;\n}",saturation:0,mainParameter:"saturation",applyTo2d:function(t){if(0!==this.saturation){var e,i,r=t.imageData.data,n=r.length,s=-this.saturation;for(e=0;e<n;e+=4)i=Math.max(r[e],r[e+1],r[e+2]),r[e]+=i!==r[e]?(i-r[e])*s:0,r[e+1]+=i!==r[e+1]?(i-r[e+1])*s:0,r[e+2]+=i!==r[e+2]?(i-r[e+2])*s:0}},getUniformLocations:function(t,e){return{uSaturation:t.getUniformLocation(e,"uSaturation")}},sendUniformData:function(t,e){t.uniform1f(e.uSaturation,-this.saturation)}}),e.Image.filters.Saturation.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Vibrance=r(i.BaseFilter,{type:"Vibrance",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform float uVibrance;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nfloat max = max(color.r, max(color.g, color.b));\nfloat avg = (color.r + color.g + color.b) / 3.0;\nfloat amt = (abs(max - avg) * 2.0) * uVibrance;\ncolor.r += max != color.r ? (max - color.r) * amt : 0.00;\ncolor.g += max != color.g ? (max - color.g) * amt : 0.00;\ncolor.b += max != color.b ? (max - color.b) * amt : 0.00;\ngl_FragColor = color;\n}",vibrance:0,mainParameter:"vibrance",applyTo2d:function(t){if(0!==this.vibrance){var e,i,r,n,s=t.imageData.data,o=s.length,a=-this.vibrance;for(e=0;e<o;e+=4)i=Math.max(s[e],s[e+1],s[e+2]),r=(s[e]+s[e+1]+s[e+2])/3,n=2*Math.abs(i-r)/255*a,s[e]+=i!==s[e]?(i-s[e])*n:0,s[e+1]+=i!==s[e+1]?(i-s[e+1])*n:0,s[e+2]+=i!==s[e+2]?(i-s[e+2])*n:0}},getUniformLocations:function(t,e){return{uVibrance:t.getUniformLocation(e,"uVibrance")}},sendUniformData:function(t,e){t.uniform1f(e.uVibrance,-this.vibrance)}}),e.Image.filters.Vibrance.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Blur=r(i.BaseFilter,{type:"Blur",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec2 uDelta;\nvarying vec2 vTexCoord;\nconst float nSamples = 15.0;\nvec3 v3offset = vec3(12.9898, 78.233, 151.7182);\nfloat random(vec3 scale) {\nreturn fract(sin(dot(gl_FragCoord.xyz, scale)) * 43758.5453);\n}\nvoid main() {\nvec4 color = vec4(0.0);\nfloat total = 0.0;\nfloat offset = random(v3offset);\nfor (float t = -nSamples; t <= nSamples; t++) {\nfloat percent = (t + offset - 0.5) / nSamples;\nfloat weight = 1.0 - abs(percent);\ncolor += texture2D(uTexture, vTexCoord + uDelta * percent) * weight;\ntotal += weight;\n}\ngl_FragColor = color / total;\n}",blur:0,mainParameter:"blur",applyTo:function(t){t.webgl?(this.aspectRatio=t.sourceWidth/t.sourceHeight,t.passes++,this._setupFrameBuffer(t),this.horizontal=!0,this.applyToWebGL(t),this._swapTextures(t),this._setupFrameBuffer(t),this.horizontal=!1,this.applyToWebGL(t),this._swapTextures(t)):this.applyTo2d(t)},applyTo2d:function(t){t.imageData=this.simpleBlur(t)},simpleBlur:function(t){var i,r,n=t.filterBackend.resources,s=t.imageData.width,o=t.imageData.height;n.blurLayer1||(n.blurLayer1=e.util.createCanvasElement(),n.blurLayer2=e.util.createCanvasElement()),i=n.blurLayer1,r=n.blurLayer2,i.width===s&&i.height===o||(r.width=i.width=s,r.height=i.height=o);var a,h,l,c,u=i.getContext("2d"),f=r.getContext("2d"),d=15,g=.06*this.blur*.5;for(u.putImageData(t.imageData,0,0),f.clearRect(0,0,s,o),c=-15;c<=d;c++)l=g*(h=c/d)*s+(a=(Math.random()-.5)/4),f.globalAlpha=1-Math.abs(h),f.drawImage(i,l,a),u.drawImage(r,0,0),f.globalAlpha=1,f.clearRect(0,0,r.width,r.height);for(c=-15;c<=d;c++)l=g*(h=c/d)*o+(a=(Math.random()-.5)/4),f.globalAlpha=1-Math.abs(h),f.drawImage(i,a,l),u.drawImage(r,0,0),f.globalAlpha=1,f.clearRect(0,0,r.width,r.height);t.ctx.drawImage(i,0,0);var p=t.ctx.getImageData(0,0,i.width,i.height);return u.globalAlpha=1,u.clearRect(0,0,i.width,i.height),p},getUniformLocations:function(t,e){return{delta:t.getUniformLocation(e,"uDelta")}},sendUniformData:function(t,e){var i=this.chooseRightDelta();t.uniform2fv(e.delta,i)},chooseRightDelta:function(){var t,e=1,i=[0,0];return this.horizontal?this.aspectRatio>1&&(e=1/this.aspectRatio):this.aspectRatio<1&&(e=this.aspectRatio),t=e*this.blur*.12,this.horizontal?i[0]=t:i[1]=t,i}}),i.Blur.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Gamma=r(i.BaseFilter,{type:"Gamma",fragmentSource:"precision highp float;\nuniform sampler2D uTexture;\nuniform vec3 uGamma;\nvarying vec2 vTexCoord;\nvoid main() {\nvec4 color = texture2D(uTexture, vTexCoord);\nvec3 correction = (1.0 / uGamma);\ncolor.r = pow(color.r, correction.r);\ncolor.g = pow(color.g, correction.g);\ncolor.b = pow(color.b, correction.b);\ngl_FragColor = color;\ngl_FragColor.rgb *= color.a;\n}",gamma:[1,1,1],mainParameter:"gamma",initialize:function(t){this.gamma=[1,1,1],i.BaseFilter.prototype.initialize.call(this,t)},applyTo2d:function(t){var e,i=t.imageData.data,r=this.gamma,n=i.length,s=1/r[0],o=1/r[1],a=1/r[2];for(this.rVals||(this.rVals=new Uint8Array(256),this.gVals=new Uint8Array(256),this.bVals=new Uint8Array(256)),e=0,n=256;e<n;e++)this.rVals[e]=255*Math.pow(e/255,s),this.gVals[e]=255*Math.pow(e/255,o),this.bVals[e]=255*Math.pow(e/255,a);for(e=0,n=i.length;e<n;e+=4)i[e]=this.rVals[i[e]],i[e+1]=this.gVals[i[e+1]],i[e+2]=this.bVals[i[e+2]]},getUniformLocations:function(t,e){return{uGamma:t.getUniformLocation(e,"uGamma")}},sendUniformData:function(t,e){t.uniform3fv(e.uGamma,this.gamma)}}),e.Image.filters.Gamma.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.Composed=r(i.BaseFilter,{type:"Composed",subFilters:[],initialize:function(t){this.callSuper("initialize",t),this.subFilters=this.subFilters.slice(0)},applyTo:function(t){t.passes+=this.subFilters.length-1,this.subFilters.forEach((function(e){e.applyTo(t)}))},toObject:function(){return e.util.object.extend(this.callSuper("toObject"),{subFilters:this.subFilters.map((function(t){return t.toObject()}))})},isNeutralState:function(){return!this.subFilters.some((function(t){return!t.isNeutralState()}))}}),e.Image.filters.Composed.fromObject=function(t,i){var r=(t.subFilters||[]).map((function(t){return new e.Image.filters[t.type](t)})),n=new e.Image.filters.Composed({subFilters:r});return i&&i(n),n}}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.Image.filters,r=e.util.createClass;i.HueRotation=r(i.ColorMatrix,{type:"HueRotation",rotation:0,mainParameter:"rotation",calculateMatrix:function(){var t=this.rotation*Math.PI,i=e.util.cos(t),r=e.util.sin(t),n=1/3,s=Math.sqrt(n)*r,o=1-i;this.matrix=[1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0],this.matrix[0]=i+o/3,this.matrix[1]=n*o-s,this.matrix[2]=n*o+s,this.matrix[5]=n*o+s,this.matrix[6]=i+n*o,this.matrix[7]=n*o-s,this.matrix[10]=n*o-s,this.matrix[11]=n*o+s,this.matrix[12]=i+n*o},isNeutralState:function(t){return this.calculateMatrix(),i.BaseFilter.prototype.isNeutralState.call(this,t)},applyTo:function(t){this.calculateMatrix(),i.BaseFilter.prototype.applyTo.call(this,t)}}),e.Image.filters.HueRotation.fromObject=e.Image.filters.BaseFilter.fromObject}(e),function(t){"use strict";var e=t.fabric||(t.fabric={}),i=e.util.object.clone;if(e.Text)e.warn("fabric.Text is already defined");else{var r="fontFamily fontWeight fontSize text underline overline linethrough textAlign fontStyle lineHeight textBackgroundColor charSpacing styles direction path pathStartOffset pathSide".split(" ");e.Text=e.util.createClass(e.Object,{_dimensionAffectingProps:["fontSize","fontWeight","fontFamily","fontStyle","lineHeight","text","charSpacing","textAlign","styles","path","pathStartOffset","pathSide"],_reNewline:/\r?\n/,_reSpacesAndTabs:/[ \t\r]/g,_reSpaceAndTab:/[ \t\r]/,_reWords:/\S+/g,type:"text",fontSize:40,fontWeight:"normal",fontFamily:"Times New Roman",underline:!1,overline:!1,linethrough:!1,textAlign:"left",fontStyle:"normal",lineHeight:1.16,superscript:{size:.6,baseline:-.35},subscript:{size:.6,baseline:.11},textBackgroundColor:"",stateProperties:e.Object.prototype.stateProperties.concat(r),cacheProperties:e.Object.prototype.cacheProperties.concat(r),stroke:null,shadow:null,path:null,pathStartOffset:0,pathSide:"left",_fontSizeFraction:.222,offsets:{underline:.1,linethrough:-.315,overline:-.88},_fontSizeMult:1.13,charSpacing:0,styles:null,_measuringContext:null,deltaY:0,direction:"ltr",_styleProperties:["stroke","strokeWidth","fill","fontFamily","fontSize","fontWeight","fontStyle","underline","overline","linethrough","deltaY","textBackgroundColor"],__charBounds:[],CACHE_FONT_SIZE:400,MIN_TEXT_WIDTH:2,initialize:function(t,e){this.styles=e&&e.styles||{},this.text=t,this.__skipDimension=!0,this.callSuper("initialize",e),this.path&&this.setPathInfo(),this.__skipDimension=!1,this.initDimensions(),this.setCoords(),this.setupState({propertySet:"_dimensionAffectingProps"})},setPathInfo:function(){var t=this.path;t&&(t.segmentsInfo=e.util.getPathSegmentsInfo(t.path))},getMeasuringContext:function(){return e._measuringContext||(e._measuringContext=this.canvas&&this.canvas.contextCache||e.util.createCanvasElement().getContext("2d")),e._measuringContext},_splitText:function(){var t=this._splitTextIntoLines(this.text);return this.textLines=t.lines,this._textLines=t.graphemeLines,this._unwrappedTextLines=t._unwrappedLines,this._text=t.graphemeText,t},initDimensions:function(){this.__skipDimension||(this._splitText(),this._clearCache(),this.path?(this.width=this.path.width,this.height=this.path.height):(this.width=this.calcTextWidth()||this.cursorWidth||this.MIN_TEXT_WIDTH,this.height=this.calcTextHeight()),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.saveState({propertySet:"_dimensionAffectingProps"}))},enlargeSpaces:function(){for(var t,e,i,r,n,s,o,a=0,h=this._textLines.length;a<h;a++)if(("justify"===this.textAlign||a!==h-1&&!this.isEndOfWrapping(a))&&(r=0,n=this._textLines[a],(e=this.getLineWidth(a))<this.width&&(o=this.textLines[a].match(this._reSpacesAndTabs)))){i=o.length,t=(this.width-e)/i;for(var l=0,c=n.length;l<=c;l++)s=this.__charBounds[a][l],this._reSpaceAndTab.test(n[l])?(s.width+=t,s.kernedWidth+=t,s.left+=r,r+=t):s.left+=r}},isEndOfWrapping:function(t){return t===this._textLines.length-1},missingNewlineOffset:function(){return 1},toString:function(){return"#<fabric.Text ("+this.complexity()+'): { "text": "'+this.text+'", "fontFamily": "'+this.fontFamily+'" }>'},_getCacheCanvasDimensions:function(){var t=this.callSuper("_getCacheCanvasDimensions"),e=this.fontSize;return t.width+=e*t.zoomX,t.height+=e*t.zoomY,t},_render:function(t){var e=this.path;e&&!e.isNotVisible()&&e._render(t),this._setTextStyles(t),this._renderTextLinesBackground(t),this._renderTextDecoration(t,"underline"),this._renderText(t),this._renderTextDecoration(t,"overline"),this._renderTextDecoration(t,"linethrough")},_renderText:function(t){"stroke"===this.paintFirst?(this._renderTextStroke(t),this._renderTextFill(t)):(this._renderTextFill(t),this._renderTextStroke(t))},_setTextStyles:function(t,e,i){t.textBaseline="alphabetic",t.font=this._getFontDeclaration(e,i)},calcTextWidth:function(){for(var t=this.getLineWidth(0),e=1,i=this._textLines.length;e<i;e++){var r=this.getLineWidth(e);r>t&&(t=r)}return t},_renderTextLine:function(t,e,i,r,n,s){this._renderChars(t,e,i,r,n,s)},_renderTextLinesBackground:function(t){if(this.textBackgroundColor||this.styleHas("textBackgroundColor")){for(var e,i,r,n,s,o,a,h=t.fillStyle,l=this._getLeftOffset(),c=this._getTopOffset(),u=0,f=0,d=this.path,g=0,p=this._textLines.length;g<p;g++)if(e=this.getHeightOfLine(g),this.textBackgroundColor||this.styleHas("textBackgroundColor",g)){r=this._textLines[g],i=this._getLineLeftOffset(g),f=0,u=0,n=this.getValueOfPropertyAt(g,0,"textBackgroundColor");for(var v=0,m=r.length;v<m;v++)s=this.__charBounds[g][v],o=this.getValueOfPropertyAt(g,v,"textBackgroundColor"),d?(t.save(),t.translate(s.renderLeft,s.renderTop),t.rotate(s.angle),t.fillStyle=o,o&&t.fillRect(-s.width/2,-e/this.lineHeight*(1-this._fontSizeFraction),s.width,e/this.lineHeight),t.restore()):o!==n?(a=l+i+u,"rtl"===this.direction&&(a=this.width-a-f),t.fillStyle=n,n&&t.fillRect(a,c,f,e/this.lineHeight),u=s.left,f=s.width,n=o):f+=s.kernedWidth;o&&!d&&(a=l+i+u,"rtl"===this.direction&&(a=this.width-a-f),t.fillStyle=o,t.fillRect(a,c,f,e/this.lineHeight)),c+=e}else c+=e;t.fillStyle=h,this._removeShadow(t)}},getFontCache:function(t){var i=t.fontFamily.toLowerCase();e.charWidthsCache[i]||(e.charWidthsCache[i]={});var r=e.charWidthsCache[i],n=t.fontStyle.toLowerCase()+"_"+(t.fontWeight+"").toLowerCase();return r[n]||(r[n]={}),r[n]},_measureChar:function(t,e,i,r){var n,s,o,a,h=this.getFontCache(e),l=i+t,c=this._getFontDeclaration(e)===this._getFontDeclaration(r),u=e.fontSize/this.CACHE_FONT_SIZE;if(i&&void 0!==h[i]&&(o=h[i]),void 0!==h[t]&&(a=n=h[t]),c&&void 0!==h[l]&&(a=(s=h[l])-o),void 0===n||void 0===o||void 0===s){var f=this.getMeasuringContext();this._setTextStyles(f,e,!0)}return void 0===n&&(a=n=f.measureText(t).width,h[t]=n),void 0===o&&c&&i&&(o=f.measureText(i).width,h[i]=o),c&&void 0===s&&(s=f.measureText(l).width,h[l]=s,a=s-o),{width:n*u,kernedWidth:a*u}},getHeightOfChar:function(t,e){return this.getValueOfPropertyAt(t,e,"fontSize")},measureLine:function(t){var e=this._measureLine(t);return 0!==this.charSpacing&&(e.width-=this._getWidthOfCharSpacing()),e.width<0&&(e.width=0),e},_measureLine:function(t){var i,r,n,s,o,a,h=0,l=this._textLines[t],c=new Array(l.length),u=0,f=this.path,d="right"===this.pathSide;for(this.__charBounds[t]=c,i=0;i<l.length;i++)r=l[i],s=this._getGraphemeBox(r,t,i,n),c[i]=s,h+=s.kernedWidth,n=r;if(c[i]={left:s?s.left+s.width:0,width:0,kernedWidth:0,height:this.fontSize},f){switch(a=f.segmentsInfo[f.segmentsInfo.length-1].length,(o=e.util.getPointOnPath(f.path,0,f.segmentsInfo)).x+=f.pathOffset.x,o.y+=f.pathOffset.y,this.textAlign){case"left":u=d?a-h:0;break;case"center":u=(a-h)/2;break;case"right":u=d?0:a-h}for(u+=this.pathStartOffset*(d?-1:1),i=d?l.length-1:0;d?i>=0:i<l.length;d?i--:i++)s=c[i],u>a?u%=a:u<0&&(u+=a),this._setGraphemeOnPath(u,s,o),u+=s.kernedWidth}return{width:h,numOfSpaces:0}},_setGraphemeOnPath:function(t,i,r){var n=t+i.kernedWidth/2,s=this.path,o=e.util.getPointOnPath(s.path,n,s.segmentsInfo);i.renderLeft=o.x-r.x,i.renderTop=o.y-r.y,i.angle=o.angle+("right"===this.pathSide?Math.PI:0)},_getGraphemeBox:function(t,e,i,r,n){var s,o=this.getCompleteStyleDeclaration(e,i),a=r?this.getCompleteStyleDeclaration(e,i-1):{},h=this._measureChar(t,o,r,a),l=h.kernedWidth,c=h.width;0!==this.charSpacing&&(c+=s=this._getWidthOfCharSpacing(),l+=s);var u={width:c,left:0,height:o.fontSize,kernedWidth:l,deltaY:o.deltaY};if(i>0&&!n){var f=this.__charBounds[e][i-1];u.left=f.left+f.width+h.kernedWidth-h.width}return u},getHeightOfLine:function(t){if(this.__lineHeights[t])return this.__lineHeights[t];for(var e=this._textLines[t],i=this.getHeightOfChar(t,0),r=1,n=e.length;r<n;r++)i=Math.max(this.getHeightOfChar(t,r),i);return this.__lineHeights[t]=i*this.lineHeight*this._fontSizeMult},calcTextHeight:function(){for(var t,e=0,i=0,r=this._textLines.length;i<r;i++)t=this.getHeightOfLine(i),e+=i===r-1?t/this.lineHeight:t;return e},_getLeftOffset:function(){return"ltr"===this.direction?-this.width/2:this.width/2},_getTopOffset:function(){return-this.height/2},_renderTextCommon:function(t,e){t.save();for(var i=0,r=this._getLeftOffset(),n=this._getTopOffset(),s=0,o=this._textLines.length;s<o;s++){var a=this.getHeightOfLine(s),h=a/this.lineHeight,l=this._getLineLeftOffset(s);this._renderTextLine(e,t,this._textLines[s],r+l,n+i+h,s),i+=a}t.restore()},_renderTextFill:function(t){(this.fill||this.styleHas("fill"))&&this._renderTextCommon(t,"fillText")},_renderTextStroke:function(t){(this.stroke&&0!==this.strokeWidth||!this.isEmptyStyles())&&(this.shadow&&!this.shadow.affectStroke&&this._removeShadow(t),t.save(),this._setLineDash(t,this.strokeDashArray),t.beginPath(),this._renderTextCommon(t,"strokeText"),t.closePath(),t.restore())},_renderChars:function(t,e,i,r,n,s){var o,a,h,l,c,u=this.getHeightOfLine(s),f=-1!==this.textAlign.indexOf("justify"),d="",g=0,p=this.path,v=!f&&0===this.charSpacing&&this.isEmptyStyles(s)&&!p,m="ltr"===this.direction,_="ltr"===this.direction?1:-1;if(e.save(),n-=u*this._fontSizeFraction/this.lineHeight,v)return e.canvas.setAttribute("dir",m?"ltr":"rtl"),e.direction=m?"ltr":"rtl",e.textAlign=m?"left":"right",this._renderChar(t,e,s,0,i.join(""),r,n,u),void e.restore();for(var y=0,x=i.length-1;y<=x;y++)l=y===x||this.charSpacing||p,d+=i[y],h=this.__charBounds[s][y],0===g?(r+=_*(h.kernedWidth-h.width),g+=h.width):g+=h.kernedWidth,f&&!l&&this._reSpaceAndTab.test(i[y])&&(l=!0),l||(o=o||this.getCompleteStyleDeclaration(s,y),a=this.getCompleteStyleDeclaration(s,y+1),l=this._hasStyleChanged(o,a)),l&&(p?(e.save(),e.translate(h.renderLeft,h.renderTop),e.rotate(h.angle),this._renderChar(t,e,s,y,d,-g/2,0,u),e.restore()):(c=r,e.canvas.setAttribute("dir",m?"ltr":"rtl"),e.direction=m?"ltr":"rtl",e.textAlign=m?"left":"right",this._renderChar(t,e,s,y,d,c,n,u)),d="",o=a,r+=_*g,g=0);e.restore()},_applyPatternGradientTransformText:function(t){var i,r=e.util.createCanvasElement(),n=this.width+this.strokeWidth,s=this.height+this.strokeWidth;return r.width=n,r.height=s,(i=r.getContext("2d")).beginPath(),i.moveTo(0,0),i.lineTo(n,0),i.lineTo(n,s),i.lineTo(0,s),i.closePath(),i.translate(n/2,s/2),i.fillStyle=t.toLive(i),this._applyPatternGradientTransform(i,t),i.fill(),i.createPattern(r,"no-repeat")},handleFiller:function(t,e,i){var r,n;return i.toLive?"percentage"===i.gradientUnits||i.gradientTransform||i.patternTransform?(r=-this.width/2,n=-this.height/2,t.translate(r,n),t[e]=this._applyPatternGradientTransformText(i),{offsetX:r,offsetY:n}):(t[e]=i.toLive(t,this),this._applyPatternGradientTransform(t,i)):(t[e]=i,{offsetX:0,offsetY:0})},_setStrokeStyles:function(t,e){return t.lineWidth=e.strokeWidth,t.lineCap=this.strokeLineCap,t.lineDashOffset=this.strokeDashOffset,t.lineJoin=this.strokeLineJoin,t.miterLimit=this.strokeMiterLimit,this.handleFiller(t,"strokeStyle",e.stroke)},_setFillStyles:function(t,e){return this.handleFiller(t,"fillStyle",e.fill)},_renderChar:function(t,e,i,r,n,s,o){var a,h,l=this._getStyleDeclaration(i,r),c=this.getCompleteStyleDeclaration(i,r),u="fillText"===t&&c.fill,f="strokeText"===t&&c.stroke&&c.strokeWidth;(f||u)&&(e.save(),u&&(a=this._setFillStyles(e,c)),f&&(h=this._setStrokeStyles(e,c)),e.font=this._getFontDeclaration(c),l&&l.textBackgroundColor&&this._removeShadow(e),l&&l.deltaY&&(o+=l.deltaY),u&&e.fillText(n,s-a.offsetX,o-a.offsetY),f&&e.strokeText(n,s-h.offsetX,o-h.offsetY),e.restore())},setSuperscript:function(t,e){return this._setScript(t,e,this.superscript)},setSubscript:function(t,e){return this._setScript(t,e,this.subscript)},_setScript:function(t,e,i){var r=this.get2DCursorLocation(t,!0),n=this.getValueOfPropertyAt(r.lineIndex,r.charIndex,"fontSize"),s=this.getValueOfPropertyAt(r.lineIndex,r.charIndex,"deltaY"),o={fontSize:n*i.size,deltaY:s+n*i.baseline};return this.setSelectionStyles(o,t,e),this},_hasStyleChanged:function(t,e){return t.fill!==e.fill||t.stroke!==e.stroke||t.strokeWidth!==e.strokeWidth||t.fontSize!==e.fontSize||t.fontFamily!==e.fontFamily||t.fontWeight!==e.fontWeight||t.fontStyle!==e.fontStyle||t.deltaY!==e.deltaY},_hasStyleChangedForSvg:function(t,e){return this._hasStyleChanged(t,e)||t.overline!==e.overline||t.underline!==e.underline||t.linethrough!==e.linethrough},_getLineLeftOffset:function(t){var e=this.getLineWidth(t),i=this.width-e,r=this.textAlign,n=this.direction,s=0,o=this.isEndOfWrapping(t);return"justify"===r||"justify-center"===r&&!o||"justify-right"===r&&!o||"justify-left"===r&&!o?0:("center"===r&&(s=i/2),"right"===r&&(s=i),"justify-center"===r&&(s=i/2),"justify-right"===r&&(s=i),"rtl"===n&&(s-=i),s)},_clearCache:function(){this.__lineWidths=[],this.__lineHeights=[],this.__charBounds=[]},_shouldClearDimensionCache:function(){var t=this._forceClearCache;return t||(t=this.hasStateChanged("_dimensionAffectingProps")),t&&(this.dirty=!0,this._forceClearCache=!1),t},getLineWidth:function(t){return this.__lineWidths[t]?this.__lineWidths[t]:(e=""===this._textLines[t]?0:this.measureLine(t).width,this.__lineWidths[t]=e,e);var e},_getWidthOfCharSpacing:function(){return 0!==this.charSpacing?this.fontSize*this.charSpacing/1e3:0},getValueOfPropertyAt:function(t,e,i){var r=this._getStyleDeclaration(t,e);return r&&void 0!==r[i]?r[i]:this[i]},_renderTextDecoration:function(t,e){if(this[e]||this.styleHas(e)){for(var i,r,n,s,o,a,h,l,c,u,f,d,g,p,v,m,_=this._getLeftOffset(),y=this._getTopOffset(),x=this.path,C=this._getWidthOfCharSpacing(),b=this.offsets[e],S=0,T=this._textLines.length;S<T;S++)if(i=this.getHeightOfLine(S),this[e]||this.styleHas(e,S)){h=this._textLines[S],p=i/this.lineHeight,s=this._getLineLeftOffset(S),u=0,f=0,l=this.getValueOfPropertyAt(S,0,e),m=this.getValueOfPropertyAt(S,0,"fill"),c=y+p*(1-this._fontSizeFraction),r=this.getHeightOfChar(S,0),o=this.getValueOfPropertyAt(S,0,"deltaY");for(var w=0,O=h.length;w<O;w++)if(d=this.__charBounds[S][w],g=this.getValueOfPropertyAt(S,w,e),v=this.getValueOfPropertyAt(S,w,"fill"),n=this.getHeightOfChar(S,w),a=this.getValueOfPropertyAt(S,w,"deltaY"),x&&g&&v)t.save(),t.fillStyle=m,t.translate(d.renderLeft,d.renderTop),t.rotate(d.angle),t.fillRect(-d.kernedWidth/2,b*n+a,d.kernedWidth,this.fontSize/15),t.restore();else if((g!==l||v!==m||n!==r||a!==o)&&f>0){var k=_+s+u;"rtl"===this.direction&&(k=this.width-k-f),l&&m&&(t.fillStyle=m,t.fillRect(k,c+b*r+o,f,this.fontSize/15)),u=d.left,f=d.width,l=g,m=v,r=n,o=a}else f+=d.kernedWidth;k=_+s+u;"rtl"===this.direction&&(k=this.width-k-f),t.fillStyle=v,g&&v&&t.fillRect(k,c+b*r+o,f-C,this.fontSize/15),y+=i}else y+=i;this._removeShadow(t)}},_getFontDeclaration:function(t,i){var r=t||this,n=this.fontFamily,s=e.Text.genericFonts.indexOf(n.toLowerCase())>-1,o=void 0===n||n.indexOf("'")>-1||n.indexOf(",")>-1||n.indexOf('"')>-1||s?r.fontFamily:'"'+r.fontFamily+'"';return[e.isLikelyNode?r.fontWeight:r.fontStyle,e.isLikelyNode?r.fontStyle:r.fontWeight,i?this.CACHE_FONT_SIZE+"px":r.fontSize+"px",o].join(" ")},render:function(t){this.visible&&(this.canvas&&this.canvas.skipOffscreen&&!this.group&&!this.isOnScreen()||(this._shouldClearDimensionCache()&&this.initDimensions(),this.callSuper("render",t)))},_splitTextIntoLines:function(t){for(var i=t.split(this._reNewline),r=new Array(i.length),n=["\n"],s=[],o=0;o<i.length;o++)r[o]=e.util.string.graphemeSplit(i[o]),s=s.concat(r[o],n);return s.pop(),{_unwrappedLines:r,lines:i,graphemeText:s,graphemeLines:r}},toObject:function(t){var e=r.concat(t),n=this.callSuper("toObject",e);return n.styles=i(this.styles,!0),n.path&&(n.path=this.path.toObject()),n},set:function(t,e){this.callSuper("set",t,e);var i=!1,r=!1;if("object"==typeof t)for(var n in t)"path"===n&&this.setPathInfo(),i=i||-1!==this._dimensionAffectingProps.indexOf(n),r=r||"path"===n;else i=-1!==this._dimensionAffectingProps.indexOf(t),r="path"===t;return r&&this.setPathInfo(),i&&(this.initDimensions(),this.setCoords()),this},complexity:function(){return 1}}),e.Text.ATTRIBUTE_NAMES=e.SHARED_ATTRIBUTES.concat("x y dx dy font-family font-style font-weight font-size letter-spacing text-decoration text-anchor".split(" ")),e.Text.DEFAULT_SVG_FONT_SIZE=16,e.Text.fromElement=function(t,r,n){if(!t)return r(null);var s=e.parseAttributes(t,e.Text.ATTRIBUTE_NAMES),o=s.textAnchor||"left";if((n=e.util.object.extend(n?i(n):{},s)).top=n.top||0,n.left=n.left||0,s.textDecoration){var a=s.textDecoration;-1!==a.indexOf("underline")&&(n.underline=!0),-1!==a.indexOf("overline")&&(n.overline=!0),-1!==a.indexOf("line-through")&&(n.linethrough=!0),delete n.textDecoration}"dx"in s&&(n.left+=s.dx),"dy"in s&&(n.top+=s.dy),"fontSize"in n||(n.fontSize=e.Text.DEFAULT_SVG_FONT_SIZE);var h="";"textContent"in t?h=t.textContent:"firstChild"in t&&null!==t.firstChild&&"data"in t.firstChild&&null!==t.firstChild.data&&(h=t.firstChild.data),h=h.replace(/^\s+|\s+$|\n+/g,"").replace(/\s+/g," ");var l=n.strokeWidth;n.strokeWidth=0;var c=new e.Text(h,n),u=c.getScaledHeight()/c.height,f=((c.height+c.strokeWidth)*c.lineHeight-c.height)*u,d=c.getScaledHeight()+f,g=0;"center"===o&&(g=c.getScaledWidth()/2),"right"===o&&(g=c.getScaledWidth()),c.set({left:c.left-g,top:c.top-(d-c.fontSize*(.07+c._fontSizeFraction))/c.lineHeight,strokeWidth:void 0!==l?l:1}),r(c)},e.Text.fromObject=function(t,r){var n=i(t),s=t.path;return delete n.path,e.Object._fromObject("Text",n,(function(t){s?e.Object._fromObject("Path",s,(function(e){t.set("path",e),r(t)}),"path"):r(t)}),"text")},e.Text.genericFonts=["sans-serif","serif","cursive","fantasy","monospace"],e.util.createAccessors&&e.util.createAccessors(e.Text)}}(e),k.util.object.extend(k.Text.prototype,{isEmptyStyles:function(t){if(!this.styles)return!0;if(void 0!==t&&!this.styles[t])return!0;var e=void 0===t?this.styles:{line:this.styles[t]};for(var i in e)for(var r in e[i])for(var n in e[i][r])return!1;return!0},styleHas:function(t,e){if(!this.styles||!t||""===t)return!1;if(void 0!==e&&!this.styles[e])return!1;var i=void 0===e?this.styles:{0:this.styles[e]};for(var r in i)for(var n in i[r])if(void 0!==i[r][n][t])return!0;return!1},cleanStyle:function(t){if(!this.styles||!t||""===t)return!1;var e,i,r=this.styles,n=0,s=!0,o=0;for(var a in r){for(var h in e=0,r[a]){var l;n++,(l=r[a][h]).hasOwnProperty(t)?(i?l[t]!==i&&(s=!1):i=l[t],l[t]===this[t]&&delete l[t]):s=!1,0!==Object.keys(l).length?e++:delete r[a][h]}0===e&&delete r[a]}for(var c=0;c<this._textLines.length;c++)o+=this._textLines[c].length;s&&n===o&&(this[t]=i,this.removeStyle(t))},removeStyle:function(t){if(this.styles&&t&&""!==t){var e,i,r,n=this.styles;for(i in n){for(r in e=n[i])delete e[r][t],0===Object.keys(e[r]).length&&delete e[r];0===Object.keys(e).length&&delete n[i]}}},_extendStyles:function(t,e){var i=this.get2DCursorLocation(t);this._getLineStyle(i.lineIndex)||this._setLineStyle(i.lineIndex),this._getStyleDeclaration(i.lineIndex,i.charIndex)||this._setStyleDeclaration(i.lineIndex,i.charIndex,{}),k.util.object.extend(this._getStyleDeclaration(i.lineIndex,i.charIndex),e)},get2DCursorLocation:function(t,e){void 0===t&&(t=this.selectionStart);for(var i=e?this._unwrappedTextLines:this._textLines,r=i.length,n=0;n<r;n++){if(t<=i[n].length)return{lineIndex:n,charIndex:t};t-=i[n].length+this.missingNewlineOffset(n)}return{lineIndex:n-1,charIndex:i[n-1].length<t?i[n-1].length:t}},getSelectionStyles:function(t,e,i){void 0===t&&(t=this.selectionStart||0),void 0===e&&(e=this.selectionEnd||t);for(var r=[],n=t;n<e;n++)r.push(this.getStyleAtPosition(n,i));return r},getStyleAtPosition:function(t,e){var i=this.get2DCursorLocation(t);return(e?this.getCompleteStyleDeclaration(i.lineIndex,i.charIndex):this._getStyleDeclaration(i.lineIndex,i.charIndex))||{}},setSelectionStyles:function(t,e,i){void 0===e&&(e=this.selectionStart||0),void 0===i&&(i=this.selectionEnd||e);for(var r=e;r<i;r++)this._extendStyles(r,t);return this._forceClearCache=!0,this},_getStyleDeclaration:function(t,e){var i=this.styles&&this.styles[t];return i?i[e]:null},getCompleteStyleDeclaration:function(t,e){for(var i,r=this._getStyleDeclaration(t,e)||{},n={},s=0;s<this._styleProperties.length;s++)n[i=this._styleProperties[s]]=void 0===r[i]?this[i]:r[i];return n},_setStyleDeclaration:function(t,e,i){this.styles[t][e]=i},_deleteStyleDeclaration:function(t,e){delete this.styles[t][e]},_getLineStyle:function(t){return!!this.styles[t]},_setLineStyle:function(t){this.styles[t]={}},_deleteLineStyle:function(t){delete this.styles[t]}}),function(){function parseDecoration(t){t.textDecoration&&(t.textDecoration.indexOf("underline")>-1&&(t.underline=!0),t.textDecoration.indexOf("line-through")>-1&&(t.linethrough=!0),t.textDecoration.indexOf("overline")>-1&&(t.overline=!0),delete t.textDecoration)}k.IText=k.util.createClass(k.Text,k.Observable,{type:"i-text",selectionStart:0,selectionEnd:0,selectionColor:"rgba(17,119,255,0.3)",isEditing:!1,editable:!0,editingBorderColor:"rgba(102,153,255,0.25)",cursorWidth:2,cursorColor:"",cursorDelay:1e3,cursorDuration:600,caching:!0,hiddenTextareaContainer:null,_reSpace:/\s|\n/,_currentCursorOpacity:0,_selectionDirection:null,_abortCursorAnimation:!1,__widthOfSpace:[],inCompositionMode:!1,initialize:function(t,e){this.callSuper("initialize",t,e),this.initBehavior()},setSelectionStart:function(t){t=Math.max(t,0),this._updateAndFire("selectionStart",t)},setSelectionEnd:function(t){t=Math.min(t,this.text.length),this._updateAndFire("selectionEnd",t)},_updateAndFire:function(t,e){this[t]!==e&&(this._fireSelectionChanged(),this[t]=e),this._updateTextarea()},_fireSelectionChanged:function(){this.fire("selection:changed"),this.canvas&&this.canvas.fire("text:selection:changed",{target:this})},initDimensions:function(){this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this.callSuper("initDimensions")},render:function(t){this.clearContextTop(),this.callSuper("render",t),this.cursorOffsetCache={},this.renderCursorOrSelection()},_render:function(t){this.callSuper("_render",t)},clearContextTop:function(t){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var e=this.canvas.contextTop,i=this.canvas.viewportTransform;e.save(),e.transform(i[0],i[1],i[2],i[3],i[4],i[5]),this.transform(e),this._clearTextArea(e),t||e.restore()}},renderCursorOrSelection:function(){if(this.isEditing&&this.canvas&&this.canvas.contextTop){var t=this._getCursorBoundaries(),e=this.canvas.contextTop;this.clearContextTop(!0),this.selectionStart===this.selectionEnd?this.renderCursor(t,e):this.renderSelection(t,e),e.restore()}},_clearTextArea:function(t){var e=this.width+4,i=this.height+4;t.clearRect(-e/2,-i/2,e,i)},_getCursorBoundaries:function(t){void 0===t&&(t=this.selectionStart);var e=this._getLeftOffset(),i=this._getTopOffset(),r=this._getCursorBoundariesOffsets(t);return{left:e,top:i,leftOffset:r.left,topOffset:r.top}},_getCursorBoundariesOffsets:function(t){if(this.cursorOffsetCache&&"top"in this.cursorOffsetCache)return this.cursorOffsetCache;var e,i,r,n,s=0,o=0,a=this.get2DCursorLocation(t);r=a.charIndex,i=a.lineIndex;for(var h=0;h<i;h++)s+=this.getHeightOfLine(h);e=this._getLineLeftOffset(i);var l=this.__charBounds[i][r];return l&&(o=l.left),0!==this.charSpacing&&r===this._textLines[i].length&&(o-=this._getWidthOfCharSpacing()),n={top:s,left:e+(o>0?o:0)},"rtl"===this.direction&&(n.left*=-1),this.cursorOffsetCache=n,this.cursorOffsetCache},renderCursor:function(t,e){var i=this.get2DCursorLocation(),r=i.lineIndex,n=i.charIndex>0?i.charIndex-1:0,s=this.getValueOfPropertyAt(r,n,"fontSize"),o=this.scaleX*this.canvas.getZoom(),a=this.cursorWidth/o,h=t.topOffset,l=this.getValueOfPropertyAt(r,n,"deltaY");h+=(1-this._fontSizeFraction)*this.getHeightOfLine(r)/this.lineHeight-s*(1-this._fontSizeFraction),this.inCompositionMode&&this.renderSelection(t,e),e.fillStyle=this.cursorColor||this.getValueOfPropertyAt(r,n,"fill"),e.globalAlpha=this.__isMousedown?1:this._currentCursorOpacity,e.fillRect(t.left+t.leftOffset-a/2,h+t.top+l,a,s)},renderSelection:function(t,e){for(var i=this.inCompositionMode?this.hiddenTextarea.selectionStart:this.selectionStart,r=this.inCompositionMode?this.hiddenTextarea.selectionEnd:this.selectionEnd,n=-1!==this.textAlign.indexOf("justify"),s=this.get2DCursorLocation(i),o=this.get2DCursorLocation(r),a=s.lineIndex,h=o.lineIndex,l=s.charIndex<0?0:s.charIndex,c=o.charIndex<0?0:o.charIndex,u=a;u<=h;u++){var f,d=this._getLineLeftOffset(u)||0,g=this.getHeightOfLine(u),p=0,v=0;if(u===a&&(p=this.__charBounds[a][l].left),u>=a&&u<h)v=n&&!this.isEndOfWrapping(u)?this.width:this.getLineWidth(u)||5;else if(u===h)if(0===c)v=this.__charBounds[h][c].left;else{var m=this._getWidthOfCharSpacing();v=this.__charBounds[h][c-1].left+this.__charBounds[h][c-1].width-m}f=g,(this.lineHeight<1||u===h&&this.lineHeight>1)&&(g/=this.lineHeight);var _=t.left+d+p,y=v-p,x=g,C=0;this.inCompositionMode?(e.fillStyle=this.compositionColor||"black",x=1,C=g):e.fillStyle=this.selectionColor,"rtl"===this.direction&&(_=this.width-_-y),e.fillRect(_,t.top+t.topOffset+C,y,x),t.topOffset+=f}},getCurrentCharFontSize:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fontSize")},getCurrentCharColor:function(){var t=this._getCurrentCharIndex();return this.getValueOfPropertyAt(t.l,t.c,"fill")},_getCurrentCharIndex:function(){var t=this.get2DCursorLocation(this.selectionStart,!0),e=t.charIndex>0?t.charIndex-1:0;return{l:t.lineIndex,c:e}}}),k.IText.fromObject=function(t,e){if(parseDecoration(t),t.styles)for(var i in t.styles)for(var r in t.styles[i])parseDecoration(t.styles[i][r]);k.Object._fromObject("IText",t,e,"text")}}(),b=k.util.object.clone,k.util.object.extend(k.IText.prototype,{initBehavior:function(){this.initAddedHandler(),this.initRemovedHandler(),this.initCursorSelectionHandlers(),this.initDoubleClickSimulation(),this.mouseMoveHandler=this.mouseMoveHandler.bind(this)},onDeselect:function(){this.isEditing&&this.exitEditing(),this.selected=!1},initAddedHandler:function(){var t=this;this.on("added",(function(){var e=t.canvas;e&&(e._hasITextHandlers||(e._hasITextHandlers=!0,t._initCanvasHandlers(e)),e._iTextInstances=e._iTextInstances||[],e._iTextInstances.push(t))}))},initRemovedHandler:function(){var t=this;this.on("removed",(function(){var e=t.canvas;e&&(e._iTextInstances=e._iTextInstances||[],k.util.removeFromArray(e._iTextInstances,t),0===e._iTextInstances.length&&(e._hasITextHandlers=!1,t._removeCanvasHandlers(e)))}))},_initCanvasHandlers:function(t){t._mouseUpITextHandler=function(){t._iTextInstances&&t._iTextInstances.forEach((function(t){t.__isMousedown=!1}))},t.on("mouse:up",t._mouseUpITextHandler)},_removeCanvasHandlers:function(t){t.off("mouse:up",t._mouseUpITextHandler)},_tick:function(){this._currentTickState=this._animateCursor(this,1,this.cursorDuration,"_onTickComplete")},_animateCursor:function(t,e,i,r){var n;return n={isAborted:!1,abort:function(){this.isAborted=!0}},t.animate("_currentCursorOpacity",e,{duration:i,onComplete:function(){n.isAborted||t[r]()},onChange:function(){t.canvas&&t.selectionStart===t.selectionEnd&&t.renderCursorOrSelection()},abort:function(){return n.isAborted}}),n},_onTickComplete:function(){var t=this;this._cursorTimeout1&&clearTimeout(this._cursorTimeout1),this._cursorTimeout1=setTimeout((function(){t._currentTickCompleteState=t._animateCursor(t,0,this.cursorDuration/2,"_tick")}),100)},initDelayedCursor:function(t){var e=this,i=t?0:this.cursorDelay;this.abortCursorAnimation(),this._currentCursorOpacity=1,this._cursorTimeout2=setTimeout((function(){e._tick()}),i)},abortCursorAnimation:function(){var t=this._currentTickState||this._currentTickCompleteState,e=this.canvas;this._currentTickState&&this._currentTickState.abort(),this._currentTickCompleteState&&this._currentTickCompleteState.abort(),clearTimeout(this._cursorTimeout1),clearTimeout(this._cursorTimeout2),this._currentCursorOpacity=0,t&&e&&e.clearContext(e.contextTop||e.contextContainer)},selectAll:function(){return this.selectionStart=0,this.selectionEnd=this._text.length,this._fireSelectionChanged(),this._updateTextarea(),this},getSelectedText:function(){return this._text.slice(this.selectionStart,this.selectionEnd).join("")},findWordBoundaryLeft:function(t){var e=0,i=t-1;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i--;for(;/\S/.test(this._text[i])&&i>-1;)e++,i--;return t-e},findWordBoundaryRight:function(t){var e=0,i=t;if(this._reSpace.test(this._text[i]))for(;this._reSpace.test(this._text[i]);)e++,i++;for(;/\S/.test(this._text[i])&&i<this._text.length;)e++,i++;return t+e},findLineBoundaryLeft:function(t){for(var e=0,i=t-1;!/\n/.test(this._text[i])&&i>-1;)e++,i--;return t-e},findLineBoundaryRight:function(t){for(var e=0,i=t;!/\n/.test(this._text[i])&&i<this._text.length;)e++,i++;return t+e},searchWordBoundary:function(t,e){for(var i=this._text,r=this._reSpace.test(i[t])?t-1:t,n=i[r],s=k.reNonWord;!s.test(n)&&r>0&&r<i.length;)n=i[r+=e];return s.test(n)&&(r+=1===e?0:1),r},selectWord:function(t){t=t||this.selectionStart;var e=this.searchWordBoundary(t,-1),i=this.searchWordBoundary(t,1);this.selectionStart=e,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()},selectLine:function(t){t=t||this.selectionStart;var e=this.findLineBoundaryLeft(t),i=this.findLineBoundaryRight(t);return this.selectionStart=e,this.selectionEnd=i,this._fireSelectionChanged(),this._updateTextarea(),this},enterEditing:function(t){if(!this.isEditing&&this.editable)return this.canvas&&(this.canvas.calcOffset(),this.exitEditingOnOthers(this.canvas)),this.isEditing=!0,this.initHiddenTextarea(t),this.hiddenTextarea.focus(),this.hiddenTextarea.value=this.text,this._updateTextarea(),this._saveEditingProps(),this._setEditingProps(),this._textBeforeEdit=this.text,this._tick(),this.fire("editing:entered"),this._fireSelectionChanged(),this.canvas?(this.canvas.fire("text:editing:entered",{target:this}),this.initMouseMoveHandler(),this.canvas.requestRenderAll(),this):this},exitEditingOnOthers:function(t){t._iTextInstances&&t._iTextInstances.forEach((function(t){t.selected=!1,t.isEditing&&t.exitEditing()}))},initMouseMoveHandler:function(){this.canvas.on("mouse:move",this.mouseMoveHandler)},mouseMoveHandler:function(t){if(this.__isMousedown&&this.isEditing){var e=this.getSelectionStartFromPointer(t.e),i=this.selectionStart,r=this.selectionEnd;(e===this.__selectionStartOnMouseDown&&i!==r||i!==e&&r!==e)&&(e>this.__selectionStartOnMouseDown?(this.selectionStart=this.__selectionStartOnMouseDown,this.selectionEnd=e):(this.selectionStart=e,this.selectionEnd=this.__selectionStartOnMouseDown),this.selectionStart===i&&this.selectionEnd===r||(this.restartCursorIfNeeded(),this._fireSelectionChanged(),this._updateTextarea(),this.renderCursorOrSelection()))}},_setEditingProps:function(){this.hoverCursor="text",this.canvas&&(this.canvas.defaultCursor=this.canvas.moveCursor="text"),this.borderColor=this.editingBorderColor,this.hasControls=this.selectable=!1,this.lockMovementX=this.lockMovementY=!0},fromStringToGraphemeSelection:function(t,e,i){var r=i.slice(0,t),n=k.util.string.graphemeSplit(r).length;if(t===e)return{selectionStart:n,selectionEnd:n};var s=i.slice(t,e);return{selectionStart:n,selectionEnd:n+k.util.string.graphemeSplit(s).length}},fromGraphemeToStringSelection:function(t,e,i){var r=i.slice(0,t).join("").length;return t===e?{selectionStart:r,selectionEnd:r}:{selectionStart:r,selectionEnd:r+i.slice(t,e).join("").length}},_updateTextarea:function(){if(this.cursorOffsetCache={},this.hiddenTextarea){if(!this.inCompositionMode){var t=this.fromGraphemeToStringSelection(this.selectionStart,this.selectionEnd,this._text);this.hiddenTextarea.selectionStart=t.selectionStart,this.hiddenTextarea.selectionEnd=t.selectionEnd}this.updateTextareaPosition()}},updateFromTextArea:function(){if(this.hiddenTextarea){this.cursorOffsetCache={},this.text=this.hiddenTextarea.value,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords());var t=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value);this.selectionEnd=this.selectionStart=t.selectionEnd,this.inCompositionMode||(this.selectionStart=t.selectionStart),this.updateTextareaPosition()}},updateTextareaPosition:function(){if(this.selectionStart===this.selectionEnd){var t=this._calcTextareaPosition();this.hiddenTextarea.style.left=t.left,this.hiddenTextarea.style.top=t.top}},_calcTextareaPosition:function(){if(!this.canvas)return{x:1,y:1};var t=this.inCompositionMode?this.compositionStart:this.selectionStart,e=this._getCursorBoundaries(t),i=this.get2DCursorLocation(t),r=i.lineIndex,n=i.charIndex,s=this.getValueOfPropertyAt(r,n,"fontSize")*this.lineHeight,o=e.leftOffset,a=this.calcTransformMatrix(),h={x:e.left+o,y:e.top+e.topOffset+s},l=this.canvas.getRetinaScaling(),c=this.canvas.upperCanvasEl,u=c.width/l,f=c.height/l,d=u-s,g=f-s,p=c.clientWidth/u,v=c.clientHeight/f;return h=k.util.transformPoint(h,a),(h=k.util.transformPoint(h,this.canvas.viewportTransform)).x*=p,h.y*=v,h.x<0&&(h.x=0),h.x>d&&(h.x=d),h.y<0&&(h.y=0),h.y>g&&(h.y=g),h.x+=this.canvas._offset.left,h.y+=this.canvas._offset.top,{left:h.x+"px",top:h.y+"px",fontSize:s+"px",charHeight:s}},_saveEditingProps:function(){this._savedProps={hasControls:this.hasControls,borderColor:this.borderColor,lockMovementX:this.lockMovementX,lockMovementY:this.lockMovementY,hoverCursor:this.hoverCursor,selectable:this.selectable,defaultCursor:this.canvas&&this.canvas.defaultCursor,moveCursor:this.canvas&&this.canvas.moveCursor}},_restoreEditingProps:function(){this._savedProps&&(this.hoverCursor=this._savedProps.hoverCursor,this.hasControls=this._savedProps.hasControls,this.borderColor=this._savedProps.borderColor,this.selectable=this._savedProps.selectable,this.lockMovementX=this._savedProps.lockMovementX,this.lockMovementY=this._savedProps.lockMovementY,this.canvas&&(this.canvas.defaultCursor=this._savedProps.defaultCursor,this.canvas.moveCursor=this._savedProps.moveCursor))},exitEditing:function(){var t=this._textBeforeEdit!==this.text,e=this.hiddenTextarea;return this.selected=!1,this.isEditing=!1,this.selectionEnd=this.selectionStart,e&&(e.blur&&e.blur(),e.parentNode&&e.parentNode.removeChild(e)),this.hiddenTextarea=null,this.abortCursorAnimation(),this._restoreEditingProps(),this._currentCursorOpacity=0,this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this.fire("editing:exited"),t&&this.fire("modified"),this.canvas&&(this.canvas.off("mouse:move",this.mouseMoveHandler),this.canvas.fire("text:editing:exited",{target:this}),t&&this.canvas.fire("object:modified",{target:this})),this},_removeExtraneousStyles:function(){for(var t in this.styles)this._textLines[t]||delete this.styles[t]},removeStyleFromTo:function(t,e){var i,r,n=this.get2DCursorLocation(t,!0),s=this.get2DCursorLocation(e,!0),o=n.lineIndex,a=n.charIndex,h=s.lineIndex,l=s.charIndex;if(o!==h){if(this.styles[o])for(i=a;i<this._unwrappedTextLines[o].length;i++)delete this.styles[o][i];if(this.styles[h])for(i=l;i<this._unwrappedTextLines[h].length;i++)(r=this.styles[h][i])&&(this.styles[o]||(this.styles[o]={}),this.styles[o][a+i-l]=r);for(i=o+1;i<=h;i++)delete this.styles[i];this.shiftLineStyles(h,o-h)}else if(this.styles[o]){r=this.styles[o];var c,u,f=l-a;for(i=a;i<l;i++)delete r[i];for(u in this.styles[o])(c=parseInt(u,10))>=l&&(r[c-f]=r[u],delete r[u])}},shiftLineStyles:function(t,e){var i=b(this.styles);for(var r in this.styles){var n=parseInt(r,10);n>t&&(this.styles[n+e]=i[n],i[n-e]||delete this.styles[n])}},restartCursorIfNeeded:function(){this._currentTickState&&!this._currentTickState.isAborted&&this._currentTickCompleteState&&!this._currentTickCompleteState.isAborted||this.initDelayedCursor()},insertNewlineStyleObject:function(t,e,i,r){var n,s={},o=!1,a=this._unwrappedTextLines[t].length===e;for(var h in i||(i=1),this.shiftLineStyles(t,i),this.styles[t]&&(n=this.styles[t][0===e?e:e-1]),this.styles[t]){var l=parseInt(h,10);l>=e&&(o=!0,s[l-e]=this.styles[t][h],a&&0===e||delete this.styles[t][h])}var c=!1;for(o&&!a&&(this.styles[t+i]=s,c=!0),c&&i--;i>0;)r&&r[i-1]?this.styles[t+i]={0:b(r[i-1])}:n?this.styles[t+i]={0:b(n)}:delete this.styles[t+i],i--;this._forceClearCache=!0},insertCharStyleObject:function(t,e,i,r){this.styles||(this.styles={});var n=this.styles[t],s=n?b(n):{};for(var o in i||(i=1),s){var a=parseInt(o,10);a>=e&&(n[a+i]=s[a],s[a-i]||delete n[a])}if(this._forceClearCache=!0,r)for(;i--;)Object.keys(r[i]).length&&(this.styles[t]||(this.styles[t]={}),this.styles[t][e+i]=b(r[i]));else if(n)for(var h=n[e?e-1:1];h&&i--;)this.styles[t][e+i]=b(h)},insertNewStyleBlock:function(t,e,i){for(var r=this.get2DCursorLocation(e,!0),n=[0],s=0,o=0;o<t.length;o++)"\n"===t[o]?n[++s]=0:n[s]++;for(n[0]>0&&(this.insertCharStyleObject(r.lineIndex,r.charIndex,n[0],i),i=i&&i.slice(n[0]+1)),s&&this.insertNewlineStyleObject(r.lineIndex,r.charIndex+n[0],s),o=1;o<s;o++)n[o]>0?this.insertCharStyleObject(r.lineIndex+o,0,n[o],i):i&&(this.styles[r.lineIndex+o][0]=i[0]),i=i&&i.slice(n[o]+1);n[o]>0&&this.insertCharStyleObject(r.lineIndex+o,0,n[o],i)},setSelectionStartEndWithShift:function(t,e,i){i<=t?(e===t?this._selectionDirection="left":"right"===this._selectionDirection&&(this._selectionDirection="left",this.selectionEnd=t),this.selectionStart=i):i>t&&i<e?"right"===this._selectionDirection?this.selectionEnd=i:this.selectionStart=i:(e===t?this._selectionDirection="right":"left"===this._selectionDirection&&(this._selectionDirection="right",this.selectionStart=e),this.selectionEnd=i)},setSelectionInBoundaries:function(){var t=this.text.length;this.selectionStart>t?this.selectionStart=t:this.selectionStart<0&&(this.selectionStart=0),this.selectionEnd>t?this.selectionEnd=t:this.selectionEnd<0&&(this.selectionEnd=0)}}),k.util.object.extend(k.IText.prototype,{initDoubleClickSimulation:function(){this.__lastClickTime=+new Date,this.__lastLastClickTime=+new Date,this.__lastPointer={},this.on("mousedown",this.onMouseDown)},onMouseDown:function(t){if(this.canvas){this.__newClickTime=+new Date;var e=t.pointer;this.isTripleClick(e)&&(this.fire("tripleclick",t),this._stopEvent(t.e)),this.__lastLastClickTime=this.__lastClickTime,this.__lastClickTime=this.__newClickTime,this.__lastPointer=e,this.__lastIsEditing=this.isEditing,this.__lastSelected=this.selected}},isTripleClick:function(t){return this.__newClickTime-this.__lastClickTime<500&&this.__lastClickTime-this.__lastLastClickTime<500&&this.__lastPointer.x===t.x&&this.__lastPointer.y===t.y},_stopEvent:function(t){t.preventDefault&&t.preventDefault(),t.stopPropagation&&t.stopPropagation()},initCursorSelectionHandlers:function(){this.initMousedownHandler(),this.initMouseupHandler(),this.initClicks()},doubleClickHandler:function(t){this.isEditing&&this.selectWord(this.getSelectionStartFromPointer(t.e))},tripleClickHandler:function(t){this.isEditing&&this.selectLine(this.getSelectionStartFromPointer(t.e))},initClicks:function(){this.on("mousedblclick",this.doubleClickHandler),this.on("tripleclick",this.tripleClickHandler)},_mouseDownHandler:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.__isMousedown=!0,this.selected&&(this.inCompositionMode=!1,this.setCursorByClick(t.e)),this.isEditing&&(this.__selectionStartOnMouseDown=this.selectionStart,this.selectionStart===this.selectionEnd&&this.abortCursorAnimation(),this.renderCursorOrSelection()))},_mouseDownHandlerBefore:function(t){!this.canvas||!this.editable||t.e.button&&1!==t.e.button||(this.selected=this===this.canvas._activeObject)},initMousedownHandler:function(){this.on("mousedown",this._mouseDownHandler),this.on("mousedown:before",this._mouseDownHandlerBefore)},initMouseupHandler:function(){this.on("mouseup",this.mouseUpHandler)},mouseUpHandler:function(t){if(this.__isMousedown=!1,!(!this.editable||this.group||t.transform&&t.transform.actionPerformed||t.e.button&&1!==t.e.button)){if(this.canvas){var e=this.canvas._activeObject;if(e&&e!==this)return}this.__lastSelected&&!this.__corner?(this.selected=!1,this.__lastSelected=!1,this.enterEditing(t.e),this.selectionStart===this.selectionEnd?this.initDelayedCursor(!0):this.renderCursorOrSelection()):this.selected=!0}},setCursorByClick:function(t){var e=this.getSelectionStartFromPointer(t),i=this.selectionStart,r=this.selectionEnd;t.shiftKey?this.setSelectionStartEndWithShift(i,r,e):(this.selectionStart=e,this.selectionEnd=e),this.isEditing&&(this._fireSelectionChanged(),this._updateTextarea())},getSelectionStartFromPointer:function(t){for(var e,i=this.getLocalPointer(t),r=0,n=0,s=0,o=0,a=0,h=0,l=this._textLines.length;h<l&&s<=i.y;h++)s+=this.getHeightOfLine(h)*this.scaleY,a=h,h>0&&(o+=this._textLines[h-1].length+this.missingNewlineOffset(h-1));n=this._getLineLeftOffset(a)*this.scaleX,e=this._textLines[a],"rtl"===this.direction&&(i.x=this.width*this.scaleX-i.x+n);for(var c=0,u=e.length;c<u&&(r=n,(n+=this.__charBounds[a][c].kernedWidth*this.scaleX)<=i.x);c++)o++;return this._getNewSelectionStartFromOffset(i,r,n,o,u)},_getNewSelectionStartFromOffset:function(t,e,i,r,n){var s=t.x-e,o=i-t.x,a=r+(o>s||o<0?0:1);return this.flipX&&(a=n-a),a>this._text.length&&(a=this._text.length),a}}),k.util.object.extend(k.IText.prototype,{initHiddenTextarea:function(){this.hiddenTextarea=k.document.createElement("textarea"),this.hiddenTextarea.setAttribute("autocapitalize","off"),this.hiddenTextarea.setAttribute("autocorrect","off"),this.hiddenTextarea.setAttribute("autocomplete","off"),this.hiddenTextarea.setAttribute("spellcheck","false"),this.hiddenTextarea.setAttribute("data-fabric-hiddentextarea",""),this.hiddenTextarea.setAttribute("wrap","off");var t=this._calcTextareaPosition();this.hiddenTextarea.style.cssText="position: absolute; top: "+t.top+"; left: "+t.left+"; z-index: -999; opacity: 0; width: 1px; height: 1px; font-size: 1px; paddingーtop: "+t.fontSize+";",this.hiddenTextareaContainer?this.hiddenTextareaContainer.appendChild(this.hiddenTextarea):k.document.body.appendChild(this.hiddenTextarea),k.util.addListener(this.hiddenTextarea,"keydown",this.onKeyDown.bind(this)),k.util.addListener(this.hiddenTextarea,"keyup",this.onKeyUp.bind(this)),k.util.addListener(this.hiddenTextarea,"input",this.onInput.bind(this)),k.util.addListener(this.hiddenTextarea,"copy",this.copy.bind(this)),k.util.addListener(this.hiddenTextarea,"cut",this.copy.bind(this)),k.util.addListener(this.hiddenTextarea,"paste",this.paste.bind(this)),k.util.addListener(this.hiddenTextarea,"compositionstart",this.onCompositionStart.bind(this)),k.util.addListener(this.hiddenTextarea,"compositionupdate",this.onCompositionUpdate.bind(this)),k.util.addListener(this.hiddenTextarea,"compositionend",this.onCompositionEnd.bind(this)),!this._clickHandlerInitialized&&this.canvas&&(k.util.addListener(this.canvas.upperCanvasEl,"click",this.onClick.bind(this)),this._clickHandlerInitialized=!0)},keysMap:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorRight",36:"moveCursorLeft",37:"moveCursorLeft",38:"moveCursorUp",39:"moveCursorRight",40:"moveCursorDown"},keysMapRtl:{9:"exitEditing",27:"exitEditing",33:"moveCursorUp",34:"moveCursorDown",35:"moveCursorLeft",36:"moveCursorRight",37:"moveCursorRight",38:"moveCursorUp",39:"moveCursorLeft",40:"moveCursorDown"},ctrlKeysMapUp:{67:"copy",88:"cut"},ctrlKeysMapDown:{65:"selectAll"},onClick:function(){this.hiddenTextarea&&this.hiddenTextarea.focus()},onKeyDown:function(t){if(this.isEditing){var e="rtl"===this.direction?this.keysMapRtl:this.keysMap;if(t.keyCode in e)this[e[t.keyCode]](t);else{if(!(t.keyCode in this.ctrlKeysMapDown)||!t.ctrlKey&&!t.metaKey)return;this[this.ctrlKeysMapDown[t.keyCode]](t)}t.stopImmediatePropagation(),t.preventDefault(),t.keyCode>=33&&t.keyCode<=40?(this.inCompositionMode=!1,this.clearContextTop(),this.renderCursorOrSelection()):this.canvas&&this.canvas.requestRenderAll()}},onKeyUp:function(t){!this.isEditing||this._copyDone||this.inCompositionMode?this._copyDone=!1:t.keyCode in this.ctrlKeysMapUp&&(t.ctrlKey||t.metaKey)&&(this[this.ctrlKeysMapUp[t.keyCode]](t),t.stopImmediatePropagation(),t.preventDefault(),this.canvas&&this.canvas.requestRenderAll())},onInput:function(t){var e=this.fromPaste;if(this.fromPaste=!1,t&&t.stopPropagation(),this.isEditing){var i,r,n,s,o,a=this._splitTextIntoLines(this.hiddenTextarea.value).graphemeText,h=this._text.length,l=a.length,c=l-h,u=this.selectionStart,f=this.selectionEnd,d=u!==f;if(""===this.hiddenTextarea.value)return this.styles={},this.updateFromTextArea(),this.fire("changed"),void(this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll()));var g=this.fromStringToGraphemeSelection(this.hiddenTextarea.selectionStart,this.hiddenTextarea.selectionEnd,this.hiddenTextarea.value),p=u>g.selectionStart;d?(i=this._text.slice(u,f),c+=f-u):l<h&&(i=p?this._text.slice(f+c,f):this._text.slice(u,u-c)),r=a.slice(g.selectionEnd-c,g.selectionEnd),i&&i.length&&(r.length&&(n=this.getSelectionStyles(u,u+1,!1),n=r.map((function(){return n[0]}))),d?(s=u,o=f):p?(s=f-i.length,o=f):(s=f,o=f+i.length),this.removeStyleFromTo(s,o)),r.length&&(e&&r.join("")===k.copiedText&&!k.disableStyleCopyPaste&&(n=k.copiedTextStyle),this.insertNewStyleBlock(r,u,n)),this.updateFromTextArea(),this.fire("changed"),this.canvas&&(this.canvas.fire("text:changed",{target:this}),this.canvas.requestRenderAll())}},onCompositionStart:function(){this.inCompositionMode=!0},onCompositionEnd:function(){this.inCompositionMode=!1},onCompositionUpdate:function(t){this.compositionStart=t.target.selectionStart,this.compositionEnd=t.target.selectionEnd,this.updateTextareaPosition()},copy:function(){this.selectionStart!==this.selectionEnd&&(k.copiedText=this.getSelectedText(),k.disableStyleCopyPaste?k.copiedTextStyle=null:k.copiedTextStyle=this.getSelectionStyles(this.selectionStart,this.selectionEnd,!0),this._copyDone=!0)},paste:function(){this.fromPaste=!0},_getClipboardData:function(t){return t&&t.clipboardData||k.window.clipboardData},_getWidthBeforeCursor:function(t,e){var i,r=this._getLineLeftOffset(t);return e>0&&(r+=(i=this.__charBounds[t][e-1]).left+i.width),r},getDownCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(n===this._textLines.length-1||t.metaKey||34===t.keyCode)return this._text.length-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n+1,o);return this._textLines[n].slice(s).length+a+1+this.missingNewlineOffset(n)},_getSelectionForOffset:function(t,e){return t.shiftKey&&this.selectionStart!==this.selectionEnd&&e?this.selectionEnd:this.selectionStart},getUpCursorOffset:function(t,e){var i=this._getSelectionForOffset(t,e),r=this.get2DCursorLocation(i),n=r.lineIndex;if(0===n||t.metaKey||33===t.keyCode)return-i;var s=r.charIndex,o=this._getWidthBeforeCursor(n,s),a=this._getIndexOnLine(n-1,o),h=this._textLines[n].slice(0,s),l=this.missingNewlineOffset(n-1);return-this._textLines[n-1].length+a-h.length+(1-l)},_getIndexOnLine:function(t,e){for(var i,r,n=this._textLines[t],s=this._getLineLeftOffset(t),o=0,a=0,h=n.length;a<h;a++)if((s+=i=this.__charBounds[t][a].width)>e){r=!0;var l=s-i,c=s,u=Math.abs(l-e);o=Math.abs(c-e)<u?a:a-1;break}return r||(o=n.length-1),o},moveCursorDown:function(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorUpOrDown("Down",t)},moveCursorUp:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorUpOrDown("Up",t)},_moveCursorUpOrDown:function(t,e){var i=this["get"+t+"CursorOffset"](e,"right"===this._selectionDirection);e.shiftKey?this.moveCursorWithShift(i):this.moveCursorWithoutShift(i),0!==i&&(this.setSelectionInBoundaries(),this.abortCursorAnimation(),this._currentCursorOpacity=1,this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorWithShift:function(t){var e="left"===this._selectionDirection?this.selectionStart+t:this.selectionEnd+t;return this.setSelectionStartEndWithShift(this.selectionStart,this.selectionEnd,e),0!==t},moveCursorWithoutShift:function(t){return t<0?(this.selectionStart+=t,this.selectionEnd=this.selectionStart):(this.selectionEnd+=t,this.selectionStart=this.selectionEnd),0!==t},moveCursorLeft:function(t){0===this.selectionStart&&0===this.selectionEnd||this._moveCursorLeftOrRight("Left",t)},_move:function(t,e,i){var r;if(t.altKey)r=this["findWordBoundary"+i](this[e]);else{if(!t.metaKey&&35!==t.keyCode&&36!==t.keyCode)return this[e]+="Left"===i?-1:1,!0;r=this["findLineBoundary"+i](this[e])}if(void 0!==typeof r&&this[e]!==r)return this[e]=r,!0},_moveLeft:function(t,e){return this._move(t,e,"Left")},_moveRight:function(t,e){return this._move(t,e,"Right")},moveCursorLeftWithoutShift:function(t){var e=!0;return this._selectionDirection="left",this.selectionEnd===this.selectionStart&&0!==this.selectionStart&&(e=this._moveLeft(t,"selectionStart")),this.selectionEnd=this.selectionStart,e},moveCursorLeftWithShift:function(t){return"right"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveLeft(t,"selectionEnd"):0!==this.selectionStart?(this._selectionDirection="left",this._moveLeft(t,"selectionStart")):void 0},moveCursorRight:function(t){this.selectionStart>=this._text.length&&this.selectionEnd>=this._text.length||this._moveCursorLeftOrRight("Right",t)},_moveCursorLeftOrRight:function(t,e){var i="moveCursor"+t+"With";this._currentCursorOpacity=1,e.shiftKey?i+="Shift":i+="outShift",this[i](e)&&(this.abortCursorAnimation(),this.initDelayedCursor(),this._fireSelectionChanged(),this._updateTextarea())},moveCursorRightWithShift:function(t){return"left"===this._selectionDirection&&this.selectionStart!==this.selectionEnd?this._moveRight(t,"selectionStart"):this.selectionEnd!==this._text.length?(this._selectionDirection="right",this._moveRight(t,"selectionEnd")):void 0},moveCursorRightWithoutShift:function(t){var e=!0;return this._selectionDirection="right",this.selectionStart===this.selectionEnd?(e=this._moveRight(t,"selectionStart"),this.selectionEnd=this.selectionStart):this.selectionStart=this.selectionEnd,e},removeChars:function(t,e){void 0===e&&(e=t+1),this.removeStyleFromTo(t,e),this._text.splice(t,e-t),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()},insertChars:function(t,e,i,r){void 0===r&&(r=i),r>i&&this.removeStyleFromTo(i,r);var n=k.util.string.graphemeSplit(t);this.insertNewStyleBlock(n,i,e),this._text=[].concat(this._text.slice(0,i),n,this._text.slice(r)),this.text=this._text.join(""),this.set("dirty",!0),this._shouldClearDimensionCache()&&(this.initDimensions(),this.setCoords()),this._removeExtraneousStyles()}}),S=k.util.toFixed,T=/ +/g,k.util.object.extend(k.Text.prototype,{_toSVG:function(){var t=this._getSVGLeftTopOffsets(),e=this._getSVGTextAndBg(t.textTop,t.textLeft);return this._wrapSVGTextAndBg(e)},toSVG:function(t){return this._createBaseSVGMarkup(this._toSVG(),{reviver:t,noStyle:!0,withShadow:!0})},_getSVGLeftTopOffsets:function(){return{textLeft:-this.width/2,textTop:-this.height/2,lineTop:this.getHeightOfLine(0)}},_wrapSVGTextAndBg:function(t){var e=this.getSvgTextDecoration(this);return[t.textBgRects.join(""),'\t\t<text xml:space="preserve" ',this.fontFamily?'font-family="'+this.fontFamily.replace(/"/g,"'")+'" ':"",this.fontSize?'font-size="'+this.fontSize+'" ':"",this.fontStyle?'font-style="'+this.fontStyle+'" ':"",this.fontWeight?'font-weight="'+this.fontWeight+'" ':"",e?'text-decoration="'+e+'" ':"",'style="',this.getSvgStyles(!0),'"',this.addPaintOrder()," >",t.textSpans.join(""),"</text>\n"]},_getSVGTextAndBg:function(t,e){var i,r=[],n=[],s=t;this._setSVGBg(n);for(var o=0,a=this._textLines.length;o<a;o++)i=this._getLineLeftOffset(o),(this.textBackgroundColor||this.styleHas("textBackgroundColor",o))&&this._setSVGTextLineBg(n,o,e+i,s),this._setSVGTextLineText(r,o,e+i,s),s+=this.getHeightOfLine(o);return{textSpans:r,textBgRects:n}},_createTextCharSpan:function(t,e,i,r){var n=t!==t.trim()||t.match(T),s=this.getSvgSpanStyles(e,n),o=s?'style="'+s+'"':"",a=e.deltaY,h="",l=k.Object.NUM_FRACTION_DIGITS;return a&&(h=' dy="'+S(a,l)+'" '),['<tspan x="',S(i,l),'" y="',S(r,l),'" ',h,o,">",k.util.string.escapeXml(t),"</tspan>"].join("")},_setSVGTextLineText:function(t,e,i,r){var n,s,o,a,h,l=this.getHeightOfLine(e),c=-1!==this.textAlign.indexOf("justify"),u="",f=0,d=this._textLines[e];r+=l*(1-this._fontSizeFraction)/this.lineHeight;for(var g=0,p=d.length-1;g<=p;g++)h=g===p||this.charSpacing,u+=d[g],o=this.__charBounds[e][g],0===f?(i+=o.kernedWidth-o.width,f+=o.width):f+=o.kernedWidth,c&&!h&&this._reSpaceAndTab.test(d[g])&&(h=!0),h||(n=n||this.getCompleteStyleDeclaration(e,g),s=this.getCompleteStyleDeclaration(e,g+1),h=this._hasStyleChangedForSvg(n,s)),h&&(a=this._getStyleDeclaration(e,g)||{},t.push(this._createTextCharSpan(u,a,i,r)),u="",n=s,i+=f,f=0)},_pushTextBgRect:function(t,e,i,r,n,s){var o=k.Object.NUM_FRACTION_DIGITS;t.push("\t\t<rect ",this._getFillAttributes(e),' x="',S(i,o),'" y="',S(r,o),'" width="',S(n,o),'" height="',S(s,o),'"></rect>\n')},_setSVGTextLineBg:function(t,e,i,r){for(var n,s,o=this._textLines[e],a=this.getHeightOfLine(e)/this.lineHeight,h=0,l=0,c=this.getValueOfPropertyAt(e,0,"textBackgroundColor"),u=0,f=o.length;u<f;u++)n=this.__charBounds[e][u],(s=this.getValueOfPropertyAt(e,u,"textBackgroundColor"))!==c?(c&&this._pushTextBgRect(t,c,i+l,r,h,a),l=n.left,h=n.width,c=s):h+=n.kernedWidth;s&&this._pushTextBgRect(t,s,i+l,r,h,a)},_getFillAttributes:function(t){var e=t&&"string"==typeof t?new k.Color(t):"";return e&&e.getSource()&&1!==e.getAlpha()?'opacity="'+e.getAlpha()+'" fill="'+e.setAlpha(1).toRgb()+'"':'fill="'+t+'"'},_getSVGLineTopOffset:function(t){for(var e,i=0,r=0;r<t;r++)i+=this.getHeightOfLine(r);return e=this.getHeightOfLine(r),{lineTop:i,offset:(this._fontSizeMult-this._fontSizeFraction)*e/(this.lineHeight*this._fontSizeMult)}},getSvgStyles:function(t){return k.Object.prototype.getSvgStyles.call(this,t)+" white-space: pre;"}}),function(t){"use strict";var e=t.fabric||(t.fabric={});e.Textbox=e.util.createClass(e.IText,e.Observable,{type:"textbox",minWidth:20,dynamicMinWidth:2,__cachedLines:null,lockScalingFlip:!0,noScaleCache:!1,_dimensionAffectingProps:e.Text.prototype._dimensionAffectingProps.concat("width"),_wordJoiners:/[ \t\r]/,splitByGrapheme:!1,initDimensions:function(){this.__skipDimension||(this.isEditing&&this.initDelayedCursor(),this.clearContextTop(),this._clearCache(),this.dynamicMinWidth=0,this._styleMap=this._generateStyleMap(this._splitText()),this.dynamicMinWidth>this.width&&this._set("width",this.dynamicMinWidth),-1!==this.textAlign.indexOf("justify")&&this.enlargeSpaces(),this.height=this.calcTextHeight(),this.saveState({propertySet:"_dimensionAffectingProps"}))},_generateStyleMap:function(t){for(var e=0,i=0,r=0,n={},s=0;s<t.graphemeLines.length;s++)"\n"===t.graphemeText[r]&&s>0?(i=0,r++,e++):!this.splitByGrapheme&&this._reSpaceAndTab.test(t.graphemeText[r])&&s>0&&(i++,r++),n[s]={line:e,offset:i},r+=t.graphemeLines[s].length,i+=t.graphemeLines[s].length;return n},styleHas:function(t,i){if(this._styleMap&&!this.isWrapping){var r=this._styleMap[i];r&&(i=r.line)}return e.Text.prototype.styleHas.call(this,t,i)},isEmptyStyles:function(t){if(!this.styles)return!0;var e,i,r=0,n=!1,s=this._styleMap[t],o=this._styleMap[t+1];for(var a in s&&(t=s.line,r=s.offset),o&&(n=o.line===t,e=o.offset),i=void 0===t?this.styles:{line:this.styles[t]})for(var h in i[a])if(h>=r&&(!n||h<e))for(var l in i[a][h])return!1;return!0},_getStyleDeclaration:function(t,e){if(this._styleMap&&!this.isWrapping){var i=this._styleMap[t];if(!i)return null;t=i.line,e=i.offset+e}return this.callSuper("_getStyleDeclaration",t,e)},_setStyleDeclaration:function(t,e,i){var r=this._styleMap[t];t=r.line,e=r.offset+e,this.styles[t][e]=i},_deleteStyleDeclaration:function(t,e){var i=this._styleMap[t];t=i.line,e=i.offset+e,delete this.styles[t][e]},_getLineStyle:function(t){var e=this._styleMap[t];return!!this.styles[e.line]},_setLineStyle:function(t){var e=this._styleMap[t];this.styles[e.line]={}},_wrapText:function(t,e){var i,r=[];for(this.isWrapping=!0,i=0;i<t.length;i++)r=r.concat(this._wrapLine(t[i],i,e));return this.isWrapping=!1,r},_measureWord:function(t,e,i){var r,n=0;i=i||0;for(var s=0,o=t.length;s<o;s++){n+=this._getGraphemeBox(t[s],e,s+i,r,true).kernedWidth,r=t[s]}return n},_wrapLine:function(t,i,r,n){var s=0,o=this.splitByGrapheme,a=[],h=[],l=o?e.util.string.graphemeSplit(t):t.split(this._wordJoiners),c="",u=0,f=o?"":" ",d=0,g=0,p=0,v=!0,m=this._getWidthOfCharSpacing();n=n||0;0===l.length&&l.push([]),r-=n;for(var _=0;_<l.length;_++)c=o?l[_]:e.util.string.graphemeSplit(l[_]),d=this._measureWord(c,i,u),u+=c.length,(s+=g+d-m)>r&&!v?(a.push(h),h=[],s=d,v=!0):s+=m,v||o||h.push(f),h=h.concat(c),g=o?0:this._measureWord([f],i,u),u++,v=!1,d>p&&(p=d);return _&&a.push(h),p+n>this.dynamicMinWidth&&(this.dynamicMinWidth=p-m+n),a},isEndOfWrapping:function(t){return!this._styleMap[t+1]||this._styleMap[t+1].line!==this._styleMap[t].line},missingNewlineOffset:function(t){return this.splitByGrapheme?this.isEndOfWrapping(t)?1:0:1},_splitTextIntoLines:function(t){for(var i=e.Text.prototype._splitTextIntoLines.call(this,t),r=this._wrapText(i.lines,this.width),n=new Array(r.length),s=0;s<r.length;s++)n[s]=r[s].join("");return i.lines=n,i.graphemeLines=r,i},getMinWidth:function(){return Math.max(this.minWidth,this.dynamicMinWidth)},_removeExtraneousStyles:function(){var t={};for(var e in this._styleMap)this._textLines[e]&&(t[this._styleMap[e].line]=1);for(var e in this.styles)t[e]||delete this.styles[e]},toObject:function(t){return this.callSuper("toObject",["minWidth","splitByGrapheme"].concat(t))}}),e.Textbox.fromObject=function(t,i){return e.Object._fromObject("Textbox",t,i,"text")}}(e),function(){var t=k.controlsUtils,e=t.scaleSkewCursorStyleHandler,i=t.scaleCursorStyleHandler,r=t.scalingEqually,n=t.scalingYOrSkewingX,s=t.scalingXOrSkewingY,o=t.scaleOrSkewActionName,a=k.Object.prototype.controls;if(a.ml=new k.Control({x:-.5,y:0,cursorStyleHandler:e,actionHandler:s,getActionName:o}),a.mr=new k.Control({x:.5,y:0,cursorStyleHandler:e,actionHandler:s,getActionName:o}),a.mb=new k.Control({x:0,y:.5,cursorStyleHandler:e,actionHandler:n,getActionName:o}),a.mt=new k.Control({x:0,y:-.5,cursorStyleHandler:e,actionHandler:n,getActionName:o}),a.tl=new k.Control({x:-.5,y:-.5,cursorStyleHandler:i,actionHandler:r}),a.tr=new k.Control({x:.5,y:-.5,cursorStyleHandler:i,actionHandler:r}),a.bl=new k.Control({x:-.5,y:.5,cursorStyleHandler:i,actionHandler:r}),a.br=new k.Control({x:.5,y:.5,cursorStyleHandler:i,actionHandler:r}),a.mtr=new k.Control({x:0,y:-.5,actionHandler:t.rotationWithSnapping,cursorStyleHandler:t.rotationStyleHandler,offsetY:-40,withConnection:!0,actionName:"rotate"}),k.Textbox){var h=k.Textbox.prototype.controls={};h.mtr=a.mtr,h.tr=a.tr,h.br=a.br,h.tl=a.tl,h.bl=a.bl,h.mt=a.mt,h.mb=a.mb,h.mr=new k.Control({x:.5,y:0,actionHandler:t.changeWidth,cursorStyleHandler:e,actionName:"resizing"}),h.ml=new k.Control({x:-.5,y:0,actionHandler:t.changeWidth,cursorStyleHandler:e,actionName:"resizing"})}}()}}]);