@verdocs/web-sdk 1.5.2 → 1.6.0
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/dist/cjs/{VerdocsEndpoint-5e6dd8ef.js → VerdocsEndpoint-4b97517d.js} +45 -2048
- package/dist/cjs/VerdocsEndpoint-4b97517d.js.map +1 -0
- package/dist/cjs/index-589f3be8.js +2 -0
- package/dist/cjs/index-589f3be8.js.map +1 -0
- package/dist/cjs/index.cjs.js +2 -0
- package/dist/cjs/index.cjs.js.map +1 -0
- package/dist/cjs/loader.cjs.js +4 -2
- package/dist/cjs/loader.cjs.js.map +1 -0
- package/dist/cjs/{popper-71bf3058.js → popper-11d5f714.js} +62 -49
- package/dist/cjs/popper-11d5f714.js.map +1 -0
- package/dist/cjs/verdocs-auth.cjs.entry.js +23 -14
- package/dist/cjs/verdocs-auth.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-button_2.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-button_2.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-dropdown_12.cjs.entry.js +11357 -7265
- package/dist/cjs/verdocs-dropdown_12.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-initial-dialog.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-initial-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-kba-dialog.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-kba-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-loader.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-loader.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-ok-dialog.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-ok-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-organization-card.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-organization-card.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-quick-functions.cjs.entry.js +3 -1
- package/dist/cjs/verdocs-quick-functions.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-search-activity_2.cjs.entry.js +3 -1
- package/dist/cjs/verdocs-search-activity_2.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-search-tabs.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-search-tabs.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-search.cjs.entry.js +3 -1
- package/dist/cjs/verdocs-search.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-sign.cjs.entry.js +4 -2
- package/dist/cjs/verdocs-sign.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-signature-dialog.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-signature-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-status-indicator.cjs.entry.js +3 -1
- package/dist/cjs/verdocs-status-indicator.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-template-card.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-template-card.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-template-tags.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-template-tags.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-toggle.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-toggle.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-upload-dialog.cjs.entry.js +2 -0
- package/dist/cjs/verdocs-upload-dialog.cjs.entry.js.map +1 -0
- package/dist/cjs/verdocs-web-sdk.cjs.js +4 -2
- package/dist/cjs/verdocs-web-sdk.cjs.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/controls/verdocs-button/verdocs-button.js +1 -0
- package/dist/collection/components/controls/verdocs-button/verdocs-button.js.map +1 -0
- package/dist/collection/components/controls/verdocs-button/verdocs-button.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-button/verdocs-button.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.js +1 -0
- package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.js.map +1 -0
- package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-dropdown/verdocs-dropdown.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-loader/verdocs-loader.js +1 -0
- package/dist/collection/components/controls/verdocs-loader/verdocs-loader.js.map +1 -0
- package/dist/collection/components/controls/verdocs-loader/verdocs-loader.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-loader/verdocs-loader.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-organization-card/verdocs-organization-card.js +1 -0
- package/dist/collection/components/controls/verdocs-organization-card/verdocs-organization-card.js.map +1 -0
- package/dist/collection/components/controls/verdocs-organization-card/verdocs-organization-card.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-organization-card/verdocs-organization-card.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-status-indicator/recipient-flow.js +1 -0
- package/dist/collection/components/controls/verdocs-status-indicator/recipient-flow.js.map +1 -0
- package/dist/collection/components/controls/verdocs-status-indicator/verdocs-status-indicator.js +1 -0
- package/dist/collection/components/controls/verdocs-status-indicator/verdocs-status-indicator.js.map +1 -0
- package/dist/collection/components/controls/verdocs-status-indicator/verdocs-status-indicator.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-status-indicator/verdocs-status-indicator.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-template-card/verdocs-template-card.js +1 -0
- package/dist/collection/components/controls/verdocs-template-card/verdocs-template-card.js.map +1 -0
- package/dist/collection/components/controls/verdocs-template-card/verdocs-template-card.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-template-card/verdocs-template-card.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-template-tags/verdocs-template-tags.js +1 -0
- package/dist/collection/components/controls/verdocs-template-tags/verdocs-template-tags.js.map +1 -0
- package/dist/collection/components/controls/verdocs-template-tags/verdocs-template-tags.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-template-tags/verdocs-template-tags.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-text-input/test/verdocs-text-input.js +1 -0
- package/dist/collection/components/controls/verdocs-text-input/test/verdocs-text-input.js.map +1 -0
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.js +1 -0
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.js.map +1 -0
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-text-input/verdocs-text-input.stories.js.map +1 -0
- package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.js +1 -0
- package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.js.map +1 -0
- package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.stories.js +1 -0
- package/dist/collection/components/controls/verdocs-toggle/verdocs-toggle.stories.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.js +1 -0
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.stories.js +1 -0
- package/dist/collection/components/dialogs/verdocs-initial-dialog/verdocs-initial-dialog.stories.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js +1 -0
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.stories.js +1 -0
- package/dist/collection/components/dialogs/verdocs-kba-dialog/verdocs-kba-dialog.stories.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.js +1 -0
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.stories.js +1 -0
- package/dist/collection/components/dialogs/verdocs-ok-dialog/verdocs-ok-dialog.stories.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.js +1 -0
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.stories.js +1 -0
- package/dist/collection/components/dialogs/verdocs-signature-dialog/verdocs-signature-dialog.stories.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.js +1 -0
- package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.js.map +1 -0
- package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.stories.js +1 -0
- package/dist/collection/components/dialogs/verdocs-upload-dialog/verdocs-upload-dialog.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-attachment/verdocs-field-attachment.js +1 -0
- package/dist/collection/components/elements/verdocs-field-attachment/verdocs-field-attachment.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-attachment/verdocs-field-attachment.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-attachment/verdocs-field-attachment.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.js +1 -0
- package/dist/collection/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-date/verdocs-field-date.js +1 -0
- package/dist/collection/components/elements/verdocs-field-date/verdocs-field-date.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-date/verdocs-field-date.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-date/verdocs-field-date.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-dropdown/verdocs-field-dropdown.js +1 -0
- package/dist/collection/components/elements/verdocs-field-dropdown/verdocs-field-dropdown.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-dropdown/verdocs-field-dropdown.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-dropdown/verdocs-field-dropdown.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-initial/verdocs-field-initial.js +1 -0
- package/dist/collection/components/elements/verdocs-field-initial/verdocs-field-initial.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-initial/verdocs-field-initial.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-initial/verdocs-field-initial.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-payment/verdocs-field-payment.js +1 -0
- package/dist/collection/components/elements/verdocs-field-payment/verdocs-field-payment.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-payment/verdocs-field-payment.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-payment/verdocs-field-payment.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.js +1 -0
- package/dist/collection/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-signature/verdocs-field-signature.js +1 -0
- package/dist/collection/components/elements/verdocs-field-signature/verdocs-field-signature.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-signature/verdocs-field-signature.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-signature/verdocs-field-signature.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-textarea/verdocs-field-textarea.js +1 -0
- package/dist/collection/components/elements/verdocs-field-textarea/verdocs-field-textarea.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-textarea/verdocs-field-textarea.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-textarea/verdocs-field-textarea.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-textbox/verdocs-field-textbox.js +1 -0
- package/dist/collection/components/elements/verdocs-field-textbox/verdocs-field-textbox.js.map +1 -0
- package/dist/collection/components/elements/verdocs-field-textbox/verdocs-field-textbox.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-field-textbox/verdocs-field-textbox.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-quick-functions/verdocs-quick-functions.js +1 -0
- package/dist/collection/components/elements/verdocs-quick-functions/verdocs-quick-functions.js.map +1 -0
- package/dist/collection/components/elements/verdocs-quick-functions/verdocs-quick-functions.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-quick-functions/verdocs-quick-functions.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-search-activity/verdocs-search-activity.js +1 -0
- package/dist/collection/components/elements/verdocs-search-activity/verdocs-search-activity.js.map +1 -0
- package/dist/collection/components/elements/verdocs-search-activity/verdocs-search-activity.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-search-activity/verdocs-search-activity.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-search-box/verdocs-search-box.js +1 -0
- package/dist/collection/components/elements/verdocs-search-box/verdocs-search-box.js.map +1 -0
- package/dist/collection/components/elements/verdocs-search-box/verdocs-search-box.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-search-box/verdocs-search-box.stories.js.map +1 -0
- package/dist/collection/components/elements/verdocs-search-tabs/verdocs-search-tabs.js +1 -0
- package/dist/collection/components/elements/verdocs-search-tabs/verdocs-search-tabs.js.map +1 -0
- package/dist/collection/components/elements/verdocs-search-tabs/verdocs-search-tabs.stories.js +1 -0
- package/dist/collection/components/elements/verdocs-search-tabs/verdocs-search-tabs.stories.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js +24 -16
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.stories.js +1 -0
- package/dist/collection/components/embeds/verdocs-auth/verdocs-auth.stories.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-search/verdocs-search.js +1 -0
- package/dist/collection/components/embeds/verdocs-search/verdocs-search.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-search/verdocs-search.stories.js +1 -0
- package/dist/collection/components/embeds/verdocs-search/verdocs-search.stories.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js +2 -1
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js +1 -0
- package/dist/collection/components/embeds/verdocs-sign/verdocs-sign.stories.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.css +1 -2
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.js +4 -24
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.js.map +1 -0
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.stories.js +5 -2
- package/dist/collection/components/embeds/verdocs-view/verdocs-view.stories.js.map +1 -0
- package/dist/collection/index.js +1 -0
- package/dist/collection/index.js.map +1 -0
- package/dist/collection/utils/utils.js +1 -0
- package/dist/collection/utils/utils.js.map +1 -0
- package/dist/components/VerdocsEndpoint.js +46 -2042
- package/dist/components/VerdocsEndpoint.js.map +1 -0
- package/dist/components/index.d.ts +32 -32
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/popper.js +62 -49
- package/dist/components/popper.js.map +1 -0
- package/dist/components/verdocs-auth.js +24 -14
- package/dist/components/verdocs-auth.js.map +1 -0
- package/dist/components/verdocs-button.js +2 -0
- package/dist/components/verdocs-button.js.map +1 -0
- package/dist/components/verdocs-button2.js +2 -0
- package/dist/components/verdocs-button2.js.map +1 -0
- package/dist/components/verdocs-dropdown.js +2 -0
- package/dist/components/verdocs-dropdown.js.map +1 -0
- package/dist/components/verdocs-dropdown2.js +2 -0
- package/dist/components/verdocs-dropdown2.js.map +1 -0
- package/dist/components/verdocs-field-attachment.js +2 -0
- package/dist/components/verdocs-field-attachment.js.map +1 -0
- package/dist/components/verdocs-field-attachment2.js +2 -0
- package/dist/components/verdocs-field-attachment2.js.map +1 -0
- package/dist/components/verdocs-field-checkbox.js +2 -0
- package/dist/components/verdocs-field-checkbox.js.map +1 -0
- package/dist/components/verdocs-field-checkbox2.js +2 -0
- package/dist/components/verdocs-field-checkbox2.js.map +1 -0
- package/dist/components/verdocs-field-date.js +2 -0
- package/dist/components/verdocs-field-date.js.map +1 -0
- package/dist/components/verdocs-field-date2.js +2 -0
- package/dist/components/verdocs-field-date2.js.map +1 -0
- package/dist/components/verdocs-field-dropdown.js +2 -0
- package/dist/components/verdocs-field-dropdown.js.map +1 -0
- package/dist/components/verdocs-field-dropdown2.js +2 -0
- package/dist/components/verdocs-field-dropdown2.js.map +1 -0
- package/dist/components/verdocs-field-initial.js +2 -0
- package/dist/components/verdocs-field-initial.js.map +1 -0
- package/dist/components/verdocs-field-initial2.js +2 -0
- package/dist/components/verdocs-field-initial2.js.map +1 -0
- package/dist/components/verdocs-field-payment.js +2 -0
- package/dist/components/verdocs-field-payment.js.map +1 -0
- package/dist/components/verdocs-field-payment2.js +2 -0
- package/dist/components/verdocs-field-payment2.js.map +1 -0
- package/dist/components/verdocs-field-radio-button.js +2 -0
- package/dist/components/verdocs-field-radio-button.js.map +1 -0
- package/dist/components/verdocs-field-radio-button2.js +2 -0
- package/dist/components/verdocs-field-radio-button2.js.map +1 -0
- package/dist/components/verdocs-field-signature.js +2 -0
- package/dist/components/verdocs-field-signature.js.map +1 -0
- package/dist/components/verdocs-field-signature2.js +2 -0
- package/dist/components/verdocs-field-signature2.js.map +1 -0
- package/dist/components/verdocs-field-textarea.js +2 -0
- package/dist/components/verdocs-field-textarea.js.map +1 -0
- package/dist/components/verdocs-field-textarea2.js +2 -0
- package/dist/components/verdocs-field-textarea2.js.map +1 -0
- package/dist/components/verdocs-field-textbox.js +2 -0
- package/dist/components/verdocs-field-textbox.js.map +1 -0
- package/dist/components/verdocs-field-textbox2.js +2 -0
- package/dist/components/verdocs-field-textbox2.js.map +1 -0
- package/dist/components/verdocs-initial-dialog.js +2 -0
- package/dist/components/verdocs-initial-dialog.js.map +1 -0
- package/dist/components/verdocs-initial-dialog2.js +2 -0
- package/dist/components/verdocs-initial-dialog2.js.map +1 -0
- package/dist/components/verdocs-kba-dialog.js +2 -0
- package/dist/components/verdocs-kba-dialog.js.map +1 -0
- package/dist/components/verdocs-loader.js +2 -0
- package/dist/components/verdocs-loader.js.map +1 -0
- package/dist/components/verdocs-loader2.js +2 -0
- package/dist/components/verdocs-loader2.js.map +1 -0
- package/dist/components/verdocs-ok-dialog.js +2 -0
- package/dist/components/verdocs-ok-dialog.js.map +1 -0
- package/dist/components/verdocs-ok-dialog2.js +2 -0
- package/dist/components/verdocs-ok-dialog2.js.map +1 -0
- package/dist/components/verdocs-organization-card.js +2 -0
- package/dist/components/verdocs-organization-card.js.map +1 -0
- package/dist/components/verdocs-quick-functions.js +2 -0
- package/dist/components/verdocs-quick-functions.js.map +1 -0
- package/dist/components/verdocs-search-activity.js +2 -0
- package/dist/components/verdocs-search-activity.js.map +1 -0
- package/dist/components/verdocs-search-activity2.js +2 -0
- package/dist/components/verdocs-search-activity2.js.map +1 -0
- package/dist/components/verdocs-search-box.js +2 -0
- package/dist/components/verdocs-search-box.js.map +1 -0
- package/dist/components/verdocs-search-box2.js +2 -0
- package/dist/components/verdocs-search-box2.js.map +1 -0
- package/dist/components/verdocs-search-tabs.js +2 -0
- package/dist/components/verdocs-search-tabs.js.map +1 -0
- package/dist/components/verdocs-search.js +2 -0
- package/dist/components/verdocs-search.js.map +1 -0
- package/dist/components/verdocs-sign.js +3 -1
- package/dist/components/verdocs-sign.js.map +1 -0
- package/dist/components/verdocs-signature-dialog.js +2 -0
- package/dist/components/verdocs-signature-dialog.js.map +1 -0
- package/dist/components/verdocs-signature-dialog2.js +2 -0
- package/dist/components/verdocs-signature-dialog2.js.map +1 -0
- package/dist/components/verdocs-status-indicator.js +2 -0
- package/dist/components/verdocs-status-indicator.js.map +1 -0
- package/dist/components/verdocs-template-card.js +2 -0
- package/dist/components/verdocs-template-card.js.map +1 -0
- package/dist/components/verdocs-template-tags.js +2 -0
- package/dist/components/verdocs-template-tags.js.map +1 -0
- package/dist/components/verdocs-text-input.js +2 -0
- package/dist/components/verdocs-text-input.js.map +1 -0
- package/dist/components/verdocs-text-input2.js +2 -0
- package/dist/components/verdocs-text-input2.js.map +1 -0
- package/dist/components/verdocs-toggle.js +2 -0
- package/dist/components/verdocs-toggle.js.map +1 -0
- package/dist/components/verdocs-upload-dialog.js +2 -0
- package/dist/components/verdocs-upload-dialog.js.map +1 -0
- package/dist/components/verdocs-upload-dialog2.js +2 -0
- package/dist/components/verdocs-upload-dialog2.js.map +1 -0
- package/dist/components/verdocs-view.js +2 -0
- package/dist/components/verdocs-view.js.map +1 -0
- package/dist/components/verdocs-view2.js +11357 -7266
- package/dist/components/verdocs-view2.js.map +1 -0
- package/dist/custom-elements.json +0 -4
- package/dist/docs.json +2 -20
- package/dist/esm/{VerdocsEndpoint-30e1b6ec.js → VerdocsEndpoint-9353e4a0.js} +46 -2042
- package/dist/esm/VerdocsEndpoint-9353e4a0.js.map +1 -0
- package/dist/esm/index-859bc689.js +2 -0
- package/dist/esm/index-859bc689.js.map +1 -0
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/loader.js +4 -2
- package/dist/esm/loader.js.map +1 -0
- package/dist/esm/{popper-93ecb064.js → popper-f860750c.js} +62 -49
- package/dist/esm/popper-f860750c.js.map +1 -0
- package/dist/esm/verdocs-auth.entry.js +23 -14
- package/dist/esm/verdocs-auth.entry.js.map +1 -0
- package/dist/esm/verdocs-button_2.entry.js +2 -0
- package/dist/esm/verdocs-button_2.entry.js.map +1 -0
- package/dist/esm/verdocs-dropdown_12.entry.js +11334 -7242
- package/dist/esm/verdocs-dropdown_12.entry.js.map +1 -0
- package/dist/esm/verdocs-initial-dialog.entry.js +2 -0
- package/dist/esm/verdocs-initial-dialog.entry.js.map +1 -0
- package/dist/esm/verdocs-kba-dialog.entry.js +2 -0
- package/dist/esm/verdocs-kba-dialog.entry.js.map +1 -0
- package/dist/esm/verdocs-loader.entry.js +2 -0
- package/dist/esm/verdocs-loader.entry.js.map +1 -0
- package/dist/esm/verdocs-ok-dialog.entry.js +2 -0
- package/dist/esm/verdocs-ok-dialog.entry.js.map +1 -0
- package/dist/esm/verdocs-organization-card.entry.js +2 -0
- package/dist/esm/verdocs-organization-card.entry.js.map +1 -0
- package/dist/esm/verdocs-quick-functions.entry.js +3 -1
- package/dist/esm/verdocs-quick-functions.entry.js.map +1 -0
- package/dist/esm/verdocs-search-activity_2.entry.js +3 -1
- package/dist/esm/verdocs-search-activity_2.entry.js.map +1 -0
- package/dist/esm/verdocs-search-tabs.entry.js +2 -0
- package/dist/esm/verdocs-search-tabs.entry.js.map +1 -0
- package/dist/esm/verdocs-search.entry.js +3 -1
- package/dist/esm/verdocs-search.entry.js.map +1 -0
- package/dist/esm/verdocs-sign.entry.js +4 -2
- package/dist/esm/verdocs-sign.entry.js.map +1 -0
- package/dist/esm/verdocs-signature-dialog.entry.js +2 -0
- package/dist/esm/verdocs-signature-dialog.entry.js.map +1 -0
- package/dist/esm/verdocs-status-indicator.entry.js +3 -1
- package/dist/esm/verdocs-status-indicator.entry.js.map +1 -0
- package/dist/esm/verdocs-template-card.entry.js +2 -0
- package/dist/esm/verdocs-template-card.entry.js.map +1 -0
- package/dist/esm/verdocs-template-tags.entry.js +2 -0
- package/dist/esm/verdocs-template-tags.entry.js.map +1 -0
- package/dist/esm/verdocs-toggle.entry.js +2 -0
- package/dist/esm/verdocs-toggle.entry.js.map +1 -0
- package/dist/esm/verdocs-upload-dialog.entry.js +2 -0
- package/dist/esm/verdocs-upload-dialog.entry.js.map +1 -0
- package/dist/esm/verdocs-web-sdk.js +4 -2
- package/dist/esm/verdocs-web-sdk.js.map +1 -0
- package/dist/esm-es5/VerdocsEndpoint-9353e4a0.js +2 -0
- package/dist/esm-es5/VerdocsEndpoint-9353e4a0.js.map +1 -0
- package/dist/esm-es5/index-859bc689.js +2 -1
- package/dist/esm-es5/index-859bc689.js.map +1 -0
- package/dist/esm-es5/index.js +2 -0
- package/dist/esm-es5/index.js.map +1 -0
- package/dist/esm-es5/loader.js +2 -1
- package/dist/esm-es5/loader.js.map +1 -0
- package/dist/esm-es5/popper-f860750c.js +2 -0
- package/dist/esm-es5/popper-f860750c.js.map +1 -0
- package/dist/esm-es5/verdocs-auth.entry.js +2 -1
- package/dist/esm-es5/verdocs-auth.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-button_2.entry.js +2 -1
- package/dist/esm-es5/verdocs-button_2.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-dropdown_12.entry.js +6 -5
- package/dist/esm-es5/verdocs-dropdown_12.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-initial-dialog.entry.js +2 -1
- package/dist/esm-es5/verdocs-initial-dialog.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-kba-dialog.entry.js +2 -1
- package/dist/esm-es5/verdocs-kba-dialog.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-loader.entry.js +2 -1
- package/dist/esm-es5/verdocs-loader.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-ok-dialog.entry.js +2 -1
- package/dist/esm-es5/verdocs-ok-dialog.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-organization-card.entry.js +2 -1
- package/dist/esm-es5/verdocs-organization-card.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-quick-functions.entry.js +2 -1
- package/dist/esm-es5/verdocs-quick-functions.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-search-activity_2.entry.js +2 -1
- package/dist/esm-es5/verdocs-search-activity_2.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-search-tabs.entry.js +2 -1
- package/dist/esm-es5/verdocs-search-tabs.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-search.entry.js +2 -1
- package/dist/esm-es5/verdocs-search.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-sign.entry.js +2 -1
- package/dist/esm-es5/verdocs-sign.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-signature-dialog.entry.js +2 -1
- package/dist/esm-es5/verdocs-signature-dialog.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-status-indicator.entry.js +2 -1
- package/dist/esm-es5/verdocs-status-indicator.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-template-card.entry.js +2 -1
- package/dist/esm-es5/verdocs-template-card.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-template-tags.entry.js +2 -1
- package/dist/esm-es5/verdocs-template-tags.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-toggle.entry.js +2 -1
- package/dist/esm-es5/verdocs-toggle.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-upload-dialog.entry.js +2 -1
- package/dist/esm-es5/verdocs-upload-dialog.entry.js.map +1 -0
- package/dist/esm-es5/verdocs-web-sdk.js +2 -1
- package/dist/esm-es5/verdocs-web-sdk.js.map +1 -0
- package/dist/types/components/embeds/verdocs-auth/verdocs-auth.d.ts +2 -0
- package/dist/types/components/embeds/verdocs-view/verdocs-view.d.ts +0 -5
- package/dist/types/components.d.ts +0 -8
- package/dist/verdocs-web-sdk/index.esm.js +2 -0
- package/dist/verdocs-web-sdk/index.esm.js.map +1 -0
- package/dist/verdocs-web-sdk/p-06b2e7a5.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-06b2e7a5.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-088b9a26.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-088b9a26.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-10e49d23.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-10e49d23.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-11f56146.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-11f56146.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-144e0842.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-144e0842.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-1907fc69.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-1907fc69.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-1c648415.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-1c648415.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-1f55d8ac.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-1f55d8ac.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-22220dcc.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-22220dcc.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-2bc58746.js +3 -2
- package/dist/verdocs-web-sdk/p-2bc58746.js.map +1 -0
- package/dist/verdocs-web-sdk/p-316b2fd4.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-316b2fd4.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-347c10fe.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-347c10fe.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-1b4e04b7.system.entry.js → p-39818d35.system.entry.js} +2 -1
- package/dist/verdocs-web-sdk/p-39818d35.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-4b0c711c.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-4b0c711c.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-50ea2036.system.js +2 -1
- package/dist/verdocs-web-sdk/p-50ea2036.system.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-a87069d5.system.entry.js → p-545eb938.system.entry.js} +2 -1
- package/dist/verdocs-web-sdk/p-545eb938.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-64127985.system.js +2 -0
- package/dist/verdocs-web-sdk/p-64127985.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-654d98ea.system.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-654d98ea.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-6802ef91.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-6802ef91.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-f814d5cc.system.entry.js → p-6bda2959.system.entry.js} +2 -1
- package/dist/verdocs-web-sdk/p-6bda2959.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-9139a76d.system.entry.js → p-6eed372a.system.entry.js} +2 -1
- package/dist/verdocs-web-sdk/p-6eed372a.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-7f162244.js +2 -0
- package/dist/verdocs-web-sdk/p-7f162244.js.map +1 -0
- package/dist/verdocs-web-sdk/p-81fc0196.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-81fc0196.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-85cd7ebf.system.entry.js +24 -0
- package/dist/verdocs-web-sdk/p-85cd7ebf.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-92f8605b.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-92f8605b.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-a217fe67.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-a217fe67.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-aef24c40.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-aef24c40.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-b08a8bd9.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-b08a8bd9.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-bb08e079.system.js +2 -0
- package/dist/verdocs-web-sdk/p-bb08e079.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-bdcc8115.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-bdcc8115.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-c2f97ef9.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-c2f97ef9.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-caed7818.system.js +2 -1
- package/dist/verdocs-web-sdk/p-caed7818.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-cc127684.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-cc127684.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-cd6a2c40.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-cd6a2c40.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-d14a6057.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-d14a6057.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-d6206c17.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-d6206c17.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-da0462e5.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-da0462e5.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/{p-16d62a51.system.entry.js → p-dadb25d5.system.entry.js} +2 -1
- package/dist/verdocs-web-sdk/p-dadb25d5.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-e12b7fbc.system.js +2 -0
- package/dist/verdocs-web-sdk/p-e12b7fbc.system.js.map +1 -0
- package/dist/verdocs-web-sdk/p-e4ba14dc.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-e4ba14dc.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-e719f9ca.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-e719f9ca.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-ec26fc38.js +2 -0
- package/dist/verdocs-web-sdk/p-ec26fc38.js.map +1 -0
- package/dist/verdocs-web-sdk/p-ec757dab.entry.js +24 -0
- package/dist/verdocs-web-sdk/p-ec757dab.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-f0d0f959.system.entry.js +2 -1
- package/dist/verdocs-web-sdk/p-f0d0f959.system.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-f248e3c4.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-f248e3c4.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/p-f33f8683.entry.js +2 -0
- package/dist/verdocs-web-sdk/p-f33f8683.entry.js.map +1 -0
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js +2 -1
- package/dist/verdocs-web-sdk/verdocs-web-sdk.esm.js.map +1 -0
- package/dist/verdocs-web-sdk/verdocs-web-sdk.js +1 -1
- package/package.json +20 -14
- package/dist/esm-es5/VerdocsEndpoint-30e1b6ec.js +0 -7
- package/dist/esm-es5/popper-93ecb064.js +0 -1
- package/dist/verdocs-web-sdk/p-064453c3.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-06f38046.js +0 -1
- package/dist/verdocs-web-sdk/p-15b7ed4d.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-1ea3b9d3.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-30cc8818.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-32ad1014.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-4c66f794.js +0 -1
- package/dist/verdocs-web-sdk/p-4d80d044.system.js +0 -7
- package/dist/verdocs-web-sdk/p-6393b2b4.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-66b19637.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-6fa6fb3c.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-8276345a.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-829b235c.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-88a300c5.system.js +0 -1
- package/dist/verdocs-web-sdk/p-96c0bf40.system.js +0 -1
- package/dist/verdocs-web-sdk/p-9b34c794.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-9d8d8c78.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-aa9fc574.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-bf2620cb.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-c29c2cf8.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-c4d03ff9.system.entry.js +0 -23
- package/dist/verdocs-web-sdk/p-d522de7d.entry.js +0 -23
- package/dist/verdocs-web-sdk/p-da667373.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f4219236.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f6a53928.system.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f7e26fbd.entry.js +0 -1
- package/dist/verdocs-web-sdk/verdocs-web-sdk.css +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["src/components/controls/verdocs-dropdown/verdocs-dropdown.scss?tag=verdocs-dropdown","src/components/controls/verdocs-dropdown/verdocs-dropdown.tsx","src/components/elements/verdocs-field-attachment/verdocs-field-attachment.scss?tag=verdocs-field-attachment","src/components/elements/verdocs-field-attachment/verdocs-field-attachment.tsx","src/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.scss?tag=verdocs-field-checkbox","src/components/elements/verdocs-field-checkbox-group/verdocs-field-checkbox.tsx","node_modules/vanillajs-datepicker/js/lib/utils.js","node_modules/vanillajs-datepicker/js/lib/date.js","node_modules/vanillajs-datepicker/js/lib/date-format.js","node_modules/vanillajs-datepicker/js/lib/dom.js","node_modules/vanillajs-datepicker/js/lib/event.js","node_modules/vanillajs-datepicker/js/i18n/base-locales.js","node_modules/vanillajs-datepicker/js/options/defaultOptions.js","node_modules/vanillajs-datepicker/js/options/processOptions.js","node_modules/vanillajs-datepicker/js/picker/templates/pickerTemplate.js","node_modules/vanillajs-datepicker/js/picker/templates/daysTemplate.js","node_modules/vanillajs-datepicker/js/picker/templates/calendarWeeksTemplate.js","node_modules/vanillajs-datepicker/js/picker/views/View.js","node_modules/vanillajs-datepicker/js/picker/views/DaysView.js","node_modules/vanillajs-datepicker/js/picker/views/MonthsView.js","node_modules/vanillajs-datepicker/js/picker/views/YearsView.js","node_modules/vanillajs-datepicker/js/events/functions.js","node_modules/vanillajs-datepicker/js/events/pickerListeners.js","node_modules/vanillajs-datepicker/js/picker/Picker.js","node_modules/vanillajs-datepicker/js/events/inputFieldListeners.js","node_modules/vanillajs-datepicker/js/events/otherListeners.js","node_modules/vanillajs-datepicker/js/Datepicker.js","src/components/elements/verdocs-field-date/verdocs-field-date.scss?tag=verdocs-field-date","src/components/elements/verdocs-field-date/verdocs-field-date.tsx","src/components/elements/verdocs-field-dropdown/verdocs-field-dropdown.scss?tag=verdocs-field-dropdown","src/components/elements/verdocs-field-dropdown/verdocs-field-dropdown.tsx","src/components/elements/verdocs-field-initial/verdocs-field-initial.scss?tag=verdocs-field-initial","src/components/elements/verdocs-field-initial/verdocs-field-initial.tsx","src/components/elements/verdocs-field-payment/verdocs-field-payment.scss?tag=verdocs-field-payment","src/components/elements/verdocs-field-payment/verdocs-field-payment.tsx","src/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.scss?tag=verdocs-field-radio-button","src/components/elements/verdocs-field-radio-button-group/verdocs-field-radio-button.tsx","src/components/elements/verdocs-field-signature/verdocs-field-signature.scss?tag=verdocs-field-signature","src/components/elements/verdocs-field-signature/verdocs-field-signature.tsx","src/components/elements/verdocs-field-textarea/verdocs-field-textarea.scss?tag=verdocs-field-textarea","src/components/elements/verdocs-field-textarea/verdocs-field-textarea.tsx","src/components/elements/verdocs-field-textbox/verdocs-field-textbox.scss?tag=verdocs-field-textbox","src/components/elements/verdocs-field-textbox/verdocs-field-textbox.tsx","node_modules/pdfjs-dist/build/pdf.js","src/utils/utils.ts","src/components/embeds/verdocs-view/verdocs-view.scss?tag=verdocs-view","src/components/embeds/verdocs-view/verdocs-view.tsx"],"names":["verdocsDropdownCss","VerdocsDropdown","class_1","hostRef","this","options","prototype","componentWillLoad","isOpen","open","componentDidLoad","popper","createPopper","dropdownButton","dropdownMenu","placement","modifiers","name","offset","handleSelectOption","option","optionSelected","emit","hide","showDropdown","setAttribute","removeAttribute","_a","setOptions","__assign","__spreadArray","enabled","_b","update","handleHideDropdown","e","target","localName","className","toggleDropdown","render","_this","h","Host","class","storybook","window","innerHTML","SortDown","aria-label","onClick","onBlur","ref","el","aria-hidden","map","disabled","label","verdocsFieldAttachmentCss","VerdocsFieldAttachment","class_2","order","value","required","focusField","handleShow","dialog","document","createElement","addEventListener","console","log","remove","body","append","Paperclip","verdocsFieldCheckboxCss","VerdocsFieldCheckbox","handleChange","fieldChange","checked","type","tabIndex","onChange","hasProperty","obj","prop","Object","hasOwnProperty","call","lastItemOf","arr","length","pushUnique","items","_i","arguments","forEach","item","includes","push","stringToArray","str","separator","split","isInRange","testVal","min","max","minOK","undefined","maxOK","limitToRange","val","createTagRepeat","tagName","repeat","attributes","index","html","openTagSrc","keys","reduce","src","attr","concat","next","optimizeTemplateHTML","replace","stripTime","timeValue","Date","setHours","today","dateValue","args","newDate","setFullYear","apply","addDays","date","amount","setDate","getDate","addWeeks","addMonths","monthsToSet","getMonth","expectedMonth","time","setMonth","addYears","getFullYear","dayDiff","day","from","dayOfTheWeekOf","baseDate","dayOfWeek","weekStart","baseDay","getDay","getWeek","thuOfTheWeek","firstThu","Math","round","startOfYearPeriod","years","year","floor","regularizeDate","timeSpan","useLastDate","reFormatTokens","reNonDateParts","knownFormats","parseFns","y","parseInt","m","month","locale","monthIndex","isNaN","NaN","monthName_1","toLowerCase","compareNames","startsWith","monthsShort","findIndex","months","normalizeMonth","getTime","d","formatFns","dd","padZero","D","daysShort","DD","days","mm","M","MM","yy","slice","yyyy","num","toString","padStart","parseFormatString","format","Error","separators","parts","match","RegExp","partFormatters","token","partParserKeys","key","find","part","parser","dateStr","dateParts","dtParts","origDate","formatter","fn","parseDate","toValue","formatDate","dateObj","toDisplay","range","createRange","parseHTML","createContextualFragment","getParent","parentElement","parentNode","ShadowRoot","host","isActiveElement","getRootNode","activeElement","hideElement","style","display","dataset","styleDisplay","showElement","emptyChildNodes","firstChild","removeChild","replaceChildNodes","newChildNodes","DocumentFragment","appendChild","node","listenerRegistry","WeakMap","_c","EventTarget","removeEventListener","registerListeners","keyObj","listeners","registered","get","set","listener","unregisterListeners","delete","Event","composedPath","getComposedPath_1","path","parent","defaultView","findFromPath","criteria","currentTarget","rest","findElementInEventPath","ev","selector","Element","matches","locales","en","daysMin","clear","titleFormat","defaultOptions","autohide","beforeShowDay","beforeShowDecade","beforeShowMonth","beforeShowYear","calendarWeeks","clearBtn","dateDelimiter","datesDisabled","daysOfWeekDisabled","daysOfWeekHighlighted","defaultViewDate","disableTouchKeyboard","language","maxDate","maxNumberOfDates","maxView","minDate","nextArrow","orientation","pickLevel","prevArrow","showDaysOfWeek","showOnClick","showOnFocus","startView","title","todayBtn","todayBtnMode","todayHighlight","updateOnBlur","defaultLang","defaultFormat","defaultWeekStart","sanitizeDOW","dow","calcEndOfWeek","startOfWeek","validateDate","origValue","validateViewId","viewId","processOptions","datepicker","inOpts","assign","config","constructor","rangeSideIndex","lang","origLocale","weekEnd","hasToDisplay","hasToValue","validFormatString","test","newPickLevel","minDt","maxDt","defaultMinDt","dates","dt","viewDate","wkStart","Number","multidate","String","newMaxView","newStartView","childNodes","x","pickerTemplate","daysTemplate","calendarWeeksTemplate","View","picker","element","selected","init","isMinView","id","updateFocus","updateSelection","performBeforeHook","current","result","beforeShow","classes","classList","add","extraClasses","content","DaysView","_super","__extends","cellClass","onConstruction","inner","grid","lastChild","updateDOW","dayNames","switchLabelFormat","weeksElem","weeks","insertBefore","Array","children","textContent","viewYear","viewMonth","firstOfMonth","start","first","last","focused","rangepicker","switchLabel","setViewSwitchLabel","setPrevBtnDisabled","setNextBtnDisabled","startOfWeek_1","rangeStart","rangeEnd","refresh","querySelectorAll","refreshFocus","computeMonthRange","thisYear","startY","startM","_d","endY","endM","MonthsView","data-month","ix","monthNames","minYear","minMonth","minDateObj","maxYear","maxMonth","maxDateObj","yrOutOfRange","isMinYear","isMaxYear","toTitleCase","word","ch","toUpperCase","YearsView","navStep","step","beforeShowOption","triggerDatepickerEvent","detail","currentView","dispatchEvent","CustomEvent","goToPrevOrNext","direction","newViewDate","changeFocus","switchView","changeView","unfocus","revert","goToSelectedMonthOrYear","selection","onClickTodayBtn","currentDate","onClickClearBtn","onClickViewSwitch","onClickPrevBtn","onClickNextBtn","onClickView","contains","onMousedownPicker","preventDefault","orientClasses","toPx","processPickerOptions","controls","prevBtn_1","prevBtn","cloneNode","nextBtn_1","nextBtn","computeResetViewDate","setViewDate","oldViewDate","getTextDirection","getComputedStyle","findScrollParents","overflow","Picker","template","buttonClass","header","main","footer","firstElementChild","lastElementChild","viewSwitch","_e","elementClass","inline","bind","views","container","inputField","after","view","detach","show","active","inputDirection","dir","visiblity","place","blur","exitEditMode","offsetParent","getBoundingClientRect","calendarWidth","width","calendarHeight","height","_f","inputLeft","left","inputTop","top","inputRight","right","inputBottom","bottom","inputWidth","inputHeight","_g","orientX","orientY","scrollX","scrollY","offsetParentRect","scrollLeft","scrollTop","scrollParent","scrollAreaLeft","scrollAreaTop","_h","documentElement","scrollAreaRight","clientWidth","scrollAreaBottom","clientHeight","scrollParentRect","adjustment","values","labelText","oldView","newView","_renderMethod","replaceChild","quickRender","renderMethod","findNextAvailableOne","addFn","increase","testFn","moveByArrowKey","vertical","ctrlKey","metaKey","onKeydown","editMode","shiftKey","enterEditMode","onFocus","_showing","onMousedown","_active","_clicking","setTimeout","onClickInput","clearTimeout","onPaste","clipboardData","types","onClickOutside","pickerElem","stringifyDates","join","processInputDates","inputDates","origDates","newDates","filter","refreshUI","mode","Datepicker","HTMLElement","querySelector","index_1","inputs","indexOf","datepickers","isArray","defineProperty","_options","initialDates","inputDateValues","onMousedownDocument","newOptions","focus","destroy","callback","opts","lastArg","pop","forceRender","verdocsFieldDateCss","VerdocsFieldDate","class_3","placeholder","fieldFocus","toISOString","handleBlur","fieldBlur","handleFocus","handleInput","fieldInput","onInput","verdocsFieldDropdownCss","VerdocsFieldDropdown","class_4","verdocsFieldInitialCss","VerdocsFieldInitial","class_5","fullName","alt","verdocsFieldPaymentCss","VerdocsFieldPayment","signed","signatureUrl","_fields","signatureFile","initialFile","focusOrderNumber","focusFieldName","showError","pageNum","fieldIndex","dialogOpened","closeAllErrors","fieldsMap","fieldsForCurrentSigner","fontSize","averageFontWidth","requiredFields","field","recipients","preparer","r","preparedMessage","verdocsFieldRadioButtonCss","VerdocsFieldRadioButton","htmlFor","verdocsFieldSignatureCss","VerdocsFieldSignature","class_6","verdocsFieldTextareaCss","VerdocsFieldTextarea","class_7","verdocsFieldTextboxCss","VerdocsFieldTextbox","class_8","webpackUniversalModuleDefinition","root","factory","module","exports","globalThis","__webpack_modules__","__unused_webpack_module","__w_pdfjs_require__","VerbosityLevel","Util","UnknownErrorException","UnexpectedResponseException","UNSUPPORTED_FEATURES","TextRenderingMode","StreamType","RenderingIntentFlag","PermissionFlag","PasswordResponses","PasswordException","PageActionEventType","OPS","MissingPDFException","LINE_FACTOR","LINE_DESCENT_FACTOR","InvalidPDFException","ImageKind","IDENTITY_MATRIX","FormatError","FontType","FeatureTest","FONT_IDENTITY_MATRIX","DocumentActionEventType","CMapCompressionType","BaseException","AnnotationType","AnnotationStateModelType","AnnotationReviewState","AnnotationReplyType","AnnotationMode","AnnotationMarkedState","AnnotationFlag","AnnotationFieldFlag","AnnotationEditorType","AnnotationEditorPrefix","AnnotationEditorParamsType","AnnotationBorderStyleType","AnnotationActionEventType","AbortException","arrayByteLength","arraysToBytes","assert","bytesToString","createPromiseCapability","createValidAbsoluteUrl","escapeString","getModificationDate","getVerbosityLevel","info","isArrayBuffer","isArrayEqual","isAscii","objectFromMap","objectSize","setVerbosityLevel","shadow","string32","stringToBytes","stringToPDFString","stringToUTF16BEString","stringToUTF8String","unreachable","utf8StringToString","warn","ANY","DISPLAY","PRINT","ANNOTATIONS_FORMS","ANNOTATIONS_STORAGE","ANNOTATIONS_DISABLE","OPLIST","DISABLE","ENABLE","ENABLE_FORMS","ENABLE_STORAGE","NONE","FREETEXT","INK","FREETEXT_SIZE","FREETEXT_COLOR","FREETEXT_OPACITY","INK_COLOR","INK_THICKNESS","INK_OPACITY","MODIFY_CONTENTS","COPY","MODIFY_ANNOTATIONS","FILL_INTERACTIVE_FORMS","COPY_FOR_ACCESSIBILITY","ASSEMBLE","PRINT_HIGH_QUALITY","FILL","STROKE","FILL_STROKE","INVISIBLE","FILL_ADD_TO_PATH","STROKE_ADD_TO_PATH","FILL_STROKE_ADD_TO_PATH","ADD_TO_PATH","FILL_STROKE_MASK","ADD_TO_PATH_FLAG","GRAYSCALE_1BPP","RGB_24BPP","RGBA_32BPP","TEXT","LINK","LINE","SQUARE","CIRCLE","POLYGON","POLYLINE","HIGHLIGHT","UNDERLINE","SQUIGGLY","STRIKEOUT","STAMP","CARET","POPUP","FILEATTACHMENT","SOUND","MOVIE","WIDGET","SCREEN","PRINTERMARK","TRAPNET","WATERMARK","THREED","REDACT","MARKED","REVIEW","UNMARKED","ACCEPTED","REJECTED","CANCELLED","COMPLETED","GROUP","REPLY","HIDDEN","NOZOOM","NOROTATE","NOVIEW","READONLY","LOCKED","TOGGLENOVIEW","LOCKEDCONTENTS","REQUIRED","NOEXPORT","MULTILINE","PASSWORD","NOTOGGLETOOFF","RADIO","PUSHBUTTON","COMBO","EDIT","SORT","FILESELECT","MULTISELECT","DONOTSPELLCHECK","DONOTSCROLL","COMB","RICHTEXT","RADIOSINUNISON","COMMITONSELCHANGE","SOLID","DASHED","BEVELED","INSET","E","X","U","Fo","Bl","PO","PC","PV","PI","K","F","V","C","WC","WS","DS","WP","DP","O","UNKNOWN","FLATE","LZW","DCT","JPX","JBIG","A85","AHX","CCF","RLX","TYPE1","TYPE1STANDARD","TYPE1C","CIDFONTTYPE0","CIDFONTTYPE0C","TRUETYPE","CIDFONTTYPE2","TYPE3","OPENTYPE","TYPE0","MMTYPE1","ERRORS","WARNINGS","INFOS","BINARY","STREAM","dependency","setLineWidth","setLineCap","setLineJoin","setMiterLimit","setDash","setRenderingIntent","setFlatness","setGState","save","restore","transform","moveTo","lineTo","curveTo","curveTo2","curveTo3","closePath","rectangle","stroke","closeStroke","fill","eoFill","fillStroke","eoFillStroke","closeFillStroke","closeEOFillStroke","endPath","clip","eoClip","beginText","endText","setCharSpacing","setWordSpacing","setHScale","setLeading","setFont","setTextRenderingMode","setTextRise","moveText","setLeadingMoveText","setTextMatrix","nextLine","showText","showSpacedText","nextLineShowText","nextLineSetSpacingShowText","setCharWidth","setCharWidthAndBounds","setStrokeColorSpace","setFillColorSpace","setStrokeColor","setStrokeColorN","setFillColor","setFillColorN","setStrokeGray","setFillGray","setStrokeRGBColor","setFillRGBColor","setStrokeCMYKColor","setFillCMYKColor","shadingFill","beginInlineImage","beginImageData","endInlineImage","paintXObject","markPoint","markPointProps","beginMarkedContent","beginMarkedContentProps","endMarkedContent","beginCompat","endCompat","paintFormXObjectBegin","paintFormXObjectEnd","beginGroup","endGroup","beginAnnotations","endAnnotations","beginAnnotation","endAnnotation","paintJpegXObject","paintImageMaskXObject","paintImageMaskXObjectGroup","paintImageXObject","paintInlineImageXObject","paintInlineImageXObjectGroup","paintImageXObjectRepeat","paintImageMaskXObjectRepeat","paintSolidColorImageMask","constructPath","unknown","forms","javaScript","signatures","smask","shadingPattern","font","errorTilingPattern","errorExtGState","errorXObject","errorFontLoadType3","errorFontState","errorFontMissing","errorFontTranslate","errorColorSpace","errorOperatorList","errorFontToUnicode","errorFontLoadNative","errorFontBuildPath","errorFontGetPath","errorMarkedContent","errorContentSubStream","NEED_PASSWORD","INCORRECT_PASSWORD","verbosity","level","isInteger","msg","cond","_isValidProtocol","url","protocol","baseUrl","addDefaultProtocol","dots","tryConvertEncoding","ex","absoluteUrl","URL","enumerable","configurable","writable","BaseExceptionClosure","message","code","details","status","bytes","MAX_ARGUMENT_COUNT","fromCharCode","strBuf","i","chunkEnd","chunk","subarray","Uint8Array","charCodeAt","byteLength","resultLength","pos","data","itemLength","create","map_1","isLittleEndian","buffer8","view32","Uint32Array","buffer","isEvalSupported","Function","OffscreenCanvas","hexNumbers","n","makeHexColor","g","b","scaleMinMax","minMax","temp","m1","m2","applyTransform","p","xt","yt","applyInverseTransform","getAxialAlignedBoundingBox","p1","p2","p3","p4","inverseTransform","apply3dTransform","v","singularValueDecompose2dScale","transpose","a","c","second","sqrt","pow","sx","sy","normalizeRect","rect","intersect","rect1","rect2","xLow","xHigh","yLow","yHigh","bezierBoundingBox","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t","t1","t2","b2ac","sqrtb2ac","abs","j","mt","jlen","PDFStringTranslateTable","encoding","decoder","TextDecoder","fatal","decode","ii","charAt","buf","char","decodeURIComponent","escape","unescape","encodeURIComponent","arr1","arr2","getUTCFullYear","getUTCMonth","getUTCDate","getUTCHours","getUTCMinutes","getUTCSeconds","capability","isSettled","promise","Promise","resolve","reject","reason","__unused_webpack_exports","isNodeJS","process","versions","nw","electron","StatTimer","RenderingCancelledException","PixelsPerInch","PageViewport","PDFDateString","DOMStandardFontDataFactory","DOMSVGFactory","DOMCanvasFactory","DOMCMapReaderFactory","binarySearchFirstItem","deprecated","getColorValues","getFilenameFromUrl","getPdfFilenameFromUrl","getRGB","getXfaPageViewport","isDataScheme","isPdfFile","isValidFetchUrl","loadScript","_base_factory","_util","SVG_NS","CSS","PDF","PDF_TO_CSS_UNITS","ownerDocument","_document","_createCanvas","canvas","BaseCanvasFactory","fetchData","asTypedArray","baseURI","fetch","response","sent","ok","statusText","arrayBuffer","text","request","XMLHttpRequest","responseType","onreadystatechange","readyState","DONE","responseText","send","_fetchData","compressionType","isCompressed","then","cMapData","BaseCMapReaderFactory","BaseStandardFontDataFactory","_createSVG","createElementNS","BaseSVGFactory","viewBox","scale","rotation","offsetX","offsetY","dontFlip","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","clone","_j","_k","convertToViewportPoint","convertToViewportRectangle","topLeft","bottomRight","convertToPdfPoint","trim","substring","filename","anchor","query","end","lastIndexOf","defaultFilename","reURI","reFilename","splitURI","exec","suggestedFilename","started","times","now","timeEnd","outBuf","longest","duration","padEnd","removeScriptElement","script","onload","evt","onerror","head","pdfDateStringRegex","toDateObject","input","hour","minute","universalTimeRelation","offsetHour","offsetMinute","UTC","xfaPage","color","colorRGB","colors","span","visibility","computedColor","condition","minIndex","maxIndex","currentIndex","currentItem","context","getContext","reset","canvasAndContext","catch","skipDimensions","svg","build","RenderTask","PDFWorkerUtil","PDFWorker","PDFPageProxy","PDFDocumentProxy","PDFDocumentLoadingTask","PDFDataRangeTransport","LoopbackPort","DefaultStandardFontDataFactory","DefaultCanvasFactory","DefaultCMapReaderFactory","getDocument","setPDFNetworkStreamFactory","version","_annotation_storage","_display_utils","_font_loader","_canvas","_worker_options","_is_node","_message_handler","_metadata","_optional_content_config","_transport_stream","_xfa_text","DEFAULT_RANGE_CHUNK_SIZE","RENDERING_CANCELLED_TIMEOUT","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","createPDFNetworkStream","pdfNetworkStreamFactory","task","source","params","rangeTransport","worker","location","href","Buffer","CMapReaderFactory","StandardFontDataFactory","ignoreErrors","stopAtErrors","fontExtraProperties","pdfBug","enableXfa","rangeChunkSize","docBaseUrl","maxImageSize","cMapUrl","standardFontDataUrl","useWorkerFetch","disableFontFace","useSystemFonts","disableRange","disableStream","disableAutoFetch","workerParams","port","GlobalWorkerOptions","workerPort","fromPort","_worker","docId","destroyed","workerIdPromise","_fetchDocument","networkStreamPromise","networkStream","PDFDataTransportStream","initialData","progressiveDone","contentDispositionFilename","httpHeaders","withCredentials","all","workerId","messageHandler","MessageHandler","transport","WorkerTransport","_transport","_capability","pdfDataRangeTransport","sendWithPromise","apiVersion","password","__classPrivateFieldSet","__classPrivateFieldGet","_PDFDocumentLoadingTask_docId","onPassword","onProgress","onUnsupportedFeature","_rangeListeners","_progressListeners","_progressiveReadListeners","_progressiveDoneListeners","_readyCapability","addRangeListener","addProgressListener","addProgressiveReadListener","addProgressiveDoneListener","onDataRange","begin","onDataProgress","loaded","total","onDataProgressiveRead","onDataProgressiveDone","transportReady","requestDataRange","abort","pdfInfo","_pdfInfo","fingerprints","__awaiter","stats","streamTypes","fontTypes","annotationStorage","numPages","_htmlForXfa","getPage","pageNumber","getPageIndex","getDestinations","getDestination","getPageLabels","getPageLayout","getPageMode","getViewerPreferences","getOpenAction","getAttachments","getJavaScript","getJSActions","getDocJSActions","getOutline","getOptionalContentConfig","getPermissions","getMetadata","getMarkInfo","getData","getDownloadInfo","downloadInfoCapability","cleanup","keepLoadedFonts","startCleanup","isPureXfa","loadingTask","loadingParams","saveDocument","size","getFieldObjects","hasJSActions","getCalculationOrderIds","pageIndex","pageInfo","_pageIndex","_pageInfo","_ownerDocument","_stats","_pdfBug","commonObjs","objs","PDFObjects","_bitmaps","Set","cleanupAfterRender","pendingCleanup","_intentStates","Map","_annotationPromises","rotate","userUnit","getViewport","getAnnotations","intent","intentArgs","getRenderingIntent","cacheKey","renderingIntent","annotations","annotation","titleObj","contentsObj","annotations_1","_jsActionsPromise","getPageJSActions","getXfa","canvasContext","viewport","annotationMode","imageLayer","_l","canvasFactory","_m","background","_o","optionalContentConfigPromise","_p","annotationCanvasMap","_q","pageColors","_r","printAnnotationStorage","renderInteractiveForms","includeAnnotationStorage","intentState","streamReaderCancelTimeout","canvasFactoryInstance","intentPrint","displayReadyCapability","operatorList","fnArray","argsArray","lastChunk","separateAnnots","_pumpOperatorList","complete","error","renderTasks","internalRenderTask","_tryCleanup","_abortOperatorList","InternalRenderTask","useRequestAnimationFrame","renderTask","transparency","optionalContentConfig","initializeGraphics","operatorListChanged","getOperatorList","opListReadCapability","opListTask","streamTextContent","disableCombineTextItems","includeMarkedContent","TEXT_CONTENT_CHUNK_SIZE","sendWithStream","combineTextItems","highWaterMark","getTextContent","xfa","XfaText","readableStream","pump","reader","read","done","styles","getReader","getStructTree","_structTreePromise","_destroy","waitOn","force","completed","cancel","bitmap","close","resetStats","_startRenderPage","_renderPageChunk","operatorListChunk","annotationStorageMap","streamReader","curCacheKey","curIntentState","_listeners","_deferred","postMessage","transfers","event","structuredClone","splice","terminate","isWorkerDisabled","fallbackWorkerSrc","fakeWorkerId","require","pdfjsFilePath","currentScript","isSameOrigin","otherUrl","base","origin","other","createCDNWrapper","wrapper","createObjectURL","Blob","_PDFWorker_workerPorts","has","_port","_webWorker","_messageHandler","_initializeFromPort","_initialize","on","Worker","_mainThreadWorkerMessageHandler","workerSrc","worker_1","messageHandler_1","terminateEarly_1","onWorkerError_1","_setupFakeWorker","sendTest_1","testObj","_setupFakeWorkerGlobal","WorkerMessageHandler","workerHandler","setup","pdfjsWorker","loader","mainWorkerMessageHandler","eval","getWorkerSrc","_WorkerTransport_docStats","_WorkerTransport_pageCache","_WorkerTransport_pagePromises","_WorkerTransport_metadataPromise","fontLoader","FontLoader","_onUnsupportedFeature","styleElement","_params","cMapPacked","destroyCapability","_passwordCapability","_networkStream","_fullReader","_lastProgress","setupMessageHandler","AnnotationStorage","isOpList","annotationMap","PrintAnnotationStorage","serializable","getHash","page","resetModified","terminated","_getFieldObjectsPromise","_hasJSActionsPromise","cancelAllRequests","sink","getFullReader","onPull","enqueue","onCancel","ready","readyReason","headersCapability","fullReader","headersReady","isStreamingSupported","isRangeSupported","contentLength","rangeReader","getRangeReader","_numPages","htmlForXfa","exception","updatePassword","exportedData","params_1","exportedError","fontRegistry","FontInspector","registerFont","fontAdded","font_1","FontFaceObject","finally","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","freeze","featureId","cachedPromise","gen","results","OptionalContentConfig","metadata","Metadata","cleanupSuccessful","_PDFObjects_objs","__ensureObj","objId","obj_1","settled","_RenderTask_internalRenderTask","onContinue","form","operatorListIdx","running","graphicsReadyCallback","graphicsReady","_useRequestAnimationFrame","cancelled","_cancelBound","_continueBound","_continue","_scheduleNextBound","_scheduleNext","_nextBound","_next","_InternalRenderTask_canvasInUse","StepperManager","stepper","nextBreakPoint","getNextBreakPoint","gfx","CanvasGraphics","beginDrawing","endDrawing","updateOperatorList","requestAnimationFrame","executeOperatorList","WeakSet","_editor","_murmurhash","_storage","_modified","onSetModified","onResetModified","getValue","defaultValue","getRawValue","removeKey","setValue","modified","entries","entry","__setModified","getAll","serialized","AnnotationEditor","serialize","hash","MurmurHash3_64","map_2","JSON","stringify","hexdigest","_PrintAnnotationStorage_serializable","_tools","parameters","_AnnotationEditor_boundFocusin","focusin","_AnnotationEditor_boundFocusout","focusout","_AnnotationEditor_hasBeenSelected","_AnnotationEditor_isEditing","_AnnotationEditor_isInEditMode","_AnnotationEditor_zIndex","_zIndex","div","viewportBaseDimensions","isAttachedToDOM","_colorManager","getHexCode","setInBackground","zIndex","setInForeground","setSelected","relatedTarget","closest","isMultipleSelection","commitOrRemove","isEmpty","commit","addToAnnotationStorage","dragstart","startX","clientX","clientY","dataTransfer","setData","effectAllowed","setAt","tx","ty","screenToPageTranslation","translate","setDims","parentWidth","parentHeight","getInitialTranslation","bindEvents","pointerdown","isMac","KeyboardManager","platform","button","toggleSelected","getRect","pageDimensions","pageWidth","pageHeight","shiftX","shiftY","getRectInCurrentCoords","onceAdded","enableEditMode","disableEditMode","isInEditMode","shouldGetKeyboardEvents","needsToBeRebuilt","rebuild","deserialize","editor","getNextId","select","unselect","updateParams","disableEditing","enableEditing","getIdForTextLayer","setActiveEditor","ColorManager","CommandManager","AnnotationEditorUIManager","opacityToHex","names","names_1","opacity","IdManager","_IdManager_id","getId","maxSize","_CommandManager_commands","_CommandManager_locked","_CommandManager_maxSize","_CommandManager_position","cmd","undo","mustExec","overwriteIfSameType","keepUndo","redo","hasSomethingToUndo","hasSomethingToRedo","callbacks","allKeys","callbacks_1","keys_1","isMacKey","at","navigator","isWin","__serialize","altKey","self","stopPropagation","ClipboardManager","_ClipboardManager_elements","copy","paste","convert","rgb","matchMedia","_colors","RGB","every","_colorsMapping","eventBus","_AnnotationEditorUIManager_activeEditor","_AnnotationEditorUIManager_allEditors","_AnnotationEditorUIManager_allLayers","_AnnotationEditorUIManager_clipboardManager","_AnnotationEditorUIManager_commandManager","_AnnotationEditorUIManager_currentPageIndex","_AnnotationEditorUIManager_editorTypes","_AnnotationEditorUIManager_eventBus","_AnnotationEditorUIManager_idManager","_AnnotationEditorUIManager_isEnabled","_AnnotationEditorUIManager_mode","_AnnotationEditorUIManager_selectedEditors","_AnnotationEditorUIManager_boundKeydown","keydown","_AnnotationEditorUIManager_boundOnEditingAction","onEditingAction","_AnnotationEditorUIManager_boundOnPageChanging","onPageChanging","_AnnotationEditorUIManager_boundOnTextLayerRendered","onTextLayerRendered","_AnnotationEditorUIManager_previousStates","isEditing","hasEmptyClipboard","hasSelectedEditor","_AnnotationEditorUIManager_container","_on","__removeKeyboardManager","_off","layer","focusMainContainer","__addKeyboardManager","getActive","_keyboardManager","__dispatchUpdateStates","hasChanged","some","dispatch","__dispatchUpdateUI","setEditingState","__isEmpty","registerEditorTypes","editorType","defaultPropertiesToUpdate","addLayer","enable","disable","removeLayer","updateMode","__disableAll","__enableAll","updateToolbar","updateDefaultParams","unselectAll","getEditors","editors","getEditor","addEditor","removeEditor","__addEditorToLayer","addOrRebuild","propertiesToUpdate","hasSelection","ed","isSelected","addCommands","editors_1","editors_2","cut","newEditors","newEditors_1","__selectEditors","newEditors_2","editors_3","selectAll","isActive","getMode","SEED","MASK_HIGH","MASK_LOW","seed","h1","h2","blockCounts","tailLength","dataUint32","k1","k2","C1","C2","C1_LOW","C2_LOW","hex1","hex2","BaseFontLoader","nativeFontFaces","addNativeFontFace","nativeFontFace","fonts","insertRule","rule","getElementsByTagName","styleSheet","sheet","cssRules","attached","missingFile","isFontLoadingAPISupported","createNativeFontFace","family","ex_1","createFontFaceRule","isSyncFontLoadingSupported","_queueLoadingCallback","_prepareFontLoadEvent","hasFonts","rules","fontsToLoad","GenericFontLoader","loadingContext","requests","nextRequestId","loadTestFontId","supported","userAgent","completeRequest","otherRequest","shift","getLoadTestFont","atob","int32","spliceString","s","insert","chunk1","chunk2","ctx","called","isFontReady","fillText","getImageData","_loadTestFont","COMMENT_OFFSET","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","btoa","fonts_1","loadedName","position","names_2","fontFamily","translatedData","compiledGlyphs","cssFontInfo","FontFace","css","weight","fontWeight","italicAngle","mimetype","getPathGenerator","character","cmds","jsBuf","cmds_1","cmds_2","_pattern_helper","_image_utils","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","LINEWIDTH_SCALE_FACTOR","mirrorContextOperations","destCtx","_removeMirroring","__originalSave","__originalRestore","__originalRotate","__originalScale","__originalTranslate","__originalTransform","__originalSetTransform","setTransform","__originalResetTransform","resetTransform","__originalClip","__originalMoveTo","__originalLineTo","__originalBezierCurveTo","bezierCurveTo","__originalRect","__originalClosePath","__originalBeginPath","beginPath","ctxSave","ctxRestore","ctxTranslate","ctxScale","ctxTransform","f","ctxSetTransform","ctxResetTransform","ctxRotate","angle","cp1x","cp1y","cp2x","cp2y","addContextCurrentTransform","_transformStack","mozCurrentTransform","_originalSave","_originalRestore","_originalRotate","_originalScale","_originalTranslate","_originalTransform","_originalSetTransform","_originalResetTransform","_transformMatrix","desc","getOwnPropertyDescriptor","getPrototypeOf","_setLineWidth","_getLineWidth","getLineWidth","_","getCurrentTransform","getCurrentTransformInverse","ad_bc","bc_ad","old","prev","cosValue","cos","sinValue","sin","CachedCanvases","cache","getCanvas","trackTransform","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","sign","drawImage","scaleX","hypot","scaleY","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","j0","lineSize","elem","mask","count","sum","steps","Int32Array","outlines","coords","Path2D","p0","pp","drawOutline","outlines_1","o","l","ll","CanvasExtraState","alphaIsShape","fontSizeScale","textMatrix","textMatrixScale","fontMatrix","leading","lineX","lineY","charSpacing","wordSpacing","textHScale","textRenderingMode","textRise","fillColor","strokeColor","patternFill","fillAlpha","strokeAlpha","lineWidth","activeSMask","transferMaps","startNewPathAndClipBox","clipBox","setCurrentPoint","updatePathMinMax","minX","minY","maxX","maxY","updateRectMinMax","updateScalingPathMinMax","updateCurvePathMinMax","box","getPathBoundingBox","pathType","PathType","xStrokePad","yStrokePad","updateClipFromPath","isEmptyClip","Infinity","getClippedPathBoundingBox","putBinaryImageData","ImageData","putImageData","partialChunkHeight","fullChunks","totalChunks","chunkImgData","createImageData","srcPos","destPos","dest","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","kind","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","k","kEnd","kEndUnrolled","srcByte","hasTransferMaps","putBinaryImageMask","applyMaskImageData","copyCtxState","sourceCtx","properties","property","setLineDash","getLineDash","lineDashOffset","resetCtxToDefault","foregroundColor","strokeStyle","fillStyle","fillRule","globalAlpha","lineCap","lineJoin","miterLimit","globalCompositeOperation","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","layerOffsetX","layerOffsetY","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","PIXELS_TO_PROCESS","chunkSize","ceil","row","chunkHeight","composeSMask","layerBox","layerWidth","layerHeight","getImageSmoothingEnabled","interpolate","fround","actualScale","devicePixelRatio","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","canvasCtx","stateStack","pendingClip","pendingEOFill","res","xobjs","groupStack","processingType3","baseTransform","baseTransformStack","groupLevel","smaskStack","smaskCounter","tempSMask","suspendedCtx","contentVisible","markedContentStack","cachedCanvases","cachedPatterns","viewportScale","outputScaleX","outputScaleY","backgroundColor","foreground","_cachedScaleForStroking","_cachedGetSinglePixelWidth","_cachedBitmapsMap","getObject","fallback","defaultBackgroundColor","fg_1","bg_1","isValidDefaultBg","defaultBg","rB","gB","bB","newComp_1","lumB_1","selectColor","lumC","fillRect","transparentCanvas","compositeCtx","beginLayout","executionStartIdx","continueCallback","argsArrayLen","chunkOperations","endTime","fnId","breakIt","depObjId","objsPool","__restoreInitialState","inSMaskMode","HTMLCanvasElement","endLayout","_scaleImage","img","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","tmpCanvas","tmpCtx","newWidth","newHeight","clearRect","_createMaskCanvas","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","withoutTranslation","cachedImage","offsetX_1","offsetY_1","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","mozCurrentTransformInverse","imageSmoothingEnabled","inverse","getPattern","limit","dashArray","dashPhase","flatness","states","state","checkSMaskState","beginSMaskMode","endSMaskMode","cacheId","scratchCanvas","compose","dirtyBox","ops","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","rescaleAndStroke","needRestore","paths","pendingTextPaths","paths_1","addToPath","spacing","fontRefName","fontObj","fontDirection","isType3Font","bold","italic","typeface","fallbackName","browserFontSize","rise","paintChar","patternTransform","fillStrokeMode","isAddToPathSet","strokeText","glyphs","showType3Text","glyphsLength","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","getSinglePixelWidth","glyph","restoreNeeded","isSpace","fontChar","accent","scaledX","scaledY","vmetric","vx","vy","remeasure","measuredWidth","measureText","isFontSubpixelAAEnabled","characterScaleX","isInFont","scaledAccentX","scaledAccentY","charWidth","isTextInvisible","spacingLength","charProcOperatorList","operatorListId","transformed","xWidth","yWidth","llx","lly","urx","ury","getColorN_Pattern","IR","canvasGraphicsFactory","createCanvasGraphics","TilingPattern","_getPattern","matrix","getShadingPattern","SHADING","inv","bl","br","ul","ur","bbox","group","currentCtx","isolated","knockout","canvasBounds","groupCtx","startTransformInverse","currentMtx","hasOwnCanvas","canvasWidth","canvasHeight","annotationCanvas","savedCtx","compiled","skewX","skewY","positions","trans","images","images_1","image","w","imgToPaint","getCanvasPosition","appendImage","tag","visible","isVisible","isContentVisible","absDet","normX","normY","getScaleForStroking","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","savedMatrix","savedDashes","savedDashOffset","op","applyBoundingBox","region","BaseShadingPattern","RadialAxialShadingPattern","_type","_bbox","_colorStops","_p0","_p1","_r0","_r1","_createGradient","grad","createLinearGradient","createRadialGradient","colorStop","addColorStop","owner","ownerBBox","createPattern","domMatrix","DOMMatrix","drawTriangle","c1","c2","c3","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","xa","car","cag","cab","xb","cbr","cbg","cbb","k_1","k_2","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","q","MeshShadingPattern","_coords","_figures","_bounds","_background","_createMeshCanvas","combinedScale","EXPECTED_SCALE","MAX_PATTERN_SIZE","BORDER_SIZE","boundsWidth","boundsHeight","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","DummyShadingPattern","PaintType","COLORED","UNCOLORED","xstep","ystep","paintType","tilingType","createPatternCanvas","curMatrixScale","dimx","getSizeAndScale","dimy","graphics","setFillAndStrokeStyleToContext","adjustedX0","adjustedY0","adjustedX1","adjustedY1","clipBbox","realOutputSize","bboxWidth","bboxHeight","cssColor","inverseDecode","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","elem_1","CallbackKind","DATA","ERROR","StreamKind","CANCEL","CANCEL_COMPLETE","CLOSE","ENQUEUE","PULL","PULL_COMPLETE","START_COMPLETE","wrapReason","sourceName","targetName","comObj","callbackId","streamId","streamSinks","streamControllers","callbackCapabilities","actionHandler","_onComObjOnMessage","stream","_processStreamMessage","action","cbSourceName_1","cbTargetName_1","_createStreamSink","actionName","handler","ah","queueingStrategy","ReadableStream","controller","startCapability","startCall","pullCall","cancelCall","isClosed","desiredSize","pull","pullCapability","cancelCapability","streamSink","isCancelled","lastDesiredSize","sinkCapability","success","streamController","_deleteStreamController","allSettled","parsedData","rawData","_Metadata_metadataMap","_Metadata_data","getRaw","INTERNAL","Symbol","OptionalContentGroup","_OptionalContentGroup_visible","_setVisible","internal","_OptionalContentConfig_cachedHasInitialVisibility","_OptionalContentConfig_groups","_OptionalContentConfig_initialVisibility","_OptionalContentConfig_order","creator","groups","baseState","off","__evaluateVisibilityExpression","array","operator","expression","policy","ids","setVisibility","getOrder","getGroups","getGroup","_queuedChunks","_progressiveDone","_contentDispositionFilename","_pdfDataRangeTransport","_isStreamingSupported","_isRangeSupported","_contentLength","_fullRequestReader","_rangeReaders","_onReceiveData","_onProgress","_onProgressiveDone","_enqueue","found","_begin","_loaded","firstReader","_removeRangeReader","queuedChunks","PDFDataTransportStreamReader","_progressiveDataLength","PDFDataTransportStreamRangeReader","_stream","_done","_filename","_requests","_headersReady","requestCapability","_end","_queuedChunk","requestsCapability","output","walk","shouldBuildText","child","fs","require$$0","readFile","Canvas","require$$1","createCanvas","AnnotationEditorLayer","_freetext","_ink","_AnnotationEditorLayer_allowClick","_AnnotationEditorLayer_boundPointerup","pointerup","_AnnotationEditorLayer_boundPointerdown","_AnnotationEditorLayer_editors","_AnnotationEditorLayer_isCleaningUp","_AnnotationEditorLayer_textLayerMap","_AnnotationEditorLayer_textNodes","_AnnotationEditorLayer_uiManager","_AnnotationEditorLayer_waitingEditors","_initialized","FreeTextEditor","initialize","l10n","InkEditor","uiManager","textLayer","getElementsByClassName","textChildren","sort","__compareElementPositions","__cleanup","addInkEditorIfNeeded","disableClick","enableClick","isCommitting","editor_1","__createAndAddNewEditor","pointerEvents","currentActive","attach","removePointerInTextLayer","__changeParent","e1","e2","centerX1","centerX2","addPointerInTextLayer","__hasTextLayer","owns","getAttribute","textLayerElements","contentDiv","moveDivInDOM","hasChildNodes","before","addANewEditor","addUndoableEditor","__createNewEditor","annotationType","drop","dropEffect","endX","dragover","setDimensions","pageLLx","pageLLy","pageURx","pageURy","flipOrientation","widthStr","heightStr","_FreeTextEditor_boundEditorDivBlur","editorDivBlur","_FreeTextEditor_boundEditorDivFocus","editorDivFocus","_FreeTextEditor_boundEditorDivKeydown","editorDivKeydown","_FreeTextEditor_color","_FreeTextEditor_content","_FreeTextEditor_contentHTML","_FreeTextEditor_hasAlreadyBeenCommitted","_FreeTextEditor_fontSize","_defaultColor","_defaultLineColor","_defaultFontSize","_l10nPromise","_internalPadding","parseFloat","getPropertyValue","__updateFontSize","__updateColor","setFontsize","editorDiv","scaleFactor","__setEditorDimensions","savedFontsize","savedColor","overlayDiv","contentEditable","draggable","innerText","__extractText","divs","nodeName","trimEnd","dblclick","baseX","baseY","line","padding","_freeTextDefaultContent","_pdfjsFitCurve","fitCurve","RESIZER_SIZE","_InkEditor_aspectRatio","_InkEditor_baseHeight","_InkEditor_baseWidth","_InkEditor_boundCanvasPointermove","canvasPointermove","_InkEditor_boundCanvasPointerleave","canvasPointerleave","_InkEditor_boundCanvasPointerup","canvasPointerup","_InkEditor_boundCanvasPointerdown","canvasPointerdown","_InkEditor_disableEditing","_InkEditor_isCanvasInitialized","_InkEditor_lastPoint","_InkEditor_observer","_InkEditor_realWidth","_InkEditor_realHeight","_InkEditor_requestFrameCallback","thickness","bezierPath2D","currentPath","translationX","translationY","_defaultThickness","_defaultOpacity","__updateThickness","__updateOpacity","savedThickness","__fitToContent","__redraw","savedOpacity","__createCanvas","__createObserver","__setCanvasDims","disconnect","__getInitialBBox","__setStroke","__startDrawing","__draw","lastX","lastY","__stopDrawing","bezier","xy","path2D","__buildPath2D","__updateTransform","__endDrawing","ResizeObserver","contentRect","observe","__setMinDims","roundedWidth","roundedHeight","__setScaleFactor","__getPadding","scaleFactorW","scaleFactorH","control1","control2","__serializePaths","NUMBER_OF_POINTS_ON_BEZIER_CURVE","p10","p11","p20","p21","p30","p31","p40","p41","__extractPointsOnBezier","__isAlmostFlat","q10","q11","q20","q21","q30","q31","tol","ax","ay","bx","by","__getBbox","xMin","xMax","yMin","yMax","path_1","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","minHeight","minWidth","maxError","progressCallback","TypeError","point","len","leftTangent","createTangent","rightTangent","fitCubic","MaxIterations","bezCurve","u","uPrime","prevErr","splitPoint","prevSplit","centerVector","toCenterTangent","fromCenterTangent","beziers","dist","maths","vectorLen","subtract","addArrays","mulItems","chordLengthParameterize","generateAndReport","reparameterize","errChange","normalize","paramsOrig","paramsPrime","generateBezier","computeMaxError","bez","maxErr","maxPoint","A","det_C0_C1","det_C0_X","det_X_C1","alpha_l","alpha_r","epsilon","segLength","ux","firstPoint","lastPoint","zeros_Xx2x2","dot","newtonRaphsonRootFind","qprime","numerator","mulMatrix","denominator","squareItems","qprimeprime","currU","prevU","prevP","maxDist","t_distMap","mapTtoRelativeDistances","find_t","B_parts","B_t_curr","B_t_dist","B_t_prev","sumLen","param","lenMax","lenMin","tMax","tMin","pointA","pointB","zs","multiplier","addItems","addition","divItems","divisor","ctrlPoly","pA","pB","pC","pD","AnnotationLayer","_scripting_utils","_xfa_layer","DEFAULT_TAB_INDEX","DEFAULT_FONT_SIZE","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","fieldType","TextWidgetAnnotationElement","radioButton","RadioButtonWidgetAnnotationElement","checkBox","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","linkService","downloadManager","imageResourcesPath","renderForms","svgFactory","enableScripting","_fieldObjects","fieldObjects","_mouseState","mouseState","_createContainer","quadrilaterals","_createQuadrilaterals","borderStyle","borderWidth","horizontalRadius","horizontalCornerRadius","verticalRadius","verticalCornerRadius","radius","borderRadius","borderBottomStyle","borderColor","setRotation","elementWidth","elementHeight","setColor","jsName","styleName","ColorConverters","hidden","print","preventScroll","userName","readonly","_setRequired","bgColor","fgColor","textColor","_dispatchEventFromSandbox","actions","jsEvent","commonActions","_commonActions","_setDefaultPropertiesFromJS","storedData","quadPoints","savedRect","quadPoint","_createPopup","trigger","popupElement","PopupElement","modificationDate","richText","hideWrapper","popup","_renderQuadrilaterals","quadrilateral","_getElementsByName","skipId","fields","fieldObj","fieldObj_1","exportValues","exportValue","domElement","getElementsByName","isTooltipOnly","link","isBound","addLinkAttributes","newWindow","_bindNamedAction","_bindLink","Action","_bindJSAction","resetForm","_bindResetFormAction","linkElement","destination","getDestinationHash","onclick","goToDestination","getAnchorUrl","executeNamedAction","otherClickAction","resetFormFields","resetFormRefs","refs","include","allFields","fieldIds","resetFormFields_1","fieldName","fields_1","fields_2","storage","allIds","allFields_1","hasPopup","l10nId","l10nArgs","alternativeText","_getKeyModifier","_setEventListener","baseName","eventName","valueGetter","modifier","_setEventListeners","getter","names_3","_setBackgroundColor","_setTextStyle","TEXT_ALIGNMENT","fontColor","defaultAppearanceData","computedFontSize","multiLine","numberOfLines","lineHeight","textAlignment","textAlign","isRequired","hasAppearance","fieldValue","setPropertyOnSiblings","keyInStorage","formattedValue","elementData_1","userValue","valueOnFocus","doNotScroll","overflowY","overflowX","readOnly","defaultFieldValue","blurListener","selRange","setSelectionRange","commitKey","willCommit","selStart","selectionStart","selEnd","selectionEnd","_blurListener_1","isDown","Keystroke","inputType","change","maxLen","maxLength","comb","fieldWidth","combWidth","letterSpacing","verticalAlign","checkbox","curChecked","buttonValue","radio","pdfButtonValue_1","selectElement","addAnEmptyEntry","combo","multiSelect","multiple","optionElement","displayValue","removeEmptyEntry","noneOptionElement_1","prepend","isExport","selectedIndex","getItems","multipleSelection","selectChild","items_1","indices","editable","changeEx","keyDown","IGNORE_TYPES","parentType","parentId","parentElements","parentRect","popupLeft","popupTop","pinned","BACKGROUND_ENLIGHT","dateObject","toLocaleDateString","toLocaleTimeString","XfaLayer","xfaHtml","contents","_formatContents","_toggle","_show","_hide","lines","createTextNode","pin","unpin","lineCoordinates","square","circle","containerClassName","svgElementName","vertices","coordinate","polyline","inkLists","inkList","inkList_1","file","_download","openOrDownloadData","_AnnotationLayer_setDimensions","sortedAnnotations","popupAnnotations","annotations_2","sortedAnnotations_1","rendered","rendered_1","renderedElement","_AnnotationLayer_setAnnotationCanvasMap","annotationCanvasMap_1","replaceWith","makeColorComp","CMYK_G","G_CMYK","G_RGB","G_HTML","G","RGB_G","RGB_HTML","R","B","T_HTML","CMYK_RGB","CMYK_HTML","components","RGB_CMYK","setupStorage","xfaOn","xfaOff","setAttributes","isHTMLAnchorElement","HTMLAnchorElement","dataId","rootHtml","stack","rootDiv","textDivs","childHtml","xmlns","TextLayerRenderTask","renderTextLayer","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_ASCENT","ascentCache","AllWhitespaceRegexp","getAscent","cachedAscent","metrics","ascent","fontBoundingBoxAscent","descent","fontBoundingBoxDescent","ratio","pixels","appendText","geom","textDiv","textDivProperties","_enhanceTextSelection","hasText","hasEOL","originalTransform","paddingBottom","paddingLeft","paddingRight","paddingTop","_textDivs","_viewport","atan2","fontName","fontHeight","fontAscent","_fontInspectorEnabled","shouldScaleText","absScaleX","absScaleY","_textDivProperties","_textContentStream","_layoutText","angleCos","angleSin","divWidth","divHeight","_canceled","textDivsLength","_renderingDone","findPositiveMin","ts","expand","expanded","expandBounds","divProperties","Float64Array","jj","boxScale","boxes","x1New","x2New","expandBoundsLTR","bounds_1","bounds_2","fakeBoundary","horizon","boundary","bounds_3","horizonPart","affectedBoundary","maxXNew","xNew","changedHorizon","lastBoundary","useBoundary","unshift","used","horizon_1","textContentStream","textContentItemsStr","enhanceTextSelection","_textContent","_container","_textContentItemsStr","_reader","_layoutTextLastFontSize","_layoutTextLastFontFamily","_layoutTextCtx","_renderTimer","_devicePixelRatio","_processItems","styleCache","_render","timeout","textItems","textStyles","pump_1","expandTextDivs","expandDivs","transformBuf","paddingBuf","divProps","renderParameters","SVGGraphics","SVG_DEFAULTS_1","fontStyle","XML_NS_1","XLINK_NS_1","LINE_CAP_STYLES_1","LINE_JOIN_STYLES_1","createObjectURL_1","contentType","forceDataSchema","digits","b1","b2","b3","d1","d2","d3","d4","convertImgDataToPng_1","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","h_1","crc32","crc","writePngChunk","adler32","deflateSync","literals","deflateSyncUncompressed","require$$2","maxBlockLength","deflateBlocks","idat","pi","adler","encode","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","convertImgDataToPng","SVGExtraState_1","SVGExtraState","dependencies","activeClipUrl","clipGroup","maskId","opListToTree","opList","opTree","opList_1","opListElement","pf","toFixed","pm","acos","clipCount_1","maskCount_1","shadingCount_1","class_9","transformMatrix","transformStack","extraStack","embedFonts","embeddedFonts","cssStyle","_operatorIdMapping","tgrp","executeOpTree","loadDependencies","this_1","getSVG","svgElement","convertOpList","operatorIdMapping","opTree_1","opTreeElement","lineMatrix","xcoords","ycoords","tspan","setAttributeNS","txtElement","txtgrp","glyphs_1","lineWidthScale","_setStrokeAttributes","_ensureTransformGroup","addFontStyle","defs","setStrokeAlpha","setFillAlpha","_makeColorN_Pattern","_makeShadingPattern","_makeTilingPattern","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","colorStops_1","stop","ops_1","getAttributeNS","clipId","clipPath","clipElement","states_1","imgSrc","cliprect","imgEl","definitions","rootGroup","_ensureClipGroup","PDFNodeStream","_network_utils","http","require$$3","https","require$$4","require$$5","fileUriRegex","parseUrl","sourceUrl","parsedUrl","parse","isHttp","isFsUrl","_rangeRequestReaders","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","_url","_storedError","_disableRange","_rangeChunkSize","_readableStream","_readCapability","_headersCapability","_error","_setReadableStream","BaseRangeReader","createRequestOptions","headers","auth","hostname","method","handleResponse","statusCode","getResponseHeader","validateRangeRequestCapabilities","allowRangeRequests","suggestedLength","extractFilenameFromHeader","_request","_httpHeaders","Range","lstat","stat","createReadStream","createResponseStatusError","validateResponseStatus","_content_disposition","returnValues","contentEncoding","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","contentDispositionStr","iter","quot","quotindex","extvalue","encodingend","langvalue","charset","hex","PDFNetworkStream","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","NetworkManager","getXhr","NetworkManager_getXhr","currXhrId","pendingRequests","requestRange","requestFull","xhrId","pendingRequest","setRequestHeader","expectedStatus","onError","onStateChange","onprogress","onHeadersReceived","onDone","xhrStatus","ok_response_on_range_request","rangeHeader","getRequestXhr","isPendingRequest","abortRequest","_source","_manager","_onRangeRequestReaderClosed","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","onClosed","manager","_onHeadersReceived","_onDone","_onError","_fullRequestId","_headersReceivedCapability","_cachedChunks","fullRequestXhrId","fullRequestXhr","lengthComputable","_requestId","_close","PDFFetchStream","createFetchOptions","abortController","signal","credentials","redirect","createHeaders","Headers","PDFFetchStreamReader","PDFFetchStreamRangeReader","_withCredentials","AbortController","_abortController","_headers","__webpack_module_cache__","moduleId","cachedModule","__webpack_exports__","_annotation_editor_layer","_annotation_layer","_api","_svg","_text_layer","PDFNodeStream_1","PDFNetworkStream_1","PDFFetchStream_1","integerSequence","verdocsViewCss","CANVAS_MARGIN","PDF_WORKER_URL","PDFJSversion","CMAPS_URL","pdf","VerdocsView","class_10","fingerprint","endpoint","VerdocsEndpoint","getDefault","loadProgress","pagesRendered","doSrc","newValue","oldValue","loadAndRender","isRotated","renderPages","pageNumbersToRender","pageNumbersToRender_1","__asyncValues","pageNumbersToRender_1_1","pdfDocument","pageX0","pageY0","pageX1","pageY1","pdfContainer","previousSibling","canvasTop","canvasBottom","pageDetails","originalWidth","originalHeight","xRatio","yRatio","canvasLeft","canvasRight","eventData","pages","numRendered","canvasContainer","pageRendered","documentRendered","getElementById","progress","getToken","Authorization"],"mappings":"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","sourcesContent":["@import '../../../theme.scss';\n\nverdocs-dropdown {\n font-family: $primary-font;\n display: block;\n\n .arrow {\n width: 32px;\n height: 26px;\n background: #fff;\n cursor: pointer;\n border-radius: 4px;\n align-items: center;\n display: inline-flex;\n border: 1px solid $light-border-color;\n justify-content: center;\n }\n\n .arrow svg {\n fill: $primary-color;\n transition: 0.3s;\n }\n\n .items {\n width: 200px;\n display: none;\n z-index: 10000;\n border-radius: 5px;\n background: $medium-bg;\n border: 1px solid $item-border-color;\n }\n\n .items[data-show] {\n display: block;\n }\n\n .option {\n width: 100%;\n color: #fff;\n border: none;\n display: block;\n text-align: left;\n background: none;\n padding: 10px 20px;\n }\n\n .option:hover {\n cursor: pointer;\n background: $primary-color;\n }\n\n .option[disabled] {\n color: $light-disabled-color;\n }\n\n .option[disabled]:hover {\n color: $light-disabled-color;\n cursor: inherit;\n background: transparent;\n }\n\n &.open {\n .items {\n display: block;\n }\n\n .arrow {\n background: $secondary-color;\n border: 1px solid $border-color;\n }\n\n .arrow svg {\n transform: scaleY(-1);\n fill: #fff;\n }\n }\n}\n","import {Host} from '@stencil/core';\nimport {createPopper, Instance} from '@popperjs/core';\nimport {Component, Prop, State, h, Event, EventEmitter} from '@stencil/core';\nimport SortDown from './down-arrow.svg';\n\nexport interface IMenuOption {\n label: string;\n id?: any;\n faIcon?: any;\n disabled?: boolean;\n}\n\n/**\n * Display a drop-down menu button. A menu of the specified options will be displayed when the button is pressed. The menu will be hidden\n * when the button is pressed again, or an option is selected.\n */\n@Component({\n tag: 'verdocs-dropdown',\n styleUrl: 'verdocs-dropdown.scss',\n})\nexport class VerdocsDropdown {\n private dropdownButton?: HTMLButtonElement;\n private dropdownMenu?: HTMLDivElement;\n private popper?: Instance;\n\n /**\n * The menu options to display.\n */\n @Prop() options: IMenuOption[] = [];\n\n /**\n * If set, the component will be open by default. This is primarily intended to be used for testing.\n */\n @Prop() open: boolean;\n\n /**\n * If set, the component will be open by default.\n */\n @State() isOpen: boolean;\n\n /**\n * Event fired when a menu option is clicked.\n * Web Component events need to be \"composed\" to cross the Shadow DOM and be received by parent frameworks.\n */\n @Event({composed: true}) optionSelected: EventEmitter<IMenuOption>;\n\n componentWillLoad() {\n this.isOpen = !!this.open;\n }\n\n componentDidLoad() {\n this.popper = createPopper(this.dropdownButton, this.dropdownMenu, {placement: 'bottom-start', modifiers: [{name: 'offset', options: {offset: [0, 6]}}]});\n }\n\n handleSelectOption(option: IMenuOption) {\n this.isOpen = false;\n this.optionSelected.emit(option);\n this.hide();\n }\n\n // See https://popper.js.org/docs/v2/tutorial/\n // What we're doing here is clearing event listeners when they aren't needed, to increase performance in lists\n showDropdown() {\n this.isOpen = true;\n this.dropdownMenu.setAttribute('data-show', '');\n this.dropdownMenu.removeAttribute('aria-hidden');\n\n this.popper?.setOptions(options => ({\n ...options,\n modifiers: [...options.modifiers, {name: 'eventListeners', enabled: true}],\n }));\n\n this.popper?.update();\n }\n\n handleHideDropdown(e: any) {\n if (e?.target?.localName === 'button' && e?.target?.className === 'arrow') {\n // This event is fired when a menu element is clicked because the button \"loses focus\" then too\n return;\n }\n\n this.hide();\n }\n\n toggleDropdown() {\n if (this.isOpen) {\n this.hide();\n } else {\n this.showDropdown();\n }\n }\n\n hide() {\n this.isOpen = false;\n this.dropdownMenu.removeAttribute('data-show');\n this.dropdownMenu.setAttribute('aria-hidden', 'true');\n this.popper?.setOptions(options => ({\n ...options,\n modifiers: [...options.modifiers, {name: 'eventListeners', enabled: false}],\n }));\n }\n\n render() {\n return (\n <Host class={{storybook: !!window?.['STORYBOOK_ENV'], open: !!this.isOpen}}>\n <button\n class=\"arrow\"\n innerHTML={SortDown}\n aria-label=\"Open Menu\"\n onClick={() => this.toggleDropdown()}\n onBlur={e => this.handleHideDropdown(e)}\n ref={el => (this.dropdownButton = el as HTMLButtonElement)}\n />\n\n <div class=\"items\" aria-hidden={!this.open} ref={el => (this.dropdownMenu = el as HTMLDivElement)}>\n {this.options?.map(option => (\n <button onClick={() => this.handleSelectOption(option)} class=\"option\" disabled={option.disabled}>\n {option.label}\n </button>\n ))}\n </div>\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-field-attachment {\n font-family: $verdocs-primary-font;\n width: 24px;\n height: 24px;\n display: block;\n font-size: 11px;\n background-color: transparent;\n transform-origin: bottom left;\n\n span {\n width: 20px;\n cursor: pointer;\n }\n\n &.required {\n span {\n border: 1px solid $verdocs-red-1;\n }\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop, Event, EventEmitter, Method} from '@stencil/core';\nimport Paperclip from './paperclip.svg';\n\n/**\n * Displays a signature field. Various field types are supported, including traditional Signature and Initials types as well as\n * input types like text and checkbox.\n */\n@Component({\n tag: 'verdocs-field-attachment',\n styleUrl: 'verdocs-field-attachment.scss',\n shadow: false,\n})\nexport class VerdocsFieldAttachment {\n /**\n * Sets the tabIndex of the input element.\n */\n @Prop() order: number = 1;\n\n /**\n * Sets the value of the input element.\n */\n @Prop() value: string = '';\n\n /**\n * If true, the field will be marked required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Sets the disabled attribute of the input element.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Event fired when the input field value changes. Note that this will only be fired on blur, tab-out, ENTER key press, etc.\n * It is generally the best event to subscribe to than `input` for most cases EXCEPT autocomplete fields that need to see every\n * keypress.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n @Method() async focusField() {\n this.handleShow();\n }\n\n private dialog?: any;\n\n handleShow() {\n this.dialog = document.createElement('verdocs-upload-dialog');\n this.dialog.open = true;\n this.dialog.addEventListener('cancel', () => {\n console.log('cancel');\n this.dialog?.remove();\n });\n document.addEventListener('done', e => {\n console.log('done', e);\n this.dialog?.remove();\n });\n document.body.append(this.dialog);\n }\n\n render() {\n return (\n <Host class={{required: this.required}}>\n <span innerHTML={Paperclip} onClick={() => this.handleShow()} />\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\n// See https://www.kallmanation.com/styling-a-checkbox-with-only-css\nverdocs-field-checkbox {\n font-family: $verdocs-primary-font;\n font-size: 11px;\n background-color: transparent;\n transform-origin: bottom left;\n\n label > input[type='checkbox'] {\n display: none;\n }\n\n label > input[type='checkbox'] + *::before {\n content: '';\n display: block;\n vertical-align: bottom;\n width: 14px;\n height: 14px;\n border-radius: 2px;\n border: 1px solid rgba(0, 0, 0, 0.2);\n flex-shrink: 0;\n }\n\n label > input[type='checkbox']:checked + * {\n color: var(--verdocs-primary-color);\n }\n\n label > input[type='checkbox']:checked + *::before {\n content: '✓';\n color: white;\n text-align: center;\n background: var(--verdocs-primary-color);\n border-color: var(--verdocs-primary-color);\n }\n\n &.required {\n label > input[type='checkbox'] + *::before {\n border: 1px solid var(--verdocs-required-color);\n }\n }\n\n &.hide {\n display: none;\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop, Event, EventEmitter} from '@stencil/core';\n\n/**\n * Displays a signature field. Various field types are supported, including traditional Signature and Initials types as well as\n * input types like text and checkbox.\n */\n@Component({\n tag: 'verdocs-field-checkbox',\n styleUrl: 'verdocs-field-checkbox.scss',\n shadow: false,\n})\nexport class VerdocsFieldCheckbox {\n /**\n * Sets the tabIndex of the input element.\n */\n @Prop() order: number = 1;\n\n /**\n * Sets the value of the input element.\n */\n @Prop() value: boolean = false;\n\n /**\n * If true, the field will be marked required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Sets the disabled attribute of the input element.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Event fired when the input field value changes. Note that this will only be fired on blur, tab-out, ENTER key press, etc.\n * It is generally the best event to subscribe to than `input` for most cases EXCEPT autocomplete fields that need to see every\n * keypress.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n handleChange(e: any) {\n this.fieldChange.emit(e.target.checked);\n }\n\n render() {\n return (\n <Host class={{required: this.required}}>\n <label>\n <input type=\"checkbox\" tabIndex={this.order} checked={this.value} disabled={this.disabled} required={this.required} onChange={e => this.handleChange(e)} />\n <span />\n </label>\n </Host>\n );\n }\n}\n","export function hasProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nexport function lastItemOf(arr) {\n return arr[arr.length - 1];\n}\n\n// push only the items not included in the array\nexport function pushUnique(arr, ...items) {\n items.forEach((item) => {\n if (arr.includes(item)) {\n return;\n }\n arr.push(item);\n });\n return arr;\n}\n\nexport function stringToArray(str, separator) {\n // convert empty string to an empty array\n return str ? str.split(separator) : [];\n}\n\nexport function isInRange(testVal, min, max) {\n const minOK = min === undefined || testVal >= min;\n const maxOK = max === undefined || testVal <= max;\n return minOK && maxOK;\n}\n\nexport function limitToRange(val, min, max) {\n if (val < min) {\n return min;\n }\n if (val > max) {\n return max;\n }\n return val;\n}\n\nexport function createTagRepeat(tagName, repeat, attributes = {}, index = 0, html = '') {\n const openTagSrc = Object.keys(attributes).reduce((src, attr) => {\n let val = attributes[attr];\n if (typeof val === 'function') {\n val = val(index);\n }\n return `${src} ${attr}=\"${val}\"`;\n }, tagName);\n html += `<${openTagSrc}></${tagName}>`;\n\n const next = index + 1;\n return next < repeat\n ? createTagRepeat(tagName, repeat, attributes, next, html)\n : html;\n}\n\n// Remove the spacing surrounding tags for HTML parser not to create text nodes\n// before/after elements\nexport function optimizeTemplateHTML(html) {\n return html.replace(/>\\s+/g, '>').replace(/\\s+</, '<');\n}\n","export function stripTime(timeValue) {\n return new Date(timeValue).setHours(0, 0, 0, 0);\n}\n\nexport function today() {\n return new Date().setHours(0, 0, 0, 0);\n}\n\n// Get the time value of the start of given date or year, month and day\nexport function dateValue(...args) {\n switch (args.length) {\n case 0:\n return today();\n case 1:\n return stripTime(args[0]);\n }\n\n // use setFullYear() to keep 2-digit year from being mapped to 1900-1999\n const newDate = new Date(0);\n newDate.setFullYear(...args);\n return newDate.setHours(0, 0, 0, 0);\n}\n\nexport function addDays(date, amount) {\n const newDate = new Date(date);\n return newDate.setDate(newDate.getDate() + amount);\n}\n\nexport function addWeeks(date, amount) {\n return addDays(date, amount * 7);\n}\n\nexport function addMonths(date, amount) {\n // If the day of the date is not in the new month, the last day of the new\n // month will be returned. e.g. Jan 31 + 1 month → Feb 28 (not Mar 03)\n const newDate = new Date(date);\n const monthsToSet = newDate.getMonth() + amount;\n let expectedMonth = monthsToSet % 12;\n if (expectedMonth < 0) {\n expectedMonth += 12;\n }\n\n const time = newDate.setMonth(monthsToSet);\n return newDate.getMonth() !== expectedMonth ? newDate.setDate(0) : time;\n}\n\nexport function addYears(date, amount) {\n // If the date is Feb 29 and the new year is not a leap year, Feb 28 of the\n // new year will be returned.\n const newDate = new Date(date);\n const expectedMonth = newDate.getMonth();\n const time = newDate.setFullYear(newDate.getFullYear() + amount);\n return expectedMonth === 1 && newDate.getMonth() === 2 ? newDate.setDate(0) : time;\n}\n\n// Calculate the distance bettwen 2 days of the week\nfunction dayDiff(day, from) {\n return (day - from + 7) % 7;\n}\n\n// Get the date of the specified day of the week of given base date\nexport function dayOfTheWeekOf(baseDate, dayOfWeek, weekStart = 0) {\n const baseDay = new Date(baseDate).getDay();\n return addDays(baseDate, dayDiff(dayOfWeek, weekStart) - dayDiff(baseDay, weekStart));\n}\n\n// Get the ISO week of a date\nexport function getWeek(date) {\n // start of ISO week is Monday\n const thuOfTheWeek = dayOfTheWeekOf(date, 4, 1);\n // 1st week == the week where the 4th of January is in\n const firstThu = dayOfTheWeekOf(new Date(thuOfTheWeek).setMonth(0, 4), 4, 1);\n return Math.round((thuOfTheWeek - firstThu) / 604800000) + 1;\n}\n\n// Get the start year of the period of years that includes given date\n// years: length of the year period\nexport function startOfYearPeriod(date, years) {\n /* @see https://en.wikipedia.org/wiki/Year_zero#ISO_8601 */\n const year = new Date(date).getFullYear();\n return Math.floor(year / years) * years;\n}\n\n// Convert date to the first/last date of the month/year of the date\nexport function regularizeDate(date, timeSpan, useLastDate) {\n if (timeSpan !== 1 && timeSpan !== 2) {\n return date;\n }\n const newDate = new Date(date);\n if (timeSpan === 1) {\n useLastDate\n ? newDate.setMonth(newDate.getMonth() + 1, 0)\n : newDate.setDate(1);\n } else {\n useLastDate\n ? newDate.setFullYear(newDate.getFullYear() + 1, 0, 0)\n : newDate.setMonth(0, 1);\n }\n return newDate.setHours(0, 0, 0, 0);\n}\n","import {stripTime, today} from './date.js';\nimport {lastItemOf} from './utils.js';\n\n// pattern for format parts\nexport const reFormatTokens = /dd?|DD?|mm?|MM?|yy?(?:yy)?/;\n// pattern for non date parts\nexport const reNonDateParts = /[\\s!-/:-@[-`{-~年月日]+/;\n// cache for persed formats\nlet knownFormats = {};\n// parse funtions for date parts\nconst parseFns = {\n y(date, year) {\n return new Date(date).setFullYear(parseInt(year, 10));\n },\n m(date, month, locale) {\n const newDate = new Date(date);\n let monthIndex = parseInt(month, 10) - 1;\n\n if (isNaN(monthIndex)) {\n if (!month) {\n return NaN;\n }\n\n const monthName = month.toLowerCase();\n const compareNames = name => name.toLowerCase().startsWith(monthName);\n // compare with both short and full names because some locales have periods\n // in the short names (not equal to the first X letters of the full names)\n monthIndex = locale.monthsShort.findIndex(compareNames);\n if (monthIndex < 0) {\n monthIndex = locale.months.findIndex(compareNames);\n }\n if (monthIndex < 0) {\n return NaN;\n }\n }\n\n newDate.setMonth(monthIndex);\n return newDate.getMonth() !== normalizeMonth(monthIndex)\n ? newDate.setDate(0)\n : newDate.getTime();\n },\n d(date, day) {\n return new Date(date).setDate(parseInt(day, 10));\n },\n};\n// format functions for date parts\nconst formatFns = {\n d(date) {\n return date.getDate();\n },\n dd(date) {\n return padZero(date.getDate(), 2);\n },\n D(date, locale) {\n return locale.daysShort[date.getDay()];\n },\n DD(date, locale) {\n return locale.days[date.getDay()];\n },\n m(date) {\n return date.getMonth() + 1;\n },\n mm(date) {\n return padZero(date.getMonth() + 1, 2);\n },\n M(date, locale) {\n return locale.monthsShort[date.getMonth()];\n },\n MM(date, locale) {\n return locale.months[date.getMonth()];\n },\n y(date) {\n return date.getFullYear();\n },\n yy(date) {\n return padZero(date.getFullYear(), 2).slice(-2);\n },\n yyyy(date) {\n return padZero(date.getFullYear(), 4);\n },\n};\n\n// get month index in normal range (0 - 11) from any number\nfunction normalizeMonth(monthIndex) {\n return monthIndex > -1 ? monthIndex % 12 : normalizeMonth(monthIndex + 12);\n}\n\nfunction padZero(num, length) {\n return num.toString().padStart(length, '0');\n}\n\nfunction parseFormatString(format) {\n if (typeof format !== 'string') {\n throw new Error(\"Invalid date format.\");\n }\n if (format in knownFormats) {\n return knownFormats[format];\n }\n\n // sprit the format string into parts and seprators\n const separators = format.split(reFormatTokens);\n const parts = format.match(new RegExp(reFormatTokens, 'g'));\n if (separators.length === 0 || !parts) {\n throw new Error(\"Invalid date format.\");\n }\n\n // collect format functions used in the format\n const partFormatters = parts.map(token => formatFns[token]);\n\n // collect parse function keys used in the format\n // iterate over parseFns' keys in order to keep the order of the keys.\n const partParserKeys = Object.keys(parseFns).reduce((keys, key) => {\n const token = parts.find(part => part[0] !== 'D' && part[0].toLowerCase() === key);\n if (token) {\n keys.push(key);\n }\n return keys;\n }, []);\n\n return knownFormats[format] = {\n parser(dateStr, locale) {\n const dateParts = dateStr.split(reNonDateParts).reduce((dtParts, part, index) => {\n if (part.length > 0 && parts[index]) {\n const token = parts[index][0];\n if (token === 'M') {\n dtParts.m = part;\n } else if (token !== 'D') {\n dtParts[token] = part;\n }\n }\n return dtParts;\n }, {});\n\n // iterate over partParserkeys so that the parsing is made in the oder\n // of year, month and day to prevent the day parser from correcting last\n // day of month wrongly\n return partParserKeys.reduce((origDate, key) => {\n const newDate = parseFns[key](origDate, dateParts[key], locale);\n // ingnore the part failed to parse\n return isNaN(newDate) ? origDate : newDate;\n }, today());\n },\n formatter(date, locale) {\n let dateStr = partFormatters.reduce((str, fn, index) => {\n return str += `${separators[index]}${fn(date, locale)}`;\n }, '');\n // separators' length is always parts' length + 1,\n return dateStr += lastItemOf(separators);\n },\n };\n}\n\nexport function parseDate(dateStr, format, locale) {\n if (dateStr instanceof Date || typeof dateStr === 'number') {\n const date = stripTime(dateStr);\n return isNaN(date) ? undefined : date;\n }\n if (!dateStr) {\n return undefined;\n }\n if (dateStr === 'today') {\n return today();\n }\n\n if (format && format.toValue) {\n const date = format.toValue(dateStr, format, locale);\n return isNaN(date) ? undefined : stripTime(date);\n }\n\n return parseFormatString(format).parser(dateStr, locale);\n}\n\nexport function formatDate(date, format, locale) {\n if (isNaN(date) || (!date && date !== 0)) {\n return '';\n }\n\n const dateObj = typeof date === 'number' ? new Date(date) : date;\n\n if (format.toDisplay) {\n return format.toDisplay(dateObj, format, locale);\n }\n\n return parseFormatString(format).formatter(dateObj, locale);\n}\n","const range = document.createRange();\n\nexport function parseHTML(html) {\n return range.createContextualFragment(html);\n}\n\nexport function getParent(el) {\n return el.parentElement\n || (el.parentNode instanceof ShadowRoot ? el.parentNode.host : undefined);\n}\n\nexport function isActiveElement(el) {\n return el.getRootNode().activeElement === el;\n}\n\n// equivalent to jQuery's :visble\nexport function isVisible(el) {\n return !!(el.offsetWidth || el.offsetHeight || el.getClientRects().length);\n}\n\nexport function hideElement(el) {\n if (el.style.display === 'none') {\n return;\n }\n // back up the existing display setting in data-style-display\n if (el.style.display) {\n el.dataset.styleDisplay = el.style.display;\n }\n el.style.display = 'none';\n}\n\nexport function showElement(el) {\n if (el.style.display !== 'none') {\n return;\n }\n if (el.dataset.styleDisplay) {\n // restore backed-up dispay property\n el.style.display = el.dataset.styleDisplay;\n delete el.dataset.styleDisplay;\n } else {\n el.style.display = '';\n }\n}\n\nexport function emptyChildNodes(el) {\n if (el.firstChild) {\n el.removeChild(el.firstChild);\n emptyChildNodes(el);\n }\n}\n\nexport function replaceChildNodes(el, newChildNodes) {\n emptyChildNodes(el);\n if (newChildNodes instanceof DocumentFragment) {\n el.appendChild(newChildNodes);\n } else if (typeof newChildNodes === 'string') {\n el.appendChild(parseHTML(newChildNodes));\n } else if (typeof newChildNodes.forEach === 'function') {\n newChildNodes.forEach((node) => {\n el.appendChild(node);\n });\n }\n}\n","const listenerRegistry = new WeakMap();\nconst {addEventListener, removeEventListener} = EventTarget.prototype;\n\n// Register event listeners to a key object\n// listeners: array of listener definitions;\n// - each definition must be a flat array of event target and the arguments\n// used to call addEventListener() on the target\nexport function registerListeners(keyObj, listeners) {\n let registered = listenerRegistry.get(keyObj);\n if (!registered) {\n registered = [];\n listenerRegistry.set(keyObj, registered);\n }\n listeners.forEach((listener) => {\n addEventListener.call(...listener);\n registered.push(listener);\n });\n}\n\nexport function unregisterListeners(keyObj) {\n let listeners = listenerRegistry.get(keyObj);\n if (!listeners) {\n return;\n }\n listeners.forEach((listener) => {\n removeEventListener.call(...listener);\n });\n listenerRegistry.delete(keyObj);\n}\n\n// Event.composedPath() polyfill for Edge\n// based on https://gist.github.com/kleinfreund/e9787d73776c0e3750dcfcdc89f100ec\nif (!Event.prototype.composedPath) {\n const getComposedPath = (node, path = []) => {\n path.push(node);\n\n let parent;\n if (node.parentNode) {\n parent = node.parentNode;\n } else if (node.host) { // ShadowRoot\n parent = node.host;\n } else if (node.defaultView) { // Document\n parent = node.defaultView;\n }\n return parent ? getComposedPath(parent, path) : path;\n };\n\n Event.prototype.composedPath = function () {\n return getComposedPath(this.target);\n };\n}\n\nfunction findFromPath(path, criteria, currentTarget) {\n const [node, ...rest] = path;\n if (criteria(node)) {\n return node;\n }\n if (node === currentTarget || node.tagName === 'HTML' || rest.length === 0) {\n // stop when reaching currentTarget or <html>\n return;\n }\n return findFromPath(rest, criteria, currentTarget);\n}\n\n// Search for the actual target of a delegated event\nexport function findElementInEventPath(ev, selector) {\n const criteria = typeof selector === 'function'\n ? selector\n : el => el instanceof Element && el.matches(selector);\n return findFromPath(ev.composedPath(), criteria, ev.currentTarget);\n}\n","// default locales\nexport const locales = {\n en: {\n days: [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"],\n daysShort: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n daysMin: [\"Su\", \"Mo\", \"Tu\", \"We\", \"Th\", \"Fr\", \"Sa\"],\n months: [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"],\n monthsShort: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\n today: \"Today\",\n clear: \"Clear\",\n titleFormat: \"MM y\"\n }\n};\n","// config options updatable by setOptions() and their default values\nconst defaultOptions = {\n autohide: false,\n beforeShowDay: null,\n beforeShowDecade: null,\n beforeShowMonth: null,\n beforeShowYear: null,\n calendarWeeks: false,\n clearBtn: false,\n dateDelimiter: ',',\n datesDisabled: [],\n daysOfWeekDisabled: [],\n daysOfWeekHighlighted: [],\n defaultViewDate: undefined, // placeholder, defaults to today() by the program\n disableTouchKeyboard: false,\n format: 'mm/dd/yyyy',\n language: 'en',\n maxDate: null,\n maxNumberOfDates: 1,\n maxView: 3,\n minDate: null,\n nextArrow: '»',\n orientation: 'auto',\n pickLevel: 0,\n prevArrow: '«',\n showDaysOfWeek: true,\n showOnClick: true,\n showOnFocus: true,\n startView: 0,\n title: '',\n todayBtn: false,\n todayBtnMode: 0,\n todayHighlight: false,\n updateOnBlur: true,\n weekStart: 0,\n};\n\nexport default defaultOptions;\n","import {hasProperty, pushUnique} from '../lib/utils.js';\nimport {dateValue, regularizeDate} from '../lib/date.js';\nimport {reFormatTokens, parseDate} from '../lib/date-format.js';\nimport {parseHTML} from '../lib/dom.js';\nimport defaultOptions from './defaultOptions.js';\n\nconst {\n language: defaultLang,\n format: defaultFormat,\n weekStart: defaultWeekStart,\n} = defaultOptions;\n\n// Reducer function to filter out invalid day-of-week from the input\nfunction sanitizeDOW(dow, day) {\n return dow.length < 6 && day >= 0 && day < 7\n ? pushUnique(dow, day)\n : dow;\n}\n\nfunction calcEndOfWeek(startOfWeek) {\n return (startOfWeek + 6) % 7;\n}\n\n// validate input date. if invalid, fallback to the original value\nfunction validateDate(value, format, locale, origValue) {\n const date = parseDate(value, format, locale);\n return date !== undefined ? date : origValue;\n}\n\n// Validate viewId. if invalid, fallback to the original value\nfunction validateViewId(value, origValue, max = 3) {\n const viewId = parseInt(value, 10);\n return viewId >= 0 && viewId <= max ? viewId : origValue;\n}\n\n// Create Datepicker configuration to set\nexport default function processOptions(options, datepicker) {\n const inOpts = Object.assign({}, options);\n const config = {};\n const locales = datepicker.constructor.locales;\n const rangeSideIndex = datepicker.rangeSideIndex;\n let {\n format,\n language,\n locale,\n maxDate,\n maxView,\n minDate,\n pickLevel,\n startView,\n weekStart,\n } = datepicker.config || {};\n\n if (inOpts.language) {\n let lang;\n if (inOpts.language !== language) {\n if (locales[inOpts.language]) {\n lang = inOpts.language;\n } else {\n // Check if langauge + region tag can fallback to the one without\n // region (e.g. fr-CA → fr)\n lang = inOpts.language.split('-')[0];\n if (locales[lang] === undefined) {\n lang = false;\n }\n }\n }\n delete inOpts.language;\n if (lang) {\n language = config.language = lang;\n\n // update locale as well when updating language\n const origLocale = locale || locales[defaultLang];\n // use default language's properties for the fallback\n locale = Object.assign({\n format: defaultFormat,\n weekStart: defaultWeekStart\n }, locales[defaultLang]);\n if (language !== defaultLang) {\n Object.assign(locale, locales[language]);\n }\n config.locale = locale;\n // if format and/or weekStart are the same as old locale's defaults,\n // update them to new locale's defaults\n if (format === origLocale.format) {\n format = config.format = locale.format;\n }\n if (weekStart === origLocale.weekStart) {\n weekStart = config.weekStart = locale.weekStart;\n config.weekEnd = calcEndOfWeek(locale.weekStart);\n }\n }\n }\n\n if (inOpts.format) {\n const hasToDisplay = typeof inOpts.format.toDisplay === 'function';\n const hasToValue = typeof inOpts.format.toValue === 'function';\n const validFormatString = reFormatTokens.test(inOpts.format);\n if ((hasToDisplay && hasToValue) || validFormatString) {\n format = config.format = inOpts.format;\n }\n delete inOpts.format;\n }\n\n //*** pick level ***//\n let newPickLevel = pickLevel;\n if (inOpts.pickLevel !== undefined) {\n newPickLevel = validateViewId(inOpts.pickLevel, 2);\n delete inOpts.pickLevel;\n }\n if (newPickLevel !== pickLevel) {\n if (newPickLevel > pickLevel) {\n // complement current minDate/madDate so that the existing range will be\n // expanded to fit the new level later\n if (inOpts.minDate === undefined) {\n inOpts.minDate = minDate;\n }\n if (inOpts.maxDate === undefined) {\n inOpts.maxDate = maxDate;\n }\n }\n // complement datesDisabled so that it will be reset later\n if (!inOpts.datesDisabled) {\n inOpts.datesDisabled = [];\n }\n pickLevel = config.pickLevel = newPickLevel;\n }\n\n //*** dates ***//\n // while min and maxDate for \"no limit\" in the options are better to be null\n // (especially when updating), the ones in the config have to be undefined\n // because null is treated as 0 (= unix epoch) when comparing with time value\n let minDt = minDate;\n let maxDt = maxDate;\n if (inOpts.minDate !== undefined) {\n const defaultMinDt = dateValue(0, 0, 1);\n minDt = inOpts.minDate === null\n ? defaultMinDt // set 0000-01-01 to prevent negative values for year\n : validateDate(inOpts.minDate, format, locale, minDt);\n if (minDt !== defaultMinDt) {\n minDt = regularizeDate(minDt, pickLevel, false);\n }\n delete inOpts.minDate;\n }\n if (inOpts.maxDate !== undefined) {\n maxDt = inOpts.maxDate === null\n ? undefined\n : validateDate(inOpts.maxDate, format, locale, maxDt);\n if (maxDt !== undefined) {\n maxDt = regularizeDate(maxDt, pickLevel, true);\n }\n delete inOpts.maxDate;\n }\n if (maxDt < minDt) {\n minDate = config.minDate = maxDt;\n maxDate = config.maxDate = minDt;\n } else {\n if (minDate !== minDt) {\n minDate = config.minDate = minDt;\n }\n if (maxDate !== maxDt) {\n maxDate = config.maxDate = maxDt;\n }\n }\n\n if (inOpts.datesDisabled) {\n config.datesDisabled = inOpts.datesDisabled.reduce((dates, dt) => {\n const date = parseDate(dt, format, locale);\n return date !== undefined\n ? pushUnique(dates, regularizeDate(date, pickLevel, rangeSideIndex))\n : dates;\n }, []);\n delete inOpts.datesDisabled;\n }\n if (inOpts.defaultViewDate !== undefined) {\n const viewDate = parseDate(inOpts.defaultViewDate, format, locale);\n if (viewDate !== undefined) {\n config.defaultViewDate = viewDate;\n }\n delete inOpts.defaultViewDate;\n }\n\n //*** days of week ***//\n if (inOpts.weekStart !== undefined) {\n const wkStart = Number(inOpts.weekStart) % 7;\n if (!isNaN(wkStart)) {\n weekStart = config.weekStart = wkStart;\n config.weekEnd = calcEndOfWeek(wkStart);\n }\n delete inOpts.weekStart;\n }\n if (inOpts.daysOfWeekDisabled) {\n config.daysOfWeekDisabled = inOpts.daysOfWeekDisabled.reduce(sanitizeDOW, []);\n delete inOpts.daysOfWeekDisabled;\n }\n if (inOpts.daysOfWeekHighlighted) {\n config.daysOfWeekHighlighted = inOpts.daysOfWeekHighlighted.reduce(sanitizeDOW, []);\n delete inOpts.daysOfWeekHighlighted;\n }\n\n //*** multi date ***//\n if (inOpts.maxNumberOfDates !== undefined) {\n const maxNumberOfDates = parseInt(inOpts.maxNumberOfDates, 10);\n if (maxNumberOfDates >= 0) {\n config.maxNumberOfDates = maxNumberOfDates;\n config.multidate = maxNumberOfDates !== 1;\n }\n delete inOpts.maxNumberOfDates;\n }\n if (inOpts.dateDelimiter) {\n config.dateDelimiter = String(inOpts.dateDelimiter);\n delete inOpts.dateDelimiter;\n }\n\n //*** view ***//\n let newMaxView = maxView;\n if (inOpts.maxView !== undefined) {\n newMaxView = validateViewId(inOpts.maxView, maxView);\n delete inOpts.maxView;\n }\n // ensure max view >= pick level\n newMaxView = pickLevel > newMaxView ? pickLevel : newMaxView;\n if (newMaxView !== maxView) {\n maxView = config.maxView = newMaxView;\n }\n\n let newStartView = startView;\n if (inOpts.startView !== undefined) {\n newStartView = validateViewId(inOpts.startView, newStartView);\n delete inOpts.startView;\n }\n // ensure pick level <= start view <= max view\n if (newStartView < pickLevel) {\n newStartView = pickLevel;\n } else if (newStartView > maxView) {\n newStartView = maxView;\n }\n if (newStartView !== startView) {\n config.startView = newStartView;\n }\n\n //*** template ***//\n if (inOpts.prevArrow) {\n const prevArrow = parseHTML(inOpts.prevArrow);\n if (prevArrow.childNodes.length > 0) {\n config.prevArrow = prevArrow.childNodes;\n }\n delete inOpts.prevArrow;\n }\n if (inOpts.nextArrow) {\n const nextArrow = parseHTML(inOpts.nextArrow);\n if (nextArrow.childNodes.length > 0) {\n config.nextArrow = nextArrow.childNodes;\n }\n delete inOpts.nextArrow;\n }\n\n //*** misc ***//\n if (inOpts.disableTouchKeyboard !== undefined) {\n config.disableTouchKeyboard = 'ontouchstart' in document && !!inOpts.disableTouchKeyboard;\n delete inOpts.disableTouchKeyboard;\n }\n if (inOpts.orientation) {\n const orientation = inOpts.orientation.toLowerCase().split(/\\s+/g);\n config.orientation = {\n x: orientation.find(x => (x === 'left' || x === 'right')) || 'auto',\n y: orientation.find(y => (y === 'top' || y === 'bottom')) || 'auto',\n };\n delete inOpts.orientation;\n }\n if (inOpts.todayBtnMode !== undefined) {\n switch(inOpts.todayBtnMode) {\n case 0:\n case 1:\n config.todayBtnMode = inOpts.todayBtnMode;\n }\n delete inOpts.todayBtnMode;\n }\n\n //*** copy the rest ***//\n Object.keys(inOpts).forEach((key) => {\n if (inOpts[key] !== undefined && hasProperty(defaultOptions, key)) {\n config[key] = inOpts[key];\n }\n });\n\n return config;\n}\n","import {optimizeTemplateHTML} from '../../lib/utils.js';\n\nconst pickerTemplate = optimizeTemplateHTML(`<div class=\"datepicker\">\n <div class=\"datepicker-picker\">\n <div class=\"datepicker-header\">\n <div class=\"datepicker-title\"></div>\n <div class=\"datepicker-controls\">\n <button type=\"button\" class=\"%buttonClass% prev-btn\"></button>\n <button type=\"button\" class=\"%buttonClass% view-switch\"></button>\n <button type=\"button\" class=\"%buttonClass% next-btn\"></button>\n </div>\n </div>\n <div class=\"datepicker-main\"></div>\n <div class=\"datepicker-footer\">\n <div class=\"datepicker-controls\">\n <button type=\"button\" class=\"%buttonClass% today-btn\"></button>\n <button type=\"button\" class=\"%buttonClass% clear-btn\"></button>\n </div>\n </div>\n </div>\n</div>`);\n\nexport default pickerTemplate;\n","import {createTagRepeat, optimizeTemplateHTML} from '../../lib/utils.js';\n\nconst daysTemplate = optimizeTemplateHTML(`<div class=\"days\">\n <div class=\"days-of-week\">${createTagRepeat('span', 7, {class: 'dow'})}</div>\n <div class=\"datepicker-grid\">${createTagRepeat('span', 42)}</div>\n</div>`);\n\nexport default daysTemplate;\n","import {createTagRepeat, optimizeTemplateHTML} from '../../lib/utils.js';\n\nconst calendarWeeksTemplate = optimizeTemplateHTML(`<div class=\"calendar-weeks\">\n <div class=\"days-of-week\"><span class=\"dow\"></span></div>\n <div class=\"weeks\">${createTagRepeat('span', 6, {class: 'week'})}</div>\n</div>`);\n\nexport default calendarWeeksTemplate;\n","import {pushUnique} from '../../lib/utils.js';\nimport {parseHTML, replaceChildNodes} from '../../lib/dom.js';\n\n// Base class of the view classes\nexport default class View {\n constructor(picker, config) {\n Object.assign(this, config, {\n picker,\n element: parseHTML(`<div class=\"datepicker-view\"></div>`).firstChild,\n selected: [],\n });\n this.init(this.picker.datepicker.config);\n }\n\n init(options) {\n if (options.pickLevel !== undefined) {\n this.isMinView = this.id === options.pickLevel;\n }\n this.setOptions(options);\n this.updateFocus();\n this.updateSelection();\n }\n\n // Execute beforeShow() callback and apply the result to the element\n // args:\n // - current - current value on the iteration on view rendering\n // - timeValue - time value of the date to pass to beforeShow()\n performBeforeHook(el, current, timeValue) {\n let result = this.beforeShow(new Date(timeValue));\n switch (typeof result) {\n case 'boolean':\n result = {enabled: result};\n break;\n case 'string':\n result = {classes: result};\n }\n\n if (result) {\n if (result.enabled === false) {\n el.classList.add('disabled');\n pushUnique(this.disabled, current);\n }\n if (result.classes) {\n const extraClasses = result.classes.split(/\\s+/);\n el.classList.add(...extraClasses);\n if (extraClasses.includes('disabled')) {\n pushUnique(this.disabled, current);\n }\n }\n if (result.content) {\n replaceChildNodes(el, result.content);\n }\n }\n }\n}\n","import {hasProperty, pushUnique} from '../../lib/utils.js';\nimport {today, dateValue, addDays, addWeeks, dayOfTheWeekOf, getWeek} from '../../lib/date.js';\nimport {formatDate} from '../../lib/date-format.js';\nimport {parseHTML, showElement, hideElement} from '../../lib/dom.js';\nimport daysTemplate from '../templates/daysTemplate.js';\nimport calendarWeeksTemplate from '../templates/calendarWeeksTemplate.js';\nimport View from './View.js';\n\nexport default class DaysView extends View {\n constructor(picker) {\n super(picker, {\n id: 0,\n name: 'days',\n cellClass: 'day',\n });\n }\n\n init(options, onConstruction = true) {\n if (onConstruction) {\n const inner = parseHTML(daysTemplate).firstChild;\n this.dow = inner.firstChild;\n this.grid = inner.lastChild;\n this.element.appendChild(inner);\n }\n super.init(options);\n }\n\n setOptions(options) {\n let updateDOW;\n\n if (hasProperty(options, 'minDate')) {\n this.minDate = options.minDate;\n }\n if (hasProperty(options, 'maxDate')) {\n this.maxDate = options.maxDate;\n }\n if (options.datesDisabled) {\n this.datesDisabled = options.datesDisabled;\n }\n if (options.daysOfWeekDisabled) {\n this.daysOfWeekDisabled = options.daysOfWeekDisabled;\n updateDOW = true;\n }\n if (options.daysOfWeekHighlighted) {\n this.daysOfWeekHighlighted = options.daysOfWeekHighlighted;\n }\n if (options.todayHighlight !== undefined) {\n this.todayHighlight = options.todayHighlight;\n }\n if (options.weekStart !== undefined) {\n this.weekStart = options.weekStart;\n this.weekEnd = options.weekEnd;\n updateDOW = true;\n }\n if (options.locale) {\n const locale = this.locale = options.locale;\n this.dayNames = locale.daysMin;\n this.switchLabelFormat = locale.titleFormat;\n updateDOW = true;\n }\n if (options.beforeShowDay !== undefined) {\n this.beforeShow = typeof options.beforeShowDay === 'function'\n ? options.beforeShowDay\n : undefined;\n }\n\n if (options.calendarWeeks !== undefined) {\n if (options.calendarWeeks && !this.calendarWeeks) {\n const weeksElem = parseHTML(calendarWeeksTemplate).firstChild;\n this.calendarWeeks = {\n element: weeksElem,\n dow: weeksElem.firstChild,\n weeks: weeksElem.lastChild,\n };\n this.element.insertBefore(weeksElem, this.element.firstChild);\n } else if (this.calendarWeeks && !options.calendarWeeks) {\n this.element.removeChild(this.calendarWeeks.element);\n this.calendarWeeks = null;\n }\n }\n if (options.showDaysOfWeek !== undefined) {\n if (options.showDaysOfWeek) {\n showElement(this.dow);\n if (this.calendarWeeks) {\n showElement(this.calendarWeeks.dow);\n }\n } else {\n hideElement(this.dow);\n if (this.calendarWeeks) {\n hideElement(this.calendarWeeks.dow);\n }\n }\n }\n\n // update days-of-week when locale, daysOfweekDisabled or weekStart is changed\n if (updateDOW) {\n Array.from(this.dow.children).forEach((el, index) => {\n const dow = (this.weekStart + index) % 7;\n el.textContent = this.dayNames[dow];\n el.className = this.daysOfWeekDisabled.includes(dow) ? 'dow disabled' : 'dow';\n });\n }\n }\n\n // Apply update on the focused date to view's settings\n updateFocus() {\n const viewDate = new Date(this.picker.viewDate);\n const viewYear = viewDate.getFullYear();\n const viewMonth = viewDate.getMonth();\n const firstOfMonth = dateValue(viewYear, viewMonth, 1);\n const start = dayOfTheWeekOf(firstOfMonth, this.weekStart, this.weekStart);\n\n this.first = firstOfMonth;\n this.last = dateValue(viewYear, viewMonth + 1, 0);\n this.start = start;\n this.focused = this.picker.viewDate;\n }\n\n // Apply update on the selected dates to view's settings\n updateSelection() {\n const {dates, rangepicker} = this.picker.datepicker;\n this.selected = dates;\n if (rangepicker) {\n this.range = rangepicker.dates;\n }\n }\n\n // Update the entire view UI\n render() {\n // update today marker on ever render\n this.today = this.todayHighlight ? today() : undefined;\n // refresh disabled dates on every render in order to clear the ones added\n // by beforeShow hook at previous render\n this.disabled = [...this.datesDisabled];\n\n const switchLabel = formatDate(this.focused, this.switchLabelFormat, this.locale);\n this.picker.setViewSwitchLabel(switchLabel);\n this.picker.setPrevBtnDisabled(this.first <= this.minDate);\n this.picker.setNextBtnDisabled(this.last >= this.maxDate);\n\n if (this.calendarWeeks) {\n // start of the UTC week (Monday) of the 1st of the month\n const startOfWeek = dayOfTheWeekOf(this.first, 1, 1);\n Array.from(this.calendarWeeks.weeks.children).forEach((el, index) => {\n el.textContent = getWeek(addWeeks(startOfWeek, index));\n });\n }\n Array.from(this.grid.children).forEach((el, index) => {\n const classList = el.classList;\n const current = addDays(this.start, index);\n const date = new Date(current);\n const day = date.getDay();\n\n el.className = `datepicker-cell ${this.cellClass}`;\n el.dataset.date = current;\n el.textContent = date.getDate();\n\n if (current < this.first) {\n classList.add('prev');\n } else if (current > this.last) {\n classList.add('next');\n }\n if (this.today === current) {\n classList.add('today');\n }\n if (current < this.minDate || current > this.maxDate || this.disabled.includes(current)) {\n classList.add('disabled');\n }\n if (this.daysOfWeekDisabled.includes(day)) {\n classList.add('disabled');\n pushUnique(this.disabled, current);\n }\n if (this.daysOfWeekHighlighted.includes(day)) {\n classList.add('highlighted');\n }\n if (this.range) {\n const [rangeStart, rangeEnd] = this.range;\n if (current > rangeStart && current < rangeEnd) {\n classList.add('range');\n }\n if (current === rangeStart) {\n classList.add('range-start');\n }\n if (current === rangeEnd) {\n classList.add('range-end');\n }\n }\n if (this.selected.includes(current)) {\n classList.add('selected');\n }\n if (current === this.focused) {\n classList.add('focused');\n }\n\n if (this.beforeShow) {\n this.performBeforeHook(el, current, current);\n }\n });\n }\n\n // Update the view UI by applying the changes of selected and focused items\n refresh() {\n const [rangeStart, rangeEnd] = this.range || [];\n this.grid\n .querySelectorAll('.range, .range-start, .range-end, .selected, .focused')\n .forEach((el) => {\n el.classList.remove('range', 'range-start', 'range-end', 'selected', 'focused');\n });\n Array.from(this.grid.children).forEach((el) => {\n const current = Number(el.dataset.date);\n const classList = el.classList;\n if (current > rangeStart && current < rangeEnd) {\n classList.add('range');\n }\n if (current === rangeStart) {\n classList.add('range-start');\n }\n if (current === rangeEnd) {\n classList.add('range-end');\n }\n if (this.selected.includes(current)) {\n classList.add('selected');\n }\n if (current === this.focused) {\n classList.add('focused');\n }\n });\n }\n\n // Update the view UI by applying the change of focused item\n refreshFocus() {\n const index = Math.round((this.focused - this.start) / 86400000);\n this.grid.querySelectorAll('.focused').forEach((el) => {\n el.classList.remove('focused');\n });\n this.grid.children[index].classList.add('focused');\n }\n}\n","import {hasProperty, pushUnique, createTagRepeat} from '../../lib/utils.js';\nimport {dateValue} from '../../lib/date.js';\nimport {parseHTML} from '../../lib/dom.js';\nimport View from './View.js';\n\nfunction computeMonthRange(range, thisYear) {\n if (!range || !range[0] || !range[1]) {\n return;\n }\n\n const [[startY, startM], [endY, endM]] = range;\n if (startY > thisYear || endY < thisYear) {\n return;\n }\n return [\n startY === thisYear ? startM : -1,\n endY === thisYear ? endM : 12,\n ];\n}\n\nexport default class MonthsView extends View {\n constructor(picker) {\n super(picker, {\n id: 1,\n name: 'months',\n cellClass: 'month',\n });\n }\n\n init(options, onConstruction = true) {\n if (onConstruction) {\n this.grid = this.element;\n this.element.classList.add('months', 'datepicker-grid');\n this.grid.appendChild(parseHTML(createTagRepeat('span', 12, {'data-month': ix => ix})));\n }\n super.init(options);\n }\n\n setOptions(options) {\n if (options.locale) {\n this.monthNames = options.locale.monthsShort;\n }\n if (hasProperty(options, 'minDate')) {\n if (options.minDate === undefined) {\n this.minYear = this.minMonth = this.minDate = undefined;\n } else {\n const minDateObj = new Date(options.minDate);\n this.minYear = minDateObj.getFullYear();\n this.minMonth = minDateObj.getMonth();\n this.minDate = minDateObj.setDate(1);\n }\n }\n if (hasProperty(options, 'maxDate')) {\n if (options.maxDate === undefined) {\n this.maxYear = this.maxMonth = this.maxDate = undefined;\n } else {\n const maxDateObj = new Date(options.maxDate);\n this.maxYear = maxDateObj.getFullYear();\n this.maxMonth = maxDateObj.getMonth();\n this.maxDate = dateValue(this.maxYear, this.maxMonth + 1, 0);\n }\n }\n if (this.isMinView) {\n if (options.datesDisabled) {\n this.datesDisabled = options.datesDisabled;\n }\n } else {\n this.datesDisabled = [];\n }\n if (options.beforeShowMonth !== undefined) {\n this.beforeShow = typeof options.beforeShowMonth === 'function'\n ? options.beforeShowMonth\n : undefined;\n }\n }\n\n // Update view's settings to reflect the viewDate set on the picker\n updateFocus() {\n const viewDate = new Date(this.picker.viewDate);\n this.year = viewDate.getFullYear();\n this.focused = viewDate.getMonth();\n }\n\n // Update view's settings to reflect the selected dates\n updateSelection() {\n const {dates, rangepicker} = this.picker.datepicker;\n this.selected = dates.reduce((selected, timeValue) => {\n const date = new Date(timeValue);\n const year = date.getFullYear();\n const month = date.getMonth();\n if (selected[year] === undefined) {\n selected[year] = [month];\n } else {\n pushUnique(selected[year], month);\n }\n return selected;\n }, {});\n if (rangepicker && rangepicker.dates) {\n this.range = rangepicker.dates.map(timeValue => {\n const date = new Date(timeValue);\n return isNaN(date) ? undefined : [date.getFullYear(), date.getMonth()];\n });\n }\n }\n\n // Update the entire view UI\n render() {\n // refresh disabled months on every render in order to clear the ones added\n // by beforeShow hook at previous render\n // this.disabled = [...this.datesDisabled];\n this.disabled = this.datesDisabled.reduce((arr, disabled) => {\n const dt = new Date(disabled);\n if (this.year === dt.getFullYear()) {\n arr.push(dt.getMonth());\n }\n return arr;\n }, []);\n\n this.picker.setViewSwitchLabel(this.year);\n this.picker.setPrevBtnDisabled(this.year <= this.minYear);\n this.picker.setNextBtnDisabled(this.year >= this.maxYear);\n\n const selected = this.selected[this.year] || [];\n const yrOutOfRange = this.year < this.minYear || this.year > this.maxYear;\n const isMinYear = this.year === this.minYear;\n const isMaxYear = this.year === this.maxYear;\n const range = computeMonthRange(this.range, this.year);\n\n Array.from(this.grid.children).forEach((el, index) => {\n const classList = el.classList;\n const date = dateValue(this.year, index, 1);\n\n el.className = `datepicker-cell ${this.cellClass}`;\n if (this.isMinView) {\n el.dataset.date = date;\n }\n // reset text on every render to clear the custom content set\n // by beforeShow hook at previous render\n el.textContent = this.monthNames[index];\n\n if (\n yrOutOfRange\n || isMinYear && index < this.minMonth\n || isMaxYear && index > this.maxMonth\n || this.disabled.includes(index)\n ) {\n classList.add('disabled');\n }\n if (range) {\n const [rangeStart, rangeEnd] = range;\n if (index > rangeStart && index < rangeEnd) {\n classList.add('range');\n }\n if (index === rangeStart) {\n classList.add('range-start');\n }\n if (index === rangeEnd) {\n classList.add('range-end');\n }\n }\n if (selected.includes(index)) {\n classList.add('selected');\n }\n if (index === this.focused) {\n classList.add('focused');\n }\n\n if (this.beforeShow) {\n this.performBeforeHook(el, index, date);\n }\n });\n }\n\n // Update the view UI by applying the changes of selected and focused items\n refresh() {\n const selected = this.selected[this.year] || [];\n const [rangeStart, rangeEnd] = computeMonthRange(this.range, this.year) || [];\n this.grid\n .querySelectorAll('.range, .range-start, .range-end, .selected, .focused')\n .forEach((el) => {\n el.classList.remove('range', 'range-start', 'range-end', 'selected', 'focused');\n });\n Array.from(this.grid.children).forEach((el, index) => {\n const classList = el.classList;\n if (index > rangeStart && index < rangeEnd) {\n classList.add('range');\n }\n if (index === rangeStart) {\n classList.add('range-start');\n }\n if (index === rangeEnd) {\n classList.add('range-end');\n }\n if (selected.includes(index)) {\n classList.add('selected');\n }\n if (index === this.focused) {\n classList.add('focused');\n }\n });\n }\n\n // Update the view UI by applying the change of focused item\n refreshFocus() {\n this.grid.querySelectorAll('.focused').forEach((el) => {\n el.classList.remove('focused');\n });\n this.grid.children[this.focused].classList.add('focused');\n }\n}","import {hasProperty, pushUnique, createTagRepeat} from '../../lib/utils.js';\nimport {dateValue, startOfYearPeriod} from '../../lib/date.js';\nimport {parseHTML} from '../../lib/dom.js';\nimport View from './View.js';\n\nfunction toTitleCase(word) {\n return [...word].reduce((str, ch, ix) => str += ix ? ch : ch.toUpperCase(), '');\n}\n\n// Class representing the years and decades view elements\nexport default class YearsView extends View {\n constructor(picker, config) {\n super(picker, config);\n }\n\n init(options, onConstruction = true) {\n if (onConstruction) {\n this.navStep = this.step * 10;\n this.beforeShowOption = `beforeShow${toTitleCase(this.cellClass)}`;\n this.grid = this.element;\n this.element.classList.add(this.name, 'datepicker-grid');\n this.grid.appendChild(parseHTML(createTagRepeat('span', 12)));\n }\n super.init(options);\n }\n\n setOptions(options) {\n if (hasProperty(options, 'minDate')) {\n if (options.minDate === undefined) {\n this.minYear = this.minDate = undefined;\n } else {\n this.minYear = startOfYearPeriod(options.minDate, this.step);\n this.minDate = dateValue(this.minYear, 0, 1);\n }\n }\n if (hasProperty(options, 'maxDate')) {\n if (options.maxDate === undefined) {\n this.maxYear = this.maxDate = undefined;\n } else {\n this.maxYear = startOfYearPeriod(options.maxDate, this.step);\n this.maxDate = dateValue(this.maxYear, 11, 31);\n }\n }\n if (this.isMinView) {\n if (options.datesDisabled) {\n this.datesDisabled = options.datesDisabled;\n }\n } else {\n this.datesDisabled = [];\n }\n if (options[this.beforeShowOption] !== undefined) {\n const beforeShow = options[this.beforeShowOption];\n this.beforeShow = typeof beforeShow === 'function' ? beforeShow : undefined;\n }\n }\n\n // Update view's settings to reflect the viewDate set on the picker\n updateFocus() {\n const viewDate = new Date(this.picker.viewDate);\n const first = startOfYearPeriod(viewDate, this.navStep);\n const last = first + 9 * this.step;\n\n this.first = first;\n this.last = last;\n this.start = first - this.step;\n this.focused = startOfYearPeriod(viewDate, this.step);\n }\n\n // Update view's settings to reflect the selected dates\n updateSelection() {\n const {dates, rangepicker} = this.picker.datepicker;\n this.selected = dates.reduce((years, timeValue) => {\n return pushUnique(years, startOfYearPeriod(timeValue, this.step));\n }, []);\n if (rangepicker && rangepicker.dates) {\n this.range = rangepicker.dates.map(timeValue => {\n if (timeValue !== undefined) {\n return startOfYearPeriod(timeValue, this.step);\n }\n });\n }\n }\n\n // Update the entire view UI\n render() {\n // refresh disabled years on every render in order to clear the ones added\n // by beforeShow hook at previous render\n // this.disabled = [...this.datesDisabled];\n this.disabled = this.datesDisabled.map(disabled => new Date(disabled).getFullYear());\n\n this.picker.setViewSwitchLabel(`${this.first}-${this.last}`);\n this.picker.setPrevBtnDisabled(this.first <= this.minYear);\n this.picker.setNextBtnDisabled(this.last >= this.maxYear);\n\n Array.from(this.grid.children).forEach((el, index) => {\n const classList = el.classList;\n const current = this.start + (index * this.step);\n const date = dateValue(current, 0, 1);\n\n el.className = `datepicker-cell ${this.cellClass}`;\n if (this.isMinView) {\n el.dataset.date = date;\n }\n el.textContent = el.dataset.year = current;\n\n if (index === 0) {\n classList.add('prev');\n } else if (index === 11) {\n classList.add('next');\n }\n if (current < this.minYear || current > this.maxYear || this.disabled.includes(current)) {\n classList.add('disabled');\n }\n if (this.range) {\n const [rangeStart, rangeEnd] = this.range;\n if (current > rangeStart && current < rangeEnd) {\n classList.add('range');\n }\n if (current === rangeStart) {\n classList.add('range-start');\n }\n if (current === rangeEnd) {\n classList.add('range-end');\n }\n }\n if (this.selected.includes(current)) {\n classList.add('selected');\n }\n if (current === this.focused) {\n classList.add('focused');\n }\n\n if (this.beforeShow) {\n this.performBeforeHook(el, current, date);\n }\n });\n }\n\n // Update the view UI by applying the changes of selected and focused items\n refresh() {\n const [rangeStart, rangeEnd] = this.range || [];\n this.grid\n .querySelectorAll('.range, .range-start, .range-end, .selected, .focused')\n .forEach((el) => {\n el.classList.remove('range', 'range-start', 'range-end', 'selected', 'focused');\n });\n Array.from(this.grid.children).forEach((el) => {\n const current = Number(el.textContent);\n const classList = el.classList;\n if (current > rangeStart && current < rangeEnd) {\n classList.add('range');\n }\n if (current === rangeStart) {\n classList.add('range-start');\n }\n if (current === rangeEnd) {\n classList.add('range-end');\n }\n if (this.selected.includes(current)) {\n classList.add('selected');\n }\n if (current === this.focused) {\n classList.add('focused');\n }\n });\n }\n\n // Update the view UI by applying the change of focused item\n refreshFocus() {\n const index = Math.round((this.focused - this.start) / this.step);\n this.grid.querySelectorAll('.focused').forEach((el) => {\n el.classList.remove('focused');\n });\n this.grid.children[index].classList.add('focused');\n }\n}\n","import {limitToRange} from '../lib/utils.js';\nimport {addMonths, addYears} from '../lib/date.js';\n\nexport function triggerDatepickerEvent(datepicker, type) {\n const detail = {\n date: datepicker.getDate(),\n viewDate: new Date(datepicker.picker.viewDate),\n viewId: datepicker.picker.currentView.id,\n datepicker,\n };\n datepicker.element.dispatchEvent(new CustomEvent(type, {detail}));\n}\n\n// direction: -1 (to previous), 1 (to next)\nexport function goToPrevOrNext(datepicker, direction) {\n const {minDate, maxDate} = datepicker.config;\n const {currentView, viewDate} = datepicker.picker;\n let newViewDate;\n switch (currentView.id) {\n case 0:\n newViewDate = addMonths(viewDate, direction);\n break;\n case 1:\n newViewDate = addYears(viewDate, direction);\n break;\n default:\n newViewDate = addYears(viewDate, direction * currentView.navStep);\n }\n newViewDate = limitToRange(newViewDate, minDate, maxDate);\n datepicker.picker.changeFocus(newViewDate).render();\n}\n\nexport function switchView(datepicker) {\n const viewId = datepicker.picker.currentView.id;\n if (viewId === datepicker.config.maxView) {\n return;\n }\n datepicker.picker.changeView(viewId + 1).render();\n}\n\nexport function unfocus(datepicker) {\n if (datepicker.config.updateOnBlur) {\n datepicker.update({revert: true});\n } else {\n datepicker.refresh('input');\n }\n datepicker.hide();\n}\n","import {today, addMonths, addYears} from '../lib/date.js';\nimport {findElementInEventPath} from '../lib/event.js';\nimport {goToPrevOrNext, switchView} from './functions.js';\n\nfunction goToSelectedMonthOrYear(datepicker, selection) {\n const picker = datepicker.picker;\n const viewDate = new Date(picker.viewDate);\n const viewId = picker.currentView.id;\n const newDate = viewId === 1\n ? addMonths(viewDate, selection - viewDate.getMonth())\n : addYears(viewDate, selection - viewDate.getFullYear());\n\n picker.changeFocus(newDate).changeView(viewId - 1).render();\n}\n\nexport function onClickTodayBtn(datepicker) {\n const picker = datepicker.picker;\n const currentDate = today();\n if (datepicker.config.todayBtnMode === 1) {\n if (datepicker.config.autohide) {\n datepicker.setDate(currentDate);\n return;\n }\n datepicker.setDate(currentDate, {render: false});\n picker.update();\n }\n if (picker.viewDate !== currentDate) {\n picker.changeFocus(currentDate);\n }\n picker.changeView(0).render();\n}\n\nexport function onClickClearBtn(datepicker) {\n datepicker.setDate({clear: true});\n}\n\nexport function onClickViewSwitch(datepicker) {\n switchView(datepicker);\n}\n\nexport function onClickPrevBtn(datepicker) {\n goToPrevOrNext(datepicker, -1);\n}\n\nexport function onClickNextBtn(datepicker) {\n goToPrevOrNext(datepicker, 1);\n}\n\n// For the picker's main block to delegete the events from `datepicker-cell`s\nexport function onClickView(datepicker, ev) {\n const target = findElementInEventPath(ev, '.datepicker-cell');\n if (!target || target.classList.contains('disabled')) {\n return;\n }\n\n const {id, isMinView} = datepicker.picker.currentView;\n if (isMinView) {\n datepicker.setDate(Number(target.dataset.date));\n } else if (id === 1) {\n goToSelectedMonthOrYear(datepicker, Number(target.dataset.month));\n } else {\n goToSelectedMonthOrYear(datepicker, Number(target.dataset.year));\n }\n}\n\nexport function onMousedownPicker(ev) {\n ev.preventDefault();\n}\n","import {hasProperty, lastItemOf, isInRange, limitToRange} from '../lib/utils.js';\nimport {today} from '../lib/date.js';\nimport {parseHTML, getParent, showElement, hideElement, emptyChildNodes} from '../lib/dom.js';\nimport {registerListeners} from '../lib/event.js';\nimport pickerTemplate from './templates/pickerTemplate.js';\nimport DaysView from './views/DaysView.js';\nimport MonthsView from './views/MonthsView.js';\nimport YearsView from './views/YearsView.js';\nimport {triggerDatepickerEvent} from '../events/functions.js';\nimport {\n onClickTodayBtn,\n onClickClearBtn,\n onClickViewSwitch,\n onClickPrevBtn,\n onClickNextBtn,\n onClickView,\n onMousedownPicker,\n} from '../events/pickerListeners.js';\n\nconst orientClasses = ['left', 'top', 'right', 'bottom'].reduce((obj, key) => {\n obj[key] = `datepicker-orient-${key}`;\n return obj;\n}, {});\nconst toPx = num => num ? `${num}px` : num;\n\nfunction processPickerOptions(picker, options) {\n if (options.title !== undefined) {\n if (options.title) {\n picker.controls.title.textContent = options.title;\n showElement(picker.controls.title);\n } else {\n picker.controls.title.textContent = '';\n hideElement(picker.controls.title);\n }\n }\n if (options.prevArrow) {\n const prevBtn = picker.controls.prevBtn;\n emptyChildNodes(prevBtn);\n options.prevArrow.forEach((node) => {\n prevBtn.appendChild(node.cloneNode(true));\n });\n }\n if (options.nextArrow) {\n const nextBtn = picker.controls.nextBtn;\n emptyChildNodes(nextBtn);\n options.nextArrow.forEach((node) => {\n nextBtn.appendChild(node.cloneNode(true));\n });\n }\n if (options.locale) {\n picker.controls.todayBtn.textContent = options.locale.today;\n picker.controls.clearBtn.textContent = options.locale.clear;\n }\n if (options.todayBtn !== undefined) {\n if (options.todayBtn) {\n showElement(picker.controls.todayBtn);\n } else {\n hideElement(picker.controls.todayBtn);\n }\n }\n if (hasProperty(options, 'minDate') || hasProperty(options, 'maxDate')) {\n const {minDate, maxDate} = picker.datepicker.config;\n picker.controls.todayBtn.disabled = !isInRange(today(), minDate, maxDate);\n }\n if (options.clearBtn !== undefined) {\n if (options.clearBtn) {\n showElement(picker.controls.clearBtn);\n } else {\n hideElement(picker.controls.clearBtn);\n }\n }\n}\n\n// Compute view date to reset, which will be...\n// - the last item of the selected dates or defaultViewDate if no selection\n// - limitted to minDate or maxDate if it exceeds the range\nfunction computeResetViewDate(datepicker) {\n const {dates, config} = datepicker;\n const viewDate = dates.length > 0 ? lastItemOf(dates) : config.defaultViewDate;\n return limitToRange(viewDate, config.minDate, config.maxDate);\n}\n\n// Change current view's view date\nfunction setViewDate(picker, newDate) {\n const oldViewDate = new Date(picker.viewDate);\n const newViewDate = new Date(newDate);\n const {id, year, first, last} = picker.currentView;\n const viewYear = newViewDate.getFullYear();\n\n picker.viewDate = newDate;\n if (viewYear !== oldViewDate.getFullYear()) {\n triggerDatepickerEvent(picker.datepicker, 'changeYear');\n }\n if (newViewDate.getMonth() !== oldViewDate.getMonth()) {\n triggerDatepickerEvent(picker.datepicker, 'changeMonth');\n }\n\n // return whether the new date is in different period on time from the one\n // displayed in the current view\n // when true, the view needs to be re-rendered on the next UI refresh.\n switch (id) {\n case 0:\n return newDate < first || newDate > last;\n case 1:\n return viewYear !== year;\n default:\n return viewYear < first || viewYear > last;\n }\n}\n\nfunction getTextDirection(el) {\n return window.getComputedStyle(el).direction;\n}\n\n// find the closet scrollable ancestor elemnt under the body\nfunction findScrollParents(el) {\n const parent = getParent(el);\n if (parent === document.body || !parent) {\n return;\n }\n\n // checking overflow only is enough because computed overflow cannot be\n // visible or a combination of visible and other when either axis is set\n // to other than visible.\n // (Setting one axis to other than 'visible' while the other is 'visible'\n // results in the other axis turning to 'auto')\n return window.getComputedStyle(parent).overflow !== 'visible'\n ? parent\n : findScrollParents(parent);\n}\n\n// Class representing the picker UI\nexport default class Picker {\n constructor(datepicker) {\n const {config} = this.datepicker = datepicker;\n\n const template = pickerTemplate.replace(/%buttonClass%/g, config.buttonClass);\n const element = this.element = parseHTML(template).firstChild;\n const [header, main, footer] = element.firstChild.children;\n const title = header.firstElementChild;\n const [prevBtn, viewSwitch, nextBtn] = header.lastElementChild.children;\n const [todayBtn, clearBtn] = footer.firstChild.children;\n const controls = {\n title,\n prevBtn,\n viewSwitch,\n nextBtn,\n todayBtn,\n clearBtn,\n };\n this.main = main;\n this.controls = controls;\n\n const elementClass = datepicker.inline ? 'inline' : 'dropdown';\n element.classList.add(`datepicker-${elementClass}`);\n\n processPickerOptions(this, config);\n this.viewDate = computeResetViewDate(datepicker);\n\n // set up event listeners\n registerListeners(datepicker, [\n [element, 'mousedown', onMousedownPicker],\n [main, 'click', onClickView.bind(null, datepicker)],\n [controls.viewSwitch, 'click', onClickViewSwitch.bind(null, datepicker)],\n [controls.prevBtn, 'click', onClickPrevBtn.bind(null, datepicker)],\n [controls.nextBtn, 'click', onClickNextBtn.bind(null, datepicker)],\n [controls.todayBtn, 'click', onClickTodayBtn.bind(null, datepicker)],\n [controls.clearBtn, 'click', onClickClearBtn.bind(null, datepicker)],\n ]);\n\n // set up views\n this.views = [\n new DaysView(this),\n new MonthsView(this),\n new YearsView(this, {id: 2, name: 'years', cellClass: 'year', step: 1}),\n new YearsView(this, {id: 3, name: 'decades', cellClass: 'decade', step: 10}),\n ];\n this.currentView = this.views[config.startView];\n\n this.currentView.render();\n this.main.appendChild(this.currentView.element);\n if (config.container) {\n config.container.appendChild(this.element);\n } else {\n datepicker.inputField.after(this.element);\n }\n }\n\n setOptions(options) {\n processPickerOptions(this, options);\n this.views.forEach((view) => {\n view.init(options, false);\n });\n this.currentView.render();\n }\n\n detach() {\n this.element.remove();\n }\n\n show() {\n if (this.active) {\n return;\n }\n\n const {datepicker, element} = this;\n if (datepicker.inline) {\n element.classList.add('active');\n } else {\n // ensure picker's direction matches input's\n const inputDirection = getTextDirection(datepicker.inputField);\n if (inputDirection !== getTextDirection(getParent(element))) {\n element.dir = inputDirection;\n } else if (element.dir) {\n element.removeAttribute('dir');\n }\n\n element.style.visiblity = 'hidden';\n element.classList.add('active');\n this.place();\n element.style.visiblity = '';\n\n if (datepicker.config.disableTouchKeyboard) {\n datepicker.inputField.blur();\n }\n }\n this.active = true;\n triggerDatepickerEvent(datepicker, 'show');\n }\n\n hide() {\n if (!this.active) {\n return;\n }\n this.datepicker.exitEditMode();\n this.element.classList.remove('active');\n this.active = false;\n triggerDatepickerEvent(this.datepicker, 'hide');\n }\n\n place() {\n const {classList, offsetParent, style} = this.element;\n const {config, inputField} = this.datepicker;\n const {\n width: calendarWidth,\n height: calendarHeight,\n } = this.element.getBoundingClientRect();\n const {\n left: inputLeft,\n top: inputTop,\n right: inputRight,\n bottom: inputBottom,\n width: inputWidth,\n height: inputHeight\n } = inputField.getBoundingClientRect();\n let {x: orientX, y: orientY} = config.orientation;\n let left = inputLeft;\n let top = inputTop;\n\n // caliculate offsetLeft/Top of inputField\n if (offsetParent === document.body || !offsetParent) {\n left += window.scrollX;\n top += window.scrollY;\n } else {\n const offsetParentRect = offsetParent.getBoundingClientRect();\n left -= offsetParentRect.left - offsetParent.scrollLeft;\n top -= offsetParentRect.top - offsetParent.scrollTop;\n }\n\n // caliculate the boundaries of the visible area that contains inputField\n const scrollParent = findScrollParents(inputField);\n let scrollAreaLeft = 0;\n let scrollAreaTop = 0;\n let {\n clientWidth: scrollAreaRight,\n clientHeight: scrollAreaBottom,\n } = document.documentElement;\n\n if (scrollParent) {\n const scrollParentRect = scrollParent.getBoundingClientRect();\n if (scrollParentRect.top > 0) {\n scrollAreaTop = scrollParentRect.top;\n }\n if (scrollParentRect.left > 0) {\n scrollAreaLeft = scrollParentRect.left;\n }\n if (scrollParentRect.right < scrollAreaRight) {\n scrollAreaRight = scrollParentRect.right;\n }\n if (scrollParentRect.bottom < scrollAreaBottom) {\n scrollAreaBottom = scrollParentRect.bottom;\n }\n }\n\n // determine the horizontal orientation and left position\n let adjustment = 0;\n if (orientX === 'auto') {\n if (inputLeft < scrollAreaLeft) {\n orientX = 'left';\n adjustment = scrollAreaLeft - inputLeft;\n } else if (inputLeft + calendarWidth > scrollAreaRight) {\n orientX = 'right';\n if (scrollAreaRight < inputRight) {\n adjustment = scrollAreaRight - inputRight;\n }\n } else if (getTextDirection(inputField) === 'rtl') {\n orientX = inputRight - calendarWidth < scrollAreaLeft ? 'left' : 'right';\n } else {\n orientX = 'left';\n }\n }\n if (orientX === 'right') {\n left += inputWidth - calendarWidth;\n }\n left += adjustment;\n\n // determine the vertical orientation and top position\n if (orientY === 'auto') {\n if (inputTop - calendarHeight > scrollAreaTop) {\n orientY = inputBottom + calendarHeight > scrollAreaBottom ? 'top' : 'bottom';\n } else {\n orientY = 'bottom';\n }\n }\n if (orientY === 'top') {\n top -= calendarHeight;\n } else {\n top += inputHeight;\n }\n\n classList.remove(...Object.values(orientClasses));\n classList.add(orientClasses[orientX], orientClasses[orientY]);\n\n style.left = toPx(left);\n style.top = toPx(top);\n }\n\n setViewSwitchLabel(labelText) {\n this.controls.viewSwitch.textContent = labelText;\n }\n\n setPrevBtnDisabled(disabled) {\n this.controls.prevBtn.disabled = disabled;\n }\n\n setNextBtnDisabled(disabled) {\n this.controls.nextBtn.disabled = disabled;\n }\n\n changeView(viewId) {\n const oldView = this.currentView;\n const newView = this.views[viewId];\n if (newView.id !== oldView.id) {\n this.currentView = newView;\n this._renderMethod = 'render';\n triggerDatepickerEvent(this.datepicker, 'changeView');\n this.main.replaceChild(newView.element, oldView.element);\n }\n return this;\n }\n\n // Change the focused date (view date)\n changeFocus(newViewDate) {\n this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refreshFocus';\n this.views.forEach((view) => {\n view.updateFocus();\n });\n return this;\n }\n\n // Apply the change of the selected dates\n update() {\n const newViewDate = computeResetViewDate(this.datepicker);\n this._renderMethod = setViewDate(this, newViewDate) ? 'render' : 'refresh';\n this.views.forEach((view) => {\n view.updateFocus();\n view.updateSelection();\n });\n return this;\n }\n\n // Refresh the picker UI\n render(quickRender = true) {\n const renderMethod = (quickRender && this._renderMethod) || 'render';\n delete this._renderMethod;\n\n this.currentView[renderMethod]();\n }\n}\n","import {isInRange} from '../lib/utils.js';\nimport {isActiveElement} from '../lib/dom.js';\nimport {addDays, addMonths, addYears, startOfYearPeriod} from '../lib/date.js';\nimport {goToPrevOrNext, switchView, unfocus} from './functions.js';\n\n// Find the closest date that doesn't meet the condition for unavailable date\n// Returns undefined if no available date is found\n// addFn: function to calculate the next date\n// - args: time value, amount\n// increase: amount to pass to addFn\n// testFn: function to test the unavailablity of the date\n// - args: time value; retun: true if unavailable\nfunction findNextAvailableOne(date, addFn, increase, testFn, min, max) {\n if (!isInRange(date, min, max)) {\n return;\n }\n if (testFn(date)) {\n const newDate = addFn(date, increase);\n return findNextAvailableOne(newDate, addFn, increase, testFn, min, max);\n }\n return date;\n}\n\n// direction: -1 (left/up), 1 (right/down)\n// vertical: true for up/down, false for left/right\nfunction moveByArrowKey(datepicker, ev, direction, vertical) {\n const picker = datepicker.picker;\n const currentView = picker.currentView;\n const step = currentView.step || 1;\n let viewDate = picker.viewDate;\n let addFn;\n let testFn;\n switch (currentView.id) {\n case 0:\n if (vertical) {\n viewDate = addDays(viewDate, direction * 7);\n } else if (ev.ctrlKey || ev.metaKey) {\n viewDate = addYears(viewDate, direction);\n } else {\n viewDate = addDays(viewDate, direction);\n }\n addFn = addDays;\n testFn = (date) => currentView.disabled.includes(date);\n break;\n case 1:\n viewDate = addMonths(viewDate, vertical ? direction * 4 : direction);\n addFn = addMonths;\n testFn = (date) => {\n const dt = new Date(date);\n const {year, disabled} = currentView;\n return dt.getFullYear() === year && disabled.includes(dt.getMonth());\n };\n break;\n default:\n viewDate = addYears(viewDate, direction * (vertical ? 4 : 1) * step);\n addFn = addYears;\n testFn = date => currentView.disabled.includes(startOfYearPeriod(date, step));\n }\n viewDate = findNextAvailableOne(\n viewDate,\n addFn,\n direction < 0 ? -step : step,\n testFn,\n currentView.minDate,\n currentView.maxDate\n );\n if (viewDate !== undefined) {\n picker.changeFocus(viewDate).render();\n }\n}\n\nexport function onKeydown(datepicker, ev) {\n const key = ev.key;\n if (key === 'Tab') {\n unfocus(datepicker);\n return;\n }\n\n const picker = datepicker.picker;\n const {id, isMinView} = picker.currentView;\n if (!picker.active) {\n if (key === 'ArrowDown') {\n picker.show();\n } else {\n if (key === 'Enter') {\n datepicker.update();\n } else if (key === 'Escape') {\n picker.show();\n }\n return;\n }\n } else if (datepicker.editMode) {\n if (key === 'Enter') {\n datepicker.exitEditMode({update: true, autohide: datepicker.config.autohide});\n } else if (key === 'Escape') {\n picker.hide();\n }\n return;\n } else {\n if (key === 'ArrowLeft') {\n if (ev.ctrlKey || ev.metaKey) {\n goToPrevOrNext(datepicker, -1);\n } else if (ev.shiftKey) {\n datepicker.enterEditMode();\n return;\n } else {\n moveByArrowKey(datepicker, ev, -1, false);\n }\n } else if (key === 'ArrowRight') {\n if (ev.ctrlKey || ev.metaKey) {\n goToPrevOrNext(datepicker, 1);\n } else if (ev.shiftKey) {\n datepicker.enterEditMode();\n return;\n } else {\n moveByArrowKey(datepicker, ev, 1, false);\n }\n } else if (key === 'ArrowUp') {\n if (ev.ctrlKey || ev.metaKey) {\n switchView(datepicker);\n } else if (ev.shiftKey) {\n datepicker.enterEditMode();\n return;\n } else {\n moveByArrowKey(datepicker, ev, -1, true);\n }\n } else if (key === 'ArrowDown') {\n if (ev.shiftKey && !ev.ctrlKey && !ev.metaKey) {\n datepicker.enterEditMode();\n return;\n }\n moveByArrowKey(datepicker, ev, 1, true);\n } else if (key === 'Enter') {\n if (isMinView) {\n datepicker.setDate(picker.viewDate);\n return;\n }\n picker.changeView(id - 1).render();\n } else {\n if (key === 'Escape') {\n picker.hide();\n } else if (\n key === 'Backspace'\n || key === 'Delete'\n || (key.length === 1 && !ev.ctrlKey && !ev.metaKey)\n ) {\n datepicker.enterEditMode();\n }\n return;\n }\n }\n ev.preventDefault();\n}\n\nexport function onFocus(datepicker) {\n if (datepicker.config.showOnFocus && !datepicker._showing) {\n datepicker.show();\n }\n}\n\n// for the prevention for entering edit mode while getting focus on click\nexport function onMousedown(datepicker, ev) {\n const el = ev.target;\n if (datepicker.picker.active || datepicker.config.showOnClick) {\n el._active = isActiveElement(el);\n el._clicking = setTimeout(() => {\n delete el._active;\n delete el._clicking;\n }, 2000);\n }\n}\n\nexport function onClickInput(datepicker, ev) {\n const el = ev.target;\n if (!el._clicking) {\n return;\n }\n clearTimeout(el._clicking);\n delete el._clicking;\n\n if (el._active) {\n datepicker.enterEditMode();\n }\n delete el._active;\n\n if (datepicker.config.showOnClick) {\n datepicker.show();\n }\n}\n\nexport function onPaste(datepicker, ev) {\n if (ev.clipboardData.types.includes('text/plain')) {\n datepicker.enterEditMode();\n }\n}\n","import {isActiveElement} from '../lib/dom.js';\nimport {findElementInEventPath} from '../lib/event.js';\nimport {unfocus} from './functions.js';\n\n// for the `document` to delegate the events from outside the picker/input field\nexport function onClickOutside(datepicker, ev) {\n const {element, picker} = datepicker;\n // check both picker's and input's activeness to make updateOnBlur work in\n // the cases where...\n // - picker is hidden by ESC key press → input stays focused\n // - input is unfocused by closing mobile keyboard → piker is kept shown\n if (!picker.active && !isActiveElement(element)) {\n return;\n }\n const pickerElem = picker.element;\n if (findElementInEventPath(ev, el => el === element || el === pickerElem)) {\n return;\n }\n unfocus(datepicker);\n}\n","import {lastItemOf, stringToArray, isInRange} from './lib/utils.js';\nimport {today, regularizeDate} from './lib/date.js';\nimport {parseDate, formatDate} from './lib/date-format.js';\nimport {isActiveElement} from './lib/dom.js';\nimport {registerListeners, unregisterListeners} from './lib/event.js';\nimport {locales} from './i18n/base-locales.js';\nimport defaultOptions from './options/defaultOptions.js';\nimport processOptions from './options/processOptions.js';\nimport Picker from './picker/Picker.js';\nimport {triggerDatepickerEvent} from './events/functions.js';\nimport {onKeydown, onFocus, onMousedown, onClickInput, onPaste} from './events/inputFieldListeners.js';\nimport {onClickOutside} from './events/otherListeners.js';\n\nfunction stringifyDates(dates, config) {\n return dates\n .map(dt => formatDate(dt, config.format, config.locale))\n .join(config.dateDelimiter);\n}\n\n// parse input dates and create an array of time values for selection\n// returns undefined if there are no valid dates in inputDates\n// when origDates (current selection) is passed, the function works to mix\n// the input dates into the current selection\nfunction processInputDates(datepicker, inputDates, clear = false) {\n // const {config, dates: origDates, rangepicker} = datepicker;\n const {config, dates: origDates, rangeSideIndex} = datepicker;\n if (inputDates.length === 0) {\n // empty input is considered valid unless origiDates is passed\n return clear ? [] : undefined;\n }\n\n // const rangeEnd = rangepicker && datepicker === rangepicker.datepickers[1];\n let newDates = inputDates.reduce((dates, dt) => {\n let date = parseDate(dt, config.format, config.locale);\n if (date === undefined) {\n return dates;\n }\n // adjust to 1st of the month/Jan 1st of the year\n // or to the last day of the monh/Dec 31st of the year if the datepicker\n // is the range-end picker of a rangepicker\n date = regularizeDate(date, config.pickLevel, rangeSideIndex);\n if (\n isInRange(date, config.minDate, config.maxDate)\n && !dates.includes(date)\n && !config.datesDisabled.includes(date)\n && (config.pickLevel > 0 || !config.daysOfWeekDisabled.includes(new Date(date).getDay()))\n ) {\n dates.push(date);\n }\n return dates;\n }, []);\n if (newDates.length === 0) {\n return;\n }\n if (config.multidate && !clear) {\n // get the synmetric difference between origDates and newDates\n newDates = newDates.reduce((dates, date) => {\n if (!origDates.includes(date)) {\n dates.push(date);\n }\n return dates;\n }, origDates.filter(date => !newDates.includes(date)));\n }\n // do length check always because user can input multiple dates regardless of the mode\n return config.maxNumberOfDates && newDates.length > config.maxNumberOfDates\n ? newDates.slice(config.maxNumberOfDates * -1)\n : newDates;\n}\n\n// refresh the UI elements\n// modes: 1: input only, 2, picker only, 3 both\nfunction refreshUI(datepicker, mode = 3, quickRender = true) {\n const {config, picker, inputField} = datepicker;\n if (mode & 2) {\n const newView = picker.active ? config.pickLevel : config.startView;\n picker.update().changeView(newView).render(quickRender);\n }\n if (mode & 1 && inputField) {\n inputField.value = stringifyDates(datepicker.dates, config);\n }\n}\n\nfunction setDate(datepicker, inputDates, options) {\n let {clear, render, autohide, revert} = options;\n if (render === undefined) {\n render = true;\n }\n if (!render) {\n autohide = false;\n } else if (autohide === undefined) {\n autohide = datepicker.config.autohide;\n }\n\n const newDates = processInputDates(datepicker, inputDates, clear);\n if (!newDates && !revert) {\n return;\n }\n if (newDates && newDates.toString() !== datepicker.dates.toString()) {\n datepicker.dates = newDates;\n refreshUI(datepicker, render ? 3 : 1);\n triggerDatepickerEvent(datepicker, 'changeDate');\n } else {\n refreshUI(datepicker, 1);\n }\n\n if (autohide) {\n datepicker.hide();\n }\n}\n\n/**\n * Class representing a date picker\n */\nexport default class Datepicker {\n /**\n * Create a date picker\n * @param {Element} element - element to bind a date picker\n * @param {Object} [options] - config options\n * @param {DateRangePicker} [rangepicker] - DateRangePicker instance the\n * date picker belongs to. Use this only when creating date picker as a part\n * of date range picker\n */\n constructor(element, options = {}, rangepicker = undefined) {\n element.datepicker = this;\n this.element = element;\n\n const config = this.config = Object.assign({\n buttonClass: (options.buttonClass && String(options.buttonClass)) || 'button',\n container: null,\n defaultViewDate: today(),\n maxDate: undefined,\n minDate: undefined,\n }, processOptions(defaultOptions, this));\n // configure by type\n const inline = this.inline = element.tagName !== 'INPUT';\n let inputField;\n if (inline) {\n config.container = element;\n } else {\n if (options.container) {\n // omit string type check because it doesn't guarantee to avoid errors\n // (invalid selector string causes abend with sytax error)\n config.container = options.container instanceof HTMLElement\n ? options.container\n : document.querySelector(options.container);\n }\n inputField = this.inputField = element;\n inputField.classList.add('datepicker-input');\n }\n if (rangepicker) {\n // check validiry\n const index = rangepicker.inputs.indexOf(inputField);\n const datepickers = rangepicker.datepickers;\n if (index < 0 || index > 1 || !Array.isArray(datepickers)) {\n throw Error('Invalid rangepicker object.');\n }\n // attach itaelf to the rangepicker here so that processInputDates() can\n // determine if this is the range-end picker of the rangepicker while\n // setting inital values when pickLevel > 0\n datepickers[index] = this;\n // add getter for rangepicker\n Object.defineProperty(this, 'rangepicker', {\n get() {\n return rangepicker;\n },\n });\n Object.defineProperty(this, 'rangeSideIndex', {\n get() {\n return index;\n },\n });\n }\n\n // set up config\n this._options = options;\n Object.assign(config, processOptions(options, this));\n\n // set initial dates\n let initialDates;\n if (inline) {\n initialDates = stringToArray(element.dataset.date, config.dateDelimiter);\n delete element.dataset.date;\n } else {\n initialDates = stringToArray(inputField.value, config.dateDelimiter);\n }\n this.dates = [];\n // process initial value\n const inputDateValues = processInputDates(this, initialDates);\n if (inputDateValues && inputDateValues.length > 0) {\n this.dates = inputDateValues;\n }\n if (inputField) {\n inputField.value = stringifyDates(this.dates, config);\n }\n\n const picker = this.picker = new Picker(this);\n\n if (inline) {\n this.show();\n } else {\n // set up event listeners in other modes\n const onMousedownDocument = onClickOutside.bind(null, this);\n const listeners = [\n [inputField, 'keydown', onKeydown.bind(null, this)],\n [inputField, 'focus', onFocus.bind(null, this)],\n [inputField, 'mousedown', onMousedown.bind(null, this)],\n [inputField, 'click', onClickInput.bind(null, this)],\n [inputField, 'paste', onPaste.bind(null, this)],\n [document, 'mousedown', onMousedownDocument],\n [document, 'touchstart', onMousedownDocument],\n [window, 'resize', picker.place.bind(picker)]\n ];\n registerListeners(this, listeners);\n }\n }\n\n /**\n * Format Date object or time value in given format and language\n * @param {Date|Number} date - date or time value to format\n * @param {String|Object} format - format string or object that contains\n * toDisplay() custom formatter, whose signature is\n * - args:\n * - date: {Date} - Date instance of the date passed to the method\n * - format: {Object} - the format object passed to the method\n * - locale: {Object} - locale for the language specified by `lang`\n * - return:\n * {String} formatted date\n * @param {String} [lang=en] - language code for the locale to use\n * @return {String} formatted date\n */\n static formatDate(date, format, lang) {\n return formatDate(date, format, lang && locales[lang] || locales.en);\n }\n\n /**\n * Parse date string\n * @param {String|Date|Number} dateStr - date string, Date object or time\n * value to parse\n * @param {String|Object} format - format string or object that contains\n * toValue() custom parser, whose signature is\n * - args:\n * - dateStr: {String|Date|Number} - the dateStr passed to the method\n * - format: {Object} - the format object passed to the method\n * - locale: {Object} - locale for the language specified by `lang`\n * - return:\n * {Date|Number} parsed date or its time value\n * @param {String} [lang=en] - language code for the locale to use\n * @return {Number} time value of parsed date\n */\n static parseDate(dateStr, format, lang) {\n return parseDate(dateStr, format, lang && locales[lang] || locales.en);\n }\n\n /**\n * @type {Object} - Installed locales in `[languageCode]: localeObject` format\n * en`:_English (US)_ is pre-installed.\n */\n static get locales() {\n return locales;\n }\n\n /**\n * @type {Boolean} - Whether the picker element is shown. `true` whne shown\n */\n get active() {\n return !!(this.picker && this.picker.active);\n }\n\n /**\n * @type {HTMLDivElement} - DOM object of picker element\n */\n get pickerElement() {\n return this.picker ? this.picker.element : undefined;\n }\n\n /**\n * Set new values to the config options\n * @param {Object} options - config options to update\n */\n setOptions(options) {\n const picker = this.picker;\n const newOptions = processOptions(options, this);\n Object.assign(this._options, options);\n Object.assign(this.config, newOptions);\n picker.setOptions(newOptions);\n\n refreshUI(this, 3);\n }\n\n /**\n * Show the picker element\n */\n show() {\n if (this.inputField) {\n if (this.inputField.disabled) {\n return;\n }\n if (!isActiveElement(this.inputField) && !this.config.disableTouchKeyboard) {\n this._showing = true;\n this.inputField.focus();\n delete this._showing;\n }\n }\n this.picker.show();\n }\n\n /**\n * Hide the picker element\n * Not available on inline picker\n */\n hide() {\n if (this.inline) {\n return;\n }\n this.picker.hide();\n this.picker.update().changeView(this.config.startView).render();\n }\n\n /**\n * Destroy the Datepicker instance\n * @return {Detepicker} - the instance destroyed\n */\n destroy() {\n this.hide();\n unregisterListeners(this);\n this.picker.detach();\n if (!this.inline) {\n this.inputField.classList.remove('datepicker-input');\n }\n delete this.element.datepicker;\n return this;\n }\n\n /**\n * Get the selected date(s)\n *\n * The method returns a Date object of selected date by default, and returns\n * an array of selected dates in multidate mode. If format string is passed,\n * it returns date string(s) formatted in given format.\n *\n * @param {String} [format] - Format string to stringify the date(s)\n * @return {Date|String|Date[]|String[]} - selected date(s), or if none is\n * selected, empty array in multidate mode and untitled in sigledate mode\n */\n getDate(format = undefined) {\n const callback = format\n ? date => formatDate(date, format, this.config.locale)\n : date => new Date(date);\n\n if (this.config.multidate) {\n return this.dates.map(callback);\n }\n if (this.dates.length > 0) {\n return callback(this.dates[0]);\n }\n }\n\n /**\n * Set selected date(s)\n *\n * In multidate mode, you can pass multiple dates as a series of arguments\n * or an array. (Since each date is parsed individually, the type of the\n * dates doesn't have to be the same.)\n * The given dates are used to toggle the select status of each date. The\n * number of selected dates is kept from exceeding the length set to\n * maxNumberOfDates.\n *\n * With clear: true option, the method can be used to clear the selection\n * and to replace the selection instead of toggling in multidate mode.\n * If the option is passed with no date arguments or an empty dates array,\n * it works as \"clear\" (clear the selection then set nothing), and if the\n * option is passed with new dates to select, it works as \"replace\" (clear\n * the selection then set the given dates)\n *\n * When render: false option is used, the method omits re-rendering the\n * picker element. In this case, you need to call refresh() method later in\n * order for the picker element to reflect the changes. The input field is\n * refreshed always regardless of this option.\n *\n * When invalid (unparsable, repeated, disabled or out-of-range) dates are\n * passed, the method ignores them and applies only valid ones. In the case\n * that all the given dates are invalid, which is distinguished from passing\n * no dates, the method considers it as an error and leaves the selection\n * untouched. (The input field also remains untouched unless revert: true\n * option is used.)\n *\n * @param {...(Date|Number|String)|Array} [dates] - Date strings, Date\n * objects, time values or mix of those for new selection\n * @param {Object} [options] - function options\n * - clear: {boolean} - Whether to clear the existing selection\n * defualt: false\n * - render: {boolean} - Whether to re-render the picker element\n * default: true\n * - autohide: {boolean} - Whether to hide the picker element after re-render\n * Ignored when used with render: false\n * default: config.autohide\n * - revert: {boolean} - Whether to refresh the input field when all the\n * passed dates are invalid\n * default: false\n */\n setDate(...args) {\n const dates = [...args];\n const opts = {};\n const lastArg = lastItemOf(args);\n if (\n typeof lastArg === 'object'\n && !Array.isArray(lastArg)\n && !(lastArg instanceof Date)\n && lastArg\n ) {\n Object.assign(opts, dates.pop());\n }\n\n const inputDates = Array.isArray(dates[0]) ? dates[0] : dates;\n setDate(this, inputDates, opts);\n }\n\n /**\n * Update the selected date(s) with input field's value\n * Not available on inline picker\n *\n * The input field will be refreshed with properly formatted date string.\n *\n * In the case that all the entered dates are invalid (unparsable, repeated,\n * disabled or out-of-range), whixh is distinguished from empty input field,\n * the method leaves the input field untouched as well as the selection by\n * default. If revert: true option is used in this case, the input field is\n * refreshed with the existing selection.\n *\n * @param {Object} [options] - function options\n * - autohide: {boolean} - whether to hide the picker element after refresh\n * default: false\n * - revert: {boolean} - Whether to refresh the input field when all the\n * passed dates are invalid\n * default: false\n */\n update(options = undefined) {\n if (this.inline) {\n return;\n }\n\n const opts = Object.assign(options || {}, {clear: true, render: true});\n const inputDates = stringToArray(this.inputField.value, this.config.dateDelimiter);\n setDate(this, inputDates, opts);\n }\n\n /**\n * Refresh the picker element and the associated input field\n * @param {String} [target] - target item when refreshing one item only\n * 'picker' or 'input'\n * @param {Boolean} [forceRender] - whether to re-render the picker element\n * regardless of its state instead of optimized refresh\n */\n refresh(target = undefined, forceRender = false) {\n if (target && typeof target !== 'string') {\n forceRender = target;\n target = undefined;\n }\n\n let mode;\n if (target === 'picker') {\n mode = 2;\n } else if (target === 'input') {\n mode = 1;\n } else {\n mode = 3;\n }\n refreshUI(this, mode, !forceRender);\n }\n\n /**\n * Enter edit mode\n * Not available on inline picker or when the picker element is hidden\n */\n enterEditMode() {\n if (this.inline || !this.picker.active || this.editMode) {\n return;\n }\n this.editMode = true;\n this.inputField.classList.add('in-edit');\n }\n\n /**\n * Exit from edit mode\n * Not available on inline picker\n * @param {Object} [options] - function options\n * - update: {boolean} - whether to call update() after exiting\n * If false, input field is revert to the existing selection\n * default: false\n */\n exitEditMode(options = undefined) {\n if (this.inline || !this.editMode) {\n return;\n }\n const opts = Object.assign({update: false}, options);\n delete this.editMode;\n this.inputField.classList.remove('in-edit');\n if (opts.update) {\n this.update(opts);\n }\n }\n}\n","@import '../../../theme.scss';\n\n@import 'node_modules/vanillajs-datepicker/sass/datepicker';\n\nverdocs-field-date {\n font-family: $verdocs-primary-font;\n width: 64px;\n height: 15px;\n display: block;\n font-size: 11px;\n position: relative;\n letter-spacing: 0.3px;\n background-color: transparent;\n transform-origin: bottom left;\n\n input {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n border: 1px solid #ccc;\n appearance: none;\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n input {\n border: 1px solid var(--verdocs-required-color);\n }\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","// @ts-ignore\nimport {Datepicker} from 'vanillajs-datepicker';\nimport {Component, Event, EventEmitter, h, Host, Method, Prop, State} from '@stencil/core';\n\n/**\n * Displays a date field. When tapped or clicked, the input element will display a date picker component.\n */\n@Component({\n tag: 'verdocs-field-date',\n styleUrl: 'verdocs-field-date.scss',\n shadow: false,\n})\nexport class VerdocsFieldDate {\n private el: HTMLInputElement;\n\n /**\n * A placeholder to assist the user in completing the field.\n */\n @Prop() placeholder: string = 'Select Date';\n\n /**\n * Sets the tabIndex of the input element.\n */\n @Prop() order: number = 1;\n\n /**\n * Sets the value of the input element.\n */\n @Prop() value: string = '';\n\n /**\n * If true, the field will be marked required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Sets the disabled attribute of the input element.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Event fired when the input field loses focus.\n */\n @Event({composed: true}) fieldFocus: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field gains focus.\n */\n @Event({composed: true}) fieldBlur: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field value changes. Note that this will only be fired on blur, tab-out, ENTER key press, etc.\n * It is generally the best event to subscribe to than `input` for most cases EXCEPT autocomplete fields that need to see every\n * keypress.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n /**\n * Event fired on every character entered into / deleted from the field.\n */\n @Event({composed: true}) fieldInput: EventEmitter<string>;\n\n @State() focused = false;\n\n @Method() async focusField() {\n this.focused = true;\n this.el.focus();\n this.fieldFocus.emit(true);\n }\n\n componentDidLoad() {\n new Datepicker(this.el, {\n autohide: true,\n todayHighlight: true,\n });\n\n this.el.addEventListener('changeDate', (e: any) => {\n console.log('changeDate', e.detail.date.toISOString());\n });\n }\n\n handleBlur() {\n this.focused = false;\n this.fieldBlur.emit(true);\n }\n\n handleFocus() {\n this.focused = true;\n this.fieldFocus.emit(true);\n }\n\n handleChange(e: any) {\n this.fieldChange.emit(e.target.value);\n }\n\n handleInput(e: any) {\n this.fieldInput.emit(e.target.value);\n }\n\n // NOTE: We don't use a \"date\" field here because browsers vary widely in their formatting of it.\n render() {\n return (\n <Host class={{focused: this.focused, required: this.required, storybook: !!window?.['STORYBOOK_ENV']}}>\n <input\n type=\"text\"\n value=\"\"\n placeholder={this.placeholder}\n required={this.required}\n ref={el => (this.el = el)}\n onBlur={() => this.handleBlur()}\n onFocus={() => this.handleFocus()}\n onChange={e => this.handleChange(e)}\n onInput={e => this.handleInput(e)}\n />\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-field-dropdown {\n font-family: $verdocs-primary-font;\n width: 85px;\n height: 20px;\n display: block;\n font-size: 11px;\n position: relative;\n background-color: transparent;\n transform-origin: bottom left;\n\n select {\n position: absolute;\n background: linear-gradient(55deg, transparent 50%, #333 50%), linear-gradient(125deg, #333 50%, transparent 50%), linear-gradient(to right, transparent, transparent);\n background-position: calc(100% - 7px) 4px, calc(100% - 3px) 4px, 100% 0;\n background-size: 5px 5px, 5px 5px, 2.5em 2.5em;\n background-repeat: no-repeat;\n appearance: none;\n\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n font-size: 11px;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n &:focus {\n outline: none;\n }\n\n &.hide {\n display: none;\n }\n }\n\n //select {\n // position: absolute;\n // font-family: Arial, sans-serif;\n // background: linear-gradient(55deg, transparent 50%, #333 50%), linear-gradient(125deg, #333 50%, transparent 50%), linear-gradient(to right, transparent, transparent);\n // background-position: calc(100% - 7px) 4px, calc(100% - 3px) 4px, 100% 0;\n // background-size: 5px 5px, 5px 5px, 2.5em 2.5em;\n // background-repeat: no-repeat;\n // appearance: none;\n //}\n\n &.required {\n select {\n border: 1px solid var(--verdocs-required-color);\n }\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, Event, EventEmitter, h, Host, Method, Prop, State} from '@stencil/core';\n\n/**\n * Displays a signature field. Various field types are supported, including traditional Signature and Initials types as well as\n * input types like text and checkbox.\n */\n@Component({\n tag: 'verdocs-field-dropdown',\n styleUrl: 'verdocs-field-dropdown.scss',\n shadow: false,\n})\nexport class VerdocsFieldDropdown {\n private el: HTMLSelectElement;\n\n /**\n * The optoins to choose from.\n */\n @Prop() options: any[] = [];\n\n /**\n * If true, the field will be marked required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Sets the tabIndex of the input element.\n */\n @Prop() order: number = 1;\n\n /**\n * Sets the disabled attribute of the input element.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * The currently selected value.\n */\n @Prop() value: string = '';\n\n /**\n * Event fired when the input field loses focus.\n */\n @Event({composed: true}) fieldFocus: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field gains focus.\n */\n @Event({composed: true}) fieldBlur: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field value changes. Note that this will only be fired on blur, tab-out, ENTER key press, etc.\n * It is generally the best event to subscribe to than `input` for most cases EXCEPT autocomplete fields that need to see every\n * keypress.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n @State() focused = false;\n\n @Method() async focusField() {\n this.focused = true;\n this.el.focus();\n this.fieldFocus.emit(true);\n }\n\n handleBlur() {\n this.focused = false;\n this.fieldBlur.emit(true);\n }\n\n handleFocus() {\n this.focused = true;\n this.fieldFocus.emit(true);\n }\n\n handleChange(e: any) {\n this.fieldChange.emit(e.target.value);\n }\n\n render() {\n return (\n <Host class={{focused: this.focused, required: this.required}}>\n <select\n tabIndex={this.order}\n disabled={this.disabled}\n ref={el => (this.el = el)}\n onChange={e => this.handleChange(e)}\n onBlur={() => this.handleBlur()}\n onFocus={() => this.handleFocus()}\n >\n <option value=\"\">Select...</option>\n {this.options.map(option => (\n <option value={option.id} selected={option.value === this.value}>\n {option.value}\n </option>\n ))}\n </select>\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-field-initial {\n font-family: $verdocs-primary-font;\n width: 83px;\n height: 36px;\n display: block;\n font-size: 11px;\n letter-spacing: 0.3px;\n background-color: transparent;\n transform-origin: bottom left;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n img {\n display: block;\n max-width: 100%;\n max-height: 100%;\n }\n\n button {\n box-sizing: border-box;\n border: none;\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n border: 1px solid var(--verdocs-required-color);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, Event, EventEmitter, h, Host, Method, Prop} from '@stencil/core';\n\n/**\n * Displays an initial field. If an initial already exists, it will be displayed and the field will be disabled. Otherwise, a placeholder\n * button will be shown. Clicking the button will show a dialog to adopt an initial.\n */\n@Component({\n tag: 'verdocs-field-initial',\n styleUrl: 'verdocs-field-initial.scss',\n shadow: false,\n})\nexport class VerdocsFieldInitial {\n /**\n * Whether the field is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * The user's full name.\n */\n @Prop() fullName: string = '';\n\n /**\n * The base64 signature value.\n */\n @Prop() value: string = '';\n\n /**\n * Event emitted when an initial block is adopted by the user. The event detail will contain the base64 string of the initial image.\n */\n @Event({composed: true}) adopt: EventEmitter<string>;\n\n /**\n * Event emitted when the user cancels the process.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n @Method() async focusField() {\n this.handleShow();\n }\n\n private dialog?: any;\n\n handleShow() {\n this.dialog = document.createElement('verdocs-initial-dialog');\n this.dialog.open = true;\n this.dialog.fullName = this.fullName;\n this.dialog.addEventListener('cancel', () => {\n console.log('cancel');\n this.dialog?.remove();\n });\n document.addEventListener('adopt', e => {\n console.log('adopt', e);\n this.dialog?.remove();\n });\n document.body.append(this.dialog);\n }\n\n render() {\n return (\n <Host class={{required: this.required}}>\n {this.value !== '' ? (\n <img src={this.value} alt=\"Initials\" />\n ) : (\n <button class={{}} onClick={() => this.handleShow()}>\n Initial\n </button>\n )}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-field-payment {\n font-family: $verdocs-primary-font;\n width: 24px;\n height: 24px;\n display: block;\n font-size: 11px;\n position: relative;\n border: 1px solid #cfa;\n background-color: transparent;\n transform-origin: bottom left;\n\n button,\n div {\n box-sizing: border-box;\n }\n\n button {\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n //background-color: rgba(225, 255, 255, 0.5);\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n\n &.hide {\n display: none;\n }\n }\n\n input {\n float: left;\n font-family: Arial, sans-serif;\n }\n\n select {\n position: absolute;\n font-family: Arial, sans-serif;\n background: linear-gradient(55deg, transparent 50%, #333 50%), linear-gradient(125deg, #333 50%, transparent 50%), linear-gradient(to right, transparent, transparent);\n background-position: calc(100% - 7px) 4px, calc(100% - 3px) 4px, 100% 0;\n background-size: 5px 5px, 5px 5px, 2.5em 2.5em;\n background-repeat: no-repeat;\n appearance: none;\n }\n\n .frame {\n width: 100%;\n height: 100%;\n background-size: contain;\n text-align: left;\n\n img {\n position: absolute;\n height: auto;\n width: 100%;\n }\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop, Event, EventEmitter, State} from '@stencil/core';\nimport {IDocumentField} from '@verdocs/js-sdk/Documents/Documents';\n\n/**\n * Displays a signature field. Various field types are supported, including traditional Signature and Initials types as well as\n * input types like text and checkbox.\n */\n@Component({\n tag: 'verdocs-field-payment',\n styleUrl: 'verdocs-field-payment.scss',\n shadow: false,\n})\nexport class VerdocsFieldPayment {\n /**\n * The field to display.\n */\n @Prop() field: IDocumentField;\n\n @Prop() fields: any[];\n @Prop() pageNum: number;\n @Prop() roleName: string;\n @Prop() fieldId: string;\n @Prop() recipients: any;\n @Prop() selectedRoleName: string;\n @Prop() pdfPages: any[];\n @Prop() currentSignature: string;\n @Prop() currentSignatureId: string;\n @Prop() currentInitial: string;\n @Prop() currentInitialId: string;\n @Prop() focused: boolean = false;\n @Prop() signed: boolean = false;\n\n @Event({composed: true}) signatureComplete: EventEmitter<string>;\n\n @Event({composed: true}) initialComplete: EventEmitter<string>;\n\n @State() preparedMessage: string;\n @State() signatureUrl: string = '';\n\n _fields: any[] = [];\n // envelopeFieldsFormGroup: FormGroup;\n signatureFile: any = null;\n initialFile: any = null;\n today: string;\n focusOrderNumber = -1;\n focusFieldName: string = '';\n timer: any;\n activeElement = null;\n showError = {\n pageNum: -1,\n fieldIndex: -1,\n type: null,\n };\n dialogOpened = false;\n closeAllErrors = false;\n fieldsMap: any = {};\n mode: string;\n\n fieldsForCurrentSigner: any[] = [];\n\n validators;\n fontSize = 11;\n averageFontWidth = 5;\n requiredFields: any[] = [];\n\n componentWillLoad() {\n // Load validators\n // Load fields\n // Get role names\n console.log('sign field', this.field);\n\n if (this.recipients && this.recipients.length > 0) {\n const preparer = this.recipients.find(r => r.type === 'preparer');\n console.log('Found preparer', preparer);\n if (preparer) {\n this.preparedMessage = `Prepared by ${preparer['full_name']}`;\n }\n }\n }\n\n // [tabIndex]=\"field.role !== roleName ? -1 : 1\"\n // [ngStyle]=\"field.element_style\"\n // [value]=\"field.value\"\n // (click)=\"initiateSign(field)\"\n // (blur)=\"validateChanges(field)\"\n // [disabled]=\"field.role!==roleName\"\n // [id]=\"field.key\"\n\n // <button _ngcontent-app-root-c342=\"\" class=\"envelope__field\" tabindex=\"1\" ng-reflect-ng-style=\"[object Object]\"\n // ng-reflect-ng-class=\"[object Object]\" value=\"\" id=\"signatureP5-1\"\n // style=\"height: 100%; width: 100%; background: none; font-size: 11px; border: 1px solid rgb(204, 0, 0);\"> Signature </button>\n\n // bottom: 229.333\n // px\n // ;\n // left: 169.333\n // px\n // ;\n // height: 41\n // px\n // ;\n // width: 82\n // px\n // ;\n // background-color: rgba(156, 39, 176, 0.4);\n // transform: scale(1.33333, 1.33333);\n // }\n // <style>\n // .envelope__item[_ngcontent-app-root-c342] {\n // position: absolute;\n // transform-origin: bottom left;\n // opacity: 1;\n\n render() {\n return (\n <Host class={{focused: this.focused, storybook: !!window?.['STORYBOOK_ENV']}}>\n <button class={{hide: this.signed}}>Payment</button>\n {this.signed ? <div class=\"frame\" /> : <div style={{display: 'none'}} />}\n <img width=\"100%\" height=\"100%\" src={this.signatureUrl} />\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\n$background-color: #f4f4f4;\n$color2: #55bc81;\n\n// See https://www.sliderrevolution.com/resources/styling-radio-buttons/\nverdocs-field-radio-button {\n font-family: $verdocs-primary-font;\n width: 14px;\n height: 14px;\n display: block;\n font-size: 11px;\n position: relative;\n background-color: transparent;\n transform-origin: bottom left;\n border-radius: 100%;\n\n input[type='radio'] {\n position: absolute;\n opacity: 0;\n\n + label {\n &:before {\n content: '';\n background: $background-color;\n border-radius: 100%;\n border: 1px solid rgba(0, 0, 0, 0.2);\n //border: 1px solid rgb(204, 0, 0);\n display: inline-block;\n width: 13px;\n height: 13px;\n position: relative;\n top: 2px;\n margin-right: 2px;\n vertical-align: top;\n cursor: pointer;\n text-align: center;\n transition: all 250ms ease;\n }\n }\n\n &:checked {\n + label {\n &:before {\n background-color: $color2;\n box-shadow: inset 0 0 0 2px $background-color;\n }\n }\n }\n\n &:focus {\n + label {\n &:before {\n outline: none;\n border-color: $color2;\n }\n }\n }\n\n &:disabled {\n + label {\n &:before {\n box-shadow: inset 0 0 0 4px $background-color;\n border-color: darken($background-color, 25%);\n background: darken($background-color, 25%);\n }\n }\n }\n\n + label {\n &:empty {\n &:before {\n margin-right: 0;\n }\n }\n }\n }\n\n &.required {\n input[type='radio'] {\n + label {\n &:before {\n border: 1px solid var(--verdocs-required-color);\n }\n }\n }\n }\n\n &.hide {\n display: none;\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop, Event, EventEmitter} from '@stencil/core';\n\n/**\n * Displays a radio button.\n */\n@Component({\n tag: 'verdocs-field-radio-button',\n styleUrl: 'verdocs-field-radio-button.scss',\n shadow: false,\n})\nexport class VerdocsFieldRadioButton {\n /**\n * Sets the tabIndex of the input element.\n */\n @Prop() order: number = 1;\n\n /**\n * Sets the value of the input element.\n */\n @Prop() checked: boolean = false;\n\n /**\n * Sets the value of the input element.\n */\n @Prop() value: string = '';\n\n /**\n * Sets the name of the input element.\n */\n @Prop() name: string = '';\n\n /**\n * If true, the field will be marked required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Sets the disabled attribute of the input element.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Event fired when the input field value changes. Note that this will only be fired on blur, tab-out, ENTER key press, etc.\n * It is generally the best event to subscribe to than `input` for most cases EXCEPT autocomplete fields that need to see every\n * keypress.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n handleChange(e: any) {\n console.log('changed', e);\n this.fieldChange.emit(e.target.checked);\n }\n\n render() {\n return (\n <Host class={{required: this.required, storybook: !!window?.['STORYBOOK_ENV']}}>\n <input\n type=\"radio\"\n tabIndex={this.order}\n value={this.value}\n name={this.name}\n id={`${this.name}=${this.value}`}\n checked={this.checked}\n disabled={this.disabled}\n required={this.required}\n onChange={e => this.handleChange(e)}\n />\n <label htmlFor={`${this.name}=${this.value}`} />\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-field-signature {\n font-family: $verdocs-primary-font;\n width: 83px;\n height: 36px;\n display: block;\n font-size: 11px;\n position: relative;\n letter-spacing: 0.3px;\n background-color: transparent;\n transform-origin: bottom left;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n img {\n display: block;\n max-width: 100%;\n max-height: 100%;\n }\n\n button {\n box-sizing: border-box;\n border: none;\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n border: 1px solid var(--verdocs-required-color);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop, Event, EventEmitter, Method} from '@stencil/core';\n\n/**\n * Displays a signature field. If a signature already exists, it will be displayed and the field will be disabled. Otherwise, a placeholder\n * button will be shown. Clicking the button will show a dialog to adopt a signature.\n */\n@Component({\n tag: 'verdocs-field-signature',\n styleUrl: 'verdocs-field-signature.scss',\n shadow: false,\n})\nexport class VerdocsFieldSignature {\n /**\n * Whether the field is required.\n */\n @Prop() required: boolean = false;\n\n /**\n * The user's full name.\n */\n @Prop() fullName: string = '';\n\n /**\n * The base64 signature value.\n */\n @Prop() value: string = '';\n\n /**\n * Event emitted when an initial block is adopted by the user. The event detail will contain the base64 string of the initial image.\n */\n @Event({composed: true}) adopt: EventEmitter<string>;\n\n /**\n * Event emitted when the user cancels the process.\n */\n @Event({composed: true}) cancel: EventEmitter;\n\n @Method() async focusField() {\n this.handleShow();\n }\n\n private dialog?: any;\n\n handleShow() {\n this.dialog = document.createElement('verdocs-signature-dialog');\n this.dialog.open = true;\n this.dialog.fullName = this.fullName;\n this.dialog.addEventListener('cancel', () => {\n console.log('cancel');\n this.dialog?.remove();\n });\n document.addEventListener('adopt', e => {\n console.log('adopt', e);\n this.dialog?.remove();\n });\n document.body.append(this.dialog);\n }\n\n render() {\n return (\n <Host class={{required: this.required}}>\n {this.value !== '' ? (\n <img src={this.value} alt=\"Signature\" />\n ) : (\n <button class={{}} onClick={() => this.handleShow()}>\n Signature\n </button>\n )}\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-field-textarea {\n font-family: $verdocs-primary-font;\n width: 150px;\n height: 15px;\n display: block;\n font-size: 11px;\n position: relative;\n background-color: transparent;\n transform-origin: bottom left;\n\n textarea {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n border: 1px solid var(--verdocs-required-color);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop, Event, EventEmitter, State, Method} from '@stencil/core';\n\n/**\n * Display a multi-line text input field.\n */\n@Component({\n tag: 'verdocs-field-textarea',\n styleUrl: 'verdocs-field-textarea.scss',\n shadow: false,\n})\nexport class VerdocsFieldTextarea {\n private el: HTMLTextAreaElement;\n\n /**\n * A placeholder to assist the user in completing the field.\n */\n @Prop() placeholder: string = '';\n\n /**\n * Sets the tabIndex of the input element.\n */\n @Prop() order: number = 1;\n\n /**\n * Sets the value of the input element.\n */\n @Prop() value: string = '';\n\n /**\n * If true, the field will be marked required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Sets the disabled attribute of the input element.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Event fired when the input field loses focus.\n */\n @Event({composed: true}) fieldFocus: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field gains focus.\n */\n @Event({composed: true}) fieldBlur: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field value changes. Note that this will only be fired on blur, tab-out, ENTER key press, etc.\n * It is generally the best event to subscribe to than `input` for most cases EXCEPT autocomplete fields that need to see every\n * keypress.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n /**\n * Event fired on every character entered into / deleted from the field.\n */\n @Event({composed: true}) fieldInput: EventEmitter<string>;\n\n @State() focused = false;\n\n @Method() async focusField() {\n this.focused = true;\n this.el.focus();\n this.fieldFocus.emit(true);\n }\n\n handleBlur() {\n this.focused = false;\n this.fieldBlur.emit(true);\n }\n\n handleFocus() {\n this.focused = true;\n this.fieldFocus.emit(true);\n }\n\n handleChange(e: any) {\n this.fieldChange.emit(e.target.value);\n }\n\n handleInput(e: any) {\n this.fieldInput.emit(e.target.value);\n }\n\n render() {\n return (\n <Host class={{focused: this.focused, required: this.required, storybook: !!window?.['STORYBOOK_ENV']}}>\n <textarea\n placeholder={this.placeholder || ''}\n tabIndex={this.order}\n value={this.value}\n disabled={this.disabled}\n required={this.required}\n ref={el => (this.el = el)}\n onBlur={() => this.handleBlur()}\n onFocus={() => this.handleFocus()}\n onChange={e => this.handleChange(e)}\n onInput={e => this.handleInput(e)}\n />\n </Host>\n );\n }\n}\n","@import '../../../theme.scss';\n\nverdocs-field-textbox {\n font-family: $verdocs-primary-font;\n width: 150px;\n height: 15px;\n display: block;\n font-size: 11px;\n position: relative;\n background-color: transparent;\n transform-origin: bottom left;\n\n input {\n box-sizing: border-box;\n color: rgba(0, 0, 0, 0.87);\n font-weight: 500;\n transform-origin: 0 0;\n height: 100%;\n width: 100%;\n background: none;\n font-size: 11px;\n border: 1px solid rgba(0, 0, 0, 0.2);\n\n &.hide {\n display: none;\n }\n }\n\n &.required {\n border: 1px solid var(--verdocs-required-color);\n }\n\n &.focused {\n animation: verdocs-field-pulse 0.75s 2;\n }\n}\n","import {Component, h, Host, Prop, Event, EventEmitter, State, Method} from '@stencil/core';\n\n/**\n * Display a text input field.\n */\n@Component({\n tag: 'verdocs-field-textbox',\n styleUrl: 'verdocs-field-textbox.scss',\n shadow: false,\n})\nexport class VerdocsFieldTextbox {\n private el: HTMLInputElement;\n\n /**\n * A placeholder to assist the user in completing the field.\n */\n @Prop() placeholder: string = '';\n\n /**\n * Sets the tabIndex of the input element.\n */\n @Prop() order: number = 1;\n\n /**\n * Sets the value of the input element.\n */\n @Prop() value: string = '';\n\n /**\n * If true, the field will be marked required.\n */\n @Prop() required: boolean = false;\n\n /**\n * Sets the disabled attribute of the input element.\n */\n @Prop() disabled: boolean = false;\n\n /**\n * Event fired when the input field loses focus.\n */\n @Event({composed: true}) fieldFocus: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field gains focus.\n */\n @Event({composed: true}) fieldBlur: EventEmitter<boolean>;\n\n /**\n * Event fired when the input field value changes. Note that this will only be fired on blur, tab-out, ENTER key press, etc.\n * It is generally the best event to subscribe to than `input` for most cases EXCEPT autocomplete fields that need to see every\n * keypress.\n */\n @Event({composed: true}) fieldChange: EventEmitter<string>;\n\n /**\n * Event fired on every character entered into / deleted from the field.\n */\n @Event({composed: true}) fieldInput: EventEmitter<string>;\n\n @State() focused = false;\n\n @Method() async focusField() {\n this.focused = true;\n this.el.focus();\n this.fieldFocus.emit(true);\n }\n\n handleBlur() {\n this.focused = false;\n this.fieldBlur.emit(true);\n }\n\n handleFocus() {\n this.focused = true;\n this.fieldFocus.emit(true);\n }\n\n handleChange(e: any) {\n this.fieldChange.emit(e.target.value);\n }\n\n handleInput(e: any) {\n this.fieldInput.emit(e.target.value);\n }\n\n render() {\n return (\n <Host class={{focused: this.focused, required: this.required}}>\n <input\n type=\"text\"\n placeholder={this.placeholder || ''}\n tabIndex={this.order}\n value={this.value}\n disabled={this.disabled}\n required={this.required}\n ref={el => (this.el = el)}\n onBlur={() => this.handleBlur()}\n onFocus={() => this.handleFocus()}\n onChange={e => this.handleChange(e)}\n onInput={e => this.handleInput(e)}\n />\n </Host>\n );\n }\n}\n","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2022 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.StreamType = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FontType = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.arrayByteLength = arrayByteLength;\nexports.arraysToBytes = arraysToBytes;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.escapeString = escapeString;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.isAscii = isAscii;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF16BEString = stringToUTF16BEString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n\n__w_pdfjs_require__(2);\n\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n FREETEXT_SIZE: 1,\n FREETEXT_COLOR: 2,\n FREETEXT_OPACITY: 3,\n INK_COLOR: 11,\n INK_THICKNESS: 12,\n INK_OPACITY: 13\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst StreamType = {\n UNKNOWN: \"UNKNOWN\",\n FLATE: \"FLATE\",\n LZW: \"LZW\",\n DCT: \"DCT\",\n JPX: \"JPX\",\n JBIG: \"JBIG\",\n A85: \"A85\",\n AHX: \"AHX\",\n CCF: \"CCF\",\n RLX: \"RLX\"\n};\nexports.StreamType = StreamType;\nconst FontType = {\n UNKNOWN: \"UNKNOWN\",\n TYPE1: \"TYPE1\",\n TYPE1STANDARD: \"TYPE1STANDARD\",\n TYPE1C: \"TYPE1C\",\n CIDFONTTYPE0: \"CIDFONTTYPE0\",\n CIDFONTTYPE0C: \"CIDFONTTYPE0C\",\n TRUETYPE: \"TRUETYPE\",\n CIDFONTTYPE2: \"CIDFONTTYPE2\",\n TYPE3: \"TYPE3\",\n OPENTYPE: \"OPENTYPE\",\n TYPE0: \"TYPE0\",\n MMTYPE1: \"MMTYPE1\"\n};\nexports.FontType = FontType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1,\n STREAM: 2\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotations: 78,\n endAnnotations: 79,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintJpegXObject: 82,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n unknown: \"unknown\",\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n font: \"font\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\n\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\n\nfunction getVerbosityLevel() {\n return verbosity;\n}\n\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\n\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\n\nfunction unreachable(msg) {\n throw new Error(msg);\n}\n\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\n\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n\n default:\n return false;\n }\n}\n\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n\n return null;\n}\n\nfunction shadow(obj, prop, value) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: true,\n configurable: true,\n writable: false\n });\n return value;\n}\n\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n\n this.message = message;\n this.name = name;\n }\n\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\n\nexports.BaseException = BaseException;\n\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n\n}\n\nexports.PasswordException = PasswordException;\n\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n\n}\n\nexports.UnknownErrorException = UnknownErrorException;\n\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n\n}\n\nexports.InvalidPDFException = InvalidPDFException;\n\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n\n}\n\nexports.MissingPDFException = MissingPDFException;\n\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n\n}\n\nexports.UnexpectedResponseException = UnexpectedResponseException;\n\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n\n}\n\nexports.FormatError = FormatError;\n\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n\n}\n\nexports.AbortException = AbortException;\n\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n\n const strBuf = [];\n\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n\n const length = str.length;\n const bytes = new Uint8Array(length);\n\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n\n return bytes;\n}\n\nfunction arrayByteLength(arr) {\n if (arr.length !== undefined) {\n return arr.length;\n }\n\n if (arr.byteLength !== undefined) {\n return arr.byteLength;\n }\n\n unreachable(\"Invalid argument for arrayByteLength\");\n}\n\nfunction arraysToBytes(arr) {\n const length = arr.length;\n\n if (length === 1 && arr[0] instanceof Uint8Array) {\n return arr[0];\n }\n\n let resultLength = 0;\n\n for (let i = 0; i < length; i++) {\n resultLength += arrayByteLength(arr[i]);\n }\n\n let pos = 0;\n const data = new Uint8Array(resultLength);\n\n for (let i = 0; i < length; i++) {\n let item = arr[i];\n\n if (!(item instanceof Uint8Array)) {\n if (typeof item === \"string\") {\n item = stringToBytes(item);\n } else {\n item = new Uint8Array(item);\n }\n }\n\n const itemLength = item.byteLength;\n data.set(item, pos);\n pos += itemLength;\n }\n\n return data;\n}\n\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\n\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\n\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n\n for (const [key, value] of map) {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\n\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\n\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n\n}\n\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\n\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n\n static scaleMinMax(transform, minMax) {\n let temp;\n\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n\n static apply3dTransform(m, v) {\n return [m[0] * v[0] + m[1] * v[1] + m[2] * v[2], m[3] * v[0] + m[4] * v[1] + m[5] * v[2], m[6] * v[0] + m[7] * v[1] + m[8] * v[2]];\n }\n\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n\n static normalizeRect(rect) {\n const r = rect.slice(0);\n\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n\n return r;\n }\n\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n\n if (xLow > xHigh) {\n return null;\n }\n\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n\n if (yLow > yHigh) {\n return null;\n }\n\n return [xLow, yLow, xHigh, yHigh];\n }\n\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n\n t = -c / b;\n\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n\n continue;\n }\n\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n\n if (b2ac < 0) {\n continue;\n }\n\n t1 = (-b + sqrtb2ac) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n\n t2 = (-b - sqrtb2ac) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n\n let j = tvalues.length,\n mt;\n const jlen = j;\n\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n }\n\n}\n\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\n\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n\n const strBuf = [];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n\n return strBuf.join(\"\");\n}\n\nfunction escapeString(str) {\n return str.replace(/([()\\\\\\n\\r])/g, match => {\n if (match === \"\\n\") {\n return \"\\\\n\";\n } else if (match === \"\\r\") {\n return \"\\\\r\";\n }\n\n return `\\\\${match}`;\n });\n}\n\nfunction isAscii(str) {\n return /^[\\x00-\\x7F]*$/.test(str);\n}\n\nfunction stringToUTF16BEString(str) {\n const buf = [\"\\xFE\\xFF\"];\n\n for (let i = 0, ii = str.length; i < ii; i++) {\n const char = str.charCodeAt(i);\n buf.push(String.fromCharCode(char >> 8 & 0xff), String.fromCharCode(char & 0xff));\n }\n\n return buf.join(\"\");\n}\n\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\n\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\n\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\n\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n\n return true;\n}\n\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\n\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __w_pdfjs_require__) => {\n\n\n\nvar _is_node = __w_pdfjs_require__(3);\n\n;\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = void 0;\nexports.binarySearchFirstItem = binarySearchFirstItem;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\n\nvar _base_factory = __w_pdfjs_require__(5);\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\n\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\n\nexports.PixelsPerInch = PixelsPerInch;\n\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n\n}\n\nexports.DOMCanvasFactory = DOMCanvasFactory;\n\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n\n if (request.status === 200 || request.status === 0) {\n let data;\n\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n\n if (data) {\n resolve(data);\n return;\n }\n }\n\n reject(new Error(request.statusText));\n };\n\n request.send(null);\n });\n}\n\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\n\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n\n}\n\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\n\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n\n}\n\nexports.DOMSVGFactory = DOMSVGFactory;\n\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n\n if (rotation < 0) {\n rotation += 360;\n }\n\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = Math.abs(viewBox[3] - viewBox[1]) * scale;\n height = Math.abs(viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = Math.abs(viewBox[2] - viewBox[0]) * scale;\n height = Math.abs(viewBox[3] - viewBox[1]) * scale;\n }\n\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n\n}\n\nexports.PageViewport = PageViewport;\n\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type) {\n super(msg, \"RenderingCancelledException\");\n this.type = type;\n }\n\n}\n\nexports.RenderingCancelledException = RenderingCancelledException;\n\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\n\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\n\nfunction getFilenameFromUrl(url) {\n const anchor = url.indexOf(\"#\");\n const query = url.indexOf(\"?\");\n const end = Math.min(anchor > 0 ? anchor : url.length, query > 0 ? query : url.length);\n return url.substring(url.lastIndexOf(\"/\", end) + 1, end);\n}\n\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n\n return suggestedFilename || defaultFilename;\n}\n\nclass StatTimer {\n constructor() {\n this.started = Object.create(null);\n this.times = [];\n }\n\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n\n this.started[name] = Date.now();\n }\n\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n\n toString() {\n const outBuf = [];\n let longest = 0;\n\n for (const time of this.times) {\n const name = time.name;\n\n if (name.length > longest) {\n longest = name.length;\n }\n }\n\n for (const time of this.times) {\n const duration = time.end - time.start;\n outBuf.push(`${time.name.padEnd(longest)} ${duration}ms\\n`);\n }\n\n return outBuf.join(\"\");\n }\n\n}\n\nexports.StatTimer = StatTimer;\n\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\n\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n\n resolve(evt);\n };\n\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n\n (document.head || document.documentElement).append(script);\n });\n}\n\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\n\nlet pdfDateStringRegex;\n\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n\n const matches = pdfDateStringRegex.exec(input);\n\n if (!matches) {\n return null;\n }\n\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n\n}\n\nexports.PDFDateString = PDFDateString;\n\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\n\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\n\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n\n span.remove();\n}\n\nfunction binarySearchFirstItem(items, condition, start = 0) {\n let minIndex = start;\n let maxIndex = items.length - 1;\n\n if (maxIndex < 0 || !condition(items[maxIndex])) {\n return items.length;\n }\n\n if (condition(items[minIndex])) {\n return minIndex;\n }\n\n while (minIndex < maxIndex) {\n const currentIndex = minIndex + maxIndex >> 1;\n const currentItem = items[currentIndex];\n\n if (condition(currentItem)) {\n maxIndex = currentIndex;\n } else {\n minIndex = currentIndex + 1;\n }\n }\n\n return minIndex;\n}\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n const canvas = this._createCanvas(width, height);\n\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n\n}\n\nexports.BaseCanvasFactory = BaseCanvasFactory;\n\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = false\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\n\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n\n this.baseUrl = baseUrl;\n }\n\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n\n}\n\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\n\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n\n const svg = this._createSVG(\"svg:svg\");\n\n svg.setAttribute(\"version\", \"1.1\");\n\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n\n return this._createSVG(type);\n }\n\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n\n}\n\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nexports.getDocument = getDocument;\nexports.setPDFNetworkStreamFactory = setPDFNetworkStreamFactory;\nexports.version = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _annotation_storage = __w_pdfjs_require__(7);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nvar _font_loader = __w_pdfjs_require__(11);\n\nvar _canvas = __w_pdfjs_require__(12);\n\nvar _worker_options = __w_pdfjs_require__(15);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _message_handler = __w_pdfjs_require__(16);\n\nvar _metadata = __w_pdfjs_require__(17);\n\nvar _optional_content_config = __w_pdfjs_require__(18);\n\nvar _transport_stream = __w_pdfjs_require__(19);\n\nvar _xfa_text = __w_pdfjs_require__(20);\n\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet DefaultCanvasFactory = _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nlet DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nlet DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\n\nif (_is_node.isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory\n } = __w_pdfjs_require__(21);\n\n exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory;\n exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory;\n exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\n\nlet createPDFNetworkStream;\n\nfunction setPDFNetworkStreamFactory(pdfNetworkStreamFactory) {\n createPDFNetworkStream = pdfNetworkStreamFactory;\n}\n\nfunction getDocument(src) {\n const task = new PDFDocumentLoadingTask();\n let source;\n\n if (typeof src === \"string\" || src instanceof URL) {\n source = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n source = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n source = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either string, URL, Uint8Array, or parameter object.\");\n }\n\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n\n source = src;\n }\n\n const params = Object.create(null);\n let rangeTransport = null,\n worker = null;\n\n for (const key in source) {\n const value = source[key];\n\n switch (key) {\n case \"url\":\n if (typeof window !== \"undefined\") {\n try {\n params[key] = new URL(value, window.location).href;\n continue;\n } catch (ex) {\n (0, _util.warn)(`Cannot create valid URL: \"${ex}\".`);\n }\n } else if (typeof value === \"string\" || value instanceof URL) {\n params[key] = value.toString();\n continue;\n }\n\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n\n case \"range\":\n rangeTransport = value;\n continue;\n\n case \"worker\":\n worker = value;\n continue;\n\n case \"data\":\n if (_is_node.isNodeJS && typeof Buffer !== \"undefined\" && value instanceof Buffer) {\n params[key] = new Uint8Array(value);\n } else if (value instanceof Uint8Array) {\n break;\n } else if (typeof value === \"string\") {\n params[key] = (0, _util.stringToBytes)(value);\n } else if (typeof value === \"object\" && value !== null && !isNaN(value.length)) {\n params[key] = new Uint8Array(value);\n } else if ((0, _util.isArrayBuffer)(value)) {\n params[key] = new Uint8Array(value);\n } else {\n throw new Error(\"Invalid PDF binary data: either typed array, \" + \"string, or array-like object is expected in the data property.\");\n }\n\n continue;\n }\n\n params[key] = value;\n }\n\n params.CMapReaderFactory = params.CMapReaderFactory || DefaultCMapReaderFactory;\n params.StandardFontDataFactory = params.StandardFontDataFactory || DefaultStandardFontDataFactory;\n params.ignoreErrors = params.stopAtErrors !== true;\n params.fontExtraProperties = params.fontExtraProperties === true;\n params.pdfBug = params.pdfBug === true;\n params.enableXfa = params.enableXfa === true;\n\n if (!Number.isInteger(params.rangeChunkSize) || params.rangeChunkSize < 1) {\n params.rangeChunkSize = DEFAULT_RANGE_CHUNK_SIZE;\n }\n\n if (typeof params.docBaseUrl !== \"string\" || (0, _display_utils.isDataScheme)(params.docBaseUrl)) {\n params.docBaseUrl = null;\n }\n\n if (!Number.isInteger(params.maxImageSize) || params.maxImageSize < -1) {\n params.maxImageSize = -1;\n }\n\n if (typeof params.cMapUrl !== \"string\") {\n params.cMapUrl = null;\n }\n\n if (typeof params.standardFontDataUrl !== \"string\") {\n params.standardFontDataUrl = null;\n }\n\n if (typeof params.useWorkerFetch !== \"boolean\") {\n params.useWorkerFetch = params.CMapReaderFactory === _display_utils.DOMCMapReaderFactory && params.StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory;\n }\n\n if (typeof params.isEvalSupported !== \"boolean\") {\n params.isEvalSupported = true;\n }\n\n if (typeof params.disableFontFace !== \"boolean\") {\n params.disableFontFace = _is_node.isNodeJS;\n }\n\n if (typeof params.useSystemFonts !== \"boolean\") {\n params.useSystemFonts = !_is_node.isNodeJS && !params.disableFontFace;\n }\n\n if (typeof params.ownerDocument !== \"object\" || params.ownerDocument === null) {\n params.ownerDocument = globalThis.document;\n }\n\n if (typeof params.disableRange !== \"boolean\") {\n params.disableRange = false;\n }\n\n if (typeof params.disableStream !== \"boolean\") {\n params.disableStream = false;\n }\n\n if (typeof params.disableAutoFetch !== \"boolean\") {\n params.disableAutoFetch = false;\n }\n\n (0, _util.setVerbosityLevel)(params.verbosity);\n\n if (!worker) {\n const workerParams = {\n verbosity: params.verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n\n const docId = task.docId;\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const workerIdPromise = _fetchDocument(worker, params, rangeTransport, docId);\n\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length: params.length,\n initialData: params.initialData,\n progressiveDone: params.progressiveDone,\n contentDispositionFilename: params.contentDispositionFilename,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n }, rangeTransport);\n } else if (!params.data) {\n networkStream = createPDFNetworkStream({\n url: params.url,\n length: params.length,\n httpHeaders: params.httpHeaders,\n withCredentials: params.withCredentials,\n rangeChunkSize: params.rangeChunkSize,\n disableRange: params.disableRange,\n disableStream: params.disableStream\n });\n }\n\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, params);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\n\nasync function _fetchDocument(worker, source, pdfDataRangeTransport, docId) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n if (pdfDataRangeTransport) {\n source.length = pdfDataRangeTransport.length;\n source.initialData = pdfDataRangeTransport.initialData;\n source.progressiveDone = pdfDataRangeTransport.progressiveDone;\n source.contentDispositionFilename = pdfDataRangeTransport.contentDispositionFilename;\n }\n\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", {\n docId,\n apiVersion: '2.15.349',\n source: {\n data: source.data,\n url: source.url,\n password: source.password,\n disableAutoFetch: source.disableAutoFetch,\n rangeChunkSize: source.rangeChunkSize,\n length: source.length\n },\n maxImageSize: source.maxImageSize,\n disableFontFace: source.disableFontFace,\n docBaseUrl: source.docBaseUrl,\n ignoreErrors: source.ignoreErrors,\n isEvalSupported: source.isEvalSupported,\n fontExtraProperties: source.fontExtraProperties,\n enableXfa: source.enableXfa,\n useSystemFonts: source.useSystemFonts,\n cMapUrl: source.useWorkerFetch ? source.cMapUrl : null,\n standardFontDataUrl: source.useWorkerFetch ? source.standardFontDataUrl : null\n });\n\n if (source.data) {\n source.data = null;\n }\n\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n\n return workerId;\n}\n\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n this.onUnsupportedFeature = null;\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n this._transport = null;\n\n if (this._worker) {\n this._worker.destroy();\n\n this._worker = null;\n }\n }\n\n}\n\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\n\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n\n transportReady() {\n this._readyCapability.resolve();\n }\n\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n\n abort() {}\n\n}\n\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\n\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n Object.defineProperty(this, \"fingerprint\", {\n get() {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.fingerprint`, \" + \"please use `PDFDocumentProxy.fingerprints` instead.\");\n return this.fingerprints[0];\n }\n\n });\n Object.defineProperty(this, \"getStats\", {\n value: async () => {\n (0, _display_utils.deprecated)(\"`PDFDocumentProxy.getStats`, \" + \"please use the `PDFDocumentProxy.stats`-getter instead.\");\n return this.stats || {\n streamTypes: {},\n fontTypes: {}\n };\n }\n });\n }\n\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n\n get numPages() {\n return this._pdfInfo.numPages;\n }\n\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n\n get stats() {\n return this._transport.stats;\n }\n\n get isPureXfa() {\n return !!this._transport._htmlForXfa;\n }\n\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n\n getDestinations() {\n return this._transport.getDestinations();\n }\n\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n\n getPageMode() {\n return this._transport.getPageMode();\n }\n\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n\n getAttachments() {\n return this._transport.getAttachments();\n }\n\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n\n getOutline() {\n return this._transport.getOutline();\n }\n\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n\n getPermissions() {\n return this._transport.getPermissions();\n }\n\n getMetadata() {\n return this._transport.getMetadata();\n }\n\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n\n getData() {\n return this._transport.getData();\n }\n\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n\n destroy() {\n return this.loadingTask.destroy();\n }\n\n get loadingParams() {\n return this._transport.loadingParams;\n }\n\n get loadingTask() {\n return this._transport.loadingTask;\n }\n\n saveDocument() {\n if (this._transport.annotationStorage.size <= 0) {\n (0, _display_utils.deprecated)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n\n return this._transport.saveDocument();\n }\n\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n\n}\n\nexports.PDFDocumentProxy = PDFDocumentProxy;\n\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this._bitmaps = new Set();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this._annotationPromises = new Map();\n this.destroyed = false;\n }\n\n get pageNumber() {\n return this._pageIndex + 1;\n }\n\n get rotate() {\n return this._pageInfo.rotate;\n }\n\n get ref() {\n return this._pageInfo.ref;\n }\n\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n\n get view() {\n return this._pageInfo.view;\n }\n\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n\n let promise = this._annotationPromises.get(intentArgs.cacheKey);\n\n if (!promise) {\n promise = this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n\n this._annotationPromises.set(intentArgs.cacheKey, promise);\n\n promise = promise.then(annotations => {\n for (const annotation of annotations) {\n if (annotation.titleObj !== undefined) {\n Object.defineProperty(annotation, \"title\", {\n get() {\n (0, _display_utils.deprecated)(\"`title`-property on annotation, please use `titleObj` instead.\");\n return annotation.titleObj.str;\n }\n\n });\n }\n\n if (annotation.contentsObj !== undefined) {\n Object.defineProperty(annotation, \"contents\", {\n get() {\n (0, _display_utils.deprecated)(\"`contents`-property on annotation, please use `contentsObj` instead.\");\n return annotation.contentsObj.str;\n }\n\n });\n }\n }\n\n return annotations;\n });\n }\n\n return promise;\n }\n\n getJSActions() {\n return this._jsActionsPromise ||= this._transport.getPageJSActions(this._pageIndex);\n }\n\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n imageLayer = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n if (arguments[0]?.renderInteractiveForms !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `renderInteractiveForms`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].renderInteractiveForms === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_FORMS;\n }\n }\n\n if (arguments[0]?.includeAnnotationStorage !== undefined) {\n (0, _display_utils.deprecated)(\"render no longer accepts the `includeAnnotationStorage`-option, \" + \"please use the `annotationMode`-option instead.\");\n\n if (arguments[0].includeAnnotationStorage === true && annotationMode === _util.AnnotationMode.ENABLE) {\n annotationMode = _util.AnnotationMode.ENABLE_STORAGE;\n }\n }\n\n if (this._stats) {\n this._stats.time(\"Overall\");\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n\n this.pendingCleanup = false;\n\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n\n this._tryCleanup();\n\n if (error) {\n internalRenderTask.capability.reject(error);\n\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Rendering\");\n\n this._stats.timeEnd(\"Overall\");\n }\n };\n\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n\n if (this._stats) {\n this._stats.time(\"Rendering\");\n }\n\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n\n getOperatorList({\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n\n if (!intentState) {\n intentState = Object.create(null);\n\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n\n let opListTask;\n\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n\n if (this._stats) {\n this._stats.time(\"Page Request\");\n }\n\n this._pumpOperatorList(intentArgs);\n }\n\n return intentState.opListReadCapability.promise;\n }\n\n streamTextContent({\n disableCombineTextItems = false,\n includeMarkedContent = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n\n size(textContent) {\n return textContent.items.length;\n }\n\n });\n }\n\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n\n getStructTree() {\n return this._structTreePromise ||= this._transport.getStructTree(this._pageIndex);\n }\n\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n\n if (intentState.opListReadCapability) {\n continue;\n }\n\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n\n this.objs.clear();\n\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n\n this._intentStates.clear();\n\n this.objs.clear();\n\n this._annotationPromises.clear();\n\n this._jsActionsPromise = null;\n this._structTreePromise = null;\n\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n\n for (const bitmap of this._bitmaps) {\n bitmap.close();\n }\n\n this._bitmaps.clear();\n\n this.pendingCleanup = false;\n return true;\n }\n\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n\n if (!intentState) {\n return;\n }\n\n if (this._stats) {\n this._stats.timeEnd(\"Page Request\");\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.resolve(transparency);\n }\n }\n\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageMap\n }) {\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: annotationStorageMap\n });\n\n const reader = readableStream.getReader();\n\n const intentState = this._intentStates.get(cacheKey);\n\n intentState.streamReader = reader;\n\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n\n if (this._transport.destroyed) {\n return;\n }\n\n this._renderPageChunk(value, intentState);\n\n pump();\n }, reason => {\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n\n this._tryCleanup();\n }\n\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n\n pump();\n }\n\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n\n if (reason instanceof _display_utils.RenderingCancelledException) {\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n\n intentState.streamReaderCancelTimeout = null;\n }, RENDERING_CANCELLED_TIMEOUT);\n return;\n }\n }\n\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n\n if (this._transport.destroyed) {\n return;\n }\n\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n\n break;\n }\n }\n\n this.cleanup();\n }\n\n get stats() {\n return this._stats;\n }\n\n}\n\nexports.PDFPageProxy = PDFPageProxy;\n\nclass LoopbackPort {\n constructor() {\n this._listeners = [];\n this._deferred = Promise.resolve();\n }\n\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers)\n };\n\n this._deferred.then(() => {\n for (const listener of this._listeners) {\n listener.call(this, event);\n }\n });\n }\n\n addEventListener(name, listener) {\n this._listeners.push(listener);\n }\n\n removeEventListener(name, listener) {\n const i = this._listeners.indexOf(listener);\n\n this._listeners.splice(i, 1);\n }\n\n terminate() {\n this._listeners.length = 0;\n }\n\n}\n\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_is_node.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n\n try {\n base = new URL(baseUrl);\n\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\n\nclass PDFWorker {\n static #workerPorts = new WeakMap();\n\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && PDFWorker.#workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n\n if (port) {\n PDFWorker.#workerPorts.set(port, this);\n\n this._initializeFromPort(port);\n\n return;\n }\n\n this._initialize();\n }\n\n get promise() {\n return this._readyCapability.promise;\n }\n\n get port() {\n return this._port;\n }\n\n get messageHandler() {\n return this._messageHandler;\n }\n\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n\n this._messageHandler.on(\"ready\", function () {});\n\n this._readyCapability.resolve();\n }\n\n _initialize() {\n if (typeof Worker !== \"undefined\" && !PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let workerSrc = PDFWorker.workerSrc;\n\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n\n this._setupFakeWorker();\n }\n\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n\n return;\n }\n\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n\n this._readyCapability.resolve();\n\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n\n destroy() {\n this.destroyed = true;\n\n if (this._webWorker) {\n this._webWorker.terminate();\n\n this._webWorker = null;\n }\n\n PDFWorker.#workerPorts.delete(this._port);\n this._port = null;\n\n if (this._messageHandler) {\n this._messageHandler.destroy();\n\n this._messageHandler = null;\n }\n }\n\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n\n if (this.#workerPorts.has(params.port)) {\n return this.#workerPorts.get(params.port);\n }\n\n return new PDFWorker(params);\n }\n\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n\n}\n\nexports.PDFWorker = PDFWorker;\n{\n PDFWorker.getWorkerSrc = function () {\n (0, _display_utils.deprecated)(\"`PDFWorker.getWorkerSrc()`, please use `PDFWorker.workerSrc` instead.\");\n return this.workerSrc;\n };\n}\n\nclass WorkerTransport {\n #docStats = null;\n #pageCache = new Map();\n #pagePromises = new Map();\n #metadataPromise = null;\n\n constructor(messageHandler, loadingTask, networkStream, params) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n docId: loadingTask.docId,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n\n if (!params.useWorkerFetch) {\n this.CMapReaderFactory = new params.CMapReaderFactory({\n baseUrl: params.cMapUrl,\n isCompressed: params.cMapPacked\n });\n this.StandardFontDataFactory = new params.StandardFontDataFactory({\n baseUrl: params.standardFontDataUrl\n });\n }\n\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n\n get stats() {\n return this.#docStats;\n }\n\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationMap = null;\n\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n\n case \"display\":\n break;\n\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n\n case _util.AnnotationMode.ENABLE:\n break;\n\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationMap = annotationStorage.serializable;\n break;\n\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`,\n annotationStorageMap: annotationMap\n };\n }\n\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n\n const waitOn = [];\n\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n\n this.#pageCache.clear();\n this.#pagePromises.clear();\n\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n\n if (!rangeReader) {\n sink.close();\n return;\n }\n\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n\n (0, _util.assert)((0, _util.isArrayBuffer)(value), \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this._passwordCapability.reject(password);\n } else {\n this._passwordCapability.resolve({\n password\n });\n }\n };\n\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n\n const page = this.#pageCache.get(data.pageIndex);\n\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\n\n if (this.commonObjs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Font\":\n const params = this._params;\n\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n\n let fontRegistry = null;\n\n if (params.pdfBug && globalThis.FontInspector?.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n\n };\n }\n\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n\n this.commonObjs.resolve(id, font);\n });\n break;\n\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n\n const pageProxy = this.#pageCache.get(pageIndex);\n\n if (pageProxy.objs.has(id)) {\n return;\n }\n\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n\n if (imageData) {\n let length;\n\n if (imageData.bitmap) {\n const {\n bitmap,\n width,\n height\n } = imageData;\n length = width * height * 4;\n\n pageProxy._bitmaps.add(bitmap);\n } else {\n length = imageData.data?.length || 0;\n }\n\n if (length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n }\n\n break;\n\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"DocStats\", data => {\n if (this.destroyed) {\n return;\n }\n\n this.#docStats = Object.freeze({\n streamTypes: Object.freeze(data.streamTypes),\n fontTypes: Object.freeze(data.fontTypes)\n });\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.CMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.CMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n\n if (!this.StandardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n\n return this.StandardFontDataFactory.fetch(data);\n });\n }\n\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n\n this.loadingTask.onUnsupportedFeature?.(featureId);\n }\n\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n\n if (cachedPromise) {\n return cachedPromise;\n }\n\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n\n saveDocument() {\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: this._fullReader?.filename ?? null\n }).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n\n getFieldObjects() {\n return this._getFieldObjectsPromise ||= this.messageHandler.sendWithPromise(\"GetFieldObjects\", null);\n }\n\n hasJSActions() {\n return this._hasJSActionsPromise ||= this.messageHandler.sendWithPromise(\"HasJSActions\", null);\n }\n\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n\n getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n\n getMetadata() {\n return this.#metadataPromise ||= this.messageHandler.sendWithPromise(\"GetMetadata\", null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n }\n\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n\n async startCleanup(keepLoadedFonts = false) {\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n\n if (this.destroyed) {\n return;\n }\n\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n\n this.commonObjs.clear();\n\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n\n this.#metadataPromise = null;\n this._getFieldObjectsPromise = null;\n this._hasJSActionsPromise = null;\n }\n\n get loadingParams() {\n const params = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch: params.disableAutoFetch,\n enableXfa: params.enableXfa\n });\n }\n\n}\n\nclass PDFObjects {\n #objs = Object.create(null);\n\n __ensureObj(objId) {\n const obj = this.#objs[objId];\n\n if (obj) {\n return obj;\n }\n\n return this.#objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null\n };\n }\n\n get(objId, callback = null) {\n if (callback) {\n const obj = this.__ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n\n const obj = this.#objs[objId];\n\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n\n return obj.data;\n }\n\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n\n resolve(objId, data = null) {\n const obj = this.__ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n\n clear() {\n this.#objs = Object.create(null);\n }\n\n}\n\nclass RenderTask {\n #internalRenderTask = null;\n\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n\n cancel() {\n this.#internalRenderTask.cancel();\n }\n\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n\n if (!separateAnnots) {\n return false;\n }\n\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n\n}\n\nexports.RenderTask = RenderTask;\n\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n\n const {\n canvasContext,\n viewport,\n transform,\n imageLayer,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, imageLayer, optionalContentConfig, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n\n if (this.graphicsReadyCallback) {\n this.graphicsReadyCallback();\n }\n }\n\n cancel(error = null) {\n this.running = false;\n this.cancelled = true;\n\n if (this.gfx) {\n this.gfx.endDrawing();\n }\n\n if (this._canvas) {\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n }\n\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\"));\n }\n\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n\n return;\n }\n\n if (this.stepper) {\n this.stepper.updateOperatorList(this.operatorList);\n }\n\n if (this.running) {\n return;\n }\n\n this._continue();\n }\n\n _continue() {\n this.running = true;\n\n if (this.cancelled) {\n return;\n }\n\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n\n async _next() {\n if (this.cancelled) {\n return;\n }\n\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n\n if (this._canvas) {\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n }\n\n this.callback();\n }\n }\n }\n\n}\n\nconst version = '2.15.349';\nexports.version = version;\nconst build = 'b8aa9c622';\nexports.build = build;\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(8);\n\nvar _murmurhash = __w_pdfjs_require__(10);\n\nclass AnnotationStorage {\n constructor() {\n this._storage = new Map();\n this._modified = false;\n this.onSetModified = null;\n this.onResetModified = null;\n }\n\n getValue(key, defaultValue) {\n const value = this._storage.get(key);\n\n if (value === undefined) {\n return defaultValue;\n }\n\n return Object.assign(defaultValue, value);\n }\n\n getRawValue(key) {\n return this._storage.get(key);\n }\n\n removeKey(key) {\n this._storage.delete(key);\n\n if (this._storage.size === 0) {\n this.resetModified();\n }\n }\n\n setValue(key, value) {\n const obj = this._storage.get(key);\n\n let modified = false;\n\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n\n this._storage.set(key, value);\n }\n\n if (modified) {\n this.__setModified();\n }\n }\n\n has(key) {\n return this._storage.has(key);\n }\n\n getAll() {\n return this._storage.size > 0 ? (0, _util.objectFromMap)(this._storage) : null;\n }\n\n get size() {\n return this._storage.size;\n }\n\n __setModified() {\n if (!this._modified) {\n this._modified = true;\n\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n\n resetModified() {\n if (this._modified) {\n this._modified = false;\n\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n\n get print() {\n return new PrintAnnotationStorage(this);\n }\n\n get serializable() {\n if (this._storage.size === 0) {\n return null;\n }\n\n const clone = new Map();\n\n for (const [key, val] of this._storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize() : val;\n\n if (serialized) {\n clone.set(key, serialized);\n }\n }\n\n return clone;\n }\n\n static getHash(map) {\n if (!map) {\n return \"\";\n }\n\n const hash = new _murmurhash.MurmurHash3_64();\n\n for (const [key, val] of map) {\n hash.update(`${key}:${JSON.stringify(val)}`);\n }\n\n return hash.hexdigest();\n }\n\n}\n\nexports.AnnotationStorage = AnnotationStorage;\n\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable = null;\n\n constructor(parent) {\n super();\n this.#serializable = structuredClone(parent.serializable);\n }\n\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n\n get serializable() {\n return this.#serializable;\n }\n\n}\n\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\n\nvar _tools = __w_pdfjs_require__(9);\n\nvar _util = __w_pdfjs_require__(1);\n\nclass AnnotationEditor {\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #hasBeenSelected = false;\n #isEditing = false;\n #isInEditMode = false;\n #zIndex = AnnotationEditor._zIndex++;\n static _colorManager = new _tools.ColorManager();\n static _zIndex = 1;\n\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n const [width, height] = this.parent.viewportBaseDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.rotation = this.parent.viewport.rotation;\n this.isAttachedToDOM = false;\n }\n\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n\n focusin(event) {\n if (!this.#hasBeenSelected) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenSelected = false;\n }\n }\n\n focusout(event) {\n if (!this.isAttachedToDOM) {\n return;\n }\n\n const target = event.relatedTarget;\n\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n\n event.preventDefault();\n\n if (!this.parent.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n\n commit() {\n this.parent.addToAnnotationStorage(this);\n }\n\n dragstart(event) {\n const rect = this.parent.div.getBoundingClientRect();\n this.startX = event.clientX - rect.x;\n this.startY = event.clientY - rect.y;\n event.dataTransfer.setData(\"text/plain\", this.id);\n event.dataTransfer.effectAllowed = \"move\";\n }\n\n setAt(x, y, tx, ty) {\n const [width, height] = this.parent.viewportBaseDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n\n translate(x, y) {\n const [width, height] = this.parent.viewportBaseDimensions;\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n\n screenToPageTranslation(x, y) {\n const {\n rotation\n } = this.parent.viewport;\n\n switch (rotation) {\n case 90:\n return [y, -x];\n\n case 180:\n return [-x, -y];\n\n case 270:\n return [-y, x];\n\n default:\n return [x, y];\n }\n }\n\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.div.style.width = `${100 * width / parentWidth}%`;\n this.div.style.height = `${100 * height / parentHeight}%`;\n }\n\n getInitialTranslation() {\n return [0, 0];\n }\n\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"dragstart\", \"pointerdown\"]);\n return this.div;\n }\n\n pointerdown(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n\n this.#hasBeenSelected = true;\n }\n\n getRect(tx, ty) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n const [pageWidth, pageHeight] = this.parent.pageDimensions;\n const shiftX = pageWidth * tx / parentWidth;\n const shiftY = pageHeight * ty / parentHeight;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n\n switch (this.rotation) {\n case 0:\n return [x + shiftX, pageHeight - y - shiftY - height, x + shiftX + width, pageHeight - y - shiftY];\n\n case 90:\n return [x + shiftY, pageHeight - y + shiftX, x + shiftY + height, pageHeight - y + shiftX + width];\n\n case 180:\n return [x - shiftX - width, pageHeight - y + shiftY, x - shiftX, pageHeight - y + shiftY + height];\n\n case 270:\n return [x - shiftY - height, pageHeight - y - shiftX - width, x - shiftY, pageHeight - y - shiftX];\n\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n\n case 90:\n return [x1, pageHeight - y1, height, width];\n\n case 180:\n return [x2, pageHeight - y1, width, height];\n\n case 270:\n return [x2, pageHeight - y2, height, width];\n\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n\n onceAdded() {}\n\n isEmpty() {\n return false;\n }\n\n enableEditMode() {\n this.#isInEditMode = true;\n }\n\n disableEditMode() {\n this.#isInEditMode = false;\n }\n\n isInEditMode() {\n return this.#isInEditMode;\n }\n\n shouldGetKeyboardEvents() {\n return false;\n }\n\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n\n rebuild() {\n this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n }\n\n serialize() {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n\n static deserialize(data, parent) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId()\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = parent.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n\n if (!this.isEmpty()) {\n this.commit();\n }\n\n this.parent.remove(this);\n }\n\n select() {\n this.div?.classList.add(\"selectedEditor\");\n }\n\n unselect() {\n this.div?.classList.remove(\"selectedEditor\");\n }\n\n updateParams(type, value) {}\n\n disableEditing() {}\n\n enableEditing() {}\n\n getIdForTextLayer() {\n return this.id;\n }\n\n get propertiesToUpdate() {\n return {};\n }\n\n get contentDiv() {\n return this.div;\n }\n\n get isEditing() {\n return this.#isEditing;\n }\n\n set isEditing(value) {\n this.#isEditing = value;\n\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n\n}\n\nexports.AnnotationEditor = AnnotationEditor;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\n\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\n\nclass IdManager {\n #id = 0;\n\n getId() {\n return `${_util.AnnotationEditorPrefix}${this.#id++}`;\n }\n\n}\n\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n\n add({\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n\n if (this.#locked) {\n return;\n }\n\n const save = {\n cmd,\n undo,\n type\n };\n\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n\n this.#commands[this.#position] = save;\n return;\n }\n\n const next = this.#position + 1;\n\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n\n this.#commands.push(save);\n }\n\n undo() {\n if (this.#position === -1) {\n return;\n }\n\n this.#locked = true;\n this.#commands[this.#position].undo();\n this.#locked = false;\n this.#position -= 1;\n }\n\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n this.#commands[this.#position].cmd();\n this.#locked = false;\n }\n }\n\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n\n destroy() {\n this.#commands = null;\n }\n\n}\n\nexports.CommandManager = CommandManager;\n\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const isMac = KeyboardManager.platform.isMac;\n\n for (const [keys, callback] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n\n __serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n\n const callback = this.callbacks.get(this.__serialize(event));\n\n if (!callback) {\n return;\n }\n\n callback.bind(self)();\n event.stopPropagation();\n event.preventDefault();\n }\n\n}\n\nexports.KeyboardManager = KeyboardManager;\n\nclass ClipboardManager {\n #elements = null;\n\n copy(element) {\n if (!element) {\n return;\n }\n\n if (Array.isArray(element)) {\n this.#elements = element.map(el => el.serialize());\n } else {\n this.#elements = [element.serialize()];\n }\n\n this.#elements = this.#elements.filter(el => !!el);\n\n if (this.#elements.length === 0) {\n this.#elements = null;\n }\n }\n\n paste() {\n return this.#elements;\n }\n\n isEmpty() {\n return this.#elements === null;\n }\n\n destroy() {\n this.#elements = null;\n }\n\n}\n\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n\n return rgb;\n }\n\n getHexCode(name) {\n const rgb = this._colors.get(name);\n\n if (!rgb) {\n return name;\n }\n\n return _util.Util.makeHexColor(...rgb);\n }\n\n}\n\nexports.ColorManager = ColorManager;\n\nclass AnnotationEditorUIManager {\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #clipboardManager = new ClipboardManager();\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #editorTypes = null;\n #eventBus = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #mode = _util.AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #boundKeydown = this.keydown.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #boundOnTextLayerRendered = this.onTextLayerRendered.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasEmptyClipboard: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n };\n #container = null;\n static _keyboardManager = new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], AnnotationEditorUIManager.prototype.selectAll], [[\"ctrl+c\", \"mac+meta+c\"], AnnotationEditorUIManager.prototype.copy], [[\"ctrl+v\", \"mac+meta+v\"], AnnotationEditorUIManager.prototype.paste], [[\"ctrl+x\", \"mac+meta+x\"], AnnotationEditorUIManager.prototype.cut], [[\"ctrl+z\", \"mac+meta+z\"], AnnotationEditorUIManager.prototype.undo], [[\"ctrl+y\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], AnnotationEditorUIManager.prototype.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\"], AnnotationEditorUIManager.prototype.delete], [[\"Escape\", \"mac+Escape\"], AnnotationEditorUIManager.prototype.unselectAll]]);\n\n constructor(container, eventBus) {\n this.#container = container;\n this.#eventBus = eventBus;\n\n this.#eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n\n this.#eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n\n this.#eventBus._on(\"textlayerrendered\", this.#boundOnTextLayerRendered);\n }\n\n destroy() {\n this.__removeKeyboardManager();\n\n this.#eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n\n this.#eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n\n this.#eventBus._off(\"textlayerrendered\", this.#boundOnTextLayerRendered);\n\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#clipboardManager.destroy();\n this.#commandManager.destroy();\n }\n\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n\n onTextLayerRendered({\n pageNumber\n }) {\n const pageIndex = pageNumber - 1;\n const layer = this.#allLayers.get(pageIndex);\n layer?.onTextLayerRendered();\n }\n\n focusMainContainer() {\n this.#container.focus();\n }\n\n __addKeyboardManager() {\n this.#container.addEventListener(\"keydown\", this.#boundKeydown);\n }\n\n __removeKeyboardManager() {\n this.#container.removeEventListener(\"keydown\", this.#boundKeydown);\n }\n\n keydown(event) {\n if (!this.getActive()?.shouldGetKeyboardEvents()) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"cut\", \"copy\", \"paste\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n\n __dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n\n if (hasChanged) {\n this.#eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n }\n }\n\n __dispatchUpdateUI(details) {\n this.#eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n\n setEditingState(isEditing) {\n if (isEditing) {\n this.__addKeyboardManager();\n this.__dispatchUpdateStates({\n isEditing: this.#mode !== _util.AnnotationEditorType.NONE,\n isEmpty: this.__isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false,\n hasEmptyClipboard: this.#clipboardManager.isEmpty()\n });\n } else {\n this.__removeKeyboardManager();\n this.__dispatchUpdateStates({\n isEditing: false\n });\n }\n }\n\n registerEditorTypes(types) {\n this.#editorTypes = types;\n\n for (const editorType of this.#editorTypes) {\n this.__dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n\n getId() {\n return this.#idManager.getId();\n }\n\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n\n updateMode(mode) {\n this.#mode = mode;\n\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.__disableAll();\n } else {\n this.setEditingState(true);\n this.__enableAll();\n\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n }\n }\n\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n\n this.#eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n\n updateParams(type, value) {\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n\n __enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n }\n }\n\n __disableAll() {\n this.unselectAll();\n\n if (this.#isEnabled) {\n this.#isEnabled = false;\n\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n }\n }\n\n getEditors(pageIndex) {\n const editors = [];\n\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n\n return editors;\n }\n\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n\n removeEditor(editor) {\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n }\n\n __addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n }\n\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n\n this.#activeEditor = editor;\n\n if (editor) {\n this.__dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.__dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n\n this.#selectedEditors.add(editor);\n editor.select();\n this.__dispatchUpdateUI(editor.propertiesToUpdate);\n this.__dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.__dispatchUpdateUI(editor.propertiesToUpdate);\n this.__dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.__dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n\n undo() {\n this.#commandManager.undo();\n this.__dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.__isEmpty()\n });\n }\n\n redo() {\n this.#commandManager.redo();\n this.__dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.__isEmpty()\n });\n }\n\n addCommands(params) {\n this.#commandManager.add(params);\n this.__dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.__isEmpty()\n });\n }\n\n __isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n\n return false;\n }\n\n delete() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n }\n\n if (!this.hasSelection) {\n return;\n }\n\n const editors = [...this.#selectedEditors];\n\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n\n const undo = () => {\n for (const editor of editors) {\n this.__addEditorToLayer(editor);\n }\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n copy() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n }\n\n if (this.hasSelection) {\n const editors = [];\n\n for (const editor of this.#selectedEditors) {\n if (!editor.isEmpty()) {\n editors.push(editor);\n }\n }\n\n if (editors.length === 0) {\n return;\n }\n\n this.#clipboardManager.copy(editors);\n this.__dispatchUpdateStates({\n hasEmptyClipboard: false\n });\n }\n }\n\n cut() {\n this.copy();\n this.delete();\n }\n\n paste() {\n if (this.#clipboardManager.isEmpty()) {\n return;\n }\n\n this.unselectAll();\n const layer = this.#allLayers.get(this.#currentPageIndex);\n const newEditors = this.#clipboardManager.paste().map(data => layer.deserialize(data));\n\n const cmd = () => {\n for (const editor of newEditors) {\n this.__addEditorToLayer(editor);\n }\n\n this.__selectEditors(newEditors);\n };\n\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n __selectEditors(editors) {\n this.#selectedEditors.clear();\n\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n\n this.#selectedEditors.add(editor);\n editor.select();\n }\n\n this.__dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n\n this.__selectEditors(this.#allEditors.values());\n }\n\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n return;\n }\n\n if (this.__selectEditors.size === 0) {\n return;\n }\n\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n\n this.#selectedEditors.clear();\n this.__dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n\n getActive() {\n return this.#activeEditor;\n }\n\n getMode() {\n return this.#mode;\n }\n\n}\n\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\n\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n\n update(input) {\n let data, length;\n\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n\n k1 = 0;\n\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n\n }\n\n this.h1 = h1;\n this.h2 = h2;\n }\n\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n const hex1 = (h1 >>> 0).toString(16),\n hex2 = (h2 >>> 0).toString(16);\n return hex1.padStart(8, \"0\") + hex2.padStart(8, \"0\");\n }\n\n}\n\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass BaseFontLoader {\n constructor({\n docId,\n onUnsupportedFeature,\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n if (this.constructor === BaseFontLoader) {\n (0, _util.unreachable)(\"Cannot initialize BaseFontLoader.\");\n }\n\n this.docId = docId;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n }\n\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n\n this._document.fonts.add(nativeFontFace);\n }\n\n insertRule(rule) {\n let styleElement = this.styleElement;\n\n if (!styleElement) {\n styleElement = this.styleElement = this._document.createElement(\"style\");\n styleElement.id = `PDFJS_FONT_STYLE_TAG_${this.docId}`;\n\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(styleElement);\n }\n\n const styleSheet = styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n\n this.nativeFontFaces.length = 0;\n\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n\n font.attached = true;\n\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n\n return;\n }\n\n const rule = font.createFontFaceRule();\n\n if (rule) {\n this.insertRule(rule);\n\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n\n this._prepareFontLoadEvent([rule], [font], request);\n });\n }\n }\n\n _queueLoadingCallback(callback) {\n (0, _util.unreachable)(\"Abstract method `_queueLoadingCallback`.\");\n }\n\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n\n get isSyncFontLoadingSupported() {\n (0, _util.unreachable)(\"Abstract method `isSyncFontLoadingSupported`.\");\n }\n\n get _loadTestFont() {\n (0, _util.unreachable)(\"Abstract method `_loadTestFont`.\");\n }\n\n _prepareFontLoadEvent(rules, fontsToLoad, request) {\n (0, _util.unreachable)(\"Abstract method `_prepareFontLoadEvent`.\");\n }\n\n}\n\nlet FontLoader;\nexports.FontLoader = FontLoader;\n{\n exports.FontLoader = FontLoader = class GenericFontLoader extends BaseFontLoader {\n constructor(params) {\n super(params);\n this.loadingContext = {\n requests: [],\n nextRequestId: 0\n };\n this.loadTestFontId = 0;\n }\n\n get isSyncFontLoadingSupported() {\n let supported = false;\n\n if (typeof navigator === \"undefined\") {\n supported = true;\n } else {\n const m = /Mozilla\\/5.0.*?rv:(\\d+).*? Gecko/.exec(navigator.userAgent);\n\n if (m?.[1] >= 14) {\n supported = true;\n }\n }\n\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n\n while (context.requests.length > 0 && context.requests[0].done) {\n const otherRequest = context.requests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n\n const context = this.loadingContext;\n const request = {\n id: `pdfjs-font-loading-${context.nextRequestId++}`,\n done: false,\n complete: completeRequest,\n callback\n };\n context.requests.push(request);\n return request;\n }\n\n get _loadTestFont() {\n const getLoadTestFont = function () {\n return atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n };\n\n return (0, _util.shadow)(this, \"_loadTestFont\", getLoadTestFont());\n }\n\n _prepareFontLoadEvent(rules, fonts, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n\n let i, ii;\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n\n function isFontReady(name, callback) {\n called++;\n\n if (called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n\n setTimeout(isFontReady.bind(null, name, callback));\n }\n\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const names = [];\n\n for (const font of fonts) {\n names.push(font.loadedName);\n }\n\n names.push(loadTestFontId);\n\n const div = this._document.createElement(\"div\");\n\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n\n for (const name of names) {\n const span = this._document.createElement(\"span\");\n\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n\n this._document.body.append(div);\n\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n\n };\n}\n\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature,\n fontRegistry = null\n }) {\n this.compiledGlyphs = Object.create(null);\n\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n let nativeFontFace;\n\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this);\n }\n\n return nativeFontFace;\n }\n\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n\n if (this.fontRegistry) {\n this.fontRegistry.registerFont(this, url);\n }\n\n return rule;\n }\n\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n\n let cmds;\n\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n\n if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n const jsBuf = [];\n\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n\n}\n\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nvar _pattern_helper = __w_pdfjs_require__(13);\n\nvar _image_utils = __w_pdfjs_require__(14);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst COMPILE_TYPE3_GLYPHS = true;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nconst LINEWIDTH_SCALE_FACTOR = 1.000001;\n\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n\n ctx.save = function ctxSave() {\n destCtx.save();\n\n this.__originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n\n this.__originalRestore();\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n\n this.__originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n\n this.__originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n\n this.__originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n\n this.__originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n\n this.__originalRotate(angle);\n };\n\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n\n this.__originalClip(rule);\n };\n\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n\n this.__originalMoveTo(x, y);\n };\n\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n\n this.__originalLineTo(x, y);\n };\n\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n\n this.__originalRect(x, y, width, height);\n };\n\n ctx.closePath = function () {\n destCtx.closePath();\n\n this.__originalClosePath();\n };\n\n ctx.beginPath = function () {\n destCtx.beginPath();\n\n this.__originalBeginPath();\n };\n}\n\nfunction addContextCurrentTransform(ctx) {\n if (ctx._transformStack) {\n ctx._transformStack = [];\n }\n\n if (ctx.mozCurrentTransform) {\n return;\n }\n\n ctx._originalSave = ctx.save;\n ctx._originalRestore = ctx.restore;\n ctx._originalRotate = ctx.rotate;\n ctx._originalScale = ctx.scale;\n ctx._originalTranslate = ctx.translate;\n ctx._originalTransform = ctx.transform;\n ctx._originalSetTransform = ctx.setTransform;\n ctx._originalResetTransform = ctx.resetTransform;\n ctx._transformMatrix = ctx._transformMatrix || [1, 0, 0, 1, 0, 0];\n ctx._transformStack = [];\n\n try {\n const desc = Object.getOwnPropertyDescriptor(Object.getPrototypeOf(ctx), \"lineWidth\");\n ctx._setLineWidth = desc.set;\n ctx._getLineWidth = desc.get;\n Object.defineProperty(ctx, \"lineWidth\", {\n set: function setLineWidth(width) {\n this._setLineWidth(width * LINEWIDTH_SCALE_FACTOR);\n },\n get: function getLineWidth() {\n return this._getLineWidth();\n }\n });\n } catch (_) {}\n\n Object.defineProperty(ctx, \"mozCurrentTransform\", {\n get: function getCurrentTransform() {\n return this._transformMatrix;\n }\n });\n Object.defineProperty(ctx, \"mozCurrentTransformInverse\", {\n get: function getCurrentTransformInverse() {\n const [a, b, c, d, e, f] = this._transformMatrix;\n const ad_bc = a * d - b * c;\n const bc_ad = b * c - a * d;\n 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];\n }\n });\n\n ctx.save = function ctxSave() {\n const old = this._transformMatrix;\n\n this._transformStack.push(old);\n\n this._transformMatrix = old.slice(0, 6);\n\n this._originalSave();\n };\n\n ctx.restore = function ctxRestore() {\n if (this._transformStack.length === 0) {\n (0, _util.warn)(\"Tried to restore a ctx when the stack was already empty.\");\n }\n\n const prev = this._transformStack.pop();\n\n if (prev) {\n this._transformMatrix = prev;\n\n this._originalRestore();\n }\n };\n\n ctx.translate = function ctxTranslate(x, y) {\n const m = this._transformMatrix;\n m[4] = m[0] * x + m[2] * y + m[4];\n m[5] = m[1] * x + m[3] * y + m[5];\n\n this._originalTranslate(x, y);\n };\n\n ctx.scale = function ctxScale(x, y) {\n const m = this._transformMatrix;\n m[0] *= x;\n m[1] *= x;\n m[2] *= y;\n m[3] *= y;\n\n this._originalScale(x, y);\n };\n\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n const m = this._transformMatrix;\n 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]];\n\n ctx._originalTransform(a, b, c, d, e, f);\n };\n\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n this._transformMatrix = [a, b, c, d, e, f];\n\n ctx._originalSetTransform(a, b, c, d, e, f);\n };\n\n ctx.resetTransform = function ctxResetTransform() {\n this._transformMatrix = [1, 0, 0, 1, 0, 0];\n\n ctx._originalResetTransform();\n };\n\n ctx.rotate = function ctxRotate(angle) {\n const cosValue = Math.cos(angle);\n const sinValue = Math.sin(angle);\n const m = this._transformMatrix;\n 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]];\n\n this._originalRotate(angle);\n };\n}\n\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n\n getCanvas(id, width, height, trackTransform) {\n let canvasEntry;\n\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n canvasEntry.context.setTransform(1, 0, 0, 1, 0, 0);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n\n if (trackTransform) {\n addContextCurrentTransform(canvasEntry.context);\n }\n\n return canvasEntry;\n }\n\n delete(id) {\n delete this.cache[id];\n }\n\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n\n}\n\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = ctx.mozCurrentTransform;\n\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\n\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n\n if (!COMPILE_TYPE3_GLYPHS || width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n\n for (const elem of imgData.data) {\n let mask = 128;\n\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n\n let count = 0;\n pos = 0;\n\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n\n pos = lineSize * (height - 1);\n j0 = i * width1;\n\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n\n pos++;\n }\n\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n let path, outlines, coords;\n\n if (!_is_node.isNodeJS) {\n path = new Path2D();\n } else {\n outlines = [];\n }\n\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n\n while (p < end && !points[p]) {\n p++;\n }\n\n if (p === end) {\n continue;\n }\n\n if (path) {\n path.moveTo(p % width1, i);\n } else {\n coords = [p % width1, i];\n }\n\n const p0 = p;\n let type = points[p];\n\n do {\n const step = steps[type];\n\n do {\n p += step;\n } while (!points[p]);\n\n const pp = points[p];\n\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n\n if (path) {\n path.lineTo(p % width1, p / width1 | 0);\n } else {\n coords.push(p % width1, p / width1 | 0);\n }\n\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n\n if (!path) {\n outlines.push(coords);\n }\n\n --i;\n }\n\n data = null;\n points = null;\n\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n\n if (path) {\n c.fill(path);\n } else {\n c.beginPath();\n\n for (const o of outlines) {\n c.moveTo(o[0], o[1]);\n\n for (let l = 2, ll = o.length; l < ll; l += 2) {\n c.lineTo(o[l], o[l + 1]);\n }\n }\n\n c.fill();\n }\n\n c.beginPath();\n c.restore();\n };\n\n return drawOutline;\n}\n\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = null;\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n\n this.updateRectMinMax(transform, box);\n }\n\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n\n return box;\n }\n\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n\n isEmptyClip() {\n return this.minX === Infinity;\n }\n\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n\n}\n\nfunction putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n let white = 0xffffffff;\n let black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n\n destPos = 0;\n\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\n\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.applyMaskImageData)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\n\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n\n for (let i = 0, ii = properties.length; i < ii; i++) {\n const property = properties[i];\n\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\n\nfunction resetCtxToDefault(ctx, foregroundColor) {\n ctx.strokeStyle = ctx.fillStyle = foregroundColor || \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n}\n\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\n\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\n\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\n\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n let composeFn;\n\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\n\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\n\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n\n return false;\n}\n\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\n\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, imageLayer, optionalContentConfig, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.imageLayer = imageLayer;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.backgroundColor = pageColors?.background || null;\n this.foregroundColor = pageColors?.foreground || null;\n\n if (canvasCtx) {\n addContextCurrentTransform(canvasCtx);\n }\n\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n\n return fallback;\n }\n\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const defaultBackgroundColor = background || \"#ffffff\";\n this.ctx.save();\n\n if (this.foregroundColor && this.backgroundColor) {\n this.ctx.fillStyle = this.foregroundColor;\n const fg = this.foregroundColor = this.ctx.fillStyle;\n this.ctx.fillStyle = this.backgroundColor;\n const bg = this.backgroundColor = this.ctx.fillStyle;\n let isValidDefaultBg = true;\n let defaultBg = defaultBackgroundColor;\n this.ctx.fillStyle = defaultBackgroundColor;\n defaultBg = this.ctx.fillStyle;\n isValidDefaultBg = typeof defaultBg === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg);\n\n if (fg === \"#000000\" && bg === \"#ffffff\" || fg === bg || !isValidDefaultBg) {\n this.foregroundColor = this.backgroundColor = null;\n } else {\n const [rB, gB, bB] = (0, _display_utils.getRGB)(defaultBg);\n\n const newComp = x => {\n x /= 255;\n return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n };\n\n const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB));\n\n this.selectColor = (r, g, b) => {\n const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b);\n return Math.round(lumC) === lumB ? bg : fg;\n };\n }\n }\n\n this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor;\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height, true);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform.apply(this.ctx, this.compositeCtx.mozCurrentTransform);\n }\n\n this.ctx.save();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n\n if (transform) {\n this.ctx.transform.apply(this.ctx, transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n\n this.ctx.transform.apply(this.ctx, viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = this.ctx.mozCurrentTransform.slice();\n\n if (this.imageLayer) {\n this.imageLayer.beginLayout();\n }\n }\n\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n\n if (argsArrayLen === i) {\n return i;\n }\n\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n\n fnId = fnArray[i];\n\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n\n i++;\n\n if (i === argsArrayLen) {\n return i;\n }\n\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n\n steps = 0;\n }\n }\n }\n\n __restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n\n this.ctx.restore();\n\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n\n endDrawing() {\n this.__restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n\n cache.clear();\n }\n\n this._cachedBitmapsMap.clear();\n\n if (this.imageLayer) {\n this.imageLayer.endLayout();\n }\n }\n\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight, false);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = ctx.mozCurrentTransform;\n let cache, cacheKey, scaled, maskCanvas;\n\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n const withoutTranslation = currentTransform.slice(0, 4);\n cacheKey = JSON.stringify(isPatternFill ? withoutTranslation : [withoutTranslation, fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n\n if (!cache) {\n cache = new Map();\n\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n\n const cachedImage = cache.get(cacheKey);\n\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n\n scaled = cachedImage;\n }\n\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height, false);\n putBinaryImageMask(maskCanvas.context, img);\n }\n\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight, true);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform.apply(fillCtx, maskToCanvas);\n\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, fillCtx.mozCurrentTransformInverse);\n scaled = scaled.img;\n\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled(fillCtx.mozCurrentTransform, img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n\n const inverse = _util.Util.transform(fillCtx.mozCurrentTransformInverse, [1, 0, 0, 1, -offsetX, -offsetY]);\n\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking = null;\n }\n\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (let i = 0, ii = states.length; i < ii; i++) {\n const state = states[i];\n const key = state[0];\n const value = state[1];\n\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n\n case \"CA\":\n this.current.strokeAlpha = state[1];\n break;\n\n case \"ca\":\n this.current.fillAlpha = state[1];\n this.ctx.globalAlpha = state[1];\n break;\n\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform.apply(ctx, this.suspendedCtx.mozCurrentTransform);\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n\n this.ctx._removeMirroring();\n\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = ctx.mozCurrentTransform;\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n\n ctx.closePath();\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n\n break;\n\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n\n current.setCurrentPoint(x, y);\n }\n\n closePath() {\n this.ctx.closePath();\n }\n\n stroke(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n\n ctx.globalAlpha = this.current.fillAlpha;\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n fill(consumePath) {\n consumePath = typeof consumePath !== \"undefined\" ? consumePath : true;\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n\n const intersect = this.current.getClippedPathBoundingBox();\n\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n\n if (needRestore) {\n ctx.restore();\n }\n\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n\n endPath() {\n this.consumePath();\n }\n\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n\n ctx.save();\n ctx.beginPath();\n\n for (const path of paths) {\n ctx.setTransform.apply(ctx, path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n this.current.font = fontObj;\n this.current.fontSize = size;\n\n if (fontObj.isType3Font) {\n return;\n }\n\n const name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n\n if (patternTransform) {\n ctx.setTransform.apply(ctx, patternTransform);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: ctx.mozCurrentTransform,\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10, false);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return undefined;\n }\n\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n\n let patternTransform;\n\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL);\n patternTransform = ctx.mozCurrentTransform;\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n\n ctx.lineWidth = lineWidth;\n let x = 0,\n i;\n\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n ctx.restore();\n this.compose();\n return undefined;\n }\n\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform.apply(ctx, current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform.apply(ctx, fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n\n ctx.restore();\n this.processingType3 = null;\n }\n\n setCharWidth(xWidth, yWidth) {}\n\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n\n getColorN_Pattern(IR) {\n let pattern;\n\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || this.ctx.mozCurrentTransform.slice();\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory);\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n\n return pattern;\n }\n\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n\n setStrokeRGBColor(r, g, b) {\n const color = this.selectColor?.(r, g, b) || _util.Util.makeHexColor(r, g, b);\n\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n\n setFillRGBColor(r, g, b) {\n const color = this.selectColor?.(r, g, b) || _util.Util.makeHexColor(r, g, b);\n\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n\n _getPattern(objId, matrix = null) {\n let pattern;\n\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n\n if (matrix) {\n pattern.matrix = matrix;\n }\n\n return pattern;\n }\n\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n this.save();\n\n const pattern = this._getPattern(objId);\n\n ctx.fillStyle = pattern.getPattern(ctx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.SHADING);\n const inv = ctx.mozCurrentTransformInverse;\n\n if (inv) {\n const canvas = ctx.canvas;\n const width = canvas.width;\n const height = canvas.height;\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform.apply(this, matrix);\n }\n\n this.baseTransform = this.ctx.mozCurrentTransform;\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax(this.ctx.mozCurrentTransform, bbox);\n this.clip();\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.save();\n\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n\n const currentCtx = this.ctx;\n\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n\n const currentTransform = currentCtx.mozCurrentTransform;\n\n if (group.matrix) {\n currentCtx.transform.apply(currentCtx, group.matrix);\n }\n\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, currentCtx.mozCurrentTransform);\n\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight, true);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform.apply(groupCtx, currentTransform);\n\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = this.ctx.mozCurrentTransform;\n this.restore();\n this.ctx.save();\n this.ctx.setTransform.apply(this.ctx, currentMtx);\n\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.__restoreInitialState();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.save();\n this.save();\n\n if (this.baseTransform) {\n this.ctx.setTransform.apply(this.ctx, this.baseTransform);\n }\n\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale(this.ctx.mozCurrentTransform);\n\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n addContextCurrentTransform(this.ctx);\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx, this.foregroundColor);\n } else {\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform.apply(this, transform);\n this.transform.apply(this, matrix);\n }\n\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n\n const mask = this._createMaskCanvas(img);\n\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = ctx.mozCurrentTransform;\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n\n const mask = this._createMaskCanvas(img);\n\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n\n ctx.drawImage(mask.canvas, x, y);\n }\n\n ctx.restore();\n this.compose();\n }\n\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height, false);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, ctx.mozCurrentTransformInverse, _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform.apply(ctx, transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = this.getObject(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n\n const imgData = this.getObject(objId);\n\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height, false);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n\n const scaled = this._scaleImage(imgToPaint, ctx.mozCurrentTransformInverse);\n\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled(ctx.mozCurrentTransform, imgData.interpolate);\n const [rWidth, rHeight] = drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(0, -height);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: rWidth,\n height: rHeight\n });\n }\n\n this.compose();\n this.restore();\n }\n\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n\n const ctx = this.ctx;\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h, false);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n\n for (let i = 0, ii = map.length; i < ii; i++) {\n const entry = map[i];\n ctx.save();\n ctx.transform.apply(ctx, entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n\n if (this.imageLayer) {\n const position = this.getCanvasPosition(entry.x, entry.y);\n this.imageLayer.appendImage({\n imgData,\n left: position[0],\n top: position[1],\n width: w,\n height: h\n });\n }\n\n ctx.restore();\n }\n\n this.compose();\n }\n\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n\n markPoint(tag) {}\n\n markPointProps(tag, properties) {}\n\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n\n this.contentVisible = this.isContentVisible();\n }\n\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n\n beginCompat() {}\n\n endCompat() {}\n\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n\n const ctx = this.ctx;\n\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n\n this.pendingClip = null;\n }\n\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = this.ctx.mozCurrentTransform;\n\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n\n return this._cachedGetSinglePixelWidth;\n }\n\n getScaleForStroking() {\n if (!this._cachedScaleForStroking) {\n const {\n lineWidth\n } = this.current;\n const m = this.ctx.mozCurrentTransform;\n let scaleX, scaleY;\n\n if (m[1] === 0 && m[2] === 0) {\n const normX = Math.abs(m[0]);\n const normY = Math.abs(m[3]);\n\n if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[1]);\n const normY = Math.hypot(m[2], m[3]);\n\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n\n this._cachedScaleForStroking = [scaleX, scaleY];\n }\n\n return this._cachedScaleForStroking;\n }\n\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n\n let savedMatrix, savedDashes, savedDashOffset;\n\n if (saveRestore) {\n savedMatrix = ctx.mozCurrentTransform.slice();\n savedDashes = ctx.getLineDash().slice();\n savedDashOffset = ctx.lineDashOffset;\n }\n\n ctx.scale(scaleX, scaleY);\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(ctx.getLineDash().map(x => x / scale));\n ctx.lineDashOffset /= scale;\n ctx.stroke();\n\n if (saveRestore) {\n ctx.setTransform(...savedMatrix);\n ctx.setLineDash(savedDashes);\n ctx.lineDashOffset = savedDashOffset;\n }\n }\n\n getCanvasPosition(x, y) {\n const transform = this.ctx.mozCurrentTransform;\n return [transform[0] * x + transform[2] * y + transform[4], transform[1] * x + transform[3] * y + transform[5]];\n }\n\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n\n return true;\n }\n\n}\n\nexports.CanvasGraphics = CanvasGraphics;\n\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\n\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox || _is_node.isNodeJS) {\n return;\n }\n\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\n\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n\n}\n\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n\n _createGradient(ctx) {\n let grad;\n\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n\n return grad;\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, ctx.mozCurrentTransform) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform.apply(tmpCtx, owner.baseTransform);\n\n if (this.matrix) {\n tmpCtx.transform.apply(tmpCtx, this.matrix);\n }\n\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`RadialAxialShadingPattern.getPattern: \"${ex?.message}\".`);\n }\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n\n return pattern;\n }\n\n}\n\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n\n if (y1 >= y3) {\n return;\n }\n\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n\n if (y < y1) {\n k = 0;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n\n let k;\n\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\n\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n\n break;\n\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n\n break;\n\n default:\n throw new Error(\"illegal figure\");\n }\n}\n\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n\n if (backgroundColor) {\n const bytes = data.data;\n\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale(ctx.mozCurrentTransform);\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n\n if (pathType !== PathType.SHADING) {\n ctx.setTransform.apply(ctx, owner.baseTransform);\n\n if (this.matrix) {\n ctx.transform.apply(ctx, this.matrix);\n }\n }\n\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n\n}\n\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n\n}\n\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\n\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\n\nclass TilingPattern {\n static get MAX_PATTERN_SIZE() {\n return (0, _util.shadow)(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = graphics.ctx.mozCurrentTransform.slice();\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n\n return {\n scale,\n size\n };\n }\n\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax(graphics.ctx.mozCurrentTransform, [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n\n try {\n pattern.setTransform(domMatrix);\n } catch (ex) {\n (0, _util.warn)(`TilingPattern.getPattern: \"${ex?.message}\".`);\n }\n\n return pattern;\n }\n\n}\n\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false\n}) {\n const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n\n if (widthRemainder === 0) {\n continue;\n }\n\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n\n return {\n srcPos,\n destPos\n };\n}\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = GlobalWorkerOptions.workerPort === undefined ? null : GlobalWorkerOptions.workerPort;\nGlobalWorkerOptions.workerSrc = GlobalWorkerOptions.workerSrc === undefined ? \"\" : GlobalWorkerOptions.workerSrc;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\n\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\n\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n\n this._onComObjOnMessage = event => {\n const data = event.data;\n\n if (data.targetName !== this.sourceName) {\n return;\n }\n\n if (data.stream) {\n this._processStreamMessage(data);\n\n return;\n }\n\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n\n delete this.callbackCapabilities[callbackId];\n\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n\n return;\n }\n\n const action = this.actionHandler[data.action];\n\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n\n if (data.streamId) {\n this._createStreamSink(data);\n\n return;\n }\n\n action(data.data);\n };\n\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n\n on(actionName, handler) {\n const ah = this.actionHandler;\n\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n\n ah[actionName] = handler;\n }\n\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n\n return capability.promise;\n }\n\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n\n close() {\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n\n if (this.isCancelled) {\n return;\n }\n\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n\n break;\n\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.controller.enqueue(data.chunk);\n break;\n\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n\n if (streamController.isClosed) {\n break;\n }\n\n streamController.isClosed = true;\n streamController.controller.close();\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n\n this._deleteStreamController(streamController, streamId);\n\n break;\n\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n\n new Promise(function (resolve) {\n resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n\n async _deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n delete this.streamControllers[streamId];\n }\n\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n\n}\n\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nclass Metadata {\n #metadataMap;\n #data;\n\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n\n getRaw() {\n return this.#data;\n }\n\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n\n getAll() {\n return (0, _util.objectFromMap)(this.#metadataMap);\n }\n\n has(name) {\n return this.#metadataMap.has(name);\n }\n\n}\n\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nconst INTERNAL = Symbol(\"INTERNAL\");\n\nclass OptionalContentGroup {\n #visible = true;\n\n constructor(name, intent) {\n this.name = name;\n this.intent = intent;\n }\n\n get visible() {\n return this.#visible;\n }\n\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n\n this.#visible = visible;\n }\n\n}\n\nclass OptionalContentConfig {\n #cachedHasInitialVisibility = true;\n #groups = new Map();\n #initialVisibility = null;\n #order = null;\n\n constructor(data) {\n this.name = null;\n this.creator = null;\n\n if (data === null) {\n return;\n }\n\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n\n this.#initialVisibility = new Map();\n\n for (const [id, group] of this.#groups) {\n this.#initialVisibility.set(id, group.visible);\n }\n }\n\n __evaluateVisibilityExpression(array) {\n const length = array.length;\n\n if (length < 2) {\n return true;\n }\n\n const operator = array[0];\n\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n\n if (Array.isArray(element)) {\n state = this.__evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n\n break;\n\n case \"Or\":\n if (state) {\n return true;\n }\n\n break;\n\n case \"Not\":\n return !state;\n\n default:\n return true;\n }\n }\n\n return operator === \"And\";\n }\n\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.__evaluateVisibilityExpression(group.expression);\n }\n\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n\n return true;\n }\n\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n\n setVisibility(id, visible = true) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n\n this.#groups.get(id)._setVisible(INTERNAL, !!visible);\n\n this.#cachedHasInitialVisibility = null;\n }\n\n get hasInitialVisibility() {\n if (this.#cachedHasInitialVisibility !== null) {\n return this.#cachedHasInitialVisibility;\n }\n\n for (const [id, group] of this.#groups) {\n const visible = this.#initialVisibility.get(id);\n\n if (group.visible !== visible) {\n return this.#cachedHasInitialVisibility = false;\n }\n }\n\n return this.#cachedHasInitialVisibility = true;\n }\n\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n\n if (this.#order) {\n return this.#order.slice();\n }\n\n return [...this.#groups.keys()];\n }\n\n getGroups() {\n return this.#groups.size > 0 ? (0, _util.objectFromMap)(this.#groups) : null;\n }\n\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n\n}\n\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nclass PDFDataTransportStream {\n constructor(params, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = params.progressiveDone || false;\n this._contentDispositionFilename = params.contentDispositionFilename || null;\n const initialData = params.initialData;\n\n if (initialData?.length > 0) {\n const buffer = new Uint8Array(initialData).buffer;\n\n this._queuedChunks.push(buffer);\n }\n\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !params.disableStream;\n this._isRangeSupported = !params.disableRange;\n this._contentLength = params.length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n\n this._pdfDataRangeTransport.transportReady();\n }\n\n _onReceiveData(args) {\n const buffer = new Uint8Array(args.chunk).buffer;\n\n if (args.begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== args.begin) {\n return false;\n }\n\n rangeReader._enqueue(buffer);\n\n return true;\n });\n\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n _onProgress(evt) {\n if (evt.total === undefined) {\n const firstReader = this._rangeReaders[0];\n\n if (firstReader?.onProgress) {\n firstReader.onProgress({\n loaded: evt.loaded\n });\n }\n } else {\n const fullReader = this._fullRequestReader;\n\n if (fullReader?.onProgress) {\n fullReader.onProgress({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n }\n\n _onProgressiveDone() {\n if (this._fullRequestReader) {\n this._fullRequestReader.progressiveDone();\n }\n\n this._progressiveDone = true;\n }\n\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n\n this._rangeReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n\n this._pdfDataRangeTransport.abort();\n }\n\n}\n\nexports.PDFDataTransportStream = PDFDataTransportStream;\n\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n\n this._loaded += chunk.byteLength;\n }\n\n get headersReady() {\n return this._headersReady;\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n\n get contentLength() {\n return this._stream._contentLength;\n }\n\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n progressiveDone() {\n if (this._done) {\n return;\n }\n\n this._done = true;\n }\n\n}\n\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n this._done = true;\n\n this._stream._removeRangeReader(this);\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._stream._removeRangeReader(this);\n }\n\n}\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\n\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n\n function walk(node) {\n if (!node) {\n return;\n }\n\n let str = null;\n const name = node.name;\n\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n\n if (str !== null) {\n items.push({\n str\n });\n }\n\n if (!node.children) {\n return;\n }\n\n for (const child of node.children) {\n walk(child);\n }\n }\n\n walk(xfa);\n return output;\n }\n\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n\n}\n\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\n\nvar _base_factory = __w_pdfjs_require__(5);\n\n;\n\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n\n resolve(new Uint8Array(data));\n });\n });\n};\n\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n\n return Canvas.createCanvas(width, height);\n }\n\n}\n\nexports.NodeCanvasFactory = NodeCanvasFactory;\n\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n\n}\n\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\n\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n\n}\n\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _tools = __w_pdfjs_require__(9);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nvar _freetext = __w_pdfjs_require__(23);\n\nvar _ink = __w_pdfjs_require__(24);\n\nclass AnnotationEditorLayer {\n #allowClick = false;\n #boundPointerup = this.pointerup.bind(this);\n #boundPointerdown = this.pointerdown.bind(this);\n #editors = new Map();\n #isCleaningUp = false;\n #textLayerMap = new WeakMap();\n #textNodes = new Map();\n #uiManager;\n #waitingEditors = new Set();\n static _initialized = false;\n\n constructor(options) {\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n\n _freetext.FreeTextEditor.initialize(options.l10n);\n\n _ink.InkEditor.initialize(options.l10n);\n\n options.uiManager.registerEditorTypes([_freetext.FreeTextEditor, _ink.InkEditor]);\n }\n\n this.#uiManager = options.uiManager;\n this.annotationStorage = options.annotationStorage;\n this.pageIndex = options.pageIndex;\n this.div = options.div;\n this.#uiManager.addLayer(this);\n }\n\n get textLayerElements() {\n const textLayer = this.div.parentNode.getElementsByClassName(\"textLayer\").item(0);\n\n if (!textLayer) {\n return (0, _util.shadow)(this, \"textLayerElements\", null);\n }\n\n let textChildren = this.#textLayerMap.get(textLayer);\n\n if (textChildren) {\n return textChildren;\n }\n\n textChildren = textLayer.querySelectorAll(`span[role=\"presentation\"]`);\n\n if (textChildren.length === 0) {\n return (0, _util.shadow)(this, \"textLayerElements\", null);\n }\n\n textChildren = Array.from(textChildren);\n textChildren.sort(AnnotationEditorLayer.__compareElementPositions);\n this.#textLayerMap.set(textLayer, textChildren);\n return textChildren;\n }\n\n get __hasTextLayer() {\n return !!this.div.parentNode.querySelector(\".textLayer .endOfContent\");\n }\n\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n\n updateMode(mode = this.#uiManager.getMode()) {\n this.__cleanup();\n\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n\n this.#uiManager.unselectAll();\n }\n\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n\n const editor = this.__createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n });\n editor.setInBackground();\n }\n\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n\n enable() {\n this.div.style.pointerEvents = \"auto\";\n\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n }\n }\n\n disable() {\n this.div.style.pointerEvents = \"none\";\n\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n }\n }\n\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n\n if (currentActive === editor) {\n return;\n }\n\n this.#uiManager.setActiveEditor(editor);\n }\n\n enableClick() {\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n }\n\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n }\n\n attach(editor) {\n this.#editors.set(editor.id, editor);\n }\n\n detach(editor) {\n this.#editors.delete(editor.id);\n this.removePointerInTextLayer(editor);\n }\n\n remove(editor) {\n this.#uiManager.removeEditor(editor);\n this.detach(editor);\n this.annotationStorage.removeKey(editor.id);\n editor.div.style.display = \"none\";\n setTimeout(() => {\n editor.div.style.display = \"\";\n editor.div.remove();\n editor.isAttachedToDOM = false;\n\n if (document.activeElement === document.body) {\n this.#uiManager.focusMainContainer();\n }\n }, 0);\n\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n\n __changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n\n this.attach(editor);\n editor.pageIndex = this.pageIndex;\n editor.parent?.detach(editor);\n editor.parent = this;\n\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n\n static __compareElementPositions(e1, e2) {\n const rect1 = e1.getBoundingClientRect();\n const rect2 = e2.getBoundingClientRect();\n\n if (rect1.y + rect1.height <= rect2.y) {\n return -1;\n }\n\n if (rect2.y + rect2.height <= rect1.y) {\n return +1;\n }\n\n const centerX1 = rect1.x + rect1.width / 2;\n const centerX2 = rect2.x + rect2.width / 2;\n return centerX1 - centerX2;\n }\n\n onTextLayerRendered() {\n this.#textNodes.clear();\n\n for (const editor of this.#waitingEditors) {\n if (editor.isAttachedToDOM) {\n this.addPointerInTextLayer(editor);\n }\n }\n\n this.#waitingEditors.clear();\n }\n\n removePointerInTextLayer(editor) {\n if (!this.__hasTextLayer) {\n this.#waitingEditors.delete(editor);\n return;\n }\n\n const {\n id\n } = editor;\n const node = this.#textNodes.get(id);\n\n if (!node) {\n return;\n }\n\n this.#textNodes.delete(id);\n let owns = node.getAttribute(\"aria-owns\");\n\n if (owns?.includes(id)) {\n owns = owns.split(\" \").filter(x => x !== id).join(\" \");\n\n if (owns) {\n node.setAttribute(\"aria-owns\", owns);\n } else {\n node.removeAttribute(\"aria-owns\");\n node.setAttribute(\"role\", \"presentation\");\n }\n }\n }\n\n addPointerInTextLayer(editor) {\n if (!this.__hasTextLayer) {\n this.#waitingEditors.add(editor);\n return;\n }\n\n this.removePointerInTextLayer(editor);\n const children = this.textLayerElements;\n\n if (!children) {\n return;\n }\n\n const {\n contentDiv\n } = editor;\n const id = editor.getIdForTextLayer();\n const index = (0, _display_utils.binarySearchFirstItem)(children, node => AnnotationEditorLayer.__compareElementPositions(contentDiv, node) < 0);\n const node = children[Math.max(0, index - 1)];\n const owns = node.getAttribute(\"aria-owns\");\n\n if (!owns?.includes(id)) {\n node.setAttribute(\"aria-owns\", owns ? `${owns} ${id}` : id);\n }\n\n node.removeAttribute(\"role\");\n this.#textNodes.set(id, node);\n }\n\n moveDivInDOM(editor) {\n this.addPointerInTextLayer(editor);\n const {\n div,\n contentDiv\n } = editor;\n\n if (!this.div.hasChildNodes()) {\n this.div.append(div);\n return;\n }\n\n const children = Array.from(this.div.childNodes).filter(node => node !== div);\n\n if (children.length === 0) {\n return;\n }\n\n const index = (0, _display_utils.binarySearchFirstItem)(children, node => AnnotationEditorLayer.__compareElementPositions(contentDiv, node) < 0);\n\n if (index === 0) {\n children[0].before(div);\n } else {\n children[index - 1].after(div);\n }\n }\n\n add(editor) {\n this.__changeParent(editor);\n this.addToAnnotationStorage(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n\n this.moveDivInDOM(editor);\n editor.onceAdded();\n }\n\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && !this.annotationStorage.has(editor.id)) {\n this.annotationStorage.setValue(editor.id, editor);\n }\n }\n\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n\n addANewEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n\n const undo = () => {\n editor.remove();\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n addUndoableEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n\n const undo = () => {\n editor.remove();\n };\n\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n\n getNextId() {\n return this.#uiManager.getId();\n }\n\n __createNewEditor(params) {\n switch (this.#uiManager.getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n }\n\n return null;\n }\n\n deserialize(data) {\n switch (data.annotationType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this);\n\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this);\n }\n\n return null;\n }\n\n __createAndAddNewEditor(event) {\n const id = this.getNextId();\n const editor = this.__createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY\n });\n\n if (editor) {\n this.add(editor);\n }\n\n return editor;\n }\n\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n\n pointerup(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n\n if (event.target !== this.div) {\n return;\n }\n\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n\n this.__createAndAddNewEditor(event);\n }\n\n pointerdown(event) {\n const isMac = _tools.KeyboardManager.platform.isMac;\n\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n\n if (event.target !== this.div) {\n return;\n }\n\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n\n drop(event) {\n const id = event.dataTransfer.getData(\"text/plain\");\n const editor = this.#uiManager.getEditor(id);\n\n if (!editor) {\n return;\n }\n\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n this.__changeParent(editor);\n const rect = this.div.getBoundingClientRect();\n const endX = event.clientX - rect.x;\n const endY = event.clientY - rect.y;\n editor.translate(endX - editor.startX, endY - editor.startY);\n this.moveDivInDOM(editor);\n editor.div.focus();\n }\n\n dragover(event) {\n event.preventDefault();\n }\n\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.setActiveEditor(null);\n }\n\n for (const editor of this.#editors.values()) {\n this.removePointerInTextLayer(editor);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n editor.parent = null;\n }\n\n this.#textNodes.clear();\n this.div = null;\n this.#editors.clear();\n this.#waitingEditors.clear();\n this.#uiManager.removeLayer(this);\n }\n\n __cleanup() {\n this.#isCleaningUp = true;\n\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n\n this.#isCleaningUp = false;\n }\n\n render(parameters) {\n this.viewport = parameters.viewport;\n (0, _tools.bindEvents)(this, this.div, [\"dragover\", \"drop\"]);\n this.setDimensions();\n\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n }\n\n this.updateMode();\n }\n\n update(parameters) {\n this.viewport = parameters.viewport;\n this.setDimensions();\n this.updateMode();\n }\n\n get scaleFactor() {\n return this.viewport.scale;\n }\n\n get pageDimensions() {\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const width = pageURx - pageLLx;\n const height = pageURy - pageLLy;\n return [width, height];\n }\n\n get viewportBaseDimensions() {\n const {\n width,\n height,\n rotation\n } = this.viewport;\n return rotation % 180 === 0 ? [width, height] : [height, width];\n }\n\n setDimensions() {\n const {\n width,\n height,\n rotation\n } = this.viewport;\n const flipOrientation = rotation % 180 !== 0,\n widthStr = Math.floor(width) + \"px\",\n heightStr = Math.floor(height) + \"px\";\n this.div.style.width = flipOrientation ? heightStr : widthStr;\n this.div.style.height = flipOrientation ? widthStr : heightStr;\n this.div.setAttribute(\"data-main-rotation\", rotation);\n }\n\n}\n\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _tools = __w_pdfjs_require__(9);\n\nvar _editor = __w_pdfjs_require__(8);\n\nclass FreeTextEditor extends _editor.AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #color;\n #content = \"\";\n #contentHTML = \"\";\n #hasAlreadyBeenCommitted = false;\n #fontSize;\n static _freeTextDefaultContent = \"\";\n static _l10nPromise;\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static _keyboardManager = new _tools.KeyboardManager([[[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], FreeTextEditor.prototype.commitOrRemove]]);\n\n constructor(params) {\n super({ ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n\n static initialize(l10n) {\n this._l10nPromise = new Map([\"free_text_default_content\", \"editor_free_text_aria_label\"].map(str => [str, l10n.get(str)]));\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n this.__updateFontSize(value);\n break;\n\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n this.__updateColor(value);\n break;\n }\n }\n\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n\n __updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parent.scaleFactor);\n this.#fontSize = size;\n this.__setEditorDimensions();\n };\n\n const savedFontsize = this.#fontSize;\n this.parent.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n __updateColor(color) {\n const savedColor = this.#color;\n this.parent.addCommands({\n cmd: () => {\n this.#color = color;\n this.editorDiv.style.color = color;\n },\n undo: () => {\n this.#color = savedColor;\n this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n getInitialTranslation() {\n return [-FreeTextEditor._internalPadding * this.parent.scaleFactor, -(FreeTextEditor._internalPadding + this.#fontSize) * this.parent.scaleFactor];\n }\n\n rebuild() {\n super.rebuild();\n\n if (this.div === null) {\n return;\n }\n\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this.div.draggable = false;\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n }\n\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.draggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.div.focus();\n this.isEditing = false;\n }\n\n focusin(event) {\n super.focusin(event);\n\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n\n onceAdded() {\n if (this.width) {\n return;\n }\n\n this.enableEditMode();\n this.editorDiv.focus();\n }\n\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n\n remove() {\n this.isEditing = false;\n this.parent.setEditingState(true);\n super.remove();\n }\n\n __extractText() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n\n const buffer = [];\n\n for (let i = 0, ii = divs.length; i < ii; i++) {\n const div = divs[i];\n const first = div.firstChild;\n\n if (first?.nodeName === \"#text\") {\n buffer.push(first.data);\n } else {\n buffer.push(\"\");\n }\n }\n\n return buffer.join(\"\\n\");\n }\n\n __setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n const rect = this.div.getBoundingClientRect();\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n }\n\n commit() {\n super.commit();\n\n if (!this.#hasAlreadyBeenCommitted) {\n this.#hasAlreadyBeenCommitted = true;\n this.parent.addUndoableEditor(this);\n }\n\n this.disableEditMode();\n this.#contentHTML = this.editorDiv.innerHTML;\n this.#content = this.__extractText().trimEnd();\n this.__setEditorDimensions();\n }\n\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n\n dblclick(event) {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n }\n\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n\n editorDivFocus(event) {\n this.isEditing = true;\n }\n\n editorDivBlur(event) {\n this.isEditing = false;\n }\n\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n\n getIdForTextLayer() {\n return this.editorDiv.id;\n }\n\n render() {\n if (this.div) {\n return this.div;\n }\n\n let baseX, baseY;\n\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", `${this.id}-editor`);\n this.enableEditing();\n\n FreeTextEditor._l10nPromise.get(\"editor_free_text_aria_label\").then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n\n FreeTextEditor._l10nPromise.get(\"free_text_default_content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n\n if (this.width) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.editorDiv.innerHTML = this.#contentHTML;\n this.div.draggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this.div.draggable = false;\n this.editorDiv.contentEditable = true;\n }\n\n return this.div;\n }\n\n get contentDiv() {\n return this.editorDiv;\n }\n\n static deserialize(data, parent) {\n const editor = super.deserialize(data, parent);\n editor.#fontSize = data.fontSize;\n editor.#color = _util.Util.makeHexColor(...data.color);\n editor.#content = data.value;\n editor.#contentHTML = data.value.split(\"\\n\").map(line => `<div>${line}</div>`).join(\"\");\n return editor;\n }\n\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n\n const padding = FreeTextEditor._internalPadding * this.parent.scaleFactor;\n const rect = this.getRect(padding, padding);\n\n const color = _editor.AnnotationEditor._colorManager.convert(getComputedStyle(this.editorDiv).color);\n\n return {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#content,\n pageIndex: this.parent.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n\n}\n\nexports.FreeTextEditor = FreeTextEditor;\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nObject.defineProperty(exports, \"fitCurve\", ({\n enumerable: true,\n get: function () {\n return _pdfjsFitCurve.fitCurve;\n }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _editor = __w_pdfjs_require__(8);\n\nvar _pdfjsFitCurve = __w_pdfjs_require__(25);\n\nvar _tools = __w_pdfjs_require__(9);\n\nconst RESIZER_SIZE = 16;\n\nclass InkEditor extends _editor.AnnotationEditor {\n #aspectRatio = 0;\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #disableEditing = false;\n #isCanvasInitialized = false;\n #lastPoint = null;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _l10nPromise;\n\n constructor(params) {\n super({ ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n }\n\n static initialize(l10n) {\n this._l10nPromise = new Map([\"editor_ink_canvas_aria_label\", \"editor_ink_aria_label\"].map(str => [str, l10n.get(str)]));\n }\n\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n this.__updateThickness(value);\n break;\n\n case _util.AnnotationEditorParamsType.INK_COLOR:\n this.__updateColor(value);\n break;\n\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n this.__updateOpacity(value);\n break;\n }\n }\n\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n\n __updateThickness(thickness) {\n const savedThickness = this.thickness;\n this.parent.addCommands({\n cmd: () => {\n this.thickness = thickness;\n this.__fitToContent();\n },\n undo: () => {\n this.thickness = savedThickness;\n this.__fitToContent();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n __updateColor(color) {\n const savedColor = this.color;\n this.parent.addCommands({\n cmd: () => {\n this.color = color;\n this.__redraw();\n },\n undo: () => {\n this.color = savedColor;\n this.__redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n __updateOpacity(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.parent.addCommands({\n cmd: () => {\n this.opacity = opacity;\n this.__redraw();\n },\n undo: () => {\n this.opacity = savedOpacity;\n this.__redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n\n rebuild() {\n super.rebuild();\n\n if (this.div === null) {\n return;\n }\n\n if (!this.canvas) {\n this.__createCanvas();\n this.__createObserver();\n }\n\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.__setCanvasDims();\n }\n\n this.__fitToContent();\n }\n\n remove() {\n if (this.canvas === null) {\n return;\n }\n\n if (!this.isEmpty()) {\n this.commit();\n }\n\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n this.#observer.disconnect();\n this.#observer = null;\n super.remove();\n }\n\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n\n super.enableEditMode();\n this.div.draggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n }\n\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n\n super.disableEditMode();\n this.div.draggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n }\n\n onceAdded() {\n this.div.draggable = !this.isEmpty();\n }\n\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n\n __getInitialBBox() {\n const {\n width,\n height,\n rotation\n } = this.parent.viewport;\n\n switch (rotation) {\n case 90:\n return [0, width, width, height];\n\n case 180:\n return [width, height, width, height];\n\n case 270:\n return [height, 0, width, height];\n\n default:\n return [0, 0, width, height];\n }\n }\n\n __setStroke() {\n this.ctx.lineWidth = this.thickness * this.parent.scaleFactor / this.scaleFactor;\n this.ctx.lineCap = \"round\";\n this.ctx.lineJoin = \"round\";\n this.ctx.miterLimit = 10;\n this.ctx.strokeStyle = `${this.color}${(0, _tools.opacityToHex)(this.opacity)}`;\n }\n\n __startDrawing(x, y) {\n this.isEditing = true;\n\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.__setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n\n this.currentPath.push([x, y]);\n this.#lastPoint = null;\n this.__setStroke();\n this.ctx.beginPath();\n this.ctx.moveTo(x, y);\n\n this.#requestFrameCallback = () => {\n if (!this.#requestFrameCallback) {\n return;\n }\n\n if (this.#lastPoint) {\n if (this.isEmpty()) {\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n } else {\n this.__redraw();\n }\n\n this.ctx.lineTo(...this.#lastPoint);\n this.#lastPoint = null;\n this.ctx.stroke();\n }\n\n window.requestAnimationFrame(this.#requestFrameCallback);\n };\n\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n\n __draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n\n if (x === lastX && y === lastY) {\n return;\n }\n\n this.currentPath.push([x, y]);\n this.#lastPoint = [x, y];\n }\n\n __stopDrawing(x, y) {\n this.ctx.closePath();\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n const [lastX, lastY] = this.currentPath.at(-1);\n\n if (x !== lastX || y !== lastY) {\n this.currentPath.push([x, y]);\n }\n\n let bezier;\n\n if (this.currentPath.length !== 1) {\n bezier = (0, _pdfjsFitCurve.fitCurve)(this.currentPath, 30, null);\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n\n const path2D = InkEditor.__buildPath2D(bezier);\n this.currentPath.length = 0;\n\n const cmd = () => {\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n\n const undo = () => {\n this.paths.pop();\n this.bezierPath2D.pop();\n\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.__createCanvas();\n this.__createObserver();\n }\n\n this.__fitToContent();\n }\n };\n\n this.parent.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n\n __redraw() {\n if (this.isEmpty()) {\n this.__updateTransform();\n return;\n }\n\n this.__setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.__updateTransform();\n\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n\n commit() {\n if (this.#disableEditing) {\n return;\n }\n\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.__fitToContent(true);\n this.parent.addInkEditorIfNeeded(true);\n this.parent.moveDivInDOM(this);\n this.div.focus();\n }\n\n focusin(event) {\n super.focusin(event);\n this.enableEditMode();\n }\n\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n\n this.setInForeground();\n\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n\n event.stopPropagation();\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.__startDrawing(event.offsetX, event.offsetY);\n }\n\n canvasPointermove(event) {\n event.stopPropagation();\n this.__draw(event.offsetX, event.offsetY);\n }\n\n canvasPointerup(event) {\n if (event.button !== 0) {\n return;\n }\n\n if (this.isInEditMode() && this.currentPath.length !== 0) {\n event.stopPropagation();\n this.__endDrawing(event);\n this.setInBackground();\n }\n }\n\n canvasPointerleave(event) {\n this.__endDrawing(event);\n this.setInBackground();\n }\n\n __endDrawing(event) {\n this.__stopDrawing(event.offsetX, event.offsetY);\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.parent.addToAnnotationStorage(this);\n }\n\n __createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n\n InkEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n\n __createObserver() {\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n\n if (rect.width && rect.height) {\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n\n render() {\n if (this.div) {\n return this.div;\n }\n\n let baseX, baseY;\n\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n\n super.render();\n\n InkEditor._l10nPromise.get(\"editor_ink_aria_label\").then(msg => this.div?.setAttribute(\"aria-label\", msg));\n\n const [x, y, w, h] = this.__getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.__createCanvas();\n\n if (this.width) {\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.__setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.__redraw();\n this.__setMinDims();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n\n this.__createObserver();\n return this.div;\n }\n\n __setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.__updateTransform();\n }\n\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n\n if (this.#aspectRatio && Math.abs(this.#aspectRatio - width / height) > 1e-2) {\n height = Math.ceil(width / this.#aspectRatio);\n this.setDims(width, height);\n }\n\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n\n if (this.#disableEditing) {\n this.__setScaleFactor(width, height);\n }\n\n this.__setCanvasDims();\n this.__redraw();\n this.canvas.style.visibility = \"visible\";\n }\n\n __setScaleFactor(width, height) {\n const padding = this.__getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n\n __updateTransform() {\n const padding = this.__getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n\n static __buildPath2D(bezier) {\n const path2D = new Path2D();\n\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n\n if (i === 0) {\n path2D.moveTo(...first);\n }\n\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n\n return path2D;\n }\n\n __serializePaths(s, tx, ty, h) {\n const NUMBER_OF_POINTS_ON_BEZIER_CURVE = 4;\n const paths = [];\n const padding = this.thickness / 2;\n let buffer, points;\n\n for (const bezier of this.paths) {\n buffer = [];\n points = [];\n\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n const p10 = s * (first[0] + tx) + padding;\n const p11 = h - s * (first[1] + ty) - padding;\n const p20 = s * (control1[0] + tx) + padding;\n const p21 = h - s * (control1[1] + ty) - padding;\n const p30 = s * (control2[0] + tx) + padding;\n const p31 = h - s * (control2[1] + ty) - padding;\n const p40 = s * (second[0] + tx) + padding;\n const p41 = h - s * (second[1] + ty) - padding;\n\n if (i === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n\n buffer.push(p20, p21, p30, p31, p40, p41);\n this.__extractPointsOnBezier(p10, p11, p20, p21, p30, p31, p40, p41, NUMBER_OF_POINTS_ON_BEZIER_CURVE, points);\n }\n\n paths.push({\n bezier: buffer,\n points\n });\n }\n\n return paths;\n }\n\n __extractPointsOnBezier(p10, p11, p20, p21, p30, p31, p40, p41, n, points) {\n if (this.__isAlmostFlat(p10, p11, p20, p21, p30, p31, p40, p41)) {\n points.push(p40, p41);\n return;\n }\n\n for (let i = 1; i < n - 1; i++) {\n const t = i / n;\n const mt = 1 - t;\n let q10 = t * p10 + mt * p20;\n let q11 = t * p11 + mt * p21;\n let q20 = t * p20 + mt * p30;\n let q21 = t * p21 + mt * p31;\n const q30 = t * p30 + mt * p40;\n const q31 = t * p31 + mt * p41;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n q20 = t * q20 + mt * q30;\n q21 = t * q21 + mt * q31;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n points.push(q10, q11);\n }\n\n points.push(p40, p41);\n }\n\n __isAlmostFlat(p10, p11, p20, p21, p30, p31, p40, p41) {\n const tol = 10;\n const ax = (3 * p20 - 2 * p10 - p40) ** 2;\n const ay = (3 * p21 - 2 * p11 - p41) ** 2;\n const bx = (3 * p30 - p10 - 2 * p40) ** 2;\n const by = (3 * p31 - p11 - 2 * p41) ** 2;\n return Math.max(ax, bx) + Math.max(ay, by) <= tol;\n }\n\n __getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n\n return [xMin, yMin, xMax, yMax];\n }\n\n __getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parent.scaleFactor) : 0;\n }\n\n __fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n\n if (!this.#disableEditing) {\n this.__redraw();\n return;\n }\n\n const bbox = this.__getBbox();\n const padding = this.__getPadding();\n this.#baseWidth = Math.max(RESIZER_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(RESIZER_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parent.viewportBaseDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.#aspectRatio = width / height;\n this.__setMinDims();\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.__setCanvasDims();\n this.__redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n\n __setMinDims() {\n const {\n style\n } = this.div;\n\n if (this.#aspectRatio >= 1) {\n style.minHeight = `${RESIZER_SIZE}px`;\n style.minWidth = `${Math.round(this.#aspectRatio * RESIZER_SIZE)}px`;\n } else {\n style.minWidth = `${RESIZER_SIZE}px`;\n style.minHeight = `${Math.round(RESIZER_SIZE / this.#aspectRatio)}px`;\n }\n }\n\n static deserialize(data, parent) {\n const editor = super.deserialize(data, parent);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = parent.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = parent.scaleFactor;\n const padding = data.thickness / 2;\n editor.#aspectRatio = width / height;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n\n for (const {\n bezier\n } of data.paths) {\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (height - bezier[1] - padding);\n\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (height - bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (height - bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (height - bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n\n const path2D = this.__buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n\n const bbox = editor.__getBbox();\n editor.#baseWidth = bbox[2] - bbox[0];\n editor.#baseHeight = bbox[3] - bbox[1];\n editor.__setScaleFactor(width, height);\n return editor;\n }\n\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n\n const rect = this.getRect(0, 0);\n const height = this.rotation % 180 === 0 ? rect[3] - rect[1] : rect[2] - rect[0];\n\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.__serializePaths(this.scaleFactor / this.parent.scaleFactor, this.translationX, this.translationY, height),\n pageIndex: this.parent.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n\n}\n\nexports.InkEditor = InkEditor;\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.fitCurve = void 0;\n\nconst fitCurve = __w_pdfjs_require__(26);\n\nexports.fitCurve = fitCurve;\n\n/***/ }),\n/* 26 */\n/***/ ((module) => {\n\n\n\nfunction fitCurve(points, maxError, progressCallback) {\n if (!Array.isArray(points)) {\n throw new TypeError(\"First argument should be an array\");\n }\n\n points.forEach(point => {\n if (!Array.isArray(point) || point.some(item => typeof item !== 'number') || point.length !== points[0].length) {\n throw Error(\"Each point should be an array of numbers. Each point should have the same amount of numbers.\");\n }\n });\n points = points.filter((point, i) => i === 0 || !point.every((val, j) => val === points[i - 1][j]));\n\n if (points.length < 2) {\n return [];\n }\n\n const len = points.length;\n const leftTangent = createTangent(points[1], points[0]);\n const rightTangent = createTangent(points[len - 2], points[len - 1]);\n return fitCubic(points, leftTangent, rightTangent, maxError, progressCallback);\n}\n\nfunction fitCubic(points, leftTangent, rightTangent, error, progressCallback) {\n const MaxIterations = 20;\n var bezCurve, u, uPrime, maxError, prevErr, splitPoint, prevSplit, centerVector, toCenterTangent, fromCenterTangent, beziers, dist, i;\n\n if (points.length === 2) {\n dist = maths.vectorLen(maths.subtract(points[0], points[1])) / 3.0;\n bezCurve = [points[0], maths.addArrays(points[0], maths.mulItems(leftTangent, dist)), maths.addArrays(points[1], maths.mulItems(rightTangent, dist)), points[1]];\n return [bezCurve];\n }\n\n u = chordLengthParameterize(points);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, u, leftTangent, rightTangent, progressCallback);\n\n if (maxError === 0 || maxError < error) {\n return [bezCurve];\n }\n\n if (maxError < error * error) {\n uPrime = u;\n prevErr = maxError;\n prevSplit = splitPoint;\n\n for (i = 0; i < MaxIterations; i++) {\n uPrime = reparameterize(bezCurve, points, uPrime);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, uPrime, leftTangent, rightTangent, progressCallback);\n\n if (maxError < error) {\n return [bezCurve];\n } else if (splitPoint === prevSplit) {\n let errChange = maxError / prevErr;\n\n if (errChange > .9999 && errChange < 1.0001) {\n break;\n }\n }\n\n prevErr = maxError;\n prevSplit = splitPoint;\n }\n }\n\n beziers = [];\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint + 1]);\n\n if (centerVector.every(val => val === 0)) {\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint]);\n [centerVector[0], centerVector[1]] = [-centerVector[1], centerVector[0]];\n }\n\n toCenterTangent = maths.normalize(centerVector);\n fromCenterTangent = maths.mulItems(toCenterTangent, -1);\n beziers = beziers.concat(fitCubic(points.slice(0, splitPoint + 1), leftTangent, toCenterTangent, error, progressCallback));\n beziers = beziers.concat(fitCubic(points.slice(splitPoint), fromCenterTangent, rightTangent, error, progressCallback));\n return beziers;\n}\n\n;\n\nfunction generateAndReport(points, paramsOrig, paramsPrime, leftTangent, rightTangent, progressCallback) {\n var bezCurve, maxError, splitPoint;\n bezCurve = generateBezier(points, paramsPrime, leftTangent, rightTangent, progressCallback);\n [maxError, splitPoint] = computeMaxError(points, bezCurve, paramsOrig);\n\n if (progressCallback) {\n progressCallback({\n bez: bezCurve,\n points: points,\n params: paramsOrig,\n maxErr: maxError,\n maxPoint: splitPoint\n });\n }\n\n return [bezCurve, maxError, splitPoint];\n}\n\nfunction generateBezier(points, parameters, leftTangent, rightTangent) {\n var bezCurve,\n A,\n a,\n C,\n X,\n det_C0_C1,\n det_C0_X,\n det_X_C1,\n alpha_l,\n alpha_r,\n epsilon,\n segLength,\n i,\n len,\n tmp,\n u,\n ux,\n firstPoint = points[0],\n lastPoint = points[points.length - 1];\n bezCurve = [firstPoint, null, null, lastPoint];\n A = maths.zeros_Xx2x2(parameters.length);\n\n for (i = 0, len = parameters.length; i < len; i++) {\n u = parameters[i];\n ux = 1 - u;\n a = A[i];\n a[0] = maths.mulItems(leftTangent, 3 * u * (ux * ux));\n a[1] = maths.mulItems(rightTangent, 3 * ux * (u * u));\n }\n\n C = [[0, 0], [0, 0]];\n X = [0, 0];\n\n for (i = 0, len = points.length; i < len; i++) {\n u = parameters[i];\n a = A[i];\n C[0][0] += maths.dot(a[0], a[0]);\n C[0][1] += maths.dot(a[0], a[1]);\n C[1][0] += maths.dot(a[0], a[1]);\n C[1][1] += maths.dot(a[1], a[1]);\n tmp = maths.subtract(points[i], bezier.q([firstPoint, firstPoint, lastPoint, lastPoint], u));\n X[0] += maths.dot(a[0], tmp);\n X[1] += maths.dot(a[1], tmp);\n }\n\n det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1];\n det_C0_X = C[0][0] * X[1] - C[1][0] * X[0];\n det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1];\n alpha_l = det_C0_C1 === 0 ? 0 : det_X_C1 / det_C0_C1;\n alpha_r = det_C0_C1 === 0 ? 0 : det_C0_X / det_C0_C1;\n segLength = maths.vectorLen(maths.subtract(firstPoint, lastPoint));\n epsilon = 1.0e-6 * segLength;\n\n if (alpha_l < epsilon || alpha_r < epsilon) {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, segLength / 3.0));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, segLength / 3.0));\n } else {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, alpha_l));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, alpha_r));\n }\n\n return bezCurve;\n}\n\n;\n\nfunction reparameterize(bezier, points, parameters) {\n return parameters.map((p, i) => newtonRaphsonRootFind(bezier, points[i], p));\n}\n\n;\n\nfunction newtonRaphsonRootFind(bez, point, u) {\n var d = maths.subtract(bezier.q(bez, u), point),\n qprime = bezier.qprime(bez, u),\n numerator = maths.mulMatrix(d, qprime),\n denominator = maths.sum(maths.squareItems(qprime)) + 2 * maths.mulMatrix(d, bezier.qprimeprime(bez, u));\n\n if (denominator === 0) {\n return u;\n } else {\n return u - numerator / denominator;\n }\n}\n\n;\n\nfunction chordLengthParameterize(points) {\n var u = [],\n currU,\n prevU,\n prevP;\n points.forEach((p, i) => {\n currU = i ? prevU + maths.vectorLen(maths.subtract(p, prevP)) : 0;\n u.push(currU);\n prevU = currU;\n prevP = p;\n });\n u = u.map(x => x / prevU);\n return u;\n}\n\n;\n\nfunction computeMaxError(points, bez, parameters) {\n var dist, maxDist, splitPoint, v, i, count, point, t;\n maxDist = 0;\n splitPoint = Math.floor(points.length / 2);\n const t_distMap = mapTtoRelativeDistances(bez, 10);\n\n for (i = 0, count = points.length; i < count; i++) {\n point = points[i];\n t = find_t(bez, parameters[i], t_distMap, 10);\n v = maths.subtract(bezier.q(bez, t), point);\n dist = v[0] * v[0] + v[1] * v[1];\n\n if (dist > maxDist) {\n maxDist = dist;\n splitPoint = i;\n }\n }\n\n return [maxDist, splitPoint];\n}\n\n;\n\nvar mapTtoRelativeDistances = function (bez, B_parts) {\n var B_t_curr;\n var B_t_dist = [0];\n var B_t_prev = bez[0];\n var sumLen = 0;\n\n for (var i = 1; i <= B_parts; i++) {\n B_t_curr = bezier.q(bez, i / B_parts);\n sumLen += maths.vectorLen(maths.subtract(B_t_curr, B_t_prev));\n B_t_dist.push(sumLen);\n B_t_prev = B_t_curr;\n }\n\n B_t_dist = B_t_dist.map(x => x / sumLen);\n return B_t_dist;\n};\n\nfunction find_t(bez, param, t_distMap, B_parts) {\n if (param < 0) {\n return 0;\n }\n\n if (param > 1) {\n return 1;\n }\n\n var lenMax, lenMin, tMax, tMin, t;\n\n for (var i = 1; i <= B_parts; i++) {\n if (param <= t_distMap[i]) {\n tMin = (i - 1) / B_parts;\n tMax = i / B_parts;\n lenMin = t_distMap[i - 1];\n lenMax = t_distMap[i];\n t = (param - lenMin) / (lenMax - lenMin) * (tMax - tMin) + tMin;\n break;\n }\n }\n\n return t;\n}\n\nfunction createTangent(pointA, pointB) {\n return maths.normalize(maths.subtract(pointA, pointB));\n}\n\nclass maths {\n static zeros_Xx2x2(x) {\n var zs = [];\n\n while (x--) {\n zs.push([0, 0]);\n }\n\n return zs;\n }\n\n static mulItems(items, multiplier) {\n return items.map(x => x * multiplier);\n }\n\n static mulMatrix(m1, m2) {\n return m1.reduce((sum, x1, i) => sum + x1 * m2[i], 0);\n }\n\n static subtract(arr1, arr2) {\n return arr1.map((x1, i) => x1 - arr2[i]);\n }\n\n static addArrays(arr1, arr2) {\n return arr1.map((x1, i) => x1 + arr2[i]);\n }\n\n static addItems(items, addition) {\n return items.map(x => x + addition);\n }\n\n static sum(items) {\n return items.reduce((sum, x) => sum + x);\n }\n\n static dot(m1, m2) {\n return maths.mulMatrix(m1, m2);\n }\n\n static vectorLen(v) {\n return Math.hypot(...v);\n }\n\n static divItems(items, divisor) {\n return items.map(x => x / divisor);\n }\n\n static squareItems(items) {\n return items.map(x => x * x);\n }\n\n static normalize(v) {\n return this.divItems(v, this.vectorLen(v));\n }\n\n}\n\nclass bezier {\n static q(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(ctrlPoly[0], tx * tx * tx),\n pB = maths.mulItems(ctrlPoly[1], 3 * tx * tx * t),\n pC = maths.mulItems(ctrlPoly[2], 3 * tx * t * t),\n pD = maths.mulItems(ctrlPoly[3], t * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), maths.addArrays(pC, pD));\n }\n\n static qprime(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(maths.subtract(ctrlPoly[1], ctrlPoly[0]), 3 * tx * tx),\n pB = maths.mulItems(maths.subtract(ctrlPoly[2], ctrlPoly[1]), 6 * tx * t),\n pC = maths.mulItems(maths.subtract(ctrlPoly[3], ctrlPoly[2]), 3 * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), pC);\n }\n\n static qprimeprime(ctrlPoly, t) {\n return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2], maths.mulItems(ctrlPoly[1], 2)), ctrlPoly[0]), 6 * (1.0 - t)), maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3], maths.mulItems(ctrlPoly[2], 2)), ctrlPoly[1]), 6 * t));\n }\n\n}\n\nmodule.exports = fitCurve;\nmodule.exports.fitCubic = fitCubic;\nmodule.exports.createTangent = createTangent;\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayer = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nvar _annotation_storage = __w_pdfjs_require__(7);\n\nvar _scripting_utils = __w_pdfjs_require__(28);\n\nvar _xfa_layer = __w_pdfjs_require__(29);\n\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\n\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\n\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n\n return new PushButtonWidgetAnnotationElement(parameters);\n\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n\n return new WidgetAnnotationElement(parameters);\n\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n\n default:\n return new AnnotationElement(parameters);\n }\n }\n\n}\n\nclass AnnotationElement {\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n this._mouseState = parameters.mouseState;\n\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n\n _createContainer(ignoreBorder = false) {\n const data = this.data,\n page = this.page,\n viewport = this.viewport;\n const container = document.createElement(\"section\");\n const {\n width,\n height\n } = getRectDims(data.rect);\n const [pageLLx, pageLLy, pageURx, pageURy] = viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n container.setAttribute(\"data-annotation-id\", data.id);\n\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n }\n\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n\n default:\n break;\n }\n\n const borderColor = data.borderColor || null;\n\n if (borderColor) {\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n\n container.style.left = `${100 * (rect[0] - pageLLx) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageLLy) / pageHeight}%`;\n const {\n rotation\n } = data;\n\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n\n return container;\n }\n\n setRotation(angle, container = this.container) {\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1));\n };\n\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden,\n print: event.detail.display === 0 || event.detail.display === 3\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n print: event.detail.print\n });\n },\n hidden: event => {\n this.container.style.visibility = event.detail.hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden: event.detail.hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n\n if (action) {\n action(jsEvent);\n }\n }\n }\n\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n\n if (!storedData) {\n return;\n }\n\n const commonActions = this._commonActions;\n\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n\n if (action) {\n action({\n detail,\n target: element\n });\n delete storedData[actionName];\n }\n }\n }\n\n _createQuadrilaterals(ignoreBorder = false) {\n if (!this.data.quadPoints) {\n return null;\n }\n\n const quadrilaterals = [];\n const savedRect = this.data.rect;\n\n for (const quadPoint of this.data.quadPoints) {\n this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n\n _createPopup(trigger, data) {\n let container = this.container;\n\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.className = \"popupTriggerArea\";\n container.append(trigger);\n }\n\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = \"100%\";\n container.append(popup);\n }\n\n _renderQuadrilaterals(className) {\n for (const quadrilateral of this.quadrilaterals) {\n quadrilateral.className = className;\n }\n\n return this.quadrilaterals;\n }\n\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n\n _getElementsByName(name, skipId = null) {\n const fields = [];\n\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n\n if (id === skipId) {\n continue;\n }\n\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n\n return fields;\n }\n\n for (const domElement of document.getElementsByName(name)) {\n const {\n id,\n exportValue\n } = domElement;\n\n if (id === skipId) {\n continue;\n }\n\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n\n return fields;\n }\n\n static get platform() {\n const platform = typeof navigator !== \"undefined\" ? navigator.platform : \"\";\n return (0, _util.shadow)(this, \"platform\", {\n isWin: platform.includes(\"Win\"),\n isMac: platform.includes(\"Mac\")\n });\n }\n\n}\n\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n\n isBound = true;\n }\n\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n\n isBound = true;\n }\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map((quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.append(linkElement);\n return quadrilateral;\n });\n }\n\n this.container.className = \"linkAnnotation\";\n\n if (isBound) {\n this.container.append(link);\n }\n\n return this.container;\n }\n\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n\n return false;\n };\n\n if (destination || destination === \"\") {\n link.className = \"internalLink\";\n }\n }\n\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n\n link.className = \"internalLink\";\n }\n\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n\n if (!jsName) {\n continue;\n }\n\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n\n if (!link.onclick) {\n link.onclick = () => false;\n }\n\n link.className = \"internalLink\";\n }\n\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n\n link.className = \"internalLink\";\n\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n\n return;\n }\n\n link.onclick = () => {\n if (otherClickAction) {\n otherClickAction();\n }\n\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n\n const storage = this.annotationStorage;\n const allIds = [];\n\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n\n default:\n continue;\n }\n\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n\n return false;\n };\n }\n\n}\n\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n\n this.container.append(image);\n return this.container;\n }\n\n}\n\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n\n return this.container;\n }\n\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = AnnotationElement.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n\n _setEventListener(element, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n\n _setEventListeners(element, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n }\n\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, Math.round(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1]);\n computedFontSize = Math.min(fontSize, Math.round(height / _util.LINE_FACTOR));\n }\n\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n\n element.setAttribute(\"aria-required\", isRequired);\n }\n\n}\n\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const textContent = storedData.formattedValue || storedData.value || \"\";\n const elementData = {\n userValue: textContent,\n formattedValue: null,\n valueOnFocus: \"\"\n };\n\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n\n this._setRequired(element, this.data.required);\n\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n\n event.target.scrollLeft = 0;\n };\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n if (elementData.userValue) {\n event.target.value = elementData.userValue;\n }\n\n elementData.valueOnFocus = event.target.value;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n\n storage.setValue(id, {\n formattedValue\n });\n },\n\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n let commitKey = -1;\n\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\") {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n commitKey = 3;\n }\n\n if (commitKey === -1) {\n return;\n }\n\n const {\n value\n } = event.target;\n\n if (elementData.valueOnFocus === value) {\n return;\n }\n\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n const {\n value\n } = event.target;\n elementData.userValue = value;\n\n if (this._mouseState.isDown && elementData.valueOnFocus !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n\n _blurListener(event);\n });\n\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n\n if (match) {\n selStart -= match[0].length;\n }\n\n break;\n }\n\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n\n if (match) {\n selEnd += match[0].length;\n }\n\n break;\n }\n\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n\n break;\n\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n\n break;\n }\n\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n\n this._setEventListeners(element, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n\n if (this.data.maxLen !== null) {\n element.maxLength = this.data.maxLen;\n }\n\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / this.data.maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n\n this._setTextStyle(element);\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n\n this._setRequired(element, this.data.required);\n\n element.type = \"checkbox\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n\n this._setRequired(element, this.data.required);\n\n element.type = \"radio\";\n element.name = data.fieldName;\n\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n\n this._setBackgroundColor(element);\n\n this._setDefaultPropertiesFromJS(element);\n\n this.container.append(element);\n return this.container;\n }\n\n}\n\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n\n const linkElement = container.lastChild;\n\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n\n return container;\n }\n\n}\n\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n\n this._setRequired(selectElement, this.data.required);\n\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n\n selectElement.append(optionElement);\n }\n\n let removeEmptyEntry = null;\n\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n\n const getValue = (event, isExport) => {\n const name = isExport ? \"value\" : \"textContent\";\n const options = event.target.options;\n\n if (!event.target.multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n\n if (i === -1) {\n options[0].selected = true;\n }\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n storage.setValue(id, {\n value: null,\n items: []\n });\n },\n\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n items(event) {\n const {\n items\n } = event.detail;\n\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n\n storage.setValue(id, {\n value: getValue(event, true),\n items: getItems(event)\n });\n },\n\n indices(event) {\n const indices = new Set(event.detail.indices);\n\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n\n storage.setValue(id, {\n value: getValue(event, true)\n });\n },\n\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n\n };\n\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(event, true);\n const value = getValue(event, false);\n storage.setValue(id, {\n value: exportValue\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n changeEx: exportValue,\n willCommit: true,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n\n this._setEventListeners(selectElement, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"]], event => event.target.checked);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(event, true)\n });\n });\n }\n\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n\n this._setBackgroundColor(selectElement);\n\n this._setDefaultPropertiesFromJS(selectElement);\n\n this.container.append(selectElement);\n return this.container;\n }\n\n}\n\nclass PopupAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable\n });\n }\n\n render() {\n const IGNORE_TYPES = [\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"];\n this.container.className = \"popupAnnotation\";\n\n if (IGNORE_TYPES.includes(this.data.parentType)) {\n return this.container;\n }\n\n const selector = `[data-annotation-id=\"${this.data.parentId}\"]`;\n const parentElements = this.layer.querySelectorAll(selector);\n\n if (parentElements.length === 0) {\n return this.container;\n }\n\n const popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText\n });\n const page = this.page;\n\n const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]);\n\n const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n const popupTop = rect[1];\n const [pageLLx, pageLLy, pageURx, pageURy] = this.viewport.viewBox;\n const pageWidth = pageURx - pageLLx;\n const pageHeight = pageURy - pageLLy;\n this.container.style.left = `${100 * (popupLeft - pageLLx) / pageWidth}%`;\n this.container.style.top = `${100 * (popupTop - pageLLy) / pageHeight}%`;\n this.container.append(popup.render());\n return this.container;\n }\n\n}\n\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n\n if (color) {\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n\n const title = document.createElement(\"h1\");\n title.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.append(title);\n\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.append(modificationDate);\n }\n\n if (this.richText?.str && (!this.contentsObj?.str || this.contentsObj.str === this.richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup\n });\n\n popup.lastChild.className = \"richText popupContent\";\n } else {\n const contents = this._formatContents(this.contentsObj);\n\n popup.append(contents);\n }\n\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.append(popup);\n return wrapper;\n }\n\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n\n return p;\n }\n\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex += 1;\n }\n }\n\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex -= 1;\n }\n }\n\n}\n\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"freeTextAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n\n this._createPopup(line, data);\n\n return this.container;\n }\n\n}\n\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n\n this._createPopup(square, data);\n\n return this.container;\n }\n\n}\n\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n\n this._createPopup(circle, data);\n\n return this.container;\n }\n\n}\n\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n\n this._createPopup(polyline, data);\n\n return this.container;\n }\n\n}\n\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n\n}\n\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"caretAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n\n for (const inkList of data.inkLists) {\n let points = [];\n\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n\n this._createPopup(polyline, data);\n\n svg.append(polyline);\n }\n\n this.container.append(svg);\n return this.container;\n }\n\n}\n\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n\n}\n\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n\n}\n\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n\n}\n\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n\n}\n\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n\n render() {\n this.container.className = \"stampAnnotation\";\n\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n\n return this.container;\n }\n\n}\n\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n const trigger = document.createElement(\"div\");\n trigger.className = \"popupTriggerArea\";\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n\n if (!this.data.hasPopup && (this.data.titleObj?.str || this.data.contentsObj?.str || this.data.richText)) {\n this._createPopup(trigger, this.data);\n }\n\n this.container.append(trigger);\n return this.container;\n }\n\n _download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n\n}\n\nclass AnnotationLayer {\n static render(parameters) {\n const {\n annotations,\n div,\n viewport\n } = parameters;\n this.#setDimensions(div, viewport);\n const sortedAnnotations = [],\n popupAnnotations = [];\n\n for (const data of annotations) {\n if (!data) {\n continue;\n }\n\n if (data.annotationType === _util.AnnotationType.POPUP) {\n popupAnnotations.push(data);\n continue;\n }\n\n const {\n width,\n height\n } = getRectDims(data.rect);\n\n if (width <= 0 || height <= 0) {\n continue;\n }\n\n sortedAnnotations.push(data);\n }\n\n if (popupAnnotations.length) {\n sortedAnnotations.push(...popupAnnotations);\n }\n\n for (const data of sortedAnnotations) {\n const element = AnnotationElementFactory.create({\n data,\n layer: div,\n page: parameters.page,\n viewport,\n linkService: parameters.linkService,\n downloadManager: parameters.downloadManager,\n imageResourcesPath: parameters.imageResourcesPath || \"\",\n renderForms: parameters.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: parameters.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: parameters.enableScripting,\n hasJSActions: parameters.hasJSActions,\n fieldObjects: parameters.fieldObjects,\n mouseState: parameters.mouseState || {\n isDown: false\n }\n });\n\n if (element.isRenderable) {\n const rendered = element.render();\n\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n\n if (Array.isArray(rendered)) {\n for (const renderedElement of rendered) {\n div.append(renderedElement);\n }\n } else {\n if (element instanceof PopupAnnotationElement) {\n div.prepend(rendered);\n } else {\n div.append(rendered);\n }\n }\n }\n }\n\n this.#setAnnotationCanvasMap(div, parameters.annotationCanvasMap);\n }\n\n static update(parameters) {\n const {\n annotationCanvasMap,\n div,\n viewport\n } = parameters;\n this.#setDimensions(div, viewport);\n this.#setAnnotationCanvasMap(div, annotationCanvasMap);\n div.hidden = false;\n }\n\n static #setDimensions(div, {\n width,\n height,\n rotation\n }) {\n const {\n style\n } = div;\n const flipOrientation = rotation % 180 !== 0,\n widthStr = Math.floor(width) + \"px\",\n heightStr = Math.floor(height) + \"px\";\n style.width = flipOrientation ? heightStr : widthStr;\n style.height = flipOrientation ? widthStr : heightStr;\n div.setAttribute(\"data-main-rotation\", rotation);\n }\n\n static #setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n\n for (const [id, canvas] of annotationCanvasMap) {\n const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n\n if (!element) {\n continue;\n }\n\n const {\n firstChild\n } = element;\n\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n\n annotationCanvasMap.clear();\n }\n\n}\n\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\n\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\n\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n\n static RGB_HTML([r, g, b]) {\n const R = makeColorComp(r);\n const G = makeColorComp(g);\n const B = makeColorComp(b);\n return `#${R}${G}${B}`;\n }\n\n static T_HTML() {\n return \"#00000000\";\n }\n\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n\n}\n\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\n\nvar _xfa_text = __w_pdfjs_require__(20);\n\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n\n if (intent === \"print\") {\n break;\n }\n\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n\n break;\n\n case \"select\":\n if (storedData.value !== null) {\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n }\n\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n\n break;\n\n case \"dataId\":\n break;\n\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n\n case \"style\":\n Object.assign(html.style, value);\n break;\n\n case \"textContent\":\n html.textContent = value;\n break;\n\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n\n }\n }\n\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n\n const textDivs = [];\n\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n\n const child = parent.children[++stack.at(-1)[1]];\n\n if (child === null) {\n continue;\n }\n\n const {\n name\n } = child;\n\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n\n let childHtml;\n\n if (child?.attributes?.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n\n html.append(childHtml);\n\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n\n childHtml.append(node);\n }\n }\n\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n\n return {\n textDivs\n };\n }\n\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n\n}\n\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nconst AllWhitespaceRegexp = /^\\s+$/g;\n\nfunction getAscent(fontFamily, ctx) {\n const cachedAscent = ascentCache.get(fontFamily);\n\n if (cachedAscent) {\n return cachedAscent;\n }\n\n ctx.save();\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n\n if (ascent) {\n ctx.restore();\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n\n ctx.restore();\n\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\n\nfunction appendText(task, geom, styles, ctx) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = task._enhanceTextSelection ? {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n originalTransform: null,\n paddingBottom: 0,\n paddingLeft: 0,\n paddingRight: 0,\n paddingTop: 0,\n scale: 1,\n fontSize: 0\n } : {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n\n task._textDivs.push(textDiv);\n\n const tx = _util.Util.transform(task._viewport.transform, geom.transform);\n\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, ctx);\n let left, top;\n\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n\n textDiv.style.left = `${left}px`;\n textDiv.style.top = `${top}px`;\n textDiv.style.fontSize = `${fontHeight}px`;\n textDiv.style.fontFamily = style.fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n\n let shouldScaleText = false;\n\n if (geom.str.length > 1 || task._enhanceTextSelection && AllWhitespaceRegexp.test(geom.str)) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n\n if (shouldScaleText) {\n if (style.vertical) {\n textDivProperties.canvasWidth = geom.height * task._viewport.scale;\n } else {\n textDivProperties.canvasWidth = geom.width * task._viewport.scale;\n }\n }\n\n task._textDivProperties.set(textDiv, textDivProperties);\n\n if (task._textContentStream) {\n task._layoutText(textDiv);\n }\n\n if (task._enhanceTextSelection && textDivProperties.hasText) {\n let angleCos = 1,\n angleSin = 0;\n\n if (angle !== 0) {\n angleCos = Math.cos(angle);\n angleSin = Math.sin(angle);\n }\n\n const divWidth = (style.vertical ? geom.height : geom.width) * task._viewport.scale;\n const divHeight = fontHeight;\n let m, b;\n\n if (angle !== 0) {\n m = [angleCos, angleSin, -angleSin, angleCos, left, top];\n b = _util.Util.getAxialAlignedBoundingBox([0, 0, divWidth, divHeight], m);\n } else {\n b = [left, top, left + divWidth, top + divHeight];\n }\n\n task._bounds.push({\n left: b[0],\n top: b[1],\n right: b[2],\n bottom: b[3],\n div: textDiv,\n size: [divWidth, divHeight],\n m\n });\n }\n}\n\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n task._renderingDone = true;\n capability.resolve();\n return;\n }\n\n if (!task._textContentStream) {\n for (let i = 0; i < textDivsLength; i++) {\n task._layoutText(textDivs[i]);\n }\n }\n\n task._renderingDone = true;\n capability.resolve();\n}\n\nfunction findPositiveMin(ts, offset, count) {\n let result = 0;\n\n for (let i = 0; i < count; i++) {\n const t = ts[offset++];\n\n if (t > 0) {\n result = result ? Math.min(t, result) : t;\n }\n }\n\n return result;\n}\n\nfunction expand(task) {\n const bounds = task._bounds;\n const viewport = task._viewport;\n const expanded = expandBounds(viewport.width, viewport.height, bounds);\n\n for (let i = 0; i < expanded.length; i++) {\n const div = bounds[i].div;\n\n const divProperties = task._textDivProperties.get(div);\n\n if (divProperties.angle === 0) {\n divProperties.paddingLeft = bounds[i].left - expanded[i].left;\n divProperties.paddingTop = bounds[i].top - expanded[i].top;\n divProperties.paddingRight = expanded[i].right - bounds[i].right;\n divProperties.paddingBottom = expanded[i].bottom - bounds[i].bottom;\n\n task._textDivProperties.set(div, divProperties);\n\n continue;\n }\n\n const e = expanded[i],\n b = bounds[i];\n const m = b.m,\n c = m[0],\n s = m[1];\n const points = [[0, 0], [0, b.size[1]], [b.size[0], 0], b.size];\n const ts = new Float64Array(64);\n\n for (let j = 0, jj = points.length; j < jj; j++) {\n const t = _util.Util.applyTransform(points[j], m);\n\n ts[j + 0] = c && (e.left - t[0]) / c;\n ts[j + 4] = s && (e.top - t[1]) / s;\n ts[j + 8] = c && (e.right - t[0]) / c;\n ts[j + 12] = s && (e.bottom - t[1]) / s;\n ts[j + 16] = s && (e.left - t[0]) / -s;\n ts[j + 20] = c && (e.top - t[1]) / c;\n ts[j + 24] = s && (e.right - t[0]) / -s;\n ts[j + 28] = c && (e.bottom - t[1]) / c;\n ts[j + 32] = c && (e.left - t[0]) / -c;\n ts[j + 36] = s && (e.top - t[1]) / -s;\n ts[j + 40] = c && (e.right - t[0]) / -c;\n ts[j + 44] = s && (e.bottom - t[1]) / -s;\n ts[j + 48] = s && (e.left - t[0]) / s;\n ts[j + 52] = c && (e.top - t[1]) / -c;\n ts[j + 56] = s && (e.right - t[0]) / s;\n ts[j + 60] = c && (e.bottom - t[1]) / -c;\n }\n\n const boxScale = 1 + Math.min(Math.abs(c), Math.abs(s));\n divProperties.paddingLeft = findPositiveMin(ts, 32, 16) / boxScale;\n divProperties.paddingTop = findPositiveMin(ts, 48, 16) / boxScale;\n divProperties.paddingRight = findPositiveMin(ts, 0, 16) / boxScale;\n divProperties.paddingBottom = findPositiveMin(ts, 16, 16) / boxScale;\n\n task._textDivProperties.set(div, divProperties);\n }\n}\n\nfunction expandBounds(width, height, boxes) {\n const bounds = boxes.map(function (box, i) {\n return {\n x1: box.left,\n y1: box.top,\n x2: box.right,\n y2: box.bottom,\n index: i,\n x1New: undefined,\n x2New: undefined\n };\n });\n expandBoundsLTR(width, bounds);\n const expanded = new Array(boxes.length);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i] = {\n left: b.x1New,\n top: 0,\n right: b.x2New,\n bottom: 0\n };\n }\n\n boxes.map(function (box, i) {\n const e = expanded[i],\n b = bounds[i];\n b.x1 = box.top;\n b.y1 = width - e.right;\n b.x2 = box.bottom;\n b.y2 = width - e.left;\n b.index = i;\n b.x1New = undefined;\n b.x2New = undefined;\n });\n expandBoundsLTR(height, bounds);\n\n for (const b of bounds) {\n const i = b.index;\n expanded[i].top = b.x1New;\n expanded[i].bottom = b.x2New;\n }\n\n return expanded;\n}\n\nfunction expandBoundsLTR(width, bounds) {\n bounds.sort(function (a, b) {\n return a.x1 - b.x1 || a.index - b.index;\n });\n const fakeBoundary = {\n x1: -Infinity,\n y1: -Infinity,\n x2: 0,\n y2: Infinity,\n index: -1,\n x1New: 0,\n x2New: 0\n };\n const horizon = [{\n start: -Infinity,\n end: Infinity,\n boundary: fakeBoundary\n }];\n\n for (const boundary of bounds) {\n let i = 0;\n\n while (i < horizon.length && horizon[i].end <= boundary.y1) {\n i++;\n }\n\n let j = horizon.length - 1;\n\n while (j >= 0 && horizon[j].start >= boundary.y2) {\n j--;\n }\n\n let horizonPart, affectedBoundary;\n let q,\n k,\n maxXNew = -Infinity;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n let xNew;\n\n if (affectedBoundary.x2 > boundary.x1) {\n xNew = affectedBoundary.index > boundary.index ? affectedBoundary.x1New : boundary.x1;\n } else if (affectedBoundary.x2New === undefined) {\n xNew = (affectedBoundary.x2 + boundary.x1) / 2;\n } else {\n xNew = affectedBoundary.x2New;\n }\n\n if (xNew > maxXNew) {\n maxXNew = xNew;\n }\n }\n\n boundary.x1New = maxXNew;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n if (affectedBoundary.x2 > boundary.x1) {\n if (affectedBoundary.index > boundary.index) {\n affectedBoundary.x2New = affectedBoundary.x2;\n }\n } else {\n affectedBoundary.x2New = maxXNew;\n }\n } else if (affectedBoundary.x2New > maxXNew) {\n affectedBoundary.x2New = Math.max(maxXNew, affectedBoundary.x2);\n }\n }\n\n const changedHorizon = [];\n let lastBoundary = null;\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n const useBoundary = affectedBoundary.x2 > boundary.x2 ? affectedBoundary : boundary;\n\n if (lastBoundary === useBoundary) {\n changedHorizon.at(-1).end = horizonPart.end;\n } else {\n changedHorizon.push({\n start: horizonPart.start,\n end: horizonPart.end,\n boundary: useBoundary\n });\n lastBoundary = useBoundary;\n }\n }\n\n if (horizon[i].start < boundary.y1) {\n changedHorizon[0].start = boundary.y1;\n changedHorizon.unshift({\n start: horizon[i].start,\n end: boundary.y1,\n boundary: horizon[i].boundary\n });\n }\n\n if (boundary.y2 < horizon[j].end) {\n changedHorizon.at(-1).end = boundary.y2;\n changedHorizon.push({\n start: boundary.y2,\n end: horizon[j].end,\n boundary: horizon[j].boundary\n });\n }\n\n for (q = i; q <= j; q++) {\n horizonPart = horizon[q];\n affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New !== undefined) {\n continue;\n }\n\n let used = false;\n\n for (k = i - 1; !used && k >= 0 && horizon[k].start >= affectedBoundary.y1; k--) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = j + 1; !used && k < horizon.length && horizon[k].end <= affectedBoundary.y2; k++) {\n used = horizon[k].boundary === affectedBoundary;\n }\n\n for (k = 0; !used && k < changedHorizon.length; k++) {\n used = changedHorizon[k].boundary === affectedBoundary;\n }\n\n if (!used) {\n affectedBoundary.x2New = maxXNew;\n }\n }\n\n Array.prototype.splice.apply(horizon, [i, j - i + 1, ...changedHorizon]);\n }\n\n for (const horizonPart of horizon) {\n const affectedBoundary = horizonPart.boundary;\n\n if (affectedBoundary.x2New === undefined) {\n affectedBoundary.x2New = Math.max(width, affectedBoundary.x2);\n }\n }\n}\n\nclass TextLayerRenderTask {\n constructor({\n textContent,\n textContentStream,\n container,\n viewport,\n textDivs,\n textContentItemsStr,\n enhanceTextSelection\n }) {\n if (enhanceTextSelection) {\n (0, _display_utils.deprecated)(\"The `enhanceTextSelection` functionality will be removed in the future.\");\n }\n\n this._textContent = textContent;\n this._textContentStream = textContentStream;\n this._container = container;\n this._document = container.ownerDocument;\n this._viewport = viewport;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._enhanceTextSelection = !!enhanceTextSelection;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._layoutTextLastFontSize = null;\n this._layoutTextLastFontFamily = null;\n this._layoutTextCtx = null;\n this._textDivProperties = new WeakMap();\n this._renderingDone = false;\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._renderTimer = null;\n this._bounds = [];\n this._devicePixelRatio = globalThis.devicePixelRatio || 1;\n\n this._capability.promise.finally(() => {\n if (!this._enhanceTextSelection) {\n this._textDivProperties = null;\n }\n\n if (this._layoutTextCtx) {\n this._layoutTextCtx.canvas.width = 0;\n this._layoutTextCtx.canvas.height = 0;\n this._layoutTextCtx = null;\n }\n }).catch(() => {});\n }\n\n get promise() {\n return this._capability.promise;\n }\n\n cancel() {\n this._canceled = true;\n\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n\n this._reader = null;\n }\n\n if (this._renderTimer !== null) {\n clearTimeout(this._renderTimer);\n this._renderTimer = null;\n }\n\n this._capability.reject(new Error(\"TextLayer task cancelled.\"));\n }\n\n _processItems(items, styleCache) {\n for (let i = 0, len = items.length; i < len; i++) {\n if (items[i].str === undefined) {\n if (items[i].type === \"beginMarkedContentProps\" || items[i].type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n\n this._container.classList.add(\"markedContent\");\n\n if (items[i].id !== null) {\n this._container.setAttribute(\"id\", `${items[i].id}`);\n }\n\n parent.append(this._container);\n } else if (items[i].type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n\n continue;\n }\n\n this._textContentItemsStr.push(items[i].str);\n\n appendText(this, items[i], styleCache, this._layoutTextCtx);\n }\n }\n\n _layoutText(textDiv) {\n const textDivProperties = this._textDivProperties.get(textDiv);\n\n let transform = \"\";\n\n if (textDivProperties.canvasWidth !== 0 && textDivProperties.hasText) {\n const {\n fontFamily\n } = textDiv.style;\n const {\n fontSize\n } = textDivProperties;\n\n if (fontSize !== this._layoutTextLastFontSize || fontFamily !== this._layoutTextLastFontFamily) {\n this._layoutTextCtx.font = `${fontSize * this._devicePixelRatio}px ${fontFamily}`;\n this._layoutTextLastFontSize = fontSize;\n this._layoutTextLastFontFamily = fontFamily;\n }\n\n const {\n width\n } = this._layoutTextCtx.measureText(textDiv.textContent);\n\n if (width > 0) {\n const scale = this._devicePixelRatio * textDivProperties.canvasWidth / width;\n\n if (this._enhanceTextSelection) {\n textDivProperties.scale = scale;\n }\n\n transform = `scaleX(${scale})`;\n }\n }\n\n if (textDivProperties.angle !== 0) {\n transform = `rotate(${textDivProperties.angle}deg) ${transform}`;\n }\n\n if (transform.length > 0) {\n if (this._enhanceTextSelection) {\n textDivProperties.originalTransform = transform;\n }\n\n textDiv.style.transform = transform;\n }\n\n if (textDivProperties.hasText) {\n this._container.append(textDiv);\n }\n\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n\n this._container.append(br);\n }\n }\n\n _render(timeout = 0) {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n\n const canvas = this._document.createElement(\"canvas\");\n\n canvas.height = canvas.width = DEFAULT_FONT_SIZE;\n this._layoutTextCtx = canvas.getContext(\"2d\", {\n alpha: false\n });\n\n if (this._textContent) {\n const textItems = this._textContent.items;\n const textStyles = this._textContent.styles;\n\n this._processItems(textItems, textStyles);\n\n capability.resolve();\n } else if (this._textContentStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n\n Object.assign(styleCache, value.styles);\n\n this._processItems(value.items, styleCache);\n\n pump();\n }, capability.reject);\n };\n\n this._reader = this._textContentStream.getReader();\n pump();\n } else {\n throw new Error('Neither \"textContent\" nor \"textContentStream\" parameters specified.');\n }\n\n capability.promise.then(() => {\n styleCache = null;\n\n if (!timeout) {\n render(this);\n } else {\n this._renderTimer = setTimeout(() => {\n render(this);\n this._renderTimer = null;\n }, timeout);\n }\n }, this._capability.reject);\n }\n\n expandTextDivs(expandDivs = false) {\n if (!this._enhanceTextSelection || !this._renderingDone) {\n return;\n }\n\n if (this._bounds !== null) {\n expand(this);\n this._bounds = null;\n }\n\n const transformBuf = [],\n paddingBuf = [];\n\n for (let i = 0, ii = this._textDivs.length; i < ii; i++) {\n const div = this._textDivs[i];\n\n const divProps = this._textDivProperties.get(div);\n\n if (!divProps.hasText) {\n continue;\n }\n\n if (expandDivs) {\n transformBuf.length = 0;\n paddingBuf.length = 0;\n\n if (divProps.originalTransform) {\n transformBuf.push(divProps.originalTransform);\n }\n\n if (divProps.paddingTop > 0) {\n paddingBuf.push(`${divProps.paddingTop}px`);\n transformBuf.push(`translateY(${-divProps.paddingTop}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingRight > 0) {\n paddingBuf.push(`${divProps.paddingRight / divProps.scale}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingBottom > 0) {\n paddingBuf.push(`${divProps.paddingBottom}px`);\n } else {\n paddingBuf.push(0);\n }\n\n if (divProps.paddingLeft > 0) {\n paddingBuf.push(`${divProps.paddingLeft / divProps.scale}px`);\n transformBuf.push(`translateX(${-divProps.paddingLeft / divProps.scale}px)`);\n } else {\n paddingBuf.push(0);\n }\n\n div.style.padding = paddingBuf.join(\" \");\n\n if (transformBuf.length) {\n div.style.transform = transformBuf.join(\" \");\n }\n } else {\n div.style.padding = null;\n div.style.transform = divProps.originalTransform;\n }\n }\n }\n\n}\n\nexports.TextLayerRenderTask = TextLayerRenderTask;\n\nfunction renderTextLayer(renderParameters) {\n const task = new TextLayerRenderTask({\n textContent: renderParameters.textContent,\n textContentStream: renderParameters.textContentStream,\n container: renderParameters.container,\n viewport: renderParameters.viewport,\n textDivs: renderParameters.textDivs,\n textContentItemsStr: renderParameters.textContentItemsStr,\n enhanceTextSelection: renderParameters.enhanceTextSelection\n });\n\n task._render(renderParameters.timeout);\n\n return task;\n}\n\n/***/ }),\n/* 31 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nlet SVGGraphics = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: SVGGraphics\");\n }\n\n};\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n\n const createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n\n return buffer;\n };\n\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n\n for (let i = 0; i < 256; i++) {\n let c = i;\n\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n\n crcTable[i] = c;\n }\n\n function crc32(data, start, end) {\n let crc = -1;\n\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n\n return crc ^ -1;\n }\n\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n\n return b << 16 | a;\n }\n\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n\n try {\n let input;\n\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n\n return deflateSyncUncompressed(literals);\n }\n\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n\n default:\n throw new Error(\"invalid format\");\n }\n\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n\n clone() {\n return Object.create(this);\n }\n\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n\n }\n\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree.at(-1).items;\n continue;\n }\n\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n\n return opTree;\n }\n\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n\n const s = value.toFixed(10);\n let i = s.length - 1;\n\n if (s[i] !== \"0\") {\n return s;\n }\n\n do {\n i--;\n } while (s[i] === \"0\");\n\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class {\n constructor(commonObjs, objs, forceDataSchema = false) {\n (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n\n return Promise.all(this.current.dependencies);\n }\n\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n\n const svgElement = this._initialize(viewport);\n\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n\n return opListToTree(opList);\n }\n\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n\n case _util.OPS.dependency:\n break;\n\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n\n case _util.OPS.endText:\n this.endText();\n break;\n\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n\n case _util.OPS.fill:\n this.fill();\n break;\n\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n\n case _util.OPS.stroke:\n this.stroke();\n break;\n\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n\n case _util.OPS.closePath:\n this.closePath();\n break;\n\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n\n case _util.OPS.endPath:\n this.endPath();\n break;\n\n case 92:\n this.group(opTreeElement.items);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.append(current.tspan);\n }\n\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n\n if (fontSize === 0) {\n return;\n }\n\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n\n current.tspan.textContent += character;\n } else {}\n\n let charWidth;\n\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n\n x += charWidth;\n }\n\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n\n let textMatrix = current.textMatrix;\n\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n\n this._ensureTransformGroup().append(current.txtElement);\n }\n\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.append(this.cssStyle);\n }\n\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n\n endText() {\n const current = this.current;\n\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n\n const bl = _util.Util.applyTransform([0, 0], inv);\n\n const br = _util.Util.applyTransform([0, height], inv);\n\n const ul = _util.Util.applyTransform([width, 0], inv);\n\n const ur = _util.Util.applyTransform([width, height], inv);\n\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n\n this._ensureTransformGroup().append(rect);\n }\n\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n\n return this._makeShadingPattern(args);\n }\n\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n\n const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.append(stop);\n }\n\n this.defs.append(gradient);\n return `url(#${shadingId})`;\n\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n\n case \"Dummy\":\n return \"hotpink\";\n\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n\n d = d.join(\" \");\n\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n\n this._ensureTransformGroup().append(current.path);\n }\n\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n\n endPath() {\n const current = this.current;\n current.path = null;\n\n if (!this.pendingClip) {\n return;\n }\n\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n\n this.pendingClip = null;\n clipPath.append(clipElement);\n this.defs.append(clipPath);\n\n if (current.activeClipUrl) {\n current.clipGroup = null;\n\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n\n clip(type) {\n this.pendingClip = type;\n }\n\n closePath() {\n const current = this.current;\n\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n\n setLeading(leading) {\n this.current.leading = -leading;\n }\n\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n\n setRenderingIntent(intent) {}\n\n setFlatness(flatness) {}\n\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n\n case \"LC\":\n this.setLineCap(value);\n break;\n\n case \"LJ\":\n this.setLineJoin(value);\n break;\n\n case \"ML\":\n this.setMiterLimit(value);\n break;\n\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n\n case \"FL\":\n this.setFlatness(value);\n break;\n\n case \"Font\":\n this.setFont(value);\n break;\n\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n\n case \"ca\":\n this.setFillAlpha(value);\n break;\n\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n\n fill() {\n const current = this.current;\n\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n\n stroke() {\n const current = this.current;\n\n if (current.element) {\n this._setStrokeAttributes(current.element);\n\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n\n eoFill() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fill();\n }\n\n fillStroke() {\n this.stroke();\n this.fill();\n }\n\n eoFillStroke() {\n if (this.current.element) {\n this.current.element.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n }\n\n this.fillStroke();\n }\n\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n\n this._ensureTransformGroup().append(rect);\n }\n\n paintImageXObject(objId) {\n const imgData = objId.startsWith(\"g_\") ? this.commonObjs.get(objId) : this.objs.get(objId);\n\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n\n this.paintInlineImageXObject(imgData);\n }\n\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n\n if (mask) {\n mask.append(imgEl);\n } else {\n this._ensureTransformGroup().append(imgEl);\n }\n }\n\n paintImageMaskXObject(imgData) {\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.append(mask);\n\n this._ensureTransformGroup().append(rect);\n\n this.paintInlineImageXObject(imgData, mask);\n }\n\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n\n paintFormXObjectEnd() {}\n\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.append(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n\n return this.current.clipGroup;\n }\n\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n\n return this.tgrp;\n }\n\n };\n}\n\n/***/ }),\n/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(33);\n\n;\n\nconst fs = require(\"fs\");\n\nconst http = require(\"http\");\n\nconst https = require(\"https\");\n\nconst url = require(\"url\");\n\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\n\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n\n return parsedUrl;\n}\n\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n\n this._rangeRequestReaders.push(rangeReader);\n\n return rangeReader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNodeStream = PDFNodeStream;\n\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n if (this._storedError) {\n throw this._storedError;\n }\n\n const chunk = this._readableStream.read();\n\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n\n this._loaded += chunk.length;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n\n return;\n }\n\n this._readableStream.destroy(reason);\n }\n\n _error(reason) {\n this._storedError = reason;\n\n this._readCapability.resolve();\n }\n\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n\n}\n\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\n\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._headersCapability.resolve();\n\n this._setReadableStream(response);\n\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n\n this._headersCapability.reject(reason);\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n this._httpHeaders[property] = value;\n }\n\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n\n this._setReadableStream(response);\n };\n\n this._request = null;\n\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n\n this._request.end();\n }\n\n}\n\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n\n this._storedError = error;\n\n this._headersCapability.reject(error);\n\n return;\n }\n\n this._contentLength = stat.size;\n\n this._setReadableStream(fs.createReadStream(path));\n\n this._headersCapability.resolve();\n });\n }\n\n}\n\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n\n}\n\n/***/ }),\n/* 33 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _content_disposition = __w_pdfjs_require__(34);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n\n returnValues.suggestedLength = length;\n\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n\n if (disableRange || !isHttp) {\n return returnValues;\n }\n\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\n\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n\n return null;\n}\n\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\n\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 34 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\n\nvar _util = __w_pdfjs_require__(1);\n\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n tmp = rfc2231getparam(contentDisposition);\n\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {}\n }\n\n return value;\n }\n\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n\n return value;\n }\n\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n\n if (n in matches) {\n if (n === 0) {\n break;\n }\n\n continue;\n }\n\n matches[n] = [quot, part];\n }\n\n const parts = [];\n\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n\n if (quot) {\n part = unescape(part);\n\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n\n parts.push(part);\n }\n\n return parts.join(\"\");\n }\n\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n\n value = parts.join('\"');\n }\n\n return value;\n }\n\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n\n if (encodingend === -1) {\n return extvalue;\n }\n\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n\n try {\n text = atob(text);\n } catch (e) {}\n\n return textdecode(charset, text);\n });\n }\n\n return \"\";\n}\n\n/***/ }),\n/* 35 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(33);\n\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\n\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n\n if (typeof data !== \"string\") {\n return data;\n }\n\n const array = (0, _util.stringToBytes)(data);\n return array.buffer;\n}\n\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n\n return this.request(args);\n }\n\n requestFull(listeners) {\n return this.request(listeners);\n }\n\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n xhr.setRequestHeader(property, value);\n }\n\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n\n xhr.responseType = \"arraybuffer\";\n\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n pendingRequest.onProgress?.(evt);\n }\n\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n\n if (!pendingRequest) {\n return;\n }\n\n const xhr = pendingRequest.xhr;\n\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n\n if (xhr.readyState !== 4) {\n return;\n }\n\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n\n delete this.pendingRequests[xhrId];\n\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n\n const chunk = getArrayBuffer(xhr);\n\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n\n}\n\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFNetworkStream = PDFNetworkStream;\n\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n\n this._headersReceivedCapability.resolve();\n }\n\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n\n this._done = true;\n\n if (this._cachedChunks.length > 0) {\n return;\n }\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n }\n\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n this._headersReceivedCapability.reject(this._storedError);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n\n get filename() {\n return this._filename;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n this._headersReceivedCapability.reject(reason);\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n\n this._fullRequestReader = null;\n }\n\n}\n\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n\n _close() {\n this.onClosed?.(this);\n }\n\n _onDone(data) {\n const chunk = data.chunk;\n\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n this._close();\n }\n\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n\n get isStreamingSupported() {\n return false;\n }\n\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n\n const requestCapability = (0, _util.createPromiseCapability)();\n\n this._requests.push(requestCapability);\n\n return requestCapability.promise;\n }\n\n cancel(reason) {\n this._done = true;\n\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n\n this._requests.length = 0;\n\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n\n this._close();\n }\n\n}\n\n/***/ }),\n/* 36 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _network_utils = __w_pdfjs_require__(33);\n\n;\n\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController?.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\n\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n\n if (typeof value === \"undefined\") {\n continue;\n }\n\n headers.append(property, value);\n }\n\n return headers;\n}\n\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n\n this._rangeRequestReaders.push(reader);\n\n return reader;\n }\n\n cancelAllRequests(reason) {\n if (this._fullRequestReader) {\n this._fullRequestReader.cancel(reason);\n }\n\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n\n}\n\nexports.PDFFetchStream = PDFFetchStream;\n\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._reader = response.body.getReader();\n\n this._headersCapability.resolve();\n\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n\n get headersReady() {\n return this._headersCapability.promise;\n }\n\n get filename() {\n return this._filename;\n }\n\n get contentLength() {\n return this._contentLength;\n }\n\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded,\n total: this._contentLength\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n\n if (typeof AbortController !== \"undefined\") {\n this._abortController = new AbortController();\n }\n\n this._headers = createHeaders(this._stream.httpHeaders);\n\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n\n this._readCapability.resolve();\n\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n\n if (done) {\n return {\n value,\n done\n };\n }\n\n this._loaded += value.byteLength;\n\n if (this.onProgress) {\n this.onProgress({\n loaded: this._loaded\n });\n }\n\n const buffer = new Uint8Array(value).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n\n cancel(reason) {\n if (this._reader) {\n this._reader.cancel(reason);\n }\n\n if (this._abortController) {\n this._abortController.abort();\n }\n }\n\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"LoopbackPort\", ({\n enumerable: true,\n get: function () {\n return _api.LoopbackPort;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"binarySearchFirstItem\", ({\n enumerable: true,\n get: function () {\n return _display_utils.binarySearchFirstItem;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createPromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\n\nvar _util = __w_pdfjs_require__(1);\n\nvar _display_utils = __w_pdfjs_require__(4);\n\nvar _api = __w_pdfjs_require__(6);\n\nvar _annotation_editor_layer = __w_pdfjs_require__(22);\n\nvar _tools = __w_pdfjs_require__(9);\n\nvar _annotation_layer = __w_pdfjs_require__(27);\n\nvar _worker_options = __w_pdfjs_require__(15);\n\nvar _is_node = __w_pdfjs_require__(3);\n\nvar _text_layer = __w_pdfjs_require__(30);\n\nvar _svg = __w_pdfjs_require__(31);\n\nvar _xfa_layer = __w_pdfjs_require__(29);\n\nconst pdfjsVersion = '2.15.349';\nconst pdfjsBuild = 'b8aa9c622';\n{\n if (_is_node.isNodeJS) {\n const {\n PDFNodeStream\n } = __w_pdfjs_require__(32);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n return new PDFNodeStream(params);\n });\n } else {\n const {\n PDFNetworkStream\n } = __w_pdfjs_require__(35);\n\n const {\n PDFFetchStream\n } = __w_pdfjs_require__(36);\n\n (0, _api.setPDFNetworkStreamFactory)(params => {\n if ((0, _display_utils.isValidFetchUrl)(params.url)) {\n return new PDFFetchStream(params);\n }\n\n return new PDFNetworkStream(params);\n });\n }\n}\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map","export function format(first: string, middle: string, last: string): string {\n return (first || '') + (middle ? ` ${middle}` : '') + (last ? ` ${last}` : '');\n}\n\nexport const integerSequence = (start: number, count: number): number[] =>\n Array(count)\n .fill(1)\n .map((_, index) => index + start);\n","@import '../../../theme.scss';\n\nverdocs-view {\n font-family: $verdocs-primary-font;\n display: flex;\n min-height: 600px;\n position: relative;\n padding: 0 0 20px 0;\n box-sizing: border-box;\n flex-direction: column;\n\n div,\n canvas {\n box-sizing: border-box;\n }\n\n .container {\n display: flex;\n align-items: center;\n flex-direction: column;\n }\n\n button.test {\n color: #fff;\n cursor: pointer;\n padding: 5px 10px;\n border-radius: 4px;\n background: #5a5767;\n border: 1px solid #ccc;\n }\n\n .load-progress {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: 6px;\n z-index: 2000;\n background: #000;\n\n .bar {\n height: 6px;\n background: #50be80;\n }\n }\n}\n\n#verdocs-pdf-viewer-container {\n display: flex;\n align-items: center;\n flex-direction: column;\n\n canvas {\n background: white;\n max-width: 100%;\n // To avoid performance problems in some browsers with getClientBoundingRect() we hard-code the calculations for canvas offsets.\n // If you change the margin here you need to adjust the code as well.\n margin: 0 0 15px 0;\n }\n}\n","import pdf from 'pdfjs-dist';\nimport {VerdocsEndpoint} from '@verdocs/js-sdk';\nimport {PDFDocumentProxy, VerbosityLevel, version as PDFJSversion} from 'pdfjs-dist';\nimport {Component, h, Element, Event, Prop, Watch, EventEmitter, State} from '@stencil/core';\nimport {DocumentInitParameters, OnProgressParameters} from 'pdfjs-dist/types/src/display/api';\nimport {integerSequence} from '../../../utils/utils';\n\nconst CANVAS_MARGIN = 15;\nconst PDF_WORKER_URL = `https://cdnjs.cloudflare.com/ajax/libs/pdf.js/${PDFJSversion}/pdf.worker.min.js`;\nconst CMAPS_URL = `https://unpkg.com/pdfjs-dist@${PDFJSversion}/cmaps/`;\n// https://unpkg.com/pdfjs-dist@2.0.550/cmaps/78-EUC-H.bcmap\n\nconsole.log('[VIEW] Loading PDF-JS', {PDF_WORKER_URL, CMAPS_URL});\n\n// pdf.GlobalWorkerOptions.workerSrc = 'https://cdnjs.cloudflare.com/ajax/libs/pdf.js/2.6.347/pdf.worker.min.js';\npdf.GlobalWorkerOptions.workerSrc = PDF_WORKER_URL;\n\nexport interface IPDFPageInfo {\n height: number;\n width: number;\n originalHeight: number;\n originalWidth: number;\n xRatio: number;\n yRatio: number;\n pageNumber: number;\n canvasTop: number;\n canvasRight: number;\n canvasLeft: number;\n canvasBottom: number;\n}\n\nexport interface IPDFRenderEvent {\n numRendered: number;\n numPages: number;\n pages: IPDFPageInfo[];\n canvasContainer: HTMLDivElement;\n}\n\n@Component({\n tag: 'verdocs-view',\n styleUrl: 'verdocs-view.scss',\n shadow: false,\n})\nexport class VerdocsView {\n @Element() component: HTMLElement;\n\n private pdfDocument: any;\n private pdfContainer: HTMLDivElement;\n private numPages = 1;\n private fingerprint = null as string | null;\n\n /**\n * The endpoint to use to communicate with Verdocs. If not set, the default endpoint will be used.\n */\n @Prop() endpoint: VerdocsEndpoint = VerdocsEndpoint.getDefault();\n\n /**\n * Rotate the PDF in degrees\n */\n @Prop() rotation: 0 | 90 | 180 | 270 = 0;\n\n /**\n * Src of the PDF to load and render\n */\n @Prop() source: string;\n\n /**\n * Listen for changes to src\n */\n @Watch('source')\n doSrc(newValue: string | null, oldValue: string | null): void {\n if (newValue === oldValue) {\n return;\n }\n this.loadAndRender(newValue);\n }\n\n /**\n * Fired when a page has been rendered\n */\n @Event() pageRendered: EventEmitter<IPDFRenderEvent>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageLoaded: EventEmitter<number>;\n\n /**\n * Fired when a page has been changed\n */\n @Event() pageChange: EventEmitter<number>;\n\n /**\n * Fired when a page has been initialized\n */\n @Event() pageInit: EventEmitter<number>;\n\n /**\n * Fired when a page has been scaled\n */\n @Event() scaleChange: EventEmitter<number>;\n\n /**\n * Fired when the document has completed rendered. The event will include the rendered page count.\n */\n @Event() documentRendered: EventEmitter<IPDFRenderEvent>;\n\n @State() loadProgress = 0;\n\n pagesRendered: IPDFPageInfo[] = [];\n\n isRotated(rotation) {\n return rotation !== 0 && rotation % 180 !== 0;\n }\n\n async renderPages(): Promise<void> {\n const pageNumbersToRender = integerSequence(1, this.numPages);\n\n for await (let pageNumber of pageNumbersToRender) {\n const index = pageNumber - 1;\n\n console.log('[VIEW] Rendering page', pageNumber);\n const page = await this.pdfDocument.getPage(pageNumber);\n const [pageX0, pageY0, pageX1, pageY1] = page.view;\n const rotation = page.rotate;\n\n const viewport = page.getViewport({scale: 1 / 0.75});\n // const viewport = page.getViewport({scale: 1.5});\n const canvas = document.createElement('canvas');\n const canvasContext = canvas.getContext('2d');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n\n await page.render({canvasContext, viewport});\n this.pdfContainer.appendChild(canvas);\n\n const canvasWidth = canvas.width;\n const canvasHeight = canvas.height;\n const pageWidth = pageX1 - pageX0;\n const pageHeight = pageY1 - pageY0;\n\n this.pagesRendered.sort((a, b) => a.pageNumber - b.pageNumber);\n const previousSibling = this.pagesRendered.filter(page => page.pageNumber < pageNumber).pop();\n const canvasTop = (previousSibling?.canvasBottom || 0) + CANVAS_MARGIN;\n\n const pageDetails = {\n pageNumber,\n width: canvasWidth,\n height: canvasHeight,\n originalWidth: this.isRotated(rotation) ? pageHeight : pageWidth,\n originalHeight: this.isRotated(rotation) ? pageWidth : pageHeight,\n xRatio: canvasWidth / pageWidth,\n yRatio: canvasHeight / pageHeight,\n canvasTop: canvasTop,\n canvasLeft: CANVAS_MARGIN,\n canvasRight: CANVAS_MARGIN + canvasWidth,\n canvasBottom: canvasTop + canvasHeight,\n } as IPDFPageInfo;\n\n if (this.pagesRendered[index]) {\n this.pagesRendered[index] = pageDetails;\n } else {\n this.pagesRendered.push(pageDetails);\n }\n\n const eventData = {pages: this.pagesRendered, numPages: this.numPages, numRendered: this.pagesRendered.length, canvasContainer: this.pdfContainer} as IPDFRenderEvent;\n this.pageRendered.emit(eventData);\n\n if (pageNumber >= this.numPages) {\n console.log('[VIEW] Done rendering');\n this.pagesRendered.sort((a, b) => a.pageNumber - b.pageNumber);\n this.documentRendered.emit(eventData);\n }\n }\n }\n\n componentDidLoad(): void {\n this.pdfContainer = document.getElementById('verdocs-pdf-viewer-container') as HTMLDivElement;\n\n if (this.source) {\n this.loadAndRender(this.source);\n }\n }\n\n onProgress(progress: OnProgressParameters) {\n this.loadProgress = Math.floor((100 * progress.loaded) / progress.total);\n }\n\n loadAndRender(src: string): void {\n console.log('[VIEW] Loading', src);\n console.log('this', this);\n const token = this.endpoint.getToken();\n const httpHeaders = token ? {Authorization: `Bearer ${token}`} : {};\n\n const source = {\n url: src,\n withCredentials: true,\n cMapUrl: CMAPS_URL,\n cMapPacked: true,\n verbosity: VerbosityLevel.WARNINGS,\n httpHeaders,\n } as DocumentInitParameters;\n\n // @ts-ignore\n const loadingTask = pdf.getDocument(source, null, null, this.onProgress);\n loadingTask.onProgress = this.onProgress;\n loadingTask.promise.then((pdfDocument: PDFDocumentProxy) => {\n this.loadProgress = 100;\n this.numPages = pdfDocument.numPages;\n this.fingerprint = pdfDocument.fingerprints[0];\n console.log(`[VIEW] Got PDF document fingerprint \"${this.fingerprint}, ${this.numPages} pages`, pdfDocument);\n\n this.pdfDocument = pdfDocument;\n this.renderPages().catch(e => console.log('Rendering error', e));\n });\n }\n\n render() {\n return (\n <div class=\"container\">\n {this.loadProgress < 100 ? <verdocs-loader /> : <div style={{display: 'none'}} />}\n <div id=\"verdocs-pdf-viewer-container\" />\n </div>\n );\n }\n}\n"]}
|