@opentiny/fluent-editor 3.20.0 → 3.20.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +99 -99
- package/es/attributors/index.es.js +1 -1
- package/es/attributors/line-height.es.js.map +1 -1
- package/es/config/base64-image.es.js.map +1 -1
- package/es/config/editor.config.es.js.map +1 -1
- package/es/config/editor.utils.es.js +12 -12
- package/es/config/editor.utils.es.js.map +1 -1
- package/es/config/i18n/en-us.es.js.map +1 -1
- package/es/config/i18n/zh-cn.es.js.map +1 -1
- package/es/config/icons.config.es.js.map +1 -1
- package/es/config/types/index.es.js +2 -2
- package/es/config.es.js +1 -1
- package/es/config.es.js.map +1 -1
- package/es/counter/index.es.js.map +1 -1
- package/es/custom-clipboard.es.js +14 -14
- package/es/custom-clipboard.es.js.map +1 -1
- package/es/custom-image/BlotFormatter.es.js +1 -1
- package/es/custom-image/BlotFormatter.es.js.map +1 -1
- package/es/custom-image/Options.es.js.map +1 -1
- package/es/custom-image/actions/Action.es.js.map +1 -1
- package/es/custom-image/actions/CustomResizeAction.es.js +6 -4
- package/es/custom-image/actions/CustomResizeAction.es.js.map +1 -1
- package/es/custom-image/actions/DeleteAction.es.js.map +1 -1
- package/es/custom-image/image.es.js +3 -3
- package/es/custom-image/image.es.js.map +1 -1
- package/es/custom-image/specs/BlotSpec.es.js.map +1 -1
- package/es/custom-image/specs/CustomImageSpec.es.js.map +1 -1
- package/es/custom-image/specs/ImageSpec.es.js.map +1 -1
- package/es/custom-uploader.es.js +4 -7
- package/es/custom-uploader.es.js.map +1 -1
- package/es/emoji/emoji-list/people.es.js.map +1 -1
- package/es/emoji/emoji-list.es.js.map +1 -1
- package/es/emoji/emoji-map.es.js.map +1 -1
- package/es/emoji/formats/emoji-blot.es.js +2 -2
- package/es/emoji/formats/emoji-blot.es.js.map +1 -1
- package/es/emoji/index.es.js.map +1 -1
- package/es/emoji/modules/emoji.es.js +7 -7
- package/es/emoji/modules/emoji.es.js.map +1 -1
- package/es/emoji/modules/toolbar-emoji.es.js +15 -15
- package/es/emoji/modules/toolbar-emoji.es.js.map +1 -1
- package/es/emoji/utils.es.js.map +1 -1
- package/es/file/formats/file.es.js.map +1 -1
- package/es/file/index.es.js.map +1 -1
- package/es/file/modules/file-bar.es.js +3 -3
- package/es/file/modules/file-bar.es.js.map +1 -1
- package/es/fluent-editor.es.js +3 -3
- package/es/fluent-editor.es.js.map +1 -1
- package/es/format-painter/index.es.js.map +1 -1
- package/es/global-link/constants.es.js.map +1 -1
- package/es/global-link/formats/customer-widget-link.es.js.map +1 -1
- package/es/global-link/formats/doc-link.es.js.map +1 -1
- package/es/global-link/formats/wiki-link.es.js.map +1 -1
- package/es/global-link/formats/work-item-link.es.js.map +1 -1
- package/es/global-link/index.es.js +1 -1
- package/es/global-link/index.es.js.map +1 -1
- package/es/global-link/utils/createTable.es.js.map +1 -1
- package/es/link/formats/link.es.js +1 -1
- package/es/link/formats/link.es.js.map +1 -1
- package/es/link/index.es.js.map +1 -1
- package/es/link/modules/tooltip.es.js +3 -3
- package/es/link/modules/tooltip.es.js.map +1 -1
- package/es/mention/Mention.es.js +7 -12
- package/es/mention/Mention.es.js.map +1 -1
- package/es/mention/MentionLink.es.js.map +1 -1
- package/es/mention/constants.es.js.map +1 -1
- package/es/quick-menu/index.es.js +1 -1
- package/es/quick-menu/index.es.js.map +1 -1
- package/es/screenshot/index.es.js +42 -7
- package/es/screenshot/index.es.js.map +1 -1
- package/es/soft-break/index.es.js.map +1 -1
- package/es/strike/index.es.js.map +1 -1
- package/es/syntax/index.es.js.map +1 -1
- package/es/table/better-table.es.js +4 -5
- package/es/table/better-table.es.js.map +1 -1
- package/es/table/formats/header.es.js.map +1 -1
- package/es/table/formats/list.es.js +3 -3
- package/es/table/formats/list.es.js.map +1 -1
- package/es/table/formats/table.es.js +26 -27
- package/es/table/formats/table.es.js.map +1 -1
- package/es/table/modules/table-column-tool.es.js +8 -8
- package/es/table/modules/table-column-tool.es.js.map +1 -1
- package/es/table/modules/table-operation-menu.es.js +7 -8
- package/es/table/modules/table-operation-menu.es.js.map +1 -1
- package/es/table/modules/table-scroll-bar.es.js +1 -1
- package/es/table/modules/table-scroll-bar.es.js.map +1 -1
- package/es/table/modules/table-selection.es.js +0 -1
- package/es/table/modules/table-selection.es.js.map +1 -1
- package/es/table/table-config.es.js.map +1 -1
- package/es/table/utils/index.es.js.map +1 -1
- package/es/table/utils/node-matchers.es.js +14 -14
- package/es/table/utils/node-matchers.es.js.map +1 -1
- package/es/toolbar/better-picker.es.js.map +1 -1
- package/es/toolbar/index.es.js +1 -1
- package/es/toolbar/index.es.js.map +1 -1
- package/es/utils/debounce.es.js.map +1 -1
- package/es/utils/image.es.js +26 -0
- package/es/utils/image.es.js.map +1 -0
- package/es/utils/method.es.js +2 -2
- package/es/utils/method.es.js.map +1 -1
- package/es/utils/scroll-lock.es.js +47 -0
- package/es/utils/scroll-lock.es.js.map +1 -0
- package/es/video/index.es.js +6 -3
- package/es/video/index.es.js.map +1 -1
- package/lib/attributors/index.cjs.js +2 -2
- package/lib/attributors/line-height.cjs.js.map +1 -1
- package/lib/config/base64-image.cjs.js.map +1 -1
- package/lib/config/editor.config.cjs.js.map +1 -1
- package/lib/config/editor.utils.cjs.js +12 -12
- package/lib/config/editor.utils.cjs.js.map +1 -1
- package/lib/config/i18n/en-us.cjs.js.map +1 -1
- package/lib/config/i18n/zh-cn.cjs.js.map +1 -1
- package/lib/config/icons.config.cjs.js.map +1 -1
- package/lib/config/types/index.cjs.js +2 -2
- package/lib/config.cjs.js +1 -1
- package/lib/config.cjs.js.map +1 -1
- package/lib/counter/index.cjs.js.map +1 -1
- package/lib/custom-clipboard.cjs.js +14 -14
- package/lib/custom-clipboard.cjs.js.map +1 -1
- package/lib/custom-image/BlotFormatter.cjs.js +1 -1
- package/lib/custom-image/BlotFormatter.cjs.js.map +1 -1
- package/lib/custom-image/Options.cjs.js.map +1 -1
- package/lib/custom-image/actions/Action.cjs.js.map +1 -1
- package/lib/custom-image/actions/CustomResizeAction.cjs.js +6 -4
- package/lib/custom-image/actions/CustomResizeAction.cjs.js.map +1 -1
- package/lib/custom-image/actions/DeleteAction.cjs.js.map +1 -1
- package/lib/custom-image/image.cjs.js +3 -3
- package/lib/custom-image/image.cjs.js.map +1 -1
- package/lib/custom-image/specs/BlotSpec.cjs.js.map +1 -1
- package/lib/custom-image/specs/CustomImageSpec.cjs.js.map +1 -1
- package/lib/custom-image/specs/ImageSpec.cjs.js.map +1 -1
- package/lib/custom-uploader.cjs.js +4 -7
- package/lib/custom-uploader.cjs.js.map +1 -1
- package/lib/emoji/emoji-list/people.cjs.js.map +1 -1
- package/lib/emoji/emoji-list.cjs.js.map +1 -1
- package/lib/emoji/emoji-map.cjs.js.map +1 -1
- package/lib/emoji/formats/emoji-blot.cjs.js +2 -2
- package/lib/emoji/formats/emoji-blot.cjs.js.map +1 -1
- package/lib/emoji/index.cjs.js.map +1 -1
- package/lib/emoji/modules/emoji.cjs.js +7 -7
- package/lib/emoji/modules/emoji.cjs.js.map +1 -1
- package/lib/emoji/modules/toolbar-emoji.cjs.js +15 -15
- package/lib/emoji/modules/toolbar-emoji.cjs.js.map +1 -1
- package/lib/emoji/utils.cjs.js.map +1 -1
- package/lib/file/formats/file.cjs.js.map +1 -1
- package/lib/file/index.cjs.js.map +1 -1
- package/lib/file/modules/file-bar.cjs.js +3 -3
- package/lib/file/modules/file-bar.cjs.js.map +1 -1
- package/lib/fluent-editor.cjs.js +3 -3
- package/lib/fluent-editor.cjs.js.map +1 -1
- package/lib/format-painter/index.cjs.js.map +1 -1
- package/lib/global-link/constants.cjs.js.map +1 -1
- package/lib/global-link/formats/customer-widget-link.cjs.js.map +1 -1
- package/lib/global-link/formats/doc-link.cjs.js.map +1 -1
- package/lib/global-link/formats/wiki-link.cjs.js.map +1 -1
- package/lib/global-link/formats/work-item-link.cjs.js.map +1 -1
- package/lib/global-link/index.cjs.js +1 -1
- package/lib/global-link/index.cjs.js.map +1 -1
- package/lib/global-link/utils/createTable.cjs.js.map +1 -1
- package/lib/link/formats/link.cjs.js +1 -1
- package/lib/link/formats/link.cjs.js.map +1 -1
- package/lib/link/index.cjs.js.map +1 -1
- package/lib/link/modules/tooltip.cjs.js +3 -3
- package/lib/link/modules/tooltip.cjs.js.map +1 -1
- package/lib/mention/Mention.cjs.js +7 -12
- package/lib/mention/Mention.cjs.js.map +1 -1
- package/lib/mention/MentionLink.cjs.js.map +1 -1
- package/lib/mention/constants.cjs.js.map +1 -1
- package/lib/quick-menu/index.cjs.js +1 -1
- package/lib/quick-menu/index.cjs.js.map +1 -1
- package/lib/screenshot/index.cjs.js +44 -9
- package/lib/screenshot/index.cjs.js.map +1 -1
- package/lib/soft-break/index.cjs.js.map +1 -1
- package/lib/strike/index.cjs.js.map +1 -1
- package/lib/syntax/index.cjs.js.map +1 -1
- package/lib/table/better-table.cjs.js +4 -5
- package/lib/table/better-table.cjs.js.map +1 -1
- package/lib/table/formats/header.cjs.js.map +1 -1
- package/lib/table/formats/list.cjs.js +3 -3
- package/lib/table/formats/list.cjs.js.map +1 -1
- package/lib/table/formats/table.cjs.js +26 -27
- package/lib/table/formats/table.cjs.js.map +1 -1
- package/lib/table/modules/table-column-tool.cjs.js +8 -8
- package/lib/table/modules/table-column-tool.cjs.js.map +1 -1
- package/lib/table/modules/table-operation-menu.cjs.js +7 -8
- package/lib/table/modules/table-operation-menu.cjs.js.map +1 -1
- package/lib/table/modules/table-scroll-bar.cjs.js +1 -1
- package/lib/table/modules/table-scroll-bar.cjs.js.map +1 -1
- package/lib/table/modules/table-selection.cjs.js +0 -1
- package/lib/table/modules/table-selection.cjs.js.map +1 -1
- package/lib/table/table-config.cjs.js.map +1 -1
- package/lib/table/utils/index.cjs.js.map +1 -1
- package/lib/table/utils/node-matchers.cjs.js +14 -14
- package/lib/table/utils/node-matchers.cjs.js.map +1 -1
- package/lib/toolbar/better-picker.cjs.js.map +1 -1
- package/lib/toolbar/index.cjs.js +1 -1
- package/lib/toolbar/index.cjs.js.map +1 -1
- package/lib/utils/debounce.cjs.js.map +1 -1
- package/lib/utils/image.cjs.js +26 -0
- package/lib/utils/image.cjs.js.map +1 -0
- package/lib/utils/method.cjs.js +2 -2
- package/lib/utils/method.cjs.js.map +1 -1
- package/lib/utils/scroll-lock.cjs.js +47 -0
- package/lib/utils/scroll-lock.cjs.js.map +1 -0
- package/lib/video/index.cjs.js +6 -3
- package/lib/video/index.cjs.js.map +1 -1
- package/package.json +61 -64
- package/theme/style.css +12 -0
- package/es/types/vue.d.es.js +0 -2
- package/es/types/vue.d.es.js.map +0 -1
- package/lib/types/vue.d.cjs.js +0 -2
- package/lib/types/vue.d.cjs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"people.es.js","sources":["../../../../src/emoji/emoji-list/people.ts"],"sourcesContent":["import { createEmoji } from '../utils'\r\nconst peopleEmojiArr = [\r\n ['grinning', '1f600', ':grinning:', '😀', 'p', '1'],\r\n ['grin', '1f601', ':grin:', '😁', 'p', '2'],\r\n ['joy', '1f602', ':joy:', '😂', 'p', '3'],\r\n ['smiley', '1f603', ':smiley:', '😃', 'p', '5'],\r\n ['smile', '1f604', ':smile:', '😄', 'p', '6'],\r\n ['sweat_smile', '1f605', ':sweat_smile:', '😅', 'p', '7'],\r\n ['laughing', '1f606', ':laughing:', '😆', 'p', '8'],\r\n ['wink', '1f609', ':wink:', '😉', 'p', '9'],\r\n ['blush', '1f60a', ':blush:', '😊', 'p', '10'],\r\n ['yum', '1f60b', ':yum:', '😋', 'p', '11'],\r\n ['sunglasses', '1f60e', ':sunglasses:', '😎', 'p', '12'],\r\n ['heart_eyes', '1f60d', ':heart_eyes:', '😍', 'p', '13'],\r\n ['kissing_heart', '1f618', ':kissing_heart:', '😘', 'p', '14'],\r\n ['kissing', '1f617', ':kissing:', '😗', 'p', '15'],\r\n ['kissing_smiling_eyes', '1f619', ':kissing_smiling_eyes:', '😙', 'p', '16'],\r\n ['kissing_closed_eyes', '1f61a', ':kissing_closed_eyes:', '😚', 'p', '17'],\r\n ['slightly_smiling_face', '1f642', ':slight_smile:', '🙂', 'p', '19'],\r\n ['hugging_face', '1f917', ':hugging:', '🤗', 'p', '20'],\r\n ['thinking_face', '1f914', ':thinking:', '🤔', 'p', '21'],\r\n ['neutral_face', '1f610', ':neutral_face:', '😐', 'p', '22'],\r\n ['expressionless', '1f611', ':expressionless:', '😑', 'p', '23'],\r\n ['no_mouth', '1f636', ':no_mouth:', '😶', 'p', '24'],\r\n ['smirk', '1f60f', ':smirk:', '😏', 'p', '26'],\r\n ['persevere', '1f623', ':persevere:', '😣', 'p', '27'],\r\n ['disappointed_relieved', '1f625', ':disappointed_relieved:', '😥', 'p', '28'],\r\n ['open_mouth', '1f62e', ':open_mouth:', '😮', 'p', '29'],\r\n ['zipper_mouth_face', '1f910', ':zipper_mouth:', '🤐', 'p', '30'],\r\n ['hushed', '1f62f', ':hushed:', '😯', 'p', '31'],\r\n ['sleepy', '1f62a', ':sleepy:', '😪', 'p', '32'],\r\n ['tired_face', '1f62b', ':tired_face:', '😫', 'p', '33'],\r\n ['sleeping', '1f634', ':sleeping:', '😴', 'p', '34'],\r\n ['relieved', '1f60c', ':relieved:', '😌', 'p', '35'],\r\n ['nerd_face', '1f913', ':nerd:', '🤓', 'p', '36'],\r\n ['stuck_out_tongue', '1f61b', ':stuck_out_tongue:', '😛', 'p', '37'],\r\n ['stuck_out_tongue_winking_eye', '1f61c', ':stuck_out_tongue_winking_eye:', '😜', 'p', '38'],\r\n ['stuck_out_tongue_closed_eyes', '1f61d', ':stuck_out_tongue_closed_eyes:', '😝', 'p', '39'],\r\n ['unamused', '1f612', ':unamused:', '😒', 'p', '41'],\r\n ['sweat', '1f613', ':sweat:', '😓', 'p', '42'],\r\n ['pensive', '1f614', ':pensive:', '😔', 'p', '43'],\r\n ['confused', '1f615', ':confused:', '😕', 'p', '44'],\r\n ['money_mouth_face', '1f911', ':money_mouth:', '🤑', 'p', '46'],\r\n ['astonished', '1f632', ':astonished:', '😲', 'p', '47'],\r\n ['slightly_frowning_face', '1f641', ':slight_frown:', '🙁', 'p', '49'],\r\n ['confounded', '1f616', ':confounded:', '😖', 'p', '50'],\r\n ['disappointed', '1f61e', ':disappointed:', '😞', 'p', '51'],\r\n ['worried', '1f61f', ':worried:', '😟', 'p', '52'],\r\n ['triumph', '1f624', ':triumph:', '😤', 'p', '53'],\r\n ['cry', '1f622', ':cry:', '😢', 'p', '54'],\r\n ['sob', '1f62d', ':sob:', '😭', 'p', '55'],\r\n ['frowning', '1f626', ':frowning:', '😦', 'p', '56'],\r\n ['anguished', '1f627', ':anguished:', '😧', 'p', '57'],\r\n ['fearful', '1f628', ':fearful:', '😨', 'p', '58'],\r\n ['weary', '1f629', ':weary:', '😩', 'p', '59'],\r\n ['grimacing', '1f62c', ':grimacing:', '😬', 'p', '60'],\r\n ['cold_sweat', '1f630', ':cold_sweat:', '😰', 'p', '61'],\r\n ['scream', '1f631', ':scream:', '😱', 'p', '62'],\r\n ['flushed', '1f633', ':flushed:', '😳', 'p', '63'],\r\n ['dizzy_face', '1f635', ':dizzy_face:', '😵', 'p', '64'],\r\n ['rage', '1f621', ':rage:', '😡', 'p', '65'],\r\n ['angry', '1f620', ':angry:', '😠', 'p', '66'],\r\n ['innocent', '1f607', ':innocent:', '😇', 'p', '67'],\r\n ['mask', '1f637', ':mask:', '😷', 'p', '71'],\r\n ['face_with_thermometer', '1f912', ':thermometer_face:', '🤒', 'p', '72'],\r\n ['face_with_head_bandage', '1f915', ':head_bandage:', '🤕', 'p', '73'],\r\n ['smiling_imp', '1f608', ':smiling_imp:', '😈', 'p', '76'],\r\n ['imp', '1f47f', ':imp:', '👿', 'p', '77'],\r\n ['skull', '1f480', ':skull:', '💀', 'p', '80'],\r\n ['ghost', '1f47b', ':ghost:', '👻', 'p', '82'],\r\n ['alien', '1f47d', ':alien:', '👽', 'p', '83'],\r\n ['space_invader', '1f47e', ':space_invader:', '👾', 'a', '84'],\r\n ['robot_face', '1f916', ':robot:', '🤖', 'p', '85'],\r\n ['hankey', '1f4a9', ':poop:', '💩', 'p', '86'],\r\n ['smiley_cat', '1f63a', ':smiley_cat:', '😺', 'p', '87'],\r\n ['smile_cat', '1f638', ':smile_cat:', '😸', 'p', '88'],\r\n ['joy_cat', '1f639', ':joy_cat:', '😹', 'p', '89'],\r\n ['heart_eyes_cat', '1f63b', ':heart_eyes_cat:', '😻', 'p', '90'],\r\n ['smirk_cat', '1f63c', ':smirk_cat:', '😼', 'p', '91'],\r\n ['kissing_cat', '1f63d', ':kissing_cat:', '😽', 'p', '92'],\r\n ['scream_cat', '1f640', ':scream_cat:', '🙀', 'p', '93'],\r\n ['crying_cat_face', '1f63f', ':crying_cat_face:', '😿', 'p', '94'],\r\n ['pouting_cat', '1f63e', ':pouting_cat:', '😾', 'p', '95'],\r\n ['muscle', '1f4aa', ':muscle:', '💪', 'p', '1080'],\r\n ['point_left', '1f448', ':point_left:', '👈', 'p', '1092'],\r\n ['point_right', '1f449', ':point_right:', '👉', 'p', '1098'],\r\n ['point_up', '261d', ':point_up:', '☝', 'p', '1104'],\r\n ['point_up_2', '1f446', ':point_up_2:', '👆', 'p', '1110'],\r\n ['middle_finger', '1f595', ':middle_finger:', '🖕', 'p', '1116'],\r\n ['point_down', '1f447', ':point_down:', '👇', 'p', '1122'],\r\n ['v', '270c', ':v:', '✌', 'p', '1128'],\r\n ['raised_hand_with_fingers_splayed', '1f590', ':hand_splayed:', '🖐', 'p', '1158'],\r\n ['ok_hand', '1f44c', ':ok_hand:', '👌', 'p', '1170'],\r\n ['thumbsup', '1f44d', ':thumbsup:', '👍', 'p', '1176'],\r\n ['thumbsdown', '1f44e', ':thumbsdown:', '👎', 'p', '1182'],\r\n ['fist', '270a', ':fist:', '✊', 'p', '1188'],\r\n ['facepunch', '1f44a', ':punch:', '👊', 'p', '1194'],\r\n ['wave', '1f44b', ':wave:', '👋', 'p', '1218'],\r\n ['clap', '1f44f', ':clap:', '👏', 'p', '1224'],\r\n ['writing_hand', '270d', ':writing_hand:', '✍', 'p', '1230'],\r\n ['open_hands', '1f450', ':open_hands:', '👐', 'p', '1236'],\r\n ['pray', '1f64f', ':pray:', '🙏', 'p', '1248'],\r\n ['ear', '1f442', ':ear:', '👂', 'p', '1266'],\r\n ['nose', '1f443', ':nose:', '👃', 'p', '1272'],\r\n ['eyes', '1f440', ':eyes:', '👀', 'p', '1279'],\r\n ['eye', '1f441', ':eye:', '👁', 'p', '1280'],\r\n ['lips', '1f444', ':lips:', '👄', 'p', '1283'],\r\n ['fire', '1f525', ':fire:', '🔥', 'n', '1753'],\r\n]\r\nexport const peopleEmoji = createEmoji(peopleEmojiArr)\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"people.es.js","sources":["../../../../src/emoji/emoji-list/people.ts"],"sourcesContent":["import { createEmoji } from '../utils'\n\nconst peopleEmojiArr = [\n ['grinning', '1f600', ':grinning:', '😀', 'p', '1'],\n ['grin', '1f601', ':grin:', '😁', 'p', '2'],\n ['joy', '1f602', ':joy:', '😂', 'p', '3'],\n ['smiley', '1f603', ':smiley:', '😃', 'p', '5'],\n ['smile', '1f604', ':smile:', '😄', 'p', '6'],\n ['sweat_smile', '1f605', ':sweat_smile:', '😅', 'p', '7'],\n ['laughing', '1f606', ':laughing:', '😆', 'p', '8'],\n ['wink', '1f609', ':wink:', '😉', 'p', '9'],\n ['blush', '1f60a', ':blush:', '😊', 'p', '10'],\n ['yum', '1f60b', ':yum:', '😋', 'p', '11'],\n ['sunglasses', '1f60e', ':sunglasses:', '😎', 'p', '12'],\n ['heart_eyes', '1f60d', ':heart_eyes:', '😍', 'p', '13'],\n ['kissing_heart', '1f618', ':kissing_heart:', '😘', 'p', '14'],\n ['kissing', '1f617', ':kissing:', '😗', 'p', '15'],\n ['kissing_smiling_eyes', '1f619', ':kissing_smiling_eyes:', '😙', 'p', '16'],\n ['kissing_closed_eyes', '1f61a', ':kissing_closed_eyes:', '😚', 'p', '17'],\n ['slightly_smiling_face', '1f642', ':slight_smile:', '🙂', 'p', '19'],\n ['hugging_face', '1f917', ':hugging:', '🤗', 'p', '20'],\n ['thinking_face', '1f914', ':thinking:', '🤔', 'p', '21'],\n ['neutral_face', '1f610', ':neutral_face:', '😐', 'p', '22'],\n ['expressionless', '1f611', ':expressionless:', '😑', 'p', '23'],\n ['no_mouth', '1f636', ':no_mouth:', '😶', 'p', '24'],\n ['smirk', '1f60f', ':smirk:', '😏', 'p', '26'],\n ['persevere', '1f623', ':persevere:', '😣', 'p', '27'],\n ['disappointed_relieved', '1f625', ':disappointed_relieved:', '😥', 'p', '28'],\n ['open_mouth', '1f62e', ':open_mouth:', '😮', 'p', '29'],\n ['zipper_mouth_face', '1f910', ':zipper_mouth:', '🤐', 'p', '30'],\n ['hushed', '1f62f', ':hushed:', '😯', 'p', '31'],\n ['sleepy', '1f62a', ':sleepy:', '😪', 'p', '32'],\n ['tired_face', '1f62b', ':tired_face:', '😫', 'p', '33'],\n ['sleeping', '1f634', ':sleeping:', '😴', 'p', '34'],\n ['relieved', '1f60c', ':relieved:', '😌', 'p', '35'],\n ['nerd_face', '1f913', ':nerd:', '🤓', 'p', '36'],\n ['stuck_out_tongue', '1f61b', ':stuck_out_tongue:', '😛', 'p', '37'],\n ['stuck_out_tongue_winking_eye', '1f61c', ':stuck_out_tongue_winking_eye:', '😜', 'p', '38'],\n ['stuck_out_tongue_closed_eyes', '1f61d', ':stuck_out_tongue_closed_eyes:', '😝', 'p', '39'],\n ['unamused', '1f612', ':unamused:', '😒', 'p', '41'],\n ['sweat', '1f613', ':sweat:', '😓', 'p', '42'],\n ['pensive', '1f614', ':pensive:', '😔', 'p', '43'],\n ['confused', '1f615', ':confused:', '😕', 'p', '44'],\n ['money_mouth_face', '1f911', ':money_mouth:', '🤑', 'p', '46'],\n ['astonished', '1f632', ':astonished:', '😲', 'p', '47'],\n ['slightly_frowning_face', '1f641', ':slight_frown:', '🙁', 'p', '49'],\n ['confounded', '1f616', ':confounded:', '😖', 'p', '50'],\n ['disappointed', '1f61e', ':disappointed:', '😞', 'p', '51'],\n ['worried', '1f61f', ':worried:', '😟', 'p', '52'],\n ['triumph', '1f624', ':triumph:', '😤', 'p', '53'],\n ['cry', '1f622', ':cry:', '😢', 'p', '54'],\n ['sob', '1f62d', ':sob:', '😭', 'p', '55'],\n ['frowning', '1f626', ':frowning:', '😦', 'p', '56'],\n ['anguished', '1f627', ':anguished:', '😧', 'p', '57'],\n ['fearful', '1f628', ':fearful:', '😨', 'p', '58'],\n ['weary', '1f629', ':weary:', '😩', 'p', '59'],\n ['grimacing', '1f62c', ':grimacing:', '😬', 'p', '60'],\n ['cold_sweat', '1f630', ':cold_sweat:', '😰', 'p', '61'],\n ['scream', '1f631', ':scream:', '😱', 'p', '62'],\n ['flushed', '1f633', ':flushed:', '😳', 'p', '63'],\n ['dizzy_face', '1f635', ':dizzy_face:', '😵', 'p', '64'],\n ['rage', '1f621', ':rage:', '😡', 'p', '65'],\n ['angry', '1f620', ':angry:', '😠', 'p', '66'],\n ['innocent', '1f607', ':innocent:', '😇', 'p', '67'],\n ['mask', '1f637', ':mask:', '😷', 'p', '71'],\n ['face_with_thermometer', '1f912', ':thermometer_face:', '🤒', 'p', '72'],\n ['face_with_head_bandage', '1f915', ':head_bandage:', '🤕', 'p', '73'],\n ['smiling_imp', '1f608', ':smiling_imp:', '😈', 'p', '76'],\n ['imp', '1f47f', ':imp:', '👿', 'p', '77'],\n ['skull', '1f480', ':skull:', '💀', 'p', '80'],\n ['ghost', '1f47b', ':ghost:', '👻', 'p', '82'],\n ['alien', '1f47d', ':alien:', '👽', 'p', '83'],\n ['space_invader', '1f47e', ':space_invader:', '👾', 'a', '84'],\n ['robot_face', '1f916', ':robot:', '🤖', 'p', '85'],\n ['hankey', '1f4a9', ':poop:', '💩', 'p', '86'],\n ['smiley_cat', '1f63a', ':smiley_cat:', '😺', 'p', '87'],\n ['smile_cat', '1f638', ':smile_cat:', '😸', 'p', '88'],\n ['joy_cat', '1f639', ':joy_cat:', '😹', 'p', '89'],\n ['heart_eyes_cat', '1f63b', ':heart_eyes_cat:', '😻', 'p', '90'],\n ['smirk_cat', '1f63c', ':smirk_cat:', '😼', 'p', '91'],\n ['kissing_cat', '1f63d', ':kissing_cat:', '😽', 'p', '92'],\n ['scream_cat', '1f640', ':scream_cat:', '🙀', 'p', '93'],\n ['crying_cat_face', '1f63f', ':crying_cat_face:', '😿', 'p', '94'],\n ['pouting_cat', '1f63e', ':pouting_cat:', '😾', 'p', '95'],\n ['muscle', '1f4aa', ':muscle:', '💪', 'p', '1080'],\n ['point_left', '1f448', ':point_left:', '👈', 'p', '1092'],\n ['point_right', '1f449', ':point_right:', '👉', 'p', '1098'],\n ['point_up', '261d', ':point_up:', '☝', 'p', '1104'],\n ['point_up_2', '1f446', ':point_up_2:', '👆', 'p', '1110'],\n ['middle_finger', '1f595', ':middle_finger:', '🖕', 'p', '1116'],\n ['point_down', '1f447', ':point_down:', '👇', 'p', '1122'],\n ['v', '270c', ':v:', '✌', 'p', '1128'],\n ['raised_hand_with_fingers_splayed', '1f590', ':hand_splayed:', '🖐', 'p', '1158'],\n ['ok_hand', '1f44c', ':ok_hand:', '👌', 'p', '1170'],\n ['thumbsup', '1f44d', ':thumbsup:', '👍', 'p', '1176'],\n ['thumbsdown', '1f44e', ':thumbsdown:', '👎', 'p', '1182'],\n ['fist', '270a', ':fist:', '✊', 'p', '1188'],\n ['facepunch', '1f44a', ':punch:', '👊', 'p', '1194'],\n ['wave', '1f44b', ':wave:', '👋', 'p', '1218'],\n ['clap', '1f44f', ':clap:', '👏', 'p', '1224'],\n ['writing_hand', '270d', ':writing_hand:', '✍', 'p', '1230'],\n ['open_hands', '1f450', ':open_hands:', '👐', 'p', '1236'],\n ['pray', '1f64f', ':pray:', '🙏', 'p', '1248'],\n ['ear', '1f442', ':ear:', '👂', 'p', '1266'],\n ['nose', '1f443', ':nose:', '👃', 'p', '1272'],\n ['eyes', '1f440', ':eyes:', '👀', 'p', '1279'],\n ['eye', '1f441', ':eye:', '👁', 'p', '1280'],\n ['lips', '1f444', ':lips:', '👄', 'p', '1283'],\n ['fire', '1f525', ':fire:', '🔥', 'n', '1753'],\n]\nexport const peopleEmoji = createEmoji(peopleEmojiArr)\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji-list.es.js","sources":["../../../src/emoji/emoji-list.ts"],"sourcesContent":["import {\
|
|
1
|
+
{"version":3,"file":"emoji-list.es.js","sources":["../../../src/emoji/emoji-list.ts"],"sourcesContent":["import {\n peopleEmoji,\n} from './emoji-list/index'\n\nconst emojiList = [\n ...peopleEmoji,\n]\n\nexport default emojiList\n"],"names":[],"mappings":";;AAIA,MAAM,YAAY;AAAA,EAChB,GAAG;AACL;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji-map.es.js","sources":["../../../src/emoji/emoji-map.ts"],"sourcesContent":["import emojiList from './emoji-list'\
|
|
1
|
+
{"version":3,"file":"emoji-map.es.js","sources":["../../../src/emoji/emoji-map.ts"],"sourcesContent":["import emojiList from './emoji-list'\n\nconst emojiMap = {}\n\nemojiList.forEach((emojiListObject) => {\n emojiMap[emojiListObject.name] = emojiListObject\n})\n\nexport default emojiMap\n"],"names":[],"mappings":";AAEA,MAAM,WAAW,CAAC;AAElB,UAAU,QAAQ,CAAC,oBAAoB;AAC5B,WAAA,gBAAgB,IAAI,IAAI;AACnC,CAAC;"}
|
|
@@ -23,11 +23,11 @@ class EmojiBlot extends Embed {
|
|
|
23
23
|
const emojiSpan = document.createElement("span");
|
|
24
24
|
emojiSpan.classList.add(this.emojiClass);
|
|
25
25
|
emojiSpan.classList.add(this.emojiPrefix + value.name);
|
|
26
|
-
emojiSpan.
|
|
26
|
+
emojiSpan.textContent = String.fromCodePoint(...EmojiBlot.parseUnicode(value.unicode));
|
|
27
27
|
node.appendChild(emojiSpan);
|
|
28
28
|
}
|
|
29
29
|
static parseUnicode(string) {
|
|
30
|
-
return string.split("-").map((str) => parseInt(str, 16));
|
|
30
|
+
return string.split("-").map((str) => Number.parseInt(str, 16));
|
|
31
31
|
}
|
|
32
32
|
}
|
|
33
33
|
EmojiBlot.blotName = "emoji";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji-blot.es.js","sources":["../../../../src/emoji/formats/emoji-blot.ts"],"sourcesContent":["import Quill from 'quill'\
|
|
1
|
+
{"version":3,"file":"emoji-blot.es.js","sources":["../../../../src/emoji/formats/emoji-blot.ts"],"sourcesContent":["import Quill from 'quill'\nimport emojiMap from '../emoji-map'\n\nconst Embed = Quill.imports['blots/embed']\n\n// @dynamic\nclass EmojiBlot extends Embed {\n static emojiClass: string\n static emojiPrefix: any\n static tagName: string\n static blotName: string\n static className: string\n static create(value) {\n const node = super.create()\n if (typeof value === 'object') {\n EmojiBlot.buildSpan(value, node)\n }\n else if (typeof value === 'string') {\n const valueObj = emojiMap[value]\n if (valueObj) {\n EmojiBlot.buildSpan(valueObj, node)\n }\n }\n // 修复在emoji后输入中文插入其中导致quill不能识别\n node.setAttribute('contenteditable', false)\n return node\n }\n\n static value(node) {\n return node.dataset.name\n }\n\n static buildSpan(value, node) {\n node.setAttribute('data-name', value.name)\n const emojiSpan = document.createElement('span')\n emojiSpan.classList.add(this.emojiClass)\n emojiSpan.classList.add(this.emojiPrefix + value.name)\n // unicode can be '1f1f5-1f1ea',see emoji-list.js.\n emojiSpan.textContent = String.fromCodePoint(...EmojiBlot.parseUnicode(value.unicode))\n node.appendChild(emojiSpan)\n }\n\n static parseUnicode(string) {\n return string.split('-').map(str => Number.parseInt(str, 16))\n }\n}\n\nEmojiBlot.blotName = 'emoji'\nEmojiBlot.className = 'ql-emojiblot'\nEmojiBlot.tagName = 'span'\nEmojiBlot.emojiClass = 'ap'\nEmojiBlot.emojiPrefix = 'ap-'\n\nexport default EmojiBlot\n"],"names":[],"mappings":";;AAGA,MAAM,QAAQ,MAAM,QAAQ,aAAa;AAGzC,MAAM,kBAAkB,MAAM;AAAA,EAM5B,OAAO,OAAO,OAAO;AACb,UAAA,OAAO,MAAM;AACf,QAAA,OAAO,UAAU,UAAU;AACnB,gBAAA,UAAU,OAAO,IAAI;AAAA,IAAA,WAExB,OAAO,UAAU,UAAU;AAC5B,YAAA,WAAW,SAAS,KAAK;AAC/B,UAAI,UAAU;AACF,kBAAA,UAAU,UAAU,IAAI;AAAA,MACpC;AAAA,IACF;AAEK,SAAA,aAAa,mBAAmB,KAAK;AACnC,WAAA;AAAA,EACT;AAAA,EAEA,OAAO,MAAM,MAAM;AACjB,WAAO,KAAK,QAAQ;AAAA,EACtB;AAAA,EAEA,OAAO,UAAU,OAAO,MAAM;AACvB,SAAA,aAAa,aAAa,MAAM,IAAI;AACnC,UAAA,YAAY,SAAS,cAAc,MAAM;AACrC,cAAA,UAAU,IAAI,KAAK,UAAU;AACvC,cAAU,UAAU,IAAI,KAAK,cAAc,MAAM,IAAI;AAE3C,cAAA,cAAc,OAAO,cAAc,GAAG,UAAU,aAAa,MAAM,OAAO,CAAC;AACrF,SAAK,YAAY,SAAS;AAAA,EAC5B;AAAA,EAEA,OAAO,aAAa,QAAQ;AACnB,WAAA,OAAO,MAAM,GAAG,EAAE,IAAI,SAAO,OAAO,SAAS,KAAK,EAAE,CAAC;AAAA,EAC9D;AACF;AAEA,UAAU,WAAW;AACrB,UAAU,YAAY;AACtB,UAAU,UAAU;AACpB,UAAU,aAAa;AACvB,UAAU,cAAc;"}
|
package/es/emoji/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../src/emoji/index.ts"],"sourcesContent":["import EmojiBlot from './formats/emoji-blot'\
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../src/emoji/index.ts"],"sourcesContent":["import EmojiBlot from './formats/emoji-blot'\nimport ShortNameEmoji from './modules/emoji'\nimport ToolbarEmoji from './modules/toolbar-emoji'\n\nexport default { EmojiBlot, ShortNameEmoji, ToolbarEmoji }\n"],"names":[],"mappings":";;;AAIA,MAAA,QAAe,EAAE,WAAW,gBAAgB,aAAa;"}
|
|
@@ -59,11 +59,11 @@ class ShortNameEmoji extends Module {
|
|
|
59
59
|
this.atIndex = range.index;
|
|
60
60
|
const paletteMaxPos = atSignBounds.left + 250;
|
|
61
61
|
if (paletteMaxPos > this.quill.container.offsetWidth) {
|
|
62
|
-
this.container.style.left = atSignBounds.left - 250
|
|
62
|
+
this.container.style.left = `${atSignBounds.left - 250}px`;
|
|
63
63
|
} else {
|
|
64
|
-
this.container.style.left = atSignBounds.left
|
|
64
|
+
this.container.style.left = `${atSignBounds.left}px`;
|
|
65
65
|
}
|
|
66
|
-
this.container.style.top = atSignBounds.top + atSignBounds.height
|
|
66
|
+
this.container.style.top = `${atSignBounds.top + atSignBounds.height}px`;
|
|
67
67
|
this.open = true;
|
|
68
68
|
this.quill.on("text-change", this.onTextChange);
|
|
69
69
|
this.quill.once("selection-change", this.onSelectionChange);
|
|
@@ -95,7 +95,7 @@ class ShortNameEmoji extends Module {
|
|
|
95
95
|
}
|
|
96
96
|
this.query = this.query.trim();
|
|
97
97
|
let emojis = this.emojiList;
|
|
98
|
-
emojis.sort(
|
|
98
|
+
emojis.sort((a, b) => {
|
|
99
99
|
return a.emoji_order - b.emoji_order;
|
|
100
100
|
});
|
|
101
101
|
if (this.query.length < this.options.fuse.minMatchCharLength || emojis.length === 0) {
|
|
@@ -132,7 +132,7 @@ class ShortNameEmoji extends Module {
|
|
|
132
132
|
while (this.container.firstChild) {
|
|
133
133
|
this.container.removeChild(this.container.firstChild);
|
|
134
134
|
}
|
|
135
|
-
const buttons = Array(emojis.length);
|
|
135
|
+
const buttons = Array.from({ length: emojis.length });
|
|
136
136
|
this.buttons = buttons;
|
|
137
137
|
const handler = (i, emoji) => (event) => {
|
|
138
138
|
const arrowLeftKey = event.key === "ArrowLeft" || event.keyCode === 37;
|
|
@@ -165,7 +165,7 @@ class ShortNameEmoji extends Module {
|
|
|
165
165
|
makeElement(
|
|
166
166
|
"button",
|
|
167
167
|
{ type: "button" },
|
|
168
|
-
makeElement("span", { className:
|
|
168
|
+
makeElement("span", { className: `button-emoji ap ap-${emoji.name}`, innerHTML: emoji.code_decimal }),
|
|
169
169
|
makeElement("span", { className: "unmatched" }, emoji.shortname)
|
|
170
170
|
)
|
|
171
171
|
);
|
|
@@ -190,7 +190,7 @@ class ShortNameEmoji extends Module {
|
|
|
190
190
|
const windowHeight = window.innerHeight;
|
|
191
191
|
const editorPos = this.quill.container.getBoundingClientRect().top;
|
|
192
192
|
if (editorPos > windowHeight / 2 && this.container.offsetHeight > 0) {
|
|
193
|
-
this.container.style.top =
|
|
193
|
+
this.container.style.top = `-${this.container.offsetHeight}px`;
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
buttons[0].classList.add("emoji-active");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"emoji.es.js","sources":["../../../../src/emoji/modules/emoji.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport emojiList from '../emoji-list'\r\n\r\nconst Module = Quill.imports['core/module']\r\n\r\n// @dynamic\r\nclass ShortNameEmoji extends Module {\r\n static DEFAULTS: {\r\n emojiList: any[]\r\n fuse: {\r\n shouldSort: boolean\r\n threshold: number\r\n location: number\r\n distance: number\r\n maxPatternLength: number\r\n minMatchCharLength: number\r\n keys: string[]\r\n }\r\n }\r\n\r\n emojiList: any\r\n quill: any\r\n fuse: any\r\n onOpen: any\r\n onClose: any\r\n container: HTMLUListElement\r\n onSelectionChange: any\r\n onTextChange: any\r\n open: boolean\r\n atIndex: any\r\n focusedButton: any\r\n isWhiteSpace: (ch: any) => boolean\r\n query: any\r\n buttons: any\r\n options: any\r\n constructor(quill, options) {\r\n super(quill, options)\r\n\r\n this.emojiList = options.emojiList\r\n\r\n this.quill = quill\r\n this.onClose = options.onClose\r\n this.onOpen = options.onOpen\r\n this.container = document.createElement('ul')\r\n this.container.classList.add('emoji_completions')\r\n this.quill.container.appendChild(this.container)\r\n this.container.style.position = 'absolute'\r\n this.container.style.display = 'none'\r\n\r\n this.onSelectionChange = this.maybeUnfocus.bind(this)\r\n this.onTextChange = this.update.bind(this)\r\n\r\n this.open = false\r\n this.atIndex = null\r\n this.focusedButton = null\r\n\r\n this.isWhiteSpace = function (ch) {\r\n let whiteSpace = false\r\n if (/\\s/.test(ch)) {\r\n whiteSpace = true\r\n }\r\n return whiteSpace\r\n }\r\n\r\n quill.keyboard.addBinding({\r\n // TODO: Once Quill supports using event.key change this to \":\"\r\n key: 186, // \":\" instead of 190 in Safari. Since it's the same key it doesn't matter if we register both.\r\n shiftKey: true,\r\n }, this.triggerPicker.bind(this))\r\n\r\n quill.keyboard.addBinding({\r\n // gecko based browsers (firefox) use 59 as the keycode for semicolon,\r\n // which makes a colon character when combined with shift\r\n key: 59,\r\n shiftKey: true,\r\n }, this.triggerPicker.bind(this))\r\n\r\n quill.keyboard.addBinding({\r\n key: 39, // ArrowRight\r\n collapsed: true,\r\n }, this.handleArrow.bind(this))\r\n\r\n quill.keyboard.addBinding({\r\n key: 40, // ArrowRight\r\n collapsed: true,\r\n }, this.handleArrow.bind(this))\r\n // TODO: Add keybindings for Enter (13) and Tab (9) directly on the quill editor\r\n }\r\n\r\n triggerPicker(range, _context) {\r\n if (this.open) return true\r\n if (range.length > 0) {\r\n this.quill.deleteText(range.index, range.length, Quill.sources.USER)\r\n }\r\n\r\n this.quill.insertText(range.index, ':', 'emoji-shortname', Quill.sources.USER)\r\n const atSignBounds = this.quill.getBounds(range.index)\r\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT)\r\n\r\n this.atIndex = range.index\r\n\r\n const paletteMaxPos = atSignBounds.left + 250\r\n if (paletteMaxPos > this.quill.container.offsetWidth) {\r\n this.container.style.left = (atSignBounds.left - 250) + 'px'\r\n }\r\n else {\r\n this.container.style.left = atSignBounds.left + 'px'\r\n }\r\n\r\n this.container.style.top = atSignBounds.top + atSignBounds.height + 'px'\r\n this.open = true\r\n\r\n this.quill.on('text-change', this.onTextChange)\r\n this.quill.once('selection-change', this.onSelectionChange)\r\n if (this.onOpen) {\r\n this.onOpen()\r\n }\r\n }\r\n\r\n handleArrow() {\r\n if (!this.open) return true\r\n this.buttons[0].classList.remove('emoji-active')\r\n this.buttons[0].focus()\r\n if (this.buttons.length > 1) {\r\n this.buttons[1].focus()\r\n }\r\n }\r\n\r\n update(event) {\r\n const sel = this.quill.getSelection().index\r\n if (this.atIndex >= sel) { // Deleted the at character\r\n return this.close(null)\r\n }\r\n this.query = this.quill.getText(this.atIndex + 1, sel - this.atIndex - 1)\r\n\r\n try {\r\n if (this.isWhiteSpace(this.query)) {\r\n this.close(null)\r\n return\r\n }\r\n }\r\n catch (_e) {\r\n throw new Error('Close failed')\r\n }\r\n\r\n this.query = this.query.trim()\r\n\r\n let emojis: any = this.emojiList\r\n emojis.sort(function (a: any, b: any) {\r\n return a.emoji_order - b.emoji_order\r\n })\r\n\r\n if (this.query.length < this.options.fuse.minMatchCharLength || emojis.length === 0) {\r\n this.container.style.display = 'none'\r\n return\r\n }\r\n if (emojis.length > 15) { // return only 15\r\n emojis = emojis.slice(0, 15)\r\n }\r\n this.renderCompletions(emojis, event)\r\n }\r\n\r\n maybeUnfocus() {\r\n if (this.container.querySelector('*:focus')) return\r\n this.close(null)\r\n }\r\n\r\n renderCompletions(emojis, evt) {\r\n try {\r\n if (evt) {\r\n if (evt.key === 'Enter' || evt.keyCode === 13) {\r\n this.close(emojis[0], 1)\r\n this.container.style.display = 'none'\r\n return\r\n }\r\n else if (evt.key === 'Tab' || evt.keyCode === 9) {\r\n this.quill.disable()\r\n this.buttons[0].classList.remove('emoji-active')\r\n this.buttons[1].focus()\r\n return\r\n }\r\n }\r\n if (evt) return\r\n }\r\n catch (_e) {\r\n throw new Error('Render failed')\r\n }\r\n\r\n while (this.container.firstChild) {\r\n this.container.removeChild(this.container.firstChild)\r\n }\r\n const buttons = Array(emojis.length)\r\n this.buttons = buttons\r\n\r\n const handler = (i, emoji) => (event) => {\r\n const arrowLeftKey = event.key === 'ArrowLeft' || event.keyCode === 37\r\n const arrowUpKey = event.key === 'ArrowUp' || event.keyCode === 38\r\n const arrowRightKey = event.key === 'ArrowRight' || event.keyCode === 39\r\n const arrowDownKey = event.key === 'ArrowDown' || event.keyCode === 40\r\n if (arrowRightKey || arrowDownKey) {\r\n event.preventDefault()\r\n buttons[Math.min(buttons.length - 1, i + 1)].focus()\r\n }\r\n else if (event.key === 'Tab' || event.keyCode === 9) {\r\n event.preventDefault()\r\n if ((i + 1) === buttons.length) {\r\n buttons[0].focus()\r\n return\r\n }\r\n buttons[Math.min(buttons.length - 1, i + 1)].focus()\r\n }\r\n else if (arrowLeftKey || arrowUpKey) {\r\n event.preventDefault()\r\n buttons[Math.max(0, i - 1)].focus()\r\n }\r\n else if (event.key === 'Enter' || event.keyCode === 13\r\n || event.key === ' ' || event.keyCode === 32\r\n || event.key === 'Tab' || event.keyCode === 9) {\r\n event.preventDefault()\r\n this.quill.enable()\r\n this.close(emoji)\r\n }\r\n }\r\n\r\n emojis.forEach((emoji, i) => {\r\n const li = makeElement(\r\n 'li', {},\r\n makeElement(\r\n 'button', { type: 'button' },\r\n makeElement('span', { className: 'button-emoji ap ap-' + emoji.name, innerHTML: emoji.code_decimal }),\r\n makeElement('span', { className: 'unmatched' }, emoji.shortname),\r\n ),\r\n )\r\n this.container.appendChild(li)\r\n buttons[i] = li.firstChild\r\n // Events will be GC-ed with button on each re-render:\r\n buttons[i].addEventListener('keydown', handler(i, emoji))\r\n buttons[i].addEventListener('mousedown', () => this.close(emoji))\r\n buttons[i].addEventListener('focus', () => {\r\n this.focusedButton = i\r\n })\r\n buttons[i].addEventListener('unfocus', () => {\r\n this.focusedButton = null\r\n })\r\n })\r\n\r\n this.container.style.display = 'block'\r\n // emoji palette on top\r\n if (this.quill.container.classList.contains('top-emoji')) {\r\n const x = this.container.querySelectorAll('li')\r\n let i\r\n for (i = 0; i < x.length; i++) {\r\n x[i].style.display = 'block'\r\n }\r\n\r\n const windowHeight = window.innerHeight\r\n const editorPos = this.quill.container.getBoundingClientRect().top\r\n if (editorPos > windowHeight / 2 && this.container.offsetHeight > 0) {\r\n this.container.style.top = '-' + this.container.offsetHeight + 'px'\r\n }\r\n }\r\n\r\n buttons[0].classList.add('emoji-active')\r\n }\r\n\r\n close(value, trailingDelete = 0) {\r\n this.quill.enable()\r\n this.container.style.display = 'none'\r\n while (this.container.firstChild) {\r\n this.container.removeChild(this.container.firstChild)\r\n }\r\n this.quill.off('selection-change', this.onSelectionChange)\r\n this.quill.off('text-change', this.onTextChange)\r\n if (value) {\r\n this.quill.deleteText(this.atIndex, this.query.length + 1 + trailingDelete, Quill.sources.USER)\r\n this.quill.insertEmbed(this.atIndex, 'emoji', value, Quill.sources.USER)\r\n setTimeout(() => this.quill.setSelection(this.atIndex + 1), 0)\r\n }\r\n this.quill.focus()\r\n this.open = false\r\n if (this.onClose) {\r\n this.onClose(value)\r\n }\r\n }\r\n}\r\n\r\nShortNameEmoji.DEFAULTS = {\r\n emojiList: emojiList,\r\n fuse: {\r\n shouldSort: true,\r\n threshold: 0.1,\r\n location: 0,\r\n distance: 100,\r\n maxPatternLength: 32,\r\n minMatchCharLength: 1,\r\n keys: [\r\n 'shortname',\r\n ],\r\n },\r\n}\r\n\r\nfunction makeElement(tag, attrs, ...children) {\r\n const elem = document.createElement(tag)\r\n Object.keys(attrs).forEach((key) => {\r\n elem[key] = attrs[key]\r\n })\r\n children.forEach((child) => {\r\n if (typeof child === 'string') {\r\n child = document.createTextNode(child)\r\n }\r\n elem.appendChild(child)\r\n })\r\n return elem\r\n}\r\n\r\nexport default ShortNameEmoji\r\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"emoji.es.js","sources":["../../../../src/emoji/modules/emoji.ts"],"sourcesContent":["import Quill from 'quill'\nimport emojiList from '../emoji-list'\n\nconst Module = Quill.imports['core/module']\n\n// @dynamic\nclass ShortNameEmoji extends Module {\n static DEFAULTS: {\n emojiList: any[]\n fuse: {\n shouldSort: boolean\n threshold: number\n location: number\n distance: number\n maxPatternLength: number\n minMatchCharLength: number\n keys: string[]\n }\n }\n\n emojiList: any\n quill: any\n fuse: any\n onOpen: any\n onClose: any\n container: HTMLUListElement\n onSelectionChange: any\n onTextChange: any\n open: boolean\n atIndex: any\n focusedButton: any\n isWhiteSpace: (ch: any) => boolean\n query: any\n buttons: any\n options: any\n constructor(quill, options) {\n super(quill, options)\n\n this.emojiList = options.emojiList\n\n this.quill = quill\n this.onClose = options.onClose\n this.onOpen = options.onOpen\n this.container = document.createElement('ul')\n this.container.classList.add('emoji_completions')\n this.quill.container.appendChild(this.container)\n this.container.style.position = 'absolute'\n this.container.style.display = 'none'\n\n this.onSelectionChange = this.maybeUnfocus.bind(this)\n this.onTextChange = this.update.bind(this)\n\n this.open = false\n this.atIndex = null\n this.focusedButton = null\n\n this.isWhiteSpace = function (ch) {\n let whiteSpace = false\n if (/\\s/.test(ch)) {\n whiteSpace = true\n }\n return whiteSpace\n }\n\n quill.keyboard.addBinding({\n // TODO: Once Quill supports using event.key change this to \":\"\n key: 186, // \":\" instead of 190 in Safari. Since it's the same key it doesn't matter if we register both.\n shiftKey: true,\n }, this.triggerPicker.bind(this))\n\n quill.keyboard.addBinding({\n // gecko based browsers (firefox) use 59 as the keycode for semicolon,\n // which makes a colon character when combined with shift\n key: 59,\n shiftKey: true,\n }, this.triggerPicker.bind(this))\n\n quill.keyboard.addBinding({\n key: 39, // ArrowRight\n collapsed: true,\n }, this.handleArrow.bind(this))\n\n quill.keyboard.addBinding({\n key: 40, // ArrowRight\n collapsed: true,\n }, this.handleArrow.bind(this))\n // TODO: Add keybindings for Enter (13) and Tab (9) directly on the quill editor\n }\n\n triggerPicker(range, _context) {\n if (this.open) return true\n if (range.length > 0) {\n this.quill.deleteText(range.index, range.length, Quill.sources.USER)\n }\n\n this.quill.insertText(range.index, ':', 'emoji-shortname', Quill.sources.USER)\n const atSignBounds = this.quill.getBounds(range.index)\n this.quill.setSelection(range.index + 1, Quill.sources.SILENT)\n\n this.atIndex = range.index\n\n const paletteMaxPos = atSignBounds.left + 250\n if (paletteMaxPos > this.quill.container.offsetWidth) {\n this.container.style.left = `${atSignBounds.left - 250}px`\n }\n else {\n this.container.style.left = `${atSignBounds.left}px`\n }\n\n this.container.style.top = `${atSignBounds.top + atSignBounds.height}px`\n this.open = true\n\n this.quill.on('text-change', this.onTextChange)\n this.quill.once('selection-change', this.onSelectionChange)\n if (this.onOpen) {\n this.onOpen()\n }\n }\n\n handleArrow() {\n if (!this.open) return true\n this.buttons[0].classList.remove('emoji-active')\n this.buttons[0].focus()\n if (this.buttons.length > 1) {\n this.buttons[1].focus()\n }\n }\n\n update(event) {\n const sel = this.quill.getSelection().index\n if (this.atIndex >= sel) { // Deleted the at character\n return this.close(null)\n }\n this.query = this.quill.getText(this.atIndex + 1, sel - this.atIndex - 1)\n\n try {\n if (this.isWhiteSpace(this.query)) {\n this.close(null)\n return\n }\n }\n catch (_e) {\n throw new Error('Close failed')\n }\n\n this.query = this.query.trim()\n\n let emojis: any = this.emojiList\n emojis.sort((a: any, b: any) => {\n return a.emoji_order - b.emoji_order\n })\n\n if (this.query.length < this.options.fuse.minMatchCharLength || emojis.length === 0) {\n this.container.style.display = 'none'\n return\n }\n if (emojis.length > 15) { // return only 15\n emojis = emojis.slice(0, 15)\n }\n this.renderCompletions(emojis, event)\n }\n\n maybeUnfocus() {\n if (this.container.querySelector('*:focus')) return\n this.close(null)\n }\n\n renderCompletions(emojis, evt) {\n try {\n if (evt) {\n if (evt.key === 'Enter' || evt.keyCode === 13) {\n this.close(emojis[0], 1)\n this.container.style.display = 'none'\n return\n }\n else if (evt.key === 'Tab' || evt.keyCode === 9) {\n this.quill.disable()\n this.buttons[0].classList.remove('emoji-active')\n this.buttons[1].focus()\n return\n }\n }\n if (evt) return\n }\n catch (_e) {\n throw new Error('Render failed')\n }\n\n while (this.container.firstChild) {\n this.container.removeChild(this.container.firstChild)\n }\n const buttons = Array.from({ length: emojis.length })\n this.buttons = buttons\n\n const handler = (i, emoji) => (event) => {\n const arrowLeftKey = event.key === 'ArrowLeft' || event.keyCode === 37\n const arrowUpKey = event.key === 'ArrowUp' || event.keyCode === 38\n const arrowRightKey = event.key === 'ArrowRight' || event.keyCode === 39\n const arrowDownKey = event.key === 'ArrowDown' || event.keyCode === 40\n if (arrowRightKey || arrowDownKey) {\n event.preventDefault()\n buttons[Math.min(buttons.length - 1, i + 1)].focus()\n }\n else if (event.key === 'Tab' || event.keyCode === 9) {\n event.preventDefault()\n if ((i + 1) === buttons.length) {\n buttons[0].focus()\n return\n }\n buttons[Math.min(buttons.length - 1, i + 1)].focus()\n }\n else if (arrowLeftKey || arrowUpKey) {\n event.preventDefault()\n buttons[Math.max(0, i - 1)].focus()\n }\n else if (event.key === 'Enter' || event.keyCode === 13\n || event.key === ' ' || event.keyCode === 32\n || event.key === 'Tab' || event.keyCode === 9) {\n event.preventDefault()\n this.quill.enable()\n this.close(emoji)\n }\n }\n\n emojis.forEach((emoji, i) => {\n const li = makeElement(\n 'li',\n {},\n makeElement(\n 'button',\n { type: 'button' },\n makeElement('span', { className: `button-emoji ap ap-${emoji.name}`, innerHTML: emoji.code_decimal }),\n makeElement('span', { className: 'unmatched' }, emoji.shortname),\n ),\n )\n this.container.appendChild(li)\n buttons[i] = li.firstChild\n // Events will be GC-ed with button on each re-render:\n buttons[i].addEventListener('keydown', handler(i, emoji))\n buttons[i].addEventListener('mousedown', () => this.close(emoji))\n buttons[i].addEventListener('focus', () => {\n this.focusedButton = i\n })\n buttons[i].addEventListener('unfocus', () => {\n this.focusedButton = null\n })\n })\n\n this.container.style.display = 'block'\n // emoji palette on top\n if (this.quill.container.classList.contains('top-emoji')) {\n const x = this.container.querySelectorAll('li')\n let i\n for (i = 0; i < x.length; i++) {\n x[i].style.display = 'block'\n }\n\n const windowHeight = window.innerHeight\n const editorPos = this.quill.container.getBoundingClientRect().top\n if (editorPos > windowHeight / 2 && this.container.offsetHeight > 0) {\n this.container.style.top = `-${this.container.offsetHeight}px`\n }\n }\n\n buttons[0].classList.add('emoji-active')\n }\n\n close(value, trailingDelete = 0) {\n this.quill.enable()\n this.container.style.display = 'none'\n while (this.container.firstChild) {\n this.container.removeChild(this.container.firstChild)\n }\n this.quill.off('selection-change', this.onSelectionChange)\n this.quill.off('text-change', this.onTextChange)\n if (value) {\n this.quill.deleteText(this.atIndex, this.query.length + 1 + trailingDelete, Quill.sources.USER)\n this.quill.insertEmbed(this.atIndex, 'emoji', value, Quill.sources.USER)\n setTimeout(() => this.quill.setSelection(this.atIndex + 1), 0)\n }\n this.quill.focus()\n this.open = false\n if (this.onClose) {\n this.onClose(value)\n }\n }\n}\n\nShortNameEmoji.DEFAULTS = {\n emojiList,\n fuse: {\n shouldSort: true,\n threshold: 0.1,\n location: 0,\n distance: 100,\n maxPatternLength: 32,\n minMatchCharLength: 1,\n keys: [\n 'shortname',\n ],\n },\n}\n\nfunction makeElement(tag, attrs, ...children) {\n const elem = document.createElement(tag)\n Object.keys(attrs).forEach((key) => {\n elem[key] = attrs[key]\n })\n children.forEach((child) => {\n if (typeof child === 'string') {\n child = document.createTextNode(child)\n }\n elem.appendChild(child)\n })\n return elem\n}\n\nexport default ShortNameEmoji\n"],"names":[],"mappings":"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"}
|
|
@@ -21,7 +21,7 @@ class ToolbarEmoji extends Module {
|
|
|
21
21
|
checkPalatteExist() {
|
|
22
22
|
const quill = this.quill;
|
|
23
23
|
fnCheckDialogOpen(quill);
|
|
24
|
-
this.quill.on("text-change",
|
|
24
|
+
this.quill.on("text-change", (_delta, _oldDelta, source) => {
|
|
25
25
|
if (source === "user") {
|
|
26
26
|
fnClose();
|
|
27
27
|
fnUpdateRange(quill);
|
|
@@ -56,11 +56,11 @@ function fnShowEmojiPalatte(quill) {
|
|
|
56
56
|
const containerRect = quill.container.getBoundingClientRect();
|
|
57
57
|
const paletteMaxPos = atSignBounds.left + 250;
|
|
58
58
|
eleEmojiArea.id = "emoji-palette";
|
|
59
|
-
eleEmojiArea.style.top = 10 + atSignBounds.top + atSignBounds.height + containerRect.top
|
|
59
|
+
eleEmojiArea.style.top = `${10 + atSignBounds.top + atSignBounds.height + containerRect.top}px`;
|
|
60
60
|
if (paletteMaxPos > quill.container.offsetWidth) {
|
|
61
|
-
eleEmojiArea.style.left = atSignBounds.left + containerRect.left - 250
|
|
61
|
+
eleEmojiArea.style.left = `${atSignBounds.left + containerRect.left - 250}px`;
|
|
62
62
|
} else {
|
|
63
|
-
eleEmojiArea.style.left = atSignBounds.left + containerRect.left
|
|
63
|
+
eleEmojiArea.style.left = `${atSignBounds.left + containerRect.left}px`;
|
|
64
64
|
}
|
|
65
65
|
const tabToolbar = document.createElement("div");
|
|
66
66
|
tabToolbar.id = "tab-toolbar";
|
|
@@ -88,16 +88,16 @@ function fnShowEmojiPalatte(quill) {
|
|
|
88
88
|
} else {
|
|
89
89
|
document.getElementById("emoji-close-div").style.display = "block";
|
|
90
90
|
}
|
|
91
|
-
emojiType.forEach(
|
|
91
|
+
emojiType.forEach((emojiTypeItem) => {
|
|
92
92
|
const tabElement = document.createElement("li");
|
|
93
93
|
tabElement.classList.add("emoji-tab");
|
|
94
|
-
tabElement.classList.add(
|
|
94
|
+
tabElement.classList.add(`filter-${emojiTypeItem.name}`);
|
|
95
95
|
const tabValue = emojiTypeItem.content;
|
|
96
96
|
tabElement.innerHTML = tabValue;
|
|
97
97
|
tabElement.dataset.filter = emojiTypeItem.type;
|
|
98
98
|
tabElementHolder.appendChild(tabElement);
|
|
99
|
-
const emojiFilter = document.querySelector(
|
|
100
|
-
emojiFilter.addEventListener("click",
|
|
99
|
+
const emojiFilter = document.querySelector(`.filter-${emojiTypeItem.name}`);
|
|
100
|
+
emojiFilter.addEventListener("click", () => {
|
|
101
101
|
const tab = document.querySelector(".emoji-tab.active");
|
|
102
102
|
if (tab) {
|
|
103
103
|
tab.classList.remove("active");
|
|
@@ -114,25 +114,25 @@ function fnEmojiPanelInit(panel, quill) {
|
|
|
114
114
|
}
|
|
115
115
|
function fnEmojiElementsToPanel(_type, panel, quill) {
|
|
116
116
|
const result = emojiList;
|
|
117
|
-
result.sort(
|
|
117
|
+
result.sort((a, b) => {
|
|
118
118
|
return a.emoji_order - b.emoji_order;
|
|
119
119
|
});
|
|
120
120
|
quill.focus();
|
|
121
121
|
const range = fnUpdateRange(quill);
|
|
122
|
-
result.forEach(
|
|
122
|
+
result.forEach((emoji) => {
|
|
123
123
|
const span = document.createElement("span");
|
|
124
124
|
const t = document.createTextNode(emoji.shortname);
|
|
125
125
|
span.appendChild(t);
|
|
126
126
|
span.classList.add("bem");
|
|
127
|
-
span.classList.add(
|
|
127
|
+
span.classList.add(`bem-${emoji.name}`);
|
|
128
128
|
span.classList.add("ap");
|
|
129
|
-
span.classList.add(
|
|
129
|
+
span.classList.add(`ap-${emoji.name}`);
|
|
130
130
|
const output = String(String(emoji.code_decimal));
|
|
131
|
-
span.innerHTML = output
|
|
131
|
+
span.innerHTML = `${output} `;
|
|
132
132
|
panel.appendChild(span);
|
|
133
|
-
const customButton = document.querySelector(
|
|
133
|
+
const customButton = document.querySelector(`.bem-${emoji.name}`);
|
|
134
134
|
if (customButton) {
|
|
135
|
-
customButton.addEventListener("click",
|
|
135
|
+
customButton.addEventListener("click", () => {
|
|
136
136
|
quill.insertEmbed(range.index, "emoji", emoji, Quill.sources.USER);
|
|
137
137
|
setTimeout(() => quill.setSelection(range.index + 1), 0);
|
|
138
138
|
fnClose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toolbar-emoji.es.js","sources":["../../../../src/emoji/modules/toolbar-emoji.ts"],"sourcesContent":["import Quill from 'quill'\r\nimport { EMOJI_SPRITE as emojiSprite } from '../../config/base64-image'\r\nimport emojiList from '../emoji-list'\r\n\r\nconst Module = Quill.imports['core/module']\r\n\r\nclass ToolbarEmoji extends Module {\r\n quill: any\r\n toolbar: any\r\n constructor(quill, options) {\r\n super(quill, options)\r\n\r\n this.quill = quill\r\n this.toolbar = quill.getModule('toolbar')\r\n if (typeof this.toolbar !== 'undefined') {\r\n this.toolbar.addHandler('emoji', this.checkPalatteExist)\r\n }\r\n\r\n // 在emoji模块加载时判断并插入emoji精灵图样式,防止重复插入\r\n let emojiStyle = document.querySelector('style#devui-emoji-sprite')\r\n if (!emojiStyle) {\r\n emojiStyle = document.createElement('style')\r\n emojiStyle.setAttribute('id', 'devui-emoji-sprite')\r\n emojiStyle.innerHTML = `.ap{background-image:url(${emojiSprite})}`\r\n document.head.appendChild(emojiStyle)\r\n }\r\n }\r\n\r\n checkPalatteExist() {\r\n const quill = this.quill\r\n fnCheckDialogOpen(quill)\r\n this.quill.on('text-change', function (_delta, _oldDelta, source) {\r\n if (source === 'user') {\r\n fnClose()\r\n fnUpdateRange(quill)\r\n }\r\n })\r\n }\r\n}\r\n\r\nfunction fnClose() {\r\n const eleEmojiPlate = document.getElementById('emoji-palette')\r\n document.getElementById('emoji-close-div').style.display = 'none'\r\n if (eleEmojiPlate) {\r\n eleEmojiPlate.remove()\r\n }\r\n}\r\n\r\nfunction fnCheckDialogOpen(quill) {\r\n const elementExists = document.getElementById('emoji-palette')\r\n if (elementExists) {\r\n elementExists.remove()\r\n }\r\n else {\r\n fnShowEmojiPalatte(quill)\r\n }\r\n}\r\n\r\nfunction fnUpdateRange(quill) {\r\n const range = quill.getSelection()\r\n return range\r\n}\r\n\r\nfunction fnShowEmojiPalatte(quill) {\r\n const eleEmojiArea = document.createElement('div')\r\n const range = quill.getSelection()\r\n const atSignBounds = quill.getBounds(range.index)\r\n\r\n quill.container.appendChild(eleEmojiArea)\r\n const containerRect = quill.container.getBoundingClientRect()\r\n const paletteMaxPos = atSignBounds.left + 250 // palette max width is 250\r\n eleEmojiArea.id = 'emoji-palette'\r\n eleEmojiArea.style.top = 10 + atSignBounds.top + atSignBounds.height + containerRect.top + 'px'\r\n if (paletteMaxPos > quill.container.offsetWidth) {\r\n eleEmojiArea.style.left = (atSignBounds.left + containerRect.left - 250) + 'px'\r\n }\r\n else {\r\n eleEmojiArea.style.left = atSignBounds.left + containerRect.left + 'px'\r\n }\r\n\r\n const tabToolbar = document.createElement('div')\r\n tabToolbar.id = 'tab-toolbar'\r\n eleEmojiArea.appendChild(tabToolbar)\r\n\r\n // panel\r\n const panel = document.createElement('div')\r\n panel.id = 'tab-panel'\r\n eleEmojiArea.appendChild(panel)\r\n\r\n const emojiType = [\r\n { type: 'p', name: 'people', content: '<div class=\"i-people\"></div>' },\r\n { type: 'n', name: 'nature', content: '<div class=\"i-nature\"></div>' },\r\n { type: 'd', name: 'food', content: '<div class=\"i-food\"></div>' },\r\n { type: 's', name: 'symbols', content: '<div class=\"i-symbols\"></div>' },\r\n { type: 'a', name: 'activity', content: '<div class=\"i-activity\"></div>' },\r\n { type: 't', name: 'travel', content: '<div class=\"i-travel\"></div>' },\r\n { type: 'o', name: 'objects', content: '<div class=\"i-objects\"></div>' },\r\n { type: 'f', name: 'flags', content: '<div class=\"i-flags\"></div>' },\r\n ]\r\n\r\n const tabElementHolder = document.createElement('ul')\r\n tabToolbar.appendChild(tabElementHolder)\r\n\r\n if (document.getElementById('emoji-close-div') === null) {\r\n const closeDiv = document.createElement('div')\r\n closeDiv.id = 'emoji-close-div'\r\n closeDiv.addEventListener('click', fnClose, false)\r\n document.getElementsByTagName('body')[0].appendChild(closeDiv)\r\n }\r\n else {\r\n document.getElementById('emoji-close-div').style.display = 'block'\r\n }\r\n\r\n emojiType.forEach(function (emojiTypeItem) {\r\n // add tab bar\r\n const tabElement = document.createElement('li')\r\n tabElement.classList.add('emoji-tab')\r\n tabElement.classList.add('filter-' + emojiTypeItem.name)\r\n const tabValue = emojiTypeItem.content\r\n tabElement.innerHTML = tabValue\r\n tabElement.dataset.filter = emojiTypeItem.type\r\n tabElementHolder.appendChild(tabElement)\r\n\r\n const emojiFilter = document.querySelector('.filter-' + emojiTypeItem.name)\r\n emojiFilter.addEventListener('click', function () {\r\n const tab = document.querySelector('.emoji-tab.active')\r\n if (tab) {\r\n tab.classList.remove('active')\r\n }\r\n emojiFilter.classList.toggle('active')\r\n fnUpdateEmojiContainer(emojiFilter, panel, quill)\r\n })\r\n })\r\n fnEmojiPanelInit(panel, quill)\r\n}\r\n\r\nfunction fnEmojiPanelInit(panel, quill) {\r\n fnEmojiElementsToPanel('p', panel, quill)\r\n document.querySelector('.filter-people').classList.add('active')\r\n}\r\n\r\nfunction fnEmojiElementsToPanel(_type, panel, quill) {\r\n const result = emojiList\r\n result.sort(function (a: any, b: any) {\r\n return a.emoji_order - b.emoji_order\r\n })\r\n\r\n quill.focus()\r\n const range = fnUpdateRange(quill)\r\n\r\n result.forEach(function (emoji: any) {\r\n const span = document.createElement('span')\r\n const t = document.createTextNode(emoji.shortname)\r\n span.appendChild(t)\r\n span.classList.add('bem')\r\n span.classList.add('bem-' + emoji.name)\r\n span.classList.add('ap')\r\n span.classList.add('ap-' + emoji.name)\r\n const output = String(String(emoji.code_decimal))\r\n span.innerHTML = output + ' '\r\n panel.appendChild(span)\r\n\r\n const customButton = document.querySelector('.bem-' + emoji.name)\r\n if (customButton) {\r\n customButton.addEventListener('click', function () {\r\n quill.insertEmbed(range.index, 'emoji', emoji, Quill.sources.USER)\r\n setTimeout(() => quill.setSelection(range.index + 1), 0)\r\n fnClose()\r\n })\r\n }\r\n })\r\n}\r\n\r\nfunction fnUpdateEmojiContainer(emojiFilter, panel, quill) {\r\n while (panel.firstChild) {\r\n panel.removeChild(panel.firstChild)\r\n }\r\n const type = emojiFilter.dataset.filter\r\n fnEmojiElementsToPanel(type, panel, quill)\r\n}\r\n\r\nexport default ToolbarEmoji\r\n"],"names":["emojiSprite"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"toolbar-emoji.es.js","sources":["../../../../src/emoji/modules/toolbar-emoji.ts"],"sourcesContent":["import Quill from 'quill'\nimport { EMOJI_SPRITE as emojiSprite } from '../../config/base64-image'\nimport emojiList from '../emoji-list'\n\nconst Module = Quill.imports['core/module']\n\nclass ToolbarEmoji extends Module {\n quill: any\n toolbar: any\n constructor(quill, options) {\n super(quill, options)\n\n this.quill = quill\n this.toolbar = quill.getModule('toolbar')\n if (typeof this.toolbar !== 'undefined') {\n this.toolbar.addHandler('emoji', this.checkPalatteExist)\n }\n\n // 在emoji模块加载时判断并插入emoji精灵图样式,防止重复插入\n let emojiStyle = document.querySelector('style#devui-emoji-sprite')\n if (!emojiStyle) {\n emojiStyle = document.createElement('style')\n emojiStyle.setAttribute('id', 'devui-emoji-sprite')\n emojiStyle.innerHTML = `.ap{background-image:url(${emojiSprite})}`\n document.head.appendChild(emojiStyle)\n }\n }\n\n checkPalatteExist() {\n const quill = this.quill\n fnCheckDialogOpen(quill)\n this.quill.on('text-change', (_delta, _oldDelta, source) => {\n if (source === 'user') {\n fnClose()\n fnUpdateRange(quill)\n }\n })\n }\n}\n\nfunction fnClose() {\n const eleEmojiPlate = document.getElementById('emoji-palette')\n document.getElementById('emoji-close-div').style.display = 'none'\n if (eleEmojiPlate) {\n eleEmojiPlate.remove()\n }\n}\n\nfunction fnCheckDialogOpen(quill) {\n const elementExists = document.getElementById('emoji-palette')\n if (elementExists) {\n elementExists.remove()\n }\n else {\n fnShowEmojiPalatte(quill)\n }\n}\n\nfunction fnUpdateRange(quill) {\n const range = quill.getSelection()\n return range\n}\n\nfunction fnShowEmojiPalatte(quill) {\n const eleEmojiArea = document.createElement('div')\n const range = quill.getSelection()\n const atSignBounds = quill.getBounds(range.index)\n\n quill.container.appendChild(eleEmojiArea)\n const containerRect = quill.container.getBoundingClientRect()\n const paletteMaxPos = atSignBounds.left + 250 // palette max width is 250\n eleEmojiArea.id = 'emoji-palette'\n eleEmojiArea.style.top = `${10 + atSignBounds.top + atSignBounds.height + containerRect.top}px`\n if (paletteMaxPos > quill.container.offsetWidth) {\n eleEmojiArea.style.left = `${atSignBounds.left + containerRect.left - 250}px`\n }\n else {\n eleEmojiArea.style.left = `${atSignBounds.left + containerRect.left}px`\n }\n\n const tabToolbar = document.createElement('div')\n tabToolbar.id = 'tab-toolbar'\n eleEmojiArea.appendChild(tabToolbar)\n\n // panel\n const panel = document.createElement('div')\n panel.id = 'tab-panel'\n eleEmojiArea.appendChild(panel)\n\n const emojiType = [\n { type: 'p', name: 'people', content: '<div class=\"i-people\"></div>' },\n { type: 'n', name: 'nature', content: '<div class=\"i-nature\"></div>' },\n { type: 'd', name: 'food', content: '<div class=\"i-food\"></div>' },\n { type: 's', name: 'symbols', content: '<div class=\"i-symbols\"></div>' },\n { type: 'a', name: 'activity', content: '<div class=\"i-activity\"></div>' },\n { type: 't', name: 'travel', content: '<div class=\"i-travel\"></div>' },\n { type: 'o', name: 'objects', content: '<div class=\"i-objects\"></div>' },\n { type: 'f', name: 'flags', content: '<div class=\"i-flags\"></div>' },\n ]\n\n const tabElementHolder = document.createElement('ul')\n tabToolbar.appendChild(tabElementHolder)\n\n if (document.getElementById('emoji-close-div') === null) {\n const closeDiv = document.createElement('div')\n closeDiv.id = 'emoji-close-div'\n closeDiv.addEventListener('click', fnClose, false)\n document.getElementsByTagName('body')[0].appendChild(closeDiv)\n }\n else {\n document.getElementById('emoji-close-div').style.display = 'block'\n }\n\n emojiType.forEach((emojiTypeItem) => {\n // add tab bar\n const tabElement = document.createElement('li')\n tabElement.classList.add('emoji-tab')\n tabElement.classList.add(`filter-${emojiTypeItem.name}`)\n const tabValue = emojiTypeItem.content\n tabElement.innerHTML = tabValue\n tabElement.dataset.filter = emojiTypeItem.type\n tabElementHolder.appendChild(tabElement)\n\n const emojiFilter = document.querySelector(`.filter-${emojiTypeItem.name}`)\n emojiFilter.addEventListener('click', () => {\n const tab = document.querySelector('.emoji-tab.active')\n if (tab) {\n tab.classList.remove('active')\n }\n emojiFilter.classList.toggle('active')\n fnUpdateEmojiContainer(emojiFilter, panel, quill)\n })\n })\n fnEmojiPanelInit(panel, quill)\n}\n\nfunction fnEmojiPanelInit(panel, quill) {\n fnEmojiElementsToPanel('p', panel, quill)\n document.querySelector('.filter-people').classList.add('active')\n}\n\nfunction fnEmojiElementsToPanel(_type, panel, quill) {\n const result = emojiList\n result.sort((a: any, b: any) => {\n return a.emoji_order - b.emoji_order\n })\n\n quill.focus()\n const range = fnUpdateRange(quill)\n\n result.forEach((emoji: any) => {\n const span = document.createElement('span')\n const t = document.createTextNode(emoji.shortname)\n span.appendChild(t)\n span.classList.add('bem')\n span.classList.add(`bem-${emoji.name}`)\n span.classList.add('ap')\n span.classList.add(`ap-${emoji.name}`)\n const output = String(String(emoji.code_decimal))\n span.innerHTML = `${output} `\n panel.appendChild(span)\n\n const customButton = document.querySelector(`.bem-${emoji.name}`)\n if (customButton) {\n customButton.addEventListener('click', () => {\n quill.insertEmbed(range.index, 'emoji', emoji, Quill.sources.USER)\n setTimeout(() => quill.setSelection(range.index + 1), 0)\n fnClose()\n })\n }\n })\n}\n\nfunction fnUpdateEmojiContainer(emojiFilter, panel, quill) {\n while (panel.firstChild) {\n panel.removeChild(panel.firstChild)\n }\n const type = emojiFilter.dataset.filter\n fnEmojiElementsToPanel(type, panel, quill)\n}\n\nexport default ToolbarEmoji\n"],"names":["emojiSprite"],"mappings":"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"}
|
package/es/emoji/utils.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.es.js","sources":["../../../src/emoji/utils.ts"],"sourcesContent":["export function createEmoji(emojiArr) {\
|
|
1
|
+
{"version":3,"file":"utils.es.js","sources":["../../../src/emoji/utils.ts"],"sourcesContent":["export function createEmoji(emojiArr) {\n const emojiList = []\n emojiArr.forEach((emojiItem) => {\n const [name, unicode, shortname, codeDecimal, category, emojiOrder] = emojiItem\n emojiList.push({\n name,\n unicode,\n shortname,\n codeDecimal,\n category,\n emojiOrder,\n })\n })\n return emojiList\n}\n"],"names":[],"mappings":"AAAO,SAAS,YAAY,UAAU;AACpC,QAAM,YAAY,CAAA;AACT,WAAA,QAAQ,CAAC,cAAc;AAC9B,UAAM,CAAC,MAAM,SAAS,WAAW,aAAa,UAAU,UAAU,IAAI;AACtE,cAAU,KAAK;AAAA,MACb;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EAAA,CACF;AACM,SAAA;AACT;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file.es.js","sources":["../../../../src/file/formats/file.ts"],"sourcesContent":["import Quill from 'quill'\
|
|
1
|
+
{"version":3,"file":"file.es.js","sources":["../../../../src/file/formats/file.ts"],"sourcesContent":["import Quill from 'quill'\nimport { sanitize } from '../../config/editor.utils'\n\nconst Embed = Quill.imports['blots/embed']\nconst FILE_ATTRIBUTES = ['id', 'title', 'size', 'lastModified']\n\nclass File extends Embed {\n static blotName: string\n static tagName: string\n static className: string\n static PROTOCOL_WHITELIST: string[]\n statics: any\n domNode: any\n\n static create(value) {\n const node = super.create(value)\n const size = value.size / 1024\n const fixSize = !size ? 0 : size < 1 ? 1 : size.toFixed(0)\n node.classList.add('icon-file')\n node.setAttribute('contenteditable', false)\n const fileSvg = '<svg viewBox=\"0 0 1024 1024\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"><path d=\"M854.6 288.6L639.4 73.4c-6-6-14.1-9.4-22.6-9.4H192c-17.7 0-32 14.3-32 32v832c0 17.7 14.3 32 32 32h640c17.7 0 32-14.3 32-32V311.3c0-8.5-3.4-16.7-9.4-22.7zM790.2 326H602V137.8L790.2 326z m1.8 562H232V136h302v216c0 23.2 18.8 42 42 42h216v494z\" p-id=\"2307\"></path></svg>'\n node.innerHTML = `${fileSvg} ${value.title} (${fixSize} KB)`\n const src = File.sanitize(value.src)\n if (src) {\n node.href = src\n node.target = '_blank'\n }\n FILE_ATTRIBUTES.forEach((key) => {\n if (value[key]) {\n node.dataset[key] = value[key]\n }\n })\n return node\n }\n\n static value(domNode) {\n return File.getFormats(domNode)\n }\n\n static formats(domNode) {\n return File.getFormats(domNode)\n }\n\n static getFormats(domNode) {\n const formats: any = {}\n const href = File.sanitize(domNode.href)\n if (href) {\n formats.src = href\n }\n FILE_ATTRIBUTES.forEach((key) => {\n if (domNode.dataset[key]) {\n formats[key] = domNode.dataset[key]\n }\n })\n return formats\n }\n\n static sanitize(url) {\n return (sanitize(url, this.PROTOCOL_WHITELIST) && url) || ''\n }\n}\nFile.blotName = 'file'\nFile.tagName = 'A'\nFile.className = 'ql-file-item'\nFile.PROTOCOL_WHITELIST = ['http', 'https']\n\nexport default File\n"],"names":[],"mappings":";;AAGA,MAAM,QAAQ,MAAM,QAAQ,aAAa;AACzC,MAAM,kBAAkB,CAAC,MAAM,SAAS,QAAQ,cAAc;AAE9D,MAAM,aAAa,MAAM;AAAA,EAQvB,OAAO,OAAO,OAAO;AACb,UAAA,OAAO,MAAM,OAAO,KAAK;AACzB,UAAA,OAAO,MAAM,OAAO;AACpB,UAAA,UAAU,CAAC,OAAO,IAAI,OAAO,IAAI,IAAI,KAAK,QAAQ,CAAC;AACpD,SAAA,UAAU,IAAI,WAAW;AACzB,SAAA,aAAa,mBAAmB,KAAK;AAC1C,UAAM,UAAU;AAChB,SAAK,YAAY,GAAG,OAAO,IAAI,MAAM,KAAK,KAAK,OAAO;AACtD,UAAM,MAAM,KAAK,SAAS,MAAM,GAAG;AACnC,QAAI,KAAK;AACP,WAAK,OAAO;AACZ,WAAK,SAAS;AAAA,IAChB;AACgB,oBAAA,QAAQ,CAAC,QAAQ;AAC3B,UAAA,MAAM,GAAG,GAAG;AACd,aAAK,QAAQ,GAAG,IAAI,MAAM,GAAG;AAAA,MAC/B;AAAA,IAAA,CACD;AACM,WAAA;AAAA,EACT;AAAA,EAEA,OAAO,MAAM,SAAS;AACb,WAAA,KAAK,WAAW,OAAO;AAAA,EAChC;AAAA,EAEA,OAAO,QAAQ,SAAS;AACf,WAAA,KAAK,WAAW,OAAO;AAAA,EAChC;AAAA,EAEA,OAAO,WAAW,SAAS;AACzB,UAAM,UAAe,CAAA;AACrB,UAAM,OAAO,KAAK,SAAS,QAAQ,IAAI;AACvC,QAAI,MAAM;AACR,cAAQ,MAAM;AAAA,IAChB;AACgB,oBAAA,QAAQ,CAAC,QAAQ;AAC3B,UAAA,QAAQ,QAAQ,GAAG,GAAG;AACxB,gBAAQ,GAAG,IAAI,QAAQ,QAAQ,GAAG;AAAA,MACpC;AAAA,IAAA,CACD;AACM,WAAA;AAAA,EACT;AAAA,EAEA,OAAO,SAAS,KAAK;AACnB,WAAQ,SAAS,KAAK,KAAK,kBAAkB,KAAK,OAAQ;AAAA,EAC5D;AACF;AACA,KAAK,WAAW;AAChB,KAAK,UAAU;AACf,KAAK,YAAY;AACjB,KAAK,qBAAqB,CAAC,QAAQ,OAAO;"}
|
package/es/file/index.es.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../src/file/index.ts"],"sourcesContent":["import Quill from 'quill'\
|
|
1
|
+
{"version":3,"file":"index.es.js","sources":["../../../src/file/index.ts"],"sourcesContent":["import Quill from 'quill'\nimport File from './formats/file'\nimport FileBar from './modules/file-bar'\n\nconst Module = Quill.imports['core/module']\n\nclass FileModule extends Module {\n quill: any\n fileBar: FileBar\n\n static register() {\n Quill.register('formats/file', File, true)\n }\n\n constructor(quill, options) {\n super(quill, options)\n this.quill = quill\n quill.root.addEventListener('click', event => this.clickEvent(event), false)\n }\n\n clickEvent(event) {\n event.preventDefault()\n const target = event.target\n const fileDom = target.closest('a.ql-file-item')\n if (fileDom) {\n if (this.fileBar) {\n this.fileBar.destroy()\n }\n this.fileBar = new FileBar(this.quill, fileDom)\n }\n else if (this.fileBar && !target.closest('.ql-file-bar')) {\n this.fileBar.destroy()\n this.fileBar = null\n }\n }\n}\n\nexport default FileModule\n"],"names":[],"mappings":";;;AAIA,MAAM,SAAS,MAAM,QAAQ,aAAa;AAE1C,MAAM,mBAAmB,OAAO;AAAA,EAI9B,OAAO,WAAW;AACV,UAAA,SAAS,gBAAgB,MAAM,IAAI;AAAA,EAC3C;AAAA,EAEA,YAAY,OAAO,SAAS;AAC1B,UAAM,OAAO,OAAO;AACpB,SAAK,QAAQ;AACP,UAAA,KAAK,iBAAiB,SAAS,CAAA,UAAS,KAAK,WAAW,KAAK,GAAG,KAAK;AAAA,EAC7E;AAAA,EAEA,WAAW,OAAO;AAChB,UAAM,eAAe;AACrB,UAAM,SAAS,MAAM;AACf,UAAA,UAAU,OAAO,QAAQ,gBAAgB;AAC/C,QAAI,SAAS;AACX,UAAI,KAAK,SAAS;AAChB,aAAK,QAAQ;MACf;AACA,WAAK,UAAU,IAAI,QAAQ,KAAK,OAAO,OAAO;AAAA,IAAA,WAEvC,KAAK,WAAW,CAAC,OAAO,QAAQ,cAAc,GAAG;AACxD,WAAK,QAAQ;AACb,WAAK,UAAU;AAAA,IACjB;AAAA,EACF;AACF;"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import Quill from "quill";
|
|
2
|
+
import { Range } from "quill/core/selection";
|
|
2
3
|
import { unshiftString } from "../../utils/method.es.js";
|
|
3
4
|
import File from "../formats/file.es.js";
|
|
4
|
-
|
|
5
|
-
const Delta = Quill.imports["delta"];
|
|
5
|
+
const Delta = Quill.imports.delta;
|
|
6
6
|
class FileBar {
|
|
7
7
|
constructor(quill, target) {
|
|
8
8
|
this.quill = quill;
|
|
@@ -114,7 +114,7 @@ class FileBar {
|
|
|
114
114
|
const day = unshiftString(`${date.getDate()}`, 2, "0");
|
|
115
115
|
const hour = unshiftString(`${date.getHours()}`, 2, "0");
|
|
116
116
|
const minute = unshiftString(`${date.getMinutes()}`, 2, "0");
|
|
117
|
-
return isNaN(year) ? "--" : `${year}/${month}/${day} ${hour}:${minute}`;
|
|
117
|
+
return Number.isNaN(year) ? "--" : `${year}/${month}/${day} ${hour}:${minute}`;
|
|
118
118
|
}
|
|
119
119
|
}
|
|
120
120
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-bar.es.js","sources":["../../../../src/file/modules/file-bar.ts"],"sourcesContent":["import Quill from 'quill'\
|
|
1
|
+
{"version":3,"file":"file-bar.es.js","sources":["../../../../src/file/modules/file-bar.ts"],"sourcesContent":["import Quill from 'quill'\n// devui-internal api: utils\\public-api.ts\n\nimport { Range } from 'quill/core/selection'\nimport { unshiftString } from '../../utils/method'\nimport File from '../formats/file'\n\nconst Delta = Quill.imports.delta\n\nexport default class FileBar {\n quill: any\n file: any\n domNode: HTMLElement\n fileRange: any\n template: string\n\n constructor(quill, target) {\n this.quill = quill\n this.file = target\n const fileBlot = Quill.find(target)\n const index = this.quill.getIndex(fileBlot)\n const [fileItem, offset] = this.quill.scroll.descendant(File, index)\n const length = fileItem && fileItem.length()\n this.fileRange = new Range(index - offset, length)\n\n const timestamp = Number(this.file.dataset.lastModified)\n const _lastModifiedDate = this.formatDate(timestamp)\n this.template = [\n // `<a class=\"ql-last-modified-date\" href=\"${this.file.href}\" target=\"_blank\">${this.file.href}</a>`,\n // '<span class=\"ql-split\"></span>',\n // `<a class=\"ql-file-preview\"><i class=\"icon-preview\"></i></a>`,\n `<a class=\"ql-file-download\"><i class=\"icon-download\"></i></a>`,\n '<a class=\"ql-file-delete\"><i class=\"icon-delete\"></i></a>',\n ].join('')\n\n this.createFileBar()\n }\n\n createFileBar() {\n this.domNode = document.createElement('div')\n this.domNode.className = 'ql-file-bar'\n this.domNode.innerHTML = this.template\n // 查看文件\n const filePreview = this.domNode.querySelector('a.ql-file-preview')\n if (filePreview) {\n filePreview.addEventListener('click', (event) => {\n this.operateFile(event, 'view')\n })\n }\n // 下载文件\n const fileDownload = this.domNode.querySelector('a.ql-file-download')\n if (fileDownload) {\n fileDownload.addEventListener('click', (event) => {\n this.operateFile(event, 'download')\n })\n }\n // 删除文件\n const fileDelete = this.domNode.querySelector('a.ql-file-delete')\n if (fileDelete) {\n fileDelete.addEventListener('click', (event) => {\n this.operateFile(event, 'delete')\n const delta = new Delta()\n .retain(this.fileRange.index)\n .delete(this.fileRange.length)\n this.quill.updateContents(delta, Quill.sources.USER)\n this.quill.setSelection(this.fileRange.index)\n })\n }\n\n this.setPosition()\n this.quill.root.parentNode.appendChild(this.domNode)\n }\n\n destroy() {\n if (this.domNode) {\n this.domNode.remove()\n this.domNode = null\n this.file = null\n }\n }\n\n operateFile(event, operate) {\n event.preventDefault()\n const fileId = this.file.dataset.id || ''\n const fileDownloadUrl = this.file.href\n if (fileId) {\n this.quill.emitter.emit('file-change', {\n operation: operate,\n data: { fileId, fileDownloadUrl },\n })\n }\n if (operate === 'download') {\n const a = document.createElement('a')\n a.href = fileDownloadUrl\n a.target = '_blank'\n a.id = 'exppub'\n document.body.appendChild(a)\n const alink = document.getElementById('exppub')\n alink.click()\n alink.parentNode.removeChild(a)\n }\n this.destroy()\n }\n\n setPosition() {\n if (this.domNode && this.file) {\n const parent = this.quill.root.parentNode\n const child = this.file.querySelector('span')\n const containerRect = parent.getBoundingClientRect()\n const fileRect = child.getBoundingClientRect()\n this.css(this.domNode, {\n left: `${fileRect.left - containerRect.left}px`,\n top: `${fileRect.top - containerRect.top + 10}px`,\n })\n }\n }\n\n css(domNode, rules) {\n if (typeof rules === 'object') {\n for (const prop in rules) {\n if (prop) {\n if (Array.isArray(rules[prop])) {\n // 兼容IE11浏览器\n rules[prop].forEach((val) => {\n domNode.style[prop] = val\n })\n }\n else {\n domNode.style[prop] = rules[prop]\n }\n }\n }\n }\n }\n\n formatDate(timestamp) {\n const date = new Date(timestamp)\n const year = date.getFullYear()\n // TODO\n const month = unshiftString(`${date.getMonth() + 1}`, 2, '0')\n const day = unshiftString(`${date.getDate()}`, 2, '0')\n const hour = unshiftString(`${date.getHours()}`, 2, '0')\n const minute = unshiftString(`${date.getMinutes()}`, 2, '0')\n return Number.isNaN(year) ? '--' : `${year}/${month}/${day} ${hour}:${minute}`\n }\n}\n"],"names":[],"mappings":"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"}
|
package/es/fluent-editor.es.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import Quill from "quill";
|
|
2
|
+
import "./attributors/index.es.js";
|
|
2
3
|
import { ICONS_CONFIG, inputFile, getListValue, TABLE_RIGHT_MENU_CONFIG } from "./config.es.js";
|
|
3
4
|
import Counter from "./counter/index.es.js";
|
|
4
5
|
import CustomClipboard from "./custom-clipboard.es.js";
|
|
@@ -7,17 +8,16 @@ import { CustomImageSpec } from "./custom-image/specs/CustomImageSpec.es.js";
|
|
|
7
8
|
import CustomUploader from "./custom-uploader.es.js";
|
|
8
9
|
import Emoji from "./emoji/index.es.js";
|
|
9
10
|
import FileModule from "./file/index.es.js";
|
|
11
|
+
import { FormatPainter } from "./format-painter/index.es.js";
|
|
10
12
|
import Link from "./link/index.es.js";
|
|
11
13
|
import Mention from "./mention/Mention.es.js";
|
|
12
14
|
import { Screenshot } from "./screenshot/index.es.js";
|
|
13
15
|
import SoftBreak from "./soft-break/index.es.js";
|
|
14
16
|
import StrikeBlot from "./strike/index.es.js";
|
|
15
|
-
import BetterTable from "./table/better-table.es.js";
|
|
16
17
|
import CustomSyntax from "./syntax/index.es.js";
|
|
18
|
+
import BetterTable from "./table/better-table.es.js";
|
|
17
19
|
import BetterToolbar from "./toolbar/index.es.js";
|
|
18
20
|
import Video from "./video/index.es.js";
|
|
19
|
-
import { FormatPainter } from "./format-painter/index.es.js";
|
|
20
|
-
import "./attributors/index.es.js";
|
|
21
21
|
import { FontStyle } from "./attributors/font-style.es.js";
|
|
22
22
|
import { SizeStyle } from "./attributors/font-size.es.js";
|
|
23
23
|
import { LineHeightStyle } from "./attributors/line-height.es.js";
|