jodit-pro 4.13.43 → 4.13.45

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 (337) hide show
  1. package/es2015/jodit.css +2 -2
  2. package/es2015/jodit.fat.min.css +1 -1
  3. package/es2015/jodit.fat.min.js +8 -8
  4. package/es2015/jodit.js +19 -32
  5. package/es2015/jodit.min.js +4 -4
  6. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  7. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  8. package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  9. package/es2015/plugins/autocomplete/autocomplete.css +1 -1
  10. package/es2015/plugins/autocomplete/autocomplete.js +1 -1
  11. package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
  12. package/es2015/plugins/backup/backup.css +1 -1
  13. package/es2015/plugins/backup/backup.js +1 -1
  14. package/es2015/plugins/backup/backup.min.js +1 -1
  15. package/es2015/plugins/button-generator/button-generator.css +1 -1
  16. package/es2015/plugins/button-generator/button-generator.js +1 -1
  17. package/es2015/plugins/button-generator/button-generator.min.js +1 -1
  18. package/es2015/plugins/change-case/change-case.js +1 -1
  19. package/es2015/plugins/change-case/change-case.min.js +1 -1
  20. package/es2015/plugins/color-picker/color-picker.css +1 -1
  21. package/es2015/plugins/color-picker/color-picker.js +1 -1
  22. package/es2015/plugins/color-picker/color-picker.min.js +1 -1
  23. package/es2015/plugins/emoji/emoji.css +1 -1
  24. package/es2015/plugins/emoji/emoji.js +1 -1
  25. package/es2015/plugins/emoji/emoji.min.js +1 -1
  26. package/es2015/plugins/export-docs/export-docs.js +1 -1
  27. package/es2015/plugins/export-docs/export-docs.min.js +1 -1
  28. package/es2015/plugins/finder/finder.css +1 -1
  29. package/es2015/plugins/finder/finder.js +1 -1
  30. package/es2015/plugins/finder/finder.min.js +1 -1
  31. package/es2015/plugins/google-maps/google-maps.css +11 -1
  32. package/es2015/plugins/google-maps/google-maps.js +325 -82
  33. package/es2015/plugins/google-maps/google-maps.min.css +1 -1
  34. package/es2015/plugins/google-maps/google-maps.min.js +6 -6
  35. package/es2015/plugins/google-search/google-search.js +1 -1
  36. package/es2015/plugins/google-search/google-search.min.js +1 -1
  37. package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
  38. package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
  39. package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
  40. package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
  41. package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
  42. package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
  43. package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
  44. package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  45. package/es2015/plugins/keyboard/keyboard.css +1 -1
  46. package/es2015/plugins/keyboard/keyboard.js +1 -1
  47. package/es2015/plugins/keyboard/keyboard.min.js +1 -1
  48. package/es2015/plugins/mobile-view/mobile-view.js +1 -1
  49. package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
  50. package/es2015/plugins/page-break/page-break.js +1 -1
  51. package/es2015/plugins/page-break/page-break.min.js +1 -1
  52. package/es2015/plugins/paste-code/paste-code.css +1 -1
  53. package/es2015/plugins/paste-code/paste-code.js +1 -1
  54. package/es2015/plugins/paste-code/paste-code.min.js +1 -1
  55. package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
  56. package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
  57. package/es2015/plugins/show-blocks/show-blocks.js +1 -1
  58. package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
  59. package/es2015/plugins/style/style.css +1 -1
  60. package/es2015/plugins/style/style.js +1 -1
  61. package/es2015/plugins/style/style.min.js +1 -1
  62. package/es2015/plugins/templates/templates.css +1 -1
  63. package/es2015/plugins/templates/templates.js +1 -1
  64. package/es2015/plugins/templates/templates.min.js +1 -1
  65. package/es2015/plugins/todo-list/todo-list.css +1 -1
  66. package/es2015/plugins/todo-list/todo-list.js +1 -1
  67. package/es2015/plugins/todo-list/todo-list.min.js +1 -1
  68. package/es2015/plugins/translate/translate.css +1 -1
  69. package/es2015/plugins/translate/translate.js +1 -1
  70. package/es2015/plugins/translate/translate.min.js +1 -1
  71. package/es2015/plugins/tune-block/tune-block.css +1 -1
  72. package/es2015/plugins/tune-block/tune-block.js +1 -1
  73. package/es2015/plugins/tune-block/tune-block.min.js +1 -1
  74. package/es2018/jodit.fat.min.css +1 -1
  75. package/es2018/jodit.fat.min.js +13 -13
  76. package/es2018/jodit.min.js +4 -4
  77. package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  78. package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
  79. package/es2018/plugins/backup/backup.min.js +1 -1
  80. package/es2018/plugins/button-generator/button-generator.min.js +1 -1
  81. package/es2018/plugins/change-case/change-case.min.js +1 -1
  82. package/es2018/plugins/color-picker/color-picker.min.js +1 -1
  83. package/es2018/plugins/emoji/emoji.min.js +1 -1
  84. package/es2018/plugins/export-docs/export-docs.min.js +1 -1
  85. package/es2018/plugins/finder/finder.min.js +1 -1
  86. package/es2018/plugins/google-maps/google-maps.min.css +1 -1
  87. package/es2018/plugins/google-maps/google-maps.min.js +7 -7
  88. package/es2018/plugins/google-search/google-search.min.js +1 -1
  89. package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
  90. package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
  91. package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  92. package/es2018/plugins/keyboard/keyboard.min.js +1 -1
  93. package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
  94. package/es2018/plugins/page-break/page-break.min.js +1 -1
  95. package/es2018/plugins/paste-code/paste-code.min.js +1 -1
  96. package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
  97. package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
  98. package/es2018/plugins/style/style.min.js +1 -1
  99. package/es2018/plugins/templates/templates.min.js +1 -1
  100. package/es2018/plugins/todo-list/todo-list.min.js +1 -1
  101. package/es2018/plugins/translate/translate.min.js +1 -1
  102. package/es2018/plugins/tune-block/tune-block.min.js +1 -1
  103. package/es2021/jodit.css +2 -2
  104. package/es2021/jodit.fat.min.css +1 -1
  105. package/es2021/jodit.fat.min.js +16 -16
  106. package/es2021/jodit.js +19 -32
  107. package/es2021/jodit.min.js +4 -4
  108. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  109. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  110. package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  111. package/es2021/plugins/autocomplete/autocomplete.css +1 -1
  112. package/es2021/plugins/autocomplete/autocomplete.js +1 -1
  113. package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
  114. package/es2021/plugins/backup/backup.css +1 -1
  115. package/es2021/plugins/backup/backup.js +1 -1
  116. package/es2021/plugins/backup/backup.min.js +1 -1
  117. package/es2021/plugins/button-generator/button-generator.css +1 -1
  118. package/es2021/plugins/button-generator/button-generator.js +1 -1
  119. package/es2021/plugins/button-generator/button-generator.min.js +1 -1
  120. package/es2021/plugins/change-case/change-case.js +1 -1
  121. package/es2021/plugins/change-case/change-case.min.js +1 -1
  122. package/es2021/plugins/color-picker/color-picker.css +1 -1
  123. package/es2021/plugins/color-picker/color-picker.js +1 -1
  124. package/es2021/plugins/color-picker/color-picker.min.js +1 -1
  125. package/es2021/plugins/emoji/emoji.css +1 -1
  126. package/es2021/plugins/emoji/emoji.js +1 -1
  127. package/es2021/plugins/emoji/emoji.min.js +1 -1
  128. package/es2021/plugins/export-docs/export-docs.js +1 -1
  129. package/es2021/plugins/export-docs/export-docs.min.js +1 -1
  130. package/es2021/plugins/finder/finder.css +1 -1
  131. package/es2021/plugins/finder/finder.js +1 -1
  132. package/es2021/plugins/finder/finder.min.js +1 -1
  133. package/es2021/plugins/google-maps/google-maps.css +11 -1
  134. package/es2021/plugins/google-maps/google-maps.js +320 -85
  135. package/es2021/plugins/google-maps/google-maps.min.css +1 -1
  136. package/es2021/plugins/google-maps/google-maps.min.js +9 -9
  137. package/es2021/plugins/google-search/google-search.js +1 -1
  138. package/es2021/plugins/google-search/google-search.min.js +1 -1
  139. package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
  140. package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
  141. package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
  142. package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
  143. package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
  144. package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
  145. package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
  146. package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  147. package/es2021/plugins/keyboard/keyboard.css +1 -1
  148. package/es2021/plugins/keyboard/keyboard.js +1 -1
  149. package/es2021/plugins/keyboard/keyboard.min.js +1 -1
  150. package/es2021/plugins/mobile-view/mobile-view.js +1 -1
  151. package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
  152. package/es2021/plugins/page-break/page-break.js +1 -1
  153. package/es2021/plugins/page-break/page-break.min.js +1 -1
  154. package/es2021/plugins/paste-code/paste-code.css +1 -1
  155. package/es2021/plugins/paste-code/paste-code.js +1 -1
  156. package/es2021/plugins/paste-code/paste-code.min.js +1 -1
  157. package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
  158. package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
  159. package/es2021/plugins/show-blocks/show-blocks.js +1 -1
  160. package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
  161. package/es2021/plugins/style/style.css +1 -1
  162. package/es2021/plugins/style/style.js +1 -1
  163. package/es2021/plugins/style/style.min.js +1 -1
  164. package/es2021/plugins/templates/templates.css +1 -1
  165. package/es2021/plugins/templates/templates.js +1 -1
  166. package/es2021/plugins/templates/templates.min.js +1 -1
  167. package/es2021/plugins/todo-list/todo-list.css +1 -1
  168. package/es2021/plugins/todo-list/todo-list.js +1 -1
  169. package/es2021/plugins/todo-list/todo-list.min.js +1 -1
  170. package/es2021/plugins/translate/translate.css +1 -1
  171. package/es2021/plugins/translate/translate.js +1 -1
  172. package/es2021/plugins/translate/translate.min.js +1 -1
  173. package/es2021/plugins/tune-block/tune-block.css +1 -1
  174. package/es2021/plugins/tune-block/tune-block.js +1 -1
  175. package/es2021/plugins/tune-block/tune-block.min.js +1 -1
  176. package/es2021.en/jodit.css +2 -2
  177. package/es2021.en/jodit.fat.min.css +1 -1
  178. package/es2021.en/jodit.fat.min.js +8 -8
  179. package/es2021.en/jodit.js +19 -32
  180. package/es2021.en/jodit.min.js +4 -4
  181. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  182. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  183. package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  184. package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
  185. package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
  186. package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
  187. package/es2021.en/plugins/backup/backup.css +1 -1
  188. package/es2021.en/plugins/backup/backup.js +1 -1
  189. package/es2021.en/plugins/backup/backup.min.js +1 -1
  190. package/es2021.en/plugins/button-generator/button-generator.css +1 -1
  191. package/es2021.en/plugins/button-generator/button-generator.js +1 -1
  192. package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
  193. package/es2021.en/plugins/change-case/change-case.js +1 -1
  194. package/es2021.en/plugins/change-case/change-case.min.js +1 -1
  195. package/es2021.en/plugins/color-picker/color-picker.css +1 -1
  196. package/es2021.en/plugins/color-picker/color-picker.js +1 -1
  197. package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
  198. package/es2021.en/plugins/emoji/emoji.css +1 -1
  199. package/es2021.en/plugins/emoji/emoji.js +1 -1
  200. package/es2021.en/plugins/emoji/emoji.min.js +1 -1
  201. package/es2021.en/plugins/export-docs/export-docs.js +1 -1
  202. package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
  203. package/es2021.en/plugins/finder/finder.css +1 -1
  204. package/es2021.en/plugins/finder/finder.js +1 -1
  205. package/es2021.en/plugins/finder/finder.min.js +1 -1
  206. package/es2021.en/plugins/google-maps/google-maps.css +11 -1
  207. package/es2021.en/plugins/google-maps/google-maps.js +320 -85
  208. package/es2021.en/plugins/google-maps/google-maps.min.css +1 -1
  209. package/es2021.en/plugins/google-maps/google-maps.min.js +9 -9
  210. package/es2021.en/plugins/google-search/google-search.js +1 -1
  211. package/es2021.en/plugins/google-search/google-search.min.js +1 -1
  212. package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
  213. package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
  214. package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
  215. package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
  216. package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
  217. package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
  218. package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
  219. package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  220. package/es2021.en/plugins/keyboard/keyboard.css +1 -1
  221. package/es2021.en/plugins/keyboard/keyboard.js +1 -1
  222. package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
  223. package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
  224. package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
  225. package/es2021.en/plugins/page-break/page-break.js +1 -1
  226. package/es2021.en/plugins/page-break/page-break.min.js +1 -1
  227. package/es2021.en/plugins/paste-code/paste-code.css +1 -1
  228. package/es2021.en/plugins/paste-code/paste-code.js +1 -1
  229. package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
  230. package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
  231. package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
  232. package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
  233. package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
  234. package/es2021.en/plugins/style/style.css +1 -1
  235. package/es2021.en/plugins/style/style.js +1 -1
  236. package/es2021.en/plugins/style/style.min.js +1 -1
  237. package/es2021.en/plugins/templates/templates.css +1 -1
  238. package/es2021.en/plugins/templates/templates.js +1 -1
  239. package/es2021.en/plugins/templates/templates.min.js +1 -1
  240. package/es2021.en/plugins/todo-list/todo-list.css +1 -1
  241. package/es2021.en/plugins/todo-list/todo-list.js +1 -1
  242. package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
  243. package/es2021.en/plugins/translate/translate.css +1 -1
  244. package/es2021.en/plugins/translate/translate.js +1 -1
  245. package/es2021.en/plugins/translate/translate.min.js +1 -1
  246. package/es2021.en/plugins/tune-block/tune-block.css +1 -1
  247. package/es2021.en/plugins/tune-block/tune-block.js +1 -1
  248. package/es2021.en/plugins/tune-block/tune-block.min.js +1 -1
  249. package/es5/jodit.css +3 -3
  250. package/es5/jodit.fat.min.css +1 -1
  251. package/es5/jodit.fat.min.js +2 -2
  252. package/es5/jodit.js +46 -32
  253. package/es5/jodit.min.css +2 -2
  254. package/es5/jodit.min.js +2 -2
  255. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
  256. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
  257. package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
  258. package/es5/plugins/autocomplete/autocomplete.css +1 -1
  259. package/es5/plugins/autocomplete/autocomplete.js +1 -1
  260. package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
  261. package/es5/plugins/backup/backup.css +1 -1
  262. package/es5/plugins/backup/backup.js +1 -1
  263. package/es5/plugins/backup/backup.min.js +1 -1
  264. package/es5/plugins/button-generator/button-generator.css +1 -1
  265. package/es5/plugins/button-generator/button-generator.js +1 -1
  266. package/es5/plugins/button-generator/button-generator.min.js +1 -1
  267. package/es5/plugins/change-case/change-case.js +1 -1
  268. package/es5/plugins/change-case/change-case.min.js +1 -1
  269. package/es5/plugins/color-picker/color-picker.css +1 -1
  270. package/es5/plugins/color-picker/color-picker.js +1 -1
  271. package/es5/plugins/color-picker/color-picker.min.js +1 -1
  272. package/es5/plugins/emoji/emoji.css +1 -1
  273. package/es5/plugins/emoji/emoji.js +1 -1
  274. package/es5/plugins/emoji/emoji.min.js +1 -1
  275. package/es5/plugins/export-docs/export-docs.js +1 -1
  276. package/es5/plugins/export-docs/export-docs.min.js +1 -1
  277. package/es5/plugins/finder/finder.css +1 -1
  278. package/es5/plugins/finder/finder.js +1 -1
  279. package/es5/plugins/finder/finder.min.js +1 -1
  280. package/es5/plugins/google-maps/google-maps.css +11 -1
  281. package/es5/plugins/google-maps/google-maps.js +416 -104
  282. package/es5/plugins/google-maps/google-maps.min.css +1 -1
  283. package/es5/plugins/google-maps/google-maps.min.js +2 -2
  284. package/es5/plugins/google-search/google-search.js +1 -1
  285. package/es5/plugins/google-search/google-search.min.js +1 -1
  286. package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
  287. package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
  288. package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
  289. package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
  290. package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
  291. package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
  292. package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
  293. package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
  294. package/es5/plugins/keyboard/keyboard.css +1 -1
  295. package/es5/plugins/keyboard/keyboard.js +1 -1
  296. package/es5/plugins/keyboard/keyboard.min.js +1 -1
  297. package/es5/plugins/mobile-view/mobile-view.js +1 -1
  298. package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
  299. package/es5/plugins/page-break/page-break.js +1 -1
  300. package/es5/plugins/page-break/page-break.min.js +1 -1
  301. package/es5/plugins/paste-code/paste-code.css +1 -1
  302. package/es5/plugins/paste-code/paste-code.js +1 -1
  303. package/es5/plugins/paste-code/paste-code.min.js +1 -1
  304. package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
  305. package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
  306. package/es5/plugins/show-blocks/show-blocks.js +1 -1
  307. package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
  308. package/es5/plugins/style/style.css +1 -1
  309. package/es5/plugins/style/style.js +1 -1
  310. package/es5/plugins/style/style.min.js +1 -1
  311. package/es5/plugins/templates/templates.css +1 -1
  312. package/es5/plugins/templates/templates.js +1 -1
  313. package/es5/plugins/templates/templates.min.js +1 -1
  314. package/es5/plugins/todo-list/todo-list.css +1 -1
  315. package/es5/plugins/todo-list/todo-list.js +1 -1
  316. package/es5/plugins/todo-list/todo-list.min.js +1 -1
  317. package/es5/plugins/translate/translate.css +1 -1
  318. package/es5/plugins/translate/translate.js +1 -1
  319. package/es5/plugins/translate/translate.min.js +1 -1
  320. package/es5/plugins/tune-block/tune-block.css +1 -1
  321. package/es5/plugins/tune-block/tune-block.js +1 -1
  322. package/es5/plugins/tune-block/tune-block.min.js +1 -1
  323. package/es5/polyfills.fat.min.js +1 -1
  324. package/es5/polyfills.js +1 -1
  325. package/es5/polyfills.min.js +1 -1
  326. package/esm/plugins/google-maps/config.js +1 -1
  327. package/esm/plugins/google-maps/google-maps.js +1 -1
  328. package/esm/plugins/google-maps/helpers/helpers.d.ts +8 -0
  329. package/esm/plugins/google-maps/helpers/helpers.js +1 -1
  330. package/esm/plugins/google-maps/ui/map/map.d.ts +9 -2
  331. package/esm/plugins/google-maps/ui/map/map.js +2 -2
  332. package/esm/plugins/google-maps/ui/map/modules/drawing-controller.d.ts +42 -0
  333. package/esm/plugins/google-maps/ui/map/modules/drawing-controller.js +1 -0
  334. package/package.json +1 -1
  335. package/types/plugins/google-maps/helpers/helpers.d.ts +8 -0
  336. package/types/plugins/google-maps/ui/map/map.d.ts +9 -2
  337. package/types/plugins/google-maps/ui/map/modules/drawing-controller.d.ts +42 -0
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
package/es5/polyfills.js CHANGED
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * jodit-pro - PRO Version of Jodit Editor
3
3
  * Author: Chupurnov Valerii <chupurnov@gmail.com>
