@itfin/components 1.0.9 → 1.0.10
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/package.json +3 -1
- package/src/assets/loading.css +49 -0
- package/src/components/button/Button.vue +1 -0
- package/src/components/icon/Icon.vue +8 -3
- package/src/components/icon/components/airplay.vue +1 -0
- package/src/components/icon/components/alarm_clock.vue +1 -0
- package/src/components/icon/components/align_horizontal.vue +1 -0
- package/src/components/icon/components/align_vertical.vue +1 -0
- package/src/components/icon/components/angle.vue +1 -0
- package/src/components/icon/components/archive.vue +1 -0
- package/src/components/icon/components/arrow_bottom_left.vue +1 -0
- package/src/components/icon/components/arrow_bottom_right.vue +1 -0
- package/src/components/icon/components/arrow_down.vue +1 -0
- package/src/components/icon/components/arrow_down_circle.vue +1 -0
- package/src/components/icon/components/arrow_left.vue +1 -0
- package/src/components/icon/components/arrow_left_circle.vue +1 -0
- package/src/components/icon/components/arrow_right.vue +1 -0
- package/src/components/icon/components/arrow_right_circle.vue +1 -0
- package/src/components/icon/components/arrow_top_left.vue +1 -0
- package/src/components/icon/components/arrow_top_right.vue +1 -0
- package/src/components/icon/components/arrow_up.vue +1 -0
- package/src/components/icon/components/arrow_up_circle.vue +1 -0
- package/src/components/icon/components/audio_wave.vue +1 -0
- package/src/components/icon/components/backspace.vue +1 -0
- package/src/components/icon/components/backward.vue +1 -0
- package/src/components/icon/components/bag.vue +1 -0
- package/src/components/icon/components/battery_75.vue +1 -0
- package/src/components/icon/components/battery_charging.vue +1 -0
- package/src/components/icon/components/battery_empty.vue +1 -0
- package/src/components/icon/components/battery_full.vue +1 -0
- package/src/components/icon/components/battery_half.vue +1 -0
- package/src/components/icon/components/battery_low.vue +1 -0
- package/src/components/icon/components/bell.vue +1 -0
- package/src/components/icon/components/bell_disabled.vue +1 -0
- package/src/components/icon/components/bell_ringing.vue +1 -0
- package/src/components/icon/components/bell_snooze.vue +1 -0
- package/src/components/icon/components/bluetooth.vue +1 -0
- package/src/components/icon/components/book.vue +1 -0
- package/src/components/icon/components/book_closed.vue +1 -0
- package/src/components/icon/components/book_text.vue +1 -0
- package/src/components/icon/components/bookmark.vue +1 -0
- package/src/components/icon/components/bookmark_book.vue +1 -0
- package/src/components/icon/components/box.vue +1 -0
- package/src/components/icon/components/box_download.vue +1 -0
- package/src/components/icon/components/box_open.vue +1 -0
- package/src/components/icon/components/branch.vue +1 -0
- package/src/components/icon/components/briefcase.vue +1 -0
- package/src/components/icon/components/browser.vue +1 -0
- package/src/components/icon/components/browser_alt.vue +1 -0
- package/src/components/icon/components/button_add.vue +1 -0
- package/src/components/icon/components/button_minus.vue +1 -0
- package/src/components/icon/components/calculator.vue +1 -0
- package/src/components/icon/components/calendar.vue +1 -0
- package/src/components/icon/components/calendar_add.vue +1 -0
- package/src/components/icon/components/calendar_date.vue +1 -0
- package/src/components/icon/components/calendar_day.vue +1 -0
- package/src/components/icon/components/calendar_days.vue +1 -0
- package/src/components/icon/components/calendar_last_day.vue +1 -0
- package/src/components/icon/components/calendar_month.vue +1 -0
- package/src/components/icon/components/calendar_move.vue +1 -0
- package/src/components/icon/components/calendar_remove.vue +1 -0
- package/src/components/icon/components/calendar_split.vue +1 -0
- package/src/components/icon/components/calendar_week.vue +1 -0
- package/src/components/icon/components/camera.vue +1 -0
- package/src/components/icon/components/camera_alt.vue +1 -0
- package/src/components/icon/components/camera_noflash.vue +1 -0
- package/src/components/icon/components/camera_noflash_alt.vue +1 -0
- package/src/components/icon/components/capture.vue +1 -0
- package/src/components/icon/components/card_timeline.vue +1 -0
- package/src/components/icon/components/card_view.vue +1 -0
- package/src/components/icon/components/carousel.vue +1 -0
- package/src/components/icon/components/cart.vue +1 -0
- package/src/components/icon/components/cast.vue +1 -0
- package/src/components/icon/components/chain.vue +1 -0
- package/src/components/icon/components/chat_add.vue +1 -0
- package/src/components/icon/components/check.vue +1 -0
- package/src/components/icon/components/check_circle.vue +1 -0
- package/src/components/icon/components/check_circle_outside.vue +1 -0
- package/src/components/icon/components/checkbox_checked.vue +1 -0
- package/src/components/icon/components/checkbox_empty.vue +1 -0
- package/src/components/icon/components/chevron_close.vue +1 -0
- package/src/components/icon/components/chevron_down.vue +1 -0
- package/src/components/icon/components/chevron_down_circle.vue +1 -0
- package/src/components/icon/components/chevron_down_double.vue +1 -0
- package/src/components/icon/components/chevron_left.vue +1 -0
- package/src/components/icon/components/chevron_left_circle.vue +1 -0
- package/src/components/icon/components/chevron_left_double.vue +1 -0
- package/src/components/icon/components/chevron_open.vue +1 -0
- package/src/components/icon/components/chevron_right.vue +1 -0
- package/src/components/icon/components/chevron_right_circle.vue +1 -0
- package/src/components/icon/components/chevron_right_double.vue +1 -0
- package/src/components/icon/components/chevron_up.vue +1 -0
- package/src/components/icon/components/chevron_up_circle.vue +1 -0
- package/src/components/icon/components/chevron_up_double.vue +1 -0
- package/src/components/icon/components/circle.vue +1 -0
- package/src/components/icon/components/circle_menu.vue +1 -0
- package/src/components/icon/components/circle_split.vue +1 -0
- package/src/components/icon/components/clipboard.vue +1 -0
- package/src/components/icon/components/clipboard_add.vue +1 -0
- package/src/components/icon/components/clipboard_check.vue +1 -0
- package/src/components/icon/components/clipboard_copy.vue +1 -0
- package/src/components/icon/components/clipboard_cross.vue +1 -0
- package/src/components/icon/components/clipboard_notes.vue +1 -0
- package/src/components/icon/components/clipboard_remove.vue +1 -0
- package/src/components/icon/components/clock.vue +1 -0
- package/src/components/icon/components/close.vue +1 -0
- package/src/components/icon/components/cloud.vue +1 -0
- package/src/components/icon/components/cloud_disconnect.vue +1 -0
- package/src/components/icon/components/cloud_download.vue +1 -0
- package/src/components/icon/components/cloud_download_alt.vue +1 -0
- package/src/components/icon/components/cloud_upload.vue +1 -0
- package/src/components/icon/components/cloud_upload_alt.vue +1 -0
- package/src/components/icon/components/code.vue +1 -0
- package/src/components/icon/components/coffee.vue +1 -0
- package/src/components/icon/components/coin.vue +1 -0
- package/src/components/icon/components/coins.vue +1 -0
- package/src/components/icon/components/compass.vue +1 -0
- package/src/components/icon/components/component_add.vue +1 -0
- package/src/components/icon/components/contacts.vue +1 -0
- package/src/components/icon/components/contract.vue +1 -0
- package/src/components/icon/components/create.vue +1 -0
- package/src/components/icon/components/credit_card.vue +1 -0
- package/src/components/icon/components/crop.vue +1 -0
- package/src/components/icon/components/cross.vue +1 -0
- package/src/components/icon/components/cross_circle.vue +1 -0
- package/src/components/icon/components/crosshair.vue +1 -0
- package/src/components/icon/components/cube.vue +1 -0
- package/src/components/icon/components/cylinder.vue +1 -0
- package/src/components/icon/components/database.vue +1 -0
- package/src/components/icon/components/diamond.vue +1 -0
- package/src/components/icon/components/directions.vue +1 -0
- package/src/components/icon/components/disc.vue +1 -0
- package/src/components/icon/components/display.vue +1 -0
- package/src/components/icon/components/display_alt.vue +1 -0
- package/src/components/icon/components/document.vue +1 -0
- package/src/components/icon/components/document_justified.vue +1 -0
- package/src/components/icon/components/document_list.vue +1 -0
- package/src/components/icon/components/document_stack.vue +1 -0
- package/src/components/icon/components/document_words.vue +1 -0
- package/src/components/icon/components/door.vue +1 -0
- package/src/components/icon/components/door_alt.vue +1 -0
- package/src/components/icon/components/download.vue +1 -0
- package/src/components/icon/components/download_alt.vue +1 -0
- package/src/components/icon/components/downward.vue +1 -0
- package/src/components/icon/components/drag.vue +1 -0
- package/src/components/icon/components/drag_circle.vue +1 -0
- package/src/components/icon/components/drag_vertical.vue +1 -0
- package/src/components/icon/components/duplicate.vue +1 -0
- package/src/components/icon/components/duplicate_alt.vue +1 -0
- package/src/components/icon/components/enter.vue +1 -0
- package/src/components/icon/components/enter_alt.vue +1 -0
- package/src/components/icon/components/episodes.vue +1 -0
- package/src/components/icon/components/exit_left.vue +1 -0
- package/src/components/icon/components/exit_right.vue +1 -0
- package/src/components/icon/components/expand.vue +1 -0
- package/src/components/icon/components/expand_height.vue +1 -0
- package/src/components/icon/components/expand_width.vue +1 -0
- package/src/components/icon/components/external.vue +1 -0
- package/src/components/icon/components/eye.vue +1 -0
- package/src/components/icon/components/eye_closed.vue +1 -0
- package/src/components/icon/components/eye_no.vue +1 -0
- package/src/components/icon/components/face_delighted.vue +1 -0
- package/src/components/icon/components/face_happy.vue +1 -0
- package/src/components/icon/components/face_neutral.vue +1 -0
- package/src/components/icon/components/face_sad.vue +1 -0
- package/src/components/icon/components/file_download.vue +1 -0
- package/src/components/icon/components/file_upload.vue +1 -0
- package/src/components/icon/components/files_history.vue +1 -0
- package/src/components/icon/components/files_multi.vue +1 -0
- package/src/components/icon/components/files_stack.vue +1 -0
- package/src/components/icon/components/film.vue +1 -0
- package/src/components/icon/components/filter.vue +1 -0
- package/src/components/icon/components/filter_circle.vue +1 -0
- package/src/components/icon/components/filter_single.vue +1 -0
- package/src/components/icon/components/filtering.vue +1 -0
- package/src/components/icon/components/fingerprint.vue +1 -0
- package/src/components/icon/components/flag.vue +1 -0
- package/src/components/icon/components/flame.vue +7 -0
- package/src/components/icon/components/flame_alt.vue +1 -0
- package/src/components/icon/components/flip_view.vue +1 -0
- package/src/components/icon/components/floppy.vue +1 -0
- package/src/components/icon/components/folder_add.vue +1 -0
- package/src/components/icon/components/folder_closed.vue +1 -0
- package/src/components/icon/components/folder_minus.vue +1 -0
- package/src/components/icon/components/folder_open.vue +1 -0
- package/src/components/icon/components/fork_git.vue +1 -0
- package/src/components/icon/components/forward.vue +1 -0
- package/src/components/icon/components/frame.vue +1 -0
- package/src/components/icon/components/fullscreen.vue +1 -0
- package/src/components/icon/components/funnel.vue +1 -0
- package/src/components/icon/components/gauge.vue +1 -0
- package/src/components/icon/components/gift.vue +1 -0
- package/src/components/icon/components/globe.vue +1 -0
- package/src/components/icon/components/gps.vue +1 -0
- package/src/components/icon/components/grab.vue +1 -0
- package/src/components/icon/components/graph_bar.vue +1 -0
- package/src/components/icon/components/graph_box.vue +1 -0
- package/src/components/icon/components/graph_increase.vue +1 -0
- package/src/components/icon/components/grid.vue +1 -0
- package/src/components/icon/components/grid_circles.vue +1 -0
- package/src/components/icon/components/grid_circles_add.vue +1 -0
- package/src/components/icon/components/grid_small.vue +1 -0
- package/src/components/icon/components/grid_squares.vue +1 -0
- package/src/components/icon/components/grid_squares_add.vue +1 -0
- package/src/components/icon/components/hand.vue +1 -0
- package/src/components/icon/components/harddrive.vue +1 -0
- package/src/components/icon/components/hash.vue +1 -0
- package/src/components/icon/components/heart.vue +1 -0
- package/src/components/icon/components/heart_rate.vue +1 -0
- package/src/components/icon/components/heart_remove.vue +1 -0
- package/src/components/icon/components/height.vue +1 -0
- package/src/components/icon/components/hierarchy.vue +1 -0
- package/src/components/icon/components/home.vue +1 -0
- package/src/components/icon/components/home_alt.vue +1 -0
- package/src/components/icon/components/home_check.vue +1 -0
- package/src/components/icon/components/home_door.vue +1 -0
- package/src/components/icon/components/import.vue +1 -0
- package/src/components/icon/components/inbox.vue +1 -0
- package/src/components/icon/components/inbox_alt.vue +1 -0
- package/src/components/icon/components/info_circle.vue +1 -0
- package/src/components/icon/components/iphone_landscape.vue +1 -0
- package/src/components/icon/components/iphone_portrait.vue +1 -0
- package/src/components/icon/components/jump_backward.vue +1 -0
- package/src/components/icon/components/jump_forward.vue +1 -0
- package/src/components/icon/components/jump_left.vue +1 -0
- package/src/components/icon/components/jump_right.vue +1 -0
- package/src/components/icon/components/keyboard.vue +1 -0
- package/src/components/icon/components/laptop.vue +1 -0
- package/src/components/icon/components/lightbulb.vue +1 -0
- package/src/components/icon/components/lightbulb_on.vue +1 -0
- package/src/components/icon/components/lightning.vue +1 -0
- package/src/components/icon/components/lightning_alt.vue +1 -0
- package/src/components/icon/components/lineweight.vue +1 -0
- package/src/components/icon/components/link.vue +1 -0
- package/src/components/icon/components/link_alt.vue +1 -0
- package/src/components/icon/components/link_broken.vue +1 -0
- package/src/components/icon/components/link_horizontal.vue +1 -0
- package/src/components/icon/components/link_vertical.vue +1 -0
- package/src/components/icon/components/list.vue +1 -0
- package/src/components/icon/components/list_add.vue +1 -0
- package/src/components/icon/components/list_numbered.vue +1 -0
- package/src/components/icon/components/loader.vue +1 -0
- package/src/components/icon/components/location.vue +1 -0
- package/src/components/icon/components/lock.vue +1 -0
- package/src/components/icon/components/lock_open.vue +1 -0
- package/src/components/icon/components/mail.vue +1 -0
- package/src/components/icon/components/mail_add.vue +1 -0
- package/src/components/icon/components/mail_delete.vue +1 -0
- package/src/components/icon/components/mail_minus.vue +1 -0
- package/src/components/icon/components/mail_new.vue +1 -0
- package/src/components/icon/components/mail_open.vue +1 -0
- package/src/components/icon/components/mail_remove.vue +1 -0
- package/src/components/icon/components/marquee.vue +1 -0
- package/src/components/icon/components/maximise.vue +1 -0
- package/src/components/icon/components/menu_hamburger.vue +1 -0
- package/src/components/icon/components/menu_horizontal.vue +1 -0
- package/src/components/icon/components/menu_vertical.vue +1 -0
- package/src/components/icon/components/message.vue +1 -0
- package/src/components/icon/components/message_writing.vue +1 -0
- package/src/components/icon/components/microphone.vue +1 -0
- package/src/components/icon/components/microphone_disabled.vue +1 -0
- package/src/components/icon/components/microphone_muted.vue +1 -0
- package/src/components/icon/components/midpoint.vue +1 -0
- package/src/components/icon/components/mini_player.vue +1 -0
- package/src/components/icon/components/minimise.vue +1 -0
- package/src/components/icon/components/minus.vue +1 -0
- package/src/components/icon/components/minus_circle.vue +1 -0
- package/src/components/icon/components/moon.vue +1 -0
- package/src/components/icon/components/move.vue +1 -0
- package/src/components/icon/components/newspaper.vue +1 -0
- package/src/components/icon/components/no_sign.vue +1 -0
- package/src/components/icon/components/notebook.vue +1 -0
- package/src/components/icon/components/notification.vue +1 -0
- package/src/components/icon/components/nut.vue +1 -0
- package/src/components/icon/components/pages.vue +1 -0
- package/src/components/icon/components/panel_bottom.vue +1 -0
- package/src/components/icon/components/panel_center.vue +1 -0
- package/src/components/icon/components/panel_left.vue +1 -0
- package/src/components/icon/components/panel_right.vue +1 -0
- package/src/components/icon/components/panel_sectioned.vue +1 -0
- package/src/components/icon/components/panel_top.vue +1 -0
- package/src/components/icon/components/paper.vue +1 -0
- package/src/components/icon/components/paper_folded.vue +1 -0
- package/src/components/icon/components/paper_plane.vue +1 -0
- package/src/components/icon/components/paper_plane_alt.vue +1 -0
- package/src/components/icon/components/paperclip.vue +1 -0
- package/src/components/icon/components/paragraph_center.vue +1 -0
- package/src/components/icon/components/paragraph_end.vue +1 -0
- package/src/components/icon/components/paragraph_left.vue +1 -0
- package/src/components/icon/components/paragraph_right.vue +1 -0
- package/src/components/icon/components/paragraph_start.vue +1 -0
- package/src/components/icon/components/pen.vue +1 -0
- package/src/components/icon/components/phone_landscape.vue +1 -0
- package/src/components/icon/components/phone_portrait.vue +1 -0
- package/src/components/icon/components/picture.vue +1 -0
- package/src/components/icon/components/pie_half.vue +1 -0
- package/src/components/icon/components/pie_quarter.vue +1 -0
- package/src/components/icon/components/pie_third.vue +1 -0
- package/src/components/icon/components/play_button.vue +1 -0
- package/src/components/icon/components/plus.vue +1 -0
- package/src/components/icon/components/plus_circle.vue +1 -0
- package/src/components/icon/components/postcard.vue +1 -0
- package/src/components/icon/components/printer.vue +1 -0
- package/src/components/icon/components/projector.vue +1 -0
- package/src/components/icon/components/pull_down.vue +1 -0
- package/src/components/icon/components/pull_left.vue +1 -0
- package/src/components/icon/components/pull_right.vue +1 -0
- package/src/components/icon/components/pull_up.vue +1 -0
- package/src/components/icon/components/push_down.vue +1 -0
- package/src/components/icon/components/push_left.vue +1 -0
- package/src/components/icon/components/push_right.vue +1 -0
- package/src/components/icon/components/push_up.vue +1 -0
- package/src/components/icon/components/question_circle.vue +1 -0
- package/src/components/icon/components/radio_on.vue +1 -0
- package/src/components/icon/components/receipt.vue +1 -0
- package/src/components/icon/components/record.vue +1 -0
- package/src/components/icon/components/redo.vue +1 -0
- package/src/components/icon/components/refresh.vue +1 -0
- package/src/components/icon/components/refresh_alt.vue +1 -0
- package/src/components/icon/components/replicate.vue +1 -0
- package/src/components/icon/components/replicate_alt.vue +1 -0
- package/src/components/icon/components/reset.vue +1 -0
- package/src/components/icon/components/reset_alt.vue +1 -0
- package/src/components/icon/components/reset_forward.vue +1 -0
- package/src/components/icon/components/reset_hard.vue +1 -0
- package/src/components/icon/components/reset_temporary.vue +1 -0
- package/src/components/icon/components/retweet.vue +1 -0
- package/src/components/icon/components/reuse.vue +1 -0
- package/src/components/icon/components/reverse.vue +1 -0
- package/src/components/icon/components/reverse_alt.vue +1 -0
- package/src/components/icon/components/revert.vue +1 -0
- package/src/components/icon/components/rocket.vue +1 -0
- package/src/components/icon/components/ruler.vue +1 -0
- package/src/components/icon/components/scale.vue +1 -0
- package/src/components/icon/components/scale_contract.vue +1 -0
- package/src/components/icon/components/scale_extend.vue +1 -0
- package/src/components/icon/components/scalpel.vue +1 -0
- package/src/components/icon/components/search.vue +1 -0
- package/src/components/icon/components/server.vue +1 -0
- package/src/components/icon/components/settings.vue +1 -0
- package/src/components/icon/components/share.vue +1 -0
- package/src/components/icon/components/share_alt.vue +1 -0
- package/src/components/icon/components/shuffle.vue +1 -0
- package/src/components/icon/components/side_menu.vue +1 -0
- package/src/components/icon/components/slash_backward.vue +1 -0
- package/src/components/icon/components/slash_forward.vue +1 -0
- package/src/components/icon/components/sliders.vue +1 -0
- package/src/components/icon/components/sort.vue +1 -0
- package/src/components/icon/components/sort_alt.vue +1 -0
- package/src/components/icon/components/speaker.vue +1 -0
- package/src/components/icon/components/speech_bubble.vue +1 -0
- package/src/components/icon/components/speech_typing.vue +1 -0
- package/src/components/icon/components/split.vue +1 -0
- package/src/components/icon/components/split_three.vue +1 -0
- package/src/components/icon/components/star.vue +1 -0
- package/src/components/icon/components/sun.vue +1 -0
- package/src/components/icon/components/support.vue +1 -0
- package/src/components/icon/components/swap.vue +1 -0
- package/src/components/icon/components/switch.vue +1 -0
- package/src/components/icon/components/table.vue +1 -0
- package/src/components/icon/components/table_header.vue +1 -0
- package/src/components/icon/components/tag.vue +1 -0
- package/src/components/icon/components/tag_milestone.vue +1 -0
- package/src/components/icon/components/tags.vue +1 -0
- package/src/components/icon/components/target.vue +1 -0
- package/src/components/icon/components/thread.vue +1 -0
- package/src/components/icon/components/thumbs_down.vue +1 -0
- package/src/components/icon/components/thumbs_up.vue +1 -0
- package/src/components/icon/components/ticket.vue +1 -0
- package/src/components/icon/components/timeline.vue +1 -0
- package/src/components/icon/components/todo.vue +1 -0
- package/src/components/icon/components/toggle.vue +1 -0
- package/src/components/icon/components/toggles.vue +1 -0
- package/src/components/icon/components/translate.vue +1 -0
- package/src/components/icon/components/trash.vue +1 -0
- package/src/components/icon/components/trash_alt.vue +1 -0
- package/src/components/icon/components/trophy.vue +1 -0
- package/src/components/icon/components/tv_mode.vue +1 -0
- package/src/components/icon/components/unarchive.vue +1 -0
- package/src/components/icon/components/undo.vue +1 -0
- package/src/components/icon/components/undo_history.vue +1 -0
- package/src/components/icon/components/unlink_horizontal.vue +1 -0
- package/src/components/icon/components/unlink_vertical.vue +1 -0
- package/src/components/icon/components/upload.vue +1 -0
- package/src/components/icon/components/upload_alt.vue +1 -0
- package/src/components/icon/components/upward.vue +1 -0
- package/src/components/icon/components/user.vue +1 -0
- package/src/components/icon/components/user_add.vue +1 -0
- package/src/components/icon/components/user_circle.vue +1 -0
- package/src/components/icon/components/user_male.vue +1 -0
- package/src/components/icon/components/user_male_circle.vue +1 -0
- package/src/components/icon/components/user_remove.vue +1 -0
- package/src/components/icon/components/users.vue +1 -0
- package/src/components/icon/components/venn.vue +1 -0
- package/src/components/icon/components/version.vue +1 -0
- package/src/components/icon/components/versions.vue +1 -0
- package/src/components/icon/components/video.vue +1 -0
- package/src/components/icon/components/volume_0.vue +1 -0
- package/src/components/icon/components/volume_add.vue +1 -0
- package/src/components/icon/components/volume_disabled.vue +1 -0
- package/src/components/icon/components/volume_high.vue +1 -0
- package/src/components/icon/components/volume_low.vue +1 -0
- package/src/components/icon/components/volume_minus.vue +1 -0
- package/src/components/icon/components/volume_muted.vue +1 -0
- package/src/components/icon/components/wallet.vue +1 -0
- package/src/components/icon/components/warning_circle.vue +1 -0
- package/src/components/icon/components/warning_hex.vue +1 -0
- package/src/components/icon/components/warning_triangle.vue +1 -0
- package/src/components/icon/components/waves.vue +1 -0
- package/src/components/icon/components/width.vue +1 -0
- package/src/components/icon/components/wifi.vue +1 -0
- package/src/components/icon/components/wifi_error.vue +1 -0
- package/src/components/icon/components/wifi_none.vue +1 -0
- package/src/components/icon/components/window.vue +1 -0
- package/src/components/icon/components/window_collapse_left.vue +1 -0
- package/src/components/icon/components/window_collapse_right.vue +1 -0
- package/src/components/icon/components/window_content.vue +1 -0
- package/src/components/icon/components/wrap_back.vue +1 -0
- package/src/components/icon/components/wrap_forward.vue +1 -0
- package/src/components/icon/components/write.vue +1 -0
- package/src/components/icon/components/zoom_cancel.vue +1 -0
- package/src/components/icon/components/zoom_in.vue +1 -0
- package/src/components/icon/components/zoom_out.vue +1 -0
- package/src/components/icon/components/zoom_reset.vue +1 -0
- package/src/components/icon/convert-icons.js +24 -0
- package/src/components/icon/icons.js +422 -0
- package/src/components/icon/index.stories.js +44 -0
- package/src/components/pdf-viewer/PdfViewer.vue +1354 -0
- package/src/components/pdf-viewer/images/loading-icon.svg +26 -0
- package/src/components/pdf-viewer/images/shadow.png +0 -0
- package/src/components/pdf-viewer/images/treeitem-collapsed.png +0 -0
- package/src/components/pdf-viewer/images/treeitem-collapsed@2x.png +0 -0
- package/src/components/pdf-viewer/images/treeitem-expanded.png +0 -0
- package/src/components/pdf-viewer/images/treeitem-expanded@2x.png +0 -0
- package/src/components/pdf-viewer/index.stories.js +44 -0
- package/src/components/pdf-viewer/pdfjs-dist/CODE_OF_CONDUCT.md +15 -0
- package/src/components/pdf-viewer/pdfjs-dist/LICENSE +177 -0
- package/src/components/pdf-viewer/pdfjs-dist/README.md +14 -0
- package/src/components/pdf-viewer/pdfjs-dist/bower.json +14 -0
- package/src/components/pdf-viewer/pdfjs-dist/build/pdf.js +13421 -0
- package/src/components/pdf-viewer/pdfjs-dist/build/pdf.js.map +1 -0
- package/src/components/pdf-viewer/pdfjs-dist/build/pdf.min.js +22 -0
- package/src/components/pdf-viewer/pdfjs-dist/build/pdf.worker.entry.js +19 -0
- package/src/components/pdf-viewer/pdfjs-dist/build/pdf.worker.js +45929 -0
- package/src/components/pdf-viewer/pdfjs-dist/build/pdf.worker.js.map +1 -0
- package/src/components/pdf-viewer/pdfjs-dist/build/pdf.worker.min.js +22 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78-RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78ms-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/78ms-RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/83pv-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/90ms-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/90ms-RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/90msp-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/90msp-RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/90pv-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/90pv-RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Add-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Add-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Add-RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Add-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-0.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-1.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-3.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-4.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-5.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-6.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-CNS1-UCS2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-GB1-0.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-GB1-1.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-GB1-2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-GB1-3.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-GB1-4.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-GB1-5.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-GB1-UCS2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-0.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-1.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-3.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-4.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-5.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-6.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Japan1-UCS2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Korea1-0.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Korea1-1.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Korea1-2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Adobe-Korea1-UCS2.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/B5pc-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/B5pc-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/CNS-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/CNS-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/CNS1-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/CNS1-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/CNS2-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/CNS2-V.bcmap +3 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/ETHK-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/ETHK-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/ETen-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/ETen-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/ETenms-B5-H.bcmap +3 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/ETenms-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Ext-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Ext-RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Ext-RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Ext-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GB-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GB-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GB-H.bcmap +4 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GB-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBK-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBK-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBK2K-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBK2K-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBKp-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBKp-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBT-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBT-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBT-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBT-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBTpc-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBTpc-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBpc-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/GBpc-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKdla-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKdla-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKdlb-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKdlb-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKgccs-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKgccs-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKm314-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKm314-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKm471-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKm471-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKscs-B5-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/HKscs-B5-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Hankaku.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Hiragana.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSC-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSC-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSC-Johab-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSC-Johab-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSCms-UHC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSCms-UHC-HW-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSCms-UHC-HW-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSCms-UHC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSCpc-EUC-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/KSCpc-EUC-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Katakana.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/LICENSE +36 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/NWP-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/NWP-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/RKSJ-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/RKSJ-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/Roman.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UCS2-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UCS2-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UTF16-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UTF16-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UTF32-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UTF32-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UTF8-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniCNS-UTF8-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UCS2-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UCS2-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UTF16-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UTF16-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UTF32-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UTF32-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UTF8-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniGB-UTF8-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UCS2-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UCS2-HW-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UCS2-HW-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UCS2-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UTF16-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UTF16-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UTF32-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UTF32-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UTF8-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS-UTF8-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS2004-UTF16-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS2004-UTF16-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS2004-UTF32-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS2004-UTF32-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS2004-UTF8-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJIS2004-UTF8-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJISPro-UCS2-HW-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJISPro-UCS2-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJISPro-UTF8-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJISX0213-UTF32-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJISX0213-UTF32-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJISX02132004-UTF32-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniJISX02132004-UTF32-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UCS2-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UCS2-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UTF16-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UTF16-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UTF32-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UTF32-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UTF8-H.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/UniKS-UTF8-V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/V.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/cmaps/WP-Symbol.bcmap +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/build/pdf.js +25473 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/build/pdf.js.map +1 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/build/pdf.worker.entry.js +19 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/build/pdf.worker.js +57878 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/build/pdf.worker.js.map +1 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-check.svg +11 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-comment.svg +16 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-help.svg +26 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-insert.svg +10 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-key.svg +11 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-newparagraph.svg +11 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-noicon.svg +7 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-note.svg +42 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/annotation-paragraph.svg +16 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/loading-icon.gif +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/shadow.png +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/images/texture.png +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/pdf_viewer.css +407 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/pdf_viewer.js +7757 -0
- package/src/components/pdf-viewer/pdfjs-dist/es5/web/pdf_viewer.js.map +1 -0
- package/src/components/pdf-viewer/pdfjs-dist/image_decoders/pdf.image_decoders.js +7994 -0
- package/src/components/pdf-viewer/pdfjs-dist/image_decoders/pdf.image_decoders.js.map +1 -0
- package/src/components/pdf-viewer/pdfjs-dist/image_decoders/pdf.image_decoders.min.js +22 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/README.md +7 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/annotation.js +1098 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/arithmetic_decoder.js +369 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/bidi.js +327 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/ccitt.js +720 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/ccitt_stream.js +82 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/cff_parser.js +1818 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/charsets.js +33 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/chunked_stream.js +628 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/cmap.js +912 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/colorspace.js +1061 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/core_utils.js +152 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/crypto.js +1605 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/document.js +760 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/encodings.js +69 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/evaluator.js +3576 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/font_renderer.js +981 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/fonts.js +3239 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/function.js +1366 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/glyphlist.js +4556 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/image.js +707 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/image_utils.js +94 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/jbig2.js +2223 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/jbig2_stream.js +99 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/jpeg_stream.js +236 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/jpg.js +1264 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/jpx.js +2351 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/jpx_stream.js +102 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/metrics.js +2969 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/murmurhash3.js +141 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/obj.js +2262 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/operator_list.js +672 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/parser.js +1322 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/pattern.js +954 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/pdf_manager.js +222 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/primitives.js +329 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/ps_parser.js +269 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/standard_fonts.js +759 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/stream.js +1317 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/type1_parser.js +726 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/unicode.js +1899 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/worker.js +551 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/core/worker_stream.js +168 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/annotation_layer.js +1048 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/api.js +2206 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/api_compatibility.js +47 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/canvas.js +2088 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/content_disposition.js +203 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/display_utils.js +524 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/fetch_stream.js +301 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/font_loader.js +402 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/metadata.js +143 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/network.js +572 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/network_utils.js +107 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/node_stream.js +482 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/pattern_helper.js +496 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/svg.js +1511 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/text_layer.js +698 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/transport_stream.js +370 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/webgl.js +462 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/worker_options.js +31 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/display/xml_parser.js +458 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/examples/node/domstubs.js +302 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/external/webL10n/l10n.js +1028 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/pdf.js +104 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/pdf.worker.js +29 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/shared/compatibility.js +24 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/shared/is_node.js +29 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/shared/message_handler.js +516 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/shared/util.js +837 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/annotation_spec.js +2238 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/api_spec.js +1613 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/bidi_spec.js +41 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/cff_parser_spec.js +322 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/clitests_helper.js +39 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/cmap_spec.js +357 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/colorspace_spec.js +342 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/core_utils_spec.js +211 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/crypto_spec.js +537 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/custom_spec.js +108 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/display_svg_spec.js +160 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/display_utils_spec.js +263 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/document_spec.js +42 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/encodings_spec.js +45 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/evaluator_spec.js +322 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/fetch_stream_spec.js +111 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/function_spec.js +645 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/jasmine-boot.js +155 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/message_handler_spec.js +365 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/metadata_spec.js +118 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/murmurhash3_spec.js +71 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/network_spec.js +120 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/network_utils_spec.js +349 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/node_stream_spec.js +227 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/parser_spec.js +240 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/pdf_find_controller_spec.js +199 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/pdf_find_utils_spec.js +63 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/pdf_history_spec.js +95 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/primitives_spec.js +333 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/stream_spec.js +78 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/test_utils.js +217 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/testreporter.js +102 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/type1_parser_spec.js +104 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/ui_utils_spec.js +711 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/unicode_spec.js +121 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/test/unit/util_spec.js +241 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/annotation_layer_builder.js +126 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/app.js +2424 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/app_options.js +257 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/base_viewer.js +1127 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/chromecom.js +392 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/debugger.js +670 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/download_manager.js +100 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/firefox_print_service.js +119 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/firefoxcom.js +363 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/genericcom.js +69 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/genericl10n.js +65 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/grab_to_pan.js +180 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/interfaces.js +125 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/overlay_manager.js +126 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/password_prompt.js +94 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_attachment_viewer.js +164 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_cursor_tools.js +139 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_document_properties.js +315 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_find_bar.js +226 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_find_controller.js +696 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_find_utils.js +111 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_history.js +601 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_link_service.js +455 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_outline_viewer.js +215 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_page_view.js +613 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_presentation_mode.js +420 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_print_service.js +316 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_rendering_queue.js +151 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_sidebar.js +397 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_sidebar_resizer.js +164 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_single_page_viewer.js +137 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_thumbnail_view.js +425 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_thumbnail_viewer.js +272 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_viewer.component.js +147 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/pdf_viewer.js +102 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/preferences.js +162 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/secondary_toolbar.js +333 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/text_layer_builder.js +401 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/toolbar.js +285 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/ui_utils.js +802 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/view_history.js +112 -0
- package/src/components/pdf-viewer/pdfjs-dist/lib/web/viewer_compatibility.js +38 -0
- package/src/components/pdf-viewer/pdfjs-dist/package.json +54 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-check.svg +11 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-comment.svg +16 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-help.svg +26 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-insert.svg +10 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-key.svg +11 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-newparagraph.svg +11 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-noicon.svg +7 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-note.svg +42 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/annotation-paragraph.svg +16 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/loading-icon.gif +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/shadow.png +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/images/texture.png +0 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/pdf_viewer.css +407 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/pdf_viewer.js +6394 -0
- package/src/components/pdf-viewer/pdfjs-dist/web/pdf_viewer.js.map +1 -0
- package/src/components/pdf-viewer/pdfjs-dist/webpack.js +33 -0
- package/src/components/pdf-viewer/styles/_annotation_layer_builder.scss +205 -0
- package/src/components/pdf-viewer/styles/_colors.scss +551 -0
- package/src/components/pdf-viewer/styles/_pdf_viewer.scss +131 -0
- package/src/components/pdf-viewer/styles/_text_layer_builder.scss +76 -0
- package/src/components/pdf-viewer/styles/_variables.scss +63 -0
- package/src/components/pdf-viewer/styles/_viewer.scss +1413 -0
- package/src/components/pdf-viewer/styles/index.css +0 -0
- package/src/components/pdf-viewer/styles/index.scss +4 -0
- package/src/components/pdf-viewer/utils/constants.js +1 -0
- package/src/components/pdf-viewer/utils/locale.js +290 -0
- package/src/components/pdf-viewer/utils/pdf-config.js +137 -0
- package/src/components/pdf-viewer/utils/toolbar-config.js +60 -0
|
@@ -0,0 +1,2088 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @licstart The following is the entire license notice for the
|
|
3
|
+
* Javascript code in this page
|
|
4
|
+
*
|
|
5
|
+
* Copyright 2020 Mozilla Foundation
|
|
6
|
+
*
|
|
7
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
8
|
+
* you may not use this file except in compliance with the License.
|
|
9
|
+
* You may obtain a copy of the License at
|
|
10
|
+
*
|
|
11
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
+
*
|
|
13
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
+
* See the License for the specific language governing permissions and
|
|
17
|
+
* limitations under the License.
|
|
18
|
+
*
|
|
19
|
+
* @licend The above is the entire license notice for the
|
|
20
|
+
* Javascript code in this page
|
|
21
|
+
*/
|
|
22
|
+
"use strict";
|
|
23
|
+
|
|
24
|
+
Object.defineProperty(exports, "__esModule", {
|
|
25
|
+
value: true
|
|
26
|
+
});
|
|
27
|
+
exports.CanvasGraphics = void 0;
|
|
28
|
+
|
|
29
|
+
var _util = require("../shared/util.js");
|
|
30
|
+
|
|
31
|
+
var _pattern_helper = require("./pattern_helper.js");
|
|
32
|
+
|
|
33
|
+
var MIN_FONT_SIZE = 16;
|
|
34
|
+
var MAX_FONT_SIZE = 100;
|
|
35
|
+
var MAX_GROUP_SIZE = 4096;
|
|
36
|
+
var MIN_WIDTH_FACTOR = 0.65;
|
|
37
|
+
var COMPILE_TYPE3_GLYPHS = true;
|
|
38
|
+
var MAX_SIZE_TO_COMPILE = 1000;
|
|
39
|
+
var FULL_CHUNK_HEIGHT = 16;
|
|
40
|
+
|
|
41
|
+
function addContextCurrentTransform(ctx) {
|
|
42
|
+
if (!ctx.mozCurrentTransform) {
|
|
43
|
+
ctx._originalSave = ctx.save;
|
|
44
|
+
ctx._originalRestore = ctx.restore;
|
|
45
|
+
ctx._originalRotate = ctx.rotate;
|
|
46
|
+
ctx._originalScale = ctx.scale;
|
|
47
|
+
ctx._originalTranslate = ctx.translate;
|
|
48
|
+
ctx._originalTransform = ctx.transform;
|
|
49
|
+
ctx._originalSetTransform = ctx.setTransform;
|
|
50
|
+
ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];
|
|
51
|
+
ctx._transformStack = [];
|
|
52
|
+
Object.defineProperty(ctx, "mozCurrentTransform", {
|
|
53
|
+
get: function getCurrentTransform() {
|
|
54
|
+
return this._transformMatrix;
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
Object.defineProperty(ctx, "mozCurrentTransformInverse", {
|
|
58
|
+
get: function getCurrentTransformInverse() {
|
|
59
|
+
var m = this._transformMatrix;
|
|
60
|
+
var a = m[0],
|
|
61
|
+
b = m[1],
|
|
62
|
+
c = m[2],
|
|
63
|
+
d = m[3],
|
|
64
|
+
e = m[4],
|
|
65
|
+
f = m[5];
|
|
66
|
+
var ad_bc = a * d - b * c;
|
|
67
|
+
var bc_ad = b * c - a * d;
|
|
68
|
+
return [d / ad_bc, b / bc_ad, c / bc_ad, a / ad_bc, (d * e - c * f) / bc_ad, (b * e - a * f) / ad_bc];
|
|
69
|
+
}
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
ctx.save = function ctxSave() {
|
|
73
|
+
var old = this._transformMatrix;
|
|
74
|
+
|
|
75
|
+
this._transformStack.push(old);
|
|
76
|
+
|
|
77
|
+
this._transformMatrix = old.slice(0, 6);
|
|
78
|
+
|
|
79
|
+
this._originalSave();
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
ctx.restore = function ctxRestore() {
|
|
83
|
+
var prev = this._transformStack.pop();
|
|
84
|
+
|
|
85
|
+
if (prev) {
|
|
86
|
+
this._transformMatrix = prev;
|
|
87
|
+
|
|
88
|
+
this._originalRestore();
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
ctx.translate = function ctxTranslate(x, y) {
|
|
93
|
+
var m = this._transformMatrix;
|
|
94
|
+
m[4] = m[0] * x + m[2] * y + m[4];
|
|
95
|
+
m[5] = m[1] * x + m[3] * y + m[5];
|
|
96
|
+
|
|
97
|
+
this._originalTranslate(x, y);
|
|
98
|
+
};
|
|
99
|
+
|
|
100
|
+
ctx.scale = function ctxScale(x, y) {
|
|
101
|
+
var m = this._transformMatrix;
|
|
102
|
+
m[0] = m[0] * x;
|
|
103
|
+
m[1] = m[1] * x;
|
|
104
|
+
m[2] = m[2] * y;
|
|
105
|
+
m[3] = m[3] * y;
|
|
106
|
+
|
|
107
|
+
this._originalScale(x, y);
|
|
108
|
+
};
|
|
109
|
+
|
|
110
|
+
ctx.transform = function ctxTransform(a, b, c, d, e, f) {
|
|
111
|
+
var m = this._transformMatrix;
|
|
112
|
+
this._transformMatrix = [m[0] * a + m[2] * b, m[1] * a + m[3] * b, m[0] * c + m[2] * d, m[1] * c + m[3] * d, m[0] * e + m[2] * f + m[4], m[1] * e + m[3] * f + m[5]];
|
|
113
|
+
|
|
114
|
+
ctx._originalTransform(a, b, c, d, e, f);
|
|
115
|
+
};
|
|
116
|
+
|
|
117
|
+
ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {
|
|
118
|
+
this._transformMatrix = [a, b, c, d, e, f];
|
|
119
|
+
|
|
120
|
+
ctx._originalSetTransform(a, b, c, d, e, f);
|
|
121
|
+
};
|
|
122
|
+
|
|
123
|
+
ctx.rotate = function ctxRotate(angle) {
|
|
124
|
+
var cosValue = Math.cos(angle);
|
|
125
|
+
var sinValue = Math.sin(angle);
|
|
126
|
+
var m = this._transformMatrix;
|
|
127
|
+
this._transformMatrix = [m[0] * cosValue + m[2] * sinValue, m[1] * cosValue + m[3] * sinValue, m[0] * -sinValue + m[2] * cosValue, m[1] * -sinValue + m[3] * cosValue, m[4], m[5]];
|
|
128
|
+
|
|
129
|
+
this._originalRotate(angle);
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
var CachedCanvases = function CachedCanvasesClosure() {
|
|
135
|
+
function CachedCanvases(canvasFactory) {
|
|
136
|
+
this.canvasFactory = canvasFactory;
|
|
137
|
+
this.cache = Object.create(null);
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
CachedCanvases.prototype = {
|
|
141
|
+
getCanvas: function CachedCanvases_getCanvas(id, width, height, trackTransform) {
|
|
142
|
+
var canvasEntry;
|
|
143
|
+
|
|
144
|
+
if (this.cache[id] !== undefined) {
|
|
145
|
+
canvasEntry = this.cache[id];
|
|
146
|
+
this.canvasFactory.reset(canvasEntry, width, height);
|
|
147
|
+
canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);
|
|
148
|
+
} else {
|
|
149
|
+
canvasEntry = this.canvasFactory.create(width, height);
|
|
150
|
+
this.cache[id] = canvasEntry;
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
if (trackTransform) {
|
|
154
|
+
addContextCurrentTransform(canvasEntry.context);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
return canvasEntry;
|
|
158
|
+
},
|
|
159
|
+
|
|
160
|
+
clear() {
|
|
161
|
+
for (var id in this.cache) {
|
|
162
|
+
var canvasEntry = this.cache[id];
|
|
163
|
+
this.canvasFactory.destroy(canvasEntry);
|
|
164
|
+
delete this.cache[id];
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
};
|
|
169
|
+
return CachedCanvases;
|
|
170
|
+
}();
|
|
171
|
+
|
|
172
|
+
function compileType3Glyph(imgData) {
|
|
173
|
+
var POINT_TO_PROCESS_LIMIT = 1000;
|
|
174
|
+
var width = imgData.width,
|
|
175
|
+
height = imgData.height;
|
|
176
|
+
var i,
|
|
177
|
+
j,
|
|
178
|
+
j0,
|
|
179
|
+
width1 = width + 1;
|
|
180
|
+
var points = new Uint8Array(width1 * (height + 1));
|
|
181
|
+
var POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);
|
|
182
|
+
var lineSize = width + 7 & ~7,
|
|
183
|
+
data0 = imgData.data;
|
|
184
|
+
var data = new Uint8Array(lineSize * height),
|
|
185
|
+
pos = 0,
|
|
186
|
+
ii;
|
|
187
|
+
|
|
188
|
+
for (i = 0, ii = data0.length; i < ii; i++) {
|
|
189
|
+
var mask = 128,
|
|
190
|
+
elem = data0[i];
|
|
191
|
+
|
|
192
|
+
while (mask > 0) {
|
|
193
|
+
data[pos++] = elem & mask ? 0 : 255;
|
|
194
|
+
mask >>= 1;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
var count = 0;
|
|
199
|
+
pos = 0;
|
|
200
|
+
|
|
201
|
+
if (data[pos] !== 0) {
|
|
202
|
+
points[0] = 1;
|
|
203
|
+
++count;
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
for (j = 1; j < width; j++) {
|
|
207
|
+
if (data[pos] !== data[pos + 1]) {
|
|
208
|
+
points[j] = data[pos] ? 2 : 1;
|
|
209
|
+
++count;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
pos++;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
if (data[pos] !== 0) {
|
|
216
|
+
points[j] = 2;
|
|
217
|
+
++count;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
for (i = 1; i < height; i++) {
|
|
221
|
+
pos = i * lineSize;
|
|
222
|
+
j0 = i * width1;
|
|
223
|
+
|
|
224
|
+
if (data[pos - lineSize] !== data[pos]) {
|
|
225
|
+
points[j0] = data[pos] ? 1 : 8;
|
|
226
|
+
++count;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
var sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);
|
|
230
|
+
|
|
231
|
+
for (j = 1; j < width; j++) {
|
|
232
|
+
sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);
|
|
233
|
+
|
|
234
|
+
if (POINT_TYPES[sum]) {
|
|
235
|
+
points[j0 + j] = POINT_TYPES[sum];
|
|
236
|
+
++count;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
pos++;
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
if (data[pos - lineSize] !== data[pos]) {
|
|
243
|
+
points[j0 + j] = data[pos] ? 2 : 4;
|
|
244
|
+
++count;
|
|
245
|
+
}
|
|
246
|
+
|
|
247
|
+
if (count > POINT_TO_PROCESS_LIMIT) {
|
|
248
|
+
return null;
|
|
249
|
+
}
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
pos = lineSize * (height - 1);
|
|
253
|
+
j0 = i * width1;
|
|
254
|
+
|
|
255
|
+
if (data[pos] !== 0) {
|
|
256
|
+
points[j0] = 8;
|
|
257
|
+
++count;
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
for (j = 1; j < width; j++) {
|
|
261
|
+
if (data[pos] !== data[pos + 1]) {
|
|
262
|
+
points[j0 + j] = data[pos] ? 4 : 8;
|
|
263
|
+
++count;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
pos++;
|
|
267
|
+
}
|
|
268
|
+
|
|
269
|
+
if (data[pos] !== 0) {
|
|
270
|
+
points[j0 + j] = 4;
|
|
271
|
+
++count;
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
if (count > POINT_TO_PROCESS_LIMIT) {
|
|
275
|
+
return null;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
var steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);
|
|
279
|
+
var outlines = [];
|
|
280
|
+
|
|
281
|
+
for (i = 0; count && i <= height; i++) {
|
|
282
|
+
var p = i * width1;
|
|
283
|
+
var end = p + width;
|
|
284
|
+
|
|
285
|
+
while (p < end && !points[p]) {
|
|
286
|
+
p++;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
if (p === end) {
|
|
290
|
+
continue;
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
var coords = [p % width1, i];
|
|
294
|
+
var type = points[p],
|
|
295
|
+
p0 = p,
|
|
296
|
+
pp;
|
|
297
|
+
|
|
298
|
+
do {
|
|
299
|
+
var step = steps[type];
|
|
300
|
+
|
|
301
|
+
do {
|
|
302
|
+
p += step;
|
|
303
|
+
} while (!points[p]);
|
|
304
|
+
|
|
305
|
+
pp = points[p];
|
|
306
|
+
|
|
307
|
+
if (pp !== 5 && pp !== 10) {
|
|
308
|
+
type = pp;
|
|
309
|
+
points[p] = 0;
|
|
310
|
+
} else {
|
|
311
|
+
type = pp & 0x33 * type >> 4;
|
|
312
|
+
points[p] &= type >> 2 | type << 2;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
coords.push(p % width1);
|
|
316
|
+
coords.push(p / width1 | 0);
|
|
317
|
+
|
|
318
|
+
if (!points[p]) {
|
|
319
|
+
--count;
|
|
320
|
+
}
|
|
321
|
+
} while (p0 !== p);
|
|
322
|
+
|
|
323
|
+
outlines.push(coords);
|
|
324
|
+
--i;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
var drawOutline = function (c) {
|
|
328
|
+
c.save();
|
|
329
|
+
c.scale(1 / width, -1 / height);
|
|
330
|
+
c.translate(0, -height);
|
|
331
|
+
c.beginPath();
|
|
332
|
+
|
|
333
|
+
for (var i = 0, ii = outlines.length; i < ii; i++) {
|
|
334
|
+
var o = outlines[i];
|
|
335
|
+
c.moveTo(o[0], o[1]);
|
|
336
|
+
|
|
337
|
+
for (var j = 2, jj = o.length; j < jj; j += 2) {
|
|
338
|
+
c.lineTo(o[j], o[j + 1]);
|
|
339
|
+
}
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
c.fill();
|
|
343
|
+
c.beginPath();
|
|
344
|
+
c.restore();
|
|
345
|
+
};
|
|
346
|
+
|
|
347
|
+
return drawOutline;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
var CanvasExtraState = function CanvasExtraStateClosure() {
|
|
351
|
+
function CanvasExtraState() {
|
|
352
|
+
this.alphaIsShape = false;
|
|
353
|
+
this.fontSize = 0;
|
|
354
|
+
this.fontSizeScale = 1;
|
|
355
|
+
this.textMatrix = _util.IDENTITY_MATRIX;
|
|
356
|
+
this.textMatrixScale = 1;
|
|
357
|
+
this.fontMatrix = _util.FONT_IDENTITY_MATRIX;
|
|
358
|
+
this.leading = 0;
|
|
359
|
+
this.x = 0;
|
|
360
|
+
this.y = 0;
|
|
361
|
+
this.lineX = 0;
|
|
362
|
+
this.lineY = 0;
|
|
363
|
+
this.charSpacing = 0;
|
|
364
|
+
this.wordSpacing = 0;
|
|
365
|
+
this.textHScale = 1;
|
|
366
|
+
this.textRenderingMode = _util.TextRenderingMode.FILL;
|
|
367
|
+
this.textRise = 0;
|
|
368
|
+
this.fillColor = "#000000";
|
|
369
|
+
this.strokeColor = "#000000";
|
|
370
|
+
this.patternFill = false;
|
|
371
|
+
this.fillAlpha = 1;
|
|
372
|
+
this.strokeAlpha = 1;
|
|
373
|
+
this.lineWidth = 1;
|
|
374
|
+
this.activeSMask = null;
|
|
375
|
+
this.resumeSMaskCtx = null;
|
|
376
|
+
}
|
|
377
|
+
|
|
378
|
+
CanvasExtraState.prototype = {
|
|
379
|
+
clone: function CanvasExtraState_clone() {
|
|
380
|
+
return Object.create(this);
|
|
381
|
+
},
|
|
382
|
+
setCurrentPoint: function CanvasExtraState_setCurrentPoint(x, y) {
|
|
383
|
+
this.x = x;
|
|
384
|
+
this.y = y;
|
|
385
|
+
}
|
|
386
|
+
};
|
|
387
|
+
return CanvasExtraState;
|
|
388
|
+
}();
|
|
389
|
+
|
|
390
|
+
var CanvasGraphics = function CanvasGraphicsClosure() {
|
|
391
|
+
var EXECUTION_TIME = 15;
|
|
392
|
+
var EXECUTION_STEPS = 10;
|
|
393
|
+
|
|
394
|
+
function CanvasGraphics(canvasCtx, commonObjs, objs, canvasFactory, webGLContext, imageLayer) {
|
|
395
|
+
this.ctx = canvasCtx;
|
|
396
|
+
this.current = new CanvasExtraState();
|
|
397
|
+
this.stateStack = [];
|
|
398
|
+
this.pendingClip = null;
|
|
399
|
+
this.pendingEOFill = false;
|
|
400
|
+
this.res = null;
|
|
401
|
+
this.xobjs = null;
|
|
402
|
+
this.commonObjs = commonObjs;
|
|
403
|
+
this.objs = objs;
|
|
404
|
+
this.canvasFactory = canvasFactory;
|
|
405
|
+
this.webGLContext = webGLContext;
|
|
406
|
+
this.imageLayer = imageLayer;
|
|
407
|
+
this.groupStack = [];
|
|
408
|
+
this.processingType3 = null;
|
|
409
|
+
this.baseTransform = null;
|
|
410
|
+
this.baseTransformStack = [];
|
|
411
|
+
this.groupLevel = 0;
|
|
412
|
+
this.smaskStack = [];
|
|
413
|
+
this.smaskCounter = 0;
|
|
414
|
+
this.tempSMask = null;
|
|
415
|
+
this.cachedCanvases = new CachedCanvases(this.canvasFactory);
|
|
416
|
+
|
|
417
|
+
if (canvasCtx) {
|
|
418
|
+
addContextCurrentTransform(canvasCtx);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
this._cachedGetSinglePixelWidth = null;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
function putBinaryImageData(ctx, imgData) {
|
|
425
|
+
if (typeof ImageData !== "undefined" && imgData instanceof ImageData) {
|
|
426
|
+
ctx.putImageData(imgData, 0, 0);
|
|
427
|
+
return;
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
var height = imgData.height,
|
|
431
|
+
width = imgData.width;
|
|
432
|
+
var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
|
|
433
|
+
var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
|
|
434
|
+
var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
|
|
435
|
+
var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
|
|
436
|
+
var srcPos = 0,
|
|
437
|
+
destPos;
|
|
438
|
+
var src = imgData.data;
|
|
439
|
+
var dest = chunkImgData.data;
|
|
440
|
+
var i, j, thisChunkHeight, elemsInThisChunk;
|
|
441
|
+
|
|
442
|
+
if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {
|
|
443
|
+
var srcLength = src.byteLength;
|
|
444
|
+
var dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);
|
|
445
|
+
var dest32DataLength = dest32.length;
|
|
446
|
+
var fullSrcDiff = width + 7 >> 3;
|
|
447
|
+
var white = 0xffffffff;
|
|
448
|
+
var black = _util.IsLittleEndianCached.value ? 0xff000000 : 0x000000ff;
|
|
449
|
+
|
|
450
|
+
for (i = 0; i < totalChunks; i++) {
|
|
451
|
+
thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
|
|
452
|
+
destPos = 0;
|
|
453
|
+
|
|
454
|
+
for (j = 0; j < thisChunkHeight; j++) {
|
|
455
|
+
var srcDiff = srcLength - srcPos;
|
|
456
|
+
var k = 0;
|
|
457
|
+
var kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;
|
|
458
|
+
var kEndUnrolled = kEnd & ~7;
|
|
459
|
+
var mask = 0;
|
|
460
|
+
var srcByte = 0;
|
|
461
|
+
|
|
462
|
+
for (; k < kEndUnrolled; k += 8) {
|
|
463
|
+
srcByte = src[srcPos++];
|
|
464
|
+
dest32[destPos++] = srcByte & 128 ? white : black;
|
|
465
|
+
dest32[destPos++] = srcByte & 64 ? white : black;
|
|
466
|
+
dest32[destPos++] = srcByte & 32 ? white : black;
|
|
467
|
+
dest32[destPos++] = srcByte & 16 ? white : black;
|
|
468
|
+
dest32[destPos++] = srcByte & 8 ? white : black;
|
|
469
|
+
dest32[destPos++] = srcByte & 4 ? white : black;
|
|
470
|
+
dest32[destPos++] = srcByte & 2 ? white : black;
|
|
471
|
+
dest32[destPos++] = srcByte & 1 ? white : black;
|
|
472
|
+
}
|
|
473
|
+
|
|
474
|
+
for (; k < kEnd; k++) {
|
|
475
|
+
if (mask === 0) {
|
|
476
|
+
srcByte = src[srcPos++];
|
|
477
|
+
mask = 128;
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
dest32[destPos++] = srcByte & mask ? white : black;
|
|
481
|
+
mask >>= 1;
|
|
482
|
+
}
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
while (destPos < dest32DataLength) {
|
|
486
|
+
dest32[destPos++] = 0;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
|
|
490
|
+
}
|
|
491
|
+
} else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {
|
|
492
|
+
j = 0;
|
|
493
|
+
elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;
|
|
494
|
+
|
|
495
|
+
for (i = 0; i < fullChunks; i++) {
|
|
496
|
+
dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
|
|
497
|
+
srcPos += elemsInThisChunk;
|
|
498
|
+
ctx.putImageData(chunkImgData, 0, j);
|
|
499
|
+
j += FULL_CHUNK_HEIGHT;
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
if (i < totalChunks) {
|
|
503
|
+
elemsInThisChunk = width * partialChunkHeight * 4;
|
|
504
|
+
dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));
|
|
505
|
+
ctx.putImageData(chunkImgData, 0, j);
|
|
506
|
+
}
|
|
507
|
+
} else if (imgData.kind === _util.ImageKind.RGB_24BPP) {
|
|
508
|
+
thisChunkHeight = FULL_CHUNK_HEIGHT;
|
|
509
|
+
elemsInThisChunk = width * thisChunkHeight;
|
|
510
|
+
|
|
511
|
+
for (i = 0; i < totalChunks; i++) {
|
|
512
|
+
if (i >= fullChunks) {
|
|
513
|
+
thisChunkHeight = partialChunkHeight;
|
|
514
|
+
elemsInThisChunk = width * thisChunkHeight;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
destPos = 0;
|
|
518
|
+
|
|
519
|
+
for (j = elemsInThisChunk; j--;) {
|
|
520
|
+
dest[destPos++] = src[srcPos++];
|
|
521
|
+
dest[destPos++] = src[srcPos++];
|
|
522
|
+
dest[destPos++] = src[srcPos++];
|
|
523
|
+
dest[destPos++] = 255;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
|
|
527
|
+
}
|
|
528
|
+
} else {
|
|
529
|
+
throw new Error(`bad image kind: ${imgData.kind}`);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
function putBinaryImageMask(ctx, imgData) {
|
|
534
|
+
var height = imgData.height,
|
|
535
|
+
width = imgData.width;
|
|
536
|
+
var partialChunkHeight = height % FULL_CHUNK_HEIGHT;
|
|
537
|
+
var fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;
|
|
538
|
+
var totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;
|
|
539
|
+
var chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);
|
|
540
|
+
var srcPos = 0;
|
|
541
|
+
var src = imgData.data;
|
|
542
|
+
var dest = chunkImgData.data;
|
|
543
|
+
|
|
544
|
+
for (var i = 0; i < totalChunks; i++) {
|
|
545
|
+
var thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;
|
|
546
|
+
var destPos = 3;
|
|
547
|
+
|
|
548
|
+
for (var j = 0; j < thisChunkHeight; j++) {
|
|
549
|
+
var mask = 0;
|
|
550
|
+
|
|
551
|
+
for (var k = 0; k < width; k++) {
|
|
552
|
+
if (!mask) {
|
|
553
|
+
var elem = src[srcPos++];
|
|
554
|
+
mask = 128;
|
|
555
|
+
}
|
|
556
|
+
|
|
557
|
+
dest[destPos] = elem & mask ? 0 : 255;
|
|
558
|
+
destPos += 4;
|
|
559
|
+
mask >>= 1;
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
function copyCtxState(sourceCtx, destCtx) {
|
|
568
|
+
var properties = ["strokeStyle", "fillStyle", "fillRule", "globalAlpha", "lineWidth", "lineCap", "lineJoin", "miterLimit", "globalCompositeOperation", "font"];
|
|
569
|
+
|
|
570
|
+
for (var i = 0, ii = properties.length; i < ii; i++) {
|
|
571
|
+
var property = properties[i];
|
|
572
|
+
|
|
573
|
+
if (sourceCtx[property] !== undefined) {
|
|
574
|
+
destCtx[property] = sourceCtx[property];
|
|
575
|
+
}
|
|
576
|
+
}
|
|
577
|
+
|
|
578
|
+
if (sourceCtx.setLineDash !== undefined) {
|
|
579
|
+
destCtx.setLineDash(sourceCtx.getLineDash());
|
|
580
|
+
destCtx.lineDashOffset = sourceCtx.lineDashOffset;
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
|
|
584
|
+
function resetCtxToDefault(ctx) {
|
|
585
|
+
ctx.strokeStyle = "#000000";
|
|
586
|
+
ctx.fillStyle = "#000000";
|
|
587
|
+
ctx.fillRule = "nonzero";
|
|
588
|
+
ctx.globalAlpha = 1;
|
|
589
|
+
ctx.lineWidth = 1;
|
|
590
|
+
ctx.lineCap = "butt";
|
|
591
|
+
ctx.lineJoin = "miter";
|
|
592
|
+
ctx.miterLimit = 10;
|
|
593
|
+
ctx.globalCompositeOperation = "source-over";
|
|
594
|
+
ctx.font = "10px sans-serif";
|
|
595
|
+
|
|
596
|
+
if (ctx.setLineDash !== undefined) {
|
|
597
|
+
ctx.setLineDash([]);
|
|
598
|
+
ctx.lineDashOffset = 0;
|
|
599
|
+
}
|
|
600
|
+
}
|
|
601
|
+
|
|
602
|
+
function composeSMaskBackdrop(bytes, r0, g0, b0) {
|
|
603
|
+
var length = bytes.length;
|
|
604
|
+
|
|
605
|
+
for (var i = 3; i < length; i += 4) {
|
|
606
|
+
var alpha = bytes[i];
|
|
607
|
+
|
|
608
|
+
if (alpha === 0) {
|
|
609
|
+
bytes[i - 3] = r0;
|
|
610
|
+
bytes[i - 2] = g0;
|
|
611
|
+
bytes[i - 1] = b0;
|
|
612
|
+
} else if (alpha < 255) {
|
|
613
|
+
var alpha_ = 255 - alpha;
|
|
614
|
+
bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;
|
|
615
|
+
bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;
|
|
616
|
+
bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;
|
|
617
|
+
}
|
|
618
|
+
}
|
|
619
|
+
}
|
|
620
|
+
|
|
621
|
+
function composeSMaskAlpha(maskData, layerData, transferMap) {
|
|
622
|
+
var length = maskData.length;
|
|
623
|
+
var scale = 1 / 255;
|
|
624
|
+
|
|
625
|
+
for (var i = 3; i < length; i += 4) {
|
|
626
|
+
var alpha = transferMap ? transferMap[maskData[i]] : maskData[i];
|
|
627
|
+
layerData[i] = layerData[i] * alpha * scale | 0;
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
function composeSMaskLuminosity(maskData, layerData, transferMap) {
|
|
632
|
+
var length = maskData.length;
|
|
633
|
+
|
|
634
|
+
for (var i = 3; i < length; i += 4) {
|
|
635
|
+
var y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;
|
|
636
|
+
layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;
|
|
637
|
+
}
|
|
638
|
+
}
|
|
639
|
+
|
|
640
|
+
function genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap) {
|
|
641
|
+
var hasBackdrop = !!backdrop;
|
|
642
|
+
var r0 = hasBackdrop ? backdrop[0] : 0;
|
|
643
|
+
var g0 = hasBackdrop ? backdrop[1] : 0;
|
|
644
|
+
var b0 = hasBackdrop ? backdrop[2] : 0;
|
|
645
|
+
var composeFn;
|
|
646
|
+
|
|
647
|
+
if (subtype === "Luminosity") {
|
|
648
|
+
composeFn = composeSMaskLuminosity;
|
|
649
|
+
} else {
|
|
650
|
+
composeFn = composeSMaskAlpha;
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
var PIXELS_TO_PROCESS = 1048576;
|
|
654
|
+
var chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));
|
|
655
|
+
|
|
656
|
+
for (var row = 0; row < height; row += chunkSize) {
|
|
657
|
+
var chunkHeight = Math.min(chunkSize, height - row);
|
|
658
|
+
var maskData = maskCtx.getImageData(0, row, width, chunkHeight);
|
|
659
|
+
var layerData = layerCtx.getImageData(0, row, width, chunkHeight);
|
|
660
|
+
|
|
661
|
+
if (hasBackdrop) {
|
|
662
|
+
composeSMaskBackdrop(maskData.data, r0, g0, b0);
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
composeFn(maskData.data, layerData.data, transferMap);
|
|
666
|
+
maskCtx.putImageData(layerData, 0, row);
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
function composeSMask(ctx, smask, layerCtx, webGLContext) {
|
|
671
|
+
var mask = smask.canvas;
|
|
672
|
+
var maskCtx = smask.context;
|
|
673
|
+
ctx.setTransform(smask.scaleX, 0, 0, smask.scaleY, smask.offsetX, smask.offsetY);
|
|
674
|
+
var backdrop = smask.backdrop || null;
|
|
675
|
+
|
|
676
|
+
if (!smask.transferMap && webGLContext.isEnabled) {
|
|
677
|
+
const composed = webGLContext.composeSMask({
|
|
678
|
+
layer: layerCtx.canvas,
|
|
679
|
+
mask,
|
|
680
|
+
properties: {
|
|
681
|
+
subtype: smask.subtype,
|
|
682
|
+
backdrop
|
|
683
|
+
}
|
|
684
|
+
});
|
|
685
|
+
ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
686
|
+
ctx.drawImage(composed, smask.offsetX, smask.offsetY);
|
|
687
|
+
return;
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
genericComposeSMask(maskCtx, layerCtx, mask.width, mask.height, smask.subtype, backdrop, smask.transferMap);
|
|
691
|
+
ctx.drawImage(mask, 0, 0);
|
|
692
|
+
}
|
|
693
|
+
|
|
694
|
+
var LINE_CAP_STYLES = ["butt", "round", "square"];
|
|
695
|
+
var LINE_JOIN_STYLES = ["miter", "round", "bevel"];
|
|
696
|
+
var NORMAL_CLIP = {};
|
|
697
|
+
var EO_CLIP = {};
|
|
698
|
+
CanvasGraphics.prototype = {
|
|
699
|
+
beginDrawing({
|
|
700
|
+
transform,
|
|
701
|
+
viewport,
|
|
702
|
+
transparency = false,
|
|
703
|
+
background = null
|
|
704
|
+
}) {
|
|
705
|
+
var width = this.ctx.canvas.width;
|
|
706
|
+
var height = this.ctx.canvas.height;
|
|
707
|
+
this.ctx.save();
|
|
708
|
+
this.ctx.fillStyle = background || "rgb(255, 255, 255)";
|
|
709
|
+
this.ctx.fillRect(0, 0, width, height);
|
|
710
|
+
this.ctx.restore();
|
|
711
|
+
|
|
712
|
+
if (transparency) {
|
|
713
|
+
var transparentCanvas = this.cachedCanvases.getCanvas("transparent", width, height, true);
|
|
714
|
+
this.compositeCtx = this.ctx;
|
|
715
|
+
this.transparentCanvas = transparentCanvas.canvas;
|
|
716
|
+
this.ctx = transparentCanvas.context;
|
|
717
|
+
this.ctx.save();
|
|
718
|
+
this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);
|
|
719
|
+
}
|
|
720
|
+
|
|
721
|
+
this.ctx.save();
|
|
722
|
+
resetCtxToDefault(this.ctx);
|
|
723
|
+
|
|
724
|
+
if (transform) {
|
|
725
|
+
this.ctx.transform.apply(this.ctx, transform);
|
|
726
|
+
}
|
|
727
|
+
|
|
728
|
+
this.ctx.transform.apply(this.ctx, viewport.transform);
|
|
729
|
+
this.baseTransform = this.ctx.mozCurrentTransform.slice();
|
|
730
|
+
|
|
731
|
+
if (this.imageLayer) {
|
|
732
|
+
this.imageLayer.beginLayout();
|
|
733
|
+
}
|
|
734
|
+
},
|
|
735
|
+
|
|
736
|
+
executeOperatorList: function CanvasGraphics_executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {
|
|
737
|
+
var argsArray = operatorList.argsArray;
|
|
738
|
+
var fnArray = operatorList.fnArray;
|
|
739
|
+
var i = executionStartIdx || 0;
|
|
740
|
+
var argsArrayLen = argsArray.length;
|
|
741
|
+
|
|
742
|
+
if (argsArrayLen === i) {
|
|
743
|
+
return i;
|
|
744
|
+
}
|
|
745
|
+
|
|
746
|
+
var chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === "function";
|
|
747
|
+
var endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;
|
|
748
|
+
var steps = 0;
|
|
749
|
+
var commonObjs = this.commonObjs;
|
|
750
|
+
var objs = this.objs;
|
|
751
|
+
var fnId;
|
|
752
|
+
|
|
753
|
+
while (true) {
|
|
754
|
+
if (stepper !== undefined && i === stepper.nextBreakPoint) {
|
|
755
|
+
stepper.breakIt(i, continueCallback);
|
|
756
|
+
return i;
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
fnId = fnArray[i];
|
|
760
|
+
|
|
761
|
+
if (fnId !== _util.OPS.dependency) {
|
|
762
|
+
this[fnId].apply(this, argsArray[i]);
|
|
763
|
+
} else {
|
|
764
|
+
for (const depObjId of argsArray[i]) {
|
|
765
|
+
const objsPool = depObjId.startsWith("g_") ? commonObjs : objs;
|
|
766
|
+
|
|
767
|
+
if (!objsPool.has(depObjId)) {
|
|
768
|
+
objsPool.get(depObjId, continueCallback);
|
|
769
|
+
return i;
|
|
770
|
+
}
|
|
771
|
+
}
|
|
772
|
+
}
|
|
773
|
+
|
|
774
|
+
i++;
|
|
775
|
+
|
|
776
|
+
if (i === argsArrayLen) {
|
|
777
|
+
return i;
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
if (chunkOperations && ++steps > EXECUTION_STEPS) {
|
|
781
|
+
if (Date.now() > endTime) {
|
|
782
|
+
continueCallback();
|
|
783
|
+
return i;
|
|
784
|
+
}
|
|
785
|
+
|
|
786
|
+
steps = 0;
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
},
|
|
790
|
+
endDrawing: function CanvasGraphics_endDrawing() {
|
|
791
|
+
if (this.current.activeSMask !== null) {
|
|
792
|
+
this.endSMaskGroup();
|
|
793
|
+
}
|
|
794
|
+
|
|
795
|
+
this.ctx.restore();
|
|
796
|
+
|
|
797
|
+
if (this.transparentCanvas) {
|
|
798
|
+
this.ctx = this.compositeCtx;
|
|
799
|
+
this.ctx.save();
|
|
800
|
+
this.ctx.setTransform(1, 0, 0, 1, 0, 0);
|
|
801
|
+
this.ctx.drawImage(this.transparentCanvas, 0, 0);
|
|
802
|
+
this.ctx.restore();
|
|
803
|
+
this.transparentCanvas = null;
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
this.cachedCanvases.clear();
|
|
807
|
+
this.webGLContext.clear();
|
|
808
|
+
|
|
809
|
+
if (this.imageLayer) {
|
|
810
|
+
this.imageLayer.endLayout();
|
|
811
|
+
}
|
|
812
|
+
},
|
|
813
|
+
setLineWidth: function CanvasGraphics_setLineWidth(width) {
|
|
814
|
+
this.current.lineWidth = width;
|
|
815
|
+
this.ctx.lineWidth = width;
|
|
816
|
+
},
|
|
817
|
+
setLineCap: function CanvasGraphics_setLineCap(style) {
|
|
818
|
+
this.ctx.lineCap = LINE_CAP_STYLES[style];
|
|
819
|
+
},
|
|
820
|
+
setLineJoin: function CanvasGraphics_setLineJoin(style) {
|
|
821
|
+
this.ctx.lineJoin = LINE_JOIN_STYLES[style];
|
|
822
|
+
},
|
|
823
|
+
setMiterLimit: function CanvasGraphics_setMiterLimit(limit) {
|
|
824
|
+
this.ctx.miterLimit = limit;
|
|
825
|
+
},
|
|
826
|
+
setDash: function CanvasGraphics_setDash(dashArray, dashPhase) {
|
|
827
|
+
var ctx = this.ctx;
|
|
828
|
+
|
|
829
|
+
if (ctx.setLineDash !== undefined) {
|
|
830
|
+
ctx.setLineDash(dashArray);
|
|
831
|
+
ctx.lineDashOffset = dashPhase;
|
|
832
|
+
}
|
|
833
|
+
},
|
|
834
|
+
|
|
835
|
+
setRenderingIntent(intent) {},
|
|
836
|
+
|
|
837
|
+
setFlatness(flatness) {},
|
|
838
|
+
|
|
839
|
+
setGState: function CanvasGraphics_setGState(states) {
|
|
840
|
+
for (var i = 0, ii = states.length; i < ii; i++) {
|
|
841
|
+
var state = states[i];
|
|
842
|
+
var key = state[0];
|
|
843
|
+
var value = state[1];
|
|
844
|
+
|
|
845
|
+
switch (key) {
|
|
846
|
+
case "LW":
|
|
847
|
+
this.setLineWidth(value);
|
|
848
|
+
break;
|
|
849
|
+
|
|
850
|
+
case "LC":
|
|
851
|
+
this.setLineCap(value);
|
|
852
|
+
break;
|
|
853
|
+
|
|
854
|
+
case "LJ":
|
|
855
|
+
this.setLineJoin(value);
|
|
856
|
+
break;
|
|
857
|
+
|
|
858
|
+
case "ML":
|
|
859
|
+
this.setMiterLimit(value);
|
|
860
|
+
break;
|
|
861
|
+
|
|
862
|
+
case "D":
|
|
863
|
+
this.setDash(value[0], value[1]);
|
|
864
|
+
break;
|
|
865
|
+
|
|
866
|
+
case "RI":
|
|
867
|
+
this.setRenderingIntent(value);
|
|
868
|
+
break;
|
|
869
|
+
|
|
870
|
+
case "FL":
|
|
871
|
+
this.setFlatness(value);
|
|
872
|
+
break;
|
|
873
|
+
|
|
874
|
+
case "Font":
|
|
875
|
+
this.setFont(value[0], value[1]);
|
|
876
|
+
break;
|
|
877
|
+
|
|
878
|
+
case "CA":
|
|
879
|
+
this.current.strokeAlpha = state[1];
|
|
880
|
+
break;
|
|
881
|
+
|
|
882
|
+
case "ca":
|
|
883
|
+
this.current.fillAlpha = state[1];
|
|
884
|
+
this.ctx.globalAlpha = state[1];
|
|
885
|
+
break;
|
|
886
|
+
|
|
887
|
+
case "BM":
|
|
888
|
+
this.ctx.globalCompositeOperation = value;
|
|
889
|
+
break;
|
|
890
|
+
|
|
891
|
+
case "SMask":
|
|
892
|
+
if (this.current.activeSMask) {
|
|
893
|
+
if (this.stateStack.length > 0 && this.stateStack[this.stateStack.length - 1].activeSMask === this.current.activeSMask) {
|
|
894
|
+
this.suspendSMaskGroup();
|
|
895
|
+
} else {
|
|
896
|
+
this.endSMaskGroup();
|
|
897
|
+
}
|
|
898
|
+
}
|
|
899
|
+
|
|
900
|
+
this.current.activeSMask = value ? this.tempSMask : null;
|
|
901
|
+
|
|
902
|
+
if (this.current.activeSMask) {
|
|
903
|
+
this.beginSMaskGroup();
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
this.tempSMask = null;
|
|
907
|
+
break;
|
|
908
|
+
}
|
|
909
|
+
}
|
|
910
|
+
},
|
|
911
|
+
beginSMaskGroup: function CanvasGraphics_beginSMaskGroup() {
|
|
912
|
+
var activeSMask = this.current.activeSMask;
|
|
913
|
+
var drawnWidth = activeSMask.canvas.width;
|
|
914
|
+
var drawnHeight = activeSMask.canvas.height;
|
|
915
|
+
var cacheId = "smaskGroupAt" + this.groupLevel;
|
|
916
|
+
var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
|
|
917
|
+
var currentCtx = this.ctx;
|
|
918
|
+
var currentTransform = currentCtx.mozCurrentTransform;
|
|
919
|
+
this.ctx.save();
|
|
920
|
+
var groupCtx = scratchCanvas.context;
|
|
921
|
+
groupCtx.scale(1 / activeSMask.scaleX, 1 / activeSMask.scaleY);
|
|
922
|
+
groupCtx.translate(-activeSMask.offsetX, -activeSMask.offsetY);
|
|
923
|
+
groupCtx.transform.apply(groupCtx, currentTransform);
|
|
924
|
+
activeSMask.startTransformInverse = groupCtx.mozCurrentTransformInverse;
|
|
925
|
+
copyCtxState(currentCtx, groupCtx);
|
|
926
|
+
this.ctx = groupCtx;
|
|
927
|
+
this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]);
|
|
928
|
+
this.groupStack.push(currentCtx);
|
|
929
|
+
this.groupLevel++;
|
|
930
|
+
},
|
|
931
|
+
suspendSMaskGroup: function CanvasGraphics_endSMaskGroup() {
|
|
932
|
+
var groupCtx = this.ctx;
|
|
933
|
+
this.groupLevel--;
|
|
934
|
+
this.ctx = this.groupStack.pop();
|
|
935
|
+
composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
|
|
936
|
+
this.ctx.restore();
|
|
937
|
+
this.ctx.save();
|
|
938
|
+
copyCtxState(groupCtx, this.ctx);
|
|
939
|
+
this.current.resumeSMaskCtx = groupCtx;
|
|
940
|
+
|
|
941
|
+
var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
|
|
942
|
+
|
|
943
|
+
this.ctx.transform.apply(this.ctx, deltaTransform);
|
|
944
|
+
groupCtx.save();
|
|
945
|
+
groupCtx.setTransform(1, 0, 0, 1, 0, 0);
|
|
946
|
+
groupCtx.clearRect(0, 0, groupCtx.canvas.width, groupCtx.canvas.height);
|
|
947
|
+
groupCtx.restore();
|
|
948
|
+
},
|
|
949
|
+
resumeSMaskGroup: function CanvasGraphics_endSMaskGroup() {
|
|
950
|
+
var groupCtx = this.current.resumeSMaskCtx;
|
|
951
|
+
var currentCtx = this.ctx;
|
|
952
|
+
this.ctx = groupCtx;
|
|
953
|
+
this.groupStack.push(currentCtx);
|
|
954
|
+
this.groupLevel++;
|
|
955
|
+
},
|
|
956
|
+
endSMaskGroup: function CanvasGraphics_endSMaskGroup() {
|
|
957
|
+
var groupCtx = this.ctx;
|
|
958
|
+
this.groupLevel--;
|
|
959
|
+
this.ctx = this.groupStack.pop();
|
|
960
|
+
composeSMask(this.ctx, this.current.activeSMask, groupCtx, this.webGLContext);
|
|
961
|
+
this.ctx.restore();
|
|
962
|
+
copyCtxState(groupCtx, this.ctx);
|
|
963
|
+
|
|
964
|
+
var deltaTransform = _util.Util.transform(this.current.activeSMask.startTransformInverse, groupCtx.mozCurrentTransform);
|
|
965
|
+
|
|
966
|
+
this.ctx.transform.apply(this.ctx, deltaTransform);
|
|
967
|
+
},
|
|
968
|
+
save: function CanvasGraphics_save() {
|
|
969
|
+
this.ctx.save();
|
|
970
|
+
var old = this.current;
|
|
971
|
+
this.stateStack.push(old);
|
|
972
|
+
this.current = old.clone();
|
|
973
|
+
this.current.resumeSMaskCtx = null;
|
|
974
|
+
},
|
|
975
|
+
restore: function CanvasGraphics_restore() {
|
|
976
|
+
if (this.current.resumeSMaskCtx) {
|
|
977
|
+
this.resumeSMaskGroup();
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
if (this.current.activeSMask !== null && (this.stateStack.length === 0 || this.stateStack[this.stateStack.length - 1].activeSMask !== this.current.activeSMask)) {
|
|
981
|
+
this.endSMaskGroup();
|
|
982
|
+
}
|
|
983
|
+
|
|
984
|
+
if (this.stateStack.length !== 0) {
|
|
985
|
+
this.current = this.stateStack.pop();
|
|
986
|
+
this.ctx.restore();
|
|
987
|
+
this.pendingClip = null;
|
|
988
|
+
this._cachedGetSinglePixelWidth = null;
|
|
989
|
+
}
|
|
990
|
+
},
|
|
991
|
+
transform: function CanvasGraphics_transform(a, b, c, d, e, f) {
|
|
992
|
+
this.ctx.transform(a, b, c, d, e, f);
|
|
993
|
+
this._cachedGetSinglePixelWidth = null;
|
|
994
|
+
},
|
|
995
|
+
constructPath: function CanvasGraphics_constructPath(ops, args) {
|
|
996
|
+
var ctx = this.ctx;
|
|
997
|
+
var current = this.current;
|
|
998
|
+
var x = current.x,
|
|
999
|
+
y = current.y;
|
|
1000
|
+
|
|
1001
|
+
for (var i = 0, j = 0, ii = ops.length; i < ii; i++) {
|
|
1002
|
+
switch (ops[i] | 0) {
|
|
1003
|
+
case _util.OPS.rectangle:
|
|
1004
|
+
x = args[j++];
|
|
1005
|
+
y = args[j++];
|
|
1006
|
+
var width = args[j++];
|
|
1007
|
+
var height = args[j++];
|
|
1008
|
+
|
|
1009
|
+
if (width === 0) {
|
|
1010
|
+
width = this.getSinglePixelWidth();
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
if (height === 0) {
|
|
1014
|
+
height = this.getSinglePixelWidth();
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
var xw = x + width;
|
|
1018
|
+
var yh = y + height;
|
|
1019
|
+
this.ctx.moveTo(x, y);
|
|
1020
|
+
this.ctx.lineTo(xw, y);
|
|
1021
|
+
this.ctx.lineTo(xw, yh);
|
|
1022
|
+
this.ctx.lineTo(x, yh);
|
|
1023
|
+
this.ctx.lineTo(x, y);
|
|
1024
|
+
this.ctx.closePath();
|
|
1025
|
+
break;
|
|
1026
|
+
|
|
1027
|
+
case _util.OPS.moveTo:
|
|
1028
|
+
x = args[j++];
|
|
1029
|
+
y = args[j++];
|
|
1030
|
+
ctx.moveTo(x, y);
|
|
1031
|
+
break;
|
|
1032
|
+
|
|
1033
|
+
case _util.OPS.lineTo:
|
|
1034
|
+
x = args[j++];
|
|
1035
|
+
y = args[j++];
|
|
1036
|
+
ctx.lineTo(x, y);
|
|
1037
|
+
break;
|
|
1038
|
+
|
|
1039
|
+
case _util.OPS.curveTo:
|
|
1040
|
+
x = args[j + 4];
|
|
1041
|
+
y = args[j + 5];
|
|
1042
|
+
ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);
|
|
1043
|
+
j += 6;
|
|
1044
|
+
break;
|
|
1045
|
+
|
|
1046
|
+
case _util.OPS.curveTo2:
|
|
1047
|
+
ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);
|
|
1048
|
+
x = args[j + 2];
|
|
1049
|
+
y = args[j + 3];
|
|
1050
|
+
j += 4;
|
|
1051
|
+
break;
|
|
1052
|
+
|
|
1053
|
+
case _util.OPS.curveTo3:
|
|
1054
|
+
x = args[j + 2];
|
|
1055
|
+
y = args[j + 3];
|
|
1056
|
+
ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);
|
|
1057
|
+
j += 4;
|
|
1058
|
+
break;
|
|
1059
|
+
|
|
1060
|
+
case _util.OPS.closePath:
|
|
1061
|
+
ctx.closePath();
|
|
1062
|
+
break;
|
|
1063
|
+
}
|
|
1064
|
+
}
|
|
1065
|
+
|
|
1066
|
+
current.setCurrentPoint(x, y);
|
|
1067
|
+
},
|
|
1068
|
+
closePath: function CanvasGraphics_closePath() {
|
|
1069
|
+
this.ctx.closePath();
|
|
1070
|
+
},
|
|
1071
|
+
stroke: function CanvasGraphics_stroke(consumePath) {
|
|
1072
|
+
consumePath = typeof consumePath !== "undefined" ? consumePath : true;
|
|
1073
|
+
var ctx = this.ctx;
|
|
1074
|
+
var strokeColor = this.current.strokeColor;
|
|
1075
|
+
ctx.globalAlpha = this.current.strokeAlpha;
|
|
1076
|
+
|
|
1077
|
+
if (strokeColor && strokeColor.hasOwnProperty("type") && strokeColor.type === "Pattern") {
|
|
1078
|
+
ctx.save();
|
|
1079
|
+
const transform = ctx.mozCurrentTransform;
|
|
1080
|
+
|
|
1081
|
+
const scale = _util.Util.singularValueDecompose2dScale(transform)[0];
|
|
1082
|
+
|
|
1083
|
+
ctx.strokeStyle = strokeColor.getPattern(ctx, this);
|
|
1084
|
+
ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth * scale);
|
|
1085
|
+
ctx.stroke();
|
|
1086
|
+
ctx.restore();
|
|
1087
|
+
} else {
|
|
1088
|
+
ctx.lineWidth = Math.max(this.getSinglePixelWidth() * MIN_WIDTH_FACTOR, this.current.lineWidth);
|
|
1089
|
+
ctx.stroke();
|
|
1090
|
+
}
|
|
1091
|
+
|
|
1092
|
+
if (consumePath) {
|
|
1093
|
+
this.consumePath();
|
|
1094
|
+
}
|
|
1095
|
+
|
|
1096
|
+
ctx.globalAlpha = this.current.fillAlpha;
|
|
1097
|
+
},
|
|
1098
|
+
closeStroke: function CanvasGraphics_closeStroke() {
|
|
1099
|
+
this.closePath();
|
|
1100
|
+
this.stroke();
|
|
1101
|
+
},
|
|
1102
|
+
fill: function CanvasGraphics_fill(consumePath) {
|
|
1103
|
+
consumePath = typeof consumePath !== "undefined" ? consumePath : true;
|
|
1104
|
+
var ctx = this.ctx;
|
|
1105
|
+
var fillColor = this.current.fillColor;
|
|
1106
|
+
var isPatternFill = this.current.patternFill;
|
|
1107
|
+
var needRestore = false;
|
|
1108
|
+
|
|
1109
|
+
if (isPatternFill) {
|
|
1110
|
+
ctx.save();
|
|
1111
|
+
|
|
1112
|
+
if (this.baseTransform) {
|
|
1113
|
+
ctx.setTransform.apply(ctx, this.baseTransform);
|
|
1114
|
+
}
|
|
1115
|
+
|
|
1116
|
+
ctx.fillStyle = fillColor.getPattern(ctx, this);
|
|
1117
|
+
needRestore = true;
|
|
1118
|
+
}
|
|
1119
|
+
|
|
1120
|
+
if (this.pendingEOFill) {
|
|
1121
|
+
ctx.fill("evenodd");
|
|
1122
|
+
this.pendingEOFill = false;
|
|
1123
|
+
} else {
|
|
1124
|
+
ctx.fill();
|
|
1125
|
+
}
|
|
1126
|
+
|
|
1127
|
+
if (needRestore) {
|
|
1128
|
+
ctx.restore();
|
|
1129
|
+
}
|
|
1130
|
+
|
|
1131
|
+
if (consumePath) {
|
|
1132
|
+
this.consumePath();
|
|
1133
|
+
}
|
|
1134
|
+
},
|
|
1135
|
+
eoFill: function CanvasGraphics_eoFill() {
|
|
1136
|
+
this.pendingEOFill = true;
|
|
1137
|
+
this.fill();
|
|
1138
|
+
},
|
|
1139
|
+
fillStroke: function CanvasGraphics_fillStroke() {
|
|
1140
|
+
this.fill(false);
|
|
1141
|
+
this.stroke(false);
|
|
1142
|
+
this.consumePath();
|
|
1143
|
+
},
|
|
1144
|
+
eoFillStroke: function CanvasGraphics_eoFillStroke() {
|
|
1145
|
+
this.pendingEOFill = true;
|
|
1146
|
+
this.fillStroke();
|
|
1147
|
+
},
|
|
1148
|
+
closeFillStroke: function CanvasGraphics_closeFillStroke() {
|
|
1149
|
+
this.closePath();
|
|
1150
|
+
this.fillStroke();
|
|
1151
|
+
},
|
|
1152
|
+
closeEOFillStroke: function CanvasGraphics_closeEOFillStroke() {
|
|
1153
|
+
this.pendingEOFill = true;
|
|
1154
|
+
this.closePath();
|
|
1155
|
+
this.fillStroke();
|
|
1156
|
+
},
|
|
1157
|
+
endPath: function CanvasGraphics_endPath() {
|
|
1158
|
+
this.consumePath();
|
|
1159
|
+
},
|
|
1160
|
+
clip: function CanvasGraphics_clip() {
|
|
1161
|
+
this.pendingClip = NORMAL_CLIP;
|
|
1162
|
+
},
|
|
1163
|
+
eoClip: function CanvasGraphics_eoClip() {
|
|
1164
|
+
this.pendingClip = EO_CLIP;
|
|
1165
|
+
},
|
|
1166
|
+
beginText: function CanvasGraphics_beginText() {
|
|
1167
|
+
this.current.textMatrix = _util.IDENTITY_MATRIX;
|
|
1168
|
+
this.current.textMatrixScale = 1;
|
|
1169
|
+
this.current.x = this.current.lineX = 0;
|
|
1170
|
+
this.current.y = this.current.lineY = 0;
|
|
1171
|
+
},
|
|
1172
|
+
endText: function CanvasGraphics_endText() {
|
|
1173
|
+
var paths = this.pendingTextPaths;
|
|
1174
|
+
var ctx = this.ctx;
|
|
1175
|
+
|
|
1176
|
+
if (paths === undefined) {
|
|
1177
|
+
ctx.beginPath();
|
|
1178
|
+
return;
|
|
1179
|
+
}
|
|
1180
|
+
|
|
1181
|
+
ctx.save();
|
|
1182
|
+
ctx.beginPath();
|
|
1183
|
+
|
|
1184
|
+
for (var i = 0; i < paths.length; i++) {
|
|
1185
|
+
var path = paths[i];
|
|
1186
|
+
ctx.setTransform.apply(ctx, path.transform);
|
|
1187
|
+
ctx.translate(path.x, path.y);
|
|
1188
|
+
path.addToPath(ctx, path.fontSize);
|
|
1189
|
+
}
|
|
1190
|
+
|
|
1191
|
+
ctx.restore();
|
|
1192
|
+
ctx.clip();
|
|
1193
|
+
ctx.beginPath();
|
|
1194
|
+
delete this.pendingTextPaths;
|
|
1195
|
+
},
|
|
1196
|
+
setCharSpacing: function CanvasGraphics_setCharSpacing(spacing) {
|
|
1197
|
+
this.current.charSpacing = spacing;
|
|
1198
|
+
},
|
|
1199
|
+
setWordSpacing: function CanvasGraphics_setWordSpacing(spacing) {
|
|
1200
|
+
this.current.wordSpacing = spacing;
|
|
1201
|
+
},
|
|
1202
|
+
setHScale: function CanvasGraphics_setHScale(scale) {
|
|
1203
|
+
this.current.textHScale = scale / 100;
|
|
1204
|
+
},
|
|
1205
|
+
setLeading: function CanvasGraphics_setLeading(leading) {
|
|
1206
|
+
this.current.leading = -leading;
|
|
1207
|
+
},
|
|
1208
|
+
setFont: function CanvasGraphics_setFont(fontRefName, size) {
|
|
1209
|
+
var fontObj = this.commonObjs.get(fontRefName);
|
|
1210
|
+
var current = this.current;
|
|
1211
|
+
|
|
1212
|
+
if (!fontObj) {
|
|
1213
|
+
throw new Error(`Can't find font for ${fontRefName}`);
|
|
1214
|
+
}
|
|
1215
|
+
|
|
1216
|
+
current.fontMatrix = fontObj.fontMatrix ? fontObj.fontMatrix : _util.FONT_IDENTITY_MATRIX;
|
|
1217
|
+
|
|
1218
|
+
if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {
|
|
1219
|
+
(0, _util.warn)("Invalid font matrix for font " + fontRefName);
|
|
1220
|
+
}
|
|
1221
|
+
|
|
1222
|
+
if (size < 0) {
|
|
1223
|
+
size = -size;
|
|
1224
|
+
current.fontDirection = -1;
|
|
1225
|
+
} else {
|
|
1226
|
+
current.fontDirection = 1;
|
|
1227
|
+
}
|
|
1228
|
+
|
|
1229
|
+
this.current.font = fontObj;
|
|
1230
|
+
this.current.fontSize = size;
|
|
1231
|
+
|
|
1232
|
+
if (fontObj.isType3Font) {
|
|
1233
|
+
return;
|
|
1234
|
+
}
|
|
1235
|
+
|
|
1236
|
+
var name = fontObj.loadedName || "sans-serif";
|
|
1237
|
+
let bold = "normal";
|
|
1238
|
+
|
|
1239
|
+
if (fontObj.black) {
|
|
1240
|
+
bold = "900";
|
|
1241
|
+
} else if (fontObj.bold) {
|
|
1242
|
+
bold = "bold";
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1245
|
+
var italic = fontObj.italic ? "italic" : "normal";
|
|
1246
|
+
var typeface = `"${name}", ${fontObj.fallbackName}`;
|
|
1247
|
+
let browserFontSize = size;
|
|
1248
|
+
|
|
1249
|
+
if (size < MIN_FONT_SIZE) {
|
|
1250
|
+
browserFontSize = MIN_FONT_SIZE;
|
|
1251
|
+
} else if (size > MAX_FONT_SIZE) {
|
|
1252
|
+
browserFontSize = MAX_FONT_SIZE;
|
|
1253
|
+
}
|
|
1254
|
+
|
|
1255
|
+
this.current.fontSizeScale = size / browserFontSize;
|
|
1256
|
+
this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;
|
|
1257
|
+
},
|
|
1258
|
+
setTextRenderingMode: function CanvasGraphics_setTextRenderingMode(mode) {
|
|
1259
|
+
this.current.textRenderingMode = mode;
|
|
1260
|
+
},
|
|
1261
|
+
setTextRise: function CanvasGraphics_setTextRise(rise) {
|
|
1262
|
+
this.current.textRise = rise;
|
|
1263
|
+
},
|
|
1264
|
+
moveText: function CanvasGraphics_moveText(x, y) {
|
|
1265
|
+
this.current.x = this.current.lineX += x;
|
|
1266
|
+
this.current.y = this.current.lineY += y;
|
|
1267
|
+
},
|
|
1268
|
+
setLeadingMoveText: function CanvasGraphics_setLeadingMoveText(x, y) {
|
|
1269
|
+
this.setLeading(-y);
|
|
1270
|
+
this.moveText(x, y);
|
|
1271
|
+
},
|
|
1272
|
+
setTextMatrix: function CanvasGraphics_setTextMatrix(a, b, c, d, e, f) {
|
|
1273
|
+
this.current.textMatrix = [a, b, c, d, e, f];
|
|
1274
|
+
this.current.textMatrixScale = Math.sqrt(a * a + b * b);
|
|
1275
|
+
this.current.x = this.current.lineX = 0;
|
|
1276
|
+
this.current.y = this.current.lineY = 0;
|
|
1277
|
+
},
|
|
1278
|
+
nextLine: function CanvasGraphics_nextLine() {
|
|
1279
|
+
this.moveText(0, this.current.leading);
|
|
1280
|
+
},
|
|
1281
|
+
|
|
1282
|
+
paintChar(character, x, y, patternTransform) {
|
|
1283
|
+
var ctx = this.ctx;
|
|
1284
|
+
var current = this.current;
|
|
1285
|
+
var font = current.font;
|
|
1286
|
+
var textRenderingMode = current.textRenderingMode;
|
|
1287
|
+
var fontSize = current.fontSize / current.fontSizeScale;
|
|
1288
|
+
var fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
|
|
1289
|
+
var isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);
|
|
1290
|
+
const patternFill = current.patternFill && font.data;
|
|
1291
|
+
var addToPath;
|
|
1292
|
+
|
|
1293
|
+
if (font.disableFontFace || isAddToPathSet || patternFill) {
|
|
1294
|
+
addToPath = font.getPathGenerator(this.commonObjs, character);
|
|
1295
|
+
}
|
|
1296
|
+
|
|
1297
|
+
if (font.disableFontFace || patternFill) {
|
|
1298
|
+
ctx.save();
|
|
1299
|
+
ctx.translate(x, y);
|
|
1300
|
+
ctx.beginPath();
|
|
1301
|
+
addToPath(ctx, fontSize);
|
|
1302
|
+
|
|
1303
|
+
if (patternTransform) {
|
|
1304
|
+
ctx.setTransform.apply(ctx, patternTransform);
|
|
1305
|
+
}
|
|
1306
|
+
|
|
1307
|
+
if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
|
|
1308
|
+
ctx.fill();
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
|
|
1312
|
+
ctx.stroke();
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1315
|
+
ctx.restore();
|
|
1316
|
+
} else {
|
|
1317
|
+
if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
|
|
1318
|
+
ctx.fillText(character, x, y);
|
|
1319
|
+
}
|
|
1320
|
+
|
|
1321
|
+
if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
|
|
1322
|
+
ctx.strokeText(character, x, y);
|
|
1323
|
+
}
|
|
1324
|
+
}
|
|
1325
|
+
|
|
1326
|
+
if (isAddToPathSet) {
|
|
1327
|
+
var paths = this.pendingTextPaths || (this.pendingTextPaths = []);
|
|
1328
|
+
paths.push({
|
|
1329
|
+
transform: ctx.mozCurrentTransform,
|
|
1330
|
+
x,
|
|
1331
|
+
y,
|
|
1332
|
+
fontSize,
|
|
1333
|
+
addToPath
|
|
1334
|
+
});
|
|
1335
|
+
}
|
|
1336
|
+
},
|
|
1337
|
+
|
|
1338
|
+
get isFontSubpixelAAEnabled() {
|
|
1339
|
+
const {
|
|
1340
|
+
context: ctx
|
|
1341
|
+
} = this.cachedCanvases.getCanvas("isFontSubpixelAAEnabled", 10, 10);
|
|
1342
|
+
ctx.scale(1.5, 1);
|
|
1343
|
+
ctx.fillText("I", 0, 10);
|
|
1344
|
+
var data = ctx.getImageData(0, 0, 10, 10).data;
|
|
1345
|
+
var enabled = false;
|
|
1346
|
+
|
|
1347
|
+
for (var i = 3; i < data.length; i += 4) {
|
|
1348
|
+
if (data[i] > 0 && data[i] < 255) {
|
|
1349
|
+
enabled = true;
|
|
1350
|
+
break;
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
|
|
1354
|
+
return (0, _util.shadow)(this, "isFontSubpixelAAEnabled", enabled);
|
|
1355
|
+
},
|
|
1356
|
+
|
|
1357
|
+
showText: function CanvasGraphics_showText(glyphs) {
|
|
1358
|
+
var current = this.current;
|
|
1359
|
+
var font = current.font;
|
|
1360
|
+
|
|
1361
|
+
if (font.isType3Font) {
|
|
1362
|
+
return this.showType3Text(glyphs);
|
|
1363
|
+
}
|
|
1364
|
+
|
|
1365
|
+
var fontSize = current.fontSize;
|
|
1366
|
+
|
|
1367
|
+
if (fontSize === 0) {
|
|
1368
|
+
return undefined;
|
|
1369
|
+
}
|
|
1370
|
+
|
|
1371
|
+
var ctx = this.ctx;
|
|
1372
|
+
var fontSizeScale = current.fontSizeScale;
|
|
1373
|
+
var charSpacing = current.charSpacing;
|
|
1374
|
+
var wordSpacing = current.wordSpacing;
|
|
1375
|
+
var fontDirection = current.fontDirection;
|
|
1376
|
+
var textHScale = current.textHScale * fontDirection;
|
|
1377
|
+
var glyphsLength = glyphs.length;
|
|
1378
|
+
var vertical = font.vertical;
|
|
1379
|
+
var spacingDir = vertical ? 1 : -1;
|
|
1380
|
+
var defaultVMetrics = font.defaultVMetrics;
|
|
1381
|
+
var widthAdvanceScale = fontSize * current.fontMatrix[0];
|
|
1382
|
+
var simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;
|
|
1383
|
+
ctx.save();
|
|
1384
|
+
let patternTransform;
|
|
1385
|
+
|
|
1386
|
+
if (current.patternFill) {
|
|
1387
|
+
ctx.save();
|
|
1388
|
+
const pattern = current.fillColor.getPattern(ctx, this);
|
|
1389
|
+
patternTransform = ctx.mozCurrentTransform;
|
|
1390
|
+
ctx.restore();
|
|
1391
|
+
ctx.fillStyle = pattern;
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1394
|
+
ctx.transform.apply(ctx, current.textMatrix);
|
|
1395
|
+
ctx.translate(current.x, current.y + current.textRise);
|
|
1396
|
+
|
|
1397
|
+
if (fontDirection > 0) {
|
|
1398
|
+
ctx.scale(textHScale, -1);
|
|
1399
|
+
} else {
|
|
1400
|
+
ctx.scale(textHScale, 1);
|
|
1401
|
+
}
|
|
1402
|
+
|
|
1403
|
+
var lineWidth = current.lineWidth;
|
|
1404
|
+
var scale = current.textMatrixScale;
|
|
1405
|
+
|
|
1406
|
+
if (scale === 0 || lineWidth === 0) {
|
|
1407
|
+
var fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;
|
|
1408
|
+
|
|
1409
|
+
if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {
|
|
1410
|
+
this._cachedGetSinglePixelWidth = null;
|
|
1411
|
+
lineWidth = this.getSinglePixelWidth() * MIN_WIDTH_FACTOR;
|
|
1412
|
+
}
|
|
1413
|
+
} else {
|
|
1414
|
+
lineWidth /= scale;
|
|
1415
|
+
}
|
|
1416
|
+
|
|
1417
|
+
if (fontSizeScale !== 1.0) {
|
|
1418
|
+
ctx.scale(fontSizeScale, fontSizeScale);
|
|
1419
|
+
lineWidth /= fontSizeScale;
|
|
1420
|
+
}
|
|
1421
|
+
|
|
1422
|
+
ctx.lineWidth = lineWidth;
|
|
1423
|
+
var x = 0,
|
|
1424
|
+
i;
|
|
1425
|
+
|
|
1426
|
+
for (i = 0; i < glyphsLength; ++i) {
|
|
1427
|
+
var glyph = glyphs[i];
|
|
1428
|
+
|
|
1429
|
+
if ((0, _util.isNum)(glyph)) {
|
|
1430
|
+
x += spacingDir * glyph * fontSize / 1000;
|
|
1431
|
+
continue;
|
|
1432
|
+
}
|
|
1433
|
+
|
|
1434
|
+
var restoreNeeded = false;
|
|
1435
|
+
var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
|
|
1436
|
+
var character = glyph.fontChar;
|
|
1437
|
+
var accent = glyph.accent;
|
|
1438
|
+
var scaledX, scaledY, scaledAccentX, scaledAccentY;
|
|
1439
|
+
var width = glyph.width;
|
|
1440
|
+
|
|
1441
|
+
if (vertical) {
|
|
1442
|
+
var vmetric, vx, vy;
|
|
1443
|
+
vmetric = glyph.vmetric || defaultVMetrics;
|
|
1444
|
+
vx = glyph.vmetric ? vmetric[1] : width * 0.5;
|
|
1445
|
+
vx = -vx * widthAdvanceScale;
|
|
1446
|
+
vy = vmetric[2] * widthAdvanceScale;
|
|
1447
|
+
width = vmetric ? -vmetric[0] : width;
|
|
1448
|
+
scaledX = vx / fontSizeScale;
|
|
1449
|
+
scaledY = (x + vy) / fontSizeScale;
|
|
1450
|
+
} else {
|
|
1451
|
+
scaledX = x / fontSizeScale;
|
|
1452
|
+
scaledY = 0;
|
|
1453
|
+
}
|
|
1454
|
+
|
|
1455
|
+
if (font.remeasure && width > 0) {
|
|
1456
|
+
var measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;
|
|
1457
|
+
|
|
1458
|
+
if (width < measuredWidth && this.isFontSubpixelAAEnabled) {
|
|
1459
|
+
var characterScaleX = width / measuredWidth;
|
|
1460
|
+
restoreNeeded = true;
|
|
1461
|
+
ctx.save();
|
|
1462
|
+
ctx.scale(characterScaleX, 1);
|
|
1463
|
+
scaledX /= characterScaleX;
|
|
1464
|
+
} else if (width !== measuredWidth) {
|
|
1465
|
+
scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
|
|
1469
|
+
if (glyph.isInFont || font.missingFile) {
|
|
1470
|
+
if (simpleFillText && !accent) {
|
|
1471
|
+
ctx.fillText(character, scaledX, scaledY);
|
|
1472
|
+
} else {
|
|
1473
|
+
this.paintChar(character, scaledX, scaledY, patternTransform);
|
|
1474
|
+
|
|
1475
|
+
if (accent) {
|
|
1476
|
+
scaledAccentX = scaledX + accent.offset.x / fontSizeScale;
|
|
1477
|
+
scaledAccentY = scaledY - accent.offset.y / fontSizeScale;
|
|
1478
|
+
this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);
|
|
1479
|
+
}
|
|
1480
|
+
}
|
|
1481
|
+
}
|
|
1482
|
+
|
|
1483
|
+
var charWidth;
|
|
1484
|
+
|
|
1485
|
+
if (vertical) {
|
|
1486
|
+
charWidth = width * widthAdvanceScale - spacing * fontDirection;
|
|
1487
|
+
} else {
|
|
1488
|
+
charWidth = width * widthAdvanceScale + spacing * fontDirection;
|
|
1489
|
+
}
|
|
1490
|
+
|
|
1491
|
+
x += charWidth;
|
|
1492
|
+
|
|
1493
|
+
if (restoreNeeded) {
|
|
1494
|
+
ctx.restore();
|
|
1495
|
+
}
|
|
1496
|
+
}
|
|
1497
|
+
|
|
1498
|
+
if (vertical) {
|
|
1499
|
+
current.y -= x;
|
|
1500
|
+
} else {
|
|
1501
|
+
current.x += x * textHScale;
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1504
|
+
ctx.restore();
|
|
1505
|
+
},
|
|
1506
|
+
showType3Text: function CanvasGraphics_showType3Text(glyphs) {
|
|
1507
|
+
var ctx = this.ctx;
|
|
1508
|
+
var current = this.current;
|
|
1509
|
+
var font = current.font;
|
|
1510
|
+
var fontSize = current.fontSize;
|
|
1511
|
+
var fontDirection = current.fontDirection;
|
|
1512
|
+
var spacingDir = font.vertical ? 1 : -1;
|
|
1513
|
+
var charSpacing = current.charSpacing;
|
|
1514
|
+
var wordSpacing = current.wordSpacing;
|
|
1515
|
+
var textHScale = current.textHScale * fontDirection;
|
|
1516
|
+
var fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;
|
|
1517
|
+
var glyphsLength = glyphs.length;
|
|
1518
|
+
var isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;
|
|
1519
|
+
var i, glyph, width, spacingLength;
|
|
1520
|
+
|
|
1521
|
+
if (isTextInvisible || fontSize === 0) {
|
|
1522
|
+
return;
|
|
1523
|
+
}
|
|
1524
|
+
|
|
1525
|
+
this._cachedGetSinglePixelWidth = null;
|
|
1526
|
+
ctx.save();
|
|
1527
|
+
ctx.transform.apply(ctx, current.textMatrix);
|
|
1528
|
+
ctx.translate(current.x, current.y);
|
|
1529
|
+
ctx.scale(textHScale, fontDirection);
|
|
1530
|
+
|
|
1531
|
+
for (i = 0; i < glyphsLength; ++i) {
|
|
1532
|
+
glyph = glyphs[i];
|
|
1533
|
+
|
|
1534
|
+
if ((0, _util.isNum)(glyph)) {
|
|
1535
|
+
spacingLength = spacingDir * glyph * fontSize / 1000;
|
|
1536
|
+
this.ctx.translate(spacingLength, 0);
|
|
1537
|
+
current.x += spacingLength * textHScale;
|
|
1538
|
+
continue;
|
|
1539
|
+
}
|
|
1540
|
+
|
|
1541
|
+
var spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;
|
|
1542
|
+
var operatorList = font.charProcOperatorList[glyph.operatorListId];
|
|
1543
|
+
|
|
1544
|
+
if (!operatorList) {
|
|
1545
|
+
(0, _util.warn)(`Type3 character "${glyph.operatorListId}" is not available.`);
|
|
1546
|
+
continue;
|
|
1547
|
+
}
|
|
1548
|
+
|
|
1549
|
+
this.processingType3 = glyph;
|
|
1550
|
+
this.save();
|
|
1551
|
+
ctx.scale(fontSize, fontSize);
|
|
1552
|
+
ctx.transform.apply(ctx, fontMatrix);
|
|
1553
|
+
this.executeOperatorList(operatorList);
|
|
1554
|
+
this.restore();
|
|
1555
|
+
|
|
1556
|
+
var transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);
|
|
1557
|
+
|
|
1558
|
+
width = transformed[0] * fontSize + spacing;
|
|
1559
|
+
ctx.translate(width, 0);
|
|
1560
|
+
current.x += width * textHScale;
|
|
1561
|
+
}
|
|
1562
|
+
|
|
1563
|
+
ctx.restore();
|
|
1564
|
+
this.processingType3 = null;
|
|
1565
|
+
},
|
|
1566
|
+
setCharWidth: function CanvasGraphics_setCharWidth(xWidth, yWidth) {},
|
|
1567
|
+
setCharWidthAndBounds: function CanvasGraphics_setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {
|
|
1568
|
+
this.ctx.rect(llx, lly, urx - llx, ury - lly);
|
|
1569
|
+
this.clip();
|
|
1570
|
+
this.endPath();
|
|
1571
|
+
},
|
|
1572
|
+
getColorN_Pattern: function CanvasGraphics_getColorN_Pattern(IR) {
|
|
1573
|
+
var pattern;
|
|
1574
|
+
|
|
1575
|
+
if (IR[0] === "TilingPattern") {
|
|
1576
|
+
var color = IR[1];
|
|
1577
|
+
var baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();
|
|
1578
|
+
var canvasGraphicsFactory = {
|
|
1579
|
+
createCanvasGraphics: ctx => {
|
|
1580
|
+
return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, this.webGLContext);
|
|
1581
|
+
}
|
|
1582
|
+
};
|
|
1583
|
+
pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);
|
|
1584
|
+
} else {
|
|
1585
|
+
pattern = (0, _pattern_helper.getShadingPatternFromIR)(IR);
|
|
1586
|
+
}
|
|
1587
|
+
|
|
1588
|
+
return pattern;
|
|
1589
|
+
},
|
|
1590
|
+
setStrokeColorN: function CanvasGraphics_setStrokeColorN() {
|
|
1591
|
+
this.current.strokeColor = this.getColorN_Pattern(arguments);
|
|
1592
|
+
},
|
|
1593
|
+
setFillColorN: function CanvasGraphics_setFillColorN() {
|
|
1594
|
+
this.current.fillColor = this.getColorN_Pattern(arguments);
|
|
1595
|
+
this.current.patternFill = true;
|
|
1596
|
+
},
|
|
1597
|
+
setStrokeRGBColor: function CanvasGraphics_setStrokeRGBColor(r, g, b) {
|
|
1598
|
+
var color = _util.Util.makeCssRgb(r, g, b);
|
|
1599
|
+
|
|
1600
|
+
this.ctx.strokeStyle = color;
|
|
1601
|
+
this.current.strokeColor = color;
|
|
1602
|
+
},
|
|
1603
|
+
setFillRGBColor: function CanvasGraphics_setFillRGBColor(r, g, b) {
|
|
1604
|
+
var color = _util.Util.makeCssRgb(r, g, b);
|
|
1605
|
+
|
|
1606
|
+
this.ctx.fillStyle = color;
|
|
1607
|
+
this.current.fillColor = color;
|
|
1608
|
+
this.current.patternFill = false;
|
|
1609
|
+
},
|
|
1610
|
+
shadingFill: function CanvasGraphics_shadingFill(patternIR) {
|
|
1611
|
+
var ctx = this.ctx;
|
|
1612
|
+
this.save();
|
|
1613
|
+
var pattern = (0, _pattern_helper.getShadingPatternFromIR)(patternIR);
|
|
1614
|
+
ctx.fillStyle = pattern.getPattern(ctx, this, true);
|
|
1615
|
+
var inv = ctx.mozCurrentTransformInverse;
|
|
1616
|
+
|
|
1617
|
+
if (inv) {
|
|
1618
|
+
var canvas = ctx.canvas;
|
|
1619
|
+
var width = canvas.width;
|
|
1620
|
+
var height = canvas.height;
|
|
1621
|
+
|
|
1622
|
+
var bl = _util.Util.applyTransform([0, 0], inv);
|
|
1623
|
+
|
|
1624
|
+
var br = _util.Util.applyTransform([0, height], inv);
|
|
1625
|
+
|
|
1626
|
+
var ul = _util.Util.applyTransform([width, 0], inv);
|
|
1627
|
+
|
|
1628
|
+
var ur = _util.Util.applyTransform([width, height], inv);
|
|
1629
|
+
|
|
1630
|
+
var x0 = Math.min(bl[0], br[0], ul[0], ur[0]);
|
|
1631
|
+
var y0 = Math.min(bl[1], br[1], ul[1], ur[1]);
|
|
1632
|
+
var x1 = Math.max(bl[0], br[0], ul[0], ur[0]);
|
|
1633
|
+
var y1 = Math.max(bl[1], br[1], ul[1], ur[1]);
|
|
1634
|
+
this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);
|
|
1635
|
+
} else {
|
|
1636
|
+
this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);
|
|
1637
|
+
}
|
|
1638
|
+
|
|
1639
|
+
this.restore();
|
|
1640
|
+
},
|
|
1641
|
+
beginInlineImage: function CanvasGraphics_beginInlineImage() {
|
|
1642
|
+
(0, _util.unreachable)("Should not call beginInlineImage");
|
|
1643
|
+
},
|
|
1644
|
+
beginImageData: function CanvasGraphics_beginImageData() {
|
|
1645
|
+
(0, _util.unreachable)("Should not call beginImageData");
|
|
1646
|
+
},
|
|
1647
|
+
paintFormXObjectBegin: function CanvasGraphics_paintFormXObjectBegin(matrix, bbox) {
|
|
1648
|
+
this.save();
|
|
1649
|
+
this.baseTransformStack.push(this.baseTransform);
|
|
1650
|
+
|
|
1651
|
+
if (Array.isArray(matrix) && matrix.length === 6) {
|
|
1652
|
+
this.transform.apply(this, matrix);
|
|
1653
|
+
}
|
|
1654
|
+
|
|
1655
|
+
this.baseTransform = this.ctx.mozCurrentTransform;
|
|
1656
|
+
|
|
1657
|
+
if (bbox) {
|
|
1658
|
+
var width = bbox[2] - bbox[0];
|
|
1659
|
+
var height = bbox[3] - bbox[1];
|
|
1660
|
+
this.ctx.rect(bbox[0], bbox[1], width, height);
|
|
1661
|
+
this.clip();
|
|
1662
|
+
this.endPath();
|
|
1663
|
+
}
|
|
1664
|
+
},
|
|
1665
|
+
paintFormXObjectEnd: function CanvasGraphics_paintFormXObjectEnd() {
|
|
1666
|
+
this.restore();
|
|
1667
|
+
this.baseTransform = this.baseTransformStack.pop();
|
|
1668
|
+
},
|
|
1669
|
+
beginGroup: function CanvasGraphics_beginGroup(group) {
|
|
1670
|
+
this.save();
|
|
1671
|
+
var currentCtx = this.ctx;
|
|
1672
|
+
|
|
1673
|
+
if (!group.isolated) {
|
|
1674
|
+
(0, _util.info)("TODO: Support non-isolated groups.");
|
|
1675
|
+
}
|
|
1676
|
+
|
|
1677
|
+
if (group.knockout) {
|
|
1678
|
+
(0, _util.warn)("Knockout groups not supported.");
|
|
1679
|
+
}
|
|
1680
|
+
|
|
1681
|
+
var currentTransform = currentCtx.mozCurrentTransform;
|
|
1682
|
+
|
|
1683
|
+
if (group.matrix) {
|
|
1684
|
+
currentCtx.transform.apply(currentCtx, group.matrix);
|
|
1685
|
+
}
|
|
1686
|
+
|
|
1687
|
+
if (!group.bbox) {
|
|
1688
|
+
throw new Error("Bounding box is required.");
|
|
1689
|
+
}
|
|
1690
|
+
|
|
1691
|
+
var bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);
|
|
1692
|
+
|
|
1693
|
+
var canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];
|
|
1694
|
+
bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];
|
|
1695
|
+
var offsetX = Math.floor(bounds[0]);
|
|
1696
|
+
var offsetY = Math.floor(bounds[1]);
|
|
1697
|
+
var drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);
|
|
1698
|
+
var drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);
|
|
1699
|
+
var scaleX = 1,
|
|
1700
|
+
scaleY = 1;
|
|
1701
|
+
|
|
1702
|
+
if (drawnWidth > MAX_GROUP_SIZE) {
|
|
1703
|
+
scaleX = drawnWidth / MAX_GROUP_SIZE;
|
|
1704
|
+
drawnWidth = MAX_GROUP_SIZE;
|
|
1705
|
+
}
|
|
1706
|
+
|
|
1707
|
+
if (drawnHeight > MAX_GROUP_SIZE) {
|
|
1708
|
+
scaleY = drawnHeight / MAX_GROUP_SIZE;
|
|
1709
|
+
drawnHeight = MAX_GROUP_SIZE;
|
|
1710
|
+
}
|
|
1711
|
+
|
|
1712
|
+
var cacheId = "groupAt" + this.groupLevel;
|
|
1713
|
+
|
|
1714
|
+
if (group.smask) {
|
|
1715
|
+
cacheId += "_smask_" + this.smaskCounter++ % 2;
|
|
1716
|
+
}
|
|
1717
|
+
|
|
1718
|
+
var scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);
|
|
1719
|
+
var groupCtx = scratchCanvas.context;
|
|
1720
|
+
groupCtx.scale(1 / scaleX, 1 / scaleY);
|
|
1721
|
+
groupCtx.translate(-offsetX, -offsetY);
|
|
1722
|
+
groupCtx.transform.apply(groupCtx, currentTransform);
|
|
1723
|
+
|
|
1724
|
+
if (group.smask) {
|
|
1725
|
+
this.smaskStack.push({
|
|
1726
|
+
canvas: scratchCanvas.canvas,
|
|
1727
|
+
context: groupCtx,
|
|
1728
|
+
offsetX,
|
|
1729
|
+
offsetY,
|
|
1730
|
+
scaleX,
|
|
1731
|
+
scaleY,
|
|
1732
|
+
subtype: group.smask.subtype,
|
|
1733
|
+
backdrop: group.smask.backdrop,
|
|
1734
|
+
transferMap: group.smask.transferMap || null,
|
|
1735
|
+
startTransformInverse: null
|
|
1736
|
+
});
|
|
1737
|
+
} else {
|
|
1738
|
+
currentCtx.setTransform(1, 0, 0, 1, 0, 0);
|
|
1739
|
+
currentCtx.translate(offsetX, offsetY);
|
|
1740
|
+
currentCtx.scale(scaleX, scaleY);
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1743
|
+
copyCtxState(currentCtx, groupCtx);
|
|
1744
|
+
this.ctx = groupCtx;
|
|
1745
|
+
this.setGState([["BM", "source-over"], ["ca", 1], ["CA", 1]]);
|
|
1746
|
+
this.groupStack.push(currentCtx);
|
|
1747
|
+
this.groupLevel++;
|
|
1748
|
+
this.current.activeSMask = null;
|
|
1749
|
+
},
|
|
1750
|
+
endGroup: function CanvasGraphics_endGroup(group) {
|
|
1751
|
+
this.groupLevel--;
|
|
1752
|
+
var groupCtx = this.ctx;
|
|
1753
|
+
this.ctx = this.groupStack.pop();
|
|
1754
|
+
|
|
1755
|
+
if (this.ctx.imageSmoothingEnabled !== undefined) {
|
|
1756
|
+
this.ctx.imageSmoothingEnabled = false;
|
|
1757
|
+
} else {
|
|
1758
|
+
this.ctx.mozImageSmoothingEnabled = false;
|
|
1759
|
+
}
|
|
1760
|
+
|
|
1761
|
+
if (group.smask) {
|
|
1762
|
+
this.tempSMask = this.smaskStack.pop();
|
|
1763
|
+
} else {
|
|
1764
|
+
this.ctx.drawImage(groupCtx.canvas, 0, 0);
|
|
1765
|
+
}
|
|
1766
|
+
|
|
1767
|
+
this.restore();
|
|
1768
|
+
},
|
|
1769
|
+
beginAnnotations: function CanvasGraphics_beginAnnotations() {
|
|
1770
|
+
this.save();
|
|
1771
|
+
|
|
1772
|
+
if (this.baseTransform) {
|
|
1773
|
+
this.ctx.setTransform.apply(this.ctx, this.baseTransform);
|
|
1774
|
+
}
|
|
1775
|
+
},
|
|
1776
|
+
endAnnotations: function CanvasGraphics_endAnnotations() {
|
|
1777
|
+
this.restore();
|
|
1778
|
+
},
|
|
1779
|
+
beginAnnotation: function CanvasGraphics_beginAnnotation(rect, transform, matrix) {
|
|
1780
|
+
this.save();
|
|
1781
|
+
resetCtxToDefault(this.ctx);
|
|
1782
|
+
this.current = new CanvasExtraState();
|
|
1783
|
+
|
|
1784
|
+
if (Array.isArray(rect) && rect.length === 4) {
|
|
1785
|
+
var width = rect[2] - rect[0];
|
|
1786
|
+
var height = rect[3] - rect[1];
|
|
1787
|
+
this.ctx.rect(rect[0], rect[1], width, height);
|
|
1788
|
+
this.clip();
|
|
1789
|
+
this.endPath();
|
|
1790
|
+
}
|
|
1791
|
+
|
|
1792
|
+
this.transform.apply(this, transform);
|
|
1793
|
+
this.transform.apply(this, matrix);
|
|
1794
|
+
},
|
|
1795
|
+
endAnnotation: function CanvasGraphics_endAnnotation() {
|
|
1796
|
+
this.restore();
|
|
1797
|
+
},
|
|
1798
|
+
paintJpegXObject: function CanvasGraphics_paintJpegXObject(objId, w, h) {
|
|
1799
|
+
const domImage = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
|
|
1800
|
+
|
|
1801
|
+
if (!domImage) {
|
|
1802
|
+
(0, _util.warn)("Dependent image isn't ready yet");
|
|
1803
|
+
return;
|
|
1804
|
+
}
|
|
1805
|
+
|
|
1806
|
+
this.save();
|
|
1807
|
+
var ctx = this.ctx;
|
|
1808
|
+
ctx.scale(1 / w, -1 / h);
|
|
1809
|
+
ctx.drawImage(domImage, 0, 0, domImage.width, domImage.height, 0, -h, w, h);
|
|
1810
|
+
|
|
1811
|
+
if (this.imageLayer) {
|
|
1812
|
+
var currentTransform = ctx.mozCurrentTransformInverse;
|
|
1813
|
+
var position = this.getCanvasPosition(0, 0);
|
|
1814
|
+
this.imageLayer.appendImage({
|
|
1815
|
+
objId,
|
|
1816
|
+
left: position[0],
|
|
1817
|
+
top: position[1],
|
|
1818
|
+
width: w / currentTransform[0],
|
|
1819
|
+
height: h / currentTransform[3]
|
|
1820
|
+
});
|
|
1821
|
+
}
|
|
1822
|
+
|
|
1823
|
+
this.restore();
|
|
1824
|
+
},
|
|
1825
|
+
paintImageMaskXObject: function CanvasGraphics_paintImageMaskXObject(img) {
|
|
1826
|
+
var ctx = this.ctx;
|
|
1827
|
+
var width = img.width,
|
|
1828
|
+
height = img.height;
|
|
1829
|
+
var fillColor = this.current.fillColor;
|
|
1830
|
+
var isPatternFill = this.current.patternFill;
|
|
1831
|
+
var glyph = this.processingType3;
|
|
1832
|
+
|
|
1833
|
+
if (COMPILE_TYPE3_GLYPHS && glyph && glyph.compiled === undefined) {
|
|
1834
|
+
if (width <= MAX_SIZE_TO_COMPILE && height <= MAX_SIZE_TO_COMPILE) {
|
|
1835
|
+
glyph.compiled = compileType3Glyph({
|
|
1836
|
+
data: img.data,
|
|
1837
|
+
width,
|
|
1838
|
+
height
|
|
1839
|
+
});
|
|
1840
|
+
} else {
|
|
1841
|
+
glyph.compiled = null;
|
|
1842
|
+
}
|
|
1843
|
+
}
|
|
1844
|
+
|
|
1845
|
+
if (glyph && glyph.compiled) {
|
|
1846
|
+
glyph.compiled(ctx);
|
|
1847
|
+
return;
|
|
1848
|
+
}
|
|
1849
|
+
|
|
1850
|
+
var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
|
|
1851
|
+
var maskCtx = maskCanvas.context;
|
|
1852
|
+
maskCtx.save();
|
|
1853
|
+
putBinaryImageMask(maskCtx, img);
|
|
1854
|
+
maskCtx.globalCompositeOperation = "source-in";
|
|
1855
|
+
maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
|
|
1856
|
+
maskCtx.fillRect(0, 0, width, height);
|
|
1857
|
+
maskCtx.restore();
|
|
1858
|
+
this.paintInlineImageXObject(maskCanvas.canvas);
|
|
1859
|
+
},
|
|
1860
|
+
paintImageMaskXObjectRepeat: function CanvasGraphics_paintImageMaskXObjectRepeat(imgData, scaleX, scaleY, positions) {
|
|
1861
|
+
var width = imgData.width;
|
|
1862
|
+
var height = imgData.height;
|
|
1863
|
+
var fillColor = this.current.fillColor;
|
|
1864
|
+
var isPatternFill = this.current.patternFill;
|
|
1865
|
+
var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
|
|
1866
|
+
var maskCtx = maskCanvas.context;
|
|
1867
|
+
maskCtx.save();
|
|
1868
|
+
putBinaryImageMask(maskCtx, imgData);
|
|
1869
|
+
maskCtx.globalCompositeOperation = "source-in";
|
|
1870
|
+
maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
|
|
1871
|
+
maskCtx.fillRect(0, 0, width, height);
|
|
1872
|
+
maskCtx.restore();
|
|
1873
|
+
var ctx = this.ctx;
|
|
1874
|
+
|
|
1875
|
+
for (var i = 0, ii = positions.length; i < ii; i += 2) {
|
|
1876
|
+
ctx.save();
|
|
1877
|
+
ctx.transform(scaleX, 0, 0, scaleY, positions[i], positions[i + 1]);
|
|
1878
|
+
ctx.scale(1, -1);
|
|
1879
|
+
ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
|
|
1880
|
+
ctx.restore();
|
|
1881
|
+
}
|
|
1882
|
+
},
|
|
1883
|
+
paintImageMaskXObjectGroup: function CanvasGraphics_paintImageMaskXObjectGroup(images) {
|
|
1884
|
+
var ctx = this.ctx;
|
|
1885
|
+
var fillColor = this.current.fillColor;
|
|
1886
|
+
var isPatternFill = this.current.patternFill;
|
|
1887
|
+
|
|
1888
|
+
for (var i = 0, ii = images.length; i < ii; i++) {
|
|
1889
|
+
var image = images[i];
|
|
1890
|
+
var width = image.width,
|
|
1891
|
+
height = image.height;
|
|
1892
|
+
var maskCanvas = this.cachedCanvases.getCanvas("maskCanvas", width, height);
|
|
1893
|
+
var maskCtx = maskCanvas.context;
|
|
1894
|
+
maskCtx.save();
|
|
1895
|
+
putBinaryImageMask(maskCtx, image);
|
|
1896
|
+
maskCtx.globalCompositeOperation = "source-in";
|
|
1897
|
+
maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this) : fillColor;
|
|
1898
|
+
maskCtx.fillRect(0, 0, width, height);
|
|
1899
|
+
maskCtx.restore();
|
|
1900
|
+
ctx.save();
|
|
1901
|
+
ctx.transform.apply(ctx, image.transform);
|
|
1902
|
+
ctx.scale(1, -1);
|
|
1903
|
+
ctx.drawImage(maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);
|
|
1904
|
+
ctx.restore();
|
|
1905
|
+
}
|
|
1906
|
+
},
|
|
1907
|
+
paintImageXObject: function CanvasGraphics_paintImageXObject(objId) {
|
|
1908
|
+
const imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
|
|
1909
|
+
|
|
1910
|
+
if (!imgData) {
|
|
1911
|
+
(0, _util.warn)("Dependent image isn't ready yet");
|
|
1912
|
+
return;
|
|
1913
|
+
}
|
|
1914
|
+
|
|
1915
|
+
this.paintInlineImageXObject(imgData);
|
|
1916
|
+
},
|
|
1917
|
+
paintImageXObjectRepeat: function CanvasGraphics_paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {
|
|
1918
|
+
const imgData = this.processingType3 ? this.commonObjs.get(objId) : this.objs.get(objId);
|
|
1919
|
+
|
|
1920
|
+
if (!imgData) {
|
|
1921
|
+
(0, _util.warn)("Dependent image isn't ready yet");
|
|
1922
|
+
return;
|
|
1923
|
+
}
|
|
1924
|
+
|
|
1925
|
+
var width = imgData.width;
|
|
1926
|
+
var height = imgData.height;
|
|
1927
|
+
var map = [];
|
|
1928
|
+
|
|
1929
|
+
for (var i = 0, ii = positions.length; i < ii; i += 2) {
|
|
1930
|
+
map.push({
|
|
1931
|
+
transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],
|
|
1932
|
+
x: 0,
|
|
1933
|
+
y: 0,
|
|
1934
|
+
w: width,
|
|
1935
|
+
h: height
|
|
1936
|
+
});
|
|
1937
|
+
}
|
|
1938
|
+
|
|
1939
|
+
this.paintInlineImageXObjectGroup(imgData, map);
|
|
1940
|
+
},
|
|
1941
|
+
paintInlineImageXObject: function CanvasGraphics_paintInlineImageXObject(imgData) {
|
|
1942
|
+
var width = imgData.width;
|
|
1943
|
+
var height = imgData.height;
|
|
1944
|
+
var ctx = this.ctx;
|
|
1945
|
+
this.save();
|
|
1946
|
+
ctx.scale(1 / width, -1 / height);
|
|
1947
|
+
var currentTransform = ctx.mozCurrentTransformInverse;
|
|
1948
|
+
var a = currentTransform[0],
|
|
1949
|
+
b = currentTransform[1];
|
|
1950
|
+
var widthScale = Math.max(Math.sqrt(a * a + b * b), 1);
|
|
1951
|
+
var c = currentTransform[2],
|
|
1952
|
+
d = currentTransform[3];
|
|
1953
|
+
var heightScale = Math.max(Math.sqrt(c * c + d * d), 1);
|
|
1954
|
+
var imgToPaint, tmpCanvas;
|
|
1955
|
+
|
|
1956
|
+
if (typeof HTMLElement === "function" && imgData instanceof HTMLElement || !imgData.data) {
|
|
1957
|
+
imgToPaint = imgData;
|
|
1958
|
+
} else {
|
|
1959
|
+
tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", width, height);
|
|
1960
|
+
var tmpCtx = tmpCanvas.context;
|
|
1961
|
+
putBinaryImageData(tmpCtx, imgData);
|
|
1962
|
+
imgToPaint = tmpCanvas.canvas;
|
|
1963
|
+
}
|
|
1964
|
+
|
|
1965
|
+
var paintWidth = width,
|
|
1966
|
+
paintHeight = height;
|
|
1967
|
+
var tmpCanvasId = "prescale1";
|
|
1968
|
+
|
|
1969
|
+
while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {
|
|
1970
|
+
var newWidth = paintWidth,
|
|
1971
|
+
newHeight = paintHeight;
|
|
1972
|
+
|
|
1973
|
+
if (widthScale > 2 && paintWidth > 1) {
|
|
1974
|
+
newWidth = Math.ceil(paintWidth / 2);
|
|
1975
|
+
widthScale /= paintWidth / newWidth;
|
|
1976
|
+
}
|
|
1977
|
+
|
|
1978
|
+
if (heightScale > 2 && paintHeight > 1) {
|
|
1979
|
+
newHeight = Math.ceil(paintHeight / 2);
|
|
1980
|
+
heightScale /= paintHeight / newHeight;
|
|
1981
|
+
}
|
|
1982
|
+
|
|
1983
|
+
tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);
|
|
1984
|
+
tmpCtx = tmpCanvas.context;
|
|
1985
|
+
tmpCtx.clearRect(0, 0, newWidth, newHeight);
|
|
1986
|
+
tmpCtx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);
|
|
1987
|
+
imgToPaint = tmpCanvas.canvas;
|
|
1988
|
+
paintWidth = newWidth;
|
|
1989
|
+
paintHeight = newHeight;
|
|
1990
|
+
tmpCanvasId = tmpCanvasId === "prescale1" ? "prescale2" : "prescale1";
|
|
1991
|
+
}
|
|
1992
|
+
|
|
1993
|
+
ctx.drawImage(imgToPaint, 0, 0, paintWidth, paintHeight, 0, -height, width, height);
|
|
1994
|
+
|
|
1995
|
+
if (this.imageLayer) {
|
|
1996
|
+
var position = this.getCanvasPosition(0, -height);
|
|
1997
|
+
this.imageLayer.appendImage({
|
|
1998
|
+
imgData,
|
|
1999
|
+
left: position[0],
|
|
2000
|
+
top: position[1],
|
|
2001
|
+
width: width / currentTransform[0],
|
|
2002
|
+
height: height / currentTransform[3]
|
|
2003
|
+
});
|
|
2004
|
+
}
|
|
2005
|
+
|
|
2006
|
+
this.restore();
|
|
2007
|
+
},
|
|
2008
|
+
paintInlineImageXObjectGroup: function CanvasGraphics_paintInlineImageXObjectGroup(imgData, map) {
|
|
2009
|
+
var ctx = this.ctx;
|
|
2010
|
+
var w = imgData.width;
|
|
2011
|
+
var h = imgData.height;
|
|
2012
|
+
var tmpCanvas = this.cachedCanvases.getCanvas("inlineImage", w, h);
|
|
2013
|
+
var tmpCtx = tmpCanvas.context;
|
|
2014
|
+
putBinaryImageData(tmpCtx, imgData);
|
|
2015
|
+
|
|
2016
|
+
for (var i = 0, ii = map.length; i < ii; i++) {
|
|
2017
|
+
var entry = map[i];
|
|
2018
|
+
ctx.save();
|
|
2019
|
+
ctx.transform.apply(ctx, entry.transform);
|
|
2020
|
+
ctx.scale(1, -1);
|
|
2021
|
+
ctx.drawImage(tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);
|
|
2022
|
+
|
|
2023
|
+
if (this.imageLayer) {
|
|
2024
|
+
var position = this.getCanvasPosition(entry.x, entry.y);
|
|
2025
|
+
this.imageLayer.appendImage({
|
|
2026
|
+
imgData,
|
|
2027
|
+
left: position[0],
|
|
2028
|
+
top: position[1],
|
|
2029
|
+
width: w,
|
|
2030
|
+
height: h
|
|
2031
|
+
});
|
|
2032
|
+
}
|
|
2033
|
+
|
|
2034
|
+
ctx.restore();
|
|
2035
|
+
}
|
|
2036
|
+
},
|
|
2037
|
+
paintSolidColorImageMask: function CanvasGraphics_paintSolidColorImageMask() {
|
|
2038
|
+
this.ctx.fillRect(0, 0, 1, 1);
|
|
2039
|
+
},
|
|
2040
|
+
paintXObject: function CanvasGraphics_paintXObject() {
|
|
2041
|
+
(0, _util.warn)("Unsupported 'paintXObject' command.");
|
|
2042
|
+
},
|
|
2043
|
+
markPoint: function CanvasGraphics_markPoint(tag) {},
|
|
2044
|
+
markPointProps: function CanvasGraphics_markPointProps(tag, properties) {},
|
|
2045
|
+
beginMarkedContent: function CanvasGraphics_beginMarkedContent(tag) {},
|
|
2046
|
+
beginMarkedContentProps: function CanvasGraphics_beginMarkedContentProps(tag, properties) {},
|
|
2047
|
+
endMarkedContent: function CanvasGraphics_endMarkedContent() {},
|
|
2048
|
+
beginCompat: function CanvasGraphics_beginCompat() {},
|
|
2049
|
+
endCompat: function CanvasGraphics_endCompat() {},
|
|
2050
|
+
consumePath: function CanvasGraphics_consumePath() {
|
|
2051
|
+
var ctx = this.ctx;
|
|
2052
|
+
|
|
2053
|
+
if (this.pendingClip) {
|
|
2054
|
+
if (this.pendingClip === EO_CLIP) {
|
|
2055
|
+
ctx.clip("evenodd");
|
|
2056
|
+
} else {
|
|
2057
|
+
ctx.clip();
|
|
2058
|
+
}
|
|
2059
|
+
|
|
2060
|
+
this.pendingClip = null;
|
|
2061
|
+
}
|
|
2062
|
+
|
|
2063
|
+
ctx.beginPath();
|
|
2064
|
+
},
|
|
2065
|
+
|
|
2066
|
+
getSinglePixelWidth(scale) {
|
|
2067
|
+
if (this._cachedGetSinglePixelWidth === null) {
|
|
2068
|
+
const inverse = this.ctx.mozCurrentTransformInverse;
|
|
2069
|
+
this._cachedGetSinglePixelWidth = Math.sqrt(Math.max(inverse[0] * inverse[0] + inverse[1] * inverse[1], inverse[2] * inverse[2] + inverse[3] * inverse[3]));
|
|
2070
|
+
}
|
|
2071
|
+
|
|
2072
|
+
return this._cachedGetSinglePixelWidth;
|
|
2073
|
+
},
|
|
2074
|
+
|
|
2075
|
+
getCanvasPosition: function CanvasGraphics_getCanvasPosition(x, y) {
|
|
2076
|
+
var transform = this.ctx.mozCurrentTransform;
|
|
2077
|
+
return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];
|
|
2078
|
+
}
|
|
2079
|
+
};
|
|
2080
|
+
|
|
2081
|
+
for (var op in _util.OPS) {
|
|
2082
|
+
CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];
|
|
2083
|
+
}
|
|
2084
|
+
|
|
2085
|
+
return CanvasGraphics;
|
|
2086
|
+
}();
|
|
2087
|
+
|
|
2088
|
+
exports.CanvasGraphics = CanvasGraphics;
|