jodit-pro 4.18.3 → 4.18.7
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.
- package/CHANGELOG.md +11 -0
- package/README.md +2 -0
- package/config.js +1 -0
- package/es2015/jodit.css +2 -2
- package/es2015/jodit.fat.min.css +1 -1
- package/es2015/jodit.fat.min.js +55 -18
- package/es2015/jodit.js +1139 -150
- package/es2015/jodit.min.css +1 -1
- package/es2015/jodit.min.js +34 -9
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2015/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.css +1 -1
- package/es2015/plugins/autocomplete/autocomplete.js +1 -1
- package/es2015/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2015/plugins/backup/backup.css +1 -1
- package/es2015/plugins/backup/backup.js +1 -1
- package/es2015/plugins/backup/backup.min.js +1 -1
- package/es2015/plugins/button-generator/button-generator.css +1 -1
- package/es2015/plugins/button-generator/button-generator.js +1 -1
- package/es2015/plugins/button-generator/button-generator.min.js +1 -1
- package/es2015/plugins/change-case/change-case.js +1 -1
- package/es2015/plugins/change-case/change-case.min.js +1 -1
- package/es2015/plugins/chart/chart.css +173 -0
- package/es2015/plugins/chart/chart.js +1479 -0
- package/es2015/plugins/chart/chart.min.css +1 -0
- package/es2015/plugins/chart/chart.min.js +20 -0
- package/es2015/plugins/color-picker/color-picker.css +1 -1
- package/es2015/plugins/color-picker/color-picker.js +1 -1
- package/es2015/plugins/color-picker/color-picker.min.js +1 -1
- package/es2015/plugins/emoji/emoji.css +1 -1
- package/es2015/plugins/emoji/emoji.js +1 -1
- package/es2015/plugins/emoji/emoji.min.js +1 -1
- package/es2015/plugins/export-docs/export-docs.js +1 -1
- package/es2015/plugins/export-docs/export-docs.min.js +1 -1
- package/es2015/plugins/finder/finder.css +1 -1
- package/es2015/plugins/finder/finder.js +1 -1
- package/es2015/plugins/finder/finder.min.js +1 -1
- package/es2015/plugins/google-maps/google-maps.css +1 -1
- package/es2015/plugins/google-maps/google-maps.js +1 -1
- package/es2015/plugins/google-maps/google-maps.min.js +1 -1
- package/es2015/plugins/google-search/google-search.js +1 -1
- package/es2015/plugins/google-search/google-search.min.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2015/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2015/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2015/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2015/plugins/keyboard/keyboard.css +1 -1
- package/es2015/plugins/keyboard/keyboard.js +1 -1
- package/es2015/plugins/keyboard/keyboard.min.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.js +1 -1
- package/es2015/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2015/plugins/page-break/page-break.js +1 -1
- package/es2015/plugins/page-break/page-break.min.js +1 -1
- package/es2015/plugins/paste-code/paste-code.css +1 -1
- package/es2015/plugins/paste-code/paste-code.js +1 -1
- package/es2015/plugins/paste-code/paste-code.min.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2015/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.js +1 -1
- package/es2015/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2015/plugins/style/style.css +1 -1
- package/es2015/plugins/style/style.js +1 -1
- package/es2015/plugins/style/style.min.js +1 -1
- package/es2015/plugins/templates/templates.css +1 -1
- package/es2015/plugins/templates/templates.js +1 -1
- package/es2015/plugins/templates/templates.min.js +1 -1
- package/es2015/plugins/todo-list/todo-list.css +1 -1
- package/es2015/plugins/todo-list/todo-list.js +1 -1
- package/es2015/plugins/todo-list/todo-list.min.js +1 -1
- package/es2015/plugins/translate/translate.css +1 -1
- package/es2015/plugins/translate/translate.js +1 -1
- package/es2015/plugins/translate/translate.min.js +1 -1
- package/es2015/plugins/tune-block/tune-block.css +1 -1
- package/es2015/plugins/tune-block/tune-block.js +2 -1
- package/es2015/plugins/tune-block/tune-block.min.js +2 -2
- package/es2018/jodit.fat.min.css +1 -1
- package/es2018/jodit.fat.min.js +100 -63
- package/es2018/jodit.min.css +1 -1
- package/es2018/jodit.min.js +64 -39
- package/es2018/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2018/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2018/plugins/backup/backup.min.js +1 -1
- package/es2018/plugins/button-generator/button-generator.min.js +1 -1
- package/es2018/plugins/change-case/change-case.min.js +1 -1
- package/es2018/plugins/chart/chart.min.css +1 -0
- package/es2018/plugins/chart/chart.min.js +20 -0
- package/es2018/plugins/color-picker/color-picker.min.js +1 -1
- package/es2018/plugins/emoji/emoji.min.js +1 -1
- package/es2018/plugins/export-docs/export-docs.min.js +1 -1
- package/es2018/plugins/finder/finder.min.js +1 -1
- package/es2018/plugins/google-maps/google-maps.min.js +1 -1
- package/es2018/plugins/google-search/google-search.min.js +1 -1
- package/es2018/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2018/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2018/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2018/plugins/keyboard/keyboard.min.js +1 -1
- package/es2018/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2018/plugins/page-break/page-break.min.js +1 -1
- package/es2018/plugins/paste-code/paste-code.min.js +1 -1
- package/es2018/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2018/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2018/plugins/style/style.min.js +1 -1
- package/es2018/plugins/templates/templates.min.js +1 -1
- package/es2018/plugins/todo-list/todo-list.min.js +1 -1
- package/es2018/plugins/translate/translate.min.js +1 -1
- package/es2018/plugins/tune-block/tune-block.min.js +2 -2
- package/es2021/jodit.css +2 -2
- package/es2021/jodit.fat.min.css +1 -1
- package/es2021/jodit.fat.min.js +51 -14
- package/es2021/jodit.js +1139 -150
- package/es2021/jodit.min.css +1 -1
- package/es2021/jodit.min.js +78 -53
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021/plugins/backup/backup.css +1 -1
- package/es2021/plugins/backup/backup.js +1 -1
- package/es2021/plugins/backup/backup.min.js +1 -1
- package/es2021/plugins/button-generator/button-generator.css +1 -1
- package/es2021/plugins/button-generator/button-generator.js +1 -1
- package/es2021/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021/plugins/change-case/change-case.js +1 -1
- package/es2021/plugins/change-case/change-case.min.js +1 -1
- package/es2021/plugins/chart/chart.css +173 -0
- package/es2021/plugins/chart/chart.js +1424 -0
- package/es2021/plugins/chart/chart.min.css +1 -0
- package/es2021/plugins/chart/chart.min.js +20 -0
- package/es2021/plugins/color-picker/color-picker.css +1 -1
- package/es2021/plugins/color-picker/color-picker.js +1 -1
- package/es2021/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021/plugins/emoji/emoji.css +1 -1
- package/es2021/plugins/emoji/emoji.js +1 -1
- package/es2021/plugins/emoji/emoji.min.js +1 -1
- package/es2021/plugins/export-docs/export-docs.js +1 -1
- package/es2021/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021/plugins/finder/finder.css +1 -1
- package/es2021/plugins/finder/finder.js +1 -1
- package/es2021/plugins/finder/finder.min.js +1 -1
- package/es2021/plugins/google-maps/google-maps.css +1 -1
- package/es2021/plugins/google-maps/google-maps.js +1 -1
- package/es2021/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021/plugins/google-search/google-search.js +1 -1
- package/es2021/plugins/google-search/google-search.min.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2021/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2021/plugins/keyboard/keyboard.css +1 -1
- package/es2021/plugins/keyboard/keyboard.js +1 -1
- package/es2021/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021/plugins/page-break/page-break.js +1 -1
- package/es2021/plugins/page-break/page-break.min.js +1 -1
- package/es2021/plugins/paste-code/paste-code.css +1 -1
- package/es2021/plugins/paste-code/paste-code.js +1 -1
- package/es2021/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021/plugins/style/style.css +1 -1
- package/es2021/plugins/style/style.js +1 -1
- package/es2021/plugins/style/style.min.js +1 -1
- package/es2021/plugins/templates/templates.css +1 -1
- package/es2021/plugins/templates/templates.js +1 -1
- package/es2021/plugins/templates/templates.min.js +1 -1
- package/es2021/plugins/todo-list/todo-list.css +1 -1
- package/es2021/plugins/todo-list/todo-list.js +1 -1
- package/es2021/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021/plugins/translate/translate.css +1 -1
- package/es2021/plugins/translate/translate.js +1 -1
- package/es2021/plugins/translate/translate.min.js +1 -1
- package/es2021/plugins/tune-block/tune-block.css +1 -1
- package/es2021/plugins/tune-block/tune-block.js +2 -1
- package/es2021/plugins/tune-block/tune-block.min.js +2 -2
- package/es2021.en/jodit.css +2 -2
- package/es2021.en/jodit.fat.min.css +1 -1
- package/es2021.en/jodit.fat.min.js +54 -17
- package/es2021.en/jodit.js +1139 -150
- package/es2021.en/jodit.min.css +1 -1
- package/es2021.en/jodit.min.js +78 -53
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es2021.en/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.css +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.js +1 -1
- package/es2021.en/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es2021.en/plugins/backup/backup.css +1 -1
- package/es2021.en/plugins/backup/backup.js +1 -1
- package/es2021.en/plugins/backup/backup.min.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.css +1 -1
- package/es2021.en/plugins/button-generator/button-generator.js +1 -1
- package/es2021.en/plugins/button-generator/button-generator.min.js +1 -1
- package/es2021.en/plugins/change-case/change-case.js +1 -1
- package/es2021.en/plugins/change-case/change-case.min.js +1 -1
- package/es2021.en/plugins/chart/chart.css +173 -0
- package/es2021.en/plugins/chart/chart.js +1424 -0
- package/es2021.en/plugins/chart/chart.min.css +1 -0
- package/es2021.en/plugins/chart/chart.min.js +20 -0
- package/es2021.en/plugins/color-picker/color-picker.css +1 -1
- package/es2021.en/plugins/color-picker/color-picker.js +1 -1
- package/es2021.en/plugins/color-picker/color-picker.min.js +1 -1
- package/es2021.en/plugins/emoji/emoji.css +1 -1
- package/es2021.en/plugins/emoji/emoji.js +1 -1
- package/es2021.en/plugins/emoji/emoji.min.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.js +1 -1
- package/es2021.en/plugins/export-docs/export-docs.min.js +1 -1
- package/es2021.en/plugins/finder/finder.css +1 -1
- package/es2021.en/plugins/finder/finder.js +1 -1
- package/es2021.en/plugins/finder/finder.min.js +1 -1
- package/es2021.en/plugins/google-maps/google-maps.css +1 -1
- package/es2021.en/plugins/google-maps/google-maps.js +1 -1
- package/es2021.en/plugins/google-maps/google-maps.min.js +1 -1
- package/es2021.en/plugins/google-search/google-search.js +1 -1
- package/es2021.en/plugins/google-search/google-search.min.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es2021.en/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es2021.en/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es2021.en/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es2021.en/plugins/keyboard/keyboard.css +1 -1
- package/es2021.en/plugins/keyboard/keyboard.js +1 -1
- package/es2021.en/plugins/keyboard/keyboard.min.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.js +1 -1
- package/es2021.en/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es2021.en/plugins/page-break/page-break.js +1 -1
- package/es2021.en/plugins/page-break/page-break.min.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.css +1 -1
- package/es2021.en/plugins/paste-code/paste-code.js +1 -1
- package/es2021.en/plugins/paste-code/paste-code.min.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es2021.en/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.js +1 -1
- package/es2021.en/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es2021.en/plugins/style/style.css +1 -1
- package/es2021.en/plugins/style/style.js +1 -1
- package/es2021.en/plugins/style/style.min.js +1 -1
- package/es2021.en/plugins/templates/templates.css +1 -1
- package/es2021.en/plugins/templates/templates.js +1 -1
- package/es2021.en/plugins/templates/templates.min.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.css +1 -1
- package/es2021.en/plugins/todo-list/todo-list.js +1 -1
- package/es2021.en/plugins/todo-list/todo-list.min.js +1 -1
- package/es2021.en/plugins/translate/translate.css +1 -1
- package/es2021.en/plugins/translate/translate.js +1 -1
- package/es2021.en/plugins/translate/translate.min.js +1 -1
- package/es2021.en/plugins/tune-block/tune-block.css +1 -1
- package/es2021.en/plugins/tune-block/tune-block.js +2 -1
- package/es2021.en/plugins/tune-block/tune-block.min.js +2 -2
- package/es5/jodit.css +3 -3
- package/es5/jodit.fat.min.css +1 -1
- package/es5/jodit.fat.min.js +2 -2
- package/es5/jodit.js +1521 -153
- package/es5/jodit.min.css +3 -3
- package/es5/jodit.min.js +2 -2
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.css +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.js +1 -1
- package/es5/plugins/ai-assistant-pro/ai-assistant-pro.min.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.css +1 -1
- package/es5/plugins/autocomplete/autocomplete.js +1 -1
- package/es5/plugins/autocomplete/autocomplete.min.js +1 -1
- package/es5/plugins/backup/backup.css +1 -1
- package/es5/plugins/backup/backup.js +1 -1
- package/es5/plugins/backup/backup.min.js +1 -1
- package/es5/plugins/button-generator/button-generator.css +1 -1
- package/es5/plugins/button-generator/button-generator.js +1 -1
- package/es5/plugins/button-generator/button-generator.min.js +1 -1
- package/es5/plugins/change-case/change-case.js +1 -1
- package/es5/plugins/change-case/change-case.min.js +1 -1
- package/es5/plugins/chart/chart.css +173 -0
- package/es5/plugins/chart/chart.js +1661 -0
- package/es5/plugins/chart/chart.min.css +1 -0
- package/es5/plugins/chart/chart.min.js +8 -0
- package/es5/plugins/color-picker/color-picker.css +1 -1
- package/es5/plugins/color-picker/color-picker.js +1 -1
- package/es5/plugins/color-picker/color-picker.min.js +1 -1
- package/es5/plugins/emoji/emoji.css +1 -1
- package/es5/plugins/emoji/emoji.js +1 -1
- package/es5/plugins/emoji/emoji.min.js +1 -1
- package/es5/plugins/export-docs/export-docs.js +1 -1
- package/es5/plugins/export-docs/export-docs.min.js +1 -1
- package/es5/plugins/finder/finder.css +1 -1
- package/es5/plugins/finder/finder.js +1 -1
- package/es5/plugins/finder/finder.min.js +1 -1
- package/es5/plugins/google-maps/google-maps.css +1 -1
- package/es5/plugins/google-maps/google-maps.js +1 -1
- package/es5/plugins/google-maps/google-maps.min.js +1 -1
- package/es5/plugins/google-search/google-search.js +1 -1
- package/es5/plugins/google-search/google-search.min.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.js +1 -1
- package/es5/plugins/highlight-signature/highlight-signature.min.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.css +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.js +1 -1
- package/es5/plugins/iframe-editor/iframe-editor.min.js +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.css +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.js +1 -1
- package/es5/plugins/image-editor-pro/image-editor-pro.min.js +1 -1
- package/es5/plugins/keyboard/keyboard.css +1 -1
- package/es5/plugins/keyboard/keyboard.js +1 -1
- package/es5/plugins/keyboard/keyboard.min.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.js +1 -1
- package/es5/plugins/mobile-view/mobile-view.min.js +1 -1
- package/es5/plugins/page-break/page-break.js +1 -1
- package/es5/plugins/page-break/page-break.min.js +1 -1
- package/es5/plugins/paste-code/paste-code.css +1 -1
- package/es5/plugins/paste-code/paste-code.js +1 -1
- package/es5/plugins/paste-code/paste-code.min.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.js +1 -1
- package/es5/plugins/paste-from-word/paste-from-word.min.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.js +1 -1
- package/es5/plugins/show-blocks/show-blocks.min.js +1 -1
- package/es5/plugins/style/style.css +1 -1
- package/es5/plugins/style/style.js +1 -1
- package/es5/plugins/style/style.min.js +1 -1
- package/es5/plugins/templates/templates.css +1 -1
- package/es5/plugins/templates/templates.js +1 -1
- package/es5/plugins/templates/templates.min.js +1 -1
- package/es5/plugins/todo-list/todo-list.css +1 -1
- package/es5/plugins/todo-list/todo-list.js +1 -1
- package/es5/plugins/todo-list/todo-list.min.js +1 -1
- package/es5/plugins/translate/translate.css +1 -1
- package/es5/plugins/translate/translate.js +1 -1
- package/es5/plugins/translate/translate.min.js +1 -1
- package/es5/plugins/tune-block/tune-block.css +1 -1
- package/es5/plugins/tune-block/tune-block.js +2 -1
- package/es5/plugins/tune-block/tune-block.min.js +2 -2
- package/es5/polyfills.fat.min.js +1 -1
- package/es5/polyfills.js +1 -1
- package/es5/polyfills.min.js +1 -1
- package/esm/config.d.ts +27 -1
- package/esm/plugins/all.js +1 -1
- package/esm/plugins/chart/assets/chart.svg.js +1 -0
- package/esm/plugins/chart/chart.d.ts +56 -0
- package/esm/plugins/chart/chart.js +1 -0
- package/esm/plugins/chart/config.d.ts +33 -0
- package/esm/plugins/chart/config.js +1 -0
- package/esm/plugins/chart/helpers.d.ts +22 -0
- package/esm/plugins/chart/helpers.js +1 -0
- package/esm/plugins/chart/interface.d.ts +34 -0
- package/esm/plugins/chart/interface.js +0 -0
- package/esm/plugins/chart/render/bar.d.ts +8 -0
- package/esm/plugins/chart/render/bar.js +1 -0
- package/esm/plugins/chart/render/common.d.ts +40 -0
- package/esm/plugins/chart/render/common.js +1 -0
- package/esm/plugins/chart/render/index.d.ts +7 -0
- package/esm/plugins/chart/render/index.js +1 -0
- package/esm/plugins/chart/render/line.d.ts +7 -0
- package/esm/plugins/chart/render/line.js +1 -0
- package/esm/plugins/chart/render/pie.d.ts +7 -0
- package/esm/plugins/chart/render/pie.js +1 -0
- package/esm/plugins/chart/render/radar.d.ts +7 -0
- package/esm/plugins/chart/render/radar.js +1 -0
- package/esm/plugins/chart/ui/editor/editor.d.ts +52 -0
- package/esm/plugins/chart/ui/editor/editor.js +13 -0
- package/esm/plugins/tune-block/config.js +1 -1
- package/package.json +1 -1
- package/types/config.d.ts +27 -1
- package/types/plugins/chart/chart.d.ts +56 -0
- package/types/plugins/chart/config.d.ts +33 -0
- package/types/plugins/chart/helpers.d.ts +22 -0
- package/types/plugins/chart/interface.d.ts +34 -0
- package/types/plugins/chart/render/bar.d.ts +8 -0
- package/types/plugins/chart/render/common.d.ts +40 -0
- package/types/plugins/chart/render/index.d.ts +7 -0
- package/types/plugins/chart/render/line.d.ts +7 -0
- package/types/plugins/chart/render/pie.d.ts +7 -0
- package/types/plugins/chart/render/radar.d.ts +7 -0
- package/types/plugins/chart/ui/editor/editor.d.ts +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.jodit-ui-chart-editor{display:flex;flex-direction:column;gap:var(--jd-padding-default);padding:var(--jd-padding-default)}.jodit-ui-chart-editor__preview{background:var(--jd-color-background-light-gray);border:1px solid var(--jd-color-border);border-radius:var(--jd-border-radius-default);overflow:hidden;padding:var(--jd-padding-default);position:relative}.jodit-ui-chart-editor__preview svg{display:block;margin:0 auto;max-height:240px}.jodit-ui-chart-editor__fields{display:grid;gap:var(--jd-padding-default);grid-template-columns:1fr 1fr}.jodit-ui-chart-editor__colors{align-items:flex-start;display:flex;flex-direction:column;gap:calc(var(--jd-padding-default)/2);left:calc(var(--jd-padding-default)/2);position:absolute;top:calc(var(--jd-padding-default)/2)}.jodit-ui-chart-editor__color-field{align-items:center;cursor:pointer;display:inline-flex;gap:calc(var(--jd-padding-default)/2)}.jodit-ui-chart-editor__color-label{color:var(--jd-color-label);font-size:var(--jd-font-size-small);line-height:1}.jodit-ui-chart-editor__transparent{background:conic-gradient(var(--jd-color-border) 25%,var(--jd-color-white) 0 50%,var(--jd-color-border) 0 75%,var(--jd-color-white) 0) 0 0 /8px 8px;border:1px solid var(--jd-color-border);border-radius:50%;cursor:pointer;height:22px;padding:0;width:22px}.jodit-ui-chart-editor__transparent_active{border-color:var(--jd-color-blue);box-shadow:0 0 0 2px var(--jd-color-blue)}.jodit-ui-chart-editor__color-input{background:transparent;border:0;border-radius:50%;cursor:pointer;height:22px;padding:0;width:22px}.jodit-ui-chart-editor__color-input::-webkit-color-swatch-wrapper{padding:0}.jodit-ui-chart-editor__color-input::-webkit-color-swatch{border:1px solid var(--jd-color-border);border-radius:50%}.jodit-ui-chart-editor__color-input::-moz-color-swatch{border:1px solid var(--jd-color-border);border-radius:50%}.jodit-ui-chart-editor__points-header{align-items:center;display:flex;gap:var(--jd-padding-default)}.jodit-ui-chart-editor__points-title{font-weight:700}.jodit-ui-chart-editor__summary{color:var(--jd-color-label);flex:1;font-size:var(--jd-font-size-small)}.jodit-ui-chart-editor__points{display:flex;flex-direction:column;gap:calc(var(--jd-padding-default)/2)}.jodit-ui-chart-editor__point{align-items:end;display:grid;gap:calc(var(--jd-padding-default)/2);grid-template-columns:auto 1fr 1fr auto auto;padding:2px 0}.jodit-ui-chart-editor__point .jodit-ui-input{margin-bottom:0}.jodit-ui-chart-editor__point .jodit-ui-button{height:var(--jd-input-height);width:var(--jd-input-height)}.jodit-ui-chart-editor__point_dragging{opacity:.4}.jodit-ui-chart-editor__point_drop_before{box-shadow:0 -2px 0 0 var(--jd-color-blue)}.jodit-ui-chart-editor__point_drop_after{box-shadow:0 2px 0 0 var(--jd-color-blue)}.jodit-ui-chart-editor__point-grip{background-image:radial-gradient(var(--jd-color-gray) 1.5px,transparent 1.5px);background-position:0 0;background-size:6px 6px;cursor:grab;height:var(--jd-input-height);opacity:.6;width:12px}.jodit-ui-chart-editor__point-grip:hover{opacity:1}.jodit-ui-chart-editor__point-color{background:transparent;border:0;border-radius:var(--jd-border-radius-default);box-sizing:border-box;cursor:pointer;height:var(--jd-input-height);padding:0;width:44px}.jodit-ui-chart-editor__point-color::-webkit-color-swatch-wrapper{padding:0}.jodit-ui-chart-editor__point-color::-webkit-color-swatch{border:0;border-radius:var(--jd-border-radius-default)}.jodit-ui-chart-editor__point-color::-moz-color-swatch{border:0;border-radius:var(--jd-border-radius-default)}.jodit-wysiwyg figure.jodit-chart{cursor:pointer;display:block;margin:0 0 1em;max-width:100%;user-select:none}.jodit-wysiwyg figure.jodit-chart svg{display:block;height:auto;width:100%}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* jodit-pro - PRO Version of Jodit Editor
|
|
3
|
+
* Author: Chupurnov Valerii <chupurnov@gmail.com>
|
|
4
|
+
* Version: v4.18.7
|
|
5
|
+
* Url: https://xdsoft.net/jodit/pro/
|
|
6
|
+
* License(s): SEE LICENSE IN LICENSE.md
|
|
7
|
+
*/
|
|
8
|
+
!function(t,e){if("object"==typeof exports&&"object"==typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var n=e();for(var r in n)("object"==typeof exports?exports:t)[r]=n[r]}}(self,function(){return(self.webpackChunkjodit_pro=self.webpackChunkjodit_pro||[]).push([[418],{97467:function(t){t.exports='<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5" stroke-linecap="round" stroke-linejoin="round"> <g fill="none"> <path d="M5 20v-7M12 20V4M19 20v-5M3 20h18"/> </g> </svg>'},57722:function(t,e,n){"use strict";n.r(e),n.d(e,{Chart:function(){return _}});var r=n(82749),i=n(56075),o=n(11886),a=n(31635);n(88902);var l=n(90142),s=n(99131),h=n(65478),u=n(2748),c=n(4510),d=n(5700),p=n(50911),f=n(10830),m=n(56917),g=n(78584),$=n(21491),x=n(2692);class _ extends p.Plugin{afterInit(t){t.e.on("openChartEditor",this.openEditor).on("removeChart",this.removeChart).on("isChartEditorOpened",()=>{var t;return!!(null==(t=this.__dialog)?void 0:t.isOpened)}),t.registerCommand("insertChart",()=>(this.openEditor(),!1)),this.__decorateAll()}beforeDestruct(){var t,e;this.closePopup(),null==(t=this.__popup)||t.destruct(),null==(e=this.__dialog)||e.destruct()}openEditor(t){let e=(0,s.findChart)(this.j,null!=t?t:null),n=e&&(0,s.readChartData)(this.j,e)||(0,s.defaultChartData)(this.j);this.closePopup(),this.j.s.save();let r=this.__getDialog(),i=this.__editor;i&&(i.setData(n),r.setHeader(this.j.i18n(e?"Edit chart":"Insert chart")).setFooter([(0,f.Button)(r,"cancel","Cancel","default").onAction(()=>{r.close()}),(0,f.Button)(r,"ok",e?"Save":"Insert","primary").onAction(()=>{this.__save(e,i.getData()),r.close()})]).open())}removeChart(t){let e=(0,s.findChart)(this.j,null!=t?t:this.__target);this.closePopup(),e&&(this.j.s.setCursorAfter(e),u.Dom.safeRemove(e),this.j.synchronizeValues())}__save(t,e){t?(0,s.applyChartData)(this.j,t,e):(t=(0,s.createChart)(this.j,e),this.j.s.restore(),this.j.s.insertNode(t,!1,!1)),this.j.s.setCursorAfter(t),this.j.synchronizeValues()}__getDialog(){if(!this.__dialog){let{dialog:t}=this.j.o.chart;this.__dialog=new g.Dialog({language:this.j.o.language,theme:this.j.o.theme,shadowRoot:this.j.o.shadowRoot,events:this.j.o.events}),this.__editor=new l.UIChartEditor(this.j),this.__dialog.setContent(this.__editor).setSize(t.width,t.height),this.__dialog.e.on("beforeClose",()=>{this.j.s.restore()})}return this.__dialog}onClick(t){let e=(0,s.findChart)(this.j,t.target);e?this.openPopup(e):this.closePopup()}onDblClick(t){let e=(0,s.findChart)(this.j,t.target);e&&this.openEditor(e)}onOutsideClick(){this.closePopup()}openPopup(t){if(this.j.o.readonly||!this.j.o.chart.popup.length)return;this.__popup||(this.__popup=new m.Popup(this.j,!1),this.__toolbar=(0,$.makeCollection)(this.j,this.__popup));let e=this.__popup,n=this.__toolbar;n&&(this.__target=t,n.build(this.j.o.chart.popup,t),e.setContent(n.container),e.isOpened?e.updatePosition():e.open(()=>(0,d.position)(t,this.j)))}closePopup(){var t;this.__target=null,null==(t=this.__popup)||t.close()}onChange(){this.__decorateAll(),this.__target&&!this.j.editor.contains(this.__target)&&this.closePopup()}__decorateAll(){let t=!1;(0,c.toArray)(this.j.editor.querySelectorAll(`figure[${s.CHART_ATTR}]`)).forEach(e=>{(0,s.isChartElement)(e,this.j.o.chart.className)&&((0,s.decorateChart)(this.j,e),t=this.__syncResized(e)||t,t=this.__renderMissing(e)||t)}),t&&this.j.synchronizeValues()}__renderMissing(t){if(t.querySelector("svg"))return!1;let e=(0,s.readChartData)(this.j,t);return!!e&&((0,s.applyChartData)(this.j,t,e),!0)}__syncResized(t){let e=(0,s.readChartData)(this.j,t);if(!e)return!1;let n=(0,s.pixels)(t.style.width)||e.width,r=(0,s.pixels)(t.style.height)||e.height;return(n!==e.width||r!==e.height)&&((0,s.applyChartData)(this.j,t,(0,o._)((0,i._)({},e),{width:n,height:r})),!0)}constructor(...t){super(...t),(0,r._)(this,"buttons",[{name:"chart",group:"insert"}]),(0,r._)(this,"__dialog",null),(0,r._)(this,"__editor",null),(0,r._)(this,"__popup",null),(0,r._)(this,"__toolbar",null),(0,r._)(this,"__target",null)}}(0,r._)(_,"requires",["license"]),(0,a.__decorate)([h.autobind],_.prototype,"openEditor",null),(0,a.__decorate)([h.autobind],_.prototype,"removeChart",null),(0,a.__decorate)([(0,h.watch)(":click")],_.prototype,"onClick",null),(0,a.__decorate)([(0,h.watch)(":dblclick")],_.prototype,"onDblClick",null),(0,a.__decorate)([(0,h.watch)(":outsideClick")],_.prototype,"onOutsideClick",null),(0,a.__decorate)([(0,h.watch)([":change",":afterSetMode"]),(0,h.debounce)()],_.prototype,"onChange",null),x.JoditPro.plugins.add("chart",_)},88902:function(t,e,n){"use strict";var r=n(97467),i=n.n(r),o=n(6441),a=n(12153);o.Config.prototype.chart={className:"jodit-chart",types:["bar","horizontalBar","line","area","pie","donut","radar"],defaultType:"bar",defaultTitle:"Sample chart",defaultPoints:[{label:"Item 1",value:10},{label:"Item 2",value:20},{label:"Item 3",value:15},{label:"Item 4",value:25},{label:"Item 5",value:30}],colors:["#2a78d6","#eb6834","#1baf7a","#eda100","#e87ba4","#008300","#6250d6","#e34948"],defaultBackground:"#ffffff",defaultTextColor:"#111827",defaultBorderColor:"#e5e7eb",allowChangeBackground:!0,allowChangeTextColor:!0,allowChangeBorderColor:!0,fontFamily:"-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif",width:600,height:400,popup:["chartEdit","chartRemove"],dialog:{width:620,height:720}},o.Config.prototype.controls.chart={tooltip:"Insert chart",icon:"chart",isActive(t){return!!t.e.fire("isChartEditorOpened")},exec(t){t.e.fire("openChartEditor")}},o.Config.prototype.controls.chartEdit={tooltip:"Edit chart",icon:"pencil",exec(t,e){t.e.fire("openChartEditor",e)}},o.Config.prototype.controls.chartRemove={tooltip:"Delete chart",icon:"bin",exec(t,e){t.e.fire("removeChart",e)}},o.Config.prototype.allowResizeTags=new Set([...o.Config.prototype.allowResizeTags,"figure"]),a.Icon.set("chart",i())},99131:function(t,e,n){"use strict";n.d(e,{applyChartData:function(){return x},cloneChartData:function(){return d},createChart:function(){return _},decorateChart:function(){return $},defaultChartData:function(){return g},findChart:function(){return f},isChartElement:function(){return p},normalizePoint:function(){return c},pixels:function(){return v},readChartData:function(){return m}});var r=n(56075),i=n(11886),o=n(75787),a=n(2748),l=n(70799),s=n(29960);let h="data-jodit-chart",u=["bar","horizontalBar","line","area","pie","donut","radar"];function c(t){var e;let n=Number(t.value),r={label:String(null!=(e=t.label)?e:""),value:isFinite(n)?n:0};return t.color&&(r.color=String(t.color)),r}function d(t){return(0,i._)((0,r._)({},t),{points:t.points.map(t=>(0,r._)({},t))})}function p(t,e){return a.Dom.isTag(t,"figure")&&(t.hasAttribute(h)||t.classList.contains(e))}function f(t,e){return a.Dom.closest(e,e=>p(e,t.o.chart.className),t.editor)}function m(t,e){let n=(0,s.attr)(e,h);if(!n)return null;try{var r,i,o,a;let e,s;return r=JSON.parse(n),i=g(t),e=Number(r.width),s=Number(r.height),{type:(a=r.type,u.includes(a))?r.type:i.type,title:String(null!=(o=r.title)?o:i.title),points:Array.isArray(r.points)?r.points.map(c):i.points.map(c),width:e>0?Math.round(e):i.width,height:s>0?Math.round(s):i.height,background:(0,l.isString)(r.background)?r.background:i.background,textColor:(0,l.isString)(r.textColor)?r.textColor:i.textColor,borderColor:(0,l.isString)(r.borderColor)?r.borderColor:i.borderColor}}catch(t){return null}}function g(t){let{chart:e}=t.o;return{type:e.defaultType,title:e.defaultTitle,points:e.defaultPoints.map(c),width:e.width,height:e.height,background:e.defaultBackground,textColor:e.defaultTextColor,borderColor:e.defaultBorderColor}}function $(t,e){(0,s.attr)(e,{class:t.o.chart.className,contenteditable:!1})}function x(t,e,n){let{chart:r}=t.o;$(t,e),(0,s.attr)(e,h,JSON.stringify(n)),e.style.width=n.width+"px",e.style.maxWidth="100%",e.style.height="",e.innerHTML=(0,o.renderChart)(n,{colors:r.colors,fontFamily:r.fontFamily})}function _(t,e){let n=t.createInside.element("figure");return x(t,n,e),n}function v(t){return/^\d+(\.\d+)?px$/.test(t)?Math.round(parseFloat(t)):0}n.d(e,["CHART_ATTR",0,h,"CHART_TYPE_TITLES",0,{bar:"Bar chart",horizontalBar:"Horizontal bar",line:"Line chart",area:"Area chart",pie:"Pie chart",donut:"Donut chart",radar:"Radar chart"}])},93054:function(t,e,n){"use strict";n.d(e,{renderBar:function(){return i},renderHorizontalBar:function(){return o}});var r=n(36838);function i(t,e){let n=(0,r.ticks)(t.points),i=n[n.length-1],o=Math.max(...n.map(t=>(0,r.textWidth)((0,r.formatValue)(t),12))),a=(0,r.plotBox)(t,{x:o+12,y:28,width:0,height:28}),l=(0,r.chartTheme)(t),s=[(0,r.svgOpen)(t,e)];n.forEach(t=>{let e=a.y+a.height-t/i*a.height;s.push(`<line x1="${(0,r.num)(a.x)}" y1="${(0,r.num)(e)}" x2="${(0,r.num)(a.x+a.width)}" y2="${(0,r.num)(e)}" stroke="${l.grid}" stroke-dasharray="3 3"/>`,`<text x="${(0,r.num)(a.x-8)}" y="${(0,r.num)(e+4)}" font-size="12" fill="${l.inkMuted}" text-anchor="end">${(0,r.esc)((0,r.formatValue)(t))}</text>`)});let h=t.points.length||1,u=a.width/h,c=Math.max(2,.6*u),d=a.y+a.height;return t.points.forEach((t,n)=>{let o=(0,r.pointColor)(t,n,e),h=(t.value>0?t.value:0)/i*a.height,p=a.x+n*u+(u-c)/2,f=p+c/2;s.push(`<path d="${(0,r.roundedBarPath)(p,d-h,c,h,4,"top")}" fill="${o}"><title>${(0,r.esc)(t.label)}: ${(0,r.esc)((0,r.formatValue)(t.value))}</title></path>`,(0,r.valuePill)(f,d-h-18,t.value,o,l),`<text x="${(0,r.num)(f)}" y="${(0,r.num)(d+20)}" font-size="13" fill="${l.inkMuted}" text-anchor="middle">${(0,r.esc)((0,r.truncate)(t.label))}</text>`)}),s.push(`<line x1="${(0,r.num)(a.x)}" y1="${(0,r.num)(d)}" x2="${(0,r.num)(a.x+a.width)}" y2="${(0,r.num)(d)}" stroke="${l.border}"/>`,(0,r.svgClose)()),s.join("")}function o(t,e){let n=(0,r.ticks)(t.points),i=n[n.length-1],o=Math.min(160,Math.max(...t.points.map(t=>(0,r.textWidth)((0,r.truncate)(t.label),13)))),a=(0,r.plotBox)(t,{x:o+12,y:8,width:56,height:28}),l=(0,r.chartTheme)(t),s=[(0,r.svgOpen)(t,e)],h=a.y+a.height;n.forEach(t=>{let e=a.x+t/i*a.width;s.push(`<line x1="${(0,r.num)(e)}" y1="${(0,r.num)(a.y)}" x2="${(0,r.num)(e)}" y2="${(0,r.num)(h)}" stroke="${l.grid}" stroke-dasharray="3 3"/>`,`<text x="${(0,r.num)(e)}" y="${(0,r.num)(h+18)}" font-size="12" fill="${l.inkMuted}" text-anchor="middle">${(0,r.esc)((0,r.formatValue)(t))}</text>`)});let u=t.points.length||1,c=a.height/u,d=Math.max(2,.6*c);return t.points.forEach((t,n)=>{let o=(0,r.pointColor)(t,n,e),h=(t.value>0?t.value:0)/i*a.width,u=a.y+n*c+(c-d)/2,p=u+d/2;s.push(`<path d="${(0,r.roundedBarPath)(a.x,u,h,d,4,"right")}" fill="${o}"><title>${(0,r.esc)(t.label)}: ${(0,r.esc)((0,r.formatValue)(t.value))}</title></path>`,(0,r.valuePill)(a.x+h+12+(0,r.textWidth)((0,r.formatValue)(t.value),13)/2+8,p,t.value,o,l),`<text x="${(0,r.num)(a.x-12)}" y="${(0,r.num)(p+4.5)}" font-size="13" fill="${l.inkMuted}" text-anchor="end">${(0,r.esc)((0,r.truncate)(t.label))}</text>`)}),s.push(`<line x1="${(0,r.num)(a.x)}" y1="${(0,r.num)(a.y)}" x2="${(0,r.num)(a.x)}" y2="${(0,r.num)(h)}" stroke="${l.border}"/>`,(0,r.svgClose)()),s.join("")}},36838:function(t,e,n){"use strict";n.d(e,{chartTheme:function(){return a},esc:function(){return l},formatValue:function(){return h},num:function(){return s},plotBox:function(){return f},pointColor:function(){return c},roundedBarPath:function(){return $},svgClose:function(){return g},svgOpen:function(){return m},textWidth:function(){return p},ticks:function(){return d},truncate:function(){return u},valuePill:function(){return x}});let r="#ffffff",i="#111827";function o(t,e){let n=/^#?([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(t);if(!n)return t;let[r,i,o]=[n[1],n[2],n[3]].map(t=>parseInt(t,16));return`rgba(${r}, ${i}, ${o}, ${e})`}function a(t){var e;let n=t.textColor||i,a=null!=(e=t.background)?e:r;return{surface:a||r,transparent:!a,border:t.borderColor||o(n,.12),grid:o(n,.12),ink:n,inkSecondary:o(n,.8),inkMuted:o(n,.6)}}function l(t){return String(t).replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""")}function s(t){return String(Math.round(100*t)/100)}function h(t){return s(t).replace(/\B(?=(\d{3})+(?!\d))/g," ")}function u(t,e=14){return t.length>e?t.slice(0,e-1)+"…":t}function c(t,e,n){let{colors:r}=n;return t.color||r[e%r.length]||"#2a78d6"}function d(t){let e=Math.max(0,...t.map(t=>t.value>0?t.value:0)),n=function(t){var e;if(t<=0)return 1;let n=Math.pow(10,Math.floor(Math.log10(t))),r=t/n;return(null!=(e=[1,2,2.5,5,10].find(t=>t>=r))?e:10)*n}((e||1)/4),r=Math.max(n,Math.ceil(e/n)*n),i=[];for(let t=0;t<=r+n/2;t+=n)i.push(Math.round(1e3*t)/1e3);return i}function p(t,e){return t.length*e*.58}function f(t,e){let n=24+40*!!t.title+e.y;return{x:24+e.x,y:n,width:Math.max(10,t.width-48-e.x-e.width),height:Math.max(10,t.height-n-24-e.height)}}function m(t,e){let n=a(t),r=t.title?` aria-label="${l(t.title)}"`:"",i=n.transparent?"":`<rect x="0.5" y="0.5" width="${t.width-1}" height="${t.height-1}" rx="12" fill="${n.surface}" stroke="${n.border}"/>`;return`<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 ${t.width} ${t.height}" width="100%" role="img"${r} font-family="${l(e.fontFamily)}">`+i+(t.title?`<text x="24" y="44" font-size="20" font-weight="600" fill="${n.ink}">${l(t.title)}</text>`:"")}function g(){return"</svg>"}function $(t,e,n,r,i,o){if(r<=0||n<=0)return"";let a=Math.min(i,n/2,r/2);return"top"===o?`M${s(t)},${s(e+r)}V${s(e+a)}a${s(a)},${s(a)} 0 0 1 ${s(a)},${s(-a)}h${s(n-2*a)}a${s(a)},${s(a)} 0 0 1 ${s(a)},${s(a)}V${s(e+r)}Z`:`M${s(t)},${s(e)}H${s(t+n-a)}a${s(a)},${s(a)} 0 0 1 ${s(a)},${s(a)}v${s(r-2*a)}a${s(a)},${s(a)} 0 0 1 ${s(-a)},${s(a)}H${s(t)}Z`}function x(t,e,n,r,i){let o=h(n),a=p(o,13)+16;return`<rect x="${s(t-a/2)}" y="${s(e-11)}" width="${s(a)}" height="22" rx="6" fill="${r}" fill-opacity="0.14"/><text x="${s(t)}" y="${s(e+4.5)}" font-size="13" font-weight="600" fill="${i.inkSecondary}" text-anchor="middle">${l(o)}</text>`}n.d(e,["DEFAULT_BACKGROUND",0,r,"DEFAULT_TEXT_COLOR",0,i])},75787:function(t,e,n){"use strict";n.d(e,{renderChart:function(){return l}});var r=n(93054),i=n(73077),o=n(83349),a=n(67407);function l(t,e){switch(t.type){case"horizontalBar":return(0,r.renderHorizontalBar)(t,e);case"line":return(0,i.renderLine)(t,e,!1);case"area":return(0,i.renderLine)(t,e,!0);case"radar":return(0,a.renderRadar)(t,e);case"pie":return(0,o.renderPie)(t,e,!1);case"donut":return(0,o.renderPie)(t,e,!0);default:return(0,r.renderBar)(t,e)}}},73077:function(t,e,n){"use strict";n.d(e,{renderLine:function(){return i}});var r=n(36838);function i(t,e,n){let i=(0,r.ticks)(t.points),o=i[i.length-1],a=Math.max(...i.map(t=>(0,r.textWidth)((0,r.formatValue)(t),12))),l=(0,r.plotBox)(t,{x:a+12,y:28,width:0,height:28}),s=(0,r.chartTheme)(t),h=[(0,r.svgOpen)(t,e)],u=l.y+l.height;i.forEach(t=>{let e=u-t/o*l.height;h.push(`<line x1="${(0,r.num)(l.x)}" y1="${(0,r.num)(e)}" x2="${(0,r.num)(l.x+l.width)}" y2="${(0,r.num)(e)}" stroke="${s.grid}" stroke-dasharray="3 3"/>`,`<text x="${(0,r.num)(l.x-8)}" y="${(0,r.num)(e+4)}" font-size="12" fill="${s.inkMuted}" text-anchor="end">${(0,r.esc)((0,r.formatValue)(t))}</text>`)});let c=t.points.length||1,d=l.width/c,p=t.points.length?(0,r.pointColor)(t.points[0],0,e):e.colors[0],f=t.points.map((t,e)=>({x:l.x+e*d+d/2,y:u-(t.value>0?t.value:0)/o*l.height}));if(f.length>1){let t=f.map((t,e)=>`${e?"L":"M"}${(0,r.num)(t.x)},${(0,r.num)(t.y)}`).join("");n&&h.push(`<path d="${t}L${(0,r.num)(f[f.length-1].x)},${(0,r.num)(u)}L${(0,r.num)(f[0].x)},${(0,r.num)(u)}Z" fill="${p}" fill-opacity="0.18"/>`),h.push(`<path d="${t}" fill="none" stroke="${p}" stroke-width="2" stroke-linejoin="round" stroke-linecap="round"/>`)}return t.points.forEach((t,e)=>{let{x:n,y:i}=f[e];h.push(`<circle cx="${(0,r.num)(n)}" cy="${(0,r.num)(i)}" r="5" fill="${p}" stroke="${s.surface}" stroke-width="2"><title>${(0,r.esc)(t.label)}: ${(0,r.esc)((0,r.formatValue)(t.value))}</title></circle>`,(0,r.valuePill)(n,i-20,t.value,p,s),`<text x="${(0,r.num)(n)}" y="${(0,r.num)(u+20)}" font-size="13" fill="${s.inkMuted}" text-anchor="middle">${(0,r.esc)((0,r.truncate)(t.label))}</text>`)}),h.push(`<line x1="${(0,r.num)(l.x)}" y1="${(0,r.num)(u)}" x2="${(0,r.num)(l.x+l.width)}" y2="${(0,r.num)(u)}" stroke="${s.border}"/>`,(0,r.svgClose)()),h.join("")}},83349:function(t,e,n){"use strict";n.d(e,{renderPie:function(){return l}});var r=n(56075),i=n(11886),o=n(36838);function a(t,e,n,r){return`${(0,o.num)(t+n*Math.cos(r))},${(0,o.num)(e+n*Math.sin(r))}`}function l(t,e,n){let l=t.points.filter(t=>t.value>0),s=l.reduce((t,e)=>t+e.value,0),h=t.width<420,u=h?t.width-48:Math.min(180,Math.max(120,.3*t.width)),c=26*l.length;if(h){let e=48+40*!!t.title+160+c+12;t=(0,i._)((0,r._)({},t),{height:Math.max(t.height,e)})}let d=(0,o.plotBox)(t,{x:0,y:0,width:h?0:u+24,height:h?c+12:0}),p=Math.max(10,Math.min(d.width,d.height)/2-4),f=n?.58*p:0,m=d.x+d.width/2,g=d.y+d.height/2,$=(0,o.chartTheme)(t),x=[(0,o.svgOpen)(t,e)],_=-Math.PI/2;l.forEach((t,n)=>{let r=(0,o.pointColor)(t,n,e),i=s?t.value/s*Math.PI*2:0,l=s?Math.round(t.value/s*1e3)/10:0;x.push(`<path d="${function(t,e,n,r,i,l){if(l-i>=2*Math.PI-1e-4){let i=r?` M${(0,o.num)(t-r)},${(0,o.num)(e)} a${(0,o.num)(r)},${(0,o.num)(r)} 0 1 0 ${(0,o.num)(2*r)},0 a${(0,o.num)(r)},${(0,o.num)(r)} 0 1 0 ${(0,o.num)(-(2*r))},0`:"";return`M${(0,o.num)(t-n)},${(0,o.num)(e)} a${(0,o.num)(n)},${(0,o.num)(n)} 0 1 0 ${(0,o.num)(2*n)},0 a${(0,o.num)(n)},${(0,o.num)(n)} 0 1 0 ${(0,o.num)(-(2*n))},0${i}`}let s=+(l-i>Math.PI),h=[`M${a(t,e,n,i)}`,`A${(0,o.num)(n)},${(0,o.num)(n)} 0 ${s} 1 ${a(t,e,n,l)}`];return r?h.push(`L${a(t,e,r,l)}`,`A${(0,o.num)(r)},${(0,o.num)(r)} 0 ${s} 0 ${a(t,e,r,i)}`):h.push(`L${(0,o.num)(t)},${(0,o.num)(e)}`),h.join("")+"Z"}(m,g,p,f,_,_+i)}" fill="${r}" stroke="${$.surface}" stroke-width="2" fill-rule="evenodd"><title>${(0,o.esc)(t.label)}: ${(0,o.esc)((0,o.formatValue)(t.value))} (${(0,o.num)(l)}%)</title></path>`),_+=i}),n&&s&&x.push(`<text x="${(0,o.num)(m)}" y="${(0,o.num)(g+7)}" font-size="20" font-weight="600" fill="${$.ink}" text-anchor="middle">${(0,o.esc)((0,o.formatValue)(s))}</text>`);let v=h?24:t.width-24-u,y=Math.max(6,Math.floor((u-22-48)/(13*.58))),C=h?d.y+d.height+12+13:g-c/2+13;return l.forEach((t,n)=>{let r=(0,o.pointColor)(t,n,e),i=C+26*n,a=s?Math.round(t.value/s*1e3)/10:0;x.push(`<rect x="${(0,o.num)(v)}" y="${(0,o.num)(i-7)}" width="14" height="14" rx="4" fill="${r}"/>`,`<text x="${(0,o.num)(v+22)}" y="${(0,o.num)(i+4.5)}" font-size="13" fill="${$.inkSecondary}">${(0,o.esc)((0,o.truncate)(t.label,y))}</text>`,`<text x="${(0,o.num)(v+u)}" y="${(0,o.num)(i+4.5)}" font-size="13" fill="${$.inkMuted}" text-anchor="end">${(0,o.num)(a)}%</text>`)}),x.push((0,o.svgClose)()),x.join("")}},67407:function(t,e,n){"use strict";n.d(e,{renderRadar:function(){return o}});var r=n(36838);function i(t,e,n,r,i){let o=-Math.PI/2+r/i*Math.PI*2;return{x:t+n*Math.cos(o),y:e+n*Math.sin(o),angle:o}}function o(t,e){let n=(0,r.ticks)(t.points),o=n[n.length-1],a=(0,r.plotBox)(t,{x:60,y:24,width:60,height:24}),l=a.x+a.width/2,s=a.y+a.height/2,h=Math.max(10,Math.min(a.width,a.height)/2-4),u=Math.max(1,t.points.length),c=(0,r.chartTheme)(t),d=[(0,r.svgOpen)(t,e)],p=t.points.length?(0,r.pointColor)(t.points[0],0,e):e.colors[0];n.forEach((e,a)=>{if(!e)return;let p=e/o*h,f=t.points.map((t,e)=>i(l,s,p,e,u)).map((t,e)=>`${e?"L":"M"}${(0,r.num)(t.x)},${(0,r.num)(t.y)}`).join("");d.push(u>2?`<path d="${f}Z" fill="none" stroke="${c.grid}" stroke-dasharray="3 3"/>`:`<circle cx="${(0,r.num)(l)}" cy="${(0,r.num)(s)}" r="${(0,r.num)(p)}" fill="none" stroke="${c.grid}" stroke-dasharray="3 3"/>`,a===n.length-1?`<text x="${(0,r.num)(l+6)}" y="${(0,r.num)(s-p+12)}" font-size="12" fill="${c.inkMuted}">${(0,r.esc)((0,r.formatValue)(e))}</text>`:"")}),t.points.forEach((t,e)=>{let n,o=i(l,s,h,e,u),a=i(l,s,h+18,e,u);d.push(`<line x1="${(0,r.num)(l)}" y1="${(0,r.num)(s)}" x2="${(0,r.num)(o.x)}" y2="${(0,r.num)(o.y)}" stroke="${c.grid}"/>`,`<text x="${(0,r.num)(a.x)}" y="${(0,r.num)(a.y+4.5)}" font-size="13" fill="${c.inkMuted}" text-anchor="${.2>Math.abs(n=Math.cos(a.angle))?"middle":n>0?"start":"end"}">${(0,r.esc)((0,r.truncate)(t.label))}</text>`)});let f=t.points.map((t,e)=>i(l,s,(t.value>0?t.value:0)/o*h,e,u));if(f.length>1){let t=f.map((t,e)=>`${e?"L":"M"}${(0,r.num)(t.x)},${(0,r.num)(t.y)}`).join("");d.push(`<path d="${t}Z" fill="${p}" fill-opacity="0.18" stroke="${p}" stroke-width="2" stroke-linejoin="round"/>`)}return t.points.forEach((t,e)=>{let{x:n,y:i}=f[e];d.push(`<circle cx="${(0,r.num)(n)}" cy="${(0,r.num)(i)}" r="5" fill="${p}" stroke="${c.surface}" stroke-width="2"><title>${(0,r.esc)(t.label)}: ${(0,r.esc)((0,r.formatValue)(t.value))}</title></circle>`)}),d.push((0,r.svgClose)()),d.join("")}},90142:function(t,e,n){"use strict";n.d(e,{UIChartEditor:function(){return m}});var r=n(82749),i=n(56075),o=n(11886),a=n(31635),l=n(99131),s=n(75787),h=n(36838),u=n(65478),c=n(2748),d=n(38837),p=n(29960),f=n(67510);class m extends f.UIElement{className(){return"UIChartEditor"}render(){return`<div>
|
|
9
|
+
<div class="&__preview">
|
|
10
|
+
<div class="&__colors"></div>
|
|
11
|
+
<div class="&__canvas"></div>
|
|
12
|
+
</div>
|
|
13
|
+
<div class="&__fields"></div>
|
|
14
|
+
<div class="&__points-header">
|
|
15
|
+
<span class="&__points-title">~Data points~</span>
|
|
16
|
+
<span class="&__summary"></span>
|
|
17
|
+
<span class="&__add"></span>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="&__points"></div>
|
|
20
|
+
</div>`}syncTransparent(){let t=!this.state.background;this.transparentButton.classList.toggle(this.getFullElName("transparent","active"),t),(0,p.attr)(this.transparentButton,"aria-pressed",t)}createColorInput(t,e){let n=this.j.c.element("input",{type:"color",name:t,title:this.j.i18n("background"===t?"Background":"Text color"),class:this.getFullElName("color-input")});return this.j.e.on(n,"input",()=>{e(n.value),this.refresh()}),n}colorField(t,e){return this.j.c.element("label",{class:this.getFullElName("color-field")},[e,this.j.c.span(this.getFullElName("color-label"),this.j.i18n(t))])}setData(t){this.state=(0,l.cloneChartData)(t),this.typeSelect.value=this.state.type,this.titleInput.value=this.state.title,this.backgroundInput.value=this.state.background||h.DEFAULT_BACKGROUND,this.textColorInput.value=this.state.textColor||h.DEFAULT_TEXT_COLOR,this.borderColorInput.value=this.state.borderColor||this.j.o.chart.defaultBorderColor,this.syncTransparent(),this.rebuildPoints(),this.__render()}getData(){return(0,o._)((0,i._)({},this.state),{title:this.state.title.trim(),points:this.state.points.map(l.normalizePoint)})}addPoint(){var t;let{points:e}=this.state;e.push({label:this.j.i18n("Item")+" "+(e.length+1),value:0}),this.rebuildPoints(),this.refresh();let n=this.getElms("point-label"),r=null==(t=n[n.length-1])?void 0:t.querySelector("input");null==r||r.focus()}removePoint(t){this.state.points.splice(t,1),this.rebuildPoints(),this.refresh()}rebuildPoints(){let t=this.getElm("points");(0,d.assert)(null!=t,"points element does not exist"),c.Dom.detach(t),this.state.points.forEach((e,n)=>{t.appendChild(this.createPointRow(e,n))})}createPointRow(t,e){let{j:n}=this,r=new f.UIInput(n,{name:"label",label:"Label",value:t.label,className:this.getFullElName("point-label"),onChange:e=>{t.label=e,this.refresh()}}),i=new f.UIInput(n,{name:"value",label:"Value",type:"number",value:t.value,className:this.getFullElName("point-value"),onChange:e=>{let n=Number(e);t.value=isFinite(n)?n:0,this.refresh()}}),o=n.c.element("input",{type:"color",title:n.i18n("Color"),class:this.getFullElName("point-color"),value:(0,h.pointColor)(t,e,{colors:n.o.chart.colors,fontFamily:""})});n.e.on(o,"input",()=>{t.color=o.value,this.refresh()});let a=(0,f.Button)(n,"bin","","default").setMod("variant","remove").onAction(()=>this.removePoint(e));(0,p.attr)(a.container,"title",n.i18n("Remove point"));let l=n.c.element("span",{class:this.getFullElName("point-grip"),title:n.i18n("Drag to reorder")}),s=n.c.div(this.getFullElName("point"),[l,r.container,i.container,o,a.container]);return this.bindDragAndDrop(s,l,e),s}bindDragAndDrop(t,e,n){let{j:r}=this,i=e=>{t.classList.toggle(this.getFullElName("point","drop","before"),"before"===e),t.classList.toggle(this.getFullElName("point","drop","after"),"after"===e)},o=e=>{let n=t.getBoundingClientRect();return e.clientY>n.top+n.height/2};(0,p.attr)(e,"draggable",!0),r.e.on(e,"dragstart",e=>{this.__dragIndex=n,t.classList.add(this.getFullElName("point","dragging")),e.dataTransfer&&(e.dataTransfer.effectAllowed="move",e.dataTransfer.setData("text/plain",String(n)),e.dataTransfer.setDragImage(t,10,10))}).on(e,"dragend",()=>{this.__dragIndex=-1,t.classList.remove(this.getFullElName("point","dragging")),this.getElms("point").forEach(t=>{t.classList.remove(this.getFullElName("point","drop","before"),this.getFullElName("point","drop","after"))})}),r.e.on(t,"dragover",t=>{this.__dragIndex<0||this.__dragIndex===n||(t.preventDefault(),t.dataTransfer&&(t.dataTransfer.dropEffect="move"),i(o(t)?"after":"before"))}).on(t,"dragleave",()=>i(null)).on(t,"drop",t=>{this.__dragIndex<0||this.__dragIndex===n||(t.preventDefault(),this.movePoint(this.__dragIndex,n,o(t)),this.__dragIndex=-1)})}movePoint(t,e,n){let{points:r}=this.state;if(t===e||!r[t]||!r[e])return;let[i]=r.splice(t,1),o=e>t?e-1:e;n&&o++,r.splice(o,0,i),this.rebuildPoints(),this.refresh()}refresh(){this.__render()}__render(){let{chart:t}=this.j.o,e=this.getElm("canvas"),n=this.getElm("summary");if(e&&(e.innerHTML=(0,s.renderChart)(this.state,{colors:t.colors,fontFamily:t.fontFamily})),n){let t=this.state.points.reduce((t,e)=>t+e.value,0);n.textContent=this.state.points.length+" "+this.j.i18n("points")+" \xb7 "+this.j.i18n("Total")+": "+(0,h.formatValue)(t)}}constructor(t){super(t),(0,r._)(this,"state",void 0),(0,r._)(this,"typeSelect",void 0),(0,r._)(this,"titleInput",void 0),(0,r._)(this,"addButton",void 0),(0,r._)(this,"backgroundInput",void 0),(0,r._)(this,"textColorInput",void 0),(0,r._)(this,"borderColorInput",void 0),(0,r._)(this,"transparentButton",void 0),(0,r._)(this,"__dragIndex",-1),this.typeSelect=new f.UISelect(t,{name:"type",label:"Chart type",options:t.o.chart.types.map(e=>({value:e,text:t.i18n(l.CHART_TYPE_TITLES[e])})),onChange:t=>{this.state.type=t,this.refresh()}}),this.titleInput=new f.UIInput(t,{name:"title",label:"Chart title",placeholder:"Optional",onChange:t=>{this.state.title=t,this.refresh()}}),this.addButton=(0,f.Button)(t,"plus","Add point").onAction(this.addPoint.bind(this));let e=this.getElm("fields");(0,d.assert)(null!=e,"fields element does not exist"),e.appendChild(this.typeSelect.container),e.appendChild(this.titleInput.container);let n=this.getElm("add");(0,d.assert)(null!=n,"add element does not exist"),n.appendChild(this.addButton.container),this.backgroundInput=this.createColorInput("background",t=>{this.state.background=t,this.syncTransparent()}),this.textColorInput=this.createColorInput("textColor",t=>{this.state.textColor=t}),this.borderColorInput=this.createColorInput("borderColor",t=>{this.state.borderColor=t}),this.transparentButton=t.c.element("button",{type:"button",name:"transparent",class:this.getFullElName("transparent")}),t.e.on(this.transparentButton,"click",()=>{this.state.background=this.state.background?"":this.backgroundInput.value,this.syncTransparent(),this.refresh()});let i=this.getElm("colors");(0,d.assert)(null!=i,"colors element does not exist");let{chart:o}=t.o;o.allowChangeBackground&&i.appendChild(this.colorField("Background",this.backgroundInput)),o.allowChangeTextColor&&i.appendChild(this.colorField("Text",this.textColorInput)),o.allowChangeBorderColor&&i.appendChild(this.colorField("Border",this.borderColorInput)),o.allowChangeBackground&&i.appendChild(this.colorField("Transparent",this.transparentButton)),i.childNodes.length||c.Dom.safeRemove(i)}}(0,a.__decorate)([(0,u.debounce)(50)],m.prototype,"refresh",null),m=(0,a.__decorate)([u.component],m)},11886:function(t,e,n){"use strict";function r(t,e){return e=null!=e?e:{},Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):(function(t){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e.push.apply(e,n)}return e})(Object(e)).forEach(function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))}),t}n.d(e,{_:function(){return r}})}},function(t){return t(57722)}])});
|