4
- * Version: v4.13.43
4
+ * Version: v4.13.45
5
5
  * Url: https://xdsoft.net/jodit/pro/
6
6
  * License(s): SEE LICENSE IN LICENSE.md
7
7
  */
@@ -1 +1 @@
1
- var r=Object.defineProperty;var a=(e,t)=>r(e,"name",{value:t,configurable:!0});import{COMMAND_OPEN_DIALOG as i}from"./helpers/const.js";import{Config as l}from"jodit/esm/config.js";l.prototype.googleMaps={saveStateInStorage:!0,useStaticImage:!1,apiUrl:"https://maps.googleapis.com/maps/api/js?key=${j.o.googleMaps.API_KEY}&libraries=geometry,places,drawing&language=${j.o.language}&callback=JoditGoogleReadyHandler",API_KEY:"AIzaSyDjnR03hxN8fo0QJ85Jkkvk2DALTh3eynY",dialog:{size:[700,700]},inlineEditorOptions:{buttons:["bold","italic","link","brush","fontsize","image"]},map:{type:"roadmap",layer:"default",center:"auto",defaultCenter:[-34.397,150.644],defaultZoom:10,zoom:10,size:[500,400],defaultStates:{polyline:{strokeColor:"#5ba4f3",strokeWeight:3},polygon:{strokeColor:"#417706",fillColor:"#5b9302",strokeWeight:1,fillOpacity:.5},marker:{},text:{},circle:{strokeColor:"#da767c",fillColor:"#f34ca8",strokeWeight:1,fillOpacity:.5}}}},l.prototype.controls.googleMaps={tooltip:"Google Maps",icon:"map",command:i};const o=a(e=>({icon:`edit-${e}`,isActive:a(t=>t.buffer.get("createMode.gm")===e,"isActive"),exec:a(t=>{t.e.fire("changeCreateMode.gm",e)},"exec")}),"gmButton");l.prototype.controls.gm={hand:o("hand"),marker:o("marker"),polyline:o("polyline"),polygon:o("polygon"),circle:o("circle"),text:o("text")};
1
+ var i=Object.defineProperty;var l=(e,o)=>i(e,"name",{value:o,configurable:!0});import{COMMAND_OPEN_DIALOG as r}from"./helpers/const.js";import{Config as a}from"jodit/esm/config.js";a.prototype.googleMaps={saveStateInStorage:!0,useStaticImage:!1,apiUrl:"https://maps.googleapis.com/maps/api/js?key=${j.o.googleMaps.API_KEY}&libraries=geometry,places&language=${j.o.language}&callback=JoditGoogleReadyHandler",API_KEY:"AIzaSyDjnR03hxN8fo0QJ85Jkkvk2DALTh3eynY",dialog:{size:[700,700]},inlineEditorOptions:{buttons:["bold","italic","link","brush","fontsize","image"]},map:{type:"roadmap",layer:"default",center:"auto",defaultCenter:[-34.397,150.644],defaultZoom:10,zoom:10,size:[500,400],defaultStates:{polyline:{strokeColor:"#5ba4f3",strokeWeight:3},polygon:{strokeColor:"#417706",fillColor:"#5b9302",strokeWeight:1,fillOpacity:.5},marker:{},text:{},circle:{strokeColor:"#da767c",fillColor:"#f34ca8",strokeWeight:1,fillOpacity:.5}}}},a.prototype.controls.googleMaps={tooltip:"Google Maps",icon:"map",command:r};const t=l(e=>({icon:`edit-${e}`,isActive:l(o=>o.buffer.get("createMode.gm")===e,"isActive"),isDisabled:l(o=>e!=="hand"&&!!o.buffer.get("failed.gm"),"isDisabled"),exec:l(o=>{o.e.fire("changeCreateMode.gm",e)},"exec")}),"gmButton");a.prototype.controls.gm={hand:t("hand"),marker:t("marker"),polyline:t("polyline"),polygon:t("polygon"),circle:t("circle"),text:t("text")};
@@ -1 +1 @@
1
- var C=Object.defineProperty;var u=(d,e)=>C(d,"name",{value:e,configurable:!0});var h=function(d,e,s,t){var i=arguments.length,r=i<3?e:t===null?t=Object.getOwnPropertyDescriptor(e,s):t,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(d,e,s,t);else for(var p=d.length-1;p>=0;p--)(c=d[p])&&(r=(i<3?c(r):i>3?c(e,s,r):c(e,s))||r);return i>3&&r&&Object.defineProperty(e,s,r),r};import"./config.js";import"./assets/index.js";import{COMMAND_OPEN_DIALOG as b,STORAGE_KEY as E}from"./helpers/const.js";import{generateJSScript as O}from"./helpers/generate-js-script.js";import{googleReady as N,GoogleReadyHandler as A,isApiAvailable as j}from"./helpers/helpers.js";import{staticUrl as v}from"./helpers/static-url.js";import{UIComboBox as I}from"./ui/combo-box/combo-box.js";import{UIMap as _,UIMapsControlsForm as w,UIMapsPropsForm as D}from"./ui/index.js";import{IS_TEST as F,SOURCE_CONSUMER as $}from"jodit/esm/core/constants.js";import{watch as M}from"jodit/esm/core/decorators/index.js";import{appendScriptAsync as R}from"jodit/esm/core/helpers/index.js";import{Plugin as G}from"jodit/esm/core/plugin/index.js";import{Button as S}from"jodit/esm/core/ui/button/index.js";import{Dialog as J}from"jodit/esm/modules/dialog/dialog.js";import{TabsWidget as U}from"jodit/esm/modules/widget/index.js";import{JoditPro as P}from"../../jodit-pro.js";window.JoditGoogleReadyHandler=A;const y=class y extends G{constructor(){super(...arguments),this.buttons=[{group:"media",name:"googleMaps"}],this.dialog=null}className(){return"google-maps"}afterInit(e){e.registerCommand(b,()=>{this.openMapEditor(null,{})})}beforeDestruct(e){}onOpenOnDblClick(e){if(e.dataset.googleMaps){let s;try{s=JSON.parse(this.j.ow.atob(e.dataset.googleMaps))}catch{}return this.openMapEditor(e,s),!1}}async openMapEditor(e,s){const t=this.j,i=this.getDialog(),r=this.j.o.googleMaps.saveStateInStorage?i.storage.get(E):void 0,{apiUrl:c}=this.jodit.o.googleMaps;j()||R(this.jodit,c.replace(/\${([^}]+)}/g,(a,l)=>{var f;return(f=this.get(l))!==null&&f!==void 0?f:""}));const p={type:this.j.o.googleMaps.map.type,layer:this.j.o.googleMaps.map.layer,size:this.j.o.googleMaps.map.size,...r,...s},o=new _(i,p,this.j.options);o.container.classList.add(i.getFullElName("map"));const n=new I(t,{icon:"search",placeholder:"Search",clearButton:!0}).setMod("in-header",!0);n.container.classList.add(i.getFullElName("search")),this.j.async.promise(a=>{if(j()){a(0);return}const l=u(()=>{j()?a(0):this.j.async.setTimeout(l,100)},"intervalChecker");l(),N(a)}).then(()=>{o.setStatus("ready"),n.setStatus("ready")}),this.j.e.on(n,"select",(a,l)=>{if(l){o.map.fitBounds(l);return}a&&(o.state.center=[a.lat(),a.lng()])}),r||(this.j.o.googleMaps.map.center==="auto"?navigator.geolocation.getCurrentPosition(a=>{o.state.center=[a.coords.latitude,a.coords.longitude]},()=>{o.state.center=this.j.o.googleMaps.map.defaultCenter}):o.state.center=this.j.o.googleMaps.map.center),i.setSize(...t.o.googleMaps.dialog.size).setHeader([n,"&nbsp;",S(t,"eye").onAction(()=>{const a=this.jodit.createInside.element("img");a.src=v(o),a.dataset.googleMaps=btoa(o.json());const l={value:a.outerHTML};this.onAfterGetValueFromEditor(l),t.execCommand("preview",null,l.value)})]).setContent(U(t,[{name:"Map",icon:"map",content:o},{name:"Settings",content:new D(t,o.state)},{name:"Controls",icon:"menu",content:new w(t,o.state)}])).setFooter([S(t,"cancel","Cancel","default").onAction(()=>i.close()),S(t,"ok",e?"Save":"Insert","primary").onAction(()=>{o.destruct(),n.destruct(),i.e.off("beforeClose",m),i.close(),this.insertMap(e,o)})]).open();const m=u(()=>{if(o.state.elements.length&&JSON.stringify(o.state.elements)!==JSON.stringify(p.elements)&&!F&&!confirm(this.i18n("Are you sure?")))return!1;o.destruct(),n.destruct(),i.e.off("beforeClose",m)},"onCLose");i.e.on("beforeClose",m)}getDialog(){if(!this.dialog){const e=new J({language:this.j.o.language});e.container.classList.add(this.getFullElName("")),this.dialog=e}return this.dialog}insertMap(e,s){const t=e??this.jodit.createInside.element("img");t.src=v(s),t.dataset.googleMaps=btoa(s.json()),e||this.jodit.s.insertImage(t)}onBeforeSetNativeEditorValue(e){e.value=e.value.replace(/<script[^>]+jodit-google-maps-init[^>]+>.*?<\/script>/gs,"")}onAfterGetValueFromEditor(e,s){this.j.o.googleMaps.useStaticImage||s===$||(e.value=e.value.replace(/(<img[^>]+)(["']?)data-google-maps\2\s*=(["'])([^"']+)\3([^>]*>)/gs,(t,i,r,c,p,o)=>{let n={};try{n=JSON.parse(this.j.ow.atob(p))}catch{}return`${i} id="${n.uid}" ${r}data-google-maps${r}=${c}${p}${c}${o}${O(this.j,n)}`}))}};u(y,"googleMaps");let g=y;g.requires=["license","color-picker"],h([M("?:openOnDblClick")],g.prototype,"onOpenOnDblClick",null),h([M(":beforeSetNativeEditorValue")],g.prototype,"onBeforeSetNativeEditorValue",null),h([M(":afterGetValueFromEditor")],g.prototype,"onAfterGetValueFromEditor",null),P.plugins.add("google-maps",g);export{g as googleMaps};
1
+ var C=Object.defineProperty;var u=(d,e)=>C(d,"name",{value:e,configurable:!0});var h=function(d,e,a,t){var i=arguments.length,r=i<3?e:t===null?t=Object.getOwnPropertyDescriptor(e,a):t,c;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(d,e,a,t);else for(var p=d.length-1;p>=0;p--)(c=d[p])&&(r=(i<3?c(r):i>3?c(e,a,r):c(e,a))||r);return i>3&&r&&Object.defineProperty(e,a,r),r};import"./config.js";import"./assets/index.js";import{COMMAND_OPEN_DIALOG as b,STORAGE_KEY as E}from"./helpers/const.js";import{generateJSScript as O}from"./helpers/generate-js-script.js";import{GoogleAuthFailureHandler as w,googleReady as A,GoogleReadyHandler as N,isApiAvailable as j}from"./helpers/helpers.js";import{staticUrl as v}from"./helpers/static-url.js";import{UIComboBox as _}from"./ui/combo-box/combo-box.js";import{UIMap as I,UIMapsControlsForm as F,UIMapsPropsForm as D}from"./ui/index.js";import{IS_TEST as $,SOURCE_CONSUMER as G}from"jodit/esm/core/constants.js";import{watch as M}from"jodit/esm/core/decorators/index.js";import{appendScriptAsync as R}from"jodit/esm/core/helpers/index.js";import{Plugin as J}from"jodit/esm/core/plugin/index.js";import{Button as S}from"jodit/esm/core/ui/button/index.js";import{Dialog as U}from"jodit/esm/modules/dialog/dialog.js";import{TabsWidget as P}from"jodit/esm/modules/widget/index.js";import{JoditPro as V}from"../../jodit-pro.js";window.JoditGoogleReadyHandler=N,window.gm_authFailure=w;const y=class y extends J{constructor(){super(...arguments),this.buttons=[{group:"media",name:"googleMaps"}],this.dialog=null}className(){return"google-maps"}afterInit(e){e.registerCommand(b,()=>{this.openMapEditor(null,{})})}beforeDestruct(e){}onOpenOnDblClick(e){if(e.dataset.googleMaps){let a;try{a=JSON.parse(this.j.ow.atob(e.dataset.googleMaps))}catch{}return this.openMapEditor(e,a),!1}}async openMapEditor(e,a){const t=this.j,i=this.getDialog(),r=this.j.o.googleMaps.saveStateInStorage?i.storage.get(E):void 0,{apiUrl:c}=this.jodit.o.googleMaps;j()||R(this.jodit,c.replace(/\${([^}]+)}/g,(s,l)=>{var f;return(f=this.get(l))!==null&&f!==void 0?f:""}));const p={type:this.j.o.googleMaps.map.type,layer:this.j.o.googleMaps.map.layer,size:this.j.o.googleMaps.map.size,...r,...a},o=new I(i,p,this.j.options);o.container.classList.add(i.getFullElName("map"));const n=new _(t,{icon:"search",placeholder:"Search",clearButton:!0}).setMod("in-header",!0);n.container.classList.add(i.getFullElName("search")),this.j.async.promise(s=>{if(j()){s(0);return}const l=u(()=>{j()?s(0):this.j.async.setTimeout(l,100)},"intervalChecker");l(),A(s)}).then(()=>{o.setStatus("ready"),n.setStatus("ready")}),this.j.e.on(n,"select",(s,l)=>{if(l){o.map.fitBounds(l);return}s&&(o.state.center=[s.lat(),s.lng()])}),r||(this.j.o.googleMaps.map.center==="auto"?navigator.geolocation.getCurrentPosition(s=>{o.state.center=[s.coords.latitude,s.coords.longitude]},()=>{o.state.center=this.j.o.googleMaps.map.defaultCenter}):o.state.center=this.j.o.googleMaps.map.center),i.setSize(...t.o.googleMaps.dialog.size).setHeader([n,"&nbsp;",S(t,"eye").onAction(()=>{const s=this.jodit.createInside.element("img");s.src=v(o),s.dataset.googleMaps=btoa(o.json());const l={value:s.outerHTML};this.onAfterGetValueFromEditor(l),t.execCommand("preview",null,l.value)})]).setContent(P(t,[{name:"Map",icon:"map",content:o},{name:"Settings",content:new D(t,o.state)},{name:"Controls",icon:"menu",content:new F(t,o.state)}])).setFooter([S(t,"cancel","Cancel","default").onAction(()=>i.close()),S(t,"ok",e?"Save":"Insert","primary").onAction(()=>{o.destruct(),n.destruct(),i.e.off("beforeClose",m),i.close(),this.insertMap(e,o)})]).open();const m=u(()=>{if(o.state.elements.length&&JSON.stringify(o.state.elements)!==JSON.stringify(p.elements)&&!$&&!confirm(this.i18n("Are you sure?")))return!1;o.destruct(),n.destruct(),i.e.off("beforeClose",m)},"onCLose");i.e.on("beforeClose",m)}getDialog(){if(!this.dialog){const e=new U({language:this.j.o.language});e.container.classList.add(this.getFullElName("")),this.dialog=e}return this.dialog}insertMap(e,a){const t=e??this.jodit.createInside.element("img");t.src=v(a),t.dataset.googleMaps=btoa(a.json()),e||this.jodit.s.insertImage(t)}onBeforeSetNativeEditorValue(e){e.value=e.value.replace(/<script[^>]+jodit-google-maps-init[^>]+>.*?<\/script>/gs,"")}onAfterGetValueFromEditor(e,a){this.j.o.googleMaps.useStaticImage||a===G||(e.value=e.value.replace(/(<img[^>]+)(["']?)data-google-maps\2\s*=(["'])([^"']+)\3([^>]*>)/gs,(t,i,r,c,p,o)=>{let n={};try{n=JSON.parse(this.j.ow.atob(p))}catch{}return`${i} id="${n.uid}" ${r}data-google-maps${r}=${c}${p}${c}${o}${O(this.j,n)}`}))}};u(y,"googleMaps");let g=y;g.requires=["license","color-picker"],h([M("?:openOnDblClick")],g.prototype,"onOpenOnDblClick",null),h([M(":beforeSetNativeEditorValue")],g.prototype,"onBeforeSetNativeEditorValue",null),h([M(":afterGetValueFromEditor")],g.prototype,"onAfterGetValueFromEditor",null),V.plugins.add("google-maps",g);export{g as googleMaps};
@@ -7,6 +7,14 @@ export declare let jdGoogleMapsAlreadyLoaded: boolean;
7
7
  export declare const jdGoogleMapsOnloadHandlers: Array<Function>;
