@verdocs/web-sdk 1.5.4 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{VerdocsEndpoint-2c7ecda8.js → VerdocsEndpoint-4b97517d.js} +38 -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 +11356 -7260
- 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 +3 -1
- 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 +1 -0
- 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 +2 -0
- 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 +39 -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 +2 -0
- 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 +11356 -7260
- package/dist/components/verdocs-view2.js.map +1 -0
- package/dist/docs.json +2 -3
- package/dist/esm/{VerdocsEndpoint-1dbbd8e2.js → VerdocsEndpoint-9353e4a0.js} +39 -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 +11333 -7237
- 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 +3 -1
- 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/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-5bd83ddc.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-fdf34ca6.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-cc12ccaa.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-7adcb52c.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/fixup-pdfjs.js +69 -0
- package/package.json +21 -14
- package/dist/esm-es5/VerdocsEndpoint-1dbbd8e2.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-15b7ed4d.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-4cfc0f04.entry.js +0 -23
- package/dist/verdocs-web-sdk/p-4e98796c.system.entry.js +0 -1
- 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-6b8bc6f4.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-6fa6fb3c.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-6fd6ae35.system.js +0 -7
- 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-9e3a842c.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-a55ed8ce.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-bf2620cb.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-c34360d3.js +0 -1
- package/dist/verdocs-web-sdk/p-da667373.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-e3229752.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f4219236.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f74862f7.entry.js +0 -1
- package/dist/verdocs-web-sdk/p-f76721d3.system.entry.js +0 -23
- 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","exports","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","class_3","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_4","placeholder","fieldFocus","toISOString","handleBlur","fieldBlur","handleFocus","handleInput","fieldInput","onInput","verdocsFieldDropdownCss","VerdocsFieldDropdown","class_5","verdocsFieldInitialCss","VerdocsFieldInitial","class_6","fullName","alt","verdocsFieldPaymentCss","VerdocsFieldPayment","class_7","signed","signatureUrl","_fields","signatureFile","initialFile","focusOrderNumber","focusFieldName","showError","pageNum","fieldIndex","dialogOpened","closeAllErrors","fieldsMap","fieldsForCurrentSigner","fontSize","averageFontWidth","requiredFields","field","recipients","preparer","r","preparedMessage","verdocsFieldRadioButtonCss","VerdocsFieldRadioButton","class_8","htmlFor","verdocsFieldSignatureCss","VerdocsFieldSignature","class_9","verdocsFieldTextareaCss","VerdocsFieldTextarea","class_10","verdocsFieldTextboxCss","VerdocsFieldTextbox","class_11","webpackUniversalModuleDefinition","root","factory","module","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_12","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_13","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"]}
|