@instincthub/react-ui 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -12
- package/dist/_virtual/_rollupPluginBabelHelpers.js +1 -1
- package/dist/_virtual/index.js +1 -1
- package/dist/_virtual/index2.js +1 -1
- package/dist/_virtual/index3.js +1 -1
- package/dist/_virtual/index4.js +1 -1
- package/dist/_virtual/index5.js +1 -1
- package/dist/node_modules/attr-accept/dist/es/index.js +2 -0
- package/dist/node_modules/attr-accept/dist/es/index.js.map +1 -0
- package/dist/node_modules/comma-separated-tokens/index.js +1 -1
- package/dist/node_modules/file-selector/dist/es2015/file-selector.js +2 -0
- package/dist/node_modules/file-selector/dist/es2015/file-selector.js.map +1 -0
- package/dist/node_modules/file-selector/dist/es2015/file.js +2 -0
- package/dist/node_modules/file-selector/dist/es2015/file.js.map +1 -0
- package/dist/node_modules/hastscript/factory.js +1 -1
- package/dist/node_modules/hastscript/index.js +1 -1
- package/dist/node_modules/hastscript/index.js.map +1 -1
- package/dist/node_modules/prop-types/index.js +1 -1
- package/dist/node_modules/prop-types/index.js.map +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +1 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +1 -1
- package/dist/node_modules/prosemirror-model/dist/index.js.map +1 -1
- package/dist/node_modules/react-dropzone/dist/es/index.js +2 -0
- package/dist/node_modules/react-dropzone/dist/es/index.js.map +1 -0
- package/dist/node_modules/react-dropzone/dist/es/utils/index.js +2 -0
- package/dist/node_modules/react-dropzone/dist/es/utils/index.js.map +1 -0
- package/dist/node_modules/refractor/core.js +1 -1
- package/dist/node_modules/refractor/core.js.map +1 -1
- package/dist/node_modules/space-separated-tokens/index.js +1 -1
- package/dist/node_modules/tslib/tslib.es6.js +2 -0
- package/dist/node_modules/tslib/tslib.es6.js.map +1 -0
- package/dist/src/assets/css/bootstrap.css +1151 -0
- package/dist/src/assets/css/darkmode.css +57 -0
- package/dist/src/assets/css/fonts.css +1 -0
- package/dist/src/assets/css/forms/ihub-file-uploader.css +247 -0
- package/dist/src/assets/css/forms/input-fields.css +1617 -0
- package/dist/src/assets/css/forms/react-action.css +46 -0
- package/dist/src/assets/css/forms/submit-btn.css +39 -0
- package/dist/src/assets/css/forms/unsplash-random-image.css +289 -0
- package/dist/src/assets/css/forms.css +145 -0
- package/dist/src/assets/css/invoice.css +196 -0
- package/dist/src/assets/css/loading.css +57 -0
- package/dist/src/assets/css/main.css +2364 -0
- package/dist/src/assets/css/material-ui.css +82 -0
- package/dist/src/assets/css/modals.css +208 -0
- package/dist/src/assets/css/primereact.css +367 -0
- package/dist/src/assets/css/react-video-player.css +81 -0
- package/dist/src/assets/css/readme/display.md +401 -0
- package/dist/src/assets/css/readme/margin.md +214 -0
- package/dist/src/assets/css/readme/overflow.md +93 -0
- package/dist/src/assets/css/readme/width-height-padding.md +342 -0
- package/dist/src/assets/css/readme/z-index.md +80 -0
- package/dist/src/assets/css/root.css +70 -0
- package/dist/src/assets/css/styles.css +26 -0
- package/dist/src/assets/css/tag-only-selectors.css +240 -0
- package/dist/src/assets/css/tooltip.css +26 -0
- package/dist/src/assets/css/ui/code-display.css +132 -0
- package/dist/src/assets/css/ui/content-viewer.css +599 -0
- package/dist/src/assets/css/ui/editor.css +161 -0
- package/dist/src/assets/css/ui/list-styles.css +322 -0
- package/dist/src/assets/css/ui/parent-list-styles.css +223 -0
- package/dist/src/assets/css/ui/signout-session.css +177 -0
- package/dist/src/assets/json/countries.json +1 -0
- package/dist/src/assets/svgs/SVGs.jsx +38 -0
- package/dist/src/components/forms/AnimatedBox.js.map +1 -1
- package/dist/src/components/forms/DateInput.js +2 -0
- package/dist/src/components/forms/DateInput.js.map +1 -0
- package/dist/src/components/forms/DateTimeInput.js +2 -0
- package/dist/src/components/forms/DateTimeInput.js.map +1 -0
- package/dist/src/components/forms/DropFile.js +2 -0
- package/dist/src/components/forms/DropFile.js.map +1 -0
- package/dist/src/components/forms/EmailList.js +2 -0
- package/dist/src/components/forms/EmailList.js.map +1 -0
- package/dist/src/components/forms/FilterArray.js +2 -0
- package/dist/src/components/forms/FilterArray.js.map +1 -0
- package/dist/src/components/forms/FilterBy.js +2 -0
- package/dist/src/components/forms/FilterBy.js.map +1 -0
- package/dist/src/components/forms/FilterObjects.js +2 -0
- package/dist/src/components/forms/FilterObjects.js.map +1 -0
- package/dist/src/components/forms/FormError.js +2 -0
- package/dist/src/components/forms/FormError.js.map +1 -0
- package/dist/src/components/forms/HandleError.js +2 -0
- package/dist/src/components/forms/HandleError.js.map +1 -0
- package/dist/src/components/forms/Logout.js +2 -0
- package/dist/src/components/forms/Logout.js.map +1 -0
- package/dist/src/components/forms/MessageDisplay.js +2 -0
- package/dist/src/components/forms/MessageDisplay.js.map +1 -0
- package/dist/src/components/forms/MultipleEmail.js +2 -0
- package/dist/src/components/forms/MultipleEmail.js.map +1 -0
- package/dist/src/components/forms/PageLoading.js +2 -0
- package/dist/src/components/forms/PageLoading.js.map +1 -0
- package/dist/src/components/forms/PasswordField.js +2 -0
- package/dist/src/components/forms/PasswordField.js.map +1 -0
- package/dist/src/components/forms/PhoneNumberInput.js +2 -0
- package/dist/src/components/forms/PhoneNumberInput.js.map +1 -0
- package/dist/src/components/forms/RadioField.js +2 -0
- package/dist/src/components/forms/RadioField.js.map +1 -0
- package/dist/src/components/forms/RadioSimple.js +2 -0
- package/dist/src/components/forms/RadioSimple.js.map +1 -0
- package/dist/src/components/forms/ReactTimeAgo.js +2 -0
- package/dist/src/components/forms/ReactTimeAgo.js.map +1 -0
- package/dist/src/components/forms/ReadTermsAndCondition.js +2 -0
- package/dist/src/components/forms/ReadTermsAndCondition.js.map +1 -0
- package/dist/src/components/forms/SearchField.js +2 -0
- package/dist/src/components/forms/SearchField.js.map +1 -0
- package/dist/src/components/forms/StepProgressBar.js +2 -0
- package/dist/src/components/forms/StepProgressBar.js.map +1 -0
- package/dist/src/components/forms/SubmitBtn.js +1 -1
- package/dist/src/components/forms/SubmitBtn.js.map +1 -1
- package/dist/src/components/forms/Tables.js +2 -0
- package/dist/src/components/forms/Tables.js.map +1 -0
- package/dist/src/components/forms/TextArea.js +2 -0
- package/dist/src/components/forms/TextArea.js.map +1 -0
- package/dist/src/components/forms/Tooltip.js +2 -0
- package/dist/src/components/forms/Tooltip.js.map +1 -0
- package/dist/src/components/forms/UnsplashRandomImage.js +2 -0
- package/dist/src/components/forms/UnsplashRandomImage.js.map +1 -0
- package/dist/src/components/forms/uploads/FileUploader.js +2 -0
- package/dist/src/components/forms/uploads/FileUploader.js.map +1 -0
- package/dist/src/components/forms/uploads/IhubFileUploader.js +2 -0
- package/dist/src/components/forms/uploads/IhubFileUploader.js.map +1 -0
- package/dist/src/components/lib/auth/actions.js +2 -0
- package/dist/src/components/lib/auth/actions.js.map +1 -0
- package/dist/src/components/lib/auth/dbRequestst.js +2 -0
- package/dist/src/components/lib/auth/dbRequestst.js.map +1 -0
- package/dist/src/components/lib/format.js +2 -0
- package/dist/src/components/lib/format.js.map +1 -0
- package/dist/src/components/lib/helpFunction.js +2 -0
- package/dist/src/components/lib/helpFunction.js.map +1 -0
- package/dist/src/components/lib/index.js +2 -0
- package/dist/src/components/lib/json/accounts.js +2 -0
- package/dist/src/components/lib/json/accounts.js.map +1 -0
- package/dist/src/components/lib/json/countryObjects.js +2 -0
- package/dist/src/components/lib/json/countryObjects.js.map +1 -0
- package/dist/src/components/lib/json/unsplashDefaultObject.js +2 -0
- package/dist/src/components/lib/json/unsplashDefaultObject.js.map +1 -0
- package/dist/src/components/lib/modals.js +2 -0
- package/dist/src/components/lib/modals.js.map +1 -0
- package/dist/src/components/lib/oauth_json.js +2 -0
- package/dist/src/components/lib/oauth_json.js.map +1 -0
- package/dist/src/components/lib/paystack.js +2 -0
- package/dist/src/components/lib/paystack.js.map +1 -0
- package/dist/src/components/lib/permissions.js +2 -0
- package/dist/src/components/lib/permissions.js.map +1 -0
- package/dist/src/components/lib/utils.js +2 -0
- package/dist/src/components/lib/utils.js.map +1 -0
- package/dist/src/components/status/TimeTracker.js +2 -0
- package/dist/src/components/status/TimeTracker.js.map +1 -0
- package/dist/src/components/theme/ChangeStyleVariable.js +2 -0
- package/dist/src/components/theme/ChangeStyleVariable.js.map +1 -0
- package/dist/src/components/theme/DarkModeProvider.js +2 -0
- package/dist/src/components/theme/DarkModeProvider.js.map +1 -0
- package/dist/src/components/theme/LoadingAnimate.js +2 -0
- package/dist/src/components/theme/LoadingAnimate.js.map +1 -0
- package/dist/src/components/theme/SessionProviders.js +2 -0
- package/dist/src/components/theme/SessionProviders.js.map +1 -0
- package/dist/src/components/theme/signout/SessionExpiresLogout.js +2 -0
- package/dist/src/components/theme/signout/SessionExpiresLogout.js.map +1 -0
- package/dist/src/components/theme/signout/SignOutSession.js +2 -0
- package/dist/src/components/theme/signout/SignOutSession.js.map +1 -0
- package/dist/src/components/ui/editor/CustomTextEditor.js +1 -1
- package/dist/src/components/ui/editor/MenuBar.js +1 -1
- package/dist/src/components/ui/viewer/CodeDisplay.js +1 -1
- package/dist/src/components/ui/viewer/ContentViewer.js +1 -1
- package/dist/src/index-types.js +2 -0
- package/dist/src/index-types.js.map +1 -0
- package/dist/src/index.js +1 -1
- package/dist/src/types/assets/images/Images.d.ts +7 -0
- package/dist/src/types/components/auth/IsUsernameEmailTaken.d.ts +9 -0
- package/dist/src/types/components/forms/CountryInput.d.ts +0 -1
- package/dist/src/types/components/forms/CountryStateInput.d.ts +0 -1
- package/dist/src/types/components/forms/DateInput.d.ts +14 -0
- package/dist/src/types/components/forms/DateTimeInput.d.ts +9 -0
- package/dist/src/types/components/forms/DropFile.d.ts +7 -0
- package/dist/src/types/components/forms/EmailList.d.ts +7 -0
- package/dist/src/types/components/forms/FileField.d.ts +12 -0
- package/dist/src/types/components/forms/FilterArray.d.ts +17 -0
- package/dist/src/types/components/forms/FilterBy.d.ts +7 -0
- package/dist/src/types/components/forms/FilterObjects.d.ts +25 -0
- package/dist/src/types/components/forms/FormError.d.ts +7 -0
- package/dist/src/types/components/forms/HandleError.d.ts +12 -0
- package/dist/src/types/components/forms/InputSearchDropdown.d.ts +14 -0
- package/dist/src/types/components/forms/Logout.d.ts +6 -0
- package/dist/src/types/components/forms/MessageDisplay.d.ts +10 -0
- package/dist/src/types/components/forms/MultipleEmail.d.ts +6 -0
- package/dist/src/types/components/forms/PageLoading.d.ts +6 -0
- package/dist/src/types/components/forms/PasswordField.d.ts +10 -0
- package/dist/src/types/components/forms/PhoneNumberInput.d.ts +12 -0
- package/dist/src/types/components/forms/RadioField.d.ts +16 -0
- package/dist/src/types/components/forms/RadioSimple.d.ts +11 -0
- package/dist/src/types/components/forms/RangeRadio.d.ts +10 -0
- package/dist/src/types/components/forms/ReactTimeAgo.d.ts +9 -0
- package/dist/src/types/components/forms/ReadTermsAndCondition.d.ts +6 -0
- package/dist/src/types/components/forms/SearchField.d.ts +7 -0
- package/dist/src/types/components/forms/StepProgressBar.d.ts +9 -0
- package/dist/src/types/components/forms/Tables.d.ts +10 -0
- package/dist/src/types/components/forms/TextArea.d.ts +13 -0
- package/dist/src/types/components/forms/Tooltip.d.ts +11 -0
- package/dist/src/types/components/forms/UnsplashRandomImage.d.ts +81 -0
- package/dist/src/types/components/forms/uploads/FileUploader.d.ts +25 -0
- package/dist/src/types/components/forms/uploads/IhubFileUploader.d.ts +46 -0
- package/dist/src/types/components/lib/auth/actions.d.ts +15 -0
- package/dist/src/types/components/lib/auth/dbRequestst.d.ts +21 -0
- package/dist/src/types/components/lib/createSubscription.d.ts +13 -0
- package/dist/src/types/components/lib/elementIsVisibleInViewport.d.ts +8 -0
- package/dist/src/types/components/lib/fileToBase64.d.ts +7 -0
- package/dist/src/types/components/lib/formError.d.ts +13 -0
- package/dist/src/types/components/lib/format.d.ts +6 -0
- package/dist/src/types/components/lib/getPriceObjects.d.ts +39 -0
- package/dist/src/types/components/lib/helpFunction.d.ts +233 -0
- package/dist/src/types/components/lib/index.d.ts +20 -0
- package/dist/src/types/components/lib/json/accounts.d.ts +42 -0
- package/dist/src/types/components/lib/json/countryNigeria.d.ts +17 -0
- package/dist/src/types/components/lib/json/countryObjects.d.ts +17 -0
- package/dist/src/types/components/lib/json/educationLevels.d.ts +2 -0
- package/dist/src/types/components/lib/json/unsplashDefaultObject.d.ts +12 -0
- package/dist/src/types/components/lib/loadScript.d.ts +7 -0
- package/dist/src/types/components/lib/modals.d.ts +14 -0
- package/dist/src/types/components/lib/oauth_json.d.ts +97 -0
- package/dist/src/types/components/lib/paystack.d.ts +115 -0
- package/dist/src/types/components/lib/permissions.d.ts +22 -0
- package/dist/src/types/components/lib/utils.d.ts +165 -0
- package/dist/src/types/components/status/TimeTracker.d.ts +16 -0
- package/dist/src/types/components/theme/ChangeStyleVariable.d.ts +10 -0
- package/dist/src/types/components/theme/DarkModeProvider.d.ts +12 -0
- package/dist/src/types/components/theme/LoadingAnimate.d.ts +1 -0
- package/dist/src/types/components/theme/SessionProviders.d.ts +12 -0
- package/dist/src/types/components/theme/signout/SessionExpiresLogout.d.ts +55 -0
- package/dist/src/types/components/theme/signout/SignOutSession.d.ts +9 -0
- package/dist/src/types/components/ui/viewer/CodeDisplay.d.ts +2 -3
- package/dist/src/types/components/ui/viewer/ContentViewer.d.ts +0 -1
- package/dist/src/types/index-types.d.ts +3 -0
- package/dist/src/types/index.d.ts +42 -9
- package/dist/src/types/styles.d.ts +1 -13
- package/package.json +31 -11
- package/dist/_virtual/index6.js +0 -2
- package/dist/_virtual/index6.js.map +0 -1
- package/dist/_virtual/index7.js +0 -2
- package/dist/_virtual/index7.js.map +0 -1
- package/dist/_virtual/make-built-in.js +0 -2
- package/dist/_virtual/make-built-in.js.map +0 -1
- package/dist/_virtual/new-promise-capability.js +0 -2
- package/dist/_virtual/new-promise-capability.js.map +0 -1
- package/dist/_virtual/object-define-properties.js +0 -2
- package/dist/_virtual/object-define-properties.js.map +0 -1
- package/dist/_virtual/object-define-property.js +0 -2
- package/dist/_virtual/object-define-property.js.map +0 -1
- package/dist/_virtual/object-get-own-property-descriptor.js +0 -2
- package/dist/_virtual/object-get-own-property-descriptor.js.map +0 -1
- package/dist/_virtual/object-get-own-property-names.js +0 -2
- package/dist/_virtual/object-get-own-property-names.js.map +0 -1
- package/dist/_virtual/object-get-own-property-symbols.js +0 -2
- package/dist/_virtual/object-get-own-property-symbols.js.map +0 -1
- package/dist/_virtual/object-property-is-enumerable.js +0 -2
- package/dist/_virtual/object-property-is-enumerable.js.map +0 -1
- package/dist/_virtual/performance-now.js +0 -2
- package/dist/_virtual/performance-now.js.map +0 -1
- package/dist/_virtual/react-is.development2.js +0 -2
- package/dist/_virtual/react-is.development2.js.map +0 -1
- package/dist/_virtual/react-is.production.js +0 -2
- package/dist/_virtual/react-is.production.js.map +0 -1
- package/dist/_virtual/shared-store.js +0 -2
- package/dist/_virtual/shared-store.js.map +0 -1
- package/dist/assets/js/HomePageStyle.js +0 -152
- package/dist/assets/js/createSubscription.js +0 -34
- package/dist/assets/js/currency_symbols.js +0 -5
- package/dist/assets/js/elementIsVisibleInViewport.js +0 -13
- package/dist/assets/js/fileToBase64.js +0 -9
- package/dist/assets/js/formError.js +0 -59
- package/dist/assets/js/format.js +0 -17
- package/dist/assets/js/getPriceObjects.js +0 -66
- package/dist/assets/js/helpFunction.js +0 -565
- package/dist/assets/js/loadScript.js +0 -38
- package/dist/assets/js/modals.js +0 -192
- package/dist/assets/js/oauth_json.js +0 -101
- package/dist/assets/js/paystack.js +0 -228
- package/dist/assets/js/permissions.js +0 -22
- package/dist/assets/js/shared.js +0 -0
- package/dist/assets/js/utils.js +0 -107
- package/dist/assets/json/Courses.json +0 -40
- package/dist/assets/json/accounts.js +0 -230
- package/dist/assets/json/countryNigeria.js +0 -20
- package/dist/assets/json/countryObjects.js +0 -5750
- package/dist/assets/json/countryStatesObjects.js +0 -34745
- package/dist/assets/json/educationLevels.js +0 -12
- package/dist/assets/json/unsplashDefaultObject.js +0 -13
- package/dist/assets/svgs/SVGs.jsx +0 -38
- package/dist/node_modules/@emotion/hash/dist/emotion-hash.esm.js +0 -2
- package/dist/node_modules/@emotion/hash/dist/emotion-hash.esm.js.map +0 -1
- package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js +0 -2
- package/dist/node_modules/@emotion/memoize/dist/emotion-memoize.esm.js.map +0 -1
- package/dist/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js +0 -2
- package/dist/node_modules/@emotion/serialize/dist/emotion-serialize.esm.js.map +0 -1
- package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js +0 -2
- package/dist/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/CheckBox.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/CheckBox.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Code.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Code.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/ContentCopy.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/ContentCopy.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Edit.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Edit.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FileDownload.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FileDownload.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FormatBold.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FormatBold.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FormatClear.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FormatClear.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FormatItalic.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FormatItalic.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FormatListBulleted.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FormatListBulleted.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FormatListNumbered.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FormatListNumbered.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FormatQuote.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FormatQuote.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Fullscreen.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Fullscreen.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/FullscreenExit.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/FullscreenExit.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Highlight.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Highlight.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/HorizontalRule.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/HorizontalRule.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Link.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Link.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Print.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Print.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Redo.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Redo.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/StrikethroughS.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/StrikethroughS.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/TableChart.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/TableChart.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Undo.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Undo.js.map +0 -1
- package/dist/node_modules/@mui/icons-material/esm/Visibility.js +0 -2
- package/dist/node_modules/@mui/icons-material/esm/Visibility.js.map +0 -1
- package/dist/node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js +0 -2
- package/dist/node_modules/@mui/material/DefaultPropsProvider/DefaultPropsProvider.js.map +0 -1
- package/dist/node_modules/@mui/material/SvgIcon/SvgIcon.js +0 -2
- package/dist/node_modules/@mui/material/SvgIcon/SvgIcon.js.map +0 -1
- package/dist/node_modules/@mui/material/SvgIcon/svgIconClasses.js +0 -2
- package/dist/node_modules/@mui/material/SvgIcon/svgIconClasses.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/blue.js +0 -2
- package/dist/node_modules/@mui/material/colors/blue.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/common.js +0 -2
- package/dist/node_modules/@mui/material/colors/common.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/green.js +0 -2
- package/dist/node_modules/@mui/material/colors/green.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/grey.js +0 -2
- package/dist/node_modules/@mui/material/colors/grey.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/lightBlue.js +0 -2
- package/dist/node_modules/@mui/material/colors/lightBlue.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/orange.js +0 -2
- package/dist/node_modules/@mui/material/colors/orange.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/purple.js +0 -2
- package/dist/node_modules/@mui/material/colors/purple.js.map +0 -1
- package/dist/node_modules/@mui/material/colors/red.js +0 -2
- package/dist/node_modules/@mui/material/colors/red.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createColorScheme.js +0 -2
- package/dist/node_modules/@mui/material/styles/createColorScheme.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createGetSelector.js +0 -2
- package/dist/node_modules/@mui/material/styles/createGetSelector.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createMixins.js +0 -2
- package/dist/node_modules/@mui/material/styles/createMixins.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createPalette.js +0 -2
- package/dist/node_modules/@mui/material/styles/createPalette.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createTheme.js +0 -2
- package/dist/node_modules/@mui/material/styles/createTheme.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createThemeNoVars.js +0 -2
- package/dist/node_modules/@mui/material/styles/createThemeNoVars.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createThemeWithVars.js +0 -2
- package/dist/node_modules/@mui/material/styles/createThemeWithVars.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createTransitions.js +0 -2
- package/dist/node_modules/@mui/material/styles/createTransitions.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/createTypography.js +0 -2
- package/dist/node_modules/@mui/material/styles/createTypography.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/defaultTheme.js +0 -2
- package/dist/node_modules/@mui/material/styles/defaultTheme.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/excludeVariablesFromRoot.js +0 -2
- package/dist/node_modules/@mui/material/styles/excludeVariablesFromRoot.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/getOverlayAlpha.js +0 -2
- package/dist/node_modules/@mui/material/styles/getOverlayAlpha.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/identifier.js +0 -2
- package/dist/node_modules/@mui/material/styles/identifier.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/rootShouldForwardProp.js +0 -2
- package/dist/node_modules/@mui/material/styles/rootShouldForwardProp.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/shadows.js +0 -2
- package/dist/node_modules/@mui/material/styles/shadows.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/shouldSkipGeneratingVar.js +0 -2
- package/dist/node_modules/@mui/material/styles/shouldSkipGeneratingVar.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/slotShouldForwardProp.js +0 -2
- package/dist/node_modules/@mui/material/styles/slotShouldForwardProp.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/stringifyTheme.js +0 -2
- package/dist/node_modules/@mui/material/styles/stringifyTheme.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/styled.js +0 -2
- package/dist/node_modules/@mui/material/styles/styled.js.map +0 -1
- package/dist/node_modules/@mui/material/styles/zIndex.js +0 -2
- package/dist/node_modules/@mui/material/styles/zIndex.js.map +0 -1
- package/dist/node_modules/@mui/material/utils/capitalize.js +0 -2
- package/dist/node_modules/@mui/material/utils/capitalize.js.map +0 -1
- package/dist/node_modules/@mui/material/utils/createSvgIcon.js +0 -2
- package/dist/node_modules/@mui/material/utils/createSvgIcon.js.map +0 -1
- package/dist/node_modules/@mui/material/utils/memoTheme.js +0 -2
- package/dist/node_modules/@mui/material/utils/memoTheme.js.map +0 -1
- package/dist/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js +0 -2
- package/dist/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js.map +0 -1
- package/dist/node_modules/@mui/private-theming/ThemeProvider/nested.js +0 -2
- package/dist/node_modules/@mui/private-theming/ThemeProvider/nested.js.map +0 -1
- package/dist/node_modules/@mui/private-theming/useTheme/ThemeContext.js +0 -2
- package/dist/node_modules/@mui/private-theming/useTheme/ThemeContext.js.map +0 -1
- package/dist/node_modules/@mui/private-theming/useTheme/useTheme.js +0 -2
- package/dist/node_modules/@mui/private-theming/useTheme/useTheme.js.map +0 -1
- package/dist/node_modules/@mui/styled-engine/index.js +0 -9
- package/dist/node_modules/@mui/styled-engine/index.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js +0 -2
- package/dist/node_modules/@mui/system/esm/DefaultPropsProvider/DefaultPropsProvider.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/RtlProvider/index.js +0 -2
- package/dist/node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js +0 -2
- package/dist/node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/borders/borders.js +0 -2
- package/dist/node_modules/@mui/system/esm/borders/borders.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/breakpoints/breakpoints.js +0 -2
- package/dist/node_modules/@mui/system/esm/breakpoints/breakpoints.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/colorManipulator/colorManipulator.js +0 -2
- package/dist/node_modules/@mui/system/esm/colorManipulator/colorManipulator.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/compose/compose.js +0 -2
- package/dist/node_modules/@mui/system/esm/compose/compose.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/createBreakpoints/createBreakpoints.js +0 -2
- package/dist/node_modules/@mui/system/esm/createBreakpoints/createBreakpoints.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/createStyled/createStyled.js +0 -2
- package/dist/node_modules/@mui/system/esm/createStyled/createStyled.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/createTheme/applyStyles.js +0 -2
- package/dist/node_modules/@mui/system/esm/createTheme/applyStyles.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/createTheme/createSpacing.js +0 -2
- package/dist/node_modules/@mui/system/esm/createTheme/createSpacing.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/createTheme/createTheme.js +0 -2
- package/dist/node_modules/@mui/system/esm/createTheme/createTheme.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/createTheme/shape.js +0 -2
- package/dist/node_modules/@mui/system/esm/createTheme/shape.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/cssContainerQueries/cssContainerQueries.js +0 -2
- package/dist/node_modules/@mui/system/esm/cssContainerQueries/cssContainerQueries.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/cssGrid/cssGrid.js +0 -2
- package/dist/node_modules/@mui/system/esm/cssGrid/cssGrid.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/cssVars/cssVarsParser.js +0 -2
- package/dist/node_modules/@mui/system/esm/cssVars/cssVarsParser.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/cssVars/getColorSchemeSelector.js +0 -2
- package/dist/node_modules/@mui/system/esm/cssVars/getColorSchemeSelector.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/cssVars/prepareCssVars.js +0 -2
- package/dist/node_modules/@mui/system/esm/cssVars/prepareCssVars.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/cssVars/prepareTypographyVars.js +0 -2
- package/dist/node_modules/@mui/system/esm/cssVars/prepareTypographyVars.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/memoize/memoize.js +0 -2
- package/dist/node_modules/@mui/system/esm/memoize/memoize.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/merge/merge.js +0 -2
- package/dist/node_modules/@mui/system/esm/merge/merge.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/palette/palette.js +0 -2
- package/dist/node_modules/@mui/system/esm/palette/palette.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/preprocessStyles.js +0 -2
- package/dist/node_modules/@mui/system/esm/preprocessStyles.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/responsivePropType/responsivePropType.js +0 -2
- package/dist/node_modules/@mui/system/esm/responsivePropType/responsivePropType.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/sizing/sizing.js +0 -2
- package/dist/node_modules/@mui/system/esm/sizing/sizing.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/spacing/spacing.js +0 -2
- package/dist/node_modules/@mui/system/esm/spacing/spacing.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/style/style.js +0 -2
- package/dist/node_modules/@mui/system/esm/style/style.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js +0 -2
- package/dist/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js +0 -2
- package/dist/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js.map +0 -1
- package/dist/node_modules/@mui/system/esm/useThemeWithoutDefault/useThemeWithoutDefault.js +0 -2
- package/dist/node_modules/@mui/system/esm/useThemeWithoutDefault/useThemeWithoutDefault.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js +0 -2
- package/dist/node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/capitalize/capitalize.js +0 -2
- package/dist/node_modules/@mui/utils/esm/capitalize/capitalize.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.js +0 -2
- package/dist/node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/clamp/clamp.js +0 -2
- package/dist/node_modules/@mui/utils/esm/clamp/clamp.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/composeClasses/composeClasses.js +0 -2
- package/dist/node_modules/@mui/utils/esm/composeClasses/composeClasses.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/deepmerge/deepmerge.js +0 -2
- package/dist/node_modules/@mui/utils/esm/deepmerge/deepmerge.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/elementAcceptingRef/elementAcceptingRef.js +0 -2
- package/dist/node_modules/@mui/utils/esm/elementAcceptingRef/elementAcceptingRef.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/elementTypeAcceptingRef/elementTypeAcceptingRef.js +0 -2
- package/dist/node_modules/@mui/utils/esm/elementTypeAcceptingRef/elementTypeAcceptingRef.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/exactProp/exactProp.js +0 -2
- package/dist/node_modules/@mui/utils/esm/exactProp/exactProp.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js +0 -2
- package/dist/node_modules/@mui/utils/esm/formatMuiErrorMessage/formatMuiErrorMessage.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js +0 -2
- package/dist/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js +0 -2
- package/dist/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js +0 -2
- package/dist/node_modules/@mui/utils/esm/getDisplayName/getDisplayName.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/integerPropType/integerPropType.js +0 -2
- package/dist/node_modules/@mui/utils/esm/integerPropType/integerPropType.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/ponyfillGlobal/ponyfillGlobal.js +0 -2
- package/dist/node_modules/@mui/utils/esm/ponyfillGlobal/ponyfillGlobal.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/refType/refType.js +0 -2
- package/dist/node_modules/@mui/utils/esm/refType/refType.js.map +0 -1
- package/dist/node_modules/@mui/utils/esm/resolveProps/resolveProps.js +0 -2
- package/dist/node_modules/@mui/utils/esm/resolveProps/resolveProps.js.map +0 -1
- package/dist/node_modules/canvg/lib/index.es.js +0 -2
- package/dist/node_modules/canvg/lib/index.es.js.map +0 -1
- package/dist/node_modules/clsx/dist/clsx.mjs.js +0 -2
- package/dist/node_modules/clsx/dist/clsx.mjs.js.map +0 -1
- package/dist/node_modules/core-js/internals/a-callable.js +0 -2
- package/dist/node_modules/core-js/internals/a-callable.js.map +0 -1
- package/dist/node_modules/core-js/internals/a-constructor.js +0 -2
- package/dist/node_modules/core-js/internals/a-constructor.js.map +0 -1
- package/dist/node_modules/core-js/internals/a-possible-prototype.js +0 -2
- package/dist/node_modules/core-js/internals/a-possible-prototype.js.map +0 -1
- package/dist/node_modules/core-js/internals/add-to-unscopables.js +0 -2
- package/dist/node_modules/core-js/internals/add-to-unscopables.js.map +0 -1
- package/dist/node_modules/core-js/internals/advance-string-index.js +0 -2
- package/dist/node_modules/core-js/internals/advance-string-index.js.map +0 -1
- package/dist/node_modules/core-js/internals/an-instance.js +0 -2
- package/dist/node_modules/core-js/internals/an-instance.js.map +0 -1
- package/dist/node_modules/core-js/internals/an-object.js +0 -2
- package/dist/node_modules/core-js/internals/an-object.js.map +0 -1
- package/dist/node_modules/core-js/internals/array-includes.js +0 -2
- package/dist/node_modules/core-js/internals/array-includes.js.map +0 -1
- package/dist/node_modules/core-js/internals/array-method-is-strict.js +0 -2
- package/dist/node_modules/core-js/internals/array-method-is-strict.js.map +0 -1
- package/dist/node_modules/core-js/internals/array-reduce.js +0 -2
- package/dist/node_modules/core-js/internals/array-reduce.js.map +0 -1
- package/dist/node_modules/core-js/internals/array-slice.js +0 -2
- package/dist/node_modules/core-js/internals/array-slice.js.map +0 -1
- package/dist/node_modules/core-js/internals/check-correctness-of-iteration.js +0 -2
- package/dist/node_modules/core-js/internals/check-correctness-of-iteration.js.map +0 -1
- package/dist/node_modules/core-js/internals/classof-raw.js +0 -2
- package/dist/node_modules/core-js/internals/classof-raw.js.map +0 -1
- package/dist/node_modules/core-js/internals/classof.js +0 -2
- package/dist/node_modules/core-js/internals/classof.js.map +0 -1
- package/dist/node_modules/core-js/internals/copy-constructor-properties.js +0 -2
- package/dist/node_modules/core-js/internals/copy-constructor-properties.js.map +0 -1
- package/dist/node_modules/core-js/internals/correct-is-regexp-logic.js +0 -2
- package/dist/node_modules/core-js/internals/correct-is-regexp-logic.js.map +0 -1
- package/dist/node_modules/core-js/internals/correct-prototype-getter.js +0 -2
- package/dist/node_modules/core-js/internals/correct-prototype-getter.js.map +0 -1
- package/dist/node_modules/core-js/internals/create-iter-result-object.js +0 -2
- package/dist/node_modules/core-js/internals/create-iter-result-object.js.map +0 -1
- package/dist/node_modules/core-js/internals/create-non-enumerable-property.js +0 -2
- package/dist/node_modules/core-js/internals/create-non-enumerable-property.js.map +0 -1
- package/dist/node_modules/core-js/internals/create-property-descriptor.js +0 -2
- package/dist/node_modules/core-js/internals/create-property-descriptor.js.map +0 -1
- package/dist/node_modules/core-js/internals/define-built-in-accessor.js +0 -2
- package/dist/node_modules/core-js/internals/define-built-in-accessor.js.map +0 -1
- package/dist/node_modules/core-js/internals/define-built-in.js +0 -2
- package/dist/node_modules/core-js/internals/define-built-in.js.map +0 -1
- package/dist/node_modules/core-js/internals/define-global-property.js +0 -2
- package/dist/node_modules/core-js/internals/define-global-property.js.map +0 -1
- package/dist/node_modules/core-js/internals/descriptors.js +0 -2
- package/dist/node_modules/core-js/internals/descriptors.js.map +0 -1
- package/dist/node_modules/core-js/internals/document-create-element.js +0 -2
- package/dist/node_modules/core-js/internals/document-create-element.js.map +0 -1
- package/dist/node_modules/core-js/internals/dom-iterables.js +0 -2
- package/dist/node_modules/core-js/internals/dom-iterables.js.map +0 -1
- package/dist/node_modules/core-js/internals/dom-token-list-prototype.js +0 -2
- package/dist/node_modules/core-js/internals/dom-token-list-prototype.js.map +0 -1
- package/dist/node_modules/core-js/internals/enum-bug-keys.js +0 -2
- package/dist/node_modules/core-js/internals/enum-bug-keys.js.map +0 -1
- package/dist/node_modules/core-js/internals/environment-is-ios-pebble.js +0 -2
- package/dist/node_modules/core-js/internals/environment-is-ios-pebble.js.map +0 -1
- package/dist/node_modules/core-js/internals/environment-is-ios.js +0 -2
- package/dist/node_modules/core-js/internals/environment-is-ios.js.map +0 -1
- package/dist/node_modules/core-js/internals/environment-is-node.js +0 -2
- package/dist/node_modules/core-js/internals/environment-is-node.js.map +0 -1
- package/dist/node_modules/core-js/internals/environment-is-webos-webkit.js +0 -2
- package/dist/node_modules/core-js/internals/environment-is-webos-webkit.js.map +0 -1
- package/dist/node_modules/core-js/internals/environment-user-agent.js +0 -2
- package/dist/node_modules/core-js/internals/environment-user-agent.js.map +0 -1
- package/dist/node_modules/core-js/internals/environment-v8-version.js +0 -2
- package/dist/node_modules/core-js/internals/environment-v8-version.js.map +0 -1
- package/dist/node_modules/core-js/internals/environment.js +0 -2
- package/dist/node_modules/core-js/internals/environment.js.map +0 -1
- package/dist/node_modules/core-js/internals/export.js +0 -2
- package/dist/node_modules/core-js/internals/export.js.map +0 -1
- package/dist/node_modules/core-js/internals/fails.js +0 -2
- package/dist/node_modules/core-js/internals/fails.js.map +0 -1
- package/dist/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js +0 -2
- package/dist/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-apply.js +0 -2
- package/dist/node_modules/core-js/internals/function-apply.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-bind-context.js +0 -2
- package/dist/node_modules/core-js/internals/function-bind-context.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-bind-native.js +0 -2
- package/dist/node_modules/core-js/internals/function-bind-native.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-call.js +0 -2
- package/dist/node_modules/core-js/internals/function-call.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-name.js +0 -2
- package/dist/node_modules/core-js/internals/function-name.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-uncurry-this-accessor.js +0 -2
- package/dist/node_modules/core-js/internals/function-uncurry-this-accessor.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-uncurry-this-clause.js +0 -2
- package/dist/node_modules/core-js/internals/function-uncurry-this-clause.js.map +0 -1
- package/dist/node_modules/core-js/internals/function-uncurry-this.js +0 -2
- package/dist/node_modules/core-js/internals/function-uncurry-this.js.map +0 -1
- package/dist/node_modules/core-js/internals/get-built-in.js +0 -2
- package/dist/node_modules/core-js/internals/get-built-in.js.map +0 -1
- package/dist/node_modules/core-js/internals/get-iterator-method.js +0 -2
- package/dist/node_modules/core-js/internals/get-iterator-method.js.map +0 -1
- package/dist/node_modules/core-js/internals/get-iterator.js +0 -2
- package/dist/node_modules/core-js/internals/get-iterator.js.map +0 -1
- package/dist/node_modules/core-js/internals/get-method.js +0 -2
- package/dist/node_modules/core-js/internals/get-method.js.map +0 -1
- package/dist/node_modules/core-js/internals/get-substitution.js +0 -2
- package/dist/node_modules/core-js/internals/get-substitution.js.map +0 -1
- package/dist/node_modules/core-js/internals/global-this.js +0 -2
- package/dist/node_modules/core-js/internals/global-this.js.map +0 -1
- package/dist/node_modules/core-js/internals/has-own-property.js +0 -2
- package/dist/node_modules/core-js/internals/has-own-property.js.map +0 -1
- package/dist/node_modules/core-js/internals/hidden-keys.js +0 -2
- package/dist/node_modules/core-js/internals/hidden-keys.js.map +0 -1
- package/dist/node_modules/core-js/internals/host-report-errors.js +0 -2
- package/dist/node_modules/core-js/internals/host-report-errors.js.map +0 -1
- package/dist/node_modules/core-js/internals/html.js +0 -2
- package/dist/node_modules/core-js/internals/html.js.map +0 -1
- package/dist/node_modules/core-js/internals/ie8-dom-define.js +0 -2
- package/dist/node_modules/core-js/internals/ie8-dom-define.js.map +0 -1
- package/dist/node_modules/core-js/internals/indexed-object.js +0 -2
- package/dist/node_modules/core-js/internals/indexed-object.js.map +0 -1
- package/dist/node_modules/core-js/internals/inspect-source.js +0 -2
- package/dist/node_modules/core-js/internals/inspect-source.js.map +0 -1
- package/dist/node_modules/core-js/internals/internal-state.js +0 -2
- package/dist/node_modules/core-js/internals/internal-state.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-array-iterator-method.js +0 -2
- package/dist/node_modules/core-js/internals/is-array-iterator-method.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-array.js +0 -2
- package/dist/node_modules/core-js/internals/is-array.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-callable.js +0 -2
- package/dist/node_modules/core-js/internals/is-callable.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-constructor.js +0 -2
- package/dist/node_modules/core-js/internals/is-constructor.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-forced.js +0 -2
- package/dist/node_modules/core-js/internals/is-forced.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-null-or-undefined.js +0 -2
- package/dist/node_modules/core-js/internals/is-null-or-undefined.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-object.js +0 -2
- package/dist/node_modules/core-js/internals/is-object.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-possible-prototype.js +0 -2
- package/dist/node_modules/core-js/internals/is-possible-prototype.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-regexp.js +0 -2
- package/dist/node_modules/core-js/internals/is-regexp.js.map +0 -1
- package/dist/node_modules/core-js/internals/is-symbol.js +0 -2
- package/dist/node_modules/core-js/internals/is-symbol.js.map +0 -1
- package/dist/node_modules/core-js/internals/iterate.js +0 -2
- package/dist/node_modules/core-js/internals/iterate.js.map +0 -1
- package/dist/node_modules/core-js/internals/iterator-close.js +0 -2
- package/dist/node_modules/core-js/internals/iterator-close.js.map +0 -1
- package/dist/node_modules/core-js/internals/iterator-create-constructor.js +0 -2
- package/dist/node_modules/core-js/internals/iterator-create-constructor.js.map +0 -1
- package/dist/node_modules/core-js/internals/iterator-define.js +0 -2
- package/dist/node_modules/core-js/internals/iterator-define.js.map +0 -1
- package/dist/node_modules/core-js/internals/iterators-core.js +0 -2
- package/dist/node_modules/core-js/internals/iterators-core.js.map +0 -1
- package/dist/node_modules/core-js/internals/iterators.js +0 -2
- package/dist/node_modules/core-js/internals/iterators.js.map +0 -1
- package/dist/node_modules/core-js/internals/length-of-array-like.js +0 -2
- package/dist/node_modules/core-js/internals/length-of-array-like.js.map +0 -1
- package/dist/node_modules/core-js/internals/make-built-in.js +0 -2
- package/dist/node_modules/core-js/internals/make-built-in.js.map +0 -1
- package/dist/node_modules/core-js/internals/math-trunc.js +0 -2
- package/dist/node_modules/core-js/internals/math-trunc.js.map +0 -1
- package/dist/node_modules/core-js/internals/microtask.js +0 -2
- package/dist/node_modules/core-js/internals/microtask.js.map +0 -1
- package/dist/node_modules/core-js/internals/new-promise-capability.js +0 -2
- package/dist/node_modules/core-js/internals/new-promise-capability.js.map +0 -1
- package/dist/node_modules/core-js/internals/not-a-regexp.js +0 -2
- package/dist/node_modules/core-js/internals/not-a-regexp.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-create.js +0 -2
- package/dist/node_modules/core-js/internals/object-create.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-define-properties.js +0 -2
- package/dist/node_modules/core-js/internals/object-define-properties.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-define-property.js +0 -2
- package/dist/node_modules/core-js/internals/object-define-property.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-get-own-property-descriptor.js +0 -2
- package/dist/node_modules/core-js/internals/object-get-own-property-descriptor.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-get-own-property-names.js +0 -2
- package/dist/node_modules/core-js/internals/object-get-own-property-names.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-get-own-property-symbols.js +0 -2
- package/dist/node_modules/core-js/internals/object-get-own-property-symbols.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-get-prototype-of.js +0 -2
- package/dist/node_modules/core-js/internals/object-get-prototype-of.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-is-prototype-of.js +0 -2
- package/dist/node_modules/core-js/internals/object-is-prototype-of.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-keys-internal.js +0 -2
- package/dist/node_modules/core-js/internals/object-keys-internal.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-keys.js +0 -2
- package/dist/node_modules/core-js/internals/object-keys.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-property-is-enumerable.js +0 -2
- package/dist/node_modules/core-js/internals/object-property-is-enumerable.js.map +0 -1
- package/dist/node_modules/core-js/internals/object-set-prototype-of.js +0 -2
- package/dist/node_modules/core-js/internals/object-set-prototype-of.js.map +0 -1
- package/dist/node_modules/core-js/internals/ordinary-to-primitive.js +0 -2
- package/dist/node_modules/core-js/internals/ordinary-to-primitive.js.map +0 -1
- package/dist/node_modules/core-js/internals/own-keys.js +0 -2
- package/dist/node_modules/core-js/internals/own-keys.js.map +0 -1
- package/dist/node_modules/core-js/internals/perform.js +0 -2
- package/dist/node_modules/core-js/internals/perform.js.map +0 -1
- package/dist/node_modules/core-js/internals/promise-constructor-detection.js +0 -2
- package/dist/node_modules/core-js/internals/promise-constructor-detection.js.map +0 -1
- package/dist/node_modules/core-js/internals/promise-native-constructor.js +0 -2
- package/dist/node_modules/core-js/internals/promise-native-constructor.js.map +0 -1
- package/dist/node_modules/core-js/internals/promise-resolve.js +0 -2
- package/dist/node_modules/core-js/internals/promise-resolve.js.map +0 -1
- package/dist/node_modules/core-js/internals/promise-statics-incorrect-iteration.js +0 -2
- package/dist/node_modules/core-js/internals/promise-statics-incorrect-iteration.js.map +0 -1
- package/dist/node_modules/core-js/internals/queue.js +0 -2
- package/dist/node_modules/core-js/internals/queue.js.map +0 -1
- package/dist/node_modules/core-js/internals/regexp-exec-abstract.js +0 -2
- package/dist/node_modules/core-js/internals/regexp-exec-abstract.js.map +0 -1
- package/dist/node_modules/core-js/internals/regexp-exec.js +0 -2
- package/dist/node_modules/core-js/internals/regexp-exec.js.map +0 -1
- package/dist/node_modules/core-js/internals/regexp-flags.js +0 -2
- package/dist/node_modules/core-js/internals/regexp-flags.js.map +0 -1
- package/dist/node_modules/core-js/internals/regexp-get-flags.js +0 -2
- package/dist/node_modules/core-js/internals/regexp-get-flags.js.map +0 -1
- package/dist/node_modules/core-js/internals/regexp-sticky-helpers.js +0 -2
- package/dist/node_modules/core-js/internals/regexp-sticky-helpers.js.map +0 -1
- package/dist/node_modules/core-js/internals/regexp-unsupported-dot-all.js +0 -2
- package/dist/node_modules/core-js/internals/regexp-unsupported-dot-all.js.map +0 -1
- package/dist/node_modules/core-js/internals/regexp-unsupported-ncg.js +0 -2
- package/dist/node_modules/core-js/internals/regexp-unsupported-ncg.js.map +0 -1
- package/dist/node_modules/core-js/internals/require-object-coercible.js +0 -2
- package/dist/node_modules/core-js/internals/require-object-coercible.js.map +0 -1
- package/dist/node_modules/core-js/internals/safe-get-built-in.js +0 -2
- package/dist/node_modules/core-js/internals/safe-get-built-in.js.map +0 -1
- package/dist/node_modules/core-js/internals/set-species.js +0 -2
- package/dist/node_modules/core-js/internals/set-species.js.map +0 -1
- package/dist/node_modules/core-js/internals/set-to-string-tag.js +0 -2
- package/dist/node_modules/core-js/internals/set-to-string-tag.js.map +0 -1
- package/dist/node_modules/core-js/internals/shared-key.js +0 -2
- package/dist/node_modules/core-js/internals/shared-key.js.map +0 -1
- package/dist/node_modules/core-js/internals/shared-store.js +0 -2
- package/dist/node_modules/core-js/internals/shared-store.js.map +0 -1
- package/dist/node_modules/core-js/internals/shared.js +0 -2
- package/dist/node_modules/core-js/internals/shared.js.map +0 -1
- package/dist/node_modules/core-js/internals/species-constructor.js +0 -2
- package/dist/node_modules/core-js/internals/species-constructor.js.map +0 -1
- package/dist/node_modules/core-js/internals/string-multibyte.js +0 -2
- package/dist/node_modules/core-js/internals/string-multibyte.js.map +0 -1
- package/dist/node_modules/core-js/internals/string-trim-forced.js +0 -2
- package/dist/node_modules/core-js/internals/string-trim-forced.js.map +0 -1
- package/dist/node_modules/core-js/internals/string-trim.js +0 -2
- package/dist/node_modules/core-js/internals/string-trim.js.map +0 -1
- package/dist/node_modules/core-js/internals/symbol-constructor-detection.js +0 -2
- package/dist/node_modules/core-js/internals/symbol-constructor-detection.js.map +0 -1
- package/dist/node_modules/core-js/internals/task.js +0 -2
- package/dist/node_modules/core-js/internals/task.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-absolute-index.js +0 -2
- package/dist/node_modules/core-js/internals/to-absolute-index.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-indexed-object.js +0 -2
- package/dist/node_modules/core-js/internals/to-indexed-object.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-integer-or-infinity.js +0 -2
- package/dist/node_modules/core-js/internals/to-integer-or-infinity.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-length.js +0 -2
- package/dist/node_modules/core-js/internals/to-length.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-object.js +0 -2
- package/dist/node_modules/core-js/internals/to-object.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-primitive.js +0 -2
- package/dist/node_modules/core-js/internals/to-primitive.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-property-key.js +0 -2
- package/dist/node_modules/core-js/internals/to-property-key.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-string-tag-support.js +0 -2
- package/dist/node_modules/core-js/internals/to-string-tag-support.js.map +0 -1
- package/dist/node_modules/core-js/internals/to-string.js +0 -2
- package/dist/node_modules/core-js/internals/to-string.js.map +0 -1
- package/dist/node_modules/core-js/internals/try-to-string.js +0 -2
- package/dist/node_modules/core-js/internals/try-to-string.js.map +0 -1
- package/dist/node_modules/core-js/internals/uid.js +0 -2
- package/dist/node_modules/core-js/internals/uid.js.map +0 -1
- package/dist/node_modules/core-js/internals/use-symbol-as-uid.js +0 -2
- package/dist/node_modules/core-js/internals/use-symbol-as-uid.js.map +0 -1
- package/dist/node_modules/core-js/internals/v8-prototype-define-bug.js +0 -2
- package/dist/node_modules/core-js/internals/v8-prototype-define-bug.js.map +0 -1
- package/dist/node_modules/core-js/internals/validate-arguments-length.js +0 -2
- package/dist/node_modules/core-js/internals/validate-arguments-length.js.map +0 -1
- package/dist/node_modules/core-js/internals/weak-map-basic-detection.js +0 -2
- package/dist/node_modules/core-js/internals/weak-map-basic-detection.js.map +0 -1
- package/dist/node_modules/core-js/internals/well-known-symbol.js +0 -2
- package/dist/node_modules/core-js/internals/well-known-symbol.js.map +0 -1
- package/dist/node_modules/core-js/internals/whitespaces.js +0 -2
- package/dist/node_modules/core-js/internals/whitespaces.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.array.index-of.js +0 -2
- package/dist/node_modules/core-js/modules/es.array.index-of.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.array.iterator.js +0 -2
- package/dist/node_modules/core-js/modules/es.array.iterator.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.array.reduce.js +0 -2
- package/dist/node_modules/core-js/modules/es.array.reduce.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.array.reverse.js +0 -2
- package/dist/node_modules/core-js/modules/es.array.reverse.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.promise.all.js +0 -2
- package/dist/node_modules/core-js/modules/es.promise.all.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.promise.catch.js +0 -2
- package/dist/node_modules/core-js/modules/es.promise.catch.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.promise.constructor.js +0 -2
- package/dist/node_modules/core-js/modules/es.promise.constructor.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.promise.race.js +0 -2
- package/dist/node_modules/core-js/modules/es.promise.race.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.promise.reject.js +0 -2
- package/dist/node_modules/core-js/modules/es.promise.reject.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.promise.resolve.js +0 -2
- package/dist/node_modules/core-js/modules/es.promise.resolve.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.regexp.exec.js +0 -2
- package/dist/node_modules/core-js/modules/es.regexp.exec.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.regexp.to-string.js +0 -2
- package/dist/node_modules/core-js/modules/es.regexp.to-string.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.string.ends-with.js +0 -2
- package/dist/node_modules/core-js/modules/es.string.ends-with.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.string.includes.js +0 -2
- package/dist/node_modules/core-js/modules/es.string.includes.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.string.match.js +0 -2
- package/dist/node_modules/core-js/modules/es.string.match.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.string.replace.js +0 -2
- package/dist/node_modules/core-js/modules/es.string.replace.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.string.split.js +0 -2
- package/dist/node_modules/core-js/modules/es.string.split.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.string.starts-with.js +0 -2
- package/dist/node_modules/core-js/modules/es.string.starts-with.js.map +0 -1
- package/dist/node_modules/core-js/modules/es.string.trim.js +0 -2
- package/dist/node_modules/core-js/modules/es.string.trim.js.map +0 -1
- package/dist/node_modules/core-js/modules/web.dom-collections.iterator.js +0 -2
- package/dist/node_modules/core-js/modules/web.dom-collections.iterator.js.map +0 -1
- package/dist/node_modules/fflate/esm/browser.js +0 -2
- package/dist/node_modules/fflate/esm/browser.js.map +0 -1
- package/dist/node_modules/jspdf/dist/jspdf.es.min.js +0 -327
- package/dist/node_modules/jspdf/dist/jspdf.es.min.js.map +0 -1
- package/dist/node_modules/performance-now/lib/performance-now.js +0 -2
- package/dist/node_modules/performance-now/lib/performance-now.js.map +0 -1
- package/dist/node_modules/raf/index.js +0 -2
- package/dist/node_modules/raf/index.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.development.js +0 -11
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.production.js +0 -11
- package/dist/node_modules/react-is/cjs/react-is.production.js.map +0 -1
- package/dist/node_modules/react-is/index.js +0 -2
- package/dist/node_modules/react-is/index.js.map +0 -1
- package/dist/node_modules/rgbcolor/index.js +0 -2
- package/dist/node_modules/rgbcolor/index.js.map +0 -1
- package/dist/node_modules/stackblur-canvas/dist/stackblur-es.js +0 -42
- package/dist/node_modules/stackblur-canvas/dist/stackblur-es.js.map +0 -1
- package/dist/node_modules/svg-pathdata/lib/SVGPathData.module.js +0 -16
- package/dist/node_modules/svg-pathdata/lib/SVGPathData.module.js.map +0 -1
- package/dist/src/assets/js/helpFunction.js +0 -2
- package/dist/src/assets/js/helpFunction.js.map +0 -1
- package/dist/src/components/svgs/ChevronRightIcon.js +0 -2
- package/dist/src/components/svgs/ChevronRightIcon.js.map +0 -1
- package/dist/src/styles.js +0 -2
- package/dist/src/styles.js.map +0 -1
- package/dist/styles.css +0 -1
- /package/dist/{assets/images/Images.jsx → src/assets/images/Images.ts} +0 -0
- /package/dist/{assets → src/assets}/images/Profile-img-skills.png +0 -0
- /package/dist/{assets → src/assets}/images/completion.jpg +0 -0
- /package/dist/{assets → src/assets}/images/cover.jpg +0 -0
- /package/dist/{assets → src/assets}/images/empty_avatar.jpeg +0 -0
- /package/dist/{assets → src/assets}/images/empty_avatar.webp +0 -0
- /package/dist/{assets → src/assets}/images/error.png +0 -0
- /package/dist/{assets → src/assets}/images/globe-icon.png +0 -0
- /package/dist/{assets → src/assets}/images/inBlue.jpg +0 -0
- /package/dist/{assets → src/assets}/images/ingressive.png +0 -0
- /package/dist/{assets → src/assets}/images/instincthub.png +0 -0
- /package/dist/{assets → src/assets}/images/loading-buffering.gif +0 -0
- /package/dist/{assets → src/assets}/images/nedgLogoBlack.png +0 -0
- /package/dist/{assets → src/assets}/images/nesgLogo.png +0 -0
- /package/dist/{assets → src/assets}/images/nesgLogoColored.png +0 -0
- /package/dist/{assets → src/assets}/images/nesg_office.jpg +0 -0
- /package/dist/{assets → src/assets}/images/peace.png +0 -0
- /package/dist/{assets → src/assets}/images/profile-banner.png +0 -0
- /package/dist/{assets → src/assets}/images/thumbnail_video.jpg +0 -0
- /package/dist/{assets → src/assets}/images/valid.png +0 -0
- /package/dist/{assets → src/assets}/images/video-poster.jpg +0 -0
- /package/dist/{assets → src/assets}/images/warning-icon.png +0 -0
- /package/dist/{assets → src/assets}/images/zuri.png +0 -0
- /package/dist/{assets → src/assets}/pngs/activity-icon.png +0 -0
- /package/dist/{assets → src/assets}/pngs/github.png +0 -0
- /package/dist/{assets → src/assets}/pngs/google-calender.png +0 -0
- /package/dist/{assets → src/assets}/pngs/logo-instincthub.png +0 -0
- /package/dist/{assets → src/assets}/pngs/master-card.png +0 -0
- /package/dist/{assets → src/assets}/pngs/slack.png +0 -0
- /package/dist/{assets → src/assets}/pngs/trophy-frame.png +0 -0
- /package/dist/{assets → src/assets}/pngs/visa-card.png +0 -0
- /package/dist/{assets → src/assets}/svgs/Advance.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/Begineer.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/Expert.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/Intermediate.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/Next.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/NotFound.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/Vector.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/add_acct.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/add_box.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/back-btn.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/check_b.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/chevron.up.circle.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/chevron_left.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/climb.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/close_svg.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/cloud.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/copied.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/course.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/email.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/expand.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/facebook 2.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/facebook.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/feedback.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/github.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/gobackward.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/goforward.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/googleup.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/image.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/instagram.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/instincthub_logo_white.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/linkedin.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/location.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/logo.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/medal.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/mode.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/nesgLogo.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/pauseF.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/pdf_file.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/phone.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/plane.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/play 2.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/play.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/playF.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/previous.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/reddit.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/search.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/settings.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/sign_out.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/small-trophy.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/square.and.arrow.up.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/starters.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/svg.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/switch.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/trophy-circle.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/trophy.circle.fill.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/twitter 2.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/twitter.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/upload.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/vector_avatar.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video-icons/full-screen.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video-icons/half-volume.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video-icons/high-volume.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video-icons/mute-volume.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video-icons/pause.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video-icons/play.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video-icons/settings.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/video.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/visibility_FILL0_wght400_GRAD0_opsz48.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/visibility_off_FILL0_wght400_GRAD0_opsz48.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/w_youtube.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/youtube.svg +0 -0
- /package/dist/{assets → src/assets}/svgs/zip.svg +0 -0
- /package/dist/{node_modules/@mui/system/esm/RtlProvider → src/components/lib}/index.js.map +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.es.js","sources":["../../../../node_modules/canvg/lib/index.es.js"],"sourcesContent":["import 'core-js/modules/es.promise.js';\nimport _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';\nimport 'core-js/modules/es.string.match.js';\nimport 'core-js/modules/es.string.replace.js';\nimport 'core-js/modules/es.string.starts-with.js';\nimport 'core-js/modules/es.array.iterator.js';\nimport 'core-js/modules/web.dom-collections.iterator.js';\nimport _defineProperty from '@babel/runtime/helpers/defineProperty';\nimport 'core-js/modules/es.array.reduce.js';\nimport 'core-js/modules/es.string.ends-with.js';\nimport 'core-js/modules/es.string.split.js';\nimport requestAnimationFrame from 'raf';\nimport 'core-js/modules/es.string.trim.js';\nimport RGBColor from 'rgbcolor';\nimport 'core-js/modules/es.array.index-of.js';\nimport 'core-js/modules/es.string.includes.js';\nimport 'core-js/modules/es.array.reverse.js';\nimport { SVGPathData } from 'svg-pathdata';\nimport 'core-js/modules/es.regexp.to-string.js';\nimport { canvasRGBA } from 'stackblur-canvas';\n\n/**\r\n * Options preset for `OffscreenCanvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @returns Preset object.\r\n */\nfunction offscreen() {\n var {\n DOMParser: DOMParserFallback\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var preset = {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser: DOMParserFallback,\n\n createCanvas(width, height) {\n return new OffscreenCanvas(width, height);\n },\n\n createImage(url) {\n return _asyncToGenerator(function* () {\n var response = yield fetch(url);\n var blob = yield response.blob();\n var img = yield createImageBitmap(blob);\n return img;\n })();\n }\n\n };\n\n if (typeof DOMParser !== 'undefined' || typeof DOMParserFallback === 'undefined') {\n Reflect.deleteProperty(preset, 'DOMParser');\n }\n\n return preset;\n}\n\n/**\r\n * Options preset for `node-canvas`.\r\n * @param config - Preset requirements.\r\n * @param config.DOMParser - XML/HTML parser from string into DOM Document.\r\n * @param config.canvas - `node-canvas` exports.\r\n * @param config.fetch - WHATWG-compatible `fetch` function.\r\n * @returns Preset object.\r\n */\nfunction node(_ref) {\n var {\n DOMParser,\n canvas,\n fetch\n } = _ref;\n return {\n window: null,\n ignoreAnimation: true,\n ignoreMouse: true,\n DOMParser,\n fetch,\n createCanvas: canvas.createCanvas,\n createImage: canvas.loadImage\n };\n}\n\nvar index = /*#__PURE__*/Object.freeze({\n\t__proto__: null,\n\toffscreen: offscreen,\n\tnode: node\n});\n\n/**\r\n * HTML-safe compress white-spaces.\r\n * @param str - String to compress.\r\n * @returns String.\r\n */\nfunction compressSpaces(str) {\n return str.replace(/(?!\\u3000)\\s+/gm, ' ');\n}\n/**\r\n * HTML-safe left trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimLeft(str) {\n return str.replace(/^[\\n \\t]+/, '');\n}\n/**\r\n * HTML-safe right trim.\r\n * @param str - String to trim.\r\n * @returns String.\r\n */\n\nfunction trimRight(str) {\n return str.replace(/[\\n \\t]+$/, '');\n}\n/**\r\n * String to numbers array.\r\n * @param str - Numbers string.\r\n * @returns Numbers array.\r\n */\n\nfunction toNumbers(str) {\n var matches = (str || '').match(/-?(\\d+(?:\\.\\d*(?:[eE][+-]?\\d+)?)?|\\.\\d+)(?=\\D|$)/gm) || [];\n return matches.map(parseFloat);\n} // Microsoft Edge fix\n\nvar allUppercase = /^[A-Z-]+$/;\n/**\r\n * Normalize attribute name.\r\n * @param name - Attribute name.\r\n * @returns Normalized attribute name.\r\n */\n\nfunction normalizeAttributeName(name) {\n if (allUppercase.test(name)) {\n return name.toLowerCase();\n }\n\n return name;\n}\n/**\r\n * Parse external URL.\r\n * @param url - CSS url string.\r\n * @returns Parsed URL.\r\n */\n\nfunction parseExternalUrl(url) {\n // single quotes [2]\n // v double quotes [3]\n // v v no quotes [4]\n // v v v\n var urlMatch = /url\\(('([^']+)'|\"([^\"]+)\"|([^'\")]+))\\)/.exec(url) || [];\n return urlMatch[2] || urlMatch[3] || urlMatch[4];\n}\n/**\r\n * Transform floats to integers in rgb colors.\r\n * @param color - Color to normalize.\r\n * @returns Normalized color.\r\n */\n\nfunction normalizeColor(color) {\n if (!color.startsWith('rgb')) {\n return color;\n }\n\n var rgbParts = 3;\n var normalizedColor = color.replace(/\\d+(\\.\\d+)?/g, (num, isFloat) => rgbParts-- && isFloat ? String(Math.round(parseFloat(num))) : num);\n return normalizedColor;\n}\n\n// slightly modified version of https://github.com/keeganstreet/specificity/blob/master/specificity.js\nvar attributeRegex = /(\\[[^\\]]+\\])/g;\nvar idRegex = /(#[^\\s+>~.[:]+)/g;\nvar classRegex = /(\\.[^\\s+>~.[:]+)/g;\nvar pseudoElementRegex = /(::[^\\s+>~.[:]+|:first-line|:first-letter|:before|:after)/gi;\nvar pseudoClassWithBracketsRegex = /(:[\\w-]+\\([^)]*\\))/gi;\nvar pseudoClassRegex = /(:[^\\s+>~.[:]+)/g;\nvar elementRegex = /([^\\s+>~.[:]+)/g;\n\nfunction findSelectorMatch(selector, regex) {\n var matches = regex.exec(selector);\n\n if (!matches) {\n return [selector, 0];\n }\n\n return [selector.replace(regex, ' '), matches.length];\n}\n/**\r\n * Measure selector specificity.\r\n * @param selector - Selector to measure.\r\n * @returns Specificity.\r\n */\n\n\nfunction getSelectorSpecificity(selector) {\n var specificity = [0, 0, 0];\n var currentSelector = selector.replace(/:not\\(([^)]*)\\)/g, ' $1 ').replace(/{[\\s\\S]*/gm, ' ');\n var delta = 0;\n [currentSelector, delta] = findSelectorMatch(currentSelector, attributeRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, idRegex);\n specificity[0] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, classRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoElementRegex);\n specificity[2] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassWithBracketsRegex);\n specificity[1] += delta;\n [currentSelector, delta] = findSelectorMatch(currentSelector, pseudoClassRegex);\n specificity[1] += delta;\n currentSelector = currentSelector.replace(/[*\\s+>~]/g, ' ').replace(/[#.]/g, ' ');\n [currentSelector, delta] = findSelectorMatch(currentSelector, elementRegex); // lgtm [js/useless-assignment-to-local]\n\n specificity[2] += delta;\n return specificity.join('');\n}\n\nvar PSEUDO_ZERO = .00000001;\n/**\r\n * Vector magnitude.\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorMagnitude(v) {\n return Math.sqrt(Math.pow(v[0], 2) + Math.pow(v[1], 2));\n}\n/**\r\n * Ratio between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsRatio(u, v) {\n return (u[0] * v[0] + u[1] * v[1]) / (vectorMagnitude(u) * vectorMagnitude(v));\n}\n/**\r\n * Angle between two vectors.\r\n * @param u\r\n * @param v\r\n * @returns Number result.\r\n */\n\nfunction vectorsAngle(u, v) {\n return (u[0] * v[1] < u[1] * v[0] ? -1 : 1) * Math.acos(vectorsRatio(u, v));\n}\nfunction CB1(t) {\n return t * t * t;\n}\nfunction CB2(t) {\n return 3 * t * t * (1 - t);\n}\nfunction CB3(t) {\n return 3 * t * (1 - t) * (1 - t);\n}\nfunction CB4(t) {\n return (1 - t) * (1 - t) * (1 - t);\n}\nfunction QB1(t) {\n return t * t;\n}\nfunction QB2(t) {\n return 2 * t * (1 - t);\n}\nfunction QB3(t) {\n return (1 - t) * (1 - t);\n}\n\nclass Property {\n constructor(document, name, value) {\n this.document = document;\n this.name = name;\n this.value = value;\n this.isNormalizedColor = false;\n }\n\n static empty(document) {\n return new Property(document, 'EMPTY', '');\n }\n\n split() {\n var separator = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ' ';\n var {\n document,\n name\n } = this;\n return compressSpaces(this.getString()).trim().split(separator).map(value => new Property(document, name, value));\n }\n\n hasValue(zeroIsValue) {\n var {\n value\n } = this;\n return value !== null && value !== '' && (zeroIsValue || value !== 0) && typeof value !== 'undefined';\n }\n\n isString(regexp) {\n var {\n value\n } = this;\n var result = typeof value === 'string';\n\n if (!result || !regexp) {\n return result;\n }\n\n return regexp.test(value);\n }\n\n isUrlDefinition() {\n return this.isString(/^url\\(/);\n }\n\n isPixels() {\n if (!this.hasValue()) {\n return false;\n }\n\n var asString = this.getString();\n\n switch (true) {\n case asString.endsWith('px'):\n case /^[0-9]+$/.test(asString):\n return true;\n\n default:\n return false;\n }\n }\n\n setValue(value) {\n this.value = value;\n return this;\n }\n\n getValue(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return this.value;\n }\n\n return def;\n }\n\n getNumber(def) {\n if (!this.hasValue()) {\n if (typeof def === 'undefined') {\n return 0;\n }\n\n return parseFloat(def);\n }\n\n var {\n value\n } = this;\n var n = parseFloat(value);\n\n if (this.isString(/%$/)) {\n n /= 100.0;\n }\n\n return n;\n }\n\n getString(def) {\n if (typeof def === 'undefined' || this.hasValue()) {\n return typeof this.value === 'undefined' ? '' : String(this.value);\n }\n\n return String(def);\n }\n\n getColor(def) {\n var color = this.getString(def);\n\n if (this.isNormalizedColor) {\n return color;\n }\n\n this.isNormalizedColor = true;\n color = normalizeColor(color);\n this.value = color;\n return color;\n }\n\n getDpi() {\n return 96.0; // TODO: compute?\n }\n\n getRem() {\n return this.document.rootEmSize;\n }\n\n getEm() {\n return this.document.emSize;\n }\n\n getUnits() {\n return this.getString().replace(/[0-9.-]/g, '');\n }\n\n getPixels(axisOrIsFontSize) {\n var processPercent = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!this.hasValue()) {\n return 0;\n }\n\n var [axis, isFontSize] = typeof axisOrIsFontSize === 'boolean' ? [undefined, axisOrIsFontSize] : [axisOrIsFontSize];\n var {\n viewPort\n } = this.document.screen;\n\n switch (true) {\n case this.isString(/vmin$/):\n return this.getNumber() / 100.0 * Math.min(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vmax$/):\n return this.getNumber() / 100.0 * Math.max(viewPort.computeSize('x'), viewPort.computeSize('y'));\n\n case this.isString(/vw$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('x');\n\n case this.isString(/vh$/):\n return this.getNumber() / 100.0 * viewPort.computeSize('y');\n\n case this.isString(/rem$/):\n return this.getNumber() * this.getRem();\n\n case this.isString(/em$/):\n return this.getNumber() * this.getEm();\n\n case this.isString(/ex$/):\n return this.getNumber() * this.getEm() / 2.0;\n\n case this.isString(/px$/):\n return this.getNumber();\n\n case this.isString(/pt$/):\n return this.getNumber() * this.getDpi() * (1.0 / 72.0);\n\n case this.isString(/pc$/):\n return this.getNumber() * 15;\n\n case this.isString(/cm$/):\n return this.getNumber() * this.getDpi() / 2.54;\n\n case this.isString(/mm$/):\n return this.getNumber() * this.getDpi() / 25.4;\n\n case this.isString(/in$/):\n return this.getNumber() * this.getDpi();\n\n case this.isString(/%$/) && isFontSize:\n return this.getNumber() * this.getEm();\n\n case this.isString(/%$/):\n return this.getNumber() * viewPort.computeSize(axis);\n\n default:\n {\n var n = this.getNumber();\n\n if (processPercent && n < 1.0) {\n return n * viewPort.computeSize(axis);\n }\n\n return n;\n }\n }\n }\n\n getMilliseconds() {\n if (!this.hasValue()) {\n return 0;\n }\n\n if (this.isString(/ms$/)) {\n return this.getNumber();\n }\n\n return this.getNumber() * 1000;\n }\n\n getRadians() {\n if (!this.hasValue()) {\n return 0;\n }\n\n switch (true) {\n case this.isString(/deg$/):\n return this.getNumber() * (Math.PI / 180.0);\n\n case this.isString(/grad$/):\n return this.getNumber() * (Math.PI / 200.0);\n\n case this.isString(/rad$/):\n return this.getNumber();\n\n default:\n return this.getNumber() * (Math.PI / 180.0);\n }\n }\n\n getDefinition() {\n var asString = this.getString();\n var name = /#([^)'\"]+)/.exec(asString);\n\n if (name) {\n name = name[1];\n }\n\n if (!name) {\n name = asString;\n }\n\n return this.document.definitions[name];\n }\n\n getFillStyleDefinition(element, opacity) {\n var def = this.getDefinition();\n\n if (!def) {\n return null;\n } // gradient\n\n\n if (typeof def.createGradient === 'function') {\n return def.createGradient(this.document.ctx, element, opacity);\n } // pattern\n\n\n if (typeof def.createPattern === 'function') {\n if (def.getHrefAttribute().hasValue()) {\n var patternTransform = def.getAttribute('patternTransform');\n def = def.getHrefAttribute().getDefinition();\n\n if (patternTransform.hasValue()) {\n def.getAttribute('patternTransform', true).setValue(patternTransform.value);\n }\n }\n\n return def.createPattern(this.document.ctx, element, opacity);\n }\n\n return null;\n }\n\n getTextBaseline() {\n if (!this.hasValue()) {\n return null;\n }\n\n return Property.textBaselineMapping[this.getString()];\n }\n\n addOpacity(opacity) {\n var value = this.getColor();\n var len = value.length;\n var commas = 0; // Simulate old RGBColor version, which can't parse rgba.\n\n for (var i = 0; i < len; i++) {\n if (value[i] === ',') {\n commas++;\n }\n\n if (commas === 3) {\n break;\n }\n }\n\n if (opacity.hasValue() && this.isString() && commas !== 3) {\n var color = new RGBColor(value);\n\n if (color.ok) {\n color.alpha = opacity.getNumber();\n value = color.toRGBA();\n }\n }\n\n return new Property(this.document, this.name, value);\n }\n\n}\nProperty.textBaselineMapping = {\n 'baseline': 'alphabetic',\n 'before-edge': 'top',\n 'text-before-edge': 'top',\n 'middle': 'middle',\n 'central': 'middle',\n 'after-edge': 'bottom',\n 'text-after-edge': 'bottom',\n 'ideographic': 'ideographic',\n 'alphabetic': 'alphabetic',\n 'hanging': 'hanging',\n 'mathematical': 'alphabetic'\n};\n\nclass ViewPort {\n constructor() {\n this.viewPorts = [];\n }\n\n clear() {\n this.viewPorts = [];\n }\n\n setCurrent(width, height) {\n this.viewPorts.push({\n width,\n height\n });\n }\n\n removeCurrent() {\n this.viewPorts.pop();\n }\n\n getCurrent() {\n var {\n viewPorts\n } = this;\n return viewPorts[viewPorts.length - 1];\n }\n\n get width() {\n return this.getCurrent().width;\n }\n\n get height() {\n return this.getCurrent().height;\n }\n\n computeSize(d) {\n if (typeof d === 'number') {\n return d;\n }\n\n if (d === 'x') {\n return this.width;\n }\n\n if (d === 'y') {\n return this.height;\n }\n\n return Math.sqrt(Math.pow(this.width, 2) + Math.pow(this.height, 2)) / Math.sqrt(2);\n }\n\n}\n\nclass Point {\n constructor(x, y) {\n this.x = x;\n this.y = y;\n }\n\n static parse(point) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var [x = defaultValue, y = defaultValue] = toNumbers(point);\n return new Point(x, y);\n }\n\n static parseScale(scale) {\n var defaultValue = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1;\n var [x = defaultValue, y = x] = toNumbers(scale);\n return new Point(x, y);\n }\n\n static parsePath(path) {\n var points = toNumbers(path);\n var len = points.length;\n var pathPoints = [];\n\n for (var i = 0; i < len; i += 2) {\n pathPoints.push(new Point(points[i], points[i + 1]));\n }\n\n return pathPoints;\n }\n\n angleTo(point) {\n return Math.atan2(point.y - this.y, point.x - this.x);\n }\n\n applyTransform(transform) {\n var {\n x,\n y\n } = this;\n var xp = x * transform[0] + y * transform[2] + transform[4];\n var yp = x * transform[1] + y * transform[3] + transform[5];\n this.x = xp;\n this.y = yp;\n }\n\n}\n\nclass Mouse {\n constructor(screen) {\n this.screen = screen;\n this.working = false;\n this.events = [];\n this.eventElements = []; // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onClick = this.onClick.bind(this); // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n\n this.onMouseMove = this.onMouseMove.bind(this);\n }\n\n isWorking() {\n return this.working;\n }\n\n start() {\n if (this.working) {\n return;\n }\n\n var {\n screen,\n onClick,\n onMouseMove\n } = this;\n var canvas = screen.ctx.canvas;\n canvas.onclick = onClick;\n canvas.onmousemove = onMouseMove;\n this.working = true;\n }\n\n stop() {\n if (!this.working) {\n return;\n }\n\n var canvas = this.screen.ctx.canvas;\n this.working = false;\n canvas.onclick = null;\n canvas.onmousemove = null;\n }\n\n hasEvents() {\n return this.working && this.events.length > 0;\n }\n\n runEvents() {\n if (!this.working) {\n return;\n }\n\n var {\n screen: document,\n events,\n eventElements\n } = this;\n var {\n style\n } = document.ctx.canvas;\n\n if (style) {\n style.cursor = '';\n }\n\n events.forEach((_ref, i) => {\n var {\n run\n } = _ref;\n var element = eventElements[i];\n\n while (element) {\n run(element);\n element = element.parent;\n }\n }); // done running, clear\n\n this.events = [];\n this.eventElements = [];\n }\n\n checkPath(element, ctx) {\n if (!this.working || !ctx) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref2, i) => {\n var {\n x,\n y\n } = _ref2;\n\n if (!eventElements[i] && ctx.isPointInPath && ctx.isPointInPath(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n checkBoundingBox(element, boundingBox) {\n if (!this.working || !boundingBox) {\n return;\n }\n\n var {\n events,\n eventElements\n } = this;\n events.forEach((_ref3, i) => {\n var {\n x,\n y\n } = _ref3;\n\n if (!eventElements[i] && boundingBox.isPointInBox(x, y)) {\n eventElements[i] = element;\n }\n });\n }\n\n mapXY(x, y) {\n var {\n window,\n ctx\n } = this.screen;\n var point = new Point(x, y);\n var element = ctx.canvas;\n\n while (element) {\n point.x -= element.offsetLeft;\n point.y -= element.offsetTop;\n element = element.offsetParent;\n }\n\n if (window.scrollX) {\n point.x += window.scrollX;\n }\n\n if (window.scrollY) {\n point.y += window.scrollY;\n }\n\n return point;\n }\n\n onClick(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onclick',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onClick) {\n eventTarget.onClick();\n }\n }\n\n });\n }\n\n onMouseMove(event) {\n var {\n x,\n y\n } = this.mapXY(event.clientX, event.clientY);\n this.events.push({\n type: 'onmousemove',\n x,\n y,\n\n run(eventTarget) {\n if (eventTarget.onMouseMove) {\n eventTarget.onMouseMove();\n }\n }\n\n });\n }\n\n}\n\nvar defaultWindow = typeof window !== 'undefined' ? window : null;\nvar defaultFetch$1 = typeof fetch !== 'undefined' ? fetch.bind(undefined) // `fetch` depends on context: `someObject.fetch(...)` will throw error.\n: null;\nclass Screen {\n constructor(ctx) {\n var {\n fetch = defaultFetch$1,\n window = defaultWindow\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.ctx = ctx;\n this.FRAMERATE = 30;\n this.MAX_VIRTUAL_PIXELS = 30000;\n this.CLIENT_WIDTH = 800;\n this.CLIENT_HEIGHT = 600;\n this.viewPort = new ViewPort();\n this.mouse = new Mouse(this);\n this.animations = [];\n this.waits = [];\n this.frameDuration = 0;\n this.isReadyLock = false;\n this.isFirstRender = true;\n this.intervalId = null;\n this.window = window;\n this.fetch = fetch;\n }\n\n wait(checker) {\n this.waits.push(checker);\n }\n\n ready() {\n // eslint-disable-next-line @typescript-eslint/no-misused-promises\n if (!this.readyPromise) {\n return Promise.resolve();\n }\n\n return this.readyPromise;\n }\n\n isReady() {\n if (this.isReadyLock) {\n return true;\n }\n\n var isReadyLock = this.waits.every(_ => _());\n\n if (isReadyLock) {\n this.waits = [];\n\n if (this.resolveReady) {\n this.resolveReady();\n }\n }\n\n this.isReadyLock = isReadyLock;\n return isReadyLock;\n }\n\n setDefaults(ctx) {\n // initial values and defaults\n ctx.strokeStyle = 'rgba(0,0,0,0)';\n ctx.lineCap = 'butt';\n ctx.lineJoin = 'miter';\n ctx.miterLimit = 4;\n }\n\n setViewBox(_ref) {\n var {\n document,\n ctx,\n aspectRatio,\n width,\n desiredWidth,\n height,\n desiredHeight,\n minX = 0,\n minY = 0,\n refX,\n refY,\n clip = false,\n clipX = 0,\n clipY = 0\n } = _ref;\n // aspect ratio - http://www.w3.org/TR/SVG/coords.html#PreserveAspectRatioAttribute\n var cleanAspectRatio = compressSpaces(aspectRatio).replace(/^defer\\s/, ''); // ignore defer\n\n var [aspectRatioAlign, aspectRatioMeetOrSlice] = cleanAspectRatio.split(' ');\n var align = aspectRatioAlign || 'xMidYMid';\n var meetOrSlice = aspectRatioMeetOrSlice || 'meet'; // calculate scale\n\n var scaleX = width / desiredWidth;\n var scaleY = height / desiredHeight;\n var scaleMin = Math.min(scaleX, scaleY);\n var scaleMax = Math.max(scaleX, scaleY);\n var finalDesiredWidth = desiredWidth;\n var finalDesiredHeight = desiredHeight;\n\n if (meetOrSlice === 'meet') {\n finalDesiredWidth *= scaleMin;\n finalDesiredHeight *= scaleMin;\n }\n\n if (meetOrSlice === 'slice') {\n finalDesiredWidth *= scaleMax;\n finalDesiredHeight *= scaleMax;\n }\n\n var refXProp = new Property(document, 'refX', refX);\n var refYProp = new Property(document, 'refY', refY);\n var hasRefs = refXProp.hasValue() && refYProp.hasValue();\n\n if (hasRefs) {\n ctx.translate(-scaleMin * refXProp.getPixels('x'), -scaleMin * refYProp.getPixels('y'));\n }\n\n if (clip) {\n var scaledClipX = scaleMin * clipX;\n var scaledClipY = scaleMin * clipY;\n ctx.beginPath();\n ctx.moveTo(scaledClipX, scaledClipY);\n ctx.lineTo(width, scaledClipY);\n ctx.lineTo(width, height);\n ctx.lineTo(scaledClipX, height);\n ctx.closePath();\n ctx.clip();\n }\n\n if (!hasRefs) {\n var isMeetMinY = meetOrSlice === 'meet' && scaleMin === scaleY;\n var isSliceMaxY = meetOrSlice === 'slice' && scaleMax === scaleY;\n var isMeetMinX = meetOrSlice === 'meet' && scaleMin === scaleX;\n var isSliceMaxX = meetOrSlice === 'slice' && scaleMax === scaleX;\n\n if (align.startsWith('xMid') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width / 2.0 - finalDesiredWidth / 2.0, 0);\n }\n\n if (align.endsWith('YMid') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height / 2.0 - finalDesiredHeight / 2.0);\n }\n\n if (align.startsWith('xMax') && (isMeetMinY || isSliceMaxY)) {\n ctx.translate(width - finalDesiredWidth, 0);\n }\n\n if (align.endsWith('YMax') && (isMeetMinX || isSliceMaxX)) {\n ctx.translate(0, height - finalDesiredHeight);\n }\n } // scale\n\n\n switch (true) {\n case align === 'none':\n ctx.scale(scaleX, scaleY);\n break;\n\n case meetOrSlice === 'meet':\n ctx.scale(scaleMin, scaleMin);\n break;\n\n case meetOrSlice === 'slice':\n ctx.scale(scaleMax, scaleMax);\n break;\n } // translate\n\n\n ctx.translate(-minX, -minY);\n }\n\n start(element) {\n var {\n enableRedraw = false,\n ignoreMouse = false,\n ignoreAnimation = false,\n ignoreDimensions = false,\n ignoreClear = false,\n forceRedraw,\n scaleWidth,\n scaleHeight,\n offsetX,\n offsetY\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n FRAMERATE,\n mouse\n } = this;\n var frameDuration = 1000 / FRAMERATE;\n this.frameDuration = frameDuration;\n this.readyPromise = new Promise(resolve => {\n this.resolveReady = resolve;\n });\n\n if (this.isReady()) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n }\n\n if (!enableRedraw) {\n return;\n }\n\n var now = Date.now();\n var then = now;\n var delta = 0;\n\n var tick = () => {\n now = Date.now();\n delta = now - then;\n\n if (delta >= frameDuration) {\n then = now - delta % frameDuration;\n\n if (this.shouldUpdate(ignoreAnimation, forceRedraw)) {\n this.render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY);\n mouse.runEvents();\n }\n }\n\n this.intervalId = requestAnimationFrame(tick);\n };\n\n if (!ignoreMouse) {\n mouse.start();\n }\n\n this.intervalId = requestAnimationFrame(tick);\n }\n\n stop() {\n if (this.intervalId) {\n requestAnimationFrame.cancel(this.intervalId);\n this.intervalId = null;\n }\n\n this.mouse.stop();\n }\n\n shouldUpdate(ignoreAnimation, forceRedraw) {\n // need update from animations?\n if (!ignoreAnimation) {\n var {\n frameDuration\n } = this;\n var shouldUpdate = this.animations.reduce((shouldUpdate, animation) => animation.update(frameDuration) || shouldUpdate, false);\n\n if (shouldUpdate) {\n return true;\n }\n } // need update from redraw?\n\n\n if (typeof forceRedraw === 'function' && forceRedraw()) {\n return true;\n }\n\n if (!this.isReadyLock && this.isReady()) {\n return true;\n } // need update from mouse events?\n\n\n if (this.mouse.hasEvents()) {\n return true;\n }\n\n return false;\n }\n\n render(element, ignoreDimensions, ignoreClear, scaleWidth, scaleHeight, offsetX, offsetY) {\n var {\n CLIENT_WIDTH,\n CLIENT_HEIGHT,\n viewPort,\n ctx,\n isFirstRender\n } = this;\n var canvas = ctx.canvas;\n viewPort.clear();\n\n if (canvas.width && canvas.height) {\n viewPort.setCurrent(canvas.width, canvas.height);\n } else {\n viewPort.setCurrent(CLIENT_WIDTH, CLIENT_HEIGHT);\n }\n\n var widthStyle = element.getStyle('width');\n var heightStyle = element.getStyle('height');\n\n if (!ignoreDimensions && (isFirstRender || typeof scaleWidth !== 'number' && typeof scaleHeight !== 'number')) {\n // set canvas size\n if (widthStyle.hasValue()) {\n canvas.width = widthStyle.getPixels('x');\n\n if (canvas.style) {\n canvas.style.width = \"\".concat(canvas.width, \"px\");\n }\n }\n\n if (heightStyle.hasValue()) {\n canvas.height = heightStyle.getPixels('y');\n\n if (canvas.style) {\n canvas.style.height = \"\".concat(canvas.height, \"px\");\n }\n }\n }\n\n var cWidth = canvas.clientWidth || canvas.width;\n var cHeight = canvas.clientHeight || canvas.height;\n\n if (ignoreDimensions && widthStyle.hasValue() && heightStyle.hasValue()) {\n cWidth = widthStyle.getPixels('x');\n cHeight = heightStyle.getPixels('y');\n }\n\n viewPort.setCurrent(cWidth, cHeight);\n\n if (typeof offsetX === 'number') {\n element.getAttribute('x', true).setValue(offsetX);\n }\n\n if (typeof offsetY === 'number') {\n element.getAttribute('y', true).setValue(offsetY);\n }\n\n if (typeof scaleWidth === 'number' || typeof scaleHeight === 'number') {\n var viewBox = toNumbers(element.getAttribute('viewBox').getString());\n var xRatio = 0;\n var yRatio = 0;\n\n if (typeof scaleWidth === 'number') {\n var _widthStyle = element.getStyle('width');\n\n if (_widthStyle.hasValue()) {\n xRatio = _widthStyle.getPixels('x') / scaleWidth;\n } else if (!isNaN(viewBox[2])) {\n xRatio = viewBox[2] / scaleWidth;\n }\n }\n\n if (typeof scaleHeight === 'number') {\n var _heightStyle = element.getStyle('height');\n\n if (_heightStyle.hasValue()) {\n yRatio = _heightStyle.getPixels('y') / scaleHeight;\n } else if (!isNaN(viewBox[3])) {\n yRatio = viewBox[3] / scaleHeight;\n }\n }\n\n if (!xRatio) {\n xRatio = yRatio;\n }\n\n if (!yRatio) {\n yRatio = xRatio;\n }\n\n element.getAttribute('width', true).setValue(scaleWidth);\n element.getAttribute('height', true).setValue(scaleHeight);\n var transformStyle = element.getStyle('transform', true, true);\n transformStyle.setValue(\"\".concat(transformStyle.getString(), \" scale(\").concat(1.0 / xRatio, \", \").concat(1.0 / yRatio, \")\"));\n } // clear and render\n\n\n if (!ignoreClear) {\n ctx.clearRect(0, 0, cWidth, cHeight);\n }\n\n element.render(ctx);\n\n if (isFirstRender) {\n this.isFirstRender = false;\n }\n }\n\n}\nScreen.defaultWindow = defaultWindow;\nScreen.defaultFetch = defaultFetch$1;\n\nvar {\n defaultFetch\n} = Screen;\nvar DefaultDOMParser = typeof DOMParser !== 'undefined' ? DOMParser : null;\nclass Parser {\n constructor() {\n var {\n fetch = defaultFetch,\n DOMParser = DefaultDOMParser\n } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.fetch = fetch;\n this.DOMParser = DOMParser;\n }\n\n parse(resource) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n if (resource.startsWith('<')) {\n return _this.parseFromString(resource);\n }\n\n return _this.load(resource);\n })();\n }\n\n parseFromString(xml) {\n var parser = new this.DOMParser();\n\n try {\n return this.checkDocument(parser.parseFromString(xml, 'image/svg+xml'));\n } catch (err) {\n return this.checkDocument(parser.parseFromString(xml, 'text/xml'));\n }\n }\n\n checkDocument(document) {\n var parserError = document.getElementsByTagName('parsererror')[0];\n\n if (parserError) {\n throw new Error(parserError.textContent);\n }\n\n return document;\n }\n\n load(url) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var response = yield _this2.fetch(url);\n var xml = yield response.text();\n return _this2.parseFromString(xml);\n })();\n }\n\n}\n\nclass Translate {\n constructor(_, point) {\n this.type = 'translate';\n this.point = null;\n this.point = Point.parse(point);\n }\n\n apply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(x || 0.0, y || 0.0);\n }\n\n unapply(ctx) {\n var {\n x,\n y\n } = this.point;\n ctx.translate(-1.0 * x || 0.0, -1.0 * y || 0.0);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.point;\n point.applyTransform([1, 0, 0, 1, x || 0.0, y || 0.0]);\n }\n\n}\n\nclass Rotate {\n constructor(document, rotate, transformOrigin) {\n this.type = 'rotate';\n this.angle = null;\n this.originX = null;\n this.originY = null;\n this.cx = 0;\n this.cy = 0;\n var numbers = toNumbers(rotate);\n this.angle = new Property(document, 'angle', numbers[0]);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n this.cx = numbers[1] || 0;\n this.cy = numbers[2] || 0;\n }\n\n apply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n cx,\n cy,\n originX,\n originY,\n angle\n } = this;\n var tx = cx + originX.getPixels('x');\n var ty = cy + originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.rotate(-1.0 * angle.getRadians());\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n cx,\n cy,\n angle\n } = this;\n var rad = angle.getRadians();\n point.applyTransform([1, 0, 0, 1, cx || 0.0, cy || 0.0 // this.p.y\n ]);\n point.applyTransform([Math.cos(rad), Math.sin(rad), -Math.sin(rad), Math.cos(rad), 0, 0]);\n point.applyTransform([1, 0, 0, 1, -cx || 0.0, -cy || 0.0 // -this.p.y\n ]);\n }\n\n}\n\nclass Scale {\n constructor(_, scale, transformOrigin) {\n this.type = 'scale';\n this.scale = null;\n this.originX = null;\n this.originY = null;\n var scaleSize = Point.parseScale(scale); // Workaround for node-canvas\n\n if (scaleSize.x === 0 || scaleSize.y === 0) {\n scaleSize.x = PSEUDO_ZERO;\n scaleSize.y = PSEUDO_ZERO;\n }\n\n this.scale = scaleSize;\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(x, y || x);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n scale: {\n x,\n y\n },\n originX,\n originY\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.scale(1.0 / x, 1.0 / y || x);\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n var {\n x,\n y\n } = this.scale;\n point.applyTransform([x || 0.0, 0, 0, y || 0.0, 0, 0]);\n }\n\n}\n\nclass Matrix {\n constructor(_, matrix, transformOrigin) {\n this.type = 'matrix';\n this.matrix = [];\n this.originX = null;\n this.originY = null;\n this.matrix = toNumbers(matrix);\n this.originX = transformOrigin[0];\n this.originY = transformOrigin[1];\n }\n\n apply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n ctx.translate(-tx, -ty);\n }\n\n unapply(ctx) {\n var {\n originX,\n originY,\n matrix\n } = this;\n var a = matrix[0];\n var b = matrix[2];\n var c = matrix[4];\n var d = matrix[1];\n var e = matrix[3];\n var f = matrix[5];\n var g = 0.0;\n var h = 0.0;\n var i = 1.0;\n var det = 1 / (a * (e * i - f * h) - b * (d * i - f * g) + c * (d * h - e * g));\n var tx = originX.getPixels('x');\n var ty = originY.getPixels('y');\n ctx.translate(tx, ty);\n ctx.transform(det * (e * i - f * h), det * (f * g - d * i), det * (c * h - b * i), det * (a * i - c * g), det * (b * f - c * e), det * (c * d - a * f));\n ctx.translate(-tx, -ty);\n }\n\n applyToPoint(point) {\n point.applyTransform(this.matrix);\n }\n\n}\n\nclass Skew extends Matrix {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skew';\n this.angle = null;\n this.angle = new Property(document, 'angle', skew);\n }\n\n}\n\nclass SkewX extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewX';\n this.matrix = [1, 0, Math.tan(this.angle.getRadians()), 1, 0, 0];\n }\n\n}\n\nclass SkewY extends Skew {\n constructor(document, skew, transformOrigin) {\n super(document, skew, transformOrigin);\n this.type = 'skewY';\n this.matrix = [1, Math.tan(this.angle.getRadians()), 0, 1, 0, 0];\n }\n\n}\n\nfunction parseTransforms(transform) {\n return compressSpaces(transform).trim().replace(/\\)([a-zA-Z])/g, ') $1').replace(/\\)(\\s?,\\s?)/g, ') ').split(/\\s(?=[a-z])/);\n}\n\nfunction parseTransform(transform) {\n var [type, value] = transform.split('(');\n return [type.trim(), value.trim().replace(')', '')];\n}\n\nclass Transform {\n constructor(document, transform, transformOrigin) {\n this.document = document;\n this.transforms = [];\n var data = parseTransforms(transform);\n data.forEach(transform => {\n if (transform === 'none') {\n return;\n }\n\n var [type, value] = parseTransform(transform);\n var TransformType = Transform.transformTypes[type];\n\n if (typeof TransformType !== 'undefined') {\n this.transforms.push(new TransformType(this.document, value, transformOrigin));\n }\n });\n }\n\n static fromElement(document, element) {\n var transformStyle = element.getStyle('transform', false, true);\n var [transformOriginXProperty, transformOriginYProperty = transformOriginXProperty] = element.getStyle('transform-origin', false, true).split();\n var transformOrigin = [transformOriginXProperty, transformOriginYProperty];\n\n if (transformStyle.hasValue()) {\n return new Transform(document, transformStyle.getString(), transformOrigin);\n }\n\n return null;\n }\n\n apply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].apply(ctx);\n }\n }\n\n unapply(ctx) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = len - 1; i >= 0; i--) {\n transforms[i].unapply(ctx);\n }\n } // TODO: applyToPoint unused ... remove?\n\n\n applyToPoint(point) {\n var {\n transforms\n } = this;\n var len = transforms.length;\n\n for (var i = 0; i < len; i++) {\n transforms[i].applyToPoint(point);\n }\n }\n\n}\nTransform.transformTypes = {\n translate: Translate,\n rotate: Rotate,\n scale: Scale,\n matrix: Matrix,\n skewX: SkewX,\n skewY: SkewY\n};\n\nclass Element {\n constructor(document, node) {\n var captureTextNodes = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.document = document;\n this.node = node;\n this.captureTextNodes = captureTextNodes;\n this.attributes = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.animationFrozen = false;\n this.animationFrozenValue = '';\n this.parent = null;\n this.children = [];\n\n if (!node || node.nodeType !== 1) {\n // ELEMENT_NODE\n return;\n } // add attributes\n\n\n Array.from(node.attributes).forEach(attribute => {\n var nodeName = normalizeAttributeName(attribute.nodeName);\n this.attributes[nodeName] = new Property(document, nodeName, attribute.value);\n });\n this.addStylesFromStyleDefinition(); // add inline styles\n\n if (this.getAttribute('style').hasValue()) {\n var styles = this.getAttribute('style').getString().split(';').map(_ => _.trim());\n styles.forEach(style => {\n if (!style) {\n return;\n }\n\n var [name, value] = style.split(':').map(_ => _.trim());\n this.styles[name] = new Property(document, name, value);\n });\n }\n\n var {\n definitions\n } = document;\n var id = this.getAttribute('id'); // add id\n\n if (id.hasValue()) {\n if (!definitions[id.getString()]) {\n definitions[id.getString()] = this;\n }\n }\n\n Array.from(node.childNodes).forEach(childNode => {\n if (childNode.nodeType === 1) {\n this.addChild(childNode); // ELEMENT_NODE\n } else if (captureTextNodes && (childNode.nodeType === 3 || childNode.nodeType === 4)) {\n var textNode = document.createTextNode(childNode);\n\n if (textNode.getText().length > 0) {\n this.addChild(textNode); // TEXT_NODE\n }\n }\n });\n }\n\n getAttribute(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var attr = this.attributes[name];\n\n if (!attr && createIfNotExists) {\n var _attr = new Property(this.document, name, '');\n\n this.attributes[name] = _attr;\n return _attr;\n }\n\n return attr || Property.empty(this.document);\n }\n\n getHrefAttribute() {\n for (var key in this.attributes) {\n if (key === 'href' || key.endsWith(':href')) {\n return this.attributes[key];\n }\n }\n\n return Property.empty(this.document);\n }\n\n getStyle(name) {\n var createIfNotExists = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var skipAncestors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var style = this.styles[name];\n\n if (style) {\n return style;\n }\n\n var attr = this.getAttribute(name);\n\n if (attr !== null && attr !== void 0 && attr.hasValue()) {\n this.styles[name] = attr; // move up to me to cache\n\n return attr;\n }\n\n if (!skipAncestors) {\n var {\n parent\n } = this;\n\n if (parent) {\n var parentStyle = parent.getStyle(name);\n\n if (parentStyle !== null && parentStyle !== void 0 && parentStyle.hasValue()) {\n return parentStyle;\n }\n }\n }\n\n if (createIfNotExists) {\n var _style = new Property(this.document, name, '');\n\n this.styles[name] = _style;\n return _style;\n }\n\n return style || Property.empty(this.document);\n }\n\n render(ctx) {\n // don't render display=none\n // don't render visibility=hidden\n if (this.getStyle('display').getString() === 'none' || this.getStyle('visibility').getString() === 'hidden') {\n return;\n }\n\n ctx.save();\n\n if (this.getStyle('mask').hasValue()) {\n // mask\n var mask = this.getStyle('mask').getDefinition();\n\n if (mask) {\n this.applyEffects(ctx);\n mask.apply(ctx, this);\n }\n } else if (this.getStyle('filter').getValue('none') !== 'none') {\n // filter\n var filter = this.getStyle('filter').getDefinition();\n\n if (filter) {\n this.applyEffects(ctx);\n filter.apply(ctx, this);\n }\n } else {\n this.setContext(ctx);\n this.renderChildren(ctx);\n this.clearContext(ctx);\n }\n\n ctx.restore();\n }\n\n setContext(_) {// NO RENDER\n }\n\n applyEffects(ctx) {\n // transform\n var transform = Transform.fromElement(this.document, this);\n\n if (transform) {\n transform.apply(ctx);\n } // clip\n\n\n var clipPathStyleProp = this.getStyle('clip-path', false, true);\n\n if (clipPathStyleProp.hasValue()) {\n var clip = clipPathStyleProp.getDefinition();\n\n if (clip) {\n clip.apply(ctx);\n }\n }\n }\n\n clearContext(_) {// NO RENDER\n }\n\n renderChildren(ctx) {\n this.children.forEach(child => {\n child.render(ctx);\n });\n }\n\n addChild(childNode) {\n var child = childNode instanceof Element ? childNode : this.document.createElement(childNode);\n child.parent = this;\n\n if (!Element.ignoreChildTypes.includes(child.type)) {\n this.children.push(child);\n }\n }\n\n matchesSelector(selector) {\n var _node$getAttribute;\n\n var {\n node\n } = this;\n\n if (typeof node.matches === 'function') {\n return node.matches(selector);\n }\n\n var styleClasses = (_node$getAttribute = node.getAttribute) === null || _node$getAttribute === void 0 ? void 0 : _node$getAttribute.call(node, 'class');\n\n if (!styleClasses || styleClasses === '') {\n return false;\n }\n\n return styleClasses.split(' ').some(styleClass => \".\".concat(styleClass) === selector);\n }\n\n addStylesFromStyleDefinition() {\n var {\n styles,\n stylesSpecificity\n } = this.document;\n\n for (var selector in styles) {\n if (!selector.startsWith('@') && this.matchesSelector(selector)) {\n var style = styles[selector];\n var specificity = stylesSpecificity[selector];\n\n if (style) {\n for (var name in style) {\n var existingSpecificity = this.stylesSpecificity[name];\n\n if (typeof existingSpecificity === 'undefined') {\n existingSpecificity = '000';\n }\n\n if (specificity >= existingSpecificity) {\n this.styles[name] = style[name];\n this.stylesSpecificity[name] = specificity;\n }\n }\n }\n }\n }\n }\n\n removeStyles(element, ignoreStyles) {\n var toRestore = ignoreStyles.reduce((toRestore, name) => {\n var styleProp = element.getStyle(name);\n\n if (!styleProp.hasValue()) {\n return toRestore;\n }\n\n var value = styleProp.getString();\n styleProp.setValue('');\n return [...toRestore, [name, value]];\n }, []);\n return toRestore;\n }\n\n restoreStyles(element, styles) {\n styles.forEach(_ref => {\n var [name, value] = _ref;\n element.getStyle(name, true).setValue(value);\n });\n }\n\n isFirstChild() {\n var _this$parent;\n\n return ((_this$parent = this.parent) === null || _this$parent === void 0 ? void 0 : _this$parent.children.indexOf(this)) === 0;\n }\n\n}\nElement.ignoreChildTypes = ['title'];\n\nclass UnknownElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n }\n\n}\n\nfunction wrapFontFamily(fontFamily) {\n var trimmed = fontFamily.trim();\n return /^('|\")/.test(trimmed) ? trimmed : \"\\\"\".concat(trimmed, \"\\\"\");\n}\n\nfunction prepareFontFamily(fontFamily) {\n return typeof process === 'undefined' ? fontFamily : fontFamily.trim().split(',').map(wrapFontFamily).join(',');\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\r\n * @param fontStyle\r\n * @returns CSS font style.\r\n */\n\n\nfunction prepareFontStyle(fontStyle) {\n if (!fontStyle) {\n return '';\n }\n\n var targetFontStyle = fontStyle.trim().toLowerCase();\n\n switch (targetFontStyle) {\n case 'normal':\n case 'italic':\n case 'oblique':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontStyle;\n\n default:\n if (/^oblique\\s+(-|)\\d+deg$/.test(targetFontStyle)) {\n return targetFontStyle;\n }\n\n return '';\n }\n}\n/**\r\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\r\n * @param fontWeight\r\n * @returns CSS font weight.\r\n */\n\n\nfunction prepareFontWeight(fontWeight) {\n if (!fontWeight) {\n return '';\n }\n\n var targetFontWeight = fontWeight.trim().toLowerCase();\n\n switch (targetFontWeight) {\n case 'normal':\n case 'bold':\n case 'lighter':\n case 'bolder':\n case 'inherit':\n case 'initial':\n case 'unset':\n return targetFontWeight;\n\n default:\n if (/^[\\d.]+$/.test(targetFontWeight)) {\n return targetFontWeight;\n }\n\n return '';\n }\n}\n\nclass Font {\n constructor(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit) {\n var inheritFont = inherit ? typeof inherit === 'string' ? Font.parse(inherit) : inherit : {};\n this.fontFamily = fontFamily || inheritFont.fontFamily;\n this.fontSize = fontSize || inheritFont.fontSize;\n this.fontStyle = fontStyle || inheritFont.fontStyle;\n this.fontWeight = fontWeight || inheritFont.fontWeight;\n this.fontVariant = fontVariant || inheritFont.fontVariant;\n }\n\n static parse() {\n var font = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var inherit = arguments.length > 1 ? arguments[1] : undefined;\n var fontStyle = '';\n var fontVariant = '';\n var fontWeight = '';\n var fontSize = '';\n var fontFamily = '';\n var parts = compressSpaces(font).trim().split(' ');\n var set = {\n fontSize: false,\n fontStyle: false,\n fontWeight: false,\n fontVariant: false\n };\n parts.forEach(part => {\n switch (true) {\n case !set.fontStyle && Font.styles.includes(part):\n if (part !== 'inherit') {\n fontStyle = part;\n }\n\n set.fontStyle = true;\n break;\n\n case !set.fontVariant && Font.variants.includes(part):\n if (part !== 'inherit') {\n fontVariant = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n break;\n\n case !set.fontWeight && Font.weights.includes(part):\n if (part !== 'inherit') {\n fontWeight = part;\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n break;\n\n case !set.fontSize:\n if (part !== 'inherit') {\n [fontSize] = part.split('/');\n }\n\n set.fontStyle = true;\n set.fontVariant = true;\n set.fontWeight = true;\n set.fontSize = true;\n break;\n\n default:\n if (part !== 'inherit') {\n fontFamily += part;\n }\n\n }\n });\n return new Font(fontStyle, fontVariant, fontWeight, fontSize, fontFamily, inherit);\n }\n\n toString() {\n return [prepareFontStyle(this.fontStyle), this.fontVariant, prepareFontWeight(this.fontWeight), this.fontSize, // Wrap fontFamily only on nodejs and only for canvas.ctx\n prepareFontFamily(this.fontFamily)].join(' ').trim();\n }\n\n}\nFont.styles = 'normal|italic|oblique|inherit';\nFont.variants = 'normal|small-caps|inherit';\nFont.weights = 'normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900|inherit';\n\nclass BoundingBox {\n constructor() {\n var x1 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Number.NaN;\n var y1 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : Number.NaN;\n var x2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : Number.NaN;\n var y2 = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : Number.NaN;\n this.x1 = x1;\n this.y1 = y1;\n this.x2 = x2;\n this.y2 = y2;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n get x() {\n return this.x1;\n }\n\n get y() {\n return this.y1;\n }\n\n get width() {\n return this.x2 - this.x1;\n }\n\n get height() {\n return this.y2 - this.y1;\n }\n\n addPoint(x, y) {\n if (typeof x !== 'undefined') {\n if (isNaN(this.x1) || isNaN(this.x2)) {\n this.x1 = x;\n this.x2 = x;\n }\n\n if (x < this.x1) {\n this.x1 = x;\n }\n\n if (x > this.x2) {\n this.x2 = x;\n }\n }\n\n if (typeof y !== 'undefined') {\n if (isNaN(this.y1) || isNaN(this.y2)) {\n this.y1 = y;\n this.y2 = y;\n }\n\n if (y < this.y1) {\n this.y1 = y;\n }\n\n if (y > this.y2) {\n this.y2 = y;\n }\n }\n }\n\n addX(x) {\n this.addPoint(x, null);\n }\n\n addY(y) {\n this.addPoint(null, y);\n }\n\n addBoundingBox(boundingBox) {\n if (!boundingBox) {\n return;\n }\n\n var {\n x1,\n y1,\n x2,\n y2\n } = boundingBox;\n this.addPoint(x1, y1);\n this.addPoint(x2, y2);\n }\n\n sumCubic(t, p0, p1, p2, p3) {\n return Math.pow(1 - t, 3) * p0 + 3 * Math.pow(1 - t, 2) * t * p1 + 3 * (1 - t) * Math.pow(t, 2) * p2 + Math.pow(t, 3) * p3;\n }\n\n bezierCurveAdd(forX, p0, p1, p2, p3) {\n var b = 6 * p0 - 12 * p1 + 6 * p2;\n var a = -3 * p0 + 9 * p1 - 9 * p2 + 3 * p3;\n var c = 3 * p1 - 3 * p0;\n\n if (a === 0) {\n if (b === 0) {\n return;\n }\n\n var t = -c / b;\n\n if (0 < t && t < 1) {\n if (forX) {\n this.addX(this.sumCubic(t, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t, p0, p1, p2, p3));\n }\n }\n\n return;\n }\n\n var b2ac = Math.pow(b, 2) - 4 * c * a;\n\n if (b2ac < 0) {\n return;\n }\n\n var t1 = (-b + Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t1 && t1 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t1, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t1, p0, p1, p2, p3));\n }\n }\n\n var t2 = (-b - Math.sqrt(b2ac)) / (2 * a);\n\n if (0 < t2 && t2 < 1) {\n if (forX) {\n this.addX(this.sumCubic(t2, p0, p1, p2, p3));\n } else {\n this.addY(this.sumCubic(t2, p0, p1, p2, p3));\n }\n }\n } // from http://blog.hackers-cafe.net/2009/06/how-to-calculate-bezier-curves-bounding.html\n\n\n addBezierCurve(p0x, p0y, p1x, p1y, p2x, p2y, p3x, p3y) {\n this.addPoint(p0x, p0y);\n this.addPoint(p3x, p3y);\n this.bezierCurveAdd(true, p0x, p1x, p2x, p3x);\n this.bezierCurveAdd(false, p0y, p1y, p2y, p3y);\n }\n\n addQuadraticCurve(p0x, p0y, p1x, p1y, p2x, p2y) {\n var cp1x = p0x + 2 / 3 * (p1x - p0x); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp1y = p0y + 2 / 3 * (p1y - p0y); // CP1 = QP0 + 2/3 *(QP1-QP0)\n\n var cp2x = cp1x + 1 / 3 * (p2x - p0x); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n var cp2y = cp1y + 1 / 3 * (p2y - p0y); // CP2 = CP1 + 1/3 *(QP2-QP0)\n\n this.addBezierCurve(p0x, p0y, cp1x, cp2x, cp1y, cp2y, p2x, p2y);\n }\n\n isPointInBox(x, y) {\n var {\n x1,\n y1,\n x2,\n y2\n } = this;\n return x1 <= x && x <= x2 && y1 <= y && y <= y2;\n }\n\n}\n\nclass PathParser extends SVGPathData {\n constructor(path) {\n super(path // Fix spaces after signs.\n .replace(/([+\\-.])\\s+/gm, '$1') // Remove invalid part.\n .replace(/[^MmZzLlHhVvCcSsQqTtAae\\d\\s.,+-].*/g, ''));\n this.control = null;\n this.start = null;\n this.current = null;\n this.command = null;\n this.commands = this.commands;\n this.i = -1;\n this.previousCommand = null;\n this.points = [];\n this.angles = [];\n }\n\n reset() {\n this.i = -1;\n this.command = null;\n this.previousCommand = null;\n this.start = new Point(0, 0);\n this.control = new Point(0, 0);\n this.current = new Point(0, 0);\n this.points = [];\n this.angles = [];\n }\n\n isEnd() {\n var {\n i,\n commands\n } = this;\n return i >= commands.length - 1;\n }\n\n next() {\n var command = this.commands[++this.i];\n this.previousCommand = this.command;\n this.command = command;\n return command;\n }\n\n getPoint() {\n var xProp = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'x';\n var yProp = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'y';\n var point = new Point(this.command[xProp], this.command[yProp]);\n return this.makeAbsolute(point);\n }\n\n getAsControlPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.control = point;\n return point;\n }\n\n getAsCurrentPoint(xProp, yProp) {\n var point = this.getPoint(xProp, yProp);\n this.current = point;\n return point;\n }\n\n getReflectedControlPoint() {\n var previousCommand = this.previousCommand.type;\n\n if (previousCommand !== SVGPathData.CURVE_TO && previousCommand !== SVGPathData.SMOOTH_CURVE_TO && previousCommand !== SVGPathData.QUAD_TO && previousCommand !== SVGPathData.SMOOTH_QUAD_TO) {\n return this.current;\n } // reflect point\n\n\n var {\n current: {\n x: cx,\n y: cy\n },\n control: {\n x: ox,\n y: oy\n }\n } = this;\n var point = new Point(2 * cx - ox, 2 * cy - oy);\n return point;\n }\n\n makeAbsolute(point) {\n if (this.command.relative) {\n var {\n x,\n y\n } = this.current;\n point.x += x;\n point.y += y;\n }\n\n return point;\n }\n\n addMarker(point, from, priorTo) {\n var {\n points,\n angles\n } = this; // if the last angle isn't filled in because we didn't have this point yet ...\n\n if (priorTo && angles.length > 0 && !angles[angles.length - 1]) {\n angles[angles.length - 1] = points[points.length - 1].angleTo(priorTo);\n }\n\n this.addMarkerAngle(point, from ? from.angleTo(point) : null);\n }\n\n addMarkerAngle(point, angle) {\n this.points.push(point);\n this.angles.push(angle);\n }\n\n getMarkerPoints() {\n return this.points;\n }\n\n getMarkerAngles() {\n var {\n angles\n } = this;\n var len = angles.length;\n\n for (var i = 0; i < len; i++) {\n if (!angles[i]) {\n for (var j = i + 1; j < len; j++) {\n if (angles[j]) {\n angles[i] = angles[j];\n break;\n }\n }\n }\n }\n\n return angles;\n }\n\n}\n\nclass RenderedElement extends Element {\n constructor() {\n super(...arguments);\n this.modifiedEmSizeStack = false;\n }\n\n calculateOpacity() {\n var opacity = 1.0; // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n\n var element = this;\n\n while (element) {\n var opacityStyle = element.getStyle('opacity', false, true); // no ancestors on style call\n\n if (opacityStyle.hasValue(true)) {\n opacity *= opacityStyle.getNumber();\n }\n\n element = element.parent;\n }\n\n return opacity;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (!fromMeasure) {\n // causes stack overflow when measuring text with gradients\n // fill\n var fillStyleProp = this.getStyle('fill');\n var fillOpacityStyleProp = this.getStyle('fill-opacity');\n var strokeStyleProp = this.getStyle('stroke');\n var strokeOpacityProp = this.getStyle('stroke-opacity');\n\n if (fillStyleProp.isUrlDefinition()) {\n var fillStyle = fillStyleProp.getFillStyleDefinition(this, fillOpacityStyleProp);\n\n if (fillStyle) {\n ctx.fillStyle = fillStyle;\n }\n } else if (fillStyleProp.hasValue()) {\n if (fillStyleProp.getString() === 'currentColor') {\n fillStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _fillStyle = fillStyleProp.getColor();\n\n if (_fillStyle !== 'inherit') {\n ctx.fillStyle = _fillStyle === 'none' ? 'rgba(0,0,0,0)' : _fillStyle;\n }\n }\n\n if (fillOpacityStyleProp.hasValue()) {\n var _fillStyle2 = new Property(this.document, 'fill', ctx.fillStyle).addOpacity(fillOpacityStyleProp).getColor();\n\n ctx.fillStyle = _fillStyle2;\n } // stroke\n\n\n if (strokeStyleProp.isUrlDefinition()) {\n var strokeStyle = strokeStyleProp.getFillStyleDefinition(this, strokeOpacityProp);\n\n if (strokeStyle) {\n ctx.strokeStyle = strokeStyle;\n }\n } else if (strokeStyleProp.hasValue()) {\n if (strokeStyleProp.getString() === 'currentColor') {\n strokeStyleProp.setValue(this.getStyle('color').getColor());\n }\n\n var _strokeStyle = strokeStyleProp.getString();\n\n if (_strokeStyle !== 'inherit') {\n ctx.strokeStyle = _strokeStyle === 'none' ? 'rgba(0,0,0,0)' : _strokeStyle;\n }\n }\n\n if (strokeOpacityProp.hasValue()) {\n var _strokeStyle2 = new Property(this.document, 'stroke', ctx.strokeStyle).addOpacity(strokeOpacityProp).getString();\n\n ctx.strokeStyle = _strokeStyle2;\n }\n\n var strokeWidthStyleProp = this.getStyle('stroke-width');\n\n if (strokeWidthStyleProp.hasValue()) {\n var newLineWidth = strokeWidthStyleProp.getPixels();\n ctx.lineWidth = !newLineWidth ? PSEUDO_ZERO // browsers don't respect 0 (or node-canvas? :-)\n : newLineWidth;\n }\n\n var strokeLinecapStyleProp = this.getStyle('stroke-linecap');\n var strokeLinejoinStyleProp = this.getStyle('stroke-linejoin');\n var strokeMiterlimitProp = this.getStyle('stroke-miterlimit'); // NEED TEST\n // const pointOrderStyleProp = this.getStyle('paint-order');\n\n var strokeDasharrayStyleProp = this.getStyle('stroke-dasharray');\n var strokeDashoffsetProp = this.getStyle('stroke-dashoffset');\n\n if (strokeLinecapStyleProp.hasValue()) {\n ctx.lineCap = strokeLinecapStyleProp.getString();\n }\n\n if (strokeLinejoinStyleProp.hasValue()) {\n ctx.lineJoin = strokeLinejoinStyleProp.getString();\n }\n\n if (strokeMiterlimitProp.hasValue()) {\n ctx.miterLimit = strokeMiterlimitProp.getNumber();\n } // NEED TEST\n // if (pointOrderStyleProp.hasValue()) {\n // \t// ?\n // \tctx.paintOrder = pointOrderStyleProp.getValue();\n // }\n\n\n if (strokeDasharrayStyleProp.hasValue() && strokeDasharrayStyleProp.getString() !== 'none') {\n var gaps = toNumbers(strokeDasharrayStyleProp.getString());\n\n if (typeof ctx.setLineDash !== 'undefined') {\n ctx.setLineDash(gaps);\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDash !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDash = gaps;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDash !== 'undefined' && !(gaps.length === 1 && gaps[0] === 0)) {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDash = gaps;\n }\n\n var offset = strokeDashoffsetProp.getPixels();\n\n if (typeof ctx.lineDashOffset !== 'undefined') {\n ctx.lineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.webkitLineDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.webkitLineDashOffset = offset;\n } else // @ts-expect-error Handle browser prefix.\n if (typeof ctx.mozDashOffset !== 'undefined') {\n // @ts-expect-error Handle browser prefix.\n ctx.mozDashOffset = offset;\n }\n }\n } // font\n\n\n this.modifiedEmSizeStack = false;\n\n if (typeof ctx.font !== 'undefined') {\n var fontStyleProp = this.getStyle('font');\n var fontStyleStyleProp = this.getStyle('font-style');\n var fontVariantStyleProp = this.getStyle('font-variant');\n var fontWeightStyleProp = this.getStyle('font-weight');\n var fontSizeStyleProp = this.getStyle('font-size');\n var fontFamilyStyleProp = this.getStyle('font-family');\n var font = new Font(fontStyleStyleProp.getString(), fontVariantStyleProp.getString(), fontWeightStyleProp.getString(), fontSizeStyleProp.hasValue() ? \"\".concat(fontSizeStyleProp.getPixels(true), \"px\") : '', fontFamilyStyleProp.getString(), Font.parse(fontStyleProp.getString(), ctx.font));\n fontStyleStyleProp.setValue(font.fontStyle);\n fontVariantStyleProp.setValue(font.fontVariant);\n fontWeightStyleProp.setValue(font.fontWeight);\n fontSizeStyleProp.setValue(font.fontSize);\n fontFamilyStyleProp.setValue(font.fontFamily);\n ctx.font = font.toString();\n\n if (fontSizeStyleProp.isPixels()) {\n this.document.emSize = fontSizeStyleProp.getPixels();\n this.modifiedEmSizeStack = true;\n }\n }\n\n if (!fromMeasure) {\n // effects\n this.applyEffects(ctx); // opacity\n\n ctx.globalAlpha = this.calculateOpacity();\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n\n if (this.modifiedEmSizeStack) {\n this.document.popEmSize();\n }\n }\n\n}\n\nclass PathElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'path';\n this.pathParser = null;\n this.pathParser = new PathParser(this.getAttribute('d').getString());\n }\n\n path(ctx) {\n var {\n pathParser\n } = this;\n var boundingBox = new BoundingBox();\n pathParser.reset();\n\n if (ctx) {\n ctx.beginPath();\n }\n\n while (!pathParser.isEnd()) {\n switch (pathParser.next().type) {\n case PathParser.MOVE_TO:\n this.pathM(ctx, boundingBox);\n break;\n\n case PathParser.LINE_TO:\n this.pathL(ctx, boundingBox);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n this.pathH(ctx, boundingBox);\n break;\n\n case PathParser.VERT_LINE_TO:\n this.pathV(ctx, boundingBox);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n this.pathS(ctx, boundingBox);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(ctx, boundingBox);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n this.pathT(ctx, boundingBox);\n break;\n\n case PathParser.ARC:\n this.pathA(ctx, boundingBox);\n break;\n\n case PathParser.CLOSE_PATH:\n this.pathZ(ctx, boundingBox);\n break;\n }\n }\n\n return boundingBox;\n }\n\n getBoundingBox(_) {\n return this.path();\n }\n\n getMarkers() {\n var {\n pathParser\n } = this;\n var points = pathParser.getMarkerPoints();\n var angles = pathParser.getMarkerAngles();\n var markers = points.map((point, i) => [point, angles[i]]);\n return markers;\n }\n\n renderChildren(ctx) {\n this.path(ctx);\n this.document.screen.mouse.checkPath(this, ctx);\n var fillRuleStyleProp = this.getStyle('fill-rule');\n\n if (ctx.fillStyle !== '') {\n if (fillRuleStyleProp.getString('inherit') !== 'inherit') {\n ctx.fill(fillRuleStyleProp.getString());\n } else {\n ctx.fill();\n }\n }\n\n if (ctx.strokeStyle !== '') {\n if (this.getAttribute('vector-effect').getString() === 'non-scaling-stroke') {\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.stroke();\n ctx.restore();\n } else {\n ctx.stroke();\n }\n }\n\n var markers = this.getMarkers();\n\n if (markers) {\n var markersLastIndex = markers.length - 1;\n var markerStartStyleProp = this.getStyle('marker-start');\n var markerMidStyleProp = this.getStyle('marker-mid');\n var markerEndStyleProp = this.getStyle('marker-end');\n\n if (markerStartStyleProp.isUrlDefinition()) {\n var marker = markerStartStyleProp.getDefinition();\n var [point, angle] = markers[0];\n marker.render(ctx, point, angle);\n }\n\n if (markerMidStyleProp.isUrlDefinition()) {\n var _marker = markerMidStyleProp.getDefinition();\n\n for (var i = 1; i < markersLastIndex; i++) {\n var [_point, _angle] = markers[i];\n\n _marker.render(ctx, _point, _angle);\n }\n }\n\n if (markerEndStyleProp.isUrlDefinition()) {\n var _marker2 = markerEndStyleProp.getDefinition();\n\n var [_point2, _angle2] = markers[markersLastIndex];\n\n _marker2.render(ctx, _point2, _angle2);\n }\n }\n }\n\n static pathM(pathParser) {\n var point = pathParser.getAsCurrentPoint();\n pathParser.start = pathParser.current;\n return {\n point\n };\n }\n\n pathM(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n point\n } = PathElement.pathM(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.moveTo(x, y);\n }\n }\n\n static pathL(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getAsCurrentPoint();\n return {\n current,\n point\n };\n }\n\n pathL(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathL(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathH(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point((command.relative ? current.x : 0) + command.x, current.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathH(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathH(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathV(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var point = new Point(current.x, (command.relative ? current.y : 0) + command.y);\n pathParser.current = point;\n return {\n current,\n point\n };\n }\n\n pathV(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point\n } = PathElement.pathV(pathParser);\n var {\n x,\n y\n } = point;\n pathParser.addMarker(point, current);\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n }\n\n static pathC(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getPoint('x1', 'y1');\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathC(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathS(pathParser) {\n var {\n current\n } = pathParser;\n var point = pathParser.getReflectedControlPoint();\n var controlPoint = pathParser.getAsControlPoint('x2', 'y2');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n point,\n controlPoint,\n currentPoint\n };\n }\n\n pathS(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, point);\n boundingBox.addBezierCurve(current.x, current.y, point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.bezierCurveTo(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathQ(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getAsControlPoint('x1', 'y1');\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathQ(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathT(pathParser) {\n var {\n current\n } = pathParser;\n var controlPoint = pathParser.getReflectedControlPoint();\n pathParser.control = controlPoint;\n var currentPoint = pathParser.getAsCurrentPoint();\n return {\n current,\n controlPoint,\n currentPoint\n };\n }\n\n pathT(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n current,\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n pathParser.addMarker(currentPoint, controlPoint, controlPoint);\n boundingBox.addQuadraticCurve(current.x, current.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n\n if (ctx) {\n ctx.quadraticCurveTo(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n }\n\n static pathA(pathParser) {\n var {\n current,\n command\n } = pathParser;\n var {\n rX,\n rY,\n xRot,\n lArcFlag,\n sweepFlag\n } = command;\n var xAxisRotation = xRot * (Math.PI / 180.0);\n var currentPoint = pathParser.getAsCurrentPoint(); // Conversion from endpoint to center parameterization\n // http://www.w3.org/TR/SVG11/implnote.html#ArcImplementationNotes\n // x1', y1'\n\n var currp = new Point(Math.cos(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.sin(xAxisRotation) * (current.y - currentPoint.y) / 2.0, -Math.sin(xAxisRotation) * (current.x - currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * (current.y - currentPoint.y) / 2.0); // adjust radii\n\n var l = Math.pow(currp.x, 2) / Math.pow(rX, 2) + Math.pow(currp.y, 2) / Math.pow(rY, 2);\n\n if (l > 1) {\n rX *= Math.sqrt(l);\n rY *= Math.sqrt(l);\n } // cx', cy'\n\n\n var s = (lArcFlag === sweepFlag ? -1 : 1) * Math.sqrt((Math.pow(rX, 2) * Math.pow(rY, 2) - Math.pow(rX, 2) * Math.pow(currp.y, 2) - Math.pow(rY, 2) * Math.pow(currp.x, 2)) / (Math.pow(rX, 2) * Math.pow(currp.y, 2) + Math.pow(rY, 2) * Math.pow(currp.x, 2)));\n\n if (isNaN(s)) {\n s = 0;\n }\n\n var cpp = new Point(s * rX * currp.y / rY, s * -rY * currp.x / rX); // cx, cy\n\n var centp = new Point((current.x + currentPoint.x) / 2.0 + Math.cos(xAxisRotation) * cpp.x - Math.sin(xAxisRotation) * cpp.y, (current.y + currentPoint.y) / 2.0 + Math.sin(xAxisRotation) * cpp.x + Math.cos(xAxisRotation) * cpp.y); // initial angle\n\n var a1 = vectorsAngle([1, 0], [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY]); // θ1\n // angle delta\n\n var u = [(currp.x - cpp.x) / rX, (currp.y - cpp.y) / rY];\n var v = [(-currp.x - cpp.x) / rX, (-currp.y - cpp.y) / rY];\n var ad = vectorsAngle(u, v); // Δθ\n\n if (vectorsRatio(u, v) <= -1) {\n ad = Math.PI;\n }\n\n if (vectorsRatio(u, v) >= 1) {\n ad = 0;\n }\n\n return {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n };\n }\n\n pathA(ctx, boundingBox) {\n var {\n pathParser\n } = this;\n var {\n currentPoint,\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser); // for markers\n\n var dir = 1 - sweepFlag ? 1.0 : -1.0;\n var ah = a1 + dir * (ad / 2.0);\n var halfWay = new Point(centp.x + rX * Math.cos(ah), centp.y + rY * Math.sin(ah));\n pathParser.addMarkerAngle(halfWay, ah - dir * Math.PI / 2);\n pathParser.addMarkerAngle(currentPoint, ah - dir * Math.PI);\n boundingBox.addPoint(currentPoint.x, currentPoint.y); // TODO: this is too naive, make it better\n\n if (ctx && !isNaN(a1) && !isNaN(ad)) {\n var r = rX > rY ? rX : rY;\n var sx = rX > rY ? 1 : rX / rY;\n var sy = rX > rY ? rY / rX : 1;\n ctx.translate(centp.x, centp.y);\n ctx.rotate(xAxisRotation);\n ctx.scale(sx, sy);\n ctx.arc(0, 0, r, a1, a1 + ad, Boolean(1 - sweepFlag));\n ctx.scale(1 / sx, 1 / sy);\n ctx.rotate(-xAxisRotation);\n ctx.translate(-centp.x, -centp.y);\n }\n }\n\n static pathZ(pathParser) {\n pathParser.current = pathParser.start;\n }\n\n pathZ(ctx, boundingBox) {\n PathElement.pathZ(this.pathParser);\n\n if (ctx) {\n // only close path if it is not a straight line\n if (boundingBox.x1 !== boundingBox.x2 && boundingBox.y1 !== boundingBox.y2) {\n ctx.closePath();\n }\n }\n }\n\n}\n\nclass GlyphElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'glyph';\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n this.unicode = this.getAttribute('unicode').getString();\n this.arabicForm = this.getAttribute('arabic-form').getString();\n }\n\n}\n\nclass TextElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TextElement ? true : captureTextNodes);\n this.type = 'text';\n this.x = 0;\n this.y = 0;\n this.measureCache = -1;\n }\n\n setContext(ctx) {\n var fromMeasure = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n super.setContext(ctx, fromMeasure);\n var textBaseline = this.getStyle('dominant-baseline').getTextBaseline() || this.getStyle('alignment-baseline').getTextBaseline();\n\n if (textBaseline) {\n ctx.textBaseline = textBaseline;\n }\n }\n\n initializeCoordinates() {\n this.x = 0;\n this.y = 0;\n this.leafTexts = [];\n this.textChunkStart = 0;\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n }\n\n getBoundingBox(ctx) {\n if (this.type !== 'text') {\n return this.getTElementBoundingBox(ctx);\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx);\n var boundingBox = null; // then calculate bounding box\n\n this.children.forEach((_, i) => {\n var childBoundingBox = this.getChildBoundingBox(ctx, this, this, i);\n\n if (!boundingBox) {\n boundingBox = childBoundingBox;\n } else {\n boundingBox.addBoundingBox(childBoundingBox);\n }\n });\n return boundingBox;\n }\n\n getFontSize() {\n var {\n document,\n parent\n } = this;\n var inheritFontSize = Font.parse(document.ctx.font).fontSize;\n var fontSize = parent.getStyle('font-size').getNumber(inheritFontSize);\n return fontSize;\n }\n\n getTElementBoundingBox(ctx) {\n var fontSize = this.getFontSize();\n return new BoundingBox(this.x, this.y - fontSize, this.x + this.measureText(ctx), this.y);\n }\n\n getGlyph(font, text, i) {\n var char = text[i];\n var glyph = null;\n\n if (font.isArabic) {\n var len = text.length;\n var prevChar = text[i - 1];\n var nextChar = text[i + 1];\n var arabicForm = 'isolated';\n\n if ((i === 0 || prevChar === ' ') && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'terminal';\n }\n\n if (i > 0 && prevChar !== ' ' && i < len - 1 && nextChar !== ' ') {\n arabicForm = 'medial';\n }\n\n if (i > 0 && prevChar !== ' ' && (i === len - 1 || nextChar === ' ')) {\n arabicForm = 'initial';\n }\n\n if (typeof font.glyphs[char] !== 'undefined') {\n // NEED TEST\n var maybeGlyph = font.glyphs[char];\n glyph = maybeGlyph instanceof GlyphElement ? maybeGlyph : maybeGlyph[arabicForm];\n }\n } else {\n glyph = font.glyphs[char];\n }\n\n if (!glyph) {\n glyph = font.missingGlyph;\n }\n\n return glyph;\n }\n\n getText() {\n return '';\n }\n\n getTextFromNode(node) {\n var textNode = node || this.node;\n var childNodes = Array.from(textNode.parentNode.childNodes);\n var index = childNodes.indexOf(textNode);\n var lastIndex = childNodes.length - 1;\n var text = compressSpaces( // textNode.value\n // || textNode.text\n textNode.textContent || '');\n\n if (index === 0) {\n text = trimLeft(text);\n }\n\n if (index === lastIndex) {\n text = trimRight(text);\n }\n\n return text;\n }\n\n renderChildren(ctx) {\n if (this.type !== 'text') {\n this.renderTElementChildren(ctx);\n return;\n } // first, calculate child positions\n\n\n this.initializeCoordinates();\n this.adjustChildCoordinatesRecursive(ctx); // then render\n\n this.children.forEach((_, i) => {\n this.renderChild(ctx, this, this, i);\n });\n var {\n mouse\n } = this.document.screen; // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, this.getBoundingBox(ctx));\n }\n }\n\n renderTElementChildren(ctx) {\n var {\n document,\n parent\n } = this;\n var renderText = this.getText();\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var {\n unitsPerEm\n } = customFont.fontFace;\n var ctxFont = Font.parse(document.ctx.font);\n var fontSize = parent.getStyle('font-size').getNumber(ctxFont.fontSize);\n var fontStyle = parent.getStyle('font-style').getString(ctxFont.fontStyle);\n var scale = fontSize / unitsPerEm;\n var text = customFont.isRTL ? renderText.split('').reverse().join('') : renderText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n ctx.translate(this.x, this.y);\n ctx.scale(scale, -scale);\n var lw = ctx.lineWidth;\n ctx.lineWidth = ctx.lineWidth * unitsPerEm / fontSize;\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, .4, 1, 0, 0);\n }\n\n glyph.render(ctx);\n\n if (fontStyle === 'italic') {\n ctx.transform(1, 0, -.4, 1, 0, 0);\n }\n\n ctx.lineWidth = lw;\n ctx.scale(1 / scale, -1 / scale);\n ctx.translate(-this.x, -this.y);\n this.x += fontSize * (glyph.horizAdvX || customFont.horizAdvX) / unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n this.x += dx[i];\n }\n }\n\n return;\n }\n\n var {\n x,\n y\n } = this; // NEED TEST\n // if (ctx.paintOrder === 'stroke') {\n // \tif (ctx.strokeStyle) {\n // \t\tctx.strokeText(renderText, x, y);\n // \t}\n // \tif (ctx.fillStyle) {\n // \t\tctx.fillText(renderText, x, y);\n // \t}\n // } else {\n\n if (ctx.fillStyle) {\n ctx.fillText(renderText, x, y);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(renderText, x, y);\n } // }\n\n }\n\n applyAnchoring() {\n if (this.textChunkStart >= this.leafTexts.length) {\n return;\n } // This is basically the \"Apply anchoring\" part of https://www.w3.org/TR/SVG2/text.html#TextLayoutAlgorithm.\n // The difference is that we apply the anchoring as soon as a chunk is finished. This saves some extra looping.\n // Vertical text is not supported.\n\n\n var firstElement = this.leafTexts[this.textChunkStart];\n var textAnchor = firstElement.getStyle('text-anchor').getString('start');\n var isRTL = false; // we treat RTL like LTR\n\n var shift = 0;\n\n if (textAnchor === 'start' && !isRTL || textAnchor === 'end' && isRTL) {\n shift = firstElement.x - this.minX;\n } else if (textAnchor === 'end' && !isRTL || textAnchor === 'start' && isRTL) {\n shift = firstElement.x - this.maxX;\n } else {\n shift = firstElement.x - (this.minX + this.maxX) / 2;\n }\n\n for (var i = this.textChunkStart; i < this.leafTexts.length; i++) {\n this.leafTexts[i].x += shift;\n } // start new chunk\n\n\n this.minX = Number.POSITIVE_INFINITY;\n this.maxX = Number.NEGATIVE_INFINITY;\n this.textChunkStart = this.leafTexts.length;\n }\n\n adjustChildCoordinatesRecursive(ctx) {\n this.children.forEach((_, i) => {\n this.adjustChildCoordinatesRecursiveCore(ctx, this, this, i);\n });\n this.applyAnchoring();\n }\n\n adjustChildCoordinatesRecursiveCore(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (child.children.length > 0) {\n child.children.forEach((_, i) => {\n textParent.adjustChildCoordinatesRecursiveCore(ctx, textParent, child, i);\n });\n } else {\n // only leafs are relevant\n this.adjustChildCoordinates(ctx, textParent, parent, i);\n }\n }\n\n adjustChildCoordinates(ctx, textParent, parent, i) {\n var child = parent.children[i];\n\n if (typeof child.measureText !== 'function') {\n return child;\n }\n\n ctx.save();\n child.setContext(ctx, true);\n var xAttr = child.getAttribute('x');\n var yAttr = child.getAttribute('y');\n var dxAttr = child.getAttribute('dx');\n var dyAttr = child.getAttribute('dy');\n var customFont = child.getStyle('font-family').getDefinition();\n var isRTL = Boolean(customFont) && customFont.isRTL;\n\n if (i === 0) {\n // First children inherit attributes from parent(s). Positional attributes\n // are only inherited from a parent to it's first child.\n if (!xAttr.hasValue()) {\n xAttr.setValue(child.getInheritedAttribute('x'));\n }\n\n if (!yAttr.hasValue()) {\n yAttr.setValue(child.getInheritedAttribute('y'));\n }\n\n if (!dxAttr.hasValue()) {\n dxAttr.setValue(child.getInheritedAttribute('dx'));\n }\n\n if (!dyAttr.hasValue()) {\n dyAttr.setValue(child.getInheritedAttribute('dy'));\n }\n }\n\n var width = child.measureText(ctx);\n\n if (isRTL) {\n textParent.x -= width;\n }\n\n if (xAttr.hasValue()) {\n // an \"x\" attribute marks the start of a new chunk\n textParent.applyAnchoring();\n child.x = xAttr.getPixels('x');\n\n if (dxAttr.hasValue()) {\n child.x += dxAttr.getPixels('x');\n }\n } else {\n if (dxAttr.hasValue()) {\n textParent.x += dxAttr.getPixels('x');\n }\n\n child.x = textParent.x;\n }\n\n textParent.x = child.x;\n\n if (!isRTL) {\n textParent.x += width;\n }\n\n if (yAttr.hasValue()) {\n child.y = yAttr.getPixels('y');\n\n if (dyAttr.hasValue()) {\n child.y += dyAttr.getPixels('y');\n }\n } else {\n if (dyAttr.hasValue()) {\n textParent.y += dyAttr.getPixels('y');\n }\n\n child.y = textParent.y;\n }\n\n textParent.y = child.y; // update the current chunk and it's bounds\n\n textParent.leafTexts.push(child);\n textParent.minX = Math.min(textParent.minX, child.x, child.x + width);\n textParent.maxX = Math.max(textParent.maxX, child.x, child.x + width);\n child.clearContext(ctx);\n ctx.restore();\n return child;\n }\n\n getChildBoundingBox(ctx, textParent, parent, i) {\n var child = parent.children[i]; // not a text node?\n\n if (typeof child.getBoundingBox !== 'function') {\n return null;\n }\n\n var boundingBox = child.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return null;\n }\n\n child.children.forEach((_, i) => {\n var childBoundingBox = textParent.getChildBoundingBox(ctx, textParent, child, i);\n boundingBox.addBoundingBox(childBoundingBox);\n });\n return boundingBox;\n }\n\n renderChild(ctx, textParent, parent, i) {\n var child = parent.children[i];\n child.render(ctx);\n child.children.forEach((_, i) => {\n textParent.renderChild(ctx, textParent, child, i);\n });\n }\n\n measureText(ctx) {\n var {\n measureCache\n } = this;\n\n if (~measureCache) {\n return measureCache;\n }\n\n var renderText = this.getText();\n var measure = this.measureTargetText(ctx, renderText);\n this.measureCache = measure;\n return measure;\n }\n\n measureTargetText(ctx, targetText) {\n if (!targetText.length) {\n return 0;\n }\n\n var {\n parent\n } = this;\n var customFont = parent.getStyle('font-family').getDefinition();\n\n if (customFont) {\n var fontSize = this.getFontSize();\n var text = customFont.isRTL ? targetText.split('').reverse().join('') : targetText;\n var dx = toNumbers(parent.getAttribute('dx').getString());\n var len = text.length;\n var _measure = 0;\n\n for (var i = 0; i < len; i++) {\n var glyph = this.getGlyph(customFont, text, i);\n _measure += (glyph.horizAdvX || customFont.horizAdvX) * fontSize / customFont.fontFace.unitsPerEm;\n\n if (typeof dx[i] !== 'undefined' && !isNaN(dx[i])) {\n _measure += dx[i];\n }\n }\n\n return _measure;\n }\n\n if (!ctx.measureText) {\n return targetText.length * 10;\n }\n\n ctx.save();\n this.setContext(ctx, true);\n var {\n width: measure\n } = ctx.measureText(targetText);\n this.clearContext(ctx);\n ctx.restore();\n return measure;\n }\n /**\r\n * Inherits positional attributes from {@link TextElement} parent(s). Attributes\r\n * are only inherited from a parent to its first child.\r\n * @param name - The attribute name.\r\n * @returns The attribute value or null.\r\n */\n\n\n getInheritedAttribute(name) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias,consistent-this\n var current = this;\n\n while (current instanceof TextElement && current.isFirstChild()) {\n var parentAttr = current.parent.getAttribute(name);\n\n if (parentAttr.hasValue(true)) {\n return parentAttr.getValue('0');\n }\n\n current = current.parent;\n }\n\n return null;\n }\n\n}\n\nclass TSpanElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, new.target === TSpanElement ? true : captureTextNodes);\n this.type = 'tspan'; // if this node has children, then they own the text\n\n this.text = this.children.length > 0 ? '' : this.getTextFromNode();\n }\n\n getText() {\n return this.text;\n }\n\n}\n\nclass TextNode extends TSpanElement {\n constructor() {\n super(...arguments);\n this.type = 'textNode';\n }\n\n}\n\nclass SVGElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'svg';\n this.root = false;\n }\n\n setContext(ctx) {\n var _this$node$parentNode;\n\n var {\n document\n } = this;\n var {\n screen,\n window\n } = document;\n var canvas = ctx.canvas;\n screen.setDefaults(ctx);\n\n if (canvas.style && typeof ctx.font !== 'undefined' && window && typeof window.getComputedStyle !== 'undefined') {\n ctx.font = window.getComputedStyle(canvas).getPropertyValue('font');\n var fontSizeProp = new Property(document, 'fontSize', Font.parse(ctx.font).fontSize);\n\n if (fontSizeProp.hasValue()) {\n document.rootEmSize = fontSizeProp.getPixels('y');\n document.emSize = document.rootEmSize;\n }\n } // create new view port\n\n\n if (!this.getAttribute('x').hasValue()) {\n this.getAttribute('x', true).setValue(0);\n }\n\n if (!this.getAttribute('y').hasValue()) {\n this.getAttribute('y', true).setValue(0);\n }\n\n var {\n width,\n height\n } = screen.viewPort;\n\n if (!this.getStyle('width').hasValue()) {\n this.getStyle('width', true).setValue('100%');\n }\n\n if (!this.getStyle('height').hasValue()) {\n this.getStyle('height', true).setValue('100%');\n }\n\n if (!this.getStyle('color').hasValue()) {\n this.getStyle('color', true).setValue('black');\n }\n\n var refXAttr = this.getAttribute('refX');\n var refYAttr = this.getAttribute('refY');\n var viewBoxAttr = this.getAttribute('viewBox');\n var viewBox = viewBoxAttr.hasValue() ? toNumbers(viewBoxAttr.getString()) : null;\n var clip = !this.root && this.getStyle('overflow').getValue('hidden') !== 'visible';\n var minX = 0;\n var minY = 0;\n var clipX = 0;\n var clipY = 0;\n\n if (viewBox) {\n minX = viewBox[0];\n minY = viewBox[1];\n }\n\n if (!this.root) {\n width = this.getStyle('width').getPixels('x');\n height = this.getStyle('height').getPixels('y');\n\n if (this.type === 'marker') {\n clipX = minX;\n clipY = minY;\n minX = 0;\n minY = 0;\n }\n }\n\n screen.viewPort.setCurrent(width, height); // Default value of transform-origin is center only for root SVG elements\n // https://developer.mozilla.org/en-US/docs/Web/SVG/Attribute/transform-origin\n\n if (this.node // is not temporary SVGElement\n && (!this.parent || ((_this$node$parentNode = this.node.parentNode) === null || _this$node$parentNode === void 0 ? void 0 : _this$node$parentNode.nodeName) === 'foreignObject') && this.getStyle('transform', false, true).hasValue() && !this.getStyle('transform-origin', false, true).hasValue()) {\n this.getStyle('transform-origin', true, true).setValue('50% 50%');\n }\n\n super.setContext(ctx);\n ctx.translate(this.getAttribute('x').getPixels('x'), this.getAttribute('y').getPixels('y'));\n\n if (viewBox) {\n width = viewBox[2];\n height = viewBox[3];\n }\n\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width: screen.viewPort.width,\n desiredWidth: width,\n height: screen.viewPort.height,\n desiredHeight: height,\n minX,\n minY,\n refX: refXAttr.getValue(),\n refY: refYAttr.getValue(),\n clip,\n clipX,\n clipY\n });\n\n if (viewBox) {\n screen.viewPort.removeCurrent();\n screen.viewPort.setCurrent(width, height);\n }\n }\n\n clearContext(ctx) {\n super.clearContext(ctx);\n this.document.screen.viewPort.removeCurrent();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var widthAttr = this.getAttribute('width', true);\n var heightAttr = this.getAttribute('height', true);\n var viewBoxAttr = this.getAttribute('viewBox');\n var styleAttr = this.getAttribute('style');\n var originWidth = widthAttr.getNumber(0);\n var originHeight = heightAttr.getNumber(0);\n\n if (preserveAspectRatio) {\n if (typeof preserveAspectRatio === 'string') {\n this.getAttribute('preserveAspectRatio', true).setValue(preserveAspectRatio);\n } else {\n var preserveAspectRatioAttr = this.getAttribute('preserveAspectRatio');\n\n if (preserveAspectRatioAttr.hasValue()) {\n preserveAspectRatioAttr.setValue(preserveAspectRatioAttr.getString().replace(/^\\s*(\\S.*\\S)\\s*$/, '$1'));\n }\n }\n }\n\n widthAttr.setValue(width);\n heightAttr.setValue(height);\n\n if (!viewBoxAttr.hasValue()) {\n viewBoxAttr.setValue(\"0 0 \".concat(originWidth || width, \" \").concat(originHeight || height));\n }\n\n if (styleAttr.hasValue()) {\n var widthStyle = this.getStyle('width');\n var heightStyle = this.getStyle('height');\n\n if (widthStyle.hasValue()) {\n widthStyle.setValue(\"\".concat(width, \"px\"));\n }\n\n if (heightStyle.hasValue()) {\n heightStyle.setValue(\"\".concat(height, \"px\"));\n }\n }\n }\n\n}\n\nclass RectElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'rect';\n }\n\n path(ctx) {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width', false, true).getPixels('x');\n var height = this.getStyle('height', false, true).getPixels('y');\n var rxAttr = this.getAttribute('rx');\n var ryAttr = this.getAttribute('ry');\n var rx = rxAttr.getPixels('x');\n var ry = ryAttr.getPixels('y');\n\n if (rxAttr.hasValue() && !ryAttr.hasValue()) {\n ry = rx;\n }\n\n if (ryAttr.hasValue() && !rxAttr.hasValue()) {\n rx = ry;\n }\n\n rx = Math.min(rx, width / 2.0);\n ry = Math.min(ry, height / 2.0);\n\n if (ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n ctx.beginPath(); // always start the path so we don't fill prior paths\n\n if (height > 0 && width > 0) {\n ctx.moveTo(x + rx, y);\n ctx.lineTo(x + width - rx, y);\n ctx.bezierCurveTo(x + width - rx + KAPPA * rx, y, x + width, y + ry - KAPPA * ry, x + width, y + ry);\n ctx.lineTo(x + width, y + height - ry);\n ctx.bezierCurveTo(x + width, y + height - ry + KAPPA * ry, x + width - rx + KAPPA * rx, y + height, x + width - rx, y + height);\n ctx.lineTo(x + rx, y + height);\n ctx.bezierCurveTo(x + rx - KAPPA * rx, y + height, x, y + height - ry + KAPPA * ry, x, y + height - ry);\n ctx.lineTo(x, y + ry);\n ctx.bezierCurveTo(x, y + ry - KAPPA * ry, x + rx - KAPPA * rx, y, x + rx, y);\n ctx.closePath();\n }\n }\n\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass CircleElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'circle';\n }\n\n path(ctx) {\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n var r = this.getAttribute('r').getPixels();\n\n if (ctx && r > 0) {\n ctx.beginPath();\n ctx.arc(cx, cy, r, 0, Math.PI * 2, false);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - r, cy - r, cx + r, cy + r);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass EllipseElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'ellipse';\n }\n\n path(ctx) {\n var KAPPA = 4 * ((Math.sqrt(2) - 1) / 3);\n var rx = this.getAttribute('rx').getPixels('x');\n var ry = this.getAttribute('ry').getPixels('y');\n var cx = this.getAttribute('cx').getPixels('x');\n var cy = this.getAttribute('cy').getPixels('y');\n\n if (ctx && rx > 0 && ry > 0) {\n ctx.beginPath();\n ctx.moveTo(cx + rx, cy);\n ctx.bezierCurveTo(cx + rx, cy + KAPPA * ry, cx + KAPPA * rx, cy + ry, cx, cy + ry);\n ctx.bezierCurveTo(cx - KAPPA * rx, cy + ry, cx - rx, cy + KAPPA * ry, cx - rx, cy);\n ctx.bezierCurveTo(cx - rx, cy - KAPPA * ry, cx - KAPPA * rx, cy - ry, cx, cy - ry);\n ctx.bezierCurveTo(cx + KAPPA * rx, cy - ry, cx + rx, cy - KAPPA * ry, cx + rx, cy);\n ctx.closePath();\n }\n\n return new BoundingBox(cx - rx, cy - ry, cx + rx, cy + ry);\n }\n\n getMarkers() {\n return null;\n }\n\n}\n\nclass LineElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'line';\n }\n\n getPoints() {\n return [new Point(this.getAttribute('x1').getPixels('x'), this.getAttribute('y1').getPixels('y')), new Point(this.getAttribute('x2').getPixels('x'), this.getAttribute('y2').getPixels('y'))];\n }\n\n path(ctx) {\n var [{\n x: x0,\n y: y0\n }, {\n x: x1,\n y: y1\n }] = this.getPoints();\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n ctx.lineTo(x1, y1);\n }\n\n return new BoundingBox(x0, y0, x1, y1);\n }\n\n getMarkers() {\n var [p0, p1] = this.getPoints();\n var a = p0.angleTo(p1);\n return [[p0, a], [p1, a]];\n }\n\n}\n\nclass PolylineElement extends PathElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'polyline';\n this.points = [];\n this.points = Point.parsePath(this.getAttribute('points').getString());\n }\n\n path(ctx) {\n var {\n points\n } = this;\n var [{\n x: x0,\n y: y0\n }] = points;\n var boundingBox = new BoundingBox(x0, y0);\n\n if (ctx) {\n ctx.beginPath();\n ctx.moveTo(x0, y0);\n }\n\n points.forEach(_ref => {\n var {\n x,\n y\n } = _ref;\n boundingBox.addPoint(x, y);\n\n if (ctx) {\n ctx.lineTo(x, y);\n }\n });\n return boundingBox;\n }\n\n getMarkers() {\n var {\n points\n } = this;\n var lastIndex = points.length - 1;\n var markers = [];\n points.forEach((point, i) => {\n if (i === lastIndex) {\n return;\n }\n\n markers.push([point, point.angleTo(points[i + 1])]);\n });\n\n if (markers.length > 0) {\n markers.push([points[points.length - 1], markers[markers.length - 1][1]]);\n }\n\n return markers;\n }\n\n}\n\nclass PolygonElement extends PolylineElement {\n constructor() {\n super(...arguments);\n this.type = 'polygon';\n }\n\n path(ctx) {\n var boundingBox = super.path(ctx);\n var [{\n x,\n y\n }] = this.points;\n\n if (ctx) {\n ctx.lineTo(x, y);\n ctx.closePath();\n }\n\n return boundingBox;\n }\n\n}\n\nclass PatternElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'pattern';\n }\n\n createPattern(ctx, _, parentOpacityProp) {\n var width = this.getStyle('width').getPixels('x', true);\n var height = this.getStyle('height').getPixels('y', true); // render me using a temporary svg element\n\n var patternSvg = new SVGElement(this.document, null);\n patternSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n patternSvg.attributes.width = new Property(this.document, 'width', \"\".concat(width, \"px\"));\n patternSvg.attributes.height = new Property(this.document, 'height', \"\".concat(height, \"px\"));\n patternSvg.attributes.transform = new Property(this.document, 'transform', this.getAttribute('patternTransform').getValue());\n patternSvg.children = this.children;\n var patternCanvas = this.document.createCanvas(width, height);\n var patternCtx = patternCanvas.getContext('2d');\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue() && yAttr.hasValue()) {\n patternCtx.translate(xAttr.getPixels('x', true), yAttr.getPixels('y', true));\n }\n\n if (parentOpacityProp.hasValue()) {\n this.styles['fill-opacity'] = parentOpacityProp;\n } else {\n Reflect.deleteProperty(this.styles, 'fill-opacity');\n } // render 3x3 grid so when we transform there's no white space on edges\n\n\n for (var x = -1; x <= 1; x++) {\n for (var y = -1; y <= 1; y++) {\n patternCtx.save();\n patternSvg.attributes.x = new Property(this.document, 'x', x * patternCanvas.width);\n patternSvg.attributes.y = new Property(this.document, 'y', y * patternCanvas.height);\n patternSvg.render(patternCtx);\n patternCtx.restore();\n }\n }\n\n var pattern = ctx.createPattern(patternCanvas, 'repeat');\n return pattern;\n }\n\n}\n\nclass MarkerElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'marker';\n }\n\n render(ctx, point, angle) {\n if (!point) {\n return;\n }\n\n var {\n x,\n y\n } = point;\n var orient = this.getAttribute('orient').getString('auto');\n var markerUnits = this.getAttribute('markerUnits').getString('strokeWidth');\n ctx.translate(x, y);\n\n if (orient === 'auto') {\n ctx.rotate(angle);\n }\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(ctx.lineWidth, ctx.lineWidth);\n }\n\n ctx.save(); // render me using a temporary svg element\n\n var markerSvg = new SVGElement(this.document, null);\n markerSvg.type = this.type;\n markerSvg.attributes.viewBox = new Property(this.document, 'viewBox', this.getAttribute('viewBox').getValue());\n markerSvg.attributes.refX = new Property(this.document, 'refX', this.getAttribute('refX').getValue());\n markerSvg.attributes.refY = new Property(this.document, 'refY', this.getAttribute('refY').getValue());\n markerSvg.attributes.width = new Property(this.document, 'width', this.getAttribute('markerWidth').getValue());\n markerSvg.attributes.height = new Property(this.document, 'height', this.getAttribute('markerHeight').getValue());\n markerSvg.attributes.overflow = new Property(this.document, 'overflow', this.getAttribute('overflow').getValue());\n markerSvg.attributes.fill = new Property(this.document, 'fill', this.getAttribute('fill').getColor('black'));\n markerSvg.attributes.stroke = new Property(this.document, 'stroke', this.getAttribute('stroke').getValue('none'));\n markerSvg.children = this.children;\n markerSvg.render(ctx);\n ctx.restore();\n\n if (markerUnits === 'strokeWidth') {\n ctx.scale(1 / ctx.lineWidth, 1 / ctx.lineWidth);\n }\n\n if (orient === 'auto') {\n ctx.rotate(-angle);\n }\n\n ctx.translate(-x, -y);\n }\n\n}\n\nclass DefsElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'defs';\n }\n\n render() {// NOOP\n }\n\n}\n\nclass GElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'g';\n }\n\n getBoundingBox(ctx) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n return boundingBox;\n }\n\n}\n\nclass GradientElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.attributesToInherit = ['gradientUnits'];\n this.stops = [];\n var {\n stops,\n children\n } = this;\n children.forEach(child => {\n if (child.type === 'stop') {\n stops.push(child);\n }\n });\n }\n\n getGradientUnits() {\n return this.getAttribute('gradientUnits').getString('objectBoundingBox');\n }\n\n createGradient(ctx, element, parentOpacityProp) {\n // eslint-disable-next-line @typescript-eslint/no-this-alias, consistent-this\n var stopsContainer = this;\n\n if (this.getHrefAttribute().hasValue()) {\n stopsContainer = this.getHrefAttribute().getDefinition();\n this.inheritStopContainer(stopsContainer);\n }\n\n var {\n stops\n } = stopsContainer;\n var gradient = this.getGradient(ctx, element);\n\n if (!gradient) {\n return this.addParentOpacity(parentOpacityProp, stops[stops.length - 1].color);\n }\n\n stops.forEach(stop => {\n gradient.addColorStop(stop.offset, this.addParentOpacity(parentOpacityProp, stop.color));\n });\n\n if (this.getAttribute('gradientTransform').hasValue()) {\n // render as transformed pattern on temporary canvas\n var {\n document\n } = this;\n var {\n MAX_VIRTUAL_PIXELS,\n viewPort\n } = document.screen;\n var [rootView] = viewPort.viewPorts;\n var rect = new RectElement(document, null);\n rect.attributes.x = new Property(document, 'x', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.y = new Property(document, 'y', -MAX_VIRTUAL_PIXELS / 3.0);\n rect.attributes.width = new Property(document, 'width', MAX_VIRTUAL_PIXELS);\n rect.attributes.height = new Property(document, 'height', MAX_VIRTUAL_PIXELS);\n var group = new GElement(document, null);\n group.attributes.transform = new Property(document, 'transform', this.getAttribute('gradientTransform').getValue());\n group.children = [rect];\n var patternSvg = new SVGElement(document, null);\n patternSvg.attributes.x = new Property(document, 'x', 0);\n patternSvg.attributes.y = new Property(document, 'y', 0);\n patternSvg.attributes.width = new Property(document, 'width', rootView.width);\n patternSvg.attributes.height = new Property(document, 'height', rootView.height);\n patternSvg.children = [group];\n var patternCanvas = document.createCanvas(rootView.width, rootView.height);\n var patternCtx = patternCanvas.getContext('2d');\n patternCtx.fillStyle = gradient;\n patternSvg.render(patternCtx);\n return patternCtx.createPattern(patternCanvas, 'no-repeat');\n }\n\n return gradient;\n }\n\n inheritStopContainer(stopsContainer) {\n this.attributesToInherit.forEach(attributeToInherit => {\n if (!this.getAttribute(attributeToInherit).hasValue() && stopsContainer.getAttribute(attributeToInherit).hasValue()) {\n this.getAttribute(attributeToInherit, true).setValue(stopsContainer.getAttribute(attributeToInherit).getValue());\n }\n });\n }\n\n addParentOpacity(parentOpacityProp, color) {\n if (parentOpacityProp.hasValue()) {\n var colorProp = new Property(this.document, 'color', color);\n return colorProp.addOpacity(parentOpacityProp).getColor();\n }\n\n return color;\n }\n\n}\n\nclass LinearGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'linearGradient';\n this.attributesToInherit.push('x1', 'y1', 'x2', 'y2');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = isBoundingBoxUnits ? element.getBoundingBox(ctx) : null;\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('x1').hasValue() && !this.getAttribute('y1').hasValue() && !this.getAttribute('x2').hasValue() && !this.getAttribute('y2').hasValue()) {\n this.getAttribute('x1', true).setValue(0);\n this.getAttribute('y1', true).setValue(0);\n this.getAttribute('x2', true).setValue(1);\n this.getAttribute('y2', true).setValue(0);\n }\n\n var x1 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x1').getNumber() : this.getAttribute('x1').getPixels('x');\n var y1 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y1').getNumber() : this.getAttribute('y1').getPixels('y');\n var x2 = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('x2').getNumber() : this.getAttribute('x2').getPixels('x');\n var y2 = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('y2').getNumber() : this.getAttribute('y2').getPixels('y');\n\n if (x1 === x2 && y1 === y2) {\n return null;\n }\n\n return ctx.createLinearGradient(x1, y1, x2, y2);\n }\n\n}\n\nclass RadialGradientElement extends GradientElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'radialGradient';\n this.attributesToInherit.push('cx', 'cy', 'r', 'fx', 'fy', 'fr');\n }\n\n getGradient(ctx, element) {\n var isBoundingBoxUnits = this.getGradientUnits() === 'objectBoundingBox';\n var boundingBox = element.getBoundingBox(ctx);\n\n if (isBoundingBoxUnits && !boundingBox) {\n return null;\n }\n\n if (!this.getAttribute('cx').hasValue()) {\n this.getAttribute('cx', true).setValue('50%');\n }\n\n if (!this.getAttribute('cy').hasValue()) {\n this.getAttribute('cy', true).setValue('50%');\n }\n\n if (!this.getAttribute('r').hasValue()) {\n this.getAttribute('r', true).setValue('50%');\n }\n\n var cx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('cx').getNumber() : this.getAttribute('cx').getPixels('x');\n var cy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('cy').getNumber() : this.getAttribute('cy').getPixels('y');\n var fx = cx;\n var fy = cy;\n\n if (this.getAttribute('fx').hasValue()) {\n fx = isBoundingBoxUnits ? boundingBox.x + boundingBox.width * this.getAttribute('fx').getNumber() : this.getAttribute('fx').getPixels('x');\n }\n\n if (this.getAttribute('fy').hasValue()) {\n fy = isBoundingBoxUnits ? boundingBox.y + boundingBox.height * this.getAttribute('fy').getNumber() : this.getAttribute('fy').getPixels('y');\n }\n\n var r = isBoundingBoxUnits ? (boundingBox.width + boundingBox.height) / 2.0 * this.getAttribute('r').getNumber() : this.getAttribute('r').getPixels();\n var fr = this.getAttribute('fr').getPixels();\n return ctx.createRadialGradient(fx, fy, fr, cx, cy, r);\n }\n\n}\n\nclass StopElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'stop';\n var offset = Math.max(0, Math.min(1, this.getAttribute('offset').getNumber()));\n var stopOpacity = this.getStyle('stop-opacity');\n var stopColor = this.getStyle('stop-color', true);\n\n if (stopColor.getString() === '') {\n stopColor.setValue('#000');\n }\n\n if (stopOpacity.hasValue()) {\n stopColor = stopColor.addOpacity(stopOpacity);\n }\n\n this.offset = offset;\n this.color = stopColor.getColor();\n }\n\n}\n\nclass AnimateElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'animate';\n this.duration = 0;\n this.initialValue = null;\n this.initialUnits = '';\n this.removed = false;\n this.frozen = false;\n document.screen.animations.push(this);\n this.begin = this.getAttribute('begin').getMilliseconds();\n this.maxDuration = this.begin + this.getAttribute('dur').getMilliseconds();\n this.from = this.getAttribute('from');\n this.to = this.getAttribute('to');\n this.values = new Property(document, 'values', null);\n var valuesAttr = this.getAttribute('values');\n\n if (valuesAttr.hasValue()) {\n this.values.setValue(valuesAttr.getString().split(';'));\n }\n }\n\n getProperty() {\n var attributeType = this.getAttribute('attributeType').getString();\n var attributeName = this.getAttribute('attributeName').getString();\n\n if (attributeType === 'CSS') {\n return this.parent.getStyle(attributeName, true);\n }\n\n return this.parent.getAttribute(attributeName, true);\n }\n\n calcValue() {\n var {\n initialUnits\n } = this;\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var newValue = from.getNumber() + (to.getNumber() - from.getNumber()) * progress;\n\n if (initialUnits === '%') {\n newValue *= 100.0; // numValue() returns 0-1 whereas properties are 0-100\n }\n\n return \"\".concat(newValue).concat(initialUnits);\n }\n\n update(delta) {\n var {\n parent\n } = this;\n var prop = this.getProperty(); // set initial value\n\n if (!this.initialValue) {\n this.initialValue = prop.getString();\n this.initialUnits = prop.getUnits();\n } // if we're past the end time\n\n\n if (this.duration > this.maxDuration) {\n var fill = this.getAttribute('fill').getString('remove'); // loop for indefinitely repeating animations\n\n if (this.getAttribute('repeatCount').getString() === 'indefinite' || this.getAttribute('repeatDur').getString() === 'indefinite') {\n this.duration = 0;\n } else if (fill === 'freeze' && !this.frozen) {\n this.frozen = true;\n parent.animationFrozen = true;\n parent.animationFrozenValue = prop.getString();\n } else if (fill === 'remove' && !this.removed) {\n this.removed = true;\n prop.setValue(parent.animationFrozen ? parent.animationFrozenValue : this.initialValue);\n return true;\n }\n\n return false;\n }\n\n this.duration += delta; // if we're past the begin time\n\n var updated = false;\n\n if (this.begin < this.duration) {\n var newValue = this.calcValue(); // tween\n\n var typeAttr = this.getAttribute('type');\n\n if (typeAttr.hasValue()) {\n // for transform, etc.\n var type = typeAttr.getString();\n newValue = \"\".concat(type, \"(\").concat(newValue, \")\");\n }\n\n prop.setValue(newValue);\n updated = true;\n }\n\n return updated;\n }\n\n getProgress() {\n var {\n document,\n values\n } = this;\n var result = {\n progress: (this.duration - this.begin) / (this.maxDuration - this.begin)\n };\n\n if (values.hasValue()) {\n var p = result.progress * (values.getValue().length - 1);\n var lb = Math.floor(p);\n var ub = Math.ceil(p);\n result.from = new Property(document, 'from', parseFloat(values.getValue()[lb]));\n result.to = new Property(document, 'to', parseFloat(values.getValue()[ub]));\n result.progress = (p - lb) / (ub - lb);\n } else {\n result.from = this.from;\n result.to = this.to;\n }\n\n return result;\n }\n\n}\n\nclass AnimateColorElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateColor';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress();\n var colorFrom = new RGBColor(from.getColor());\n var colorTo = new RGBColor(to.getColor());\n\n if (colorFrom.ok && colorTo.ok) {\n // tween color linearly\n var r = colorFrom.r + (colorTo.r - colorFrom.r) * progress;\n var g = colorFrom.g + (colorTo.g - colorFrom.g) * progress;\n var b = colorFrom.b + (colorTo.b - colorFrom.b) * progress; // ? alpha\n\n return \"rgb(\".concat(Math.floor(r), \", \").concat(Math.floor(g), \", \").concat(Math.floor(b), \")\");\n }\n\n return this.getAttribute('from').getColor();\n }\n\n}\n\nclass AnimateTransformElement extends AnimateElement {\n constructor() {\n super(...arguments);\n this.type = 'animateTransform';\n }\n\n calcValue() {\n var {\n progress,\n from,\n to\n } = this.getProgress(); // tween value linearly\n\n var transformFrom = toNumbers(from.getString());\n var transformTo = toNumbers(to.getString());\n var newValue = transformFrom.map((from, i) => {\n var to = transformTo[i];\n return from + (to - from) * progress;\n }).join(' ');\n return newValue;\n }\n\n}\n\nclass FontElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font';\n this.glyphs = Object.create(null);\n this.horizAdvX = this.getAttribute('horiz-adv-x').getNumber();\n var {\n definitions\n } = document;\n var {\n children\n } = this;\n\n for (var child of children) {\n switch (child.type) {\n case 'font-face':\n {\n this.fontFace = child;\n var fontFamilyStyle = child.getStyle('font-family');\n\n if (fontFamilyStyle.hasValue()) {\n definitions[fontFamilyStyle.getString()] = this;\n }\n\n break;\n }\n\n case 'missing-glyph':\n this.missingGlyph = child;\n break;\n\n case 'glyph':\n {\n var glyph = child;\n\n if (glyph.arabicForm) {\n this.isRTL = true;\n this.isArabic = true;\n\n if (typeof this.glyphs[glyph.unicode] === 'undefined') {\n this.glyphs[glyph.unicode] = Object.create(null);\n }\n\n this.glyphs[glyph.unicode][glyph.arabicForm] = glyph;\n } else {\n this.glyphs[glyph.unicode] = glyph;\n }\n\n break;\n }\n }\n }\n }\n\n render() {// NO RENDER\n }\n\n}\n\nclass FontFaceElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'font-face';\n this.ascent = this.getAttribute('ascent').getNumber();\n this.descent = this.getAttribute('descent').getNumber();\n this.unitsPerEm = this.getAttribute('units-per-em').getNumber();\n }\n\n}\n\nclass MissingGlyphElement extends PathElement {\n constructor() {\n super(...arguments);\n this.type = 'missing-glyph';\n this.horizAdvX = 0;\n }\n\n}\n\nclass TRefElement extends TextElement {\n constructor() {\n super(...arguments);\n this.type = 'tref';\n }\n\n getText() {\n var element = this.getHrefAttribute().getDefinition();\n\n if (element) {\n var firstChild = element.children[0];\n\n if (firstChild) {\n return firstChild.getText();\n }\n }\n\n return '';\n }\n\n}\n\nclass AElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'a';\n var {\n childNodes\n } = node;\n var firstChild = childNodes[0];\n var hasText = childNodes.length > 0 && Array.from(childNodes).every(node => node.nodeType === 3);\n this.hasText = hasText;\n this.text = hasText ? this.getTextFromNode(firstChild) : '';\n }\n\n getText() {\n return this.text;\n }\n\n renderChildren(ctx) {\n if (this.hasText) {\n // render as text element\n super.renderChildren(ctx);\n var {\n document,\n x,\n y\n } = this;\n var {\n mouse\n } = document.screen;\n var fontSize = new Property(document, 'fontSize', Font.parse(document.ctx.font).fontSize); // Do not calc bounding box if mouse is not working.\n\n if (mouse.isWorking()) {\n mouse.checkBoundingBox(this, new BoundingBox(x, y - fontSize.getPixels('y'), x + this.measureText(ctx), y));\n }\n } else if (this.children.length > 0) {\n // render as temporary group\n var g = new GElement(this.document, null);\n g.children = this.children;\n g.parent = this;\n g.render(ctx);\n }\n }\n\n onClick() {\n var {\n window\n } = this.document;\n\n if (window) {\n window.open(this.getHrefAttribute().getString());\n }\n }\n\n onMouseMove() {\n var ctx = this.document.ctx;\n ctx.canvas.style.cursor = 'pointer';\n }\n\n}\n\nfunction ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$2(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\nclass TextPathElement extends TextElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'textPath';\n this.textWidth = 0;\n this.textHeight = 0;\n this.pathLength = -1;\n this.glyphInfo = null;\n this.letterSpacingCache = [];\n this.measuresCache = new Map([['', 0]]);\n var pathElement = this.getHrefAttribute().getDefinition();\n this.text = this.getTextFromNode();\n this.dataArray = this.parsePathData(pathElement);\n }\n\n getText() {\n return this.text;\n }\n\n path(ctx) {\n var {\n dataArray\n } = this;\n\n if (ctx) {\n ctx.beginPath();\n }\n\n dataArray.forEach(_ref => {\n var {\n type,\n points\n } = _ref;\n\n switch (type) {\n case PathParser.LINE_TO:\n if (ctx) {\n ctx.lineTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.MOVE_TO:\n if (ctx) {\n ctx.moveTo(points[0], points[1]);\n }\n\n break;\n\n case PathParser.CURVE_TO:\n if (ctx) {\n ctx.bezierCurveTo(points[0], points[1], points[2], points[3], points[4], points[5]);\n }\n\n break;\n\n case PathParser.QUAD_TO:\n if (ctx) {\n ctx.quadraticCurveTo(points[0], points[1], points[2], points[3]);\n }\n\n break;\n\n case PathParser.ARC:\n {\n var [cx, cy, rx, ry, theta, dTheta, psi, fs] = points;\n var r = rx > ry ? rx : ry;\n var scaleX = rx > ry ? 1 : rx / ry;\n var scaleY = rx > ry ? ry / rx : 1;\n\n if (ctx) {\n ctx.translate(cx, cy);\n ctx.rotate(psi);\n ctx.scale(scaleX, scaleY);\n ctx.arc(0, 0, r, theta, theta + dTheta, Boolean(1 - fs));\n ctx.scale(1 / scaleX, 1 / scaleY);\n ctx.rotate(-psi);\n ctx.translate(-cx, -cy);\n }\n\n break;\n }\n\n case PathParser.CLOSE_PATH:\n if (ctx) {\n ctx.closePath();\n }\n\n break;\n }\n });\n }\n\n renderChildren(ctx) {\n this.setTextData(ctx);\n ctx.save();\n var textDecoration = this.parent.getStyle('text-decoration').getString();\n var fontSize = this.getFontSize();\n var {\n glyphInfo\n } = this;\n var fill = ctx.fillStyle;\n\n if (textDecoration === 'underline') {\n ctx.beginPath();\n }\n\n glyphInfo.forEach((glyph, i) => {\n var {\n p0,\n p1,\n rotation,\n text: partialText\n } = glyph;\n ctx.save();\n ctx.translate(p0.x, p0.y);\n ctx.rotate(rotation);\n\n if (ctx.fillStyle) {\n ctx.fillText(partialText, 0, 0);\n }\n\n if (ctx.strokeStyle) {\n ctx.strokeText(partialText, 0, 0);\n }\n\n ctx.restore();\n\n if (textDecoration === 'underline') {\n if (i === 0) {\n ctx.moveTo(p0.x, p0.y + fontSize / 8);\n }\n\n ctx.lineTo(p1.x, p1.y + fontSize / 5);\n } // // To assist with debugging visually, uncomment following\n //\n // ctx.beginPath();\n // if (i % 2)\n // \tctx.strokeStyle = 'red';\n // else\n // \tctx.strokeStyle = 'green';\n // ctx.moveTo(p0.x, p0.y);\n // ctx.lineTo(p1.x, p1.y);\n // ctx.stroke();\n // ctx.closePath();\n\n });\n\n if (textDecoration === 'underline') {\n ctx.lineWidth = fontSize / 20;\n ctx.strokeStyle = fill;\n ctx.stroke();\n ctx.closePath();\n }\n\n ctx.restore();\n }\n\n getLetterSpacingAt() {\n var idx = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return this.letterSpacingCache[idx] || 0;\n }\n\n findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, inputOffset, dy, c, charI) {\n var offset = inputOffset;\n var glyphWidth = this.measureText(ctx, c);\n\n if (c === ' ' && anchor === 'justify' && textFullWidth < fullPathWidth) {\n glyphWidth += (fullPathWidth - textFullWidth) / spacesNumber;\n }\n\n if (charI > -1) {\n offset += this.getLetterSpacingAt(charI);\n }\n\n var splineStep = this.textHeight / 20;\n var p0 = this.getEquidistantPointOnPath(offset, splineStep, 0);\n var p1 = this.getEquidistantPointOnPath(offset + glyphWidth, splineStep, 0);\n var segment = {\n p0,\n p1\n };\n var rotation = p0 && p1 ? Math.atan2(p1.y - p0.y, p1.x - p0.x) : 0;\n\n if (dy) {\n var dyX = Math.cos(Math.PI / 2 + rotation) * dy;\n var dyY = Math.cos(-rotation) * dy;\n segment.p0 = _objectSpread$2(_objectSpread$2({}, p0), {}, {\n x: p0.x + dyX,\n y: p0.y + dyY\n });\n segment.p1 = _objectSpread$2(_objectSpread$2({}, p1), {}, {\n x: p1.x + dyX,\n y: p1.y + dyY\n });\n }\n\n offset += glyphWidth;\n return {\n offset,\n segment,\n rotation\n };\n }\n\n measureText(ctx, text) {\n var {\n measuresCache\n } = this;\n var targetText = text || this.getText();\n\n if (measuresCache.has(targetText)) {\n return measuresCache.get(targetText);\n }\n\n var measure = this.measureTargetText(ctx, targetText);\n measuresCache.set(targetText, measure);\n return measure;\n } // This method supposes what all custom fonts already loaded.\n // If some font will be loaded after this method call, <textPath> will not be rendered correctly.\n // You need to call this method manually to update glyphs cache.\n\n\n setTextData(ctx) {\n if (this.glyphInfo) {\n return;\n }\n\n var renderText = this.getText();\n var chars = renderText.split('');\n var spacesNumber = renderText.split(' ').length - 1;\n var dx = this.parent.getAttribute('dx').split().map(_ => _.getPixels('x'));\n var dy = this.parent.getAttribute('dy').getPixels('y');\n var anchor = this.parent.getStyle('text-anchor').getString('start');\n var thisSpacing = this.getStyle('letter-spacing');\n var parentSpacing = this.parent.getStyle('letter-spacing');\n var letterSpacing = 0;\n\n if (!thisSpacing.hasValue() || thisSpacing.getValue() === 'inherit') {\n letterSpacing = parentSpacing.getPixels();\n } else if (thisSpacing.hasValue()) {\n if (thisSpacing.getValue() !== 'initial' && thisSpacing.getValue() !== 'unset') {\n letterSpacing = thisSpacing.getPixels();\n }\n } // fill letter-spacing cache\n\n\n var letterSpacingCache = [];\n var textLen = renderText.length;\n this.letterSpacingCache = letterSpacingCache;\n\n for (var i = 0; i < textLen; i++) {\n letterSpacingCache.push(typeof dx[i] !== 'undefined' ? dx[i] : letterSpacing);\n }\n\n var dxSum = letterSpacingCache.reduce((acc, cur, i) => i === 0 ? 0 : acc + cur || 0, 0);\n var textWidth = this.measureText(ctx);\n var textFullWidth = Math.max(textWidth + dxSum, 0);\n this.textWidth = textWidth;\n this.textHeight = this.getFontSize();\n this.glyphInfo = [];\n var fullPathWidth = this.getPathLength();\n var startOffset = this.getStyle('startOffset').getNumber(0) * fullPathWidth;\n var offset = 0;\n\n if (anchor === 'middle' || anchor === 'center') {\n offset = -textFullWidth / 2;\n }\n\n if (anchor === 'end' || anchor === 'right') {\n offset = -textFullWidth;\n }\n\n offset += startOffset;\n chars.forEach((char, i) => {\n // Find such segment what distance between p0 and p1 is approx. width of glyph\n var {\n offset: nextOffset,\n segment,\n rotation\n } = this.findSegmentToFitChar(ctx, anchor, textFullWidth, fullPathWidth, spacesNumber, offset, dy, char, i);\n offset = nextOffset;\n\n if (!segment.p0 || !segment.p1) {\n return;\n } // const width = this.getLineLength(\n // \tsegment.p0.x,\n // \tsegment.p0.y,\n // \tsegment.p1.x,\n // \tsegment.p1.y\n // );\n // Note: Since glyphs are rendered one at a time, any kerning pair data built into the font will not be used.\n // Can foresee having a rough pair table built in that the developer can override as needed.\n // Or use \"dx\" attribute of the <text> node as a naive replacement\n // const kern = 0;\n // placeholder for future implementation\n // const midpoint = this.getPointOnLine(\n // \tkern + width / 2.0,\n // \tsegment.p0.x, segment.p0.y, segment.p1.x, segment.p1.y\n // );\n\n\n this.glyphInfo.push({\n // transposeX: midpoint.x,\n // transposeY: midpoint.y,\n text: chars[i],\n p0: segment.p0,\n p1: segment.p1,\n rotation\n });\n });\n }\n\n parsePathData(path) {\n this.pathLength = -1; // reset path length\n\n if (!path) {\n return [];\n }\n\n var pathCommands = [];\n var {\n pathParser\n } = path;\n pathParser.reset(); // convert l, H, h, V, and v to L\n\n while (!pathParser.isEnd()) {\n var {\n current\n } = pathParser;\n var startX = current ? current.x : 0;\n var startY = current ? current.y : 0;\n var command = pathParser.next();\n var nextCommandType = command.type;\n var points = [];\n\n switch (command.type) {\n case PathParser.MOVE_TO:\n this.pathM(pathParser, points);\n break;\n\n case PathParser.LINE_TO:\n nextCommandType = this.pathL(pathParser, points);\n break;\n\n case PathParser.HORIZ_LINE_TO:\n nextCommandType = this.pathH(pathParser, points);\n break;\n\n case PathParser.VERT_LINE_TO:\n nextCommandType = this.pathV(pathParser, points);\n break;\n\n case PathParser.CURVE_TO:\n this.pathC(pathParser, points);\n break;\n\n case PathParser.SMOOTH_CURVE_TO:\n nextCommandType = this.pathS(pathParser, points);\n break;\n\n case PathParser.QUAD_TO:\n this.pathQ(pathParser, points);\n break;\n\n case PathParser.SMOOTH_QUAD_TO:\n nextCommandType = this.pathT(pathParser, points);\n break;\n\n case PathParser.ARC:\n points = this.pathA(pathParser);\n break;\n\n case PathParser.CLOSE_PATH:\n PathElement.pathZ(pathParser);\n break;\n }\n\n if (command.type !== PathParser.CLOSE_PATH) {\n pathCommands.push({\n type: nextCommandType,\n points,\n start: {\n x: startX,\n y: startY\n },\n pathLength: this.calcLength(startX, startY, nextCommandType, points)\n });\n } else {\n pathCommands.push({\n type: PathParser.CLOSE_PATH,\n points: [],\n pathLength: 0\n });\n }\n }\n\n return pathCommands;\n }\n\n pathM(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathM(pathParser).point;\n points.push(x, y);\n }\n\n pathL(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathL(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathH(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathH(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathV(pathParser, points) {\n var {\n x,\n y\n } = PathElement.pathV(pathParser).point;\n points.push(x, y);\n return PathParser.LINE_TO;\n }\n\n pathC(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathC(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathS(pathParser, points) {\n var {\n point,\n controlPoint,\n currentPoint\n } = PathElement.pathS(pathParser);\n points.push(point.x, point.y, controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.CURVE_TO;\n }\n\n pathQ(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathQ(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n }\n\n pathT(pathParser, points) {\n var {\n controlPoint,\n currentPoint\n } = PathElement.pathT(pathParser);\n points.push(controlPoint.x, controlPoint.y, currentPoint.x, currentPoint.y);\n return PathParser.QUAD_TO;\n }\n\n pathA(pathParser) {\n var {\n rX,\n rY,\n sweepFlag,\n xAxisRotation,\n centp,\n a1,\n ad\n } = PathElement.pathA(pathParser);\n\n if (sweepFlag === 0 && ad > 0) {\n ad -= 2 * Math.PI;\n }\n\n if (sweepFlag === 1 && ad < 0) {\n ad += 2 * Math.PI;\n }\n\n return [centp.x, centp.y, rX, rY, a1, ad, xAxisRotation, sweepFlag];\n }\n\n calcLength(x, y, commandType, points) {\n var len = 0;\n var p1 = null;\n var p2 = null;\n var t = 0;\n\n switch (commandType) {\n case PathParser.LINE_TO:\n return this.getLineLength(x, y, points[0], points[1]);\n\n case PathParser.CURVE_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnCubicBezier(0, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnCubicBezier(t, x, y, points[0], points[1], points[2], points[3], points[4], points[5]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.QUAD_TO:\n // Approximates by breaking curve into 100 line segments\n len = 0.0;\n p1 = this.getPointOnQuadraticBezier(0, x, y, points[0], points[1], points[2], points[3]);\n\n for (t = 0.01; t <= 1; t += 0.01) {\n p2 = this.getPointOnQuadraticBezier(t, x, y, points[0], points[1], points[2], points[3]);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n\n return len;\n\n case PathParser.ARC:\n {\n // Approximates by breaking curve into line segments\n len = 0.0;\n var start = points[4]; // 4 = theta\n\n var dTheta = points[5]; // 5 = dTheta\n\n var end = points[4] + dTheta;\n var inc = Math.PI / 180.0; // 1 degree resolution\n\n if (Math.abs(start - end) < inc) {\n inc = Math.abs(start - end);\n } // Note: for purpose of calculating arc length, not going to worry about rotating X-axis by angle psi\n\n\n p1 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], start, 0);\n\n if (dTheta < 0) {\n // clockwise\n for (t = start - inc; t > end; t -= inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n } else {\n // counter-clockwise\n for (t = start + inc; t < end; t += inc) {\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], t, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n p1 = p2;\n }\n }\n\n p2 = this.getPointOnEllipticalArc(points[0], points[1], points[2], points[3], end, 0);\n len += this.getLineLength(p1.x, p1.y, p2.x, p2.y);\n return len;\n }\n }\n\n return 0;\n }\n\n getPointOnLine(dist, p1x, p1y, p2x, p2y) {\n var fromX = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : p1x;\n var fromY = arguments.length > 6 && arguments[6] !== undefined ? arguments[6] : p1y;\n var m = (p2y - p1y) / (p2x - p1x + PSEUDO_ZERO);\n var run = Math.sqrt(dist * dist / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n var rise = m * run;\n var pt = null;\n\n if (p2x === p1x) {\n // vertical line\n pt = {\n x: fromX,\n y: fromY + rise\n };\n } else if ((fromY - p1y) / (fromX - p1x + PSEUDO_ZERO) === m) {\n pt = {\n x: fromX + run,\n y: fromY + rise\n };\n } else {\n var ix = 0;\n var iy = 0;\n var len = this.getLineLength(p1x, p1y, p2x, p2y);\n\n if (len < PSEUDO_ZERO) {\n return null;\n }\n\n var u = (fromX - p1x) * (p2x - p1x) + (fromY - p1y) * (p2y - p1y);\n u /= len * len;\n ix = p1x + u * (p2x - p1x);\n iy = p1y + u * (p2y - p1y);\n var pRise = this.getLineLength(fromX, fromY, ix, iy);\n var pRun = Math.sqrt(dist * dist - pRise * pRise);\n run = Math.sqrt(pRun * pRun / (1 + m * m));\n\n if (p2x < p1x) {\n run *= -1;\n }\n\n rise = m * run;\n pt = {\n x: ix + run,\n y: iy + rise\n };\n }\n\n return pt;\n }\n\n getPointOnPath(distance) {\n var fullLen = this.getPathLength();\n var cumulativePathLength = 0;\n var p = null;\n\n if (distance < -0.00005 || distance - 0.00005 > fullLen) {\n return null;\n }\n\n var {\n dataArray\n } = this;\n\n for (var command of dataArray) {\n if (command && (command.pathLength < 0.00005 || cumulativePathLength + command.pathLength + 0.00005 < distance)) {\n cumulativePathLength += command.pathLength;\n continue;\n }\n\n var delta = distance - cumulativePathLength;\n var currentT = 0;\n\n switch (command.type) {\n case PathParser.LINE_TO:\n p = this.getPointOnLine(delta, command.start.x, command.start.y, command.points[0], command.points[1], command.start.x, command.start.y);\n break;\n\n case PathParser.ARC:\n {\n var start = command.points[4]; // 4 = theta\n\n var dTheta = command.points[5]; // 5 = dTheta\n\n var end = command.points[4] + dTheta;\n currentT = start + delta / command.pathLength * dTheta;\n\n if (dTheta < 0 && currentT < end || dTheta >= 0 && currentT > end) {\n break;\n }\n\n p = this.getPointOnEllipticalArc(command.points[0], command.points[1], command.points[2], command.points[3], currentT, command.points[6]);\n break;\n }\n\n case PathParser.CURVE_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnCubicBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3], command.points[4], command.points[5]);\n break;\n\n case PathParser.QUAD_TO:\n currentT = delta / command.pathLength;\n\n if (currentT > 1) {\n currentT = 1;\n }\n\n p = this.getPointOnQuadraticBezier(currentT, command.start.x, command.start.y, command.points[0], command.points[1], command.points[2], command.points[3]);\n break;\n }\n\n if (p) {\n return p;\n }\n\n break;\n }\n\n return null;\n }\n\n getLineLength(x1, y1, x2, y2) {\n return Math.sqrt((x2 - x1) * (x2 - x1) + (y2 - y1) * (y2 - y1));\n }\n\n getPathLength() {\n if (this.pathLength === -1) {\n this.pathLength = this.dataArray.reduce((length, command) => command.pathLength > 0 ? length + command.pathLength : length, 0);\n }\n\n return this.pathLength;\n }\n\n getPointOnCubicBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y, p4x, p4y) {\n var x = p4x * CB1(pct) + p3x * CB2(pct) + p2x * CB3(pct) + p1x * CB4(pct);\n var y = p4y * CB1(pct) + p3y * CB2(pct) + p2y * CB3(pct) + p1y * CB4(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnQuadraticBezier(pct, p1x, p1y, p2x, p2y, p3x, p3y) {\n var x = p3x * QB1(pct) + p2x * QB2(pct) + p1x * QB3(pct);\n var y = p3y * QB1(pct) + p2y * QB2(pct) + p1y * QB3(pct);\n return {\n x,\n y\n };\n }\n\n getPointOnEllipticalArc(cx, cy, rx, ry, theta, psi) {\n var cosPsi = Math.cos(psi);\n var sinPsi = Math.sin(psi);\n var pt = {\n x: rx * Math.cos(theta),\n y: ry * Math.sin(theta)\n };\n return {\n x: cx + (pt.x * cosPsi - pt.y * sinPsi),\n y: cy + (pt.x * sinPsi + pt.y * cosPsi)\n };\n } // TODO need some optimisations. possibly build cache only for curved segments?\n\n\n buildEquidistantCache(inputStep, inputPrecision) {\n var fullLen = this.getPathLength();\n var precision = inputPrecision || 0.25; // accuracy vs performance\n\n var step = inputStep || fullLen / 100;\n\n if (!this.equidistantCache || this.equidistantCache.step !== step || this.equidistantCache.precision !== precision) {\n // Prepare cache\n this.equidistantCache = {\n step,\n precision,\n points: []\n }; // Calculate points\n\n var s = 0;\n\n for (var l = 0; l <= fullLen; l += precision) {\n var p0 = this.getPointOnPath(l);\n var p1 = this.getPointOnPath(l + precision);\n\n if (!p0 || !p1) {\n continue;\n }\n\n s += this.getLineLength(p0.x, p0.y, p1.x, p1.y);\n\n if (s >= step) {\n this.equidistantCache.points.push({\n x: p0.x,\n y: p0.y,\n distance: l\n });\n s -= step;\n }\n }\n }\n }\n\n getEquidistantPointOnPath(targetDistance, step, precision) {\n this.buildEquidistantCache(step, precision);\n\n if (targetDistance < 0 || targetDistance - this.getPathLength() > 0.00005) {\n return null;\n }\n\n var idx = Math.round(targetDistance / this.getPathLength() * (this.equidistantCache.points.length - 1));\n return this.equidistantCache.points[idx] || null;\n }\n\n}\n\nvar dataUriRegex = /^\\s*data:(([^/,;]+\\/[^/,;]+)(?:;([^,;=]+=[^,;=]+))?)?(?:;(base64))?,(.*)$/i;\nclass ImageElement extends RenderedElement {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'image';\n this.loaded = false;\n var href = this.getHrefAttribute().getString();\n\n if (!href) {\n return;\n }\n\n var isSvg = href.endsWith('.svg') || /^\\s*data:image\\/svg\\+xml/i.test(href);\n document.images.push(this);\n\n if (!isSvg) {\n void this.loadImage(href);\n } else {\n void this.loadSvg(href);\n }\n\n this.isSvg = isSvg;\n }\n\n loadImage(href) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var image = yield _this.document.createImage(href);\n _this.image = image;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n loadSvg(href) {\n var _this2 = this;\n\n return _asyncToGenerator(function* () {\n var match = dataUriRegex.exec(href);\n\n if (match) {\n var data = match[5];\n\n if (match[4] === 'base64') {\n _this2.image = atob(data);\n } else {\n _this2.image = decodeURIComponent(data);\n }\n } else {\n try {\n var response = yield _this2.document.fetch(href);\n var svg = yield response.text();\n _this2.image = svg;\n } catch (err) {\n console.error(\"Error while loading image \\\"\".concat(href, \"\\\":\"), err);\n }\n }\n\n _this2.loaded = true;\n })();\n }\n\n renderChildren(ctx) {\n var {\n document,\n image,\n loaded\n } = this;\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!loaded || !image || !width || !height) {\n return;\n }\n\n ctx.save();\n ctx.translate(x, y);\n\n if (this.isSvg) {\n var subDocument = document.canvg.forkString(ctx, this.image, {\n ignoreMouse: true,\n ignoreAnimation: true,\n ignoreDimensions: true,\n ignoreClear: true,\n offsetX: 0,\n offsetY: 0,\n scaleWidth: width,\n scaleHeight: height\n });\n subDocument.document.documentElement.parent = this;\n void subDocument.render();\n } else {\n var _image = this.image;\n document.setViewBox({\n ctx,\n aspectRatio: this.getAttribute('preserveAspectRatio').getString(),\n width,\n desiredWidth: _image.width,\n height,\n desiredHeight: _image.height\n });\n\n if (this.loaded) {\n if (typeof _image.complete === 'undefined' || _image.complete) {\n ctx.drawImage(_image, 0, 0);\n }\n }\n }\n\n ctx.restore();\n }\n\n getBoundingBox() {\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n return new BoundingBox(x, y, x + width, y + height);\n }\n\n}\n\nclass SymbolElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'symbol';\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass SVGFontLoader {\n constructor(document) {\n this.document = document;\n this.loaded = false;\n document.fonts.push(this);\n }\n\n load(fontFamily, url) {\n var _this = this;\n\n return _asyncToGenerator(function* () {\n try {\n var {\n document\n } = _this;\n var svgDocument = yield document.canvg.parser.load(url);\n var fonts = svgDocument.getElementsByTagName('font');\n Array.from(fonts).forEach(fontNode => {\n var font = document.createElement(fontNode);\n document.definitions[fontFamily] = font;\n });\n } catch (err) {\n console.error(\"Error while loading font \\\"\".concat(url, \"\\\":\"), err);\n }\n\n _this.loaded = true;\n })();\n }\n\n}\n\nclass StyleElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'style';\n var css = compressSpaces(Array.from(node.childNodes) // NEED TEST\n .map(_ => _.textContent).join('').replace(/(\\/\\*([^*]|[\\r\\n]|(\\*+([^*/]|[\\r\\n])))*\\*+\\/)|(^[\\s]*\\/\\/.*)/gm, '') // remove comments\n .replace(/@import.*;/g, '') // remove imports\n );\n var cssDefs = css.split('}');\n cssDefs.forEach(_ => {\n var def = _.trim();\n\n if (!def) {\n return;\n }\n\n var cssParts = def.split('{');\n var cssClasses = cssParts[0].split(',');\n var cssProps = cssParts[1].split(';');\n cssClasses.forEach(_ => {\n var cssClass = _.trim();\n\n if (!cssClass) {\n return;\n }\n\n var props = document.styles[cssClass] || {};\n cssProps.forEach(cssProp => {\n var prop = cssProp.indexOf(':');\n var name = cssProp.substr(0, prop).trim();\n var value = cssProp.substr(prop + 1, cssProp.length - prop).trim();\n\n if (name && value) {\n props[name] = new Property(document, name, value);\n }\n });\n document.styles[cssClass] = props;\n document.stylesSpecificity[cssClass] = getSelectorSpecificity(cssClass);\n\n if (cssClass === '@font-face') {\n // && !nodeEnv\n var fontFamily = props['font-family'].getString().replace(/\"|'/g, '');\n var srcs = props.src.getString().split(',');\n srcs.forEach(src => {\n if (src.indexOf('format(\"svg\")') > 0) {\n var url = parseExternalUrl(src);\n\n if (url) {\n void new SVGFontLoader(document).load(fontFamily, url);\n }\n }\n });\n }\n });\n });\n }\n\n}\nStyleElement.parseExternalUrl = parseExternalUrl;\n\nclass UseElement extends RenderedElement {\n constructor() {\n super(...arguments);\n this.type = 'use';\n }\n\n setContext(ctx) {\n super.setContext(ctx);\n var xAttr = this.getAttribute('x');\n var yAttr = this.getAttribute('y');\n\n if (xAttr.hasValue()) {\n ctx.translate(xAttr.getPixels('x'), 0);\n }\n\n if (yAttr.hasValue()) {\n ctx.translate(0, yAttr.getPixels('y'));\n }\n }\n\n path(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n element.path(ctx);\n }\n }\n\n renderChildren(ctx) {\n var {\n document,\n element\n } = this;\n\n if (element) {\n var tempSvg = element;\n\n if (element.type === 'symbol') {\n // render me using a temporary svg element in symbol cases (http://www.w3.org/TR/SVG/struct.html#UseElement)\n tempSvg = new SVGElement(document, null);\n tempSvg.attributes.viewBox = new Property(document, 'viewBox', element.getAttribute('viewBox').getString());\n tempSvg.attributes.preserveAspectRatio = new Property(document, 'preserveAspectRatio', element.getAttribute('preserveAspectRatio').getString());\n tempSvg.attributes.overflow = new Property(document, 'overflow', element.getAttribute('overflow').getString());\n tempSvg.children = element.children; // element is still the parent of the children\n\n element.styles.opacity = new Property(document, 'opacity', this.calculateOpacity());\n }\n\n if (tempSvg.type === 'svg') {\n var widthStyle = this.getStyle('width', false, true);\n var heightStyle = this.getStyle('height', false, true); // if symbol or svg, inherit width/height from me\n\n if (widthStyle.hasValue()) {\n tempSvg.attributes.width = new Property(document, 'width', widthStyle.getString());\n }\n\n if (heightStyle.hasValue()) {\n tempSvg.attributes.height = new Property(document, 'height', heightStyle.getString());\n }\n }\n\n var oldParent = tempSvg.parent;\n tempSvg.parent = this;\n tempSvg.render(ctx);\n tempSvg.parent = oldParent;\n }\n }\n\n getBoundingBox(ctx) {\n var {\n element\n } = this;\n\n if (element) {\n return element.getBoundingBox(ctx);\n }\n\n return null;\n }\n\n elementTransform() {\n var {\n document,\n element\n } = this;\n return Transform.fromElement(document, element);\n }\n\n get element() {\n if (!this.cachedElement) {\n this.cachedElement = this.getHrefAttribute().getDefinition();\n }\n\n return this.cachedElement;\n }\n\n}\n\nfunction imGet(img, x, y, width, _height, rgba) {\n return img[y * width * 4 + x * 4 + rgba];\n}\n\nfunction imSet(img, x, y, width, _height, rgba, val) {\n img[y * width * 4 + x * 4 + rgba] = val;\n}\n\nfunction m(matrix, i, v) {\n var mi = matrix[i];\n return mi * v;\n}\n\nfunction c(a, m1, m2, m3) {\n return m1 + Math.cos(a) * m2 + Math.sin(a) * m3;\n}\n\nclass FeColorMatrixElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feColorMatrix';\n var matrix = toNumbers(this.getAttribute('values').getString());\n\n switch (this.getAttribute('type').getString('matrix')) {\n // http://www.w3.org/TR/SVG/filters.html#feColorMatrixElement\n case 'saturate':\n {\n var s = matrix[0];\n /* eslint-disable array-element-newline */\n\n matrix = [0.213 + 0.787 * s, 0.715 - 0.715 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 + 0.285 * s, 0.072 - 0.072 * s, 0, 0, 0.213 - 0.213 * s, 0.715 - 0.715 * s, 0.072 + 0.928 * s, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'hueRotate':\n {\n var a = matrix[0] * Math.PI / 180.0;\n /* eslint-disable array-element-newline */\n\n matrix = [c(a, 0.213, 0.787, -0.213), c(a, 0.715, -0.715, -0.715), c(a, 0.072, -0.072, 0.928), 0, 0, c(a, 0.213, -0.213, 0.143), c(a, 0.715, 0.285, 0.140), c(a, 0.072, -0.072, -0.283), 0, 0, c(a, 0.213, -0.213, -0.787), c(a, 0.715, -0.715, 0.715), c(a, 0.072, 0.928, 0.072), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n case 'luminanceToAlpha':\n /* eslint-disable array-element-newline */\n matrix = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0.2125, 0.7154, 0.0721, 0, 0, 0, 0, 0, 0, 1];\n /* eslint-enable array-element-newline */\n\n break;\n }\n\n this.matrix = matrix;\n this.includeOpacity = this.getAttribute('includeOpacity').hasValue();\n }\n\n apply(ctx, _x, _y, width, height) {\n // assuming x==0 && y==0 for now\n var {\n includeOpacity,\n matrix\n } = this;\n var srcData = ctx.getImageData(0, 0, width, height);\n\n for (var y = 0; y < height; y++) {\n for (var x = 0; x < width; x++) {\n var r = imGet(srcData.data, x, y, width, height, 0);\n var g = imGet(srcData.data, x, y, width, height, 1);\n var b = imGet(srcData.data, x, y, width, height, 2);\n var a = imGet(srcData.data, x, y, width, height, 3);\n var nr = m(matrix, 0, r) + m(matrix, 1, g) + m(matrix, 2, b) + m(matrix, 3, a) + m(matrix, 4, 1);\n var ng = m(matrix, 5, r) + m(matrix, 6, g) + m(matrix, 7, b) + m(matrix, 8, a) + m(matrix, 9, 1);\n var nb = m(matrix, 10, r) + m(matrix, 11, g) + m(matrix, 12, b) + m(matrix, 13, a) + m(matrix, 14, 1);\n var na = m(matrix, 15, r) + m(matrix, 16, g) + m(matrix, 17, b) + m(matrix, 18, a) + m(matrix, 19, 1);\n\n if (includeOpacity) {\n nr = 0;\n ng = 0;\n nb = 0;\n na *= a / 255;\n }\n\n imSet(srcData.data, x, y, width, height, 0, nr);\n imSet(srcData.data, x, y, width, height, 1, ng);\n imSet(srcData.data, x, y, width, height, 2, nb);\n imSet(srcData.data, x, y, width, height, 3, na);\n }\n }\n\n ctx.clearRect(0, 0, width, height);\n ctx.putImageData(srcData, 0, 0);\n }\n\n}\n\nclass MaskElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'mask';\n }\n\n apply(ctx, element) {\n var {\n document\n } = this; // render as temp svg\n\n var x = this.getAttribute('x').getPixels('x');\n var y = this.getAttribute('y').getPixels('y');\n var width = this.getStyle('width').getPixels('x');\n var height = this.getStyle('height').getPixels('y');\n\n if (!width && !height) {\n var boundingBox = new BoundingBox();\n this.children.forEach(child => {\n boundingBox.addBoundingBox(child.getBoundingBox(ctx));\n });\n x = Math.floor(boundingBox.x1);\n y = Math.floor(boundingBox.y1);\n width = Math.floor(boundingBox.width);\n height = Math.floor(boundingBox.height);\n }\n\n var ignoredStyles = this.removeStyles(element, MaskElement.ignoreStyles);\n var maskCanvas = document.createCanvas(x + width, y + height);\n var maskCtx = maskCanvas.getContext('2d');\n document.screen.setDefaults(maskCtx);\n this.renderChildren(maskCtx); // convert mask to alpha with a fake node\n // TODO: refactor out apply from feColorMatrix\n\n new FeColorMatrixElement(document, {\n nodeType: 1,\n childNodes: [],\n attributes: [{\n nodeName: 'type',\n value: 'luminanceToAlpha'\n }, {\n nodeName: 'includeOpacity',\n value: 'true'\n }]\n }).apply(maskCtx, 0, 0, x + width, y + height);\n var tmpCanvas = document.createCanvas(x + width, y + height);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n element.render(tmpCtx);\n tmpCtx.globalCompositeOperation = 'destination-in';\n tmpCtx.fillStyle = maskCtx.createPattern(maskCanvas, 'no-repeat');\n tmpCtx.fillRect(0, 0, x + width, y + height);\n ctx.fillStyle = tmpCtx.createPattern(tmpCanvas, 'no-repeat');\n ctx.fillRect(0, 0, x + width, y + height); // reassign mask\n\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nMaskElement.ignoreStyles = ['mask', 'transform', 'clip-path'];\n\nvar noop = () => {// NOOP\n};\n\nclass ClipPathElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'clipPath';\n }\n\n apply(ctx) {\n var {\n document\n } = this;\n var contextProto = Reflect.getPrototypeOf(ctx);\n var {\n beginPath,\n closePath\n } = ctx;\n\n if (contextProto) {\n contextProto.beginPath = noop;\n contextProto.closePath = noop;\n }\n\n Reflect.apply(beginPath, ctx, []);\n this.children.forEach(child => {\n if (typeof child.path === 'undefined') {\n return;\n }\n\n var transform = typeof child.elementTransform !== 'undefined' ? child.elementTransform() : null; // handle <use />\n\n if (!transform) {\n transform = Transform.fromElement(document, child);\n }\n\n if (transform) {\n transform.apply(ctx);\n }\n\n child.path(ctx);\n\n if (contextProto) {\n contextProto.closePath = closePath;\n }\n\n if (transform) {\n transform.unapply(ctx);\n }\n });\n Reflect.apply(closePath, ctx, []);\n ctx.clip();\n\n if (contextProto) {\n contextProto.beginPath = beginPath;\n contextProto.closePath = closePath;\n }\n }\n\n render(_) {// NO RENDER\n }\n\n}\n\nclass FilterElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'filter';\n }\n\n apply(ctx, element) {\n // render as temp svg\n var {\n document,\n children\n } = this;\n var boundingBox = element.getBoundingBox(ctx);\n\n if (!boundingBox) {\n return;\n }\n\n var px = 0;\n var py = 0;\n children.forEach(child => {\n var efd = child.extraFilterDistance || 0;\n px = Math.max(px, efd);\n py = Math.max(py, efd);\n });\n var width = Math.floor(boundingBox.width);\n var height = Math.floor(boundingBox.height);\n var tmpCanvasWidth = width + 2 * px;\n var tmpCanvasHeight = height + 2 * py;\n\n if (tmpCanvasWidth < 1 || tmpCanvasHeight < 1) {\n return;\n }\n\n var x = Math.floor(boundingBox.x);\n var y = Math.floor(boundingBox.y);\n var ignoredStyles = this.removeStyles(element, FilterElement.ignoreStyles);\n var tmpCanvas = document.createCanvas(tmpCanvasWidth, tmpCanvasHeight);\n var tmpCtx = tmpCanvas.getContext('2d');\n document.screen.setDefaults(tmpCtx);\n tmpCtx.translate(-x + px, -y + py);\n element.render(tmpCtx); // apply filters\n\n children.forEach(child => {\n if (typeof child.apply === 'function') {\n child.apply(tmpCtx, 0, 0, tmpCanvasWidth, tmpCanvasHeight);\n }\n }); // render on me\n\n ctx.drawImage(tmpCanvas, 0, 0, tmpCanvasWidth, tmpCanvasHeight, x - px, y - py, tmpCanvasWidth, tmpCanvasHeight);\n this.restoreStyles(element, ignoredStyles);\n }\n\n render(_) {// NO RENDER\n }\n\n}\nFilterElement.ignoreStyles = ['filter', 'transform', 'clip-path'];\n\nclass FeDropShadowElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feDropShadow';\n this.addStylesFromStyleDefinition();\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeMorphologyElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feMorphology';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeCompositeElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'feComposite';\n }\n\n apply(_, _x, _y, _width, _height) {// TODO: implement\n }\n\n}\n\nclass FeGaussianBlurElement extends Element {\n constructor(document, node, captureTextNodes) {\n super(document, node, captureTextNodes);\n this.type = 'feGaussianBlur';\n this.blurRadius = Math.floor(this.getAttribute('stdDeviation').getNumber());\n this.extraFilterDistance = this.blurRadius;\n }\n\n apply(ctx, x, y, width, height) {\n var {\n document,\n blurRadius\n } = this;\n var body = document.window ? document.window.document.body : null;\n var canvas = ctx.canvas; // StackBlur requires canvas be on document\n\n canvas.id = document.getUniqueId();\n\n if (body) {\n canvas.style.display = 'none';\n body.appendChild(canvas);\n }\n\n canvasRGBA(canvas, x, y, width, height, blurRadius);\n\n if (body) {\n body.removeChild(canvas);\n }\n }\n\n}\n\nclass TitleElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'title';\n }\n\n}\n\nclass DescElement extends Element {\n constructor() {\n super(...arguments);\n this.type = 'desc';\n }\n\n}\n\nvar elements = {\n 'svg': SVGElement,\n 'rect': RectElement,\n 'circle': CircleElement,\n 'ellipse': EllipseElement,\n 'line': LineElement,\n 'polyline': PolylineElement,\n 'polygon': PolygonElement,\n 'path': PathElement,\n 'pattern': PatternElement,\n 'marker': MarkerElement,\n 'defs': DefsElement,\n 'linearGradient': LinearGradientElement,\n 'radialGradient': RadialGradientElement,\n 'stop': StopElement,\n 'animate': AnimateElement,\n 'animateColor': AnimateColorElement,\n 'animateTransform': AnimateTransformElement,\n 'font': FontElement,\n 'font-face': FontFaceElement,\n 'missing-glyph': MissingGlyphElement,\n 'glyph': GlyphElement,\n 'text': TextElement,\n 'tspan': TSpanElement,\n 'tref': TRefElement,\n 'a': AElement,\n 'textPath': TextPathElement,\n 'image': ImageElement,\n 'g': GElement,\n 'symbol': SymbolElement,\n 'style': StyleElement,\n 'use': UseElement,\n 'mask': MaskElement,\n 'clipPath': ClipPathElement,\n 'filter': FilterElement,\n 'feDropShadow': FeDropShadowElement,\n 'feMorphology': FeMorphologyElement,\n 'feComposite': FeCompositeElement,\n 'feColorMatrix': FeColorMatrixElement,\n 'feGaussianBlur': FeGaussianBlurElement,\n 'title': TitleElement,\n 'desc': DescElement\n};\n\nfunction ownKeys$1(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread$1(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys$1(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys$1(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction createCanvas(width, height) {\n var canvas = document.createElement('canvas');\n canvas.width = width;\n canvas.height = height;\n return canvas;\n}\n\nfunction createImage(_x) {\n return _createImage.apply(this, arguments);\n}\n\nfunction _createImage() {\n _createImage = _asyncToGenerator(function* (src) {\n var anonymousCrossOrigin = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var image = document.createElement('img');\n\n if (anonymousCrossOrigin) {\n image.crossOrigin = 'Anonymous';\n }\n\n return new Promise((resolve, reject) => {\n image.onload = () => {\n resolve(image);\n };\n\n image.onerror = (_event, _source, _lineno, _colno, error) => {\n reject(error);\n };\n\n image.src = src;\n });\n });\n return _createImage.apply(this, arguments);\n}\n\nclass Document {\n constructor(canvg) {\n var {\n rootEmSize = 12,\n emSize = 12,\n createCanvas = Document.createCanvas,\n createImage = Document.createImage,\n anonymousCrossOrigin\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.canvg = canvg;\n this.definitions = Object.create(null);\n this.styles = Object.create(null);\n this.stylesSpecificity = Object.create(null);\n this.images = [];\n this.fonts = [];\n this.emSizeStack = [];\n this.uniqueId = 0;\n this.screen = canvg.screen;\n this.rootEmSize = rootEmSize;\n this.emSize = emSize;\n this.createCanvas = createCanvas;\n this.createImage = this.bindCreateImage(createImage, anonymousCrossOrigin);\n this.screen.wait(this.isImagesLoaded.bind(this));\n this.screen.wait(this.isFontsLoaded.bind(this));\n }\n\n bindCreateImage(createImage, anonymousCrossOrigin) {\n if (typeof anonymousCrossOrigin === 'boolean') {\n return (source, forceAnonymousCrossOrigin) => createImage(source, typeof forceAnonymousCrossOrigin === 'boolean' ? forceAnonymousCrossOrigin : anonymousCrossOrigin);\n }\n\n return createImage;\n }\n\n get window() {\n return this.screen.window;\n }\n\n get fetch() {\n return this.screen.fetch;\n }\n\n get ctx() {\n return this.screen.ctx;\n }\n\n get emSize() {\n var {\n emSizeStack\n } = this;\n return emSizeStack[emSizeStack.length - 1];\n }\n\n set emSize(value) {\n var {\n emSizeStack\n } = this;\n emSizeStack.push(value);\n }\n\n popEmSize() {\n var {\n emSizeStack\n } = this;\n emSizeStack.pop();\n }\n\n getUniqueId() {\n return \"canvg\".concat(++this.uniqueId);\n }\n\n isImagesLoaded() {\n return this.images.every(_ => _.loaded);\n }\n\n isFontsLoaded() {\n return this.fonts.every(_ => _.loaded);\n }\n\n createDocumentElement(document) {\n var documentElement = this.createElement(document.documentElement);\n documentElement.root = true;\n documentElement.addStylesFromStyleDefinition();\n this.documentElement = documentElement;\n return documentElement;\n }\n\n createElement(node) {\n var elementType = node.nodeName.replace(/^[^:]+:/, '');\n var ElementType = Document.elementTypes[elementType];\n\n if (typeof ElementType !== 'undefined') {\n return new ElementType(this, node);\n }\n\n return new UnknownElement(this, node);\n }\n\n createTextNode(node) {\n return new TextNode(this, node);\n }\n\n setViewBox(config) {\n this.screen.setViewBox(_objectSpread$1({\n document: this\n }, config));\n }\n\n}\nDocument.createCanvas = createCanvas;\nDocument.createImage = createImage;\nDocument.elementTypes = elements;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n/**\r\n * SVG renderer on canvas.\r\n */\n\nclass Canvg {\n /**\r\n * Main constructor.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG Document.\r\n * @param options - Rendering options.\r\n */\n constructor(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.parser = new Parser(options);\n this.screen = new Screen(ctx, options);\n this.options = options;\n var document = new Document(this, options);\n var documentElement = document.createDocumentElement(svg);\n this.document = document;\n this.documentElement = documentElement;\n }\n /**\r\n * Create Canvg instance from SVG source string or URL.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static from(ctx, svg) {\n var _arguments = arguments;\n return _asyncToGenerator(function* () {\n var options = _arguments.length > 2 && _arguments[2] !== undefined ? _arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = yield parser.parse(svg);\n return new Canvg(ctx, svgDocument, options);\n })();\n }\n /**\r\n * Create Canvg instance from SVG source string.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n static fromString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var parser = new Parser(options);\n var svgDocument = parser.parseFromString(svg);\n return new Canvg(ctx, svgDocument, options);\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string or URL.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n fork(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.from(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Create new Canvg instance with inherited options.\r\n * @param ctx - Rendering context.\r\n * @param svg - SVG source string.\r\n * @param options - Rendering options.\r\n * @returns Canvg instance.\r\n */\n\n\n forkString(ctx, svg) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return Canvg.fromString(ctx, svg, _objectSpread(_objectSpread({}, this.options), options));\n }\n /**\r\n * Document is ready promise.\r\n * @returns Ready promise.\r\n */\n\n\n ready() {\n return this.screen.ready();\n }\n /**\r\n * Document is ready value.\r\n * @returns Is ready or not.\r\n */\n\n\n isReady() {\n return this.screen.isReady();\n }\n /**\r\n * Render only first frame, ignoring animations and mouse.\r\n * @param options - Rendering options.\r\n */\n\n\n render() {\n var _arguments2 = arguments,\n _this = this;\n\n return _asyncToGenerator(function* () {\n var options = _arguments2.length > 0 && _arguments2[0] !== undefined ? _arguments2[0] : {};\n\n _this.start(_objectSpread({\n enableRedraw: true,\n ignoreAnimation: true,\n ignoreMouse: true\n }, options));\n\n yield _this.ready();\n\n _this.stop();\n })();\n }\n /**\r\n * Start rendering.\r\n * @param options - Render options.\r\n */\n\n\n start() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var {\n documentElement,\n screen,\n options: baseOptions\n } = this;\n screen.start(documentElement, _objectSpread(_objectSpread({\n enableRedraw: true\n }, baseOptions), options));\n }\n /**\r\n * Stop rendering.\r\n */\n\n\n stop() {\n this.screen.stop();\n }\n /**\r\n * Resize SVG to fit in given size.\r\n * @param width\r\n * @param height\r\n * @param preserveAspectRatio\r\n */\n\n\n resize(width) {\n var height = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : width;\n var preserveAspectRatio = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n this.documentElement.resize(width, height, preserveAspectRatio);\n }\n\n}\n\nexport { AElement, AnimateColorElement, AnimateElement, AnimateTransformElement, BoundingBox, CB1, CB2, CB3, CB4, Canvg, CircleElement, ClipPathElement, DefsElement, DescElement, Document, Element, EllipseElement, FeColorMatrixElement, FeCompositeElement, FeDropShadowElement, FeGaussianBlurElement, FeMorphologyElement, FilterElement, Font, FontElement, FontFaceElement, GElement, GlyphElement, GradientElement, ImageElement, LineElement, LinearGradientElement, MarkerElement, MaskElement, Matrix, MissingGlyphElement, Mouse, PSEUDO_ZERO, Parser, PathElement, PathParser, PatternElement, Point, PolygonElement, PolylineElement, Property, QB1, QB2, QB3, RadialGradientElement, RectElement, RenderedElement, Rotate, SVGElement, SVGFontLoader, Scale, Screen, Skew, SkewX, SkewY, StopElement, StyleElement, SymbolElement, TRefElement, TSpanElement, TextElement, TextPathElement, TitleElement, Transform, Translate, UnknownElement, UseElement, ViewPort, compressSpaces, Canvg as default, getSelectorSpecificity, normalizeAttributeName, normalizeColor, parseExternalUrl, index as presets, toNumbers, trimLeft, trimRight, vectorMagnitude, vectorsAngle, vectorsRatio };\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZXMuanMiLCJzb3VyY2VzIjpbXSwic291cmNlc0NvbnRlbnQiOltdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzsifQ==\n"],"names":["index","Object","freeze","__proto__","offscreen","DOMParser","DOMParserFallback","arguments","length","undefined","preset","window","ignoreAnimation","ignoreMouse","createCanvas","width","height","OffscreenCanvas","createImage","url","_asyncToGenerator","response","fetch","blob","createImageBitmap","Reflect","deleteProperty","node","_ref","canvas","loadImage","compressSpaces","str","replace","trimLeft","trimRight","toNumbers","match","map","parseFloat","allUppercase","normalizeAttributeName","name","test","toLowerCase","parseExternalUrl","urlMatch","exec","normalizeColor","color","startsWith","rgbParts","num","isFloat","String","Math","round","attributeRegex","idRegex","classRegex","pseudoElementRegex","pseudoClassWithBracketsRegex","pseudoClassRegex","elementRegex","findSelectorMatch","selector","regex","matches","getSelectorSpecificity","specificity","currentSelector","delta","join","PSEUDO_ZERO","vectorMagnitude","v","sqrt","pow","vectorsRatio","u","vectorsAngle","acos","CB1","t","CB2","CB3","CB4","QB1","QB2","QB3","Property","constructor","document","value","this","isNormalizedColor","empty","split","separator","getString","trim","hasValue","zeroIsValue","isString","regexp","result","isUrlDefinition","isPixels","asString","endsWith","setValue","getValue","def","getNumber","n","getColor","getDpi","getRem","rootEmSize","getEm","emSize","getUnits","getPixels","axisOrIsFontSize","processPercent","axis","isFontSize","viewPort","screen","min","computeSize","max","getMilliseconds","getRadians","PI","getDefinition","definitions","getFillStyleDefinition","element","opacity","createGradient","ctx","createPattern","getHrefAttribute","patternTransform","getAttribute","getTextBaseline","textBaselineMapping","addOpacity","len","commas","i","RGBColor","ok","alpha","toRGBA","baseline","middle","central","ideographic","alphabetic","hanging","mathematical","ViewPort","viewPorts","clear","setCurrent","push","removeCurrent","pop","getCurrent","d","Point","x","y","parse","point","defaultValue","parseScale","scale","parsePath","path","points","pathPoints","angleTo","atan2","applyTransform","transform","xp","yp","Mouse","working","events","eventElements","onClick","bind","onMouseMove","isWorking","start","onclick","onmousemove","stop","hasEvents","runEvents","style","cursor","forEach","run","parent","checkPath","_ref2","isPointInPath","checkBoundingBox","boundingBox","_ref3","isPointInBox","mapXY","offsetLeft","offsetTop","offsetParent","scrollX","scrollY","event","clientX","clientY","type","eventTarget","defaultWindow","defaultFetch$1","Screen","FRAMERATE","MAX_VIRTUAL_PIXELS","CLIENT_WIDTH","CLIENT_HEIGHT","mouse","animations","waits","frameDuration","isReadyLock","isFirstRender","intervalId","wait","checker","ready","readyPromise","Promise","resolve","isReady","every","_","resolveReady","setDefaults","strokeStyle","lineCap","lineJoin","miterLimit","setViewBox","aspectRatio","desiredWidth","desiredHeight","minX","minY","refX","refY","clip","clipX","clipY","cleanAspectRatio","aspectRatioAlign","aspectRatioMeetOrSlice","align","meetOrSlice","scaleX","scaleY","scaleMin","scaleMax","finalDesiredWidth","finalDesiredHeight","refXProp","refYProp","hasRefs","translate","scaledClipX","scaledClipY","beginPath","moveTo","lineTo","closePath","isMeetMinY","isSliceMaxY","isMeetMinX","isSliceMaxX","enableRedraw","ignoreDimensions","ignoreClear","forceRedraw","scaleWidth","scaleHeight","offsetX","offsetY","render","now","Date","then","tick","shouldUpdate","requestAnimationFrame","cancel","reduce","animation","update","widthStyle","getStyle","heightStyle","concat","cWidth","clientWidth","cHeight","clientHeight","viewBox","xRatio","yRatio","_widthStyle","isNaN","_heightStyle","transformStyle","clearRect","defaultFetch","DefaultDOMParser","Parser","resource","_this","parseFromString","load","xml","parser","checkDocument","err","parserError","getElementsByTagName","Error","textContent","_this2","text","Translate","apply","unapply","applyToPoint","Rotate","rotate","transformOrigin","angle","originX","originY","cx","cy","numbers","tx","ty","rad","cos","sin","Scale","scaleSize","Matrix","matrix","a","b","c","e","f","det","Skew","skew","super","SkewX","tan","SkewY","Transform","transforms","data","parseTransforms","parseTransform","TransformType","transformTypes","fromElement","transformOriginXProperty","transformOriginYProperty","skewX","skewY","Element","captureTextNodes","attributes","create","styles","stylesSpecificity","animationFrozen","animationFrozenValue","children","nodeType","Array","from","attribute","nodeName","addStylesFromStyleDefinition","id","childNodes","childNode","addChild","textNode","createTextNode","getText","createIfNotExists","attr","_attr","key","skipAncestors","parentStyle","_style","save","mask","applyEffects","filter","setContext","renderChildren","clearContext","restore","clipPathStyleProp","child","createElement","ignoreChildTypes","includes","matchesSelector","_node$getAttribute","styleClasses","call","some","styleClass","existingSpecificity","removeStyles","ignoreStyles","toRestore","styleProp","restoreStyles","isFirstChild","_this$parent","indexOf","UnknownElement","wrapFontFamily","fontFamily","trimmed","prepareFontStyle","fontStyle","targetFontStyle","prepareFontWeight","fontWeight","targetFontWeight","Font","fontVariant","fontSize","inherit","inheritFont","parts","set","part","variants","weights","toString","process","BoundingBox","x1","Number","NaN","y1","x2","y2","addPoint","addX","addY","addBoundingBox","sumCubic","p0","p1","p2","p3","bezierCurveAdd","forX","b2ac","t1","t2","addBezierCurve","p0x","p0y","p1x","p1y","p2x","p2y","p3x","p3y","addQuadraticCurve","cp1x","cp1y","cp2x","cp2y","PathParser","SVGPathData","control","current","command","commands","previousCommand","angles","reset","isEnd","next","getPoint","xProp","yProp","makeAbsolute","getAsControlPoint","getAsCurrentPoint","getReflectedControlPoint","CURVE_TO","SMOOTH_CURVE_TO","QUAD_TO","SMOOTH_QUAD_TO","ox","oy","relative","addMarker","priorTo","addMarkerAngle","getMarkerPoints","getMarkerAngles","j","RenderedElement","modifiedEmSizeStack","calculateOpacity","opacityStyle","fromMeasure","fillStyleProp","fillOpacityStyleProp","strokeStyleProp","strokeOpacityProp","fillStyle","_fillStyle","_fillStyle2","_strokeStyle","_strokeStyle2","strokeWidthStyleProp","newLineWidth","lineWidth","strokeLinecapStyleProp","strokeLinejoinStyleProp","strokeMiterlimitProp","strokeDasharrayStyleProp","strokeDashoffsetProp","gaps","setLineDash","webkitLineDash","mozDash","offset","lineDashOffset","webkitLineDashOffset","mozDashOffset","font","fontStyleProp","fontStyleStyleProp","fontVariantStyleProp","fontWeightStyleProp","fontSizeStyleProp","fontFamilyStyleProp","globalAlpha","popEmSize","PathElement","pathParser","MOVE_TO","pathM","LINE_TO","pathL","HORIZ_LINE_TO","pathH","VERT_LINE_TO","pathV","pathC","pathS","pathQ","pathT","ARC","pathA","CLOSE_PATH","pathZ","getBoundingBox","getMarkers","fillRuleStyleProp","fill","setTransform","stroke","markers","markersLastIndex","markerStartStyleProp","markerMidStyleProp","markerEndStyleProp","marker","_marker","_point","_angle","_marker2","_point2","_angle2","controlPoint","currentPoint","bezierCurveTo","quadraticCurveTo","rX","rY","xRot","lArcFlag","sweepFlag","xAxisRotation","currp","l","s","cpp","centp","a1","ad","dir","ah","halfWay","r","sx","sy","arc","Boolean","GlyphElement","horizAdvX","unicode","arabicForm","TextElement","measureCache","textBaseline","initializeCoordinates","leafTexts","textChunkStart","POSITIVE_INFINITY","maxX","NEGATIVE_INFINITY","getTElementBoundingBox","adjustChildCoordinatesRecursive","childBoundingBox","getChildBoundingBox","getFontSize","inheritFontSize","measureText","getGlyph","char","glyph","isArabic","prevChar","nextChar","glyphs","maybeGlyph","missingGlyph","getTextFromNode","parentNode","lastIndex","renderChild","renderTElementChildren","renderText","customFont","unitsPerEm","fontFace","ctxFont","isRTL","reverse","dx","lw","fillText","strokeText","applyAnchoring","firstElement","textAnchor","shift","adjustChildCoordinatesRecursiveCore","textParent","adjustChildCoordinates","xAttr","yAttr","dxAttr","dyAttr","getInheritedAttribute","measure","measureTargetText","targetText","_measure","parentAttr","TSpanElement","TextNode","SVGElement","root","_this$node$parentNode","getComputedStyle","getPropertyValue","fontSizeProp","refXAttr","refYAttr","viewBoxAttr","resize","preserveAspectRatio","widthAttr","heightAttr","styleAttr","originWidth","originHeight","preserveAspectRatioAttr","RectElement","rxAttr","ryAttr","rx","ry","KAPPA","CircleElement","EllipseElement","LineElement","getPoints","x0","y0","PolylineElement","PolygonElement","PatternElement","parentOpacityProp","patternSvg","patternCanvas","patternCtx","getContext","MarkerElement","orient","markerUnits","markerSvg","overflow","DefsElement","GElement","GradientElement","attributesToInherit","stops","getGradientUnits","stopsContainer","inheritStopContainer","gradient","getGradient","addParentOpacity","addColorStop","rootView","rect","group","attributeToInherit","LinearGradientElement","isBoundingBoxUnits","createLinearGradient","RadialGradientElement","fx","fy","fr","createRadialGradient","StopElement","stopOpacity","stopColor","AnimateElement","duration","initialValue","initialUnits","removed","frozen","begin","maxDuration","to","values","valuesAttr","getProperty","attributeType","attributeName","calcValue","progress","getProgress","newValue","prop","updated","typeAttr","p","lb","floor","ub","ceil","AnimateColorElement","colorFrom","colorTo","g","AnimateTransformElement","transformFrom","transformTo","FontElement","fontFamilyStyle","FontFaceElement","ascent","descent","MissingGlyphElement","TRefElement","firstChild","AElement","hasText","open","ownKeys$2","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","sym","getOwnPropertyDescriptor","enumerable","_objectSpread$2","target","source","_defineProperty","getOwnPropertyDescriptors","defineProperties","defineProperty","TextPathElement","textWidth","textHeight","pathLength","glyphInfo","letterSpacingCache","measuresCache","Map","pathElement","dataArray","parsePathData","theta","dTheta","psi","fs","setTextData","textDecoration","rotation","partialText","getLetterSpacingAt","idx","findSegmentToFitChar","anchor","textFullWidth","fullPathWidth","spacesNumber","inputOffset","dy","charI","glyphWidth","splineStep","getEquidistantPointOnPath","segment","dyX","dyY","has","get","chars","thisSpacing","parentSpacing","letterSpacing","textLen","dxSum","acc","cur","getPathLength","startOffset","nextOffset","pathCommands","startX","startY","nextCommandType","calcLength","commandType","getLineLength","getPointOnCubicBezier","getPointOnQuadraticBezier","end","inc","abs","getPointOnEllipticalArc","getPointOnLine","dist","fromX","fromY","m","rise","pt","ix","iy","pRise","pRun","getPointOnPath","distance","fullLen","cumulativePathLength","currentT","pct","p4x","p4y","cosPsi","sinPsi","buildEquidistantCache","inputStep","inputPrecision","precision","step","equidistantCache","targetDistance","dataUriRegex","ImageElement","loaded","href","isSvg","images","loadSvg","image","console","error","atob","decodeURIComponent","svg","subDocument","canvg","forkString","documentElement","_image","complete","drawImage","SymbolElement","SVGFontLoader","fonts","fontNode","StyleElement","css","cssParts","cssClasses","cssProps","cssClass","props","cssProp","substr","src","UseElement","tempSvg","oldParent","elementTransform","cachedElement","imGet","img","_height","rgba","imSet","val","m1","m2","m3","FeColorMatrixElement","includeOpacity","_x","_y","srcData","getImageData","nr","ng","nb","na","putImageData","MaskElement","ignoredStyles","maskCanvas","maskCtx","tmpCanvas","tmpCtx","globalCompositeOperation","fillRect","noop","ClipPathElement","contextProto","getPrototypeOf","FilterElement","px","py","efd","extraFilterDistance","tmpCanvasWidth","tmpCanvasHeight","FeDropShadowElement","_width","FeMorphologyElement","FeCompositeElement","FeGaussianBlurElement","blurRadius","body","getUniqueId","display","appendChild","canvasRGBA","removeChild","TitleElement","DescElement","elements","circle","ellipse","line","polyline","polygon","pattern","defs","linearGradient","radialGradient","animate","animateColor","animateTransform","tspan","tref","textPath","symbol","use","clipPath","feDropShadow","feMorphology","feComposite","feColorMatrix","feGaussianBlur","title","desc","ownKeys$1","_createImage","anonymousCrossOrigin","crossOrigin","reject","onload","onerror","_event","_source","_lineno","_colno","Document","emSizeStack","uniqueId","bindCreateImage","isImagesLoaded","isFontsLoaded","forceAnonymousCrossOrigin","createDocumentElement","elementType","ElementType","elementTypes","config","_objectSpread$1","ownKeys","_objectSpread","Canvg","options","_arguments","svgDocument","fromString","fork","_arguments2","baseOptions"],"mappings":"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"}
|