8
8
  export declare function googleReady(callback: Function): void;
9
9
  export declare function GoogleReadyHandler(): void;
10
+ export declare let jdGoogleMapsAuthFailed: boolean;
11
+ /**
12
+ * Google calls `gm_authFailure` when the key or the HTTP referrer is not
13
+ * authorized: the API is loaded, but every map instance is dead
14
+ */
15
+ export declare function GoogleAuthFailureHandler(): void;
16
+ export declare function googleAuthFailure(callback: Function): void;
17
+ export declare function isApiFailed(): boolean;
10
18
  export declare function arrayToPath(array: number[] | number[][], likePlainObject?: boolean): any;
11
19
  export declare function pathToArray(path: google.maps.MVCArray<any>): number[][];
12
20
  export declare function specialColor(value: string): string;
@@ -1 +1 @@
1
- var l=Object.defineProperty;var t=(e,o)=>l(e,"name",{value:o,configurable:!0});let p=!1;const n=[];function d(e){p?e():n.push(e)}t(d,"googleReady");function i(){p=!0,n&&n.forEach(e=>e())}t(i,"GoogleReadyHandler");function f(e,o=!1){const r=[];if(Array.isArray(e))if(Array.isArray(e[0])||Array.isArray(e[1]))e.forEach(a=>{r.push(f(a,o))});else return o?{lat:e[0],lng:e[1]}:new google.maps.LatLng(e[0],e[1]);return r}t(f,"arrayToPath");function g(e){return e.getArray().map(o=>[o.lat(),o.lng()])}t(g,"pathToArray");function u(e){return e.toUpperCase().replace("#","0x").padEnd(10,"F")}t(u,"specialColor");function A(){return typeof google<"u"&&typeof google.maps<"u"&&typeof google.maps.Map<"u"}t(A,"isApiAvailable");export{i as GoogleReadyHandler,f as arrayToPath,d as googleReady,A as isApiAvailable,p as jdGoogleMapsAlreadyLoaded,n as jdGoogleMapsOnloadHandlers,g as pathToArray,u as specialColor};
1
+ var i=Object.defineProperty;var o=(e,t)=>i(e,"name",{value:t,configurable:!0});let l=!1;const r=[];function d(e){l?e():r.push(e)}o(d,"googleReady");function g(){l=!0,r&&r.forEach(e=>e())}o(g,"GoogleReadyHandler");let n=!1;const a=[];function A(){n=!0,a.forEach(e=>e())}o(A,"GoogleAuthFailureHandler");function h(e){n?e():a.push(e)}o(h,"googleAuthFailure");function x(){return n}o(x,"isApiFailed");function s(e,t=!1){const p=[];if(Array.isArray(e))if(Array.isArray(e[0])||Array.isArray(e[1]))e.forEach(u=>{p.push(s(u,t))});else return t?{lat:e[0],lng:e[1]}:new google.maps.LatLng(e[0],e[1]);return p}o(s,"arrayToPath");function c(e){return e.getArray().map(t=>[t.lat(),t.lng()])}o(c,"pathToArray");function y(e){return e.toUpperCase().replace("#","0x").padEnd(10,"F")}o(y,"specialColor");function F(){return typeof google<"u"&&typeof google.maps<"u"&&typeof google.maps.Map<"u"}o(F,"isApiAvailable");export{A as GoogleAuthFailureHandler,g as GoogleReadyHandler,s as arrayToPath,h as googleAuthFailure,d as googleReady,F as isApiAvailable,x as isApiFailed,l as jdGoogleMapsAlreadyLoaded,n as jdGoogleMapsAuthFailed,r as jdGoogleMapsOnloadHandlers,c as pathToArray,y as specialColor};
@@ -9,7 +9,7 @@ import { UIElement, UIGroup } from "jodit/esm/core/ui/index";
9
9
  import type { CreateMode, IUIMap, IUIMapElement, IUIMapState } from "../../interface";
