jodit-pro 4.13.44 → 4.13.46

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 (335) 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 +28 -34
  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 +90 -16
  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 +5 -5
  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 +28 -34
  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 +89 -15
  135. package/es2021/plugins/google-maps/google-maps.min.css +1 -1
  136. package/es2021/plugins/google-maps/google-maps.min.js +6 -6
  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 +28 -34
  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 +89 -15
  208. package/es2021.en/plugins/google-maps/google-maps.min.css +1 -1
  209. package/es2021.en/plugins/google-maps/google-maps.min.js +6 -6
  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 +55 -34
  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 +101 -16
  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 +6 -0
  331. package/esm/plugins/google-maps/ui/map/map.js +2 -2
  332. package/esm/plugins/google-maps/ui/map/modules/drawing-controller.js +1 -1
  333. package/package.json +1 -1
  334. package/types/plugins/google-maps/helpers/helpers.d.ts +8 -0
  335. package/types/plugins/google-maps/ui/map/map.d.ts +6 -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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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.44
4
+ * Version: v4.13.46
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 l=(e,t)=>r(e,"name",{value:t,configurable:!0});import{COMMAND_OPEN_DIALOG as i}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:i};const o=l(e=>({icon:`edit-${e}`,isActive:l(t=>t.buffer.get("createMode.gm")===e,"isActive"),exec:l(t=>{t.e.fire("changeCreateMode.gm",e)},"exec")}),"gmButton");a.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};
@@ -17,8 +17,14 @@ 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>;
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;
22
28
  private initDrawingController;
23
29
  protected changeCreateMode(mode: CreateMode): void;
24
30
  protected onChangeMode(): void;
@@ -1,5 +1,5 @@
1
- var y=Object.defineProperty;var c=(l,t)=>y(l,"name",{value:t,configurable:!0});var i=function(l,t,e,o){var s=arguments.length,n=s<3?t:o===null?o=Object.getOwnPropertyDescriptor(t,e):o,h;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")n=Reflect.decorate(l,t,e,o);else for(var p=l.length-1;p>=0;p--)(h=l[p])&&(n=(s<3?h(n):s>3?h(t,e,n):h(t,e))||n);return s>3&&n&&Object.defineProperty(t,e,n),n};import"../../config.js";import{addNewInState as C}from"./modules/add-new-in-state.js";import{DrawingController as f}from"./modules/drawing-controller.js";import{initOrUpdateElementFromState as v}from"./modules/init-or-update-element-from-state.js";import{debounce as m}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 d}from"jodit/esm/core/helpers/utils/assert.js";import{css as _}from"jodit/esm/core/helpers/utils/css.js";import{UIGroup as w}from"jodit/esm/core/ui/index.js";import{ToolbarCollection as b}from"jodit/esm/modules/toolbar/collection/collection.js";import{STORAGE_KEY as E}from"../../helpers/const.js";const g=class g extends w{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,s,n,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=(n=this.map)===null||n===void 0?void 0:n.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)}),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")})}initDrawingController(){this.drawing=new f(this.map,this.options.googleMaps.map.defaultStates,t=>{C.call(this,t),t.setMap(null)})}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.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");d(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;return(t=this.drawing)===null||t===void 0||t.destruct(),super.destruct()}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 b(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 s=this.getElm("map-palette");d(s!=null,"palette element does not exists"),s.appendChild(this.toolbar.container)}};c(g,"UIMap");let a=g;i([z("ready")],a.prototype,"onReady",null),i([r("?:changeCreateMode.gm")],a.prototype,"changeCreateMode",null),i([r("state.mode")],a.prototype,"onChangeMode",null),i([r("state.elements")],a.prototype,"onChangeElementsList",null),i([r("state.center"),u(l=>l.mapInitialized),m()],a.prototype,"onChangeCenter",null),i([r("state.zoom"),m()],a.prototype,"onChangeZoom",null),i([r("state.controls")],a.prototype,"onChangeControls",null),i([r(["state.center","state.zoom","state.controls","state.size","state.type","state.layer"]),u(l=>l.mapInitialized),m()],a.prototype,"onChangeBound",null),i([r("state.size"),m()],a.prototype,"onChangeSize",null),i([r("state.type")],a.prototype,"onChangeMapType",null),i([r("state.layer")],a.prototype,"onChangeLayer",null);export{a 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};
@@ -1 +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())]}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};
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.44",
3
+ "version": "4.13.46",
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;
@@ -17,8 +17,14 @@ 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>;
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;
22
28
  private initDrawingController;
23
29
  protected changeCreateMode(mode: CreateMode): void;
24
30
  protected onChangeMode(): void;