10
10
  export declare class UIMap extends UIGroup implements IUIMap {
11
11
  readonly options: IJodit['options'];
12
- private drawingManager?;
12
+ private drawing?;
13
13
  className(): string;
14
14
  private toolbar;
15
15
  state: IUIMapState;
@@ -17,9 +17,15 @@ export declare class UIMap extends UIGroup implements IUIMap {
17
17
  readonly mapElements: IUIMapElement[];
18
18
  private apiLoaded;
19
19
  private mapInitialized;
20
+ private failed;
20
21
  map: google.maps.Map;
21
22
  protected onReady(): Promise<void>;
22
- private initDrawManager;
23
+ /**
24
+ * Google Maps could not start: disable everything that needs a live
25
+ * map, so the toolbar tools do not act on a broken instance
26
+ */
27
+ private markAsFailed;
28
+ private initDrawingController;
23
29
  protected changeCreateMode(mode: CreateMode): void;
24
30
  protected onChangeMode(): void;
25
31
  protected onChangeElementsList(): void;
@@ -31,6 +37,7 @@ export declare class UIMap extends UIGroup implements IUIMap {
31
37
  protected onChangeMapType(): void;
32
38
  private layers;
33
39
  protected onChangeLayer(): void;
40
+ destruct(): unknown;
34
41
  protected render(): string;
35
42
  protected appendChildToContainer(): void;
36
43
  constructor(jodit: UIElement['jodit'], state: Partial<IUIMapState>, options: IJodit['options']);
@@ -1,5 +1,5 @@
1
- var y=Object.defineProperty;var c=(r,t)=>y(r,"name",{value:t,configurable:!0});var n=function(r,t,e,o){var a=arguments.length,i=a<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,e):o,p;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(r,t,e,o);else for(var h=r.length-1;h>=0;h--)(p=r[h])&&(i=(a<3?p(i):a>3?p(t,e,i):p(t,e))||i);return a>3&&i&&Object.defineProperty(t,e,i),i};import"../../config.js";import{addNewInState as f}from"./modules/add-new-in-state.js";import{initOrUpdateElementFromState as C}from"./modules/init-or-update-element-from-state.js";import{debounce as m}from"jodit/esm/core/decorators/debounce/debounce.js";import{hook as v}from"jodit/esm/core/decorators/hook/hook.js";import{wait as u}from"jodit/esm/core/decorators/wait/wait.js";import{watch as l}from"jodit/esm/core/decorators/watch/watch.js";import{uniqueUid as M}from"jodit/esm/core/global.js";import{assert as d}from"jodit/esm/core/helpers/utils/assert.js";import{css as z}from"jodit/esm/core/helpers/utils/css.js";import{UIGroup as b}from"jodit/esm/core/ui/index.js";import{ToolbarCollection as w}from"jodit/esm/modules/toolbar/collection/collection.js";import{STORAGE_KEY as _}from"../../helpers/const.js";const g=class g extends b{className(){return"UIMap"}json(){return JSON.stringify({...this.state,mode:"hand"})}async onReady(){await this.apiLoaded;const t=this.getElm("map-root");d(t!=null,"map-root element does not exists"),this.map=new google.maps.Map(t,{center:{lat:this.state.center[0],lng:this.state.center[1]},zoom:this.state.zoom,mapTypeId:this.state.type}),this.map.addListener("zoom_changed",()=>{var e;this.state.zoom=(e=this.map.getZoom())!==null&&e!==void 0?e:10}),this.map.addListener("center_changed",()=>{var e,o,a,i,p,h;this.state.center=[(a=(o=(e=this.map)===null||e===void 0?void 0:e.getCenter())===null||o===void 0?void 0:o.lat())!==null&&a!==void 0?a:55,(h=(p=(i=this.map)===null||i===void 0?void 0:i.getCenter())===null||p===void 0?void 0:p.lng())!==null&&h!==void 0?h:34]}),this.map.addListener("maptypeid_changed",()=>{const e=this.map.getMapTypeId();e&&(this.state.type=e)}),this.initDrawManager(),this.onChangeElementsList(),this.onChangeSize(),this.onChangeControls(),this.onChangeLayer(),this.onChangeMapType(),this.onChangeMode(),this.mapInitialized=!0,this.j.async.requestIdleCallback(()=>{this.j.e.fire(this,"GoogleMapsIsReady")})}initDrawManager(){try{const t=new google.maps.drawing.DrawingManager;t.setMap(this.map),t.setOptions({drawingControl:!1,polygonOptions:{...this.options.googleMaps.map.defaultStates.polygon,clickable:!0,editable:!0},polylineOptions:{...this.options.googleMaps.map.defaultStates.polyline,clickable:!0,editable:!0},markerOptions:{...this.options.googleMaps.map.defaultStates.marker,clickable:!0},circleOptions:{...this.options.googleMaps.map.defaultStates.circle,clickable:!0,editable:!0}}),this.drawingManager=t,google.maps.event.addListener(t,"overlaycomplete",e=>{e.overlay&&(f.call(this,e.overlay),e.overlay.setMap(null))})}catch{}}changeCreateMode(t){this.state.mode=this.state.mode===t?"hand":t}onChangeMode(){var t;this.j.buffer.set("createMode.gm",this.state.mode),(t=this.drawingManager)===null||t===void 0||t.setDrawingMode(this.state.mode==="hand"?null:this.state.mode),this.j.e.fire("updateToolbar")}onChangeElementsList(){const{state:{elements:t},mapElements:e}=this;t.length<e.length&&e.slice(t.length).forEach(o=>{o.gme.setMap(null)}),e.length=t.length,t.forEach((o,a)=>C.call(this,o,a))}onChangeCenter(){const t=this.map.getCenter();(t?.lat()!==this.state.center[0]||t?.lng()!==this.state.center[1])&&this.map.setCenter({lat:this.state.center[0],lng:this.state.center[1]})}onChangeZoom(){var t;(t=this.map)===null||t===void 0||t.setZoom(this.state.zoom)}onChangeControls(){var t;let e;for(e in this.state.controls)(t=this.map)===null||t===void 0||t.set(e,this.state.controls[e])}onChangeBound(){this.options.googleMaps.saveStateInStorage&&this.j.storage.set(_,{center:this.state.center,size:this.state.size,zoom:this.state.zoom,type:this.state.type,layer:this.state.layer,controls:this.state.controls})}onChangeSize(){const t=this.getElm("map-size");d(t!=null,"map-size element does not exists"),z(t,{width:this.state.size[0],height:this.state.size[1]})}onChangeMapType(){this.map.setMapTypeId(this.state.type)}onChangeLayer(){switch(this.layers.forEach(t=>t.setMap(null)),this.layers.length=0,this.state.layer){case"traffic":this.layers.push(new google.maps.TrafficLayer);break;case"transit":this.layers.push(new google.maps.TransitLayer);break;case"bicycling":this.layers.push(new google.maps.BicyclingLayer);break}this.layers.forEach(t=>t.setMap(this.map))}render(){return`<div>
1
+ var f=Object.defineProperty;var c=(l,t)=>f(l,"name",{value:t,configurable:!0});var n=function(l,t,e,o){var s=arguments.length,i=s<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,e):o,h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")i=Reflect.decorate(l,t,e,o);else for(var p=l.length-1;p>=0;p--)(h=l[p])&&(i=(s<3?h(i):s>3?h(t,e,i):h(t,e))||i);return s>3&&i&&Object.defineProperty(t,e,i),i};import"../../config.js";import{addNewInState as y}from"./modules/add-new-in-state.js";import{DrawingController as C}from"./modules/drawing-controller.js";import{initOrUpdateElementFromState as v}from"./modules/init-or-update-element-from-state.js";import{debounce as d}from"jodit/esm/core/decorators/debounce/debounce.js";import{hook as z}from"jodit/esm/core/decorators/hook/hook.js";import{wait as u}from"jodit/esm/core/decorators/wait/wait.js";import{watch as r}from"jodit/esm/core/decorators/watch/watch.js";import{uniqueUid as M}from"jodit/esm/core/global.js";import{assert as m}from"jodit/esm/core/helpers/utils/assert.js";import{css as _}from"jodit/esm/core/helpers/utils/css.js";import{UIGroup as b}from"jodit/esm/core/ui/index.js";import{ToolbarCollection as w}from"jodit/esm/modules/toolbar/collection/collection.js";import{STORAGE_KEY as E}from"../../helpers/const.js";import{googleAuthFailure as j,isApiFailed as I}from"../../helpers/helpers.js";const g=class g extends b{className(){return"UIMap"}json(){return JSON.stringify({...this.state,mode:"hand"})}async onReady(){await this.apiLoaded;const t=this.getElm("map-root");if(m(t!=null,"map-root element does not exists"),I()){this.markAsFailed();return}try{this.map=new google.maps.Map(t,{center:{lat:this.state.center[0],lng:this.state.center[1]},zoom:this.state.zoom,mapTypeId:this.state.type})}catch{this.markAsFailed();return}this.map.addListener("zoom_changed",()=>{var e;this.state.zoom=(e=this.map.getZoom())!==null&&e!==void 0?e:10}),this.map.addListener("center_changed",()=>{var e,o,s,i,h,p;this.state.center=[(s=(o=(e=this.map)===null||e===void 0?void 0:e.getCenter())===null||o===void 0?void 0:o.lat())!==null&&s!==void 0?s:55,(p=(h=(i=this.map)===null||i===void 0?void 0:i.getCenter())===null||h===void 0?void 0:h.lng())!==null&&p!==void 0?p:34]}),this.map.addListener("maptypeid_changed",()=>{const e=this.map.getMapTypeId();e&&(this.state.type=e)}),j(()=>{this.isInDestruct||this.markAsFailed()}),this.initDrawingController(),this.onChangeElementsList(),this.onChangeSize(),this.onChangeControls(),this.onChangeLayer(),this.onChangeMapType(),this.onChangeMode(),this.mapInitialized=!0,this.j.async.requestIdleCallback(()=>{this.j.e.fire(this,"GoogleMapsIsReady")})}markAsFailed(){this.failed=!0,this.state.mode="hand",this.j.buffer.set("failed.gm",!0);const t=this.getElm("map-root");t&&!t.firstChild&&t.appendChild(this.j.c.div(this.getFullElName("error"),this.j.i18n("Google Maps could not be loaded. Check the API key and the list of allowed HTTP referrers."))),this.toolbar.update(),this.j.e.fire(this,"GoogleMapsIsFailed")}initDrawingController(){this.drawing=new C(this.map,this.options.googleMaps.map.defaultStates,t=>{y.call(this,t),t.setMap(null)})}changeCreateMode(t){this.failed||(this.state.mode=this.state.mode===t?"hand":t)}onChangeMode(){var t;this.j.buffer.set("createMode.gm",this.state.mode),(t=this.drawing)===null||t===void 0||t.setMode(this.state.mode),this.j.e.fire("updateToolbar")}onChangeElementsList(){const{state:{elements:t},mapElements:e}=this;t.length<e.length&&e.slice(t.length).forEach(o=>{o.gme.setMap(null)}),e.length=t.length,t.forEach((o,s)=>v.call(this,o,s))}onChangeCenter(){const t=this.map.getCenter();(t?.lat()!==this.state.center[0]||t?.lng()!==this.state.center[1])&&this.map.setCenter({lat:this.state.center[0],lng:this.state.center[1]})}onChangeZoom(){var t;(t=this.map)===null||t===void 0||t.setZoom(this.state.zoom)}onChangeControls(){var t;let e;for(e in this.state.controls)(t=this.map)===null||t===void 0||t.set(e,this.state.controls[e])}onChangeBound(){this.options.googleMaps.saveStateInStorage&&this.j.storage.set(E,{center:this.state.center,size:this.state.size,zoom:this.state.zoom,type:this.state.type,layer:this.state.layer,controls:this.state.controls})}onChangeSize(){const t=this.getElm("map-size");m(t!=null,"map-size element does not exists"),_(t,{width:this.state.size[0],height:this.state.size[1]})}onChangeMapType(){this.map.setMapTypeId(this.state.type)}onChangeLayer(){switch(this.layers.forEach(t=>t.setMap(null)),this.layers.length=0,this.state.layer){case"traffic":this.layers.push(new google.maps.TrafficLayer);break;case"transit":this.layers.push(new google.maps.TransitLayer);break;case"bicycling":this.layers.push(new google.maps.BicyclingLayer);break}this.layers.forEach(t=>t.setMap(this.map))}destruct(){var t;try{(t=this.drawing)===null||t===void 0||t.destruct()}catch{}return this.drawing=void 0,this.j.buffer.set("failed.gm",!1),super.destruct()}render(){return`<div>
2
2
  <div class='&__map-root'></div>
3
3
  <div class='&__map-size'></div>
4
4
  <div class='&__map-palette'></div>
5
- </div>`}appendChildToContainer(){}constructor(t,e,o){super(t),this.options=o,this.toolbar=new w(this.jodit),this.state={uid:"jd"+M()+new Date().toString().replace(/[^0-9]/g,""),layer:this.options.googleMaps.map.layer,center:this.options.googleMaps.map.defaultCenter,zoom:this.options.googleMaps.map.defaultZoom,size:this.options.googleMaps.map.size,type:this.options.googleMaps.map.type,controls:{zoomControl:!0,mapTypeControl:!0,scaleControl:!0,streetViewControl:!0,rotateControl:!0,fullscreenControl:!0},mode:"hand",elements:[]},this.mapElements=[],this.apiLoaded=null,this.mapInitialized=!1,this.layers=[],Object.assign(this.state,e),this.toolbar.build(["gm.hand","gm.marker","gm.polyline","gm.polygon","gm.circle"]);const a=this.getElm("map-palette");d(a!=null,"palette element does not exists"),a.appendChild(this.toolbar.container)}};c(g,"UIMap");let s=g;n([v("ready")],s.prototype,"onReady",null),n([l("?:changeCreateMode.gm")],s.prototype,"changeCreateMode",null),n([l("state.mode")],s.prototype,"onChangeMode",null),n([l("state.elements")],s.prototype,"onChangeElementsList",null),n([l("state.center"),u(r=>r.mapInitialized),m()],s.prototype,"onChangeCenter",null),n([l("state.zoom"),m()],s.prototype,"onChangeZoom",null),n([l("state.controls")],s.prototype,"onChangeControls",null),n([l(["state.center","state.zoom","state.controls","state.size","state.type","state.layer"]),u(r=>r.mapInitialized),m()],s.prototype,"onChangeBound",null),n([l("state.size"),m()],s.prototype,"onChangeSize",null),n([l("state.type")],s.prototype,"onChangeMapType",null),n([l("state.layer")],s.prototype,"onChangeLayer",null);export{s as UIMap};
5
+ </div>`}appendChildToContainer(){}constructor(t,e,o){super(t),this.options=o,this.toolbar=new w(this.jodit),this.state={uid:"jd"+M()+new Date().toString().replace(/[^0-9]/g,""),layer:this.options.googleMaps.map.layer,center:this.options.googleMaps.map.defaultCenter,zoom:this.options.googleMaps.map.defaultZoom,size:this.options.googleMaps.map.size,type:this.options.googleMaps.map.type,controls:{zoomControl:!0,mapTypeControl:!0,scaleControl:!0,streetViewControl:!0,rotateControl:!0,fullscreenControl:!0},mode:"hand",elements:[]},this.mapElements=[],this.apiLoaded=null,this.mapInitialized=!1,this.failed=!1,this.layers=[],Object.assign(this.state,e),this.toolbar.build(["gm.hand","gm.marker","gm.polyline","gm.polygon","gm.circle"]);const s=this.getElm("map-palette");m(s!=null,"palette element does not exists"),s.appendChild(this.toolbar.container)}};c(g,"UIMap");let a=g;n([z("ready")],a.prototype,"onReady",null),n([r("?:changeCreateMode.gm")],a.prototype,"changeCreateMode",null),n([r("state.mode")],a.prototype,"onChangeMode",null),n([r("state.elements")],a.prototype,"onChangeElementsList",null),n([r("state.center"),u(l=>l.mapInitialized),d()],a.prototype,"onChangeCenter",null),n([r("state.zoom"),d()],a.prototype,"onChangeZoom",null),n([r("state.controls")],a.prototype,"onChangeControls",null),n([r(["state.center","state.zoom","state.controls","state.size","state.type","state.layer"]),u(l=>l.mapInitialized),d()],a.prototype,"onChangeBound",null),n([r("state.size"),d()],a.prototype,"onChangeSize",null),n([r("state.type")],a.prototype,"onChangeMapType",null),n([r("state.layer")],a.prototype,"onChangeLayer",null);export{a as UIMap};
@@ -0,0 +1,42 @@
1
+ /*!
2
+ * Jodit Editor PRO (https://xdsoft.net/jodit/)
3
+ * See LICENSE.md in the project root for license information.
4
+ * Copyright (c) 2013-2026 Valerii Chupurnov. All rights reserved. https://xdsoft.net/jodit/pro/
5
+ */
6
+ import type { Config } from "jodit/esm/config";
7
+ import type { CreateMode, IGMElement } from "../../../interface";
8
+ type DrawableMode = 'marker' | 'polyline' | 'polygon' | 'circle';
9
+ export declare function isDrawableMode(mode: CreateMode): mode is DrawableMode;
10
+ /**
11
+ * Replacement for the removed `google.maps.drawing.DrawingManager`
12
+ * (the Drawing Library was discontinued in Maps JS API v3.65):
13
+ * draws markers, polylines, polygons and circles with plain map events.
14
+ *
15
+ * Click places a marker / a vertex / a circle center; for circles the
16
+ * radius follows the cursor and a second click fixes it; polylines and
17
+ * polygons are finished with a double click. The completed shape is
18
+ * passed to `onComplete` and removed from the map — the caller
19
+ * re-creates it from state, exactly as with DrawingManager overlays.
20
+ */
21
+ export declare class DrawingController {
22
+ private readonly map;
23
+ private readonly defaultStates;
24
+ private readonly onComplete;
25
+ private mode;
26
+ private listeners;
27
+ private preview;
28
+ private previewCircle;
29
+ private vertices;
30
+ constructor(map: google.maps.Map, defaultStates: Config['googleMaps']['map']['defaultStates'], onComplete: (overlay: IGMElement) => void);
31
+ setMode(mode: CreateMode): void;
32
+ destruct(): void;
33
+ private bind;
34
+ private unbind;
35
+ private onClick;
36
+ private onMove;
37
+ private onDblClick;
38
+ private finishCircle;
39
+ private updatePolyPreview;
40
+ private cancel;
41
+ }
42
+ export {};
@@ -0,0 +1 @@
1
+ var c=Object.defineProperty;var l=(s,e)=>c(s,"name",{value:e,configurable:!0});const a=["marker","polyline","polygon","circle"];function p(s){return a.includes(s)}l(p,"isDrawableMode");const o=class o{constructor(e,i,t){this.map=e,this.defaultStates=i,this.onComplete=t,this.mode=null,this.listeners=[],this.preview=null,this.previewCircle=null,this.vertices=[]}setMode(e){const i=p(e)?e:null;i!==this.mode&&(this.cancel(),this.unbind(),this.mode=i,i?(this.bind(),this.map.setOptions({draggableCursor:"crosshair",disableDoubleClickZoom:!0})):this.map.setOptions({draggableCursor:null,disableDoubleClickZoom:!1}))}destruct(){this.cancel(),this.unbind(),this.mode=null}bind(){this.listeners=[this.map.addListener("click",e=>this.onClick(e)),this.map.addListener("mousemove",e=>this.onMove(e)),this.map.addListener("dblclick",()=>this.onDblClick())].filter(Boolean)}unbind(){this.listeners.forEach(e=>e?.remove()),this.listeners=[]}onClick(e){const i=e.latLng;if(i)switch(this.mode){case"marker":this.onComplete(new google.maps.Marker({position:i}));break;case"circle":this.previewCircle?this.finishCircle():this.previewCircle=new google.maps.Circle({...this.defaultStates.circle,center:i,radius:0,clickable:!1,map:this.map});break;case"polyline":case"polygon":this.vertices.push(i),this.updatePolyPreview(i);break}}onMove(e){const i=e.latLng;if(i){if(this.previewCircle){const t=this.previewCircle.getCenter();t&&this.previewCircle.setRadius(google.maps.geometry.spherical.computeDistanceBetween(t,i));return}this.vertices.length&&this.updatePolyPreview(i)}}onDblClick(){if(this.mode!=="polyline"&&this.mode!=="polygon")return;const e=this.vertices.filter((t,n,h)=>n===0||!t.equals(h[n-1])),i=this.mode==="polygon"?3:2;if(e.length>=i&&this.preview){const t=this.preview;t.setPath(e),this.onComplete(t)}this.cancel()}finishCircle(){const e=this.previewCircle;e&&(this.previewCircle=null,this.onComplete(e),e.setMap(null))}updatePolyPreview(e){const i=[...this.vertices,e];if(!this.preview){const t={...this.defaultStates[this.mode==="polygon"?"polygon":"polyline"],clickable:!1,map:this.map};this.preview=this.mode==="polygon"?new google.maps.Polygon(t):new google.maps.Polyline(t)}this.preview.setPath(i)}cancel(){var e,i;(e=this.preview)===null||e===void 0||e.setMap(null),this.preview=null,(i=this.previewCircle)===null||i===void 0||i.setMap(null),this.previewCircle=null,this.vertices=[]}};l(o,"DrawingController");let r=o;export{r as DrawingController,p as isDrawableMode};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "jodit-pro",
3
- "version": "4.13.43",
3
+ "version": "4.13.45",
4
4
  "author": "Chupurnov Valerii <chupurnov@gmail.com>",
5
5
  "homepage": "https://xdsoft.net/jodit/pro/",
6
6
  "bugs": {
@@ -7,6 +7,14 @@ export declare let jdGoogleMapsAlreadyLoaded: boolean;
7
7
  export declare const jdGoogleMapsOnloadHandlers: Array<Function>;
8
8
  export declare function googleReady(callback: Function): void;
9
9
  export declare function GoogleReadyHandler(): void;
10
+ export declare let jdGoogleMapsAuthFailed: boolean;
11
+ /**
12
+ * Google calls `gm_authFailure` when the key or the HTTP referrer is not
13
+ * authorized: the API is loaded, but every map instance is dead
14
+ */
15
+ export declare function GoogleAuthFailureHandler(): void;
16
+ export declare function googleAuthFailure(callback: Function): void;
17
+ export declare function isApiFailed(): boolean;
10
18
  export declare function arrayToPath(array: number[] | number[][], likePlainObject?: boolean): any;
11
19
  export declare function pathToArray(path: google.maps.MVCArray<any>): number[][];
12
20
  export declare function specialColor(value: string): string;
@@ -9,7 +9,7 @@ import { UIElement, UIGroup } from "jodit/esm/core/ui/index";
9
9
  import type { CreateMode, IUIMap, IUIMapElement, IUIMapState } from "../../interface";
10
10
  export declare class UIMap extends UIGroup implements IUIMap {
11
11
  readonly options: IJodit['options'];
12
- private drawingManager?;
12
+ private drawing?;
13
13
  className(): string;
14
14
  private toolbar;
15
15
  state: IUIMapState;
@@ -17,9 +17,15 @@ export declare class UIMap extends UIGroup implements IUIMap {
17
17
  readonly mapElements: IUIMapElement[];
18
18
  private apiLoaded;
19
19
  private mapInitialized;
20
+ private failed;
20
21
  map: google.maps.Map;
21
22
  protected onReady(): Promise<void>;
22
- private initDrawManager;
23
+ /**
24
+ * Google Maps could not start: disable everything that needs a live
25
+ * map, so the toolbar tools do not act on a broken instance
26
+ */
27
+ private markAsFailed;
28
+ private initDrawingController;
23
29
  protected changeCreateMode(mode: CreateMode): void;
24
30
  protected onChangeMode(): void;
25
31
  protected onChangeElementsList(): void;
@@ -31,6 +37,7 @@ export declare class UIMap extends UIGroup implements IUIMap {
31
37
  protected onChangeMapType(): void;
32
38
  private layers;
33
39
  protected onChangeLayer(): void;
40
+ destruct(): unknown;
34
41
  protected render(): string;
35
42
  protected appendChildToContainer(): void;
36
43
  constructor(jodit: UIElement['jodit'], state: Partial<IUIMapState>, options: IJodit['options']);