kundli-generator 2.0.3 → 2.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/kundli-generator.js +1836 -12027
- package/dist/kundli-generator.js.map +1 -1
- package/dist/kundli-generator.umd.cjs +9 -14
- package/dist/kundli-generator.umd.cjs.map +1 -1
- package/package.json +7 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kundli-generator.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/i18n/translations.ts","../src/i18n/I18nContext.tsx","../src/utils/storage.ts","../src/utils/localeStorage.ts","../src/components/KundliPage/KundliContext.tsx","../src/components/KundliForm/sections/FormHeader/FormHeader.tsx","../src/components/KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete.ts","../src/components/KundliForm/sections/UserInfoFormSection/UserInfoFormSection.tsx","../src/components/FooterShell/FooterShell.tsx","../src/components/FooterShell/FooterCTAButton.tsx","../src/components/KundliForm/sections/ProceedFooter/ProceedFooter.tsx","../src/components/KundliPage/sections/KundliHeader/KundliHeader.tsx","../src/components/KundliPage/sections/HeroSection/HeroSection.tsx","../src/components/KundliPage/sections/PremiumReportOverview/PremiumReportOverview.tsx","../src/components/KundliPage/sections/UniversityCertification/UniversityCertification.tsx","../src/components/KundliPage/sections/ThreeStepsProcess/ThreeStepsProcess.tsx","../__vite-browser-external","../node_modules/pdfjs-dist/build/pdf.js","../src/components/KundliPage/sections/ViewSampleReportButton/SampleReportModal.tsx","../src/components/KundliPage/sections/ViewSampleReportButton/ViewSampleReportButton.tsx","../src/components/KundliPage/sections/WhatYoullFindSection/WhatYoullFindSection.tsx","../src/components/KundliPage/sections/WhyUsSection/WhyUsSection.tsx","../src/components/KundliPage/sections/FeedbackSection/FeedbackSection.tsx","../src/components/KundliPage/sections/FAQSection/FAQSection.tsx","../src/components/KundliPage/sections/ContactUsSection/ContactUsSection.tsx","../src/components/KundliPage/sections/CTAFooter/CTAFooter.tsx","../src/components/KundliForm/KundliForm.tsx","../src/components/KundliPage/KundliPage.tsx","../src/analytics.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","export type SupportedLocale = \"en\" | \"hi\";\n\nexport const SUPPORTED_LOCALES: SupportedLocale[] = [\"en\", \"hi\"];\n\nexport const LOCALE_LABELS: Record<SupportedLocale, string> = {\n en: \"English\",\n hi: \"हिन्दी\",\n};\n\nexport const translations: Record<SupportedLocale, Record<string, string>> = {\n en: {\n kundli: \"Kundli\",\n birthChart: \"Birth Chart\",\n details: \"Details\",\n name: \"Name\",\n birthDate: \"Birth Date\",\n guest: \"Guest\",\n description:\n \"Your birth chart reveals planetary positions at the time of your birth and their influence on your life.\",\n lagna: \"Lagna\",\n rashi: \"Rashi\",\n nakshatra: \"Nakshatra\",\n // Premium Kundli landing\n language: \"Language\",\n sriMandir: \"Shubham Goyal (Director - Founder's Office)\",\n ratingText: \"4.9/5 on Google PlayStore\",\n heroTitle: \"Get Your Premium Personalised Kundli Report\",\n heroSubtitle:\n \"This premium personalised kundli report helps you find answers to major life issues.\",\n topicMarriage: \"Marriage\",\n topicRelationship: \"Relationship\",\n topicBusiness: \"Business\",\n topicHealth: \"Health\",\n topicCareer: \"Career\",\n topicEducation: \"Education\",\n topicMoney: \"Money\",\n premiumHeadline: \"200+ Pages Premium Personalised Kundli Report\",\n premiumHeadlinePill1: \"200+ Pages\",\n premiumHeadlinePlain1: \"Premium\",\n premiumHeadlinePlain2: \"Personalised\",\n premiumHeadlinePill2: \"Kundli Report\",\n premiumFeature1: \"Vedic Birth Chart\",\n premiumFeature2: \"Destiny Insights\",\n premiumFeature3: \"Major Life Issues\",\n premiumFeature4: \"Practical Remedies\",\n certifiedBy: \"Certified by BHU and VHU Astrologers\",\n yourThreeSteps: \"Your 3 steps\",\n threeStepsSubtitle: \"Premium Personalised Kundli report\",\n step1: \"Enter your information\",\n step2: \"Your horoscope will be created by experts\",\n step3Intro: \"You'll receive your Kundli on your Whatsapp\",\n step3Days: \"2 days\",\n viewSampleReport: \"View Sample Kundli Report\",\n sampleReportModalTitle: \"Sample Kundli Report\",\n whatYoullFindTitle: \"What will you find in your Kundli report?\",\n findDasha: \"Analysis of flaws and periods.\",\n findDashaDesc:\n \"Identify major flaws, period durations, and simple remedies.\",\n findYoga: \"All yoga reports.\",\n findYogaDesc:\n \"Discover the yogas in your horoscope that affect wealth, career, and relationships.\",\n findGemstone: \"Gemstone recommendations.\",\n findGemstoneDesc: \"Personalised gemstone guidance based on your horoscope.\",\n findPooja: \"Puja recommendations.\",\n findPoojaDesc:\n \"Suggestions for pujas and rituals to balance planetary influences.\",\n findMonthly: \"Monthly predictions (1 year).\",\n findMonthlyDesc: \"Month-by-month guidance for the coming year.\",\n findStrength: \"Strength graph.\",\n findStrengthDesc:\n \"Visual charts showing the strength and influence of the planets.\",\n whyUsTitle: \"Why us?\",\n whyUsSubtitle: \"Fill out the form to get started and unlock your fortune!\",\n whyUs1: \"30,00,000+ kundlis created\",\n whyUs2: \"1,000+ partnered Top Astrologers\",\n whyUs3: \"500+ temple partnerships you can trust\",\n whyUs4: \"Personalised section-wise life analysis\",\n feedbackTitle: \"Feedback from our users\",\n feedbackTrust: \"Trusted by over 5 million users worldwide\",\n feedbackRating: \"4.9\",\n feedbackTestimonial1:\n \"Detailed kundli report mila, life mein clarity mili.\",\n feedbackTestimonial2: \"Career aur marriage dono pe clear guidance mila.\",\n feedbackTestimonial3: \"Clear direction mila next steps ke liye.\",\n feedbackTestimonial4: \"Doubts kaafi had tak clear ho gaye report se.\",\n feedbackTestimonial5: \"Future planning ke liye useful insights mile.\",\n feedbackTestimonial6: \"Har important area cover kiya gaya properly.\",\n feedbackTestimonial7: \"Kaafi deep analysis hai, superficial nahi.\",\n feedbackTestimonial8: \"Kundli insights ne future decisions clear kiye.\",\n feedbackTestimonial9: \"Overall kundli report very helpful rahi.\",\n feedbackTestimonial10: \"Personalised report ne confidence badhaya.\",\n feedbackTestimonial11: \"Report accurate aur easy to understand thi.\",\n feedbackTestimonial12: \"Report expected se zyada detailed nikli.\",\n feedbackTestimonial13: \"Report padhke life patterns samajh aaye.\",\n feedbackTestimonial14: \"Simple language mein detailed analysis diya hai.\",\n feedbackTestimonial15: \"Timing aur dasha explanation helpful thi.\",\n feedbackAuthor1: \"Aarav\",\n feedbackAuthor2: \"Vivaan\",\n feedbackAuthor3: \"Arjun\",\n feedbackAuthor4: \"Kabir\",\n feedbackAuthor5: \"Rohan\",\n feedbackAuthor6: \"Ishaan\",\n feedbackAuthor7: \"Krish\",\n feedbackAuthor8: \"Rahul\",\n feedbackAuthor9: \"Ananya\",\n feedbackAuthor10: \"Aadhya\",\n feedbackAuthor11: \"Kavya\",\n feedbackAuthor12: \"Diya\",\n feedbackAuthor13: \"Meera\",\n feedbackAuthor14: \"Pooja\",\n feedbackAuthor15: \"Nisha\",\n feedbackAuthor1AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639271096.png\",\n feedbackAuthor2AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639330970.png\",\n feedbackAuthor3AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639345411.png\",\n feedbackAuthor4AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639358174.png\",\n feedbackAuthor5AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639369712.png\",\n feedbackAuthor6AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639381899.png\",\n feedbackAuthor7AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639442858.png\",\n feedbackAuthor8AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639454626.png\",\n feedbackAuthor9AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639254172.png\",\n feedbackAuthor10AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639293055.png\",\n feedbackAuthor11AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639306698.png\",\n feedbackAuthor12AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639319028.png\",\n feedbackAuthor13AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639402894.png\",\n feedbackAuthor14AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639416587.png\",\n feedbackAuthor15AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639427379.png\",\n readMoreReviews: \"Read More Reviews\",\n readLess: \"Read Less\",\n faqTitle: \"Frequently Asked Questions\",\n faqQ1: \"How will I receive my kundli?\",\n faqQ2: \"Is Premium personalised kundli available in any other language?\",\n faqQ3: \"What if I don't know my birth time?\",\n faqA1Global:\n \"You will receive your premium personalised kundli report on your shared email ID within 2 days.\",\n faqA1Domestic:\n \"You will receive your premium personalised kundli report on your shared WhatsApp number within 2 days.\",\n faqA2: \"Yes, we provide report in Hindi and English languages\",\n faqA3:\n \"Accurate birth time helps to create more accurate report. However we are still able to prepare 80% accurate report if you don't know your exact time of birth\",\n contactTitle: \"Contact Us\",\n contactWhatsApp: \"Whatsapp: 9845089752\",\n contactEmail: \"Email: shubham.goyal@appsforbharat.com\",\n ctaKundliCreated: \"2L+ Kundli Created.\",\n ctaCertified: \"BHU Certified Astrologer.\",\n ctaSecurePayment: \"Secure Payment.\",\n ctaButton: \"Get My Detailed Kundli in $300 $25\",\n ctaButtonStruck: \"$100\",\n ctaButtonBefore: \"Get My Detailed Kundli in \",\n ctaButtonAfter: \"$25\",\n\n // Kundli form (from incoming branch)\n back: \"Back\",\n info: \"Info\",\n formTitle: \"Enter your information\",\n formSubtitle:\n \"Fill out the form below to get started and unlock your fortune!\",\n formFullName: \"Enter your full name\",\n formFullNamePlaceholder: \"Full name\",\n formPhone: \"Enter your phone number\",\n formPhonePlaceholder: \"Phone number\",\n formEmail: \"Enter your email address\",\n formEmailHelp: \"Your kundli report will be sent to your email\",\n formEmailPlaceholder: \"Email address\",\n formDob: \"Enter your date of birth\",\n formDobInfo:\n \"This helps us calculate exact planetary position in your birth chart\",\n formBirthTime: \"Enter your birth time\",\n formBirthTimeInfo:\n \"This helps us calculate exact planetary position in your birth chart\",\n formBirthTimeUnknownLine1: \"Don't know your exact birth time?\",\n formBirthTimeUnknownLine2: \"We can analyze with 80% accuracy\",\n formBirthPlace: \"Enter your birth place\",\n formBirthPlaceInfo:\n \"This helps us calculate exact planetary position in your birth chart\",\n formBirthPlacePlaceholder: \"City, State\",\n formOfferEnding: \"The offer is ending soon\",\n formDiscountPill: \"75% discount\",\n formProceed: \"Proceed to payment \",\n formOriginalPrice: \"$100\",\n formDiscountedPrice: \"$25\",\n formPriceAria: \"Price\",\n },\n hi: {\n kundli: \"कुंडली\",\n birthChart: \"जन्म कुंडली\",\n details: \"विवरण\",\n name: \"नाम\",\n birthDate: \"जन्म तिथि\",\n guest: \"अतिथि\",\n description:\n \"आपकी जन्म कुंडली आपके जन्म के समय ग्रहों की स्थिति और आपके जीवन पर उनके प्रभाव को दर्शाती है।\",\n lagna: \"लग्न\",\n rashi: \"राशि\",\n nakshatra: \"नक्षत्र\",\n language: \"भाषा\",\n sriMandir: \"शुभम गोयल (डायरेक्टर - फाउंडर's ऑफिस)\",\n ratingText: \"4.5 (8 लाख Google Playstore)\",\n heroTitle: \"अपनी प्रीमियम व्यक्तिगत कुंडली रिपोर्ट प्राप्त करें\",\n heroSubtitle:\n \"यह प्रीमियम व्यक्तिगत कुंडली रिपोर्ट आपको प्रमुख जीवन मुद्दों के जवाब खोजने में मदद करती है।\",\n topicMarriage: \"विवाह\",\n topicRelationship: \"रिश्ता\",\n topicBusiness: \"व्यवसाय\",\n topicHealth: \"स्वास्थ्य\",\n topicCareer: \"करियर\",\n topicEducation: \"शिक्षा\",\n topicMoney: \"पैसा\",\n premiumHeadline: \"200+ पृष्ठ प्रीमियम व्यक्तिगत कुंडली रिपोर्ट\",\n premiumHeadlinePill1: \"200+ पृष्ठ\",\n premiumHeadlinePlain1: \"प्रीमियम\",\n premiumHeadlinePlain2: \"व्यक्तिगत\",\n premiumHeadlinePill2: \"कुंडली रिपोर्ट\",\n premiumFeature1: \"वैदिक जन्म कुंडली\",\n premiumFeature2: \"भाग्य जानकारी\",\n premiumFeature3: \"प्रमुख जीवन मुद्दे\",\n premiumFeature4: \"व्यावहारिक उपाय\",\n certifiedBy: \"BHU और VHU ज्योतिषियों द्वारा प्रमाणित\",\n yourThreeSteps: \"आपके 3 कदम\",\n threeStepsSubtitle: \"प्रीमियम व्यक्तिगत कुंडली रिपोर्ट\",\n step1: \"अपनी जानकारी दर्ज करें\",\n step2: \"आपकी कुंडली विशेषज्ञों द्वारा बनाई जाएगी\",\n step3Intro: \"आपको व्हाट्सएप पर अपनी कुंडली मिलेगी\",\n step3Days: \"2 दिनों में\",\n viewSampleReport: \"नमूना कुंडली रिपोर्ट देखें\",\n sampleReportModalTitle: \"नमूना कुंडली रिपोर्ट\",\n whatYoullFindTitle: \"आपकी कुंडली रिपोर्ट में क्या मिलेगा?\",\n findDasha: \"दोष और दशा का विश्लेषण\",\n findDashaDesc: \"मुख्य दोष, दशा काल और सरल उपायों की पहचान करें\",\n findYoga: \"सभी योग रिपोर्ट्स\",\n findYogaDesc:\n \"अपनी कुंडली में उन योगों को जानें जो धन, करियर और संबंधों को प्रभावित करते हैं\",\n findGemstone: \"रत्न सिफारिशें\",\n findGemstoneDesc: \"आपकी कुंडली के आधार पर पर्सनलाइज्ड रत्न मार्गदर्शन\",\n findPooja: \"पूजा सिफारिशें\",\n findPoojaDesc:\n \"ग्रहों के प्रभाव को संतुलित करने के लिए पूजा और अनुष्ठान सुझाव\",\n findMonthly: \"मासिक भविष्यवाणियाँ (1 वर्ष)\",\n findMonthlyDesc: \"आने वाले वर्ष के लिए महीने-दर-महीने मार्गदर्शन\",\n findStrength: \"भावबल ग्राफ\",\n findStrengthDesc: \"ग्रहों की ताकत और प्रभाव दिखाने वाले दृश्य चार्ट\",\n whyUsTitle: \"क्यों हम?\",\n whyUsSubtitle: \"शुरू करने के लिए फॉर्म भरें और अपना भाग्य खोलें!\",\n whyUs1: \"30,00,000+ कुंडली बनाई गई\",\n whyUs2: \"1,000+ शीर्ष ज्योतिषी भागीदार\",\n whyUs3: \"500+ मंदिर भागीदारी\",\n whyUs4: \"व्यक्तिगत खंडवार जीवन विश्लेषण\",\n feedbackTitle: \"हमारे उपयोगकर्ताओं की प्रतिक्रिया\",\n feedbackTrust:\n \"दुनिया भर में 5 मिलियन से अधिक उपयोगकर्ताओं द्वारा विश्वसनीय\",\n feedbackRating: \"4.9\",\n feedbackTestimonial1:\n \"डिटेल्ड कुंडली रिपोर्ट मिली, जीवन में काफी क्लैरिटी आई।\",\n feedbackTestimonial2: \"करियर और शादी दोनों पर साफ मार्गदर्शन मिला।\",\n feedbackTestimonial3: \"आगे क्या करना है, उसकी साफ दिशा मिली।\",\n feedbackTestimonial4: \"रिपोर्ट से ज़्यादातर डाउट्स क्लियर हो गए।\",\n feedbackTestimonial5: \"फ्यूचर प्लानिंग के लिए अच्छे सुझाव मिले।\",\n feedbackTestimonial6: \"सभी ज़रूरी चीज़ें अच्छे से कवर की गई हैं।\",\n feedbackTestimonial7: \"एनालिसिस काफी डीप है, ऊपर-ऊपर का नहीं।\",\n feedbackTestimonial8: \"कुंडली के सुझावों से फ्यूचर डिसीजन क्लियर हुए।\",\n feedbackTestimonial9: \"कुल मिलाकर कुंडली रिपोर्ट बहुत हेल्पफुल रही।\",\n feedbackTestimonial10: \"पर्सनल रिपोर्ट से कॉन्फिडेंस बढ़ा।\",\n feedbackTestimonial11: \"रिपोर्ट एकदम सही और समझने में आसान थी।\",\n feedbackTestimonial12: \"रिपोर्ट उम्मीद से ज़्यादा डिटेल्ड निकली।\",\n feedbackTestimonial13: \"रिपोर्ट पढ़कर लाइफ के पैटर्न समझ आए।\",\n feedbackTestimonial14: \"आसान भाषा में पूरा डिटेल्ड एनालिसिस दिया है।\",\n feedbackTestimonial15: \"दशा और टाइमिंग की जानकारी बहुत काम की थी।\",\n feedbackAuthor1: \"आरव\",\n feedbackAuthor2: \"विवान\",\n feedbackAuthor3: \"अर्जुन\",\n feedbackAuthor4: \"कबीर\",\n feedbackAuthor5: \"रोहन\",\n feedbackAuthor6: \"ईशान\",\n feedbackAuthor7: \"कृष\",\n feedbackAuthor8: \"राहुल\",\n feedbackAuthor9: \"अनन्या\",\n feedbackAuthor10: \"आध्या\",\n feedbackAuthor11: \"काव्या\",\n feedbackAuthor12: \"दिया\",\n feedbackAuthor13: \"मीरा\",\n feedbackAuthor14: \"पूजा\",\n feedbackAuthor15: \"निशा\",\n feedbackAuthor1AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639271096.png\",\n feedbackAuthor2AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639330970.png\",\n feedbackAuthor3AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639345411.png\",\n feedbackAuthor4AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639358174.png\",\n feedbackAuthor5AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639369712.png\",\n feedbackAuthor6AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639381899.png\",\n feedbackAuthor7AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639442858.png\",\n feedbackAuthor8AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639454626.png\",\n feedbackAuthor9AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639254172.png\",\n feedbackAuthor10AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639293055.png\",\n feedbackAuthor11AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639306698.png\",\n feedbackAuthor12AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639319028.png\",\n feedbackAuthor13AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639402894.png\",\n feedbackAuthor14AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639416587.png\",\n feedbackAuthor15AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639427379.png\",\n readMoreReviews: \"और समीक्षाएं पढ़ें\",\n readLess: \"कम पढ़ें\",\n faqTitle: \"अक्सर पूछे जाने वाले प्रश्न\",\n faqQ1: \"मुझे अपनी कुंडली कैसे मिलेगी?\",\n faqQ2: \"क्या प्रीमियम पर्सनलाइज्ड कुंडली किसी और भाषा में उपलब्ध है?\",\n faqQ3: \"अगर मुझे अपने जन्म का समय नहीं पता हो तो?\",\n faqA1Global:\n \"आपको 2 दिनों के भीतर आपके साझा किए गए ईमेल आईडी पर आपकी प्रीमियम पर्सनलाइज्ड कुंडली रिपोर्ट मिल जाएगी।\",\n faqA1Domestic:\n \"आपको 2 दिनों के भीतर आपके साझा किए गए व्हाट्सऐप नंबर पर आपकी प्रीमियम पर्सनलाइज्ड कुंडली रिपोर्ट मिल जाएगी।\",\n faqA2: \"हाँ, हम रिपोर्ट हिंदी और अंग्रेज़ी भाषाओं में प्रदान करते हैं।\",\n faqA3:\n \"सही जन्म समय से रिपोर्ट और अधिक सटीक बनती है। फिर भी, बिना सटीक समय के हम लगभग 80% सटीक रिपोर्ट तैयार कर सकते हैं।\",\n contactTitle: \"संपर्क करें\",\n contactWhatsApp: \"व्हाट्सएप: 9845089752\",\n contactEmail: \"ईमेल: shubham.goyal@appsforbharat.com\",\n ctaKundliCreated: \"2L+ कुंडली बनाई।\",\n ctaCertified: \"BHU प्रमाणित ज्योतिषी।\",\n ctaSecurePayment: \"सुरक्षित भुगतान।\",\n ctaButton: \"$300 $25 में मेरी विस्तृत कुंडली प्राप्त करें\",\n ctaButtonStruck: \"$100\",\n ctaButtonBefore: \"मेरा विस्तृत कुंडली प्राप्त करें \",\n ctaButtonAfter: \"$25 में मेरी विस्तृत कुंडली प्राप्त करें\",\n\n // Kundli form (from incoming branch)\n back: \"वापस\",\n info: \"जानकारी\",\n formTitle: \"अपनी जानकारी दर्ज करें\",\n formSubtitle:\n \"शुरू करने के लिए नीचे दिया गया फॉर्म भरें और अपना भाग्य खोलें!\",\n formFullName: \"अपना पूरा नाम दर्ज करें\",\n formFullNamePlaceholder: \"पूरा नाम\",\n formPhone: \"अपना फोन नंबर दर्ज करें\",\n formPhonePlaceholder: \"फोन नंबर\",\n formEmail: \"अपना ईमेल पता दर्ज करें\",\n formEmailHelp: \"आपकी कुंडली रिपोर्ट आपके ईमेल पर भेजी जाएगी\",\n formEmailPlaceholder: \"ईमेल पता\",\n formDob: \"अपनी जन्म तिथि दर्ज करें\",\n formDobInfo:\n \"यह आपके जन्म कुंडली में ग्रहों की सटीक स्थिति की गणना करने में हमारी सहायता करता है।\",\n formBirthTime: \"अपना जन्म समय दर्ज करें\",\n formBirthTimeInfo:\n \"यह आपके जन्म कुंडली में ग्रहों की सटीक स्थिति की गणना करने में हमारी सहायता करता है।\",\n formBirthTimeUnknownLine1: \"क्या आपको अपना सटीक जन्म समय नहीं पता?\",\n formBirthTimeUnknownLine2: \"हम 80% सटीकता के साथ विश्लेषण कर सकते हैं\",\n formBirthPlace: \"अपना जन्म स्थान दर्ज करें\",\n formBirthPlaceInfo:\n \"यह आपके जन्म कुंडली में ग्रहों की सटीक स्थिति की गणना करने में हमारी सहायता करता है।\",\n formBirthPlacePlaceholder: \"शहर, राज्य\",\n formOfferEnding: \"ऑफर जल्द खत्म हो रहा है\",\n formDiscountPill: \"75% छूट\",\n formProceed: \"भुगतान के लिए आगे बढ़ें\",\n formOriginalPrice: \"$100\",\n formDiscountedPrice: \"$25\",\n formPriceAria: \"कीमत\",\n },\n};\n","import React, { createContext, useContext } from 'react';\nimport type { SupportedLocale } from './translations';\nimport { translations } from './translations';\n\ninterface I18nContextValue {\n locale: SupportedLocale;\n t: (key: string) => string;\n}\n\nconst I18nContext = createContext<I18nContextValue | null>(null);\n\ninterface I18nProviderProps {\n locale: SupportedLocale;\n children: React.ReactNode;\n}\n\nexport const I18nProvider: React.FC<I18nProviderProps> = ({\n locale,\n children,\n}) => {\n const t = (key: string) => translations[locale]?.[key] ?? key;\n const value: I18nContextValue = { locale, t };\n\n return (\n <I18nContext.Provider value={value}>{children}</I18nContext.Provider>\n );\n};\n\nexport function useI18n(): I18nContextValue | null {\n return useContext(I18nContext);\n}\n","/**\n * SSR-safe localStorage helpers. No-op when window is undefined.\n */\n\nexport function getItem(key: string): string | null {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return null;\n }\n try {\n return window.localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nexport function setItem(key: string, value: string): void {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return;\n }\n try {\n window.localStorage.setItem(key, value);\n } catch {\n // ignore (e.g. quota, private mode)\n }\n}\n\nexport function removeItem(key: string): void {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return;\n }\n try {\n window.localStorage.removeItem(key);\n } catch {\n // ignore\n }\n}\n\nexport function isLocalStorageAvailable(): boolean {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return false;\n }\n try {\n const testKey = \"__kundli_storage_test__\";\n window.localStorage.setItem(testKey, \"1\");\n window.localStorage.removeItem(testKey);\n return true;\n } catch {\n return false;\n }\n}\n","/**\n * Persist Kundli UI language (en | hi) in localStorage so it survives reloads.\n * Uses a package-specific key so it doesn't conflict with host app storage.\n */\n\nimport type { SupportedLocale } from \"../i18n/translations\";\nimport { SUPPORTED_LOCALES } from \"../i18n/translations\";\nimport { getItem, setItem } from \"./storage\";\n\nexport const KUNDLI_LANGUAGE_STORAGE_KEY = \"kundli_language\";\n\n/**\n * Reads the stored Kundli language. Returns null if not set or invalid.\n */\nexport function getStoredKundliLocale(): SupportedLocale | null {\n const stored = getItem(KUNDLI_LANGUAGE_STORAGE_KEY);\n if (stored && SUPPORTED_LOCALES.includes(stored as SupportedLocale)) {\n return stored as SupportedLocale;\n }\n return null;\n}\n\n/**\n * Saves the selected Kundli language so it can be restored on next visit.\n */\nexport function setStoredKundliLocale(locale: SupportedLocale): void {\n setItem(KUNDLI_LANGUAGE_STORAGE_KEY, locale);\n}\n","import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { SupportedLocale } from \"../../i18n/translations\";\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport { getStoredKundliLocale, setStoredKundliLocale } from \"../../utils/localeStorage\";\n\nexport type KundliView = \"landing\" | \"form\";\n\nexport interface KundliContextConfig {\n locale?: SupportedLocale;\n showLanguageSelector?: boolean;\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n logoUrl?: string;\n reportImageUrl?: string;\n universityLogoUrls?: [string?, string?];\n sampleReportHref?: string;\n onViewSampleReport?: () => void;\n ctaHref?: string;\n onCtaClick?: () => void;\n /** Called when form back is clicked (e.g. when form is shown standalone) */\n onBack?: () => void;\n readMoreReviewsHref?: string;\n onProceed?: (values: KundliFormValues) => void;\n proceedHref?: string;\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n analytics?: KundliAnalytics;\n /** Notify parent when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n}\n\nexport interface KundliContextValue {\n view: KundliView;\n locale: SupportedLocale;\n setLocale: (locale: SupportedLocale) => void;\n config: KundliContextConfig;\n formValues: KundliFormValues;\n setFormValues: React.Dispatch<React.SetStateAction<KundliFormValues>>;\n goToForm: () => void;\n goToPage: () => void;\n onProceed?: (values: KundliFormValues) => void;\n}\n\nconst KundliContext = createContext<KundliContextValue | null>(null);\n\nconst DEFAULT_FORM_VALUES: KundliFormValues = {\n fullName: \"\",\n phone: \"\",\n email: \"\",\n dateOfBirth: \"\",\n birthTime: \"\",\n birthTimeUnknown: false,\n birthPlace: \"\",\n};\n\nexport interface KundliProviderProps extends KundliContextConfig {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const KundliProvider: React.FC<KundliProviderProps> = ({\n locale: localeProp,\n showLanguageSelector = true,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n onBack,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n children,\n}) => {\n const [view, setView] = useState<KundliView>(\"landing\");\n const [locale, setLocale] = useState<SupportedLocale>(localeProp ?? \"en\");\n const [formValues, setFormValues] = useState<KundliFormValues>(DEFAULT_FORM_VALUES);\n const isInitialLocaleMount = useRef(true);\n\n // Restore persisted locale on mount (client-only; avoids hydration mismatch)\n useEffect(() => {\n const stored = getStoredKundliLocale();\n if (stored) setLocale(stored);\n }, []);\n\n useEffect(() => {\n setStoredKundliLocale(locale);\n }, [locale]);\n\n useEffect(() => {\n if (isInitialLocaleMount.current) {\n isInitialLocaleMount.current = false;\n return;\n }\n onLocaleChange?.(locale);\n }, [locale, onLocaleChange]);\n\n const config = useMemo<KundliContextConfig>(\n () => ({\n locale: localeProp,\n showLanguageSelector,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n onBack,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n }),\n [\n localeProp,\n showLanguageSelector,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n onBack,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n ]\n );\n\n const goToForm = useCallback(() => {\n setView(\"form\");\n }, [config.analytics]);\n\n const goToPage = useCallback(() => {\n setView(\"landing\");\n config.onBack?.();\n }, [config.onBack]);\n\n const value = useMemo<KundliContextValue>(\n () => ({\n view,\n locale,\n setLocale,\n config,\n formValues,\n setFormValues,\n goToForm,\n goToPage,\n onProceed: config.onProceed,\n }),\n [view, locale, config, formValues, goToForm, goToPage]\n );\n\n return (\n <KundliContext.Provider value={value}>\n {children}\n </KundliContext.Provider>\n );\n};\n\nexport function useKundliContext(): KundliContextValue | null {\n return useContext(KundliContext);\n}\n\nexport function useKundliContextOrThrow(): KundliContextValue {\n const ctx = useContext(KundliContext);\n if (!ctx) {\n throw new Error(\"useKundliContextOrThrow must be used within KundliProvider\");\n }\n return ctx;\n}\n\nexport { KundliContext };\n","import React from \"react\";\nimport styles from \"./FormHeader.module.scss\";\n\nexport interface FormHeaderProps {\n t: (key: string) => string;\n onBack?: () => void;\n className?: string;\n}\n\nconst BackIcon: React.FC = () => (\n <svg\n className={styles.backIcon}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden\n >\n <path\n d=\"M15 18l-6-6 6-6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const FormHeader: React.FC<FormHeaderProps> = ({\n t,\n onBack,\n className = \"\",\n}) => {\n return (\n <header className={`${styles.header} ${className}`}>\n <div className={styles.left}>\n <button\n type=\"button\"\n className={styles.backBtn}\n onClick={onBack}\n aria-label={t(\"back\")}\n >\n <BackIcon />\n </button>\n <div className={styles.titleWrap}>\n <h1 className={styles.title}>{t(\"formTitle\")}</h1>\n <p className={styles.subtitle}>{t(\"formSubtitle\")}</p>\n </div>\n </div>\n </header>\n );\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport interface PlacePrediction {\n place_id: string;\n description: string;\n structured_formatting: {\n main_text: string;\n secondary_text: string;\n };\n}\n\nexport interface PlaceDetails {\n display_name: string;\n lat: number;\n lng: number;\n city?: string;\n state?: string;\n country?: string;\n}\n\nlet googleMapsPromise: Promise<void> | null = null;\n\nconst loadGoogleMapsScript = (\n apiKey: string,\n language?: string,\n): Promise<void> => {\n if (typeof window === \"undefined\") return Promise.resolve();\n\n if (window.google?.maps?.places) {\n return Promise.resolve();\n }\n\n if (googleMapsPromise) return googleMapsPromise;\n\n googleMapsPromise = new Promise((resolve, reject) => {\n const existing = document.querySelector<HTMLScriptElement>(\n 'script[data-google-maps-places=\"true\"]',\n );\n\n if (existing) {\n existing.addEventListener(\"load\", () => resolve());\n existing.addEventListener(\"error\", () =>\n reject(new Error(\"Failed to load Google Maps API\")),\n );\n return;\n }\n\n const script = document.createElement(\"script\");\n const url = new URL(\"https://maps.googleapis.com/maps/api/js\");\n url.searchParams.set(\"key\", apiKey);\n url.searchParams.set(\"libraries\", \"places\");\n url.searchParams.set(\"loading\", \"async\");\n if (language) url.searchParams.set(\"language\", language);\n\n script.src = url.toString();\n script.async = true;\n script.defer = true;\n script.setAttribute(\"data-google-maps-places\", \"true\");\n\n script.onload = () => {\n const start = Date.now();\n const check = () => {\n if (window.google?.maps?.places) {\n resolve();\n return;\n }\n if (Date.now() - start > 2000) {\n reject(\n new Error(\n \"Google Maps loaded but Places library is unavailable. Check API key restrictions / enabled APIs.\",\n ),\n );\n return;\n }\n window.setTimeout(check, 50);\n };\n check();\n };\n\n script.onerror = () => reject(new Error(\"Failed to load Google Maps API\"));\n\n document.head.appendChild(script);\n });\n\n return googleMapsPromise;\n};\n\nexport const useGooglePlacesAutocomplete = (params: {\n apiKey?: string;\n language?: string;\n restrictCountry?: string;\n}) => {\n const { apiKey, language = \"en\", restrictCountry } = params;\n\n const [isLoaded, setIsLoaded] = useState(false);\n const [predictions, setPredictions] = useState<PlacePrediction[]>([]);\n const [isSearching, setIsSearching] = useState(false);\n const [loadError, setLoadError] = useState<string | null>(null);\n\n const autocompleteService =\n useRef<google.maps.places.AutocompleteService | null>(null);\n const placesService = useRef<google.maps.places.PlacesService | null>(null);\n const sessionToken =\n useRef<google.maps.places.AutocompleteSessionToken | null>(null);\n\n useEffect(() => {\n if (!apiKey) {\n setIsLoaded(false);\n setLoadError(null);\n return;\n }\n\n loadGoogleMapsScript(apiKey, language)\n .then(() => {\n autocompleteService.current =\n new google.maps.places.AutocompleteService();\n const div = document.createElement(\"div\");\n placesService.current = new google.maps.places.PlacesService(div);\n sessionToken.current =\n new google.maps.places.AutocompleteSessionToken();\n setIsLoaded(true);\n setLoadError(null);\n })\n .catch((err: any) => {\n setIsLoaded(false);\n setLoadError(err?.message || \"Failed to load location service\");\n });\n }, [apiKey, language]);\n\n const searchPlaces = useCallback(\n async (query: string): Promise<void> => {\n if (!query || query.length < 2 || !autocompleteService.current) {\n setPredictions([]);\n return;\n }\n\n setIsSearching(true);\n\n try {\n const request: google.maps.places.AutocompletionRequest = {\n input: query,\n types: [\"(cities)\"],\n sessionToken: sessionToken.current ?? undefined,\n };\n\n if (restrictCountry) {\n request.componentRestrictions = { country: restrictCountry };\n }\n\n const response = await new Promise<\n google.maps.places.AutocompletePrediction[]\n >((resolve, reject) => {\n autocompleteService.current!.getPlacePredictions(\n request,\n (preds, status) => {\n if (\n status === google.maps.places.PlacesServiceStatus.OK &&\n preds\n ) {\n resolve(preds);\n } else if (\n status === google.maps.places.PlacesServiceStatus.ZERO_RESULTS\n ) {\n resolve([]);\n } else {\n reject(new Error(`Places API error: ${status}`));\n }\n },\n );\n });\n\n setPredictions(\n response.map((p) => ({\n place_id: p.place_id,\n description: p.description,\n structured_formatting: {\n main_text: p.structured_formatting?.main_text || p.description,\n secondary_text: p.structured_formatting?.secondary_text || \"\",\n },\n })),\n );\n } catch {\n setPredictions([]);\n } finally {\n setIsSearching(false);\n }\n },\n [restrictCountry],\n );\n\n const getPlaceDetails = useCallback(\n async (placeId: string): Promise<PlaceDetails | null> => {\n if (!placesService.current) return null;\n\n try {\n const place = await new Promise<google.maps.places.PlaceResult>(\n (resolve, reject) => {\n placesService.current!.getDetails(\n {\n placeId,\n fields: [\"geometry\", \"address_components\", \"formatted_address\"],\n sessionToken: sessionToken.current ?? undefined,\n },\n (result, status) => {\n if (\n status === google.maps.places.PlacesServiceStatus.OK &&\n result\n ) {\n resolve(result);\n } else {\n reject(new Error(`Place details error: ${status}`));\n }\n },\n );\n },\n );\n\n sessionToken.current =\n new google.maps.places.AutocompleteSessionToken();\n\n const lat = place.geometry?.location?.lat() || 0;\n const lng = place.geometry?.location?.lng() || 0;\n\n let city = \"\";\n let state = \"\";\n let country = \"\";\n\n place.address_components?.forEach((component) => {\n if (component.types.includes(\"locality\")) city = component.long_name;\n if (component.types.includes(\"administrative_area_level_1\"))\n state = component.long_name;\n if (component.types.includes(\"country\"))\n country = component.long_name;\n });\n\n return {\n display_name: place.formatted_address || \"\",\n lat,\n lng,\n city,\n state,\n country,\n };\n } catch {\n return null;\n }\n },\n [],\n );\n\n const clearPredictions = useCallback(() => setPredictions([]), []);\n\n return {\n isLoaded,\n predictions,\n isSearching,\n loadError,\n searchPlaces,\n getPlaceDetails,\n clearPredictions,\n };\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styles from \"./UserInfoFormSection.module.scss\";\nimport type { KundliFormValues } from \"../../KundliForm\";\nimport type { KundliAnalytics } from \"../../../../../analytics\";\nimport { useKundliContext } from \"../../../KundliPage/KundliContext\";\nimport { useGooglePlacesAutocomplete } from \"./useGooglePlacesAutocomplete\";\n\nexport interface UserInfoFormSectionProps {\n t: (key: string) => string;\n values: KundliFormValues;\n onChange: (values: KundliFormValues) => void;\n analytics?: KundliAnalytics;\n /** Google Maps API key used for Birth Place autocomplete */\n googleMapsApiKey?: string;\n className?: string;\n}\n\nconst ICONS = {\n time: \"https://srm-cdn.a4b.io/yoda/1770372014782.svg\",\n location: \"https://srm-cdn.a4b.io/yoda/1770372031092.svg\",\n date: \"https://srm-cdn.a4b.io/yoda/1770372045894.svg\",\n info: \"https://srm-cdn.a4b.io/yoda/1770372066357.svg\",\n} as const;\n\nexport const UserInfoFormSection: React.FC<UserInfoFormSectionProps> = ({\n t,\n values,\n onChange,\n analytics: analyticsProp,\n googleMapsApiKey,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const analytics = kundliCtx?.config?.analytics ?? analyticsProp;\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const filledRef = useRef<Record<string, boolean>>({});\n const update = (patch: Partial<KundliFormValues>) =>\n onChange({ ...values, ...patch });\n\n const trackFilled = (field: string, newValue: string) => {\n if (newValue.trim() && !filledRef.current[field]) {\n filledRef.current[field] = true;\n const m: Record<string, () => void> = {\n fullName: () => analytics?.trackNameSectionFilled?.(),\n phone: () => analytics?.trackPhoneSectionFilled?.(),\n email: () => analytics?.trackEmailSectionFilled?.(),\n dateOfBirth: () => analytics?.trackDobFilled?.(),\n birthTime: () => analytics?.trackTimeFilled?.(),\n birthPlace: () => analytics?.trackPlaceOfBirthChosen?.(),\n };\n m[field]?.();\n }\n };\n\n const sanitizePhone10 = (raw: string) => raw.replace(/\\D/g, \"\").slice(0, 10);\n\n const dobRef = useRef<HTMLInputElement>(null);\n const birthTimeRef = useRef<HTMLInputElement>(null);\n const lastOpenedPickerRef = useRef<HTMLInputElement | null>(null);\n const lastOpenedPickerAtRef = useRef<number>(0);\n\n const timeWrapRef = useRef<HTMLDivElement>(null);\n const [timeOpen, setTimeOpen] = useState(false);\n const [timeDraft, setTimeDraft] = useState<{\n hour12: number;\n minute: string;\n meridiem: \"AM\" | \"PM\";\n }>({ hour12: 12, minute: \"00\", meridiem: \"AM\" });\n\n const pad2 = (n: number) => String(n).padStart(2, \"0\");\n\n const to12HourDisplay = (hhmm: string) => {\n const m = /^([01]\\d|2[0-3]):([0-5]\\d)$/.exec(hhmm);\n if (!m) return hhmm;\n const hour24 = Number(m[1]);\n const minute = m[2];\n const meridiem: \"AM\" | \"PM\" = hour24 >= 12 ? \"PM\" : \"AM\";\n const hour12 = hour24 % 12 === 0 ? 12 : hour24 % 12;\n return `${hour12}:${minute} ${meridiem}`;\n };\n\n const from24ToDraft = (hhmm: string) => {\n const m = /^([01]\\d|2[0-3]):([0-5]\\d)$/.exec(hhmm);\n if (!m) return { hour12: 12, minute: \"00\", meridiem: \"AM\" as const };\n const hour24 = Number(m[1]);\n const minute = m[2];\n const meridiem: \"AM\" | \"PM\" = hour24 >= 12 ? \"PM\" : \"AM\";\n const hour12 = hour24 % 12 === 0 ? 12 : hour24 % 12;\n return { hour12, minute, meridiem };\n };\n\n const draftTo24 = (draft: {\n hour12: number;\n minute: string;\n meridiem: \"AM\" | \"PM\";\n }) => {\n const hour12 = Math.min(12, Math.max(1, draft.hour12));\n const minute = /^([0-5]\\d)$/.test(draft.minute) ? draft.minute : \"00\";\n let hour24 = hour12 % 12;\n if (draft.meridiem === \"PM\") hour24 += 12;\n return `${pad2(hour24)}:${minute}`;\n };\n\n const placeWrapRef = useRef<HTMLDivElement>(null);\n const [placeOpen, setPlaceOpen] = useState(false);\n\n const [infoOpen, setInfoOpen] = useState<null | \"dob\" | \"time\" | \"place\">(\n null,\n );\n\n const googleApiKey =\n googleMapsApiKey ??\n ((import.meta as any).env?.VITE_GOOGLE_MAPS_API_KEY as string | undefined);\n\n const placeQuery = (values.birthPlace ?? \"\").trim();\n const placeCountryRestriction = isGlobal ? undefined : \"in\";\n const placeLanguage = \"en\";\n\n const {\n predictions: placeSuggestions,\n isSearching: placeLoading,\n loadError: placeLoadError,\n searchPlaces,\n clearPredictions,\n } = useGooglePlacesAutocomplete({\n apiKey: googleApiKey,\n language: placeLanguage,\n restrictCountry: placeCountryRestriction,\n });\n\n useEffect(() => {\n const onDocMouseDown = (e: MouseEvent) => {\n if (!placeWrapRef.current) return;\n if (!placeWrapRef.current.contains(e.target as Node)) {\n setPlaceOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, []);\n\n useEffect(() => {\n if (!placeOpen) return;\n if (placeQuery.length < 2) {\n clearPredictions();\n return;\n }\n\n const handle = window.setTimeout(async () => {\n await searchPlaces(placeQuery);\n }, 250);\n\n return () => window.clearTimeout(handle);\n }, [clearPredictions, placeOpen, placeQuery, searchPlaces]);\n\n const toggleNativePicker = (ref: React.RefObject<HTMLInputElement>) => {\n const el = ref.current;\n if (!el || el.disabled) return;\n\n // If already focused and we opened this picker last time, close by blurring.\n // We reset this state on change/blur so clicking again after selecting a value re-opens.\n if (\n document.activeElement === el &&\n lastOpenedPickerRef.current === el &&\n Date.now() - lastOpenedPickerAtRef.current < 60_000\n ) {\n el.blur();\n return;\n }\n\n // showPicker is supported in modern Chromium/Safari; fallback keeps behavior intact.\n if (\n typeof (el as HTMLInputElement & { showPicker?: () => void })\n .showPicker === \"function\"\n ) {\n (el as HTMLInputElement & { showPicker: () => void }).showPicker();\n lastOpenedPickerRef.current = el;\n lastOpenedPickerAtRef.current = Date.now();\n return;\n }\n el.focus();\n lastOpenedPickerRef.current = el;\n lastOpenedPickerAtRef.current = Date.now();\n };\n\n useEffect(() => {\n const onDocMouseDown = (e: MouseEvent) => {\n if (!timeWrapRef.current) return;\n if (!timeWrapRef.current.contains(e.target as Node)) {\n setTimeOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, []);\n\n useEffect(() => {\n const onDocMouseDown = (e: MouseEvent) => {\n const target = e.target as HTMLElement | null;\n if (target?.closest?.(\"[data-info-tooltip]\") != null) return;\n setInfoOpen(null);\n };\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setInfoOpen(null);\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onDocMouseDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, []);\n\n return (\n <section\n className={`${styles.wrap} ${className}`}\n aria-label={t(\"formTitle\")}\n >\n <div className={styles.card}>\n <div className={styles.cardInner}>\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-full-name\">\n {t(\"formFullName\")}\n <span className={styles.req}>*</span>\n </label>\n </div>\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-full-name\"\n className={styles.input}\n type=\"text\"\n value={values.fullName}\n onFocus={() => analytics?.trackNameSectionClicked?.()}\n onChange={(e) => {\n const v = e.target.value;\n update({ fullName: v });\n trackFilled(\"fullName\", v);\n }}\n placeholder={t(\"formFullNamePlaceholder\")}\n autoComplete=\"name\"\n />\n </div>\n </div>\n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-phone\">\n {t(\"formPhone\")}\n {!isGlobal && <span className={styles.req}>*</span>}\n </label>\n </div>\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-phone\"\n className={styles.input}\n type=\"tel\"\n value={values.phone ?? \"\"}\n onFocus={() => analytics?.trackPhoneSectionClicked?.()}\n onChange={(e) => {\n const v = e.target.value;\n update({ phone: sanitizePhone10(v) })\n trackFilled(\"phone\", sanitizePhone10(v));\n }}\n placeholder={t(\"formPhonePlaceholder\")}\n autoComplete=\"tel\"\n inputMode=\"numeric\"\n pattern=\"[0-9]{10}\"\n maxLength={10}\n required={!isGlobal}\n aria-required={!isGlobal}\n />\n </div>\n </div>\n\n {isGlobal && (\n <>\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-email\">\n {t(\"formEmail\")}\n <span className={styles.req}>*</span>\n </label>\n </div>\n <div className={styles.help}>{t(\"formEmailHelp\")}</div>\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-email\"\n className={styles.input}\n type=\"email\"\n value={values.email}\n onChange={(e) => update({ email: e.target.value })}\n placeholder={t(\"formEmailPlaceholder\")}\n autoComplete=\"email\"\n required\n aria-required\n />\n </div>\n </div>\n </>)}\n \n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-dob\">\n {t(\"formDob\")}\n <span className={styles.req}>*</span>\n </label>\n <div className={styles.infoWrap} data-info-tooltip>\n <button\n type=\"button\"\n className={styles.infoBtn}\n aria-label={t(\"info\")}\n aria-expanded={infoOpen === \"dob\"}\n onClick={() => {\n setInfoOpen((v) => (v === \"dob\" ? null : \"dob\"))\n analytics?.trackInfoIconClicked?.({ fieldName: \"dob\" })\n }\n }\n >\n <img\n className={styles.infoImg}\n src={ICONS.info}\n alt=\"\"\n aria-hidden\n />\n </button>\n {infoOpen === \"dob\" && (\n <div className={styles.tooltip} role=\"tooltip\">\n {t(\"formDobInfo\")}\n <span className={styles.tooltipArrow} aria-hidden />\n </div>\n )}\n </div>\n </div >\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-dob\"\n className={styles.input}\n type=\"date\"\n ref={dobRef}\n value={values.dateOfBirth}\n max={(() => {\n const d = new Date();\n return `${d.getFullYear()}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())}`;\n })()}\n onChange={(e) => {\n const v = e.target.value;\n const today = new Date();\n const maxDate = `${today.getFullYear()}-${pad2(today.getMonth() + 1)}-${pad2(today.getDate())}`;\n if (v && v > maxDate) return;\n update({ dateOfBirth: v });\n trackFilled(\"dateOfBirth\", v);\n lastOpenedPickerRef.current = null;\n }}\n onFocus={() => analytics?.trackDobClicked?.()}\n onClick={() => toggleNativePicker(dobRef)}\n onBlur={() => {\n if (lastOpenedPickerRef.current === dobRef.current) {\n lastOpenedPickerRef.current = null;\n }\n }}\n />\n <button\n type=\"button\"\n className={`${styles.iconBtn} ${styles.iconBtnInteractive}`}\n aria-label=\"Open date picker\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggleNativePicker(dobRef);\n }}\n >\n <img\n className={styles.iconImg}\n src={ICONS.date}\n alt=\"\"\n aria-hidden\n />\n </button>\n </div>\n </div >\n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-birth-time\">\n {t(\"formBirthTime\")}\n <span className={styles.req}>*</span>\n </label>\n <div className={styles.infoWrap} data-info-tooltip>\n <button\n type=\"button\"\n className={styles.infoBtn}\n aria-label={t(\"info\")}\n aria-expanded={infoOpen === \"time\"}\n onClick={() => {\n analytics?.trackInfoIconClicked?.({ fieldName: \"time\" })\n setInfoOpen((v) => (v === \"time\" ? null : \"time\"))\n }}\n >\n <img\n className={styles.infoImg}\n src={ICONS.info}\n alt=\"\"\n aria-hidden\n />\n </button>\n {infoOpen === \"time\" && (\n <div className={styles.tooltip} role=\"tooltip\">\n {t(\"formBirthTimeInfo\")}\n <span className={styles.tooltipArrow} aria-hidden />\n </div>\n )}\n </div>\n </div >\n <div className={styles.inputWrap} ref={timeWrapRef}>\n <input\n id=\"kundli-birth-time\"\n className={styles.input}\n type=\"text\"\n value={\n values.birthTime ? to12HourDisplay(values.birthTime) : \"\"\n }\n readOnly\n onFocus={() => analytics?.trackTimeClicked?.()}\n onChange={(e) => {\n const v = e.target.value;\n update({ birthTime: v });\n trackFilled(\"birthTime\", v);\n }}\n disabled={values.birthTimeUnknown}\n placeholder=\"HH:MM AM\"\n onClick={() => {\n if (values.birthTimeUnknown) return;\n setTimeDraft(from24ToDraft(values.birthTime || \"12:00\"));\n setTimeOpen((o) => !o);\n }}\n />\n <button\n type=\"button\"\n className={`${styles.iconBtn} ${styles.iconBtnInteractive}`}\n aria-label=\"Open time picker\"\n disabled={values.birthTimeUnknown}\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (values.birthTimeUnknown) return;\n setTimeDraft(from24ToDraft(values.birthTime || \"12:00\"));\n setTimeOpen((o) => !o);\n }}\n >\n <img\n className={styles.iconImg}\n src={ICONS.time}\n alt=\"\"\n aria-hidden\n />\n </button>\n\n {timeOpen && !values.birthTimeUnknown && (\n <div\n className={styles.timePopover}\n role=\"dialog\"\n aria-label=\"Select time\"\n >\n <div className={styles.timePickerRow}>\n <select\n className={styles.timePickerSelect}\n value={timeDraft.hour12}\n onChange={(e) =>\n setTimeDraft((d) => ({\n ...d,\n hour12: Number(e.target.value),\n }))\n }\n aria-label=\"Hour\"\n >\n {Array.from({ length: 12 }, (_, i) => i + 1).map((h) => (\n <option key={h} value={h}>\n {h}\n </option>\n ))}\n </select>\n <span className={styles.timePickerColon}>:</span>\n <select\n className={styles.timePickerSelect}\n value={timeDraft.minute}\n onChange={(e) =>\n setTimeDraft((d) => ({ ...d, minute: e.target.value }))\n }\n aria-label=\"Minute\"\n >\n {Array.from({ length: 60 }, (_, i) => pad2(i)).map(\n (m) => (\n <option key={m} value={m}>\n {m}\n </option>\n ),\n )}\n </select>\n\n <div className={styles.meridiemToggle} aria-label=\"AM/PM\">\n <button\n type=\"button\"\n className={`${styles.meridiemBtn} ${timeDraft.meridiem === \"AM\"\n ? styles.meridiemActive\n : \"\"\n }`}\n onClick={() =>\n setTimeDraft((d) => ({ ...d, meridiem: \"AM\" }))\n }\n >\n AM\n </button>\n <button\n type=\"button\"\n className={`${styles.meridiemBtn} ${timeDraft.meridiem === \"PM\"\n ? styles.meridiemActive\n : \"\"\n }`}\n onClick={() =>\n setTimeDraft((d) => ({ ...d, meridiem: \"PM\" }))\n }\n >\n PM\n </button>\n </div>\n </div>\n <div className={styles.timePopoverActions}>\n <button\n type=\"button\"\n className={styles.timePopoverBtn}\n onClick={() => setTimeOpen(false)}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className={`${styles.timePopoverBtn} ${styles.timePopoverOk}`}\n onClick={() => {\n const v = draftTo24(timeDraft);\n update({ birthTime: v });\n trackFilled(\"birthTime\", v);\n setTimeOpen(false);\n }}\n aria-label=\"OK\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden\n >\n <path\n d=\"M20 6L9 17l-5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n </div>\n )}\n </div>\n\n <div className={styles.checkboxRow}>\n <input\n id=\"kundli-time-unknown\"\n className={styles.checkbox}\n type=\"checkbox\"\n checked={values.birthTimeUnknown}\n onChange={(e) => {\n analytics?.trackTimeCheckboxClicked?.();\n update({\n birthTimeUnknown: e.target.checked,\n birthTime: e.target.checked ? \"\" : values.birthTime,\n });\n }}\n />\n <label\n className={styles.checkboxText}\n htmlFor=\"kundli-time-unknown\"\n >\n {t(\"formBirthTimeUnknownLine1\")}\n <br />\n {t(\"formBirthTimeUnknownLine2\")}\n </label>\n </div>\n </div >\n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-birth-place\">\n {t(\"formBirthPlace\")}\n <span className={styles.req}>*</span>\n </label>\n <div className={styles.infoWrap} data-info-tooltip>\n <button\n type=\"button\"\n className={styles.infoBtn}\n aria-label={t(\"info\")}\n aria-expanded={infoOpen === \"place\"}\n onClick={() => {\n analytics?.trackInfoIconClicked?.({ fieldName: \"birthPlace\" })\n setInfoOpen((v) => (v === \"place\" ? null : \"place\"))\n }}\n >\n <img\n className={styles.infoImg}\n src={ICONS.info}\n alt=\"\"\n aria-hidden\n />\n </button>\n {infoOpen === \"place\" && (\n <div className={styles.tooltip} role=\"tooltip\">\n {t(\"formBirthPlaceInfo\")}\n <span className={styles.tooltipArrow} aria-hidden />\n </div>\n )}\n </div>\n </div >\n <div className={styles.inputWrap} ref={placeWrapRef}>\n <input\n id=\"kundli-birth-place\"\n className={styles.input}\n type=\"text\"\n value={values.birthPlace}\n onChange={(e) => {\n const v = e.target.value;\n update({ birthPlace: v });\n trackFilled(\"birthPlace\", v);\n setPlaceOpen(true);\n }}\n onFocus={() => {\n analytics?.trackPlaceOfBirthClicked?.()\n setPlaceOpen(true)\n }}\n placeholder={t(\"formBirthPlacePlaceholder\")}\n autoComplete=\"address-level2\"\n />\n <span className={styles.iconBtn} aria-hidden>\n <img\n className={styles.iconImg}\n src={ICONS.location}\n alt=\"\"\n aria-hidden\n />\n </span>\n\n {placeOpen && placeSuggestions.length > 0 && (\n <div className={styles.suggestions} role=\"listbox\">\n {placeSuggestions.slice(0, 8).map((p) => (\n <button\n key={p.place_id}\n type=\"button\"\n className={styles.suggestionItem}\n onClick={() => {\n update({ birthPlace: p.description });\n clearPredictions();\n setPlaceOpen(false);\n }}\n >\n <span className={styles.suggestionMain}>\n {p.structured_formatting?.main_text ?? p.description}\n </span>\n {p.structured_formatting?.secondary_text && (\n <span className={styles.suggestionSecondary}>\n {p.structured_formatting.secondary_text}\n </span>\n )}\n </button>\n ))}\n </div>\n )}\n\n {placeOpen && googleApiKey && placeLoading && (\n <div className={styles.suggestionsHint}>Loading…</div>\n )}\n\n {placeOpen &&\n googleApiKey &&\n !placeLoading &&\n !!placeLoadError && (\n <div className={styles.suggestionsHint}>{placeLoadError}</div>\n )}\n </div>\n </div >\n </div >\n </div >\n </section >\n );\n};\n","import React from \"react\";\nimport styles from \"./FooterShell.module.scss\";\n\nexport interface FooterShellProps {\n /** Optional circular marquee content (e.g. badges). When provided, marquee is shown. */\n marquee?: React.ReactNode;\n /** Main footer content (e.g. CTA button or form proceed block) */\n children: React.ReactNode;\n className?: string;\n}\n\nexport const FooterShell: React.FC<FooterShellProps> = ({\n marquee,\n children,\n className = \"\",\n}) => {\n return (\n <footer className={`${styles.footer} ${className}`} role=\"contentinfo\">\n <div className={styles.inner}>\n {marquee != null && (\n <div className={styles.badges} aria-hidden>\n {marquee}\n </div>\n )}\n <div className={styles.ctaWrap}>\n {children}\n </div>\n </div>\n </footer>\n );\n};\n","import React from \"react\";\nimport styles from \"./FooterShell.module.scss\";\n\nexport interface FooterCTAButtonProps {\n /** Button content */\n children: React.ReactNode;\n /** When set, renders an anchor instead of a button (e.g. target=\"_blank\" rel=\"noopener noreferrer\") */\n href?: string;\n /** Disabled state; for anchor uses aria-disabled and preventDefault on click */\n disabled?: boolean;\n /** Click handler (used when href is not set); receives click event */\n onClick?: (e: React.MouseEvent<HTMLElement>) => void;\n className?: string;\n /** Optional aria-label for accessibility */\n \"aria-label\"?: string;\n}\n\nexport const FooterCTAButton: React.FC<FooterCTAButtonProps> = ({\n children,\n href,\n disabled = false,\n onClick,\n className = \"\",\n \"aria-label\": ariaLabel,\n}) => {\n const buttonClass = `${styles.ctaButton} ${className}`.trim();\n const ariaProps = ariaLabel != null ? { \"aria-label\": ariaLabel } : {};\n\n if (href != null) {\n return (\n <a\n href={href}\n className={buttonClass}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-disabled={disabled}\n onClick={(e) => disabled && e.preventDefault()}\n {...ariaProps}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n className={buttonClass}\n disabled={disabled}\n onClick={onClick}\n {...ariaProps}\n >\n {children}\n </button>\n );\n};\n","import React, { useMemo } from \"react\";\nimport {\n FooterShell,\n FooterCTAButton,\n footerShellStyles,\n} from \"../../../FooterShell\";\nimport type { KundliFormValues } from \"../../KundliForm\";\nimport type { KundliAnalytics } from \"../../../../../analytics\";\nimport { useKundliContext } from \"../../../KundliPage/KundliContext\";\n\nexport interface ProceedFooterProps {\n t: (key: string) => string;\n values: KundliFormValues;\n onProceed?: (values: KundliFormValues) => void;\n href?: string;\n analytics?: KundliAnalytics;\n className?: string;\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n}\n\nconst isValidEmail = (email: string) => /.+@.+\\..+/.test(email);\nconst isValidIndianPhone10 = (phone: string) => /^\\d{10}$/.test(phone);\n\nexport const ProceedFooter: React.FC<ProceedFooterProps> = ({\n t,\n values,\n onProceed,\n href,\n analytics,\n className = \"\",\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const canProceed = useMemo(() => {\n if (!values.fullName.trim()) return false;\n if (isGlobal) {\n if (!isValidEmail(values.email.trim())) return false;\n } else {\n if (!isValidIndianPhone10((values.phone ?? \"\").trim())) return false;\n }\n if (!values.dateOfBirth) return false;\n if (!values.birthPlace.trim()) return false;\n if (!values.birthTimeUnknown && !values.birthTime) return false;\n return true;\n }, [isGlobal, values]);\n\n const original = isGlobal\n ? (originalPriceLabel ?? t(\"formOriginalPrice\"))\n : \"₹999\";\n const discounted = isGlobal\n ? (discountedPriceLabel ?? t(\"formDiscountedPrice\"))\n : \"₹249\";\n const discountPill = discountPillLabel ?? t(\"formDiscountPill\");\n\n const buttonContent = (\n <>\n {t(\"formProceed\")}\n <span className={footerShellStyles.ctaStruck}>{original}</span>\n {\" \"}\n {discounted}\n </>\n );\n\n const content = (\n <>\n <div className={footerShellStyles.offerRow}>\n <span>{t(\"formOfferEnding\")}</span>\n <span className={footerShellStyles.pill}>{discountPill}</span>\n </div>\n <FooterCTAButton\n href={href}\n disabled={!canProceed}\n onClick={() => {\n analytics?.trackPrimaryCtaClickedL1?.({ avenue: \"form\" });\n onProceed?.(values);\n }}\n aria-label={t(\"formPriceAria\")}\n >\n {buttonContent}\n </FooterCTAButton>\n </>\n );\n\n return <FooterShell className={className}>{content}</FooterShell>;\n};\n","import React from 'react';\nimport { useKundliContext } from '../../KundliContext';\nimport styles from './KundliHeader.module.scss';\n\nexport interface KundliHeaderProps {\n /** Translation function */\n t: (key: string) => string;\n /** Language selector slot */\n languageSelector?: React.ReactNode;\n /** Logo URL (optional; shows placeholder if not provided) */\n logoUrl?: string;\n /** Optional class name */\n className?: string;\n}\n\nconst DEFAULT_LOGO_URL = 'https://srm-cdn.a4b.io/yoda/1770362904947.svg';\n\nexport const KundliHeader: React.FC<KundliHeaderProps> = ({\n t,\n languageSelector,\n logoUrl = DEFAULT_LOGO_URL,\n className = '',\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n const showLanguageSelector = languageSelector && !isGlobal;\n\n return (\n <header className={`${styles.header} ${className}`}>\n <div className={styles.brand}>\n <div className={styles.logo}>\n {logoUrl ? (\n <img src={logoUrl} alt={t('sriMandir')} className={styles.logoImg} />\n ) : (\n <div className={styles.logoPlaceholder} aria-hidden />\n )}\n </div>\n <div className={styles.brandText}>\n <span className={styles.brandName}>{t('sriMandir')}</span>\n <span className={styles.rating}>\n <span className={styles.stars} aria-hidden>★</span>\n {t('ratingText')}\n </span>\n </div>\n </div>\n {showLanguageSelector && (\n <div className={styles.langSlot}>{languageSelector}</div>\n )}\n </header>\n );\n};\n","import React from 'react';\nimport styles from './HeroSection.module.scss';\n\nconst TOPIC_KEYS = [\n 'topicMarriage',\n 'topicRelationship',\n 'topicBusiness',\n 'topicHealth',\n 'topicCareer',\n 'topicEducation',\n 'topicMoney',\n] as const;\n\nexport interface HeroSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const HeroSection: React.FC<HeroSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.hero} ${className}`} aria-labelledby=\"hero-title\">\n <h1 id=\"hero-title\" className={styles.title}>\n {t('heroTitle')}\n </h1>\n <p className={styles.subtitle}>{t('heroSubtitle')}</p>\n <div className={styles.topicTags} role=\"list\">\n {TOPIC_KEYS.map((key) => (\n <span key={key} className={styles.tag} role=\"listitem\">\n {t(key)}\n </span>\n ))}\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './PremiumReportOverview.module.scss';\nimport type { KundliAnalytics } from '../../../../analytics';\n\nconst FEATURE_CHECK_ICON_URL = 'https://srm-cdn.a4b.io/yoda/1770363846052.svg';\n\nconst FEATURES = [\n 'premiumFeature1',\n 'premiumFeature2',\n 'premiumFeature3',\n 'premiumFeature4',\n] as const;\n\nexport interface PremiumReportOverviewProps {\n t: (key: string) => string;\n /** Optional report cover image URL */\n reportImageUrl?: string;\n /** Optional analytics for tracking banner clicked */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nconst DEFAULT_REPORT_IMAGE_URL =\n \"https://srm-cdn.a4b.io/yoda/1770710060606.png\";\n\nexport const PremiumReportOverview: React.FC<PremiumReportOverviewProps> = ({\n t,\n reportImageUrl = DEFAULT_REPORT_IMAGE_URL,\n analytics,\n className = '',\n}: PremiumReportOverviewProps) => {\n\n const handleClick = () => {\n analytics?.trackBannerClicked?.();\n };\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"premium-headline\"\n role=\"button\"\n tabIndex={0}\n onClick={handleClick}\n >\n <div className={styles.inner}>\n <div className={styles.content}>\n <h2 id=\"premium-headline\" className={styles.headline}>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill1')}</span>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain1')}</span>\n </span>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain2')}</span>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill2')}</span>\n </span>\n </h2>\n <ul className={styles.featureList}>\n {FEATURES.map((key) => (\n <li key={key} className={styles.featureItem}>\n <img\n src={FEATURE_CHECK_ICON_URL}\n alt=\"\"\n className={styles.featureIcon}\n width={16}\n height={16}\n aria-hidden\n />\n {t(key)}\n </li>\n ))}\n </ul>\n </div>\n <div className={styles.reportImage}>\n <img src={reportImageUrl} alt=\"\" className={styles.reportImg} />\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './UniversityCertification.module.scss';\n\nexport interface UniversityCertificationProps {\n t: (key: string) => string;\n /** Optional logo URLs: [BHU, VSU or similar] */\n logoUrl?: string;\n className?: string;\n}\n\nconst DEFAULT_LOGO_URL = 'https://srm-cdn.a4b.io/yoda/1770365699409.png';\n\nexport const UniversityCertification: React.FC<UniversityCertificationProps> = ({\n t,\n logoUrl = DEFAULT_LOGO_URL,\n className = '',\n}) => {\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"certified-heading\">\n <h2 id=\"certified-heading\" className={styles.heading}>\n {t('certifiedBy')}\n </h2>\n <img src={logoUrl} alt=\"University Certification\" className={styles.logoImg} />\n </section>\n );\n};\n","import React from 'react';\nimport styles from './ThreeStepsProcess.module.scss';\n\nconst STEP_KEYS = ['step1', 'step2'] as const;\n\nexport interface ThreeStepsProcessProps {\n t: (key: string) => string;\n locale?: string;\n className?: string;\n}\n\nexport const ThreeStepsProcess: React.FC<ThreeStepsProcessProps> = ({\n t,\n locale = 'en',\n className = '',\n}) => {\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"steps-heading\"\n >\n <p className={styles.heading}>{t('yourThreeSteps')}</p>\n <h2 id=\"steps-heading\" className={styles.subtitle}>\n {t('threeStepsSubtitle')}\n </h2>\n <ol className={styles.stepList}>\n {STEP_KEYS.map((key, index) => (\n <li key={key} className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n {index + 1}\n </span>\n <span className={styles.stepText}>{t(key)}</span>\n </li>\n ))}\n <li className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n 3\n </span>\n <span className={styles.stepText}>\n {t('step3Intro')}\n <br />\n {locale === 'en' ? (\n <>\n in <strong className={styles.step3Days}>{t('step3Days')}</strong>\n </>\n ) : (\n <strong className={styles.step3Days}>{t('step3Days')}</strong>\n )}\n </span>\n </li>\n </ol>\n </section>\n );\n};\n","export default {}","/**\n * @licstart The following is the entire license notice for the\n * JavaScript code in this page\n *\n * Copyright 2023 Mozilla Foundation\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n * @licend The above is the entire license notice for the\n * JavaScript code in this page\n */\n\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"pdfjs-dist/build/pdf\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"pdfjs-dist/build/pdf\"] = factory();\n\telse\n\t\troot[\"pdfjs-dist/build/pdf\"] = root.pdfjsLib = factory();\n})(globalThis, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ([\n/* 0 */,\n/* 1 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.VerbosityLevel = exports.Util = exports.UnknownErrorException = exports.UnexpectedResponseException = exports.UNSUPPORTED_FEATURES = exports.TextRenderingMode = exports.RenderingIntentFlag = exports.PermissionFlag = exports.PasswordResponses = exports.PasswordException = exports.PageActionEventType = exports.OPS = exports.MissingPDFException = exports.LINE_FACTOR = exports.LINE_DESCENT_FACTOR = exports.InvalidPDFException = exports.ImageKind = exports.IDENTITY_MATRIX = exports.FormatError = exports.FeatureTest = exports.FONT_IDENTITY_MATRIX = exports.DocumentActionEventType = exports.CMapCompressionType = exports.BaseException = exports.BASELINE_FACTOR = exports.AnnotationType = exports.AnnotationStateModelType = exports.AnnotationReviewState = exports.AnnotationReplyType = exports.AnnotationMode = exports.AnnotationMarkedState = exports.AnnotationFlag = exports.AnnotationFieldFlag = exports.AnnotationEditorType = exports.AnnotationEditorPrefix = exports.AnnotationEditorParamsType = exports.AnnotationBorderStyleType = exports.AnnotationActionEventType = exports.AbortException = void 0;\nexports.assert = assert;\nexports.bytesToString = bytesToString;\nexports.createPromiseCapability = createPromiseCapability;\nexports.createValidAbsoluteUrl = createValidAbsoluteUrl;\nexports.getModificationDate = getModificationDate;\nexports.getVerbosityLevel = getVerbosityLevel;\nexports.info = info;\nexports.isArrayBuffer = isArrayBuffer;\nexports.isArrayEqual = isArrayEqual;\nexports.objectFromMap = objectFromMap;\nexports.objectSize = objectSize;\nexports.setVerbosityLevel = setVerbosityLevel;\nexports.shadow = shadow;\nexports.string32 = string32;\nexports.stringToBytes = stringToBytes;\nexports.stringToPDFString = stringToPDFString;\nexports.stringToUTF8String = stringToUTF8String;\nexports.unreachable = unreachable;\nexports.utf8StringToString = utf8StringToString;\nexports.warn = warn;\n;\nconst IDENTITY_MATRIX = [1, 0, 0, 1, 0, 0];\nexports.IDENTITY_MATRIX = IDENTITY_MATRIX;\nconst FONT_IDENTITY_MATRIX = [0.001, 0, 0, 0.001, 0, 0];\nexports.FONT_IDENTITY_MATRIX = FONT_IDENTITY_MATRIX;\nconst LINE_FACTOR = 1.35;\nexports.LINE_FACTOR = LINE_FACTOR;\nconst LINE_DESCENT_FACTOR = 0.35;\nexports.LINE_DESCENT_FACTOR = LINE_DESCENT_FACTOR;\nconst BASELINE_FACTOR = LINE_DESCENT_FACTOR / LINE_FACTOR;\nexports.BASELINE_FACTOR = BASELINE_FACTOR;\nconst RenderingIntentFlag = {\n ANY: 0x01,\n DISPLAY: 0x02,\n PRINT: 0x04,\n SAVE: 0x08,\n ANNOTATIONS_FORMS: 0x10,\n ANNOTATIONS_STORAGE: 0x20,\n ANNOTATIONS_DISABLE: 0x40,\n OPLIST: 0x100\n};\nexports.RenderingIntentFlag = RenderingIntentFlag;\nconst AnnotationMode = {\n DISABLE: 0,\n ENABLE: 1,\n ENABLE_FORMS: 2,\n ENABLE_STORAGE: 3\n};\nexports.AnnotationMode = AnnotationMode;\nconst AnnotationEditorPrefix = \"pdfjs_internal_editor_\";\nexports.AnnotationEditorPrefix = AnnotationEditorPrefix;\nconst AnnotationEditorType = {\n DISABLE: -1,\n NONE: 0,\n FREETEXT: 3,\n INK: 15\n};\nexports.AnnotationEditorType = AnnotationEditorType;\nconst AnnotationEditorParamsType = {\n FREETEXT_SIZE: 1,\n FREETEXT_COLOR: 2,\n FREETEXT_OPACITY: 3,\n INK_COLOR: 11,\n INK_THICKNESS: 12,\n INK_OPACITY: 13\n};\nexports.AnnotationEditorParamsType = AnnotationEditorParamsType;\nconst PermissionFlag = {\n PRINT: 0x04,\n MODIFY_CONTENTS: 0x08,\n COPY: 0x10,\n MODIFY_ANNOTATIONS: 0x20,\n FILL_INTERACTIVE_FORMS: 0x100,\n COPY_FOR_ACCESSIBILITY: 0x200,\n ASSEMBLE: 0x400,\n PRINT_HIGH_QUALITY: 0x800\n};\nexports.PermissionFlag = PermissionFlag;\nconst TextRenderingMode = {\n FILL: 0,\n STROKE: 1,\n FILL_STROKE: 2,\n INVISIBLE: 3,\n FILL_ADD_TO_PATH: 4,\n STROKE_ADD_TO_PATH: 5,\n FILL_STROKE_ADD_TO_PATH: 6,\n ADD_TO_PATH: 7,\n FILL_STROKE_MASK: 3,\n ADD_TO_PATH_FLAG: 4\n};\nexports.TextRenderingMode = TextRenderingMode;\nconst ImageKind = {\n GRAYSCALE_1BPP: 1,\n RGB_24BPP: 2,\n RGBA_32BPP: 3\n};\nexports.ImageKind = ImageKind;\nconst AnnotationType = {\n TEXT: 1,\n LINK: 2,\n FREETEXT: 3,\n LINE: 4,\n SQUARE: 5,\n CIRCLE: 6,\n POLYGON: 7,\n POLYLINE: 8,\n HIGHLIGHT: 9,\n UNDERLINE: 10,\n SQUIGGLY: 11,\n STRIKEOUT: 12,\n STAMP: 13,\n CARET: 14,\n INK: 15,\n POPUP: 16,\n FILEATTACHMENT: 17,\n SOUND: 18,\n MOVIE: 19,\n WIDGET: 20,\n SCREEN: 21,\n PRINTERMARK: 22,\n TRAPNET: 23,\n WATERMARK: 24,\n THREED: 25,\n REDACT: 26\n};\nexports.AnnotationType = AnnotationType;\nconst AnnotationStateModelType = {\n MARKED: \"Marked\",\n REVIEW: \"Review\"\n};\nexports.AnnotationStateModelType = AnnotationStateModelType;\nconst AnnotationMarkedState = {\n MARKED: \"Marked\",\n UNMARKED: \"Unmarked\"\n};\nexports.AnnotationMarkedState = AnnotationMarkedState;\nconst AnnotationReviewState = {\n ACCEPTED: \"Accepted\",\n REJECTED: \"Rejected\",\n CANCELLED: \"Cancelled\",\n COMPLETED: \"Completed\",\n NONE: \"None\"\n};\nexports.AnnotationReviewState = AnnotationReviewState;\nconst AnnotationReplyType = {\n GROUP: \"Group\",\n REPLY: \"R\"\n};\nexports.AnnotationReplyType = AnnotationReplyType;\nconst AnnotationFlag = {\n INVISIBLE: 0x01,\n HIDDEN: 0x02,\n PRINT: 0x04,\n NOZOOM: 0x08,\n NOROTATE: 0x10,\n NOVIEW: 0x20,\n READONLY: 0x40,\n LOCKED: 0x80,\n TOGGLENOVIEW: 0x100,\n LOCKEDCONTENTS: 0x200\n};\nexports.AnnotationFlag = AnnotationFlag;\nconst AnnotationFieldFlag = {\n READONLY: 0x0000001,\n REQUIRED: 0x0000002,\n NOEXPORT: 0x0000004,\n MULTILINE: 0x0001000,\n PASSWORD: 0x0002000,\n NOTOGGLETOOFF: 0x0004000,\n RADIO: 0x0008000,\n PUSHBUTTON: 0x0010000,\n COMBO: 0x0020000,\n EDIT: 0x0040000,\n SORT: 0x0080000,\n FILESELECT: 0x0100000,\n MULTISELECT: 0x0200000,\n DONOTSPELLCHECK: 0x0400000,\n DONOTSCROLL: 0x0800000,\n COMB: 0x1000000,\n RICHTEXT: 0x2000000,\n RADIOSINUNISON: 0x2000000,\n COMMITONSELCHANGE: 0x4000000\n};\nexports.AnnotationFieldFlag = AnnotationFieldFlag;\nconst AnnotationBorderStyleType = {\n SOLID: 1,\n DASHED: 2,\n BEVELED: 3,\n INSET: 4,\n UNDERLINE: 5\n};\nexports.AnnotationBorderStyleType = AnnotationBorderStyleType;\nconst AnnotationActionEventType = {\n E: \"Mouse Enter\",\n X: \"Mouse Exit\",\n D: \"Mouse Down\",\n U: \"Mouse Up\",\n Fo: \"Focus\",\n Bl: \"Blur\",\n PO: \"PageOpen\",\n PC: \"PageClose\",\n PV: \"PageVisible\",\n PI: \"PageInvisible\",\n K: \"Keystroke\",\n F: \"Format\",\n V: \"Validate\",\n C: \"Calculate\"\n};\nexports.AnnotationActionEventType = AnnotationActionEventType;\nconst DocumentActionEventType = {\n WC: \"WillClose\",\n WS: \"WillSave\",\n DS: \"DidSave\",\n WP: \"WillPrint\",\n DP: \"DidPrint\"\n};\nexports.DocumentActionEventType = DocumentActionEventType;\nconst PageActionEventType = {\n O: \"PageOpen\",\n C: \"PageClose\"\n};\nexports.PageActionEventType = PageActionEventType;\nconst VerbosityLevel = {\n ERRORS: 0,\n WARNINGS: 1,\n INFOS: 5\n};\nexports.VerbosityLevel = VerbosityLevel;\nconst CMapCompressionType = {\n NONE: 0,\n BINARY: 1\n};\nexports.CMapCompressionType = CMapCompressionType;\nconst OPS = {\n dependency: 1,\n setLineWidth: 2,\n setLineCap: 3,\n setLineJoin: 4,\n setMiterLimit: 5,\n setDash: 6,\n setRenderingIntent: 7,\n setFlatness: 8,\n setGState: 9,\n save: 10,\n restore: 11,\n transform: 12,\n moveTo: 13,\n lineTo: 14,\n curveTo: 15,\n curveTo2: 16,\n curveTo3: 17,\n closePath: 18,\n rectangle: 19,\n stroke: 20,\n closeStroke: 21,\n fill: 22,\n eoFill: 23,\n fillStroke: 24,\n eoFillStroke: 25,\n closeFillStroke: 26,\n closeEOFillStroke: 27,\n endPath: 28,\n clip: 29,\n eoClip: 30,\n beginText: 31,\n endText: 32,\n setCharSpacing: 33,\n setWordSpacing: 34,\n setHScale: 35,\n setLeading: 36,\n setFont: 37,\n setTextRenderingMode: 38,\n setTextRise: 39,\n moveText: 40,\n setLeadingMoveText: 41,\n setTextMatrix: 42,\n nextLine: 43,\n showText: 44,\n showSpacedText: 45,\n nextLineShowText: 46,\n nextLineSetSpacingShowText: 47,\n setCharWidth: 48,\n setCharWidthAndBounds: 49,\n setStrokeColorSpace: 50,\n setFillColorSpace: 51,\n setStrokeColor: 52,\n setStrokeColorN: 53,\n setFillColor: 54,\n setFillColorN: 55,\n setStrokeGray: 56,\n setFillGray: 57,\n setStrokeRGBColor: 58,\n setFillRGBColor: 59,\n setStrokeCMYKColor: 60,\n setFillCMYKColor: 61,\n shadingFill: 62,\n beginInlineImage: 63,\n beginImageData: 64,\n endInlineImage: 65,\n paintXObject: 66,\n markPoint: 67,\n markPointProps: 68,\n beginMarkedContent: 69,\n beginMarkedContentProps: 70,\n endMarkedContent: 71,\n beginCompat: 72,\n endCompat: 73,\n paintFormXObjectBegin: 74,\n paintFormXObjectEnd: 75,\n beginGroup: 76,\n endGroup: 77,\n beginAnnotation: 80,\n endAnnotation: 81,\n paintImageMaskXObject: 83,\n paintImageMaskXObjectGroup: 84,\n paintImageXObject: 85,\n paintInlineImageXObject: 86,\n paintInlineImageXObjectGroup: 87,\n paintImageXObjectRepeat: 88,\n paintImageMaskXObjectRepeat: 89,\n paintSolidColorImageMask: 90,\n constructPath: 91\n};\nexports.OPS = OPS;\nconst UNSUPPORTED_FEATURES = {\n forms: \"forms\",\n javaScript: \"javaScript\",\n signatures: \"signatures\",\n smask: \"smask\",\n shadingPattern: \"shadingPattern\",\n errorTilingPattern: \"errorTilingPattern\",\n errorExtGState: \"errorExtGState\",\n errorXObject: \"errorXObject\",\n errorFontLoadType3: \"errorFontLoadType3\",\n errorFontState: \"errorFontState\",\n errorFontMissing: \"errorFontMissing\",\n errorFontTranslate: \"errorFontTranslate\",\n errorColorSpace: \"errorColorSpace\",\n errorOperatorList: \"errorOperatorList\",\n errorFontToUnicode: \"errorFontToUnicode\",\n errorFontLoadNative: \"errorFontLoadNative\",\n errorFontBuildPath: \"errorFontBuildPath\",\n errorFontGetPath: \"errorFontGetPath\",\n errorMarkedContent: \"errorMarkedContent\",\n errorContentSubStream: \"errorContentSubStream\"\n};\nexports.UNSUPPORTED_FEATURES = UNSUPPORTED_FEATURES;\nconst PasswordResponses = {\n NEED_PASSWORD: 1,\n INCORRECT_PASSWORD: 2\n};\nexports.PasswordResponses = PasswordResponses;\nlet verbosity = VerbosityLevel.WARNINGS;\nfunction setVerbosityLevel(level) {\n if (Number.isInteger(level)) {\n verbosity = level;\n }\n}\nfunction getVerbosityLevel() {\n return verbosity;\n}\nfunction info(msg) {\n if (verbosity >= VerbosityLevel.INFOS) {\n console.log(`Info: ${msg}`);\n }\n}\nfunction warn(msg) {\n if (verbosity >= VerbosityLevel.WARNINGS) {\n console.log(`Warning: ${msg}`);\n }\n}\nfunction unreachable(msg) {\n throw new Error(msg);\n}\nfunction assert(cond, msg) {\n if (!cond) {\n unreachable(msg);\n }\n}\nfunction _isValidProtocol(url) {\n if (!url) {\n return false;\n }\n switch (url.protocol) {\n case \"http:\":\n case \"https:\":\n case \"ftp:\":\n case \"mailto:\":\n case \"tel:\":\n return true;\n default:\n return false;\n }\n}\nfunction createValidAbsoluteUrl(url, baseUrl = null, options = null) {\n if (!url) {\n return null;\n }\n try {\n if (options && typeof url === \"string\") {\n if (options.addDefaultProtocol && url.startsWith(\"www.\")) {\n const dots = url.match(/\\./g);\n if (dots && dots.length >= 2) {\n url = `http://${url}`;\n }\n }\n if (options.tryConvertEncoding) {\n try {\n url = stringToUTF8String(url);\n } catch (ex) {}\n }\n }\n const absoluteUrl = baseUrl ? new URL(url, baseUrl) : new URL(url);\n if (_isValidProtocol(absoluteUrl)) {\n return absoluteUrl;\n }\n } catch (ex) {}\n return null;\n}\nfunction shadow(obj, prop, value, nonSerializable = false) {\n Object.defineProperty(obj, prop, {\n value,\n enumerable: !nonSerializable,\n configurable: true,\n writable: false\n });\n return value;\n}\nconst BaseException = function BaseExceptionClosure() {\n function BaseException(message, name) {\n if (this.constructor === BaseException) {\n unreachable(\"Cannot initialize BaseException.\");\n }\n this.message = message;\n this.name = name;\n }\n BaseException.prototype = new Error();\n BaseException.constructor = BaseException;\n return BaseException;\n}();\nexports.BaseException = BaseException;\nclass PasswordException extends BaseException {\n constructor(msg, code) {\n super(msg, \"PasswordException\");\n this.code = code;\n }\n}\nexports.PasswordException = PasswordException;\nclass UnknownErrorException extends BaseException {\n constructor(msg, details) {\n super(msg, \"UnknownErrorException\");\n this.details = details;\n }\n}\nexports.UnknownErrorException = UnknownErrorException;\nclass InvalidPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"InvalidPDFException\");\n }\n}\nexports.InvalidPDFException = InvalidPDFException;\nclass MissingPDFException extends BaseException {\n constructor(msg) {\n super(msg, \"MissingPDFException\");\n }\n}\nexports.MissingPDFException = MissingPDFException;\nclass UnexpectedResponseException extends BaseException {\n constructor(msg, status) {\n super(msg, \"UnexpectedResponseException\");\n this.status = status;\n }\n}\nexports.UnexpectedResponseException = UnexpectedResponseException;\nclass FormatError extends BaseException {\n constructor(msg) {\n super(msg, \"FormatError\");\n }\n}\nexports.FormatError = FormatError;\nclass AbortException extends BaseException {\n constructor(msg) {\n super(msg, \"AbortException\");\n }\n}\nexports.AbortException = AbortException;\nfunction bytesToString(bytes) {\n if (typeof bytes !== \"object\" || bytes === null || bytes.length === undefined) {\n unreachable(\"Invalid argument for bytesToString\");\n }\n const length = bytes.length;\n const MAX_ARGUMENT_COUNT = 8192;\n if (length < MAX_ARGUMENT_COUNT) {\n return String.fromCharCode.apply(null, bytes);\n }\n const strBuf = [];\n for (let i = 0; i < length; i += MAX_ARGUMENT_COUNT) {\n const chunkEnd = Math.min(i + MAX_ARGUMENT_COUNT, length);\n const chunk = bytes.subarray(i, chunkEnd);\n strBuf.push(String.fromCharCode.apply(null, chunk));\n }\n return strBuf.join(\"\");\n}\nfunction stringToBytes(str) {\n if (typeof str !== \"string\") {\n unreachable(\"Invalid argument for stringToBytes\");\n }\n const length = str.length;\n const bytes = new Uint8Array(length);\n for (let i = 0; i < length; ++i) {\n bytes[i] = str.charCodeAt(i) & 0xff;\n }\n return bytes;\n}\nfunction string32(value) {\n return String.fromCharCode(value >> 24 & 0xff, value >> 16 & 0xff, value >> 8 & 0xff, value & 0xff);\n}\nfunction objectSize(obj) {\n return Object.keys(obj).length;\n}\nfunction objectFromMap(map) {\n const obj = Object.create(null);\n for (const [key, value] of map) {\n obj[key] = value;\n }\n return obj;\n}\nfunction isLittleEndian() {\n const buffer8 = new Uint8Array(4);\n buffer8[0] = 1;\n const view32 = new Uint32Array(buffer8.buffer, 0, 1);\n return view32[0] === 1;\n}\nfunction isEvalSupported() {\n try {\n new Function(\"\");\n return true;\n } catch (e) {\n return false;\n }\n}\nclass FeatureTest {\n static get isLittleEndian() {\n return shadow(this, \"isLittleEndian\", isLittleEndian());\n }\n static get isEvalSupported() {\n return shadow(this, \"isEvalSupported\", isEvalSupported());\n }\n static get isOffscreenCanvasSupported() {\n return shadow(this, \"isOffscreenCanvasSupported\", typeof OffscreenCanvas !== \"undefined\");\n }\n static get platform() {\n if (typeof navigator === \"undefined\") {\n return shadow(this, \"platform\", {\n isWin: false,\n isMac: false\n });\n }\n return shadow(this, \"platform\", {\n isWin: navigator.platform.includes(\"Win\"),\n isMac: navigator.platform.includes(\"Mac\")\n });\n }\n}\nexports.FeatureTest = FeatureTest;\nconst hexNumbers = [...Array(256).keys()].map(n => n.toString(16).padStart(2, \"0\"));\nclass Util {\n static makeHexColor(r, g, b) {\n return `#${hexNumbers[r]}${hexNumbers[g]}${hexNumbers[b]}`;\n }\n static scaleMinMax(transform, minMax) {\n let temp;\n if (transform[0]) {\n if (transform[0] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[0];\n minMax[1] *= transform[0];\n if (transform[3] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[3];\n minMax[3] *= transform[3];\n } else {\n temp = minMax[0];\n minMax[0] = minMax[2];\n minMax[2] = temp;\n temp = minMax[1];\n minMax[1] = minMax[3];\n minMax[3] = temp;\n if (transform[1] < 0) {\n temp = minMax[2];\n minMax[2] = minMax[3];\n minMax[3] = temp;\n }\n minMax[2] *= transform[1];\n minMax[3] *= transform[1];\n if (transform[2] < 0) {\n temp = minMax[0];\n minMax[0] = minMax[1];\n minMax[1] = temp;\n }\n minMax[0] *= transform[2];\n minMax[1] *= transform[2];\n }\n minMax[0] += transform[4];\n minMax[1] += transform[4];\n minMax[2] += transform[5];\n minMax[3] += transform[5];\n }\n static transform(m1, m2) {\n return [m1[0] * m2[0] + m1[2] * m2[1], m1[1] * m2[0] + m1[3] * m2[1], m1[0] * m2[2] + m1[2] * m2[3], m1[1] * m2[2] + m1[3] * m2[3], m1[0] * m2[4] + m1[2] * m2[5] + m1[4], m1[1] * m2[4] + m1[3] * m2[5] + m1[5]];\n }\n static applyTransform(p, m) {\n const xt = p[0] * m[0] + p[1] * m[2] + m[4];\n const yt = p[0] * m[1] + p[1] * m[3] + m[5];\n return [xt, yt];\n }\n static applyInverseTransform(p, m) {\n const d = m[0] * m[3] - m[1] * m[2];\n const xt = (p[0] * m[3] - p[1] * m[2] + m[2] * m[5] - m[4] * m[3]) / d;\n const yt = (-p[0] * m[1] + p[1] * m[0] + m[4] * m[1] - m[5] * m[0]) / d;\n return [xt, yt];\n }\n static getAxialAlignedBoundingBox(r, m) {\n const p1 = Util.applyTransform(r, m);\n const p2 = Util.applyTransform(r.slice(2, 4), m);\n const p3 = Util.applyTransform([r[0], r[3]], m);\n const p4 = Util.applyTransform([r[2], r[1]], m);\n return [Math.min(p1[0], p2[0], p3[0], p4[0]), Math.min(p1[1], p2[1], p3[1], p4[1]), Math.max(p1[0], p2[0], p3[0], p4[0]), Math.max(p1[1], p2[1], p3[1], p4[1])];\n }\n static inverseTransform(m) {\n const d = m[0] * m[3] - m[1] * m[2];\n return [m[3] / d, -m[1] / d, -m[2] / d, m[0] / d, (m[2] * m[5] - m[4] * m[3]) / d, (m[4] * m[1] - m[5] * m[0]) / d];\n }\n static singularValueDecompose2dScale(m) {\n const transpose = [m[0], m[2], m[1], m[3]];\n const a = m[0] * transpose[0] + m[1] * transpose[2];\n const b = m[0] * transpose[1] + m[1] * transpose[3];\n const c = m[2] * transpose[0] + m[3] * transpose[2];\n const d = m[2] * transpose[1] + m[3] * transpose[3];\n const first = (a + d) / 2;\n const second = Math.sqrt((a + d) ** 2 - 4 * (a * d - c * b)) / 2;\n const sx = first + second || 1;\n const sy = first - second || 1;\n return [Math.sqrt(sx), Math.sqrt(sy)];\n }\n static normalizeRect(rect) {\n const r = rect.slice(0);\n if (rect[0] > rect[2]) {\n r[0] = rect[2];\n r[2] = rect[0];\n }\n if (rect[1] > rect[3]) {\n r[1] = rect[3];\n r[3] = rect[1];\n }\n return r;\n }\n static intersect(rect1, rect2) {\n const xLow = Math.max(Math.min(rect1[0], rect1[2]), Math.min(rect2[0], rect2[2]));\n const xHigh = Math.min(Math.max(rect1[0], rect1[2]), Math.max(rect2[0], rect2[2]));\n if (xLow > xHigh) {\n return null;\n }\n const yLow = Math.max(Math.min(rect1[1], rect1[3]), Math.min(rect2[1], rect2[3]));\n const yHigh = Math.min(Math.max(rect1[1], rect1[3]), Math.max(rect2[1], rect2[3]));\n if (yLow > yHigh) {\n return null;\n }\n return [xLow, yLow, xHigh, yHigh];\n }\n static bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3) {\n const tvalues = [],\n bounds = [[], []];\n let a, b, c, t, t1, t2, b2ac, sqrtb2ac;\n for (let i = 0; i < 2; ++i) {\n if (i === 0) {\n b = 6 * x0 - 12 * x1 + 6 * x2;\n a = -3 * x0 + 9 * x1 - 9 * x2 + 3 * x3;\n c = 3 * x1 - 3 * x0;\n } else {\n b = 6 * y0 - 12 * y1 + 6 * y2;\n a = -3 * y0 + 9 * y1 - 9 * y2 + 3 * y3;\n c = 3 * y1 - 3 * y0;\n }\n if (Math.abs(a) < 1e-12) {\n if (Math.abs(b) < 1e-12) {\n continue;\n }\n t = -c / b;\n if (0 < t && t < 1) {\n tvalues.push(t);\n }\n continue;\n }\n b2ac = b * b - 4 * c * a;\n sqrtb2ac = Math.sqrt(b2ac);\n if (b2ac < 0) {\n continue;\n }\n t1 = (-b + sqrtb2ac) / (2 * a);\n if (0 < t1 && t1 < 1) {\n tvalues.push(t1);\n }\n t2 = (-b - sqrtb2ac) / (2 * a);\n if (0 < t2 && t2 < 1) {\n tvalues.push(t2);\n }\n }\n let j = tvalues.length,\n mt;\n const jlen = j;\n while (j--) {\n t = tvalues[j];\n mt = 1 - t;\n bounds[0][j] = mt * mt * mt * x0 + 3 * mt * mt * t * x1 + 3 * mt * t * t * x2 + t * t * t * x3;\n bounds[1][j] = mt * mt * mt * y0 + 3 * mt * mt * t * y1 + 3 * mt * t * t * y2 + t * t * t * y3;\n }\n bounds[0][jlen] = x0;\n bounds[1][jlen] = y0;\n bounds[0][jlen + 1] = x3;\n bounds[1][jlen + 1] = y3;\n bounds[0].length = bounds[1].length = jlen + 2;\n return [Math.min(...bounds[0]), Math.min(...bounds[1]), Math.max(...bounds[0]), Math.max(...bounds[1])];\n }\n}\nexports.Util = Util;\nconst PDFStringTranslateTable = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2d8, 0x2c7, 0x2c6, 0x2d9, 0x2dd, 0x2db, 0x2da, 0x2dc, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0x2022, 0x2020, 0x2021, 0x2026, 0x2014, 0x2013, 0x192, 0x2044, 0x2039, 0x203a, 0x2212, 0x2030, 0x201e, 0x201c, 0x201d, 0x2018, 0x2019, 0x201a, 0x2122, 0xfb01, 0xfb02, 0x141, 0x152, 0x160, 0x178, 0x17d, 0x131, 0x142, 0x153, 0x161, 0x17e, 0, 0x20ac];\nfunction stringToPDFString(str) {\n if (str[0] >= \"\\xEF\") {\n let encoding;\n if (str[0] === \"\\xFE\" && str[1] === \"\\xFF\") {\n encoding = \"utf-16be\";\n } else if (str[0] === \"\\xFF\" && str[1] === \"\\xFE\") {\n encoding = \"utf-16le\";\n } else if (str[0] === \"\\xEF\" && str[1] === \"\\xBB\" && str[2] === \"\\xBF\") {\n encoding = \"utf-8\";\n }\n if (encoding) {\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = stringToBytes(str);\n return decoder.decode(buffer);\n } catch (ex) {\n warn(`stringToPDFString: \"${ex}\".`);\n }\n }\n }\n const strBuf = [];\n for (let i = 0, ii = str.length; i < ii; i++) {\n const code = PDFStringTranslateTable[str.charCodeAt(i)];\n strBuf.push(code ? String.fromCharCode(code) : str.charAt(i));\n }\n return strBuf.join(\"\");\n}\nfunction stringToUTF8String(str) {\n return decodeURIComponent(escape(str));\n}\nfunction utf8StringToString(str) {\n return unescape(encodeURIComponent(str));\n}\nfunction isArrayBuffer(v) {\n return typeof v === \"object\" && v !== null && v.byteLength !== undefined;\n}\nfunction isArrayEqual(arr1, arr2) {\n if (arr1.length !== arr2.length) {\n return false;\n }\n for (let i = 0, ii = arr1.length; i < ii; i++) {\n if (arr1[i] !== arr2[i]) {\n return false;\n }\n }\n return true;\n}\nfunction getModificationDate(date = new Date()) {\n const buffer = [date.getUTCFullYear().toString(), (date.getUTCMonth() + 1).toString().padStart(2, \"0\"), date.getUTCDate().toString().padStart(2, \"0\"), date.getUTCHours().toString().padStart(2, \"0\"), date.getUTCMinutes().toString().padStart(2, \"0\"), date.getUTCSeconds().toString().padStart(2, \"0\")];\n return buffer.join(\"\");\n}\nfunction createPromiseCapability() {\n const capability = Object.create(null);\n let isSettled = false;\n Object.defineProperty(capability, \"settled\", {\n get() {\n return isSettled;\n }\n });\n capability.promise = new Promise(function (resolve, reject) {\n capability.resolve = function (data) {\n isSettled = true;\n resolve(data);\n };\n capability.reject = function (reason) {\n isSettled = true;\n reject(reason);\n };\n });\n return capability;\n}\n\n/***/ }),\n/* 2 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.build = exports.RenderTask = exports.PDFWorkerUtil = exports.PDFWorker = exports.PDFPageProxy = exports.PDFDocumentProxy = exports.PDFDocumentLoadingTask = exports.PDFDataRangeTransport = exports.LoopbackPort = exports.DefaultStandardFontDataFactory = exports.DefaultCanvasFactory = exports.DefaultCMapReaderFactory = void 0;\nexports.getDocument = getDocument;\nexports.version = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _font_loader = __w_pdfjs_require__(9);\nvar _canvas = __w_pdfjs_require__(11);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _is_node = __w_pdfjs_require__(10);\nvar _message_handler = __w_pdfjs_require__(15);\nvar _metadata = __w_pdfjs_require__(16);\nvar _optional_content_config = __w_pdfjs_require__(17);\nvar _transport_stream = __w_pdfjs_require__(18);\nvar _xfa_text = __w_pdfjs_require__(19);\nconst DEFAULT_RANGE_CHUNK_SIZE = 65536;\nconst RENDERING_CANCELLED_TIMEOUT = 100;\nlet DefaultCanvasFactory = _display_utils.DOMCanvasFactory;\nexports.DefaultCanvasFactory = DefaultCanvasFactory;\nlet DefaultCMapReaderFactory = _display_utils.DOMCMapReaderFactory;\nexports.DefaultCMapReaderFactory = DefaultCMapReaderFactory;\nlet DefaultStandardFontDataFactory = _display_utils.DOMStandardFontDataFactory;\nexports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory;\nif (_is_node.isNodeJS) {\n const {\n NodeCanvasFactory,\n NodeCMapReaderFactory,\n NodeStandardFontDataFactory\n } = __w_pdfjs_require__(20);\n exports.DefaultCanvasFactory = DefaultCanvasFactory = NodeCanvasFactory;\n exports.DefaultCMapReaderFactory = DefaultCMapReaderFactory = NodeCMapReaderFactory;\n exports.DefaultStandardFontDataFactory = DefaultStandardFontDataFactory = NodeStandardFontDataFactory;\n}\nlet createPDFNetworkStream;\n{\n if (_is_node.isNodeJS) {\n const {\n PDFNodeStream\n } = __w_pdfjs_require__(21);\n createPDFNetworkStream = params => {\n return new PDFNodeStream(params);\n };\n } else {\n const {\n PDFNetworkStream\n } = __w_pdfjs_require__(24);\n const {\n PDFFetchStream\n } = __w_pdfjs_require__(25);\n createPDFNetworkStream = params => {\n return (0, _display_utils.isValidFetchUrl)(params.url) ? new PDFFetchStream(params) : new PDFNetworkStream(params);\n };\n }\n}\nfunction getDocument(src) {\n if (typeof src === \"string\" || src instanceof URL) {\n src = {\n url: src\n };\n } else if ((0, _util.isArrayBuffer)(src)) {\n src = {\n data: src\n };\n } else if (src instanceof PDFDataRangeTransport) {\n (0, _display_utils.deprecated)(\"`PDFDataRangeTransport`-instance, \" + \"please use a parameter object with `range`-property instead.\");\n src = {\n range: src\n };\n } else {\n if (typeof src !== \"object\") {\n throw new Error(\"Invalid parameter in getDocument, \" + \"need either string, URL, TypedArray, or parameter object.\");\n }\n }\n if (!src.url && !src.data && !src.range) {\n throw new Error(\"Invalid parameter object: need either .data, .range or .url\");\n }\n const task = new PDFDocumentLoadingTask();\n const url = src.url ? getUrlProp(src.url) : null;\n const data = src.data ? getDataProp(src.data) : null;\n const httpHeaders = src.httpHeaders || null;\n const withCredentials = src.withCredentials === true;\n const password = src.password ?? null;\n const rangeTransport = src.range instanceof PDFDataRangeTransport ? src.range : null;\n const rangeChunkSize = Number.isInteger(src.rangeChunkSize) && src.rangeChunkSize > 0 ? src.rangeChunkSize : DEFAULT_RANGE_CHUNK_SIZE;\n let worker = src.worker instanceof PDFWorker ? src.worker : null;\n const verbosity = src.verbosity;\n const docBaseUrl = typeof src.docBaseUrl === \"string\" && !(0, _display_utils.isDataScheme)(src.docBaseUrl) ? src.docBaseUrl : null;\n const cMapUrl = typeof src.cMapUrl === \"string\" ? src.cMapUrl : null;\n const cMapPacked = src.cMapPacked !== false;\n const CMapReaderFactory = src.CMapReaderFactory || DefaultCMapReaderFactory;\n const standardFontDataUrl = typeof src.standardFontDataUrl === \"string\" ? src.standardFontDataUrl : null;\n const StandardFontDataFactory = src.StandardFontDataFactory || DefaultStandardFontDataFactory;\n const ignoreErrors = src.stopAtErrors !== true;\n const maxImageSize = Number.isInteger(src.maxImageSize) && src.maxImageSize > -1 ? src.maxImageSize : -1;\n const isEvalSupported = src.isEvalSupported !== false;\n const isOffscreenCanvasSupported = typeof src.isOffscreenCanvasSupported === \"boolean\" ? src.isOffscreenCanvasSupported : !_is_node.isNodeJS;\n const disableFontFace = typeof src.disableFontFace === \"boolean\" ? src.disableFontFace : _is_node.isNodeJS;\n const fontExtraProperties = src.fontExtraProperties === true;\n const enableXfa = src.enableXfa === true;\n const ownerDocument = src.ownerDocument || globalThis.document;\n const disableRange = src.disableRange === true;\n const disableStream = src.disableStream === true;\n const disableAutoFetch = src.disableAutoFetch === true;\n const pdfBug = src.pdfBug === true;\n const length = rangeTransport ? rangeTransport.length : src.length ?? NaN;\n const useSystemFonts = typeof src.useSystemFonts === \"boolean\" ? src.useSystemFonts : !_is_node.isNodeJS && !disableFontFace;\n const useWorkerFetch = typeof src.useWorkerFetch === \"boolean\" ? src.useWorkerFetch : CMapReaderFactory === _display_utils.DOMCMapReaderFactory && StandardFontDataFactory === _display_utils.DOMStandardFontDataFactory && (0, _display_utils.isValidFetchUrl)(cMapUrl, document.baseURI) && (0, _display_utils.isValidFetchUrl)(standardFontDataUrl, document.baseURI);\n const styleElement = null;\n (0, _util.setVerbosityLevel)(verbosity);\n const transportFactory = useWorkerFetch ? null : {\n cMapReaderFactory: new CMapReaderFactory({\n baseUrl: cMapUrl,\n isCompressed: cMapPacked\n }),\n standardFontDataFactory: new StandardFontDataFactory({\n baseUrl: standardFontDataUrl\n })\n };\n if (!worker) {\n const workerParams = {\n verbosity,\n port: _worker_options.GlobalWorkerOptions.workerPort\n };\n worker = workerParams.port ? PDFWorker.fromPort(workerParams) : new PDFWorker(workerParams);\n task._worker = worker;\n }\n const docId = task.docId;\n const fetchDocParams = {\n docId,\n apiVersion: '3.4.120',\n data,\n password,\n disableAutoFetch,\n rangeChunkSize,\n length,\n docBaseUrl,\n enableXfa,\n evaluatorOptions: {\n maxImageSize,\n disableFontFace,\n ignoreErrors,\n isEvalSupported,\n isOffscreenCanvasSupported,\n fontExtraProperties,\n useSystemFonts,\n cMapUrl: useWorkerFetch ? cMapUrl : null,\n standardFontDataUrl: useWorkerFetch ? standardFontDataUrl : null\n }\n };\n const transportParams = {\n ignoreErrors,\n isEvalSupported,\n disableFontFace,\n fontExtraProperties,\n enableXfa,\n ownerDocument,\n disableAutoFetch,\n pdfBug,\n styleElement\n };\n worker.promise.then(function () {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const workerIdPromise = _fetchDocument(worker, fetchDocParams);\n const networkStreamPromise = new Promise(function (resolve) {\n let networkStream;\n if (rangeTransport) {\n networkStream = new _transport_stream.PDFDataTransportStream({\n length,\n initialData: rangeTransport.initialData,\n progressiveDone: rangeTransport.progressiveDone,\n contentDispositionFilename: rangeTransport.contentDispositionFilename,\n disableRange,\n disableStream\n }, rangeTransport);\n } else if (!data) {\n networkStream = createPDFNetworkStream({\n url,\n length,\n httpHeaders,\n withCredentials,\n rangeChunkSize,\n disableRange,\n disableStream\n });\n }\n resolve(networkStream);\n });\n return Promise.all([workerIdPromise, networkStreamPromise]).then(function ([workerId, networkStream]) {\n if (task.destroyed) {\n throw new Error(\"Loading aborted\");\n }\n const messageHandler = new _message_handler.MessageHandler(docId, workerId, worker.port);\n const transport = new WorkerTransport(messageHandler, task, networkStream, transportParams, transportFactory);\n task._transport = transport;\n messageHandler.send(\"Ready\", null);\n });\n }).catch(task._capability.reject);\n return task;\n}\nasync function _fetchDocument(worker, source) {\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n const workerId = await worker.messageHandler.sendWithPromise(\"GetDocRequest\", source, source.data ? [source.data.buffer] : null);\n if (worker.destroyed) {\n throw new Error(\"Worker was destroyed\");\n }\n return workerId;\n}\nfunction getUrlProp(val) {\n if (val instanceof URL) {\n return val.href;\n }\n try {\n return new URL(val, window.location).href;\n } catch (ex) {\n if (_is_node.isNodeJS && typeof val === \"string\") {\n return val;\n }\n }\n throw new Error(\"Invalid PDF url data: \" + \"either string or URL-object is expected in the url property.\");\n}\nfunction getDataProp(val) {\n if (_is_node.isNodeJS && typeof Buffer !== \"undefined\" && val instanceof Buffer) {\n (0, _display_utils.deprecated)(\"Please provide binary data as `Uint8Array`, rather than `Buffer`.\");\n return new Uint8Array(val);\n }\n if (val instanceof Uint8Array && val.byteLength === val.buffer.byteLength) {\n return val;\n }\n if (typeof val === \"string\") {\n return (0, _util.stringToBytes)(val);\n }\n if (typeof val === \"object\" && !isNaN(val?.length) || (0, _util.isArrayBuffer)(val)) {\n return new Uint8Array(val);\n }\n throw new Error(\"Invalid PDF binary data: either TypedArray, \" + \"string, or array-like object is expected in the data property.\");\n}\nclass PDFDocumentLoadingTask {\n static #docId = 0;\n #onUnsupportedFeature = null;\n constructor() {\n this._capability = (0, _util.createPromiseCapability)();\n this._transport = null;\n this._worker = null;\n this.docId = `d${PDFDocumentLoadingTask.#docId++}`;\n this.destroyed = false;\n this.onPassword = null;\n this.onProgress = null;\n }\n get onUnsupportedFeature() {\n return this.#onUnsupportedFeature;\n }\n set onUnsupportedFeature(callback) {\n (0, _display_utils.deprecated)(\"The PDFDocumentLoadingTask onUnsupportedFeature property will be removed in the future.\");\n this.#onUnsupportedFeature = callback;\n }\n get promise() {\n return this._capability.promise;\n }\n async destroy() {\n this.destroyed = true;\n await this._transport?.destroy();\n this._transport = null;\n if (this._worker) {\n this._worker.destroy();\n this._worker = null;\n }\n }\n}\nexports.PDFDocumentLoadingTask = PDFDocumentLoadingTask;\nclass PDFDataRangeTransport {\n constructor(length, initialData, progressiveDone = false, contentDispositionFilename = null) {\n this.length = length;\n this.initialData = initialData;\n this.progressiveDone = progressiveDone;\n this.contentDispositionFilename = contentDispositionFilename;\n this._rangeListeners = [];\n this._progressListeners = [];\n this._progressiveReadListeners = [];\n this._progressiveDoneListeners = [];\n this._readyCapability = (0, _util.createPromiseCapability)();\n }\n addRangeListener(listener) {\n this._rangeListeners.push(listener);\n }\n addProgressListener(listener) {\n this._progressListeners.push(listener);\n }\n addProgressiveReadListener(listener) {\n this._progressiveReadListeners.push(listener);\n }\n addProgressiveDoneListener(listener) {\n this._progressiveDoneListeners.push(listener);\n }\n onDataRange(begin, chunk) {\n for (const listener of this._rangeListeners) {\n listener(begin, chunk);\n }\n }\n onDataProgress(loaded, total) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressListeners) {\n listener(loaded, total);\n }\n });\n }\n onDataProgressiveRead(chunk) {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveReadListeners) {\n listener(chunk);\n }\n });\n }\n onDataProgressiveDone() {\n this._readyCapability.promise.then(() => {\n for (const listener of this._progressiveDoneListeners) {\n listener();\n }\n });\n }\n transportReady() {\n this._readyCapability.resolve();\n }\n requestDataRange(begin, end) {\n (0, _util.unreachable)(\"Abstract method PDFDataRangeTransport.requestDataRange\");\n }\n abort() {}\n}\nexports.PDFDataRangeTransport = PDFDataRangeTransport;\nclass PDFDocumentProxy {\n constructor(pdfInfo, transport) {\n this._pdfInfo = pdfInfo;\n this._transport = transport;\n }\n get annotationStorage() {\n return this._transport.annotationStorage;\n }\n get numPages() {\n return this._pdfInfo.numPages;\n }\n get fingerprints() {\n return this._pdfInfo.fingerprints;\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n get allXfaHtml() {\n return this._transport._htmlForXfa;\n }\n getPage(pageNumber) {\n return this._transport.getPage(pageNumber);\n }\n getPageIndex(ref) {\n return this._transport.getPageIndex(ref);\n }\n getDestinations() {\n return this._transport.getDestinations();\n }\n getDestination(id) {\n return this._transport.getDestination(id);\n }\n getPageLabels() {\n return this._transport.getPageLabels();\n }\n getPageLayout() {\n return this._transport.getPageLayout();\n }\n getPageMode() {\n return this._transport.getPageMode();\n }\n getViewerPreferences() {\n return this._transport.getViewerPreferences();\n }\n getOpenAction() {\n return this._transport.getOpenAction();\n }\n getAttachments() {\n return this._transport.getAttachments();\n }\n getJavaScript() {\n return this._transport.getJavaScript();\n }\n getJSActions() {\n return this._transport.getDocJSActions();\n }\n getOutline() {\n return this._transport.getOutline();\n }\n getOptionalContentConfig() {\n return this._transport.getOptionalContentConfig();\n }\n getPermissions() {\n return this._transport.getPermissions();\n }\n getMetadata() {\n return this._transport.getMetadata();\n }\n getMarkInfo() {\n return this._transport.getMarkInfo();\n }\n getData() {\n return this._transport.getData();\n }\n saveDocument() {\n return this._transport.saveDocument();\n }\n getDownloadInfo() {\n return this._transport.downloadInfoCapability.promise;\n }\n cleanup(keepLoadedFonts = false) {\n return this._transport.startCleanup(keepLoadedFonts || this.isPureXfa);\n }\n destroy() {\n return this.loadingTask.destroy();\n }\n get loadingParams() {\n return this._transport.loadingParams;\n }\n get loadingTask() {\n return this._transport.loadingTask;\n }\n getFieldObjects() {\n return this._transport.getFieldObjects();\n }\n hasJSActions() {\n return this._transport.hasJSActions();\n }\n getCalculationOrderIds() {\n return this._transport.getCalculationOrderIds();\n }\n}\nexports.PDFDocumentProxy = PDFDocumentProxy;\nclass PDFPageProxy {\n constructor(pageIndex, pageInfo, transport, ownerDocument, pdfBug = false) {\n this._pageIndex = pageIndex;\n this._pageInfo = pageInfo;\n this._ownerDocument = ownerDocument;\n this._transport = transport;\n this._stats = pdfBug ? new _display_utils.StatTimer() : null;\n this._pdfBug = pdfBug;\n this.commonObjs = transport.commonObjs;\n this.objs = new PDFObjects();\n this.cleanupAfterRender = false;\n this.pendingCleanup = false;\n this._intentStates = new Map();\n this.destroyed = false;\n }\n get pageNumber() {\n return this._pageIndex + 1;\n }\n get rotate() {\n return this._pageInfo.rotate;\n }\n get ref() {\n return this._pageInfo.ref;\n }\n get userUnit() {\n return this._pageInfo.userUnit;\n }\n get view() {\n return this._pageInfo.view;\n }\n getViewport({\n scale,\n rotation = this.rotate,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n } = {}) {\n return new _display_utils.PageViewport({\n viewBox: this.view,\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n getAnnotations({\n intent = \"display\"\n } = {}) {\n const intentArgs = this._transport.getRenderingIntent(intent);\n return this._transport.getAnnotations(this._pageIndex, intentArgs.renderingIntent);\n }\n getJSActions() {\n return this._transport.getPageJSActions(this._pageIndex);\n }\n get isPureXfa() {\n return (0, _util.shadow)(this, \"isPureXfa\", !!this._transport._htmlForXfa);\n }\n async getXfa() {\n return this._transport._htmlForXfa?.children[this._pageIndex] || null;\n }\n render({\n canvasContext,\n viewport,\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n transform = null,\n canvasFactory = null,\n background = null,\n optionalContentConfigPromise = null,\n annotationCanvasMap = null,\n pageColors = null,\n printAnnotationStorage = null\n }) {\n this._stats?.time(\"Overall\");\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage);\n this.pendingCleanup = false;\n if (!optionalContentConfigPromise) {\n optionalContentConfigPromise = this._transport.getOptionalContentConfig();\n }\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n const canvasFactoryInstance = canvasFactory || new DefaultCanvasFactory({\n ownerDocument: this._ownerDocument\n });\n const intentPrint = !!(intentArgs.renderingIntent & _util.RenderingIntentFlag.PRINT);\n if (!intentState.displayReadyCapability) {\n intentState.displayReadyCapability = (0, _util.createPromiseCapability)();\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n const complete = error => {\n intentState.renderTasks.delete(internalRenderTask);\n if (this.cleanupAfterRender || intentPrint) {\n this.pendingCleanup = true;\n }\n this._tryCleanup();\n if (error) {\n internalRenderTask.capability.reject(error);\n this._abortOperatorList({\n intentState,\n reason: error instanceof Error ? error : new Error(error)\n });\n } else {\n internalRenderTask.capability.resolve();\n }\n this._stats?.timeEnd(\"Rendering\");\n this._stats?.timeEnd(\"Overall\");\n };\n const internalRenderTask = new InternalRenderTask({\n callback: complete,\n params: {\n canvasContext,\n viewport,\n transform,\n background\n },\n objs: this.objs,\n commonObjs: this.commonObjs,\n annotationCanvasMap,\n operatorList: intentState.operatorList,\n pageIndex: this._pageIndex,\n canvasFactory: canvasFactoryInstance,\n useRequestAnimationFrame: !intentPrint,\n pdfBug: this._pdfBug,\n pageColors\n });\n (intentState.renderTasks ||= new Set()).add(internalRenderTask);\n const renderTask = internalRenderTask.task;\n Promise.all([intentState.displayReadyCapability.promise, optionalContentConfigPromise]).then(([transparency, optionalContentConfig]) => {\n if (this.pendingCleanup) {\n complete();\n return;\n }\n this._stats?.time(\"Rendering\");\n internalRenderTask.initializeGraphics({\n transparency,\n optionalContentConfig\n });\n internalRenderTask.operatorListChanged();\n }).catch(complete);\n return renderTask;\n }\n getOperatorList({\n intent = \"display\",\n annotationMode = _util.AnnotationMode.ENABLE,\n printAnnotationStorage = null\n } = {}) {\n function operatorListChanged() {\n if (intentState.operatorList.lastChunk) {\n intentState.opListReadCapability.resolve(intentState.operatorList);\n intentState.renderTasks.delete(opListTask);\n }\n }\n const intentArgs = this._transport.getRenderingIntent(intent, annotationMode, printAnnotationStorage, true);\n let intentState = this._intentStates.get(intentArgs.cacheKey);\n if (!intentState) {\n intentState = Object.create(null);\n this._intentStates.set(intentArgs.cacheKey, intentState);\n }\n let opListTask;\n if (!intentState.opListReadCapability) {\n opListTask = Object.create(null);\n opListTask.operatorListChanged = operatorListChanged;\n intentState.opListReadCapability = (0, _util.createPromiseCapability)();\n (intentState.renderTasks ||= new Set()).add(opListTask);\n intentState.operatorList = {\n fnArray: [],\n argsArray: [],\n lastChunk: false,\n separateAnnots: null\n };\n this._stats?.time(\"Page Request\");\n this._pumpOperatorList(intentArgs);\n }\n return intentState.opListReadCapability.promise;\n }\n streamTextContent({\n disableCombineTextItems = false,\n includeMarkedContent = false\n } = {}) {\n const TEXT_CONTENT_CHUNK_SIZE = 100;\n return this._transport.messageHandler.sendWithStream(\"GetTextContent\", {\n pageIndex: this._pageIndex,\n combineTextItems: disableCombineTextItems !== true,\n includeMarkedContent: includeMarkedContent === true\n }, {\n highWaterMark: TEXT_CONTENT_CHUNK_SIZE,\n size(textContent) {\n return textContent.items.length;\n }\n });\n }\n getTextContent(params = {}) {\n if (this._transport._htmlForXfa) {\n return this.getXfa().then(xfa => {\n return _xfa_text.XfaText.textContent(xfa);\n });\n }\n const readableStream = this.streamTextContent(params);\n return new Promise(function (resolve, reject) {\n function pump() {\n reader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n resolve(textContent);\n return;\n }\n Object.assign(textContent.styles, value.styles);\n textContent.items.push(...value.items);\n pump();\n }, reject);\n }\n const reader = readableStream.getReader();\n const textContent = {\n items: [],\n styles: Object.create(null)\n };\n pump();\n });\n }\n getStructTree() {\n return this._transport.getStructTree(this._pageIndex);\n }\n _destroy() {\n this.destroyed = true;\n const waitOn = [];\n for (const intentState of this._intentStates.values()) {\n this._abortOperatorList({\n intentState,\n reason: new Error(\"Page was destroyed.\"),\n force: true\n });\n if (intentState.opListReadCapability) {\n continue;\n }\n for (const internalRenderTask of intentState.renderTasks) {\n waitOn.push(internalRenderTask.completed);\n internalRenderTask.cancel();\n }\n }\n this.objs.clear();\n this.pendingCleanup = false;\n return Promise.all(waitOn);\n }\n cleanup(resetStats = false) {\n this.pendingCleanup = true;\n return this._tryCleanup(resetStats);\n }\n _tryCleanup(resetStats = false) {\n if (!this.pendingCleanup) {\n return false;\n }\n for (const {\n renderTasks,\n operatorList\n } of this._intentStates.values()) {\n if (renderTasks.size > 0 || !operatorList.lastChunk) {\n return false;\n }\n }\n this._intentStates.clear();\n this.objs.clear();\n if (resetStats && this._stats) {\n this._stats = new _display_utils.StatTimer();\n }\n this.pendingCleanup = false;\n return true;\n }\n _startRenderPage(transparency, cacheKey) {\n const intentState = this._intentStates.get(cacheKey);\n if (!intentState) {\n return;\n }\n this._stats?.timeEnd(\"Page Request\");\n intentState.displayReadyCapability?.resolve(transparency);\n }\n _renderPageChunk(operatorListChunk, intentState) {\n for (let i = 0, ii = operatorListChunk.length; i < ii; i++) {\n intentState.operatorList.fnArray.push(operatorListChunk.fnArray[i]);\n intentState.operatorList.argsArray.push(operatorListChunk.argsArray[i]);\n }\n intentState.operatorList.lastChunk = operatorListChunk.lastChunk;\n intentState.operatorList.separateAnnots = operatorListChunk.separateAnnots;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n if (operatorListChunk.lastChunk) {\n this._tryCleanup();\n }\n }\n _pumpOperatorList({\n renderingIntent,\n cacheKey,\n annotationStorageMap\n }) {\n const readableStream = this._transport.messageHandler.sendWithStream(\"GetOperatorList\", {\n pageIndex: this._pageIndex,\n intent: renderingIntent,\n cacheKey,\n annotationStorage: annotationStorageMap\n });\n const reader = readableStream.getReader();\n const intentState = this._intentStates.get(cacheKey);\n intentState.streamReader = reader;\n const pump = () => {\n reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n intentState.streamReader = null;\n return;\n }\n if (this._transport.destroyed) {\n return;\n }\n this._renderPageChunk(value, intentState);\n pump();\n }, reason => {\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n if (intentState.operatorList) {\n intentState.operatorList.lastChunk = true;\n for (const internalRenderTask of intentState.renderTasks) {\n internalRenderTask.operatorListChanged();\n }\n this._tryCleanup();\n }\n if (intentState.displayReadyCapability) {\n intentState.displayReadyCapability.reject(reason);\n } else if (intentState.opListReadCapability) {\n intentState.opListReadCapability.reject(reason);\n } else {\n throw reason;\n }\n });\n };\n pump();\n }\n _abortOperatorList({\n intentState,\n reason,\n force = false\n }) {\n if (!intentState.streamReader) {\n return;\n }\n if (intentState.streamReaderCancelTimeout) {\n clearTimeout(intentState.streamReaderCancelTimeout);\n intentState.streamReaderCancelTimeout = null;\n }\n if (!force) {\n if (intentState.renderTasks.size > 0) {\n return;\n }\n if (reason instanceof _display_utils.RenderingCancelledException) {\n let delay = RENDERING_CANCELLED_TIMEOUT;\n if (reason.extraDelay > 0 && reason.extraDelay < 1000) {\n delay += reason.extraDelay;\n }\n intentState.streamReaderCancelTimeout = setTimeout(() => {\n intentState.streamReaderCancelTimeout = null;\n this._abortOperatorList({\n intentState,\n reason,\n force: true\n });\n }, delay);\n return;\n }\n }\n intentState.streamReader.cancel(new _util.AbortException(reason.message)).catch(() => {});\n intentState.streamReader = null;\n if (this._transport.destroyed) {\n return;\n }\n for (const [curCacheKey, curIntentState] of this._intentStates) {\n if (curIntentState === intentState) {\n this._intentStates.delete(curCacheKey);\n break;\n }\n }\n this.cleanup();\n }\n get stats() {\n return this._stats;\n }\n}\nexports.PDFPageProxy = PDFPageProxy;\nclass LoopbackPort {\n #listeners = new Set();\n #deferred = Promise.resolve();\n postMessage(obj, transfers) {\n const event = {\n data: structuredClone(obj, transfers)\n };\n this.#deferred.then(() => {\n for (const listener of this.#listeners) {\n listener.call(this, event);\n }\n });\n }\n addEventListener(name, listener) {\n this.#listeners.add(listener);\n }\n removeEventListener(name, listener) {\n this.#listeners.delete(listener);\n }\n terminate() {\n this.#listeners.clear();\n }\n}\nexports.LoopbackPort = LoopbackPort;\nconst PDFWorkerUtil = {\n isWorkerDisabled: false,\n fallbackWorkerSrc: null,\n fakeWorkerId: 0\n};\nexports.PDFWorkerUtil = PDFWorkerUtil;\n{\n if (_is_node.isNodeJS && typeof require === \"function\") {\n PDFWorkerUtil.isWorkerDisabled = true;\n PDFWorkerUtil.fallbackWorkerSrc = \"./pdf.worker.js\";\n } else if (typeof document === \"object\") {\n const pdfjsFilePath = document?.currentScript?.src;\n if (pdfjsFilePath) {\n PDFWorkerUtil.fallbackWorkerSrc = pdfjsFilePath.replace(/(\\.(?:min\\.)?js)(\\?.*)?$/i, \".worker$1$2\");\n }\n }\n PDFWorkerUtil.isSameOrigin = function (baseUrl, otherUrl) {\n let base;\n try {\n base = new URL(baseUrl);\n if (!base.origin || base.origin === \"null\") {\n return false;\n }\n } catch (e) {\n return false;\n }\n const other = new URL(otherUrl, base);\n return base.origin === other.origin;\n };\n PDFWorkerUtil.createCDNWrapper = function (url) {\n const wrapper = `importScripts(\"${url}\");`;\n return URL.createObjectURL(new Blob([wrapper]));\n };\n}\nclass PDFWorker {\n static #workerPorts = new WeakMap();\n constructor({\n name = null,\n port = null,\n verbosity = (0, _util.getVerbosityLevel)()\n } = {}) {\n if (port && PDFWorker.#workerPorts.has(port)) {\n throw new Error(\"Cannot use more than one PDFWorker per port.\");\n }\n this.name = name;\n this.destroyed = false;\n this.verbosity = verbosity;\n this._readyCapability = (0, _util.createPromiseCapability)();\n this._port = null;\n this._webWorker = null;\n this._messageHandler = null;\n if (port) {\n PDFWorker.#workerPorts.set(port, this);\n this._initializeFromPort(port);\n return;\n }\n this._initialize();\n }\n get promise() {\n return this._readyCapability.promise;\n }\n get port() {\n return this._port;\n }\n get messageHandler() {\n return this._messageHandler;\n }\n _initializeFromPort(port) {\n this._port = port;\n this._messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", port);\n this._messageHandler.on(\"ready\", function () {});\n this._readyCapability.resolve();\n this._messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }\n _initialize() {\n if (!PDFWorkerUtil.isWorkerDisabled && !PDFWorker._mainThreadWorkerMessageHandler) {\n let {\n workerSrc\n } = PDFWorker;\n try {\n if (!PDFWorkerUtil.isSameOrigin(window.location.href, workerSrc)) {\n workerSrc = PDFWorkerUtil.createCDNWrapper(new URL(workerSrc, window.location).href);\n }\n const worker = new Worker(workerSrc);\n const messageHandler = new _message_handler.MessageHandler(\"main\", \"worker\", worker);\n const terminateEarly = () => {\n worker.removeEventListener(\"error\", onWorkerError);\n messageHandler.destroy();\n worker.terminate();\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n } else {\n this._setupFakeWorker();\n }\n };\n const onWorkerError = () => {\n if (!this._webWorker) {\n terminateEarly();\n }\n };\n worker.addEventListener(\"error\", onWorkerError);\n messageHandler.on(\"test\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n if (data) {\n this._messageHandler = messageHandler;\n this._port = worker;\n this._webWorker = worker;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n } else {\n this._setupFakeWorker();\n messageHandler.destroy();\n worker.terminate();\n }\n });\n messageHandler.on(\"ready\", data => {\n worker.removeEventListener(\"error\", onWorkerError);\n if (this.destroyed) {\n terminateEarly();\n return;\n }\n try {\n sendTest();\n } catch (e) {\n this._setupFakeWorker();\n }\n });\n const sendTest = () => {\n const testObj = new Uint8Array();\n messageHandler.send(\"test\", testObj, [testObj.buffer]);\n };\n sendTest();\n return;\n } catch (e) {\n (0, _util.info)(\"The worker has been disabled.\");\n }\n }\n this._setupFakeWorker();\n }\n _setupFakeWorker() {\n if (!PDFWorkerUtil.isWorkerDisabled) {\n (0, _util.warn)(\"Setting up fake worker.\");\n PDFWorkerUtil.isWorkerDisabled = true;\n }\n PDFWorker._setupFakeWorkerGlobal.then(WorkerMessageHandler => {\n if (this.destroyed) {\n this._readyCapability.reject(new Error(\"Worker was destroyed\"));\n return;\n }\n const port = new LoopbackPort();\n this._port = port;\n const id = `fake${PDFWorkerUtil.fakeWorkerId++}`;\n const workerHandler = new _message_handler.MessageHandler(id + \"_worker\", id, port);\n WorkerMessageHandler.setup(workerHandler, port);\n const messageHandler = new _message_handler.MessageHandler(id, id + \"_worker\", port);\n this._messageHandler = messageHandler;\n this._readyCapability.resolve();\n messageHandler.send(\"configure\", {\n verbosity: this.verbosity\n });\n }).catch(reason => {\n this._readyCapability.reject(new Error(`Setting up fake worker failed: \"${reason.message}\".`));\n });\n }\n destroy() {\n this.destroyed = true;\n if (this._webWorker) {\n this._webWorker.terminate();\n this._webWorker = null;\n }\n PDFWorker.#workerPorts.delete(this._port);\n this._port = null;\n if (this._messageHandler) {\n this._messageHandler.destroy();\n this._messageHandler = null;\n }\n }\n static fromPort(params) {\n if (!params?.port) {\n throw new Error(\"PDFWorker.fromPort - invalid method signature.\");\n }\n if (this.#workerPorts.has(params.port)) {\n return this.#workerPorts.get(params.port);\n }\n return new PDFWorker(params);\n }\n static get workerSrc() {\n if (_worker_options.GlobalWorkerOptions.workerSrc) {\n return _worker_options.GlobalWorkerOptions.workerSrc;\n }\n if (PDFWorkerUtil.fallbackWorkerSrc !== null) {\n if (!_is_node.isNodeJS) {\n (0, _display_utils.deprecated)('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n return PDFWorkerUtil.fallbackWorkerSrc;\n }\n throw new Error('No \"GlobalWorkerOptions.workerSrc\" specified.');\n }\n static get _mainThreadWorkerMessageHandler() {\n try {\n return globalThis.pdfjsWorker?.WorkerMessageHandler || null;\n } catch (ex) {\n return null;\n }\n }\n static get _setupFakeWorkerGlobal() {\n const loader = async () => {\n const mainWorkerMessageHandler = this._mainThreadWorkerMessageHandler;\n if (mainWorkerMessageHandler) {\n return mainWorkerMessageHandler;\n }\n if (_is_node.isNodeJS && typeof require === \"function\") {\n const worker = eval(\"require\")(this.workerSrc);\n return worker.WorkerMessageHandler;\n }\n await (0, _display_utils.loadScript)(this.workerSrc);\n return window.pdfjsWorker.WorkerMessageHandler;\n };\n return (0, _util.shadow)(this, \"_setupFakeWorkerGlobal\", loader());\n }\n}\nexports.PDFWorker = PDFWorker;\nclass WorkerTransport {\n #methodPromises = new Map();\n #pageCache = new Map();\n #pagePromises = new Map();\n constructor(messageHandler, loadingTask, networkStream, params, factory) {\n this.messageHandler = messageHandler;\n this.loadingTask = loadingTask;\n this.commonObjs = new PDFObjects();\n this.fontLoader = new _font_loader.FontLoader({\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n ownerDocument: params.ownerDocument,\n styleElement: params.styleElement\n });\n this._params = params;\n this.cMapReaderFactory = factory?.cMapReaderFactory;\n this.standardFontDataFactory = factory?.standardFontDataFactory;\n this.destroyed = false;\n this.destroyCapability = null;\n this._passwordCapability = null;\n this._networkStream = networkStream;\n this._fullReader = null;\n this._lastProgress = null;\n this.downloadInfoCapability = (0, _util.createPromiseCapability)();\n this.setupMessageHandler();\n }\n #cacheSimpleMethod(name, data = null) {\n const cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, data);\n this.#methodPromises.set(name, promise);\n return promise;\n }\n get annotationStorage() {\n return (0, _util.shadow)(this, \"annotationStorage\", new _annotation_storage.AnnotationStorage());\n }\n getRenderingIntent(intent, annotationMode = _util.AnnotationMode.ENABLE, printAnnotationStorage = null, isOpList = false) {\n let renderingIntent = _util.RenderingIntentFlag.DISPLAY;\n let annotationMap = null;\n switch (intent) {\n case \"any\":\n renderingIntent = _util.RenderingIntentFlag.ANY;\n break;\n case \"display\":\n break;\n case \"print\":\n renderingIntent = _util.RenderingIntentFlag.PRINT;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid intent: ${intent}`);\n }\n switch (annotationMode) {\n case _util.AnnotationMode.DISABLE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_DISABLE;\n break;\n case _util.AnnotationMode.ENABLE:\n break;\n case _util.AnnotationMode.ENABLE_FORMS:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_FORMS;\n break;\n case _util.AnnotationMode.ENABLE_STORAGE:\n renderingIntent += _util.RenderingIntentFlag.ANNOTATIONS_STORAGE;\n const annotationStorage = renderingIntent & _util.RenderingIntentFlag.PRINT && printAnnotationStorage instanceof _annotation_storage.PrintAnnotationStorage ? printAnnotationStorage : this.annotationStorage;\n annotationMap = annotationStorage.serializable;\n break;\n default:\n (0, _util.warn)(`getRenderingIntent - invalid annotationMode: ${annotationMode}`);\n }\n if (isOpList) {\n renderingIntent += _util.RenderingIntentFlag.OPLIST;\n }\n return {\n renderingIntent,\n cacheKey: `${renderingIntent}_${_annotation_storage.AnnotationStorage.getHash(annotationMap)}`,\n annotationStorageMap: annotationMap\n };\n }\n destroy() {\n if (this.destroyCapability) {\n return this.destroyCapability.promise;\n }\n this.destroyed = true;\n this.destroyCapability = (0, _util.createPromiseCapability)();\n if (this._passwordCapability) {\n this._passwordCapability.reject(new Error(\"Worker was destroyed during onPassword callback\"));\n }\n const waitOn = [];\n for (const page of this.#pageCache.values()) {\n waitOn.push(page._destroy());\n }\n this.#pageCache.clear();\n this.#pagePromises.clear();\n if (this.hasOwnProperty(\"annotationStorage\")) {\n this.annotationStorage.resetModified();\n }\n const terminated = this.messageHandler.sendWithPromise(\"Terminate\", null);\n waitOn.push(terminated);\n Promise.all(waitOn).then(() => {\n this.commonObjs.clear();\n this.fontLoader.clear();\n this.#methodPromises.clear();\n if (this._networkStream) {\n this._networkStream.cancelAllRequests(new _util.AbortException(\"Worker was terminated.\"));\n }\n if (this.messageHandler) {\n this.messageHandler.destroy();\n this.messageHandler = null;\n }\n this.destroyCapability.resolve();\n }, this.destroyCapability.reject);\n return this.destroyCapability.promise;\n }\n setupMessageHandler() {\n const {\n messageHandler,\n loadingTask\n } = this;\n messageHandler.on(\"GetReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetReader - no `IPDFStream` instance available.\");\n this._fullReader = this._networkStream.getFullReader();\n this._fullReader.onProgress = evt => {\n this._lastProgress = {\n loaded: evt.loaded,\n total: evt.total\n };\n };\n sink.onPull = () => {\n this._fullReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n this._fullReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"ReaderHeadersReady\", data => {\n const headersCapability = (0, _util.createPromiseCapability)();\n const fullReader = this._fullReader;\n fullReader.headersReady.then(() => {\n if (!fullReader.isStreamingSupported || !fullReader.isRangeSupported) {\n if (this._lastProgress) {\n loadingTask.onProgress?.(this._lastProgress);\n }\n fullReader.onProgress = evt => {\n loadingTask.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n };\n }\n headersCapability.resolve({\n isStreamingSupported: fullReader.isStreamingSupported,\n isRangeSupported: fullReader.isRangeSupported,\n contentLength: fullReader.contentLength\n });\n }, headersCapability.reject);\n return headersCapability.promise;\n });\n messageHandler.on(\"GetRangeReader\", (data, sink) => {\n (0, _util.assert)(this._networkStream, \"GetRangeReader - no `IPDFStream` instance available.\");\n const rangeReader = this._networkStream.getRangeReader(data.begin, data.end);\n if (!rangeReader) {\n sink.close();\n return;\n }\n sink.onPull = () => {\n rangeReader.read().then(function ({\n value,\n done\n }) {\n if (done) {\n sink.close();\n return;\n }\n (0, _util.assert)(value instanceof ArrayBuffer, \"GetRangeReader - expected an ArrayBuffer.\");\n sink.enqueue(new Uint8Array(value), 1, [value]);\n }).catch(reason => {\n sink.error(reason);\n });\n };\n sink.onCancel = reason => {\n rangeReader.cancel(reason);\n sink.ready.catch(readyReason => {\n if (this.destroyed) {\n return;\n }\n throw readyReason;\n });\n };\n });\n messageHandler.on(\"GetDoc\", ({\n pdfInfo\n }) => {\n this._numPages = pdfInfo.numPages;\n this._htmlForXfa = pdfInfo.htmlForXfa;\n delete pdfInfo.htmlForXfa;\n loadingTask._capability.resolve(new PDFDocumentProxy(pdfInfo, this));\n });\n messageHandler.on(\"DocException\", function (ex) {\n let reason;\n switch (ex.name) {\n case \"PasswordException\":\n reason = new _util.PasswordException(ex.message, ex.code);\n break;\n case \"InvalidPDFException\":\n reason = new _util.InvalidPDFException(ex.message);\n break;\n case \"MissingPDFException\":\n reason = new _util.MissingPDFException(ex.message);\n break;\n case \"UnexpectedResponseException\":\n reason = new _util.UnexpectedResponseException(ex.message, ex.status);\n break;\n case \"UnknownErrorException\":\n reason = new _util.UnknownErrorException(ex.message, ex.details);\n break;\n default:\n (0, _util.unreachable)(\"DocException - expected a valid Error.\");\n }\n loadingTask._capability.reject(reason);\n });\n messageHandler.on(\"PasswordRequest\", exception => {\n this._passwordCapability = (0, _util.createPromiseCapability)();\n if (loadingTask.onPassword) {\n const updatePassword = password => {\n if (password instanceof Error) {\n this._passwordCapability.reject(password);\n } else {\n this._passwordCapability.resolve({\n password\n });\n }\n };\n try {\n loadingTask.onPassword(updatePassword, exception.code);\n } catch (ex) {\n this._passwordCapability.reject(ex);\n }\n } else {\n this._passwordCapability.reject(new _util.PasswordException(exception.message, exception.code));\n }\n return this._passwordCapability.promise;\n });\n messageHandler.on(\"DataLoaded\", data => {\n loadingTask.onProgress?.({\n loaded: data.length,\n total: data.length\n });\n this.downloadInfoCapability.resolve(data);\n });\n messageHandler.on(\"StartRenderPage\", data => {\n if (this.destroyed) {\n return;\n }\n const page = this.#pageCache.get(data.pageIndex);\n page._startRenderPage(data.transparency, data.cacheKey);\n });\n messageHandler.on(\"commonobj\", ([id, type, exportedData]) => {\n if (this.destroyed) {\n return;\n }\n if (this.commonObjs.has(id)) {\n return;\n }\n switch (type) {\n case \"Font\":\n const params = this._params;\n if (\"error\" in exportedData) {\n const exportedError = exportedData.error;\n (0, _util.warn)(`Error during font loading: ${exportedError}`);\n this.commonObjs.resolve(id, exportedError);\n break;\n }\n let fontRegistry = null;\n if (params.pdfBug && globalThis.FontInspector?.enabled) {\n fontRegistry = {\n registerFont(font, url) {\n globalThis.FontInspector.fontAdded(font, url);\n }\n };\n }\n const font = new _font_loader.FontFaceObject(exportedData, {\n isEvalSupported: params.isEvalSupported,\n disableFontFace: params.disableFontFace,\n ignoreErrors: params.ignoreErrors,\n onUnsupportedFeature: this._onUnsupportedFeature.bind(this),\n fontRegistry\n });\n this.fontLoader.bind(font).catch(reason => {\n return messageHandler.sendWithPromise(\"FontFallback\", {\n id\n });\n }).finally(() => {\n if (!params.fontExtraProperties && font.data) {\n font.data = null;\n }\n this.commonObjs.resolve(id, font);\n });\n break;\n case \"FontPath\":\n case \"Image\":\n this.commonObjs.resolve(id, exportedData);\n break;\n default:\n throw new Error(`Got unknown common object type ${type}`);\n }\n });\n messageHandler.on(\"obj\", ([id, pageIndex, type, imageData]) => {\n if (this.destroyed) {\n return;\n }\n const pageProxy = this.#pageCache.get(pageIndex);\n if (pageProxy.objs.has(id)) {\n return;\n }\n switch (type) {\n case \"Image\":\n pageProxy.objs.resolve(id, imageData);\n const MAX_IMAGE_SIZE_TO_STORE = 8000000;\n if (imageData) {\n let length;\n if (imageData.bitmap) {\n const {\n width,\n height\n } = imageData;\n length = width * height * 4;\n } else {\n length = imageData.data?.length || 0;\n }\n if (length > MAX_IMAGE_SIZE_TO_STORE) {\n pageProxy.cleanupAfterRender = true;\n }\n }\n break;\n case \"Pattern\":\n pageProxy.objs.resolve(id, imageData);\n break;\n default:\n throw new Error(`Got unknown object type ${type}`);\n }\n });\n messageHandler.on(\"DocProgress\", data => {\n if (this.destroyed) {\n return;\n }\n loadingTask.onProgress?.({\n loaded: data.loaded,\n total: data.total\n });\n });\n messageHandler.on(\"UnsupportedFeature\", this._onUnsupportedFeature.bind(this));\n messageHandler.on(\"FetchBuiltInCMap\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.cMapReaderFactory) {\n return Promise.reject(new Error(\"CMapReaderFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.cMapReaderFactory.fetch(data);\n });\n messageHandler.on(\"FetchStandardFontData\", data => {\n if (this.destroyed) {\n return Promise.reject(new Error(\"Worker was destroyed.\"));\n }\n if (!this.standardFontDataFactory) {\n return Promise.reject(new Error(\"StandardFontDataFactory not initialized, see the `useWorkerFetch` parameter.\"));\n }\n return this.standardFontDataFactory.fetch(data);\n });\n }\n _onUnsupportedFeature({\n featureId\n }) {\n if (this.destroyed) {\n return;\n }\n this.loadingTask.onUnsupportedFeature?.(featureId);\n }\n getData() {\n return this.messageHandler.sendWithPromise(\"GetData\", null);\n }\n saveDocument() {\n if (this.annotationStorage.size <= 0) {\n (0, _util.warn)(\"saveDocument called while `annotationStorage` is empty, \" + \"please use the getData-method instead.\");\n }\n return this.messageHandler.sendWithPromise(\"SaveDocument\", {\n isPureXfa: !!this._htmlForXfa,\n numPages: this._numPages,\n annotationStorage: this.annotationStorage.serializable,\n filename: this._fullReader?.filename ?? null\n }).finally(() => {\n this.annotationStorage.resetModified();\n });\n }\n getPage(pageNumber) {\n if (!Number.isInteger(pageNumber) || pageNumber <= 0 || pageNumber > this._numPages) {\n return Promise.reject(new Error(\"Invalid page request.\"));\n }\n const pageIndex = pageNumber - 1,\n cachedPromise = this.#pagePromises.get(pageIndex);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(\"GetPage\", {\n pageIndex\n }).then(pageInfo => {\n if (this.destroyed) {\n throw new Error(\"Transport destroyed\");\n }\n const page = new PDFPageProxy(pageIndex, pageInfo, this, this._params.ownerDocument, this._params.pdfBug);\n this.#pageCache.set(pageIndex, page);\n return page;\n });\n this.#pagePromises.set(pageIndex, promise);\n return promise;\n }\n getPageIndex(ref) {\n if (typeof ref !== \"object\" || ref === null || !Number.isInteger(ref.num) || ref.num < 0 || !Number.isInteger(ref.gen) || ref.gen < 0) {\n return Promise.reject(new Error(\"Invalid pageIndex request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetPageIndex\", {\n num: ref.num,\n gen: ref.gen\n });\n }\n getAnnotations(pageIndex, intent) {\n return this.messageHandler.sendWithPromise(\"GetAnnotations\", {\n pageIndex,\n intent\n });\n }\n getFieldObjects() {\n return this.#cacheSimpleMethod(\"GetFieldObjects\");\n }\n hasJSActions() {\n return this.#cacheSimpleMethod(\"HasJSActions\");\n }\n getCalculationOrderIds() {\n return this.messageHandler.sendWithPromise(\"GetCalculationOrderIds\", null);\n }\n getDestinations() {\n return this.messageHandler.sendWithPromise(\"GetDestinations\", null);\n }\n getDestination(id) {\n if (typeof id !== \"string\") {\n return Promise.reject(new Error(\"Invalid destination request.\"));\n }\n return this.messageHandler.sendWithPromise(\"GetDestination\", {\n id\n });\n }\n getPageLabels() {\n return this.messageHandler.sendWithPromise(\"GetPageLabels\", null);\n }\n getPageLayout() {\n return this.messageHandler.sendWithPromise(\"GetPageLayout\", null);\n }\n getPageMode() {\n return this.messageHandler.sendWithPromise(\"GetPageMode\", null);\n }\n getViewerPreferences() {\n return this.messageHandler.sendWithPromise(\"GetViewerPreferences\", null);\n }\n getOpenAction() {\n return this.messageHandler.sendWithPromise(\"GetOpenAction\", null);\n }\n getAttachments() {\n return this.messageHandler.sendWithPromise(\"GetAttachments\", null);\n }\n getJavaScript() {\n return this.messageHandler.sendWithPromise(\"GetJavaScript\", null);\n }\n getDocJSActions() {\n return this.messageHandler.sendWithPromise(\"GetDocJSActions\", null);\n }\n getPageJSActions(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetPageJSActions\", {\n pageIndex\n });\n }\n getStructTree(pageIndex) {\n return this.messageHandler.sendWithPromise(\"GetStructTree\", {\n pageIndex\n });\n }\n getOutline() {\n return this.messageHandler.sendWithPromise(\"GetOutline\", null);\n }\n getOptionalContentConfig() {\n return this.messageHandler.sendWithPromise(\"GetOptionalContentConfig\", null).then(results => {\n return new _optional_content_config.OptionalContentConfig(results);\n });\n }\n getPermissions() {\n return this.messageHandler.sendWithPromise(\"GetPermissions\", null);\n }\n getMetadata() {\n const name = \"GetMetadata\",\n cachedPromise = this.#methodPromises.get(name);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = this.messageHandler.sendWithPromise(name, null).then(results => {\n return {\n info: results[0],\n metadata: results[1] ? new _metadata.Metadata(results[1]) : null,\n contentDispositionFilename: this._fullReader?.filename ?? null,\n contentLength: this._fullReader?.contentLength ?? null\n };\n });\n this.#methodPromises.set(name, promise);\n return promise;\n }\n getMarkInfo() {\n return this.messageHandler.sendWithPromise(\"GetMarkInfo\", null);\n }\n async startCleanup(keepLoadedFonts = false) {\n if (this.destroyed) {\n return;\n }\n await this.messageHandler.sendWithPromise(\"Cleanup\", null);\n for (const page of this.#pageCache.values()) {\n const cleanupSuccessful = page.cleanup();\n if (!cleanupSuccessful) {\n throw new Error(`startCleanup: Page ${page.pageNumber} is currently rendering.`);\n }\n }\n this.commonObjs.clear();\n if (!keepLoadedFonts) {\n this.fontLoader.clear();\n }\n this.#methodPromises.clear();\n }\n get loadingParams() {\n const {\n disableAutoFetch,\n enableXfa\n } = this._params;\n return (0, _util.shadow)(this, \"loadingParams\", {\n disableAutoFetch,\n enableXfa\n });\n }\n}\nclass PDFObjects {\n #objs = Object.create(null);\n #ensureObj(objId) {\n const obj = this.#objs[objId];\n if (obj) {\n return obj;\n }\n return this.#objs[objId] = {\n capability: (0, _util.createPromiseCapability)(),\n data: null\n };\n }\n get(objId, callback = null) {\n if (callback) {\n const obj = this.#ensureObj(objId);\n obj.capability.promise.then(() => callback(obj.data));\n return null;\n }\n const obj = this.#objs[objId];\n if (!obj?.capability.settled) {\n throw new Error(`Requesting object that isn't resolved yet ${objId}.`);\n }\n return obj.data;\n }\n has(objId) {\n const obj = this.#objs[objId];\n return obj?.capability.settled || false;\n }\n resolve(objId, data = null) {\n const obj = this.#ensureObj(objId);\n obj.data = data;\n obj.capability.resolve();\n }\n clear() {\n for (const objId in this.#objs) {\n const {\n data\n } = this.#objs[objId];\n data?.bitmap?.close();\n }\n this.#objs = Object.create(null);\n }\n}\nclass RenderTask {\n #internalRenderTask = null;\n constructor(internalRenderTask) {\n this.#internalRenderTask = internalRenderTask;\n this.onContinue = null;\n }\n get promise() {\n return this.#internalRenderTask.capability.promise;\n }\n cancel(extraDelay = 0) {\n this.#internalRenderTask.cancel(null, extraDelay);\n }\n get separateAnnots() {\n const {\n separateAnnots\n } = this.#internalRenderTask.operatorList;\n if (!separateAnnots) {\n return false;\n }\n const {\n annotationCanvasMap\n } = this.#internalRenderTask;\n return separateAnnots.form || separateAnnots.canvas && annotationCanvasMap?.size > 0;\n }\n}\nexports.RenderTask = RenderTask;\nclass InternalRenderTask {\n static #canvasInUse = new WeakSet();\n constructor({\n callback,\n params,\n objs,\n commonObjs,\n annotationCanvasMap,\n operatorList,\n pageIndex,\n canvasFactory,\n useRequestAnimationFrame = false,\n pdfBug = false,\n pageColors = null\n }) {\n this.callback = callback;\n this.params = params;\n this.objs = objs;\n this.commonObjs = commonObjs;\n this.annotationCanvasMap = annotationCanvasMap;\n this.operatorListIdx = null;\n this.operatorList = operatorList;\n this._pageIndex = pageIndex;\n this.canvasFactory = canvasFactory;\n this._pdfBug = pdfBug;\n this.pageColors = pageColors;\n this.running = false;\n this.graphicsReadyCallback = null;\n this.graphicsReady = false;\n this._useRequestAnimationFrame = useRequestAnimationFrame === true && typeof window !== \"undefined\";\n this.cancelled = false;\n this.capability = (0, _util.createPromiseCapability)();\n this.task = new RenderTask(this);\n this._cancelBound = this.cancel.bind(this);\n this._continueBound = this._continue.bind(this);\n this._scheduleNextBound = this._scheduleNext.bind(this);\n this._nextBound = this._next.bind(this);\n this._canvas = params.canvasContext.canvas;\n }\n get completed() {\n return this.capability.promise.catch(function () {});\n }\n initializeGraphics({\n transparency = false,\n optionalContentConfig\n }) {\n if (this.cancelled) {\n return;\n }\n if (this._canvas) {\n if (InternalRenderTask.#canvasInUse.has(this._canvas)) {\n throw new Error(\"Cannot use the same canvas during multiple render() operations. \" + \"Use different canvas or ensure previous operations were \" + \"cancelled or completed.\");\n }\n InternalRenderTask.#canvasInUse.add(this._canvas);\n }\n if (this._pdfBug && globalThis.StepperManager?.enabled) {\n this.stepper = globalThis.StepperManager.create(this._pageIndex);\n this.stepper.init(this.operatorList);\n this.stepper.nextBreakPoint = this.stepper.getNextBreakPoint();\n }\n const {\n canvasContext,\n viewport,\n transform,\n background\n } = this.params;\n this.gfx = new _canvas.CanvasGraphics(canvasContext, this.commonObjs, this.objs, this.canvasFactory, {\n optionalContentConfig\n }, this.annotationCanvasMap, this.pageColors);\n this.gfx.beginDrawing({\n transform,\n viewport,\n transparency,\n background\n });\n this.operatorListIdx = 0;\n this.graphicsReady = true;\n this.graphicsReadyCallback?.();\n }\n cancel(error = null, extraDelay = 0) {\n this.running = false;\n this.cancelled = true;\n this.gfx?.endDrawing();\n if (this._canvas) {\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n }\n this.callback(error || new _display_utils.RenderingCancelledException(`Rendering cancelled, page ${this._pageIndex + 1}`, \"canvas\", extraDelay));\n }\n operatorListChanged() {\n if (!this.graphicsReady) {\n if (!this.graphicsReadyCallback) {\n this.graphicsReadyCallback = this._continueBound;\n }\n return;\n }\n this.stepper?.updateOperatorList(this.operatorList);\n if (this.running) {\n return;\n }\n this._continue();\n }\n _continue() {\n this.running = true;\n if (this.cancelled) {\n return;\n }\n if (this.task.onContinue) {\n this.task.onContinue(this._scheduleNextBound);\n } else {\n this._scheduleNext();\n }\n }\n _scheduleNext() {\n if (this._useRequestAnimationFrame) {\n window.requestAnimationFrame(() => {\n this._nextBound().catch(this._cancelBound);\n });\n } else {\n Promise.resolve().then(this._nextBound).catch(this._cancelBound);\n }\n }\n async _next() {\n if (this.cancelled) {\n return;\n }\n this.operatorListIdx = this.gfx.executeOperatorList(this.operatorList, this.operatorListIdx, this._continueBound, this.stepper);\n if (this.operatorListIdx === this.operatorList.argsArray.length) {\n this.running = false;\n if (this.operatorList.lastChunk) {\n this.gfx.endDrawing();\n if (this._canvas) {\n InternalRenderTask.#canvasInUse.delete(this._canvas);\n }\n this.callback();\n }\n }\n }\n}\nconst version = '3.4.120';\nexports.version = version;\nconst build = 'af6414988';\nexports.build = build;\n\n/***/ }),\n/* 3 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PrintAnnotationStorage = exports.AnnotationStorage = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _murmurhash = __w_pdfjs_require__(8);\nclass AnnotationStorage {\n #modified = false;\n #storage = new Map();\n constructor() {\n this.onSetModified = null;\n this.onResetModified = null;\n this.onAnnotationEditor = null;\n }\n getValue(key, defaultValue) {\n const value = this.#storage.get(key);\n if (value === undefined) {\n return defaultValue;\n }\n return Object.assign(defaultValue, value);\n }\n getRawValue(key) {\n return this.#storage.get(key);\n }\n remove(key) {\n this.#storage.delete(key);\n if (this.#storage.size === 0) {\n this.resetModified();\n }\n if (typeof this.onAnnotationEditor === \"function\") {\n for (const value of this.#storage.values()) {\n if (value instanceof _editor.AnnotationEditor) {\n return;\n }\n }\n this.onAnnotationEditor(null);\n }\n }\n setValue(key, value) {\n const obj = this.#storage.get(key);\n let modified = false;\n if (obj !== undefined) {\n for (const [entry, val] of Object.entries(value)) {\n if (obj[entry] !== val) {\n modified = true;\n obj[entry] = val;\n }\n }\n } else {\n modified = true;\n this.#storage.set(key, value);\n }\n if (modified) {\n this.#setModified();\n }\n if (value instanceof _editor.AnnotationEditor && typeof this.onAnnotationEditor === \"function\") {\n this.onAnnotationEditor(value.constructor._type);\n }\n }\n has(key) {\n return this.#storage.has(key);\n }\n getAll() {\n return this.#storage.size > 0 ? (0, _util.objectFromMap)(this.#storage) : null;\n }\n setAll(obj) {\n for (const [key, val] of Object.entries(obj)) {\n this.setValue(key, val);\n }\n }\n get size() {\n return this.#storage.size;\n }\n #setModified() {\n if (!this.#modified) {\n this.#modified = true;\n if (typeof this.onSetModified === \"function\") {\n this.onSetModified();\n }\n }\n }\n resetModified() {\n if (this.#modified) {\n this.#modified = false;\n if (typeof this.onResetModified === \"function\") {\n this.onResetModified();\n }\n }\n }\n get print() {\n return new PrintAnnotationStorage(this);\n }\n get serializable() {\n if (this.#storage.size === 0) {\n return null;\n }\n const clone = new Map();\n for (const [key, val] of this.#storage) {\n const serialized = val instanceof _editor.AnnotationEditor ? val.serialize() : val;\n if (serialized) {\n clone.set(key, serialized);\n }\n }\n return clone;\n }\n static getHash(map) {\n if (!map) {\n return \"\";\n }\n const hash = new _murmurhash.MurmurHash3_64();\n for (const [key, val] of map) {\n hash.update(`${key}:${JSON.stringify(val)}`);\n }\n return hash.hexdigest();\n }\n}\nexports.AnnotationStorage = AnnotationStorage;\nclass PrintAnnotationStorage extends AnnotationStorage {\n #serializable = null;\n constructor(parent) {\n super();\n this.#serializable = structuredClone(parent.serializable);\n }\n get print() {\n (0, _util.unreachable)(\"Should not call PrintAnnotationStorage.print\");\n }\n get serializable() {\n return this.#serializable;\n }\n}\nexports.PrintAnnotationStorage = PrintAnnotationStorage;\n\n/***/ }),\n/* 4 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditor = void 0;\nvar _tools = __w_pdfjs_require__(5);\nvar _util = __w_pdfjs_require__(1);\nclass AnnotationEditor {\n #boundFocusin = this.focusin.bind(this);\n #boundFocusout = this.focusout.bind(this);\n #hasBeenSelected = false;\n #isEditing = false;\n #isInEditMode = false;\n _uiManager = null;\n #zIndex = AnnotationEditor._zIndex++;\n static _colorManager = new _tools.ColorManager();\n static _zIndex = 1;\n constructor(parameters) {\n if (this.constructor === AnnotationEditor) {\n (0, _util.unreachable)(\"Cannot initialize AnnotationEditor.\");\n }\n this.parent = parameters.parent;\n this.id = parameters.id;\n this.width = this.height = null;\n this.pageIndex = parameters.parent.pageIndex;\n this.name = parameters.name;\n this.div = null;\n this._uiManager = parameters.uiManager;\n const {\n rotation,\n rawDims: {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n }\n } = this.parent.viewport;\n this.rotation = rotation;\n this.pageDimensions = [pageWidth, pageHeight];\n this.pageTranslation = [pageX, pageY];\n const [width, height] = this.parentDimensions;\n this.x = parameters.x / width;\n this.y = parameters.y / height;\n this.isAttachedToDOM = false;\n }\n static get _defaultLineColor() {\n return (0, _util.shadow)(this, \"_defaultLineColor\", this._colorManager.getHexCode(\"CanvasText\"));\n }\n addCommands(params) {\n this._uiManager.addCommands(params);\n }\n get currentLayer() {\n return this._uiManager.currentLayer;\n }\n setInBackground() {\n this.div.style.zIndex = 0;\n }\n setInForeground() {\n this.div.style.zIndex = this.#zIndex;\n }\n setParent(parent) {\n if (parent !== null) {\n this.pageIndex = parent.pageIndex;\n this.pageDimensions = parent.pageDimensions;\n }\n this.parent = parent;\n }\n focusin(event) {\n if (!this.#hasBeenSelected) {\n this.parent.setSelected(this);\n } else {\n this.#hasBeenSelected = false;\n }\n }\n focusout(event) {\n if (!this.isAttachedToDOM) {\n return;\n }\n const target = event.relatedTarget;\n if (target?.closest(`#${this.id}`)) {\n return;\n }\n event.preventDefault();\n if (!this.parent?.isMultipleSelection) {\n this.commitOrRemove();\n }\n }\n commitOrRemove() {\n if (this.isEmpty()) {\n this.remove();\n } else {\n this.commit();\n }\n }\n commit() {\n this.addToAnnotationStorage();\n }\n addToAnnotationStorage() {\n this._uiManager.addToAnnotationStorage(this);\n }\n dragstart(event) {\n const rect = this.parent.div.getBoundingClientRect();\n this.startX = event.clientX - rect.x;\n this.startY = event.clientY - rect.y;\n event.dataTransfer.setData(\"text/plain\", this.id);\n event.dataTransfer.effectAllowed = \"move\";\n }\n setAt(x, y, tx, ty) {\n const [width, height] = this.parentDimensions;\n [tx, ty] = this.screenToPageTranslation(tx, ty);\n this.x = (x + tx) / width;\n this.y = (y + ty) / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n translate(x, y) {\n const [width, height] = this.parentDimensions;\n [x, y] = this.screenToPageTranslation(x, y);\n this.x += x / width;\n this.y += y / height;\n this.div.style.left = `${100 * this.x}%`;\n this.div.style.top = `${100 * this.y}%`;\n }\n screenToPageTranslation(x, y) {\n switch (this.parentRotation) {\n case 90:\n return [y, -x];\n case 180:\n return [-x, -y];\n case 270:\n return [-y, x];\n default:\n return [x, y];\n }\n }\n get parentScale() {\n return this._uiManager.viewParameters.realScale;\n }\n get parentRotation() {\n return this._uiManager.viewParameters.rotation;\n }\n get parentDimensions() {\n const {\n realScale\n } = this._uiManager.viewParameters;\n const [pageWidth, pageHeight] = this.pageDimensions;\n return [pageWidth * realScale, pageHeight * realScale];\n }\n setDims(width, height) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.div.style.width = `${100 * width / parentWidth}%`;\n this.div.style.height = `${100 * height / parentHeight}%`;\n }\n fixDims() {\n const {\n style\n } = this.div;\n const {\n height,\n width\n } = style;\n const widthPercent = width.endsWith(\"%\");\n const heightPercent = height.endsWith(\"%\");\n if (widthPercent && heightPercent) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n if (!widthPercent) {\n style.width = `${100 * parseFloat(width) / parentWidth}%`;\n }\n if (!heightPercent) {\n style.height = `${100 * parseFloat(height) / parentHeight}%`;\n }\n }\n getInitialTranslation() {\n return [0, 0];\n }\n render() {\n this.div = document.createElement(\"div\");\n this.div.setAttribute(\"data-editor-rotation\", (360 - this.rotation) % 360);\n this.div.className = this.name;\n this.div.setAttribute(\"id\", this.id);\n this.div.setAttribute(\"tabIndex\", 0);\n this.setInForeground();\n this.div.addEventListener(\"focusin\", this.#boundFocusin);\n this.div.addEventListener(\"focusout\", this.#boundFocusout);\n const [tx, ty] = this.getInitialTranslation();\n this.translate(tx, ty);\n (0, _tools.bindEvents)(this, this.div, [\"dragstart\", \"pointerdown\"]);\n return this.div;\n }\n pointerdown(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n event.preventDefault();\n return;\n }\n if (event.ctrlKey && !isMac || event.shiftKey || event.metaKey && isMac) {\n this.parent.toggleSelected(this);\n } else {\n this.parent.setSelected(this);\n }\n this.#hasBeenSelected = true;\n }\n getRect(tx, ty) {\n const scale = this.parentScale;\n const [pageWidth, pageHeight] = this.pageDimensions;\n const [pageX, pageY] = this.pageTranslation;\n const shiftX = tx / scale;\n const shiftY = ty / scale;\n const x = this.x * pageWidth;\n const y = this.y * pageHeight;\n const width = this.width * pageWidth;\n const height = this.height * pageHeight;\n switch (this.rotation) {\n case 0:\n return [x + shiftX + pageX, pageHeight - y - shiftY - height + pageY, x + shiftX + width + pageX, pageHeight - y - shiftY + pageY];\n case 90:\n return [x + shiftY + pageX, pageHeight - y + shiftX + pageY, x + shiftY + height + pageX, pageHeight - y + shiftX + width + pageY];\n case 180:\n return [x - shiftX - width + pageX, pageHeight - y + shiftY + pageY, x - shiftX + pageX, pageHeight - y + shiftY + height + pageY];\n case 270:\n return [x - shiftY - height + pageX, pageHeight - y - shiftX - width + pageY, x - shiftY + pageX, pageHeight - y - shiftX + pageY];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n getRectInCurrentCoords(rect, pageHeight) {\n const [x1, y1, x2, y2] = rect;\n const width = x2 - x1;\n const height = y2 - y1;\n switch (this.rotation) {\n case 0:\n return [x1, pageHeight - y2, width, height];\n case 90:\n return [x1, pageHeight - y1, height, width];\n case 180:\n return [x2, pageHeight - y1, width, height];\n case 270:\n return [x2, pageHeight - y2, height, width];\n default:\n throw new Error(\"Invalid rotation\");\n }\n }\n onceAdded() {}\n isEmpty() {\n return false;\n }\n enableEditMode() {\n this.#isInEditMode = true;\n }\n disableEditMode() {\n this.#isInEditMode = false;\n }\n isInEditMode() {\n return this.#isInEditMode;\n }\n shouldGetKeyboardEvents() {\n return false;\n }\n needsToBeRebuilt() {\n return this.div && !this.isAttachedToDOM;\n }\n rebuild() {\n this.div?.addEventListener(\"focusin\", this.#boundFocusin);\n }\n serialize() {\n (0, _util.unreachable)(\"An editor must be serializable\");\n }\n static deserialize(data, parent, uiManager) {\n const editor = new this.prototype.constructor({\n parent,\n id: parent.getNextId(),\n uiManager\n });\n editor.rotation = data.rotation;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const [x, y, width, height] = editor.getRectInCurrentCoords(data.rect, pageHeight);\n editor.x = x / pageWidth;\n editor.y = y / pageHeight;\n editor.width = width / pageWidth;\n editor.height = height / pageHeight;\n return editor;\n }\n remove() {\n this.div.removeEventListener(\"focusin\", this.#boundFocusin);\n this.div.removeEventListener(\"focusout\", this.#boundFocusout);\n if (!this.isEmpty()) {\n this.commit();\n }\n this.parent.remove(this);\n }\n select() {\n this.div?.classList.add(\"selectedEditor\");\n }\n unselect() {\n this.div?.classList.remove(\"selectedEditor\");\n }\n updateParams(type, value) {}\n disableEditing() {}\n enableEditing() {}\n get propertiesToUpdate() {\n return {};\n }\n get contentDiv() {\n return this.div;\n }\n get isEditing() {\n return this.#isEditing;\n }\n set isEditing(value) {\n this.#isEditing = value;\n if (value) {\n this.parent.setSelected(this);\n this.parent.setActiveEditor(this);\n } else {\n this.parent.setActiveEditor(null);\n }\n }\n}\nexports.AnnotationEditor = AnnotationEditor;\n\n/***/ }),\n/* 5 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.KeyboardManager = exports.CommandManager = exports.ColorManager = exports.AnnotationEditorUIManager = void 0;\nexports.bindEvents = bindEvents;\nexports.opacityToHex = opacityToHex;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction bindEvents(obj, element, names) {\n for (const name of names) {\n element.addEventListener(name, obj[name].bind(obj));\n }\n}\nfunction opacityToHex(opacity) {\n return Math.round(Math.min(255, Math.max(1, 255 * opacity))).toString(16).padStart(2, \"0\");\n}\nclass IdManager {\n #id = 0;\n getId() {\n return `${_util.AnnotationEditorPrefix}${this.#id++}`;\n }\n}\nclass CommandManager {\n #commands = [];\n #locked = false;\n #maxSize;\n #position = -1;\n constructor(maxSize = 128) {\n this.#maxSize = maxSize;\n }\n add({\n cmd,\n undo,\n mustExec,\n type = NaN,\n overwriteIfSameType = false,\n keepUndo = false\n }) {\n if (mustExec) {\n cmd();\n }\n if (this.#locked) {\n return;\n }\n const save = {\n cmd,\n undo,\n type\n };\n if (this.#position === -1) {\n if (this.#commands.length > 0) {\n this.#commands.length = 0;\n }\n this.#position = 0;\n this.#commands.push(save);\n return;\n }\n if (overwriteIfSameType && this.#commands[this.#position].type === type) {\n if (keepUndo) {\n save.undo = this.#commands[this.#position].undo;\n }\n this.#commands[this.#position] = save;\n return;\n }\n const next = this.#position + 1;\n if (next === this.#maxSize) {\n this.#commands.splice(0, 1);\n } else {\n this.#position = next;\n if (next < this.#commands.length) {\n this.#commands.splice(next);\n }\n }\n this.#commands.push(save);\n }\n undo() {\n if (this.#position === -1) {\n return;\n }\n this.#locked = true;\n this.#commands[this.#position].undo();\n this.#locked = false;\n this.#position -= 1;\n }\n redo() {\n if (this.#position < this.#commands.length - 1) {\n this.#position += 1;\n this.#locked = true;\n this.#commands[this.#position].cmd();\n this.#locked = false;\n }\n }\n hasSomethingToUndo() {\n return this.#position !== -1;\n }\n hasSomethingToRedo() {\n return this.#position < this.#commands.length - 1;\n }\n destroy() {\n this.#commands = null;\n }\n}\nexports.CommandManager = CommandManager;\nclass KeyboardManager {\n constructor(callbacks) {\n this.buffer = [];\n this.callbacks = new Map();\n this.allKeys = new Set();\n const {\n isMac\n } = _util.FeatureTest.platform;\n for (const [keys, callback] of callbacks) {\n for (const key of keys) {\n const isMacKey = key.startsWith(\"mac+\");\n if (isMac && isMacKey) {\n this.callbacks.set(key.slice(4), callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n } else if (!isMac && !isMacKey) {\n this.callbacks.set(key, callback);\n this.allKeys.add(key.split(\"+\").at(-1));\n }\n }\n }\n }\n #serialize(event) {\n if (event.altKey) {\n this.buffer.push(\"alt\");\n }\n if (event.ctrlKey) {\n this.buffer.push(\"ctrl\");\n }\n if (event.metaKey) {\n this.buffer.push(\"meta\");\n }\n if (event.shiftKey) {\n this.buffer.push(\"shift\");\n }\n this.buffer.push(event.key);\n const str = this.buffer.join(\"+\");\n this.buffer.length = 0;\n return str;\n }\n exec(self, event) {\n if (!this.allKeys.has(event.key)) {\n return;\n }\n const callback = this.callbacks.get(this.#serialize(event));\n if (!callback) {\n return;\n }\n callback.bind(self)();\n event.stopPropagation();\n event.preventDefault();\n }\n}\nexports.KeyboardManager = KeyboardManager;\nclass ColorManager {\n static _colorsMapping = new Map([[\"CanvasText\", [0, 0, 0]], [\"Canvas\", [255, 255, 255]]]);\n get _colors() {\n const colors = new Map([[\"CanvasText\", null], [\"Canvas\", null]]);\n (0, _display_utils.getColorValues)(colors);\n return (0, _util.shadow)(this, \"_colors\", colors);\n }\n convert(color) {\n const rgb = (0, _display_utils.getRGB)(color);\n if (!window.matchMedia(\"(forced-colors: active)\").matches) {\n return rgb;\n }\n for (const [name, RGB] of this._colors) {\n if (RGB.every((x, i) => x === rgb[i])) {\n return ColorManager._colorsMapping.get(name);\n }\n }\n return rgb;\n }\n getHexCode(name) {\n const rgb = this._colors.get(name);\n if (!rgb) {\n return name;\n }\n return _util.Util.makeHexColor(...rgb);\n }\n}\nexports.ColorManager = ColorManager;\nclass AnnotationEditorUIManager {\n #activeEditor = null;\n #allEditors = new Map();\n #allLayers = new Map();\n #annotationStorage = null;\n #commandManager = new CommandManager();\n #currentPageIndex = 0;\n #editorTypes = null;\n #editorsToRescale = new Set();\n #eventBus = null;\n #idManager = new IdManager();\n #isEnabled = false;\n #mode = _util.AnnotationEditorType.NONE;\n #selectedEditors = new Set();\n #boundCopy = this.copy.bind(this);\n #boundCut = this.cut.bind(this);\n #boundPaste = this.paste.bind(this);\n #boundKeydown = this.keydown.bind(this);\n #boundOnEditingAction = this.onEditingAction.bind(this);\n #boundOnPageChanging = this.onPageChanging.bind(this);\n #boundOnScaleChanging = this.onScaleChanging.bind(this);\n #boundOnRotationChanging = this.onRotationChanging.bind(this);\n #previousStates = {\n isEditing: false,\n isEmpty: true,\n hasSomethingToUndo: false,\n hasSomethingToRedo: false,\n hasSelectedEditor: false\n };\n #container = null;\n static _keyboardManager = new KeyboardManager([[[\"ctrl+a\", \"mac+meta+a\"], AnnotationEditorUIManager.prototype.selectAll], [[\"ctrl+z\", \"mac+meta+z\"], AnnotationEditorUIManager.prototype.undo], [[\"ctrl+y\", \"ctrl+shift+Z\", \"mac+meta+shift+Z\"], AnnotationEditorUIManager.prototype.redo], [[\"Backspace\", \"alt+Backspace\", \"ctrl+Backspace\", \"shift+Backspace\", \"mac+Backspace\", \"mac+alt+Backspace\", \"mac+ctrl+Backspace\", \"Delete\", \"ctrl+Delete\", \"shift+Delete\"], AnnotationEditorUIManager.prototype.delete], [[\"Escape\", \"mac+Escape\"], AnnotationEditorUIManager.prototype.unselectAll]]);\n constructor(container, eventBus, annotationStorage) {\n this.#container = container;\n this.#eventBus = eventBus;\n this.#eventBus._on(\"editingaction\", this.#boundOnEditingAction);\n this.#eventBus._on(\"pagechanging\", this.#boundOnPageChanging);\n this.#eventBus._on(\"scalechanging\", this.#boundOnScaleChanging);\n this.#eventBus._on(\"rotationchanging\", this.#boundOnRotationChanging);\n this.#annotationStorage = annotationStorage;\n this.viewParameters = {\n realScale: _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS,\n rotation: 0\n };\n }\n destroy() {\n this.#removeKeyboardManager();\n this.#eventBus._off(\"editingaction\", this.#boundOnEditingAction);\n this.#eventBus._off(\"pagechanging\", this.#boundOnPageChanging);\n this.#eventBus._off(\"scalechanging\", this.#boundOnScaleChanging);\n this.#eventBus._off(\"rotationchanging\", this.#boundOnRotationChanging);\n for (const layer of this.#allLayers.values()) {\n layer.destroy();\n }\n this.#allLayers.clear();\n this.#allEditors.clear();\n this.#editorsToRescale.clear();\n this.#activeEditor = null;\n this.#selectedEditors.clear();\n this.#commandManager.destroy();\n }\n onPageChanging({\n pageNumber\n }) {\n this.#currentPageIndex = pageNumber - 1;\n }\n focusMainContainer() {\n this.#container.focus();\n }\n addShouldRescale(editor) {\n this.#editorsToRescale.add(editor);\n }\n removeShouldRescale(editor) {\n this.#editorsToRescale.delete(editor);\n }\n onScaleChanging({\n scale\n }) {\n this.commitOrRemove();\n this.viewParameters.realScale = scale * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS;\n for (const editor of this.#editorsToRescale) {\n editor.onScaleChanging();\n }\n }\n onRotationChanging({\n pagesRotation\n }) {\n this.commitOrRemove();\n this.viewParameters.rotation = pagesRotation;\n }\n addToAnnotationStorage(editor) {\n if (!editor.isEmpty() && this.#annotationStorage && !this.#annotationStorage.has(editor.id)) {\n this.#annotationStorage.setValue(editor.id, editor);\n }\n }\n #addKeyboardManager() {\n this.#container.addEventListener(\"keydown\", this.#boundKeydown);\n }\n #removeKeyboardManager() {\n this.#container.removeEventListener(\"keydown\", this.#boundKeydown);\n }\n #addCopyPasteListeners() {\n document.addEventListener(\"copy\", this.#boundCopy);\n document.addEventListener(\"cut\", this.#boundCut);\n document.addEventListener(\"paste\", this.#boundPaste);\n }\n #removeCopyPasteListeners() {\n document.removeEventListener(\"copy\", this.#boundCopy);\n document.removeEventListener(\"cut\", this.#boundCut);\n document.removeEventListener(\"paste\", this.#boundPaste);\n }\n copy(event) {\n event.preventDefault();\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n }\n if (!this.hasSelection) {\n return;\n }\n const editors = [];\n for (const editor of this.#selectedEditors) {\n if (!editor.isEmpty()) {\n editors.push(editor.serialize());\n }\n }\n if (editors.length === 0) {\n return;\n }\n event.clipboardData.setData(\"application/pdfjs\", JSON.stringify(editors));\n }\n cut(event) {\n this.copy(event);\n this.delete();\n }\n paste(event) {\n event.preventDefault();\n let data = event.clipboardData.getData(\"application/pdfjs\");\n if (!data) {\n return;\n }\n try {\n data = JSON.parse(data);\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n return;\n }\n if (!Array.isArray(data)) {\n return;\n }\n this.unselectAll();\n const layer = this.#allLayers.get(this.#currentPageIndex);\n try {\n const newEditors = [];\n for (const editor of data) {\n const deserializedEditor = layer.deserialize(editor);\n if (!deserializedEditor) {\n return;\n }\n newEditors.push(deserializedEditor);\n }\n const cmd = () => {\n for (const editor of newEditors) {\n this.#addEditorToLayer(editor);\n }\n this.#selectEditors(newEditors);\n };\n const undo = () => {\n for (const editor of newEditors) {\n editor.remove();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n } catch (ex) {\n (0, _util.warn)(`paste: \"${ex.message}\".`);\n }\n }\n keydown(event) {\n if (!this.getActive()?.shouldGetKeyboardEvents()) {\n AnnotationEditorUIManager._keyboardManager.exec(this, event);\n }\n }\n onEditingAction(details) {\n if ([\"undo\", \"redo\", \"delete\", \"selectAll\"].includes(details.name)) {\n this[details.name]();\n }\n }\n #dispatchUpdateStates(details) {\n const hasChanged = Object.entries(details).some(([key, value]) => this.#previousStates[key] !== value);\n if (hasChanged) {\n this.#eventBus.dispatch(\"annotationeditorstateschanged\", {\n source: this,\n details: Object.assign(this.#previousStates, details)\n });\n }\n }\n #dispatchUpdateUI(details) {\n this.#eventBus.dispatch(\"annotationeditorparamschanged\", {\n source: this,\n details\n });\n }\n setEditingState(isEditing) {\n if (isEditing) {\n this.#addKeyboardManager();\n this.#addCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: this.#mode !== _util.AnnotationEditorType.NONE,\n isEmpty: this.#isEmpty(),\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n hasSelectedEditor: false\n });\n } else {\n this.#removeKeyboardManager();\n this.#removeCopyPasteListeners();\n this.#dispatchUpdateStates({\n isEditing: false\n });\n }\n }\n registerEditorTypes(types) {\n if (this.#editorTypes) {\n return;\n }\n this.#editorTypes = types;\n for (const editorType of this.#editorTypes) {\n this.#dispatchUpdateUI(editorType.defaultPropertiesToUpdate);\n }\n }\n getId() {\n return this.#idManager.getId();\n }\n get currentLayer() {\n return this.#allLayers.get(this.#currentPageIndex);\n }\n get currentPageIndex() {\n return this.#currentPageIndex;\n }\n addLayer(layer) {\n this.#allLayers.set(layer.pageIndex, layer);\n if (this.#isEnabled) {\n layer.enable();\n } else {\n layer.disable();\n }\n }\n removeLayer(layer) {\n this.#allLayers.delete(layer.pageIndex);\n }\n updateMode(mode) {\n this.#mode = mode;\n if (mode === _util.AnnotationEditorType.NONE) {\n this.setEditingState(false);\n this.#disableAll();\n } else {\n this.setEditingState(true);\n this.#enableAll();\n for (const layer of this.#allLayers.values()) {\n layer.updateMode(mode);\n }\n }\n }\n updateToolbar(mode) {\n if (mode === this.#mode) {\n return;\n }\n this.#eventBus.dispatch(\"switchannotationeditormode\", {\n source: this,\n mode\n });\n }\n updateParams(type, value) {\n if (!this.#editorTypes) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.updateParams(type, value);\n }\n for (const editorType of this.#editorTypes) {\n editorType.updateDefaultParams(type, value);\n }\n }\n #enableAll() {\n if (!this.#isEnabled) {\n this.#isEnabled = true;\n for (const layer of this.#allLayers.values()) {\n layer.enable();\n }\n }\n }\n #disableAll() {\n this.unselectAll();\n if (this.#isEnabled) {\n this.#isEnabled = false;\n for (const layer of this.#allLayers.values()) {\n layer.disable();\n }\n }\n }\n getEditors(pageIndex) {\n const editors = [];\n for (const editor of this.#allEditors.values()) {\n if (editor.pageIndex === pageIndex) {\n editors.push(editor);\n }\n }\n return editors;\n }\n getEditor(id) {\n return this.#allEditors.get(id);\n }\n addEditor(editor) {\n this.#allEditors.set(editor.id, editor);\n }\n removeEditor(editor) {\n this.#allEditors.delete(editor.id);\n this.unselect(editor);\n this.#annotationStorage?.remove(editor.id);\n }\n #addEditorToLayer(editor) {\n const layer = this.#allLayers.get(editor.pageIndex);\n if (layer) {\n layer.addOrRebuild(editor);\n } else {\n this.addEditor(editor);\n }\n }\n setActiveEditor(editor) {\n if (this.#activeEditor === editor) {\n return;\n }\n this.#activeEditor = editor;\n if (editor) {\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n }\n }\n toggleSelected(editor) {\n if (this.#selectedEditors.has(editor)) {\n this.#selectedEditors.delete(editor);\n editor.unselect();\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n return;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n setSelected(editor) {\n for (const ed of this.#selectedEditors) {\n if (ed !== editor) {\n ed.unselect();\n }\n }\n this.#selectedEditors.clear();\n this.#selectedEditors.add(editor);\n editor.select();\n this.#dispatchUpdateUI(editor.propertiesToUpdate);\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n isSelected(editor) {\n return this.#selectedEditors.has(editor);\n }\n unselect(editor) {\n editor.unselect();\n this.#selectedEditors.delete(editor);\n this.#dispatchUpdateStates({\n hasSelectedEditor: this.hasSelection\n });\n }\n get hasSelection() {\n return this.#selectedEditors.size !== 0;\n }\n undo() {\n this.#commandManager.undo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: this.#commandManager.hasSomethingToUndo(),\n hasSomethingToRedo: true,\n isEmpty: this.#isEmpty()\n });\n }\n redo() {\n this.#commandManager.redo();\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: this.#commandManager.hasSomethingToRedo(),\n isEmpty: this.#isEmpty()\n });\n }\n addCommands(params) {\n this.#commandManager.add(params);\n this.#dispatchUpdateStates({\n hasSomethingToUndo: true,\n hasSomethingToRedo: false,\n isEmpty: this.#isEmpty()\n });\n }\n #isEmpty() {\n if (this.#allEditors.size === 0) {\n return true;\n }\n if (this.#allEditors.size === 1) {\n for (const editor of this.#allEditors.values()) {\n return editor.isEmpty();\n }\n }\n return false;\n }\n delete() {\n this.commitOrRemove();\n if (!this.hasSelection) {\n return;\n }\n const editors = [...this.#selectedEditors];\n const cmd = () => {\n for (const editor of editors) {\n editor.remove();\n }\n };\n const undo = () => {\n for (const editor of editors) {\n this.#addEditorToLayer(editor);\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n commitOrRemove() {\n this.#activeEditor?.commitOrRemove();\n }\n #selectEditors(editors) {\n this.#selectedEditors.clear();\n for (const editor of editors) {\n if (editor.isEmpty()) {\n continue;\n }\n this.#selectedEditors.add(editor);\n editor.select();\n }\n this.#dispatchUpdateStates({\n hasSelectedEditor: true\n });\n }\n selectAll() {\n for (const editor of this.#selectedEditors) {\n editor.commit();\n }\n this.#selectEditors(this.#allEditors.values());\n }\n unselectAll() {\n if (this.#activeEditor) {\n this.#activeEditor.commitOrRemove();\n return;\n }\n if (this.#selectedEditors.size === 0) {\n return;\n }\n for (const editor of this.#selectedEditors) {\n editor.unselect();\n }\n this.#selectedEditors.clear();\n this.#dispatchUpdateStates({\n hasSelectedEditor: false\n });\n }\n isActive(editor) {\n return this.#activeEditor === editor;\n }\n getActive() {\n return this.#activeEditor;\n }\n getMode() {\n return this.#mode;\n }\n}\nexports.AnnotationEditorUIManager = AnnotationEditorUIManager;\n\n/***/ }),\n/* 6 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.StatTimer = exports.RenderingCancelledException = exports.PixelsPerInch = exports.PageViewport = exports.PDFDateString = exports.DOMStandardFontDataFactory = exports.DOMSVGFactory = exports.DOMCanvasFactory = exports.DOMCMapReaderFactory = exports.AnnotationPrefix = void 0;\nexports.deprecated = deprecated;\nexports.getColorValues = getColorValues;\nexports.getCurrentTransform = getCurrentTransform;\nexports.getCurrentTransformInverse = getCurrentTransformInverse;\nexports.getFilenameFromUrl = getFilenameFromUrl;\nexports.getPdfFilenameFromUrl = getPdfFilenameFromUrl;\nexports.getRGB = getRGB;\nexports.getXfaPageViewport = getXfaPageViewport;\nexports.isDataScheme = isDataScheme;\nexports.isPdfFile = isPdfFile;\nexports.isValidFetchUrl = isValidFetchUrl;\nexports.loadScript = loadScript;\nexports.setLayerDimensions = setLayerDimensions;\nvar _base_factory = __w_pdfjs_require__(7);\nvar _util = __w_pdfjs_require__(1);\nconst SVG_NS = \"http://www.w3.org/2000/svg\";\nconst AnnotationPrefix = \"pdfjs_internal_id_\";\nexports.AnnotationPrefix = AnnotationPrefix;\nclass PixelsPerInch {\n static CSS = 96.0;\n static PDF = 72.0;\n static PDF_TO_CSS_UNITS = this.CSS / this.PDF;\n}\nexports.PixelsPerInch = PixelsPerInch;\nclass DOMCanvasFactory extends _base_factory.BaseCanvasFactory {\n constructor({\n ownerDocument = globalThis.document\n } = {}) {\n super();\n this._document = ownerDocument;\n }\n _createCanvas(width, height) {\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = width;\n canvas.height = height;\n return canvas;\n }\n}\nexports.DOMCanvasFactory = DOMCanvasFactory;\nasync function fetchData(url, asTypedArray = false) {\n if (isValidFetchUrl(url, document.baseURI)) {\n const response = await fetch(url);\n if (!response.ok) {\n throw new Error(response.statusText);\n }\n return asTypedArray ? new Uint8Array(await response.arrayBuffer()) : (0, _util.stringToBytes)(await response.text());\n }\n return new Promise((resolve, reject) => {\n const request = new XMLHttpRequest();\n request.open(\"GET\", url, true);\n if (asTypedArray) {\n request.responseType = \"arraybuffer\";\n }\n request.onreadystatechange = () => {\n if (request.readyState !== XMLHttpRequest.DONE) {\n return;\n }\n if (request.status === 200 || request.status === 0) {\n let data;\n if (asTypedArray && request.response) {\n data = new Uint8Array(request.response);\n } else if (!asTypedArray && request.responseText) {\n data = (0, _util.stringToBytes)(request.responseText);\n }\n if (data) {\n resolve(data);\n return;\n }\n }\n reject(new Error(request.statusText));\n };\n request.send(null);\n });\n}\nclass DOMCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url, this.isCompressed).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.DOMCMapReaderFactory = DOMCMapReaderFactory;\nclass DOMStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url, true);\n }\n}\nexports.DOMStandardFontDataFactory = DOMStandardFontDataFactory;\nclass DOMSVGFactory extends _base_factory.BaseSVGFactory {\n _createSVG(type) {\n return document.createElementNS(SVG_NS, type);\n }\n}\nexports.DOMSVGFactory = DOMSVGFactory;\nclass PageViewport {\n constructor({\n viewBox,\n scale,\n rotation,\n offsetX = 0,\n offsetY = 0,\n dontFlip = false\n }) {\n this.viewBox = viewBox;\n this.scale = scale;\n this.rotation = rotation;\n this.offsetX = offsetX;\n this.offsetY = offsetY;\n const centerX = (viewBox[2] + viewBox[0]) / 2;\n const centerY = (viewBox[3] + viewBox[1]) / 2;\n let rotateA, rotateB, rotateC, rotateD;\n rotation %= 360;\n if (rotation < 0) {\n rotation += 360;\n }\n switch (rotation) {\n case 180:\n rotateA = -1;\n rotateB = 0;\n rotateC = 0;\n rotateD = 1;\n break;\n case 90:\n rotateA = 0;\n rotateB = 1;\n rotateC = 1;\n rotateD = 0;\n break;\n case 270:\n rotateA = 0;\n rotateB = -1;\n rotateC = -1;\n rotateD = 0;\n break;\n case 0:\n rotateA = 1;\n rotateB = 0;\n rotateC = 0;\n rotateD = -1;\n break;\n default:\n throw new Error(\"PageViewport: Invalid rotation, must be a multiple of 90 degrees.\");\n }\n if (dontFlip) {\n rotateC = -rotateC;\n rotateD = -rotateD;\n }\n let offsetCanvasX, offsetCanvasY;\n let width, height;\n if (rotateA === 0) {\n offsetCanvasX = Math.abs(centerY - viewBox[1]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerX - viewBox[0]) * scale + offsetY;\n width = (viewBox[3] - viewBox[1]) * scale;\n height = (viewBox[2] - viewBox[0]) * scale;\n } else {\n offsetCanvasX = Math.abs(centerX - viewBox[0]) * scale + offsetX;\n offsetCanvasY = Math.abs(centerY - viewBox[1]) * scale + offsetY;\n width = (viewBox[2] - viewBox[0]) * scale;\n height = (viewBox[3] - viewBox[1]) * scale;\n }\n this.transform = [rotateA * scale, rotateB * scale, rotateC * scale, rotateD * scale, offsetCanvasX - rotateA * scale * centerX - rotateC * scale * centerY, offsetCanvasY - rotateB * scale * centerX - rotateD * scale * centerY];\n this.width = width;\n this.height = height;\n }\n get rawDims() {\n const {\n viewBox\n } = this;\n return (0, _util.shadow)(this, \"rawDims\", {\n pageWidth: viewBox[2] - viewBox[0],\n pageHeight: viewBox[3] - viewBox[1],\n pageX: viewBox[0],\n pageY: viewBox[1]\n });\n }\n clone({\n scale = this.scale,\n rotation = this.rotation,\n offsetX = this.offsetX,\n offsetY = this.offsetY,\n dontFlip = false\n } = {}) {\n return new PageViewport({\n viewBox: this.viewBox.slice(),\n scale,\n rotation,\n offsetX,\n offsetY,\n dontFlip\n });\n }\n convertToViewportPoint(x, y) {\n return _util.Util.applyTransform([x, y], this.transform);\n }\n convertToViewportRectangle(rect) {\n const topLeft = _util.Util.applyTransform([rect[0], rect[1]], this.transform);\n const bottomRight = _util.Util.applyTransform([rect[2], rect[3]], this.transform);\n return [topLeft[0], topLeft[1], bottomRight[0], bottomRight[1]];\n }\n convertToPdfPoint(x, y) {\n return _util.Util.applyInverseTransform([x, y], this.transform);\n }\n}\nexports.PageViewport = PageViewport;\nclass RenderingCancelledException extends _util.BaseException {\n constructor(msg, type, extraDelay = 0) {\n super(msg, \"RenderingCancelledException\");\n this.type = type;\n this.extraDelay = extraDelay;\n }\n}\nexports.RenderingCancelledException = RenderingCancelledException;\nfunction isDataScheme(url) {\n const ii = url.length;\n let i = 0;\n while (i < ii && url[i].trim() === \"\") {\n i++;\n }\n return url.substring(i, i + 5).toLowerCase() === \"data:\";\n}\nfunction isPdfFile(filename) {\n return typeof filename === \"string\" && /\\.pdf$/i.test(filename);\n}\nfunction getFilenameFromUrl(url, onlyStripPath = false) {\n if (!onlyStripPath) {\n [url] = url.split(/[#?]/, 1);\n }\n return url.substring(url.lastIndexOf(\"/\") + 1);\n}\nfunction getPdfFilenameFromUrl(url, defaultFilename = \"document.pdf\") {\n if (typeof url !== \"string\") {\n return defaultFilename;\n }\n if (isDataScheme(url)) {\n (0, _util.warn)('getPdfFilenameFromUrl: ignore \"data:\"-URL for performance reasons.');\n return defaultFilename;\n }\n const reURI = /^(?:(?:[^:]+:)?\\/\\/[^/]+)?([^?#]*)(\\?[^#]*)?(#.*)?$/;\n const reFilename = /[^/?#=]+\\.pdf\\b(?!.*\\.pdf\\b)/i;\n const splitURI = reURI.exec(url);\n let suggestedFilename = reFilename.exec(splitURI[1]) || reFilename.exec(splitURI[2]) || reFilename.exec(splitURI[3]);\n if (suggestedFilename) {\n suggestedFilename = suggestedFilename[0];\n if (suggestedFilename.includes(\"%\")) {\n try {\n suggestedFilename = reFilename.exec(decodeURIComponent(suggestedFilename))[0];\n } catch (ex) {}\n }\n }\n return suggestedFilename || defaultFilename;\n}\nclass StatTimer {\n started = Object.create(null);\n times = [];\n time(name) {\n if (name in this.started) {\n (0, _util.warn)(`Timer is already running for ${name}`);\n }\n this.started[name] = Date.now();\n }\n timeEnd(name) {\n if (!(name in this.started)) {\n (0, _util.warn)(`Timer has not been started for ${name}`);\n }\n this.times.push({\n name,\n start: this.started[name],\n end: Date.now()\n });\n delete this.started[name];\n }\n toString() {\n const outBuf = [];\n let longest = 0;\n for (const {\n name\n } of this.times) {\n longest = Math.max(name.length, longest);\n }\n for (const {\n name,\n start,\n end\n } of this.times) {\n outBuf.push(`${name.padEnd(longest)} ${end - start}ms\\n`);\n }\n return outBuf.join(\"\");\n }\n}\nexports.StatTimer = StatTimer;\nfunction isValidFetchUrl(url, baseUrl) {\n try {\n const {\n protocol\n } = baseUrl ? new URL(url, baseUrl) : new URL(url);\n return protocol === \"http:\" || protocol === \"https:\";\n } catch (ex) {\n return false;\n }\n}\nfunction loadScript(src, removeScriptElement = false) {\n return new Promise((resolve, reject) => {\n const script = document.createElement(\"script\");\n script.src = src;\n script.onload = function (evt) {\n if (removeScriptElement) {\n script.remove();\n }\n resolve(evt);\n };\n script.onerror = function () {\n reject(new Error(`Cannot load script at: ${script.src}`));\n };\n (document.head || document.documentElement).append(script);\n });\n}\nfunction deprecated(details) {\n console.log(\"Deprecated API usage: \" + details);\n}\nlet pdfDateStringRegex;\nclass PDFDateString {\n static toDateObject(input) {\n if (!input || typeof input !== \"string\") {\n return null;\n }\n if (!pdfDateStringRegex) {\n pdfDateStringRegex = new RegExp(\"^D:\" + \"(\\\\d{4})\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"(\\\\d{2})?\" + \"([Z|+|-])?\" + \"(\\\\d{2})?\" + \"'?\" + \"(\\\\d{2})?\" + \"'?\");\n }\n const matches = pdfDateStringRegex.exec(input);\n if (!matches) {\n return null;\n }\n const year = parseInt(matches[1], 10);\n let month = parseInt(matches[2], 10);\n month = month >= 1 && month <= 12 ? month - 1 : 0;\n let day = parseInt(matches[3], 10);\n day = day >= 1 && day <= 31 ? day : 1;\n let hour = parseInt(matches[4], 10);\n hour = hour >= 0 && hour <= 23 ? hour : 0;\n let minute = parseInt(matches[5], 10);\n minute = minute >= 0 && minute <= 59 ? minute : 0;\n let second = parseInt(matches[6], 10);\n second = second >= 0 && second <= 59 ? second : 0;\n const universalTimeRelation = matches[7] || \"Z\";\n let offsetHour = parseInt(matches[8], 10);\n offsetHour = offsetHour >= 0 && offsetHour <= 23 ? offsetHour : 0;\n let offsetMinute = parseInt(matches[9], 10) || 0;\n offsetMinute = offsetMinute >= 0 && offsetMinute <= 59 ? offsetMinute : 0;\n if (universalTimeRelation === \"-\") {\n hour += offsetHour;\n minute += offsetMinute;\n } else if (universalTimeRelation === \"+\") {\n hour -= offsetHour;\n minute -= offsetMinute;\n }\n return new Date(Date.UTC(year, month, day, hour, minute, second));\n }\n}\nexports.PDFDateString = PDFDateString;\nfunction getXfaPageViewport(xfaPage, {\n scale = 1,\n rotation = 0\n}) {\n const {\n width,\n height\n } = xfaPage.attributes.style;\n const viewBox = [0, 0, parseInt(width), parseInt(height)];\n return new PageViewport({\n viewBox,\n scale,\n rotation\n });\n}\nfunction getRGB(color) {\n if (color.startsWith(\"#\")) {\n const colorRGB = parseInt(color.slice(1), 16);\n return [(colorRGB & 0xff0000) >> 16, (colorRGB & 0x00ff00) >> 8, colorRGB & 0x0000ff];\n }\n if (color.startsWith(\"rgb(\")) {\n return color.slice(4, -1).split(\",\").map(x => parseInt(x));\n }\n if (color.startsWith(\"rgba(\")) {\n return color.slice(5, -1).split(\",\").map(x => parseInt(x)).slice(0, 3);\n }\n (0, _util.warn)(`Not a valid color format: \"${color}\"`);\n return [0, 0, 0];\n}\nfunction getColorValues(colors) {\n const span = document.createElement(\"span\");\n span.style.visibility = \"hidden\";\n document.body.append(span);\n for (const name of colors.keys()) {\n span.style.color = name;\n const computedColor = window.getComputedStyle(span).color;\n colors.set(name, getRGB(computedColor));\n }\n span.remove();\n}\nfunction getCurrentTransform(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform();\n return [a, b, c, d, e, f];\n}\nfunction getCurrentTransformInverse(ctx) {\n const {\n a,\n b,\n c,\n d,\n e,\n f\n } = ctx.getTransform().invertSelf();\n return [a, b, c, d, e, f];\n}\nfunction setLayerDimensions(div, viewport, mustFlip = false, mustRotate = true) {\n if (viewport instanceof PageViewport) {\n const {\n pageWidth,\n pageHeight\n } = viewport.rawDims;\n const {\n style\n } = div;\n const widthStr = `calc(var(--scale-factor) * ${pageWidth}px)`;\n const heightStr = `calc(var(--scale-factor) * ${pageHeight}px)`;\n if (!mustFlip || viewport.rotation % 180 === 0) {\n style.width = widthStr;\n style.height = heightStr;\n } else {\n style.width = heightStr;\n style.height = widthStr;\n }\n }\n if (mustRotate) {\n div.setAttribute(\"data-main-rotation\", viewport.rotation);\n }\n}\n\n/***/ }),\n/* 7 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BaseStandardFontDataFactory = exports.BaseSVGFactory = exports.BaseCanvasFactory = exports.BaseCMapReaderFactory = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass BaseCanvasFactory {\n constructor() {\n if (this.constructor === BaseCanvasFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCanvasFactory.\");\n }\n }\n create(width, height) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n const canvas = this._createCanvas(width, height);\n return {\n canvas,\n context: canvas.getContext(\"2d\")\n };\n }\n reset(canvasAndContext, width, height) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid canvas size\");\n }\n canvasAndContext.canvas.width = width;\n canvasAndContext.canvas.height = height;\n }\n destroy(canvasAndContext) {\n if (!canvasAndContext.canvas) {\n throw new Error(\"Canvas is not specified\");\n }\n canvasAndContext.canvas.width = 0;\n canvasAndContext.canvas.height = 0;\n canvasAndContext.canvas = null;\n canvasAndContext.context = null;\n }\n _createCanvas(width, height) {\n (0, _util.unreachable)(\"Abstract method `_createCanvas` called.\");\n }\n}\nexports.BaseCanvasFactory = BaseCanvasFactory;\nclass BaseCMapReaderFactory {\n constructor({\n baseUrl = null,\n isCompressed = true\n }) {\n if (this.constructor === BaseCMapReaderFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseCMapReaderFactory.\");\n }\n this.baseUrl = baseUrl;\n this.isCompressed = isCompressed;\n }\n async fetch({\n name\n }) {\n if (!this.baseUrl) {\n throw new Error('The CMap \"baseUrl\" parameter must be specified, ensure that ' + 'the \"cMapUrl\" and \"cMapPacked\" API parameters are provided.');\n }\n if (!name) {\n throw new Error(\"CMap name must be specified.\");\n }\n const url = this.baseUrl + name + (this.isCompressed ? \".bcmap\" : \"\");\n const compressionType = this.isCompressed ? _util.CMapCompressionType.BINARY : _util.CMapCompressionType.NONE;\n return this._fetchData(url, compressionType).catch(reason => {\n throw new Error(`Unable to load ${this.isCompressed ? \"binary \" : \"\"}CMap at: ${url}`);\n });\n }\n _fetchData(url, compressionType) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseCMapReaderFactory = BaseCMapReaderFactory;\nclass BaseStandardFontDataFactory {\n constructor({\n baseUrl = null\n }) {\n if (this.constructor === BaseStandardFontDataFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseStandardFontDataFactory.\");\n }\n this.baseUrl = baseUrl;\n }\n async fetch({\n filename\n }) {\n if (!this.baseUrl) {\n throw new Error('The standard font \"baseUrl\" parameter must be specified, ensure that ' + 'the \"standardFontDataUrl\" API parameter is provided.');\n }\n if (!filename) {\n throw new Error(\"Font filename must be specified.\");\n }\n const url = `${this.baseUrl}${filename}`;\n return this._fetchData(url).catch(reason => {\n throw new Error(`Unable to load font data at: ${url}`);\n });\n }\n _fetchData(url) {\n (0, _util.unreachable)(\"Abstract method `_fetchData` called.\");\n }\n}\nexports.BaseStandardFontDataFactory = BaseStandardFontDataFactory;\nclass BaseSVGFactory {\n constructor() {\n if (this.constructor === BaseSVGFactory) {\n (0, _util.unreachable)(\"Cannot initialize BaseSVGFactory.\");\n }\n }\n create(width, height, skipDimensions = false) {\n if (width <= 0 || height <= 0) {\n throw new Error(\"Invalid SVG dimensions\");\n }\n const svg = this._createSVG(\"svg:svg\");\n svg.setAttribute(\"version\", \"1.1\");\n if (!skipDimensions) {\n svg.setAttribute(\"width\", `${width}px`);\n svg.setAttribute(\"height\", `${height}px`);\n }\n svg.setAttribute(\"preserveAspectRatio\", \"none\");\n svg.setAttribute(\"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n }\n createElement(type) {\n if (typeof type !== \"string\") {\n throw new Error(\"Invalid SVG element type\");\n }\n return this._createSVG(type);\n }\n _createSVG(type) {\n (0, _util.unreachable)(\"Abstract method `_createSVG` called.\");\n }\n}\nexports.BaseSVGFactory = BaseSVGFactory;\n\n/***/ }),\n/* 8 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MurmurHash3_64 = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst SEED = 0xc3d2e1f0;\nconst MASK_HIGH = 0xffff0000;\nconst MASK_LOW = 0xffff;\nclass MurmurHash3_64 {\n constructor(seed) {\n this.h1 = seed ? seed & 0xffffffff : SEED;\n this.h2 = seed ? seed & 0xffffffff : SEED;\n }\n update(input) {\n let data, length;\n if (typeof input === \"string\") {\n data = new Uint8Array(input.length * 2);\n length = 0;\n for (let i = 0, ii = input.length; i < ii; i++) {\n const code = input.charCodeAt(i);\n if (code <= 0xff) {\n data[length++] = code;\n } else {\n data[length++] = code >>> 8;\n data[length++] = code & 0xff;\n }\n }\n } else if ((0, _util.isArrayBuffer)(input)) {\n data = input.slice();\n length = data.byteLength;\n } else {\n throw new Error(\"Wrong data format in MurmurHash3_64_update. \" + \"Input must be a string or array.\");\n }\n const blockCounts = length >> 2;\n const tailLength = length - blockCounts * 4;\n const dataUint32 = new Uint32Array(data.buffer, 0, blockCounts);\n let k1 = 0,\n k2 = 0;\n let h1 = this.h1,\n h2 = this.h2;\n const C1 = 0xcc9e2d51,\n C2 = 0x1b873593;\n const C1_LOW = C1 & MASK_LOW,\n C2_LOW = C2 & MASK_LOW;\n for (let i = 0; i < blockCounts; i++) {\n if (i & 1) {\n k1 = dataUint32[i];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n h1 ^= k1;\n h1 = h1 << 13 | h1 >>> 19;\n h1 = h1 * 5 + 0xe6546b64;\n } else {\n k2 = dataUint32[i];\n k2 = k2 * C1 & MASK_HIGH | k2 * C1_LOW & MASK_LOW;\n k2 = k2 << 15 | k2 >>> 17;\n k2 = k2 * C2 & MASK_HIGH | k2 * C2_LOW & MASK_LOW;\n h2 ^= k2;\n h2 = h2 << 13 | h2 >>> 19;\n h2 = h2 * 5 + 0xe6546b64;\n }\n }\n k1 = 0;\n switch (tailLength) {\n case 3:\n k1 ^= data[blockCounts * 4 + 2] << 16;\n case 2:\n k1 ^= data[blockCounts * 4 + 1] << 8;\n case 1:\n k1 ^= data[blockCounts * 4];\n k1 = k1 * C1 & MASK_HIGH | k1 * C1_LOW & MASK_LOW;\n k1 = k1 << 15 | k1 >>> 17;\n k1 = k1 * C2 & MASK_HIGH | k1 * C2_LOW & MASK_LOW;\n if (blockCounts & 1) {\n h1 ^= k1;\n } else {\n h2 ^= k1;\n }\n }\n this.h1 = h1;\n this.h2 = h2;\n }\n hexdigest() {\n let h1 = this.h1,\n h2 = this.h2;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0xed558ccd & MASK_HIGH | h1 * 0x8ccd & MASK_LOW;\n h2 = h2 * 0xff51afd7 & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xafd7ed55 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n h1 = h1 * 0x1a85ec53 & MASK_HIGH | h1 * 0xec53 & MASK_LOW;\n h2 = h2 * 0xc4ceb9fe & MASK_HIGH | ((h2 << 16 | h1 >>> 16) * 0xb9fe1a85 & MASK_HIGH) >>> 16;\n h1 ^= h2 >>> 1;\n return (h1 >>> 0).toString(16).padStart(8, \"0\") + (h2 >>> 0).toString(16).padStart(8, \"0\");\n }\n}\nexports.MurmurHash3_64 = MurmurHash3_64;\n\n/***/ }),\n/* 9 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FontLoader = exports.FontFaceObject = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _is_node = __w_pdfjs_require__(10);\nclass FontLoader {\n constructor({\n onUnsupportedFeature,\n ownerDocument = globalThis.document,\n styleElement = null\n }) {\n this._onUnsupportedFeature = onUnsupportedFeature;\n this._document = ownerDocument;\n this.nativeFontFaces = [];\n this.styleElement = null;\n this.loadingRequests = [];\n this.loadTestFontId = 0;\n }\n addNativeFontFace(nativeFontFace) {\n this.nativeFontFaces.push(nativeFontFace);\n this._document.fonts.add(nativeFontFace);\n }\n insertRule(rule) {\n if (!this.styleElement) {\n this.styleElement = this._document.createElement(\"style\");\n this._document.documentElement.getElementsByTagName(\"head\")[0].append(this.styleElement);\n }\n const styleSheet = this.styleElement.sheet;\n styleSheet.insertRule(rule, styleSheet.cssRules.length);\n }\n clear() {\n for (const nativeFontFace of this.nativeFontFaces) {\n this._document.fonts.delete(nativeFontFace);\n }\n this.nativeFontFaces.length = 0;\n if (this.styleElement) {\n this.styleElement.remove();\n this.styleElement = null;\n }\n }\n async bind(font) {\n if (font.attached || font.missingFile) {\n return;\n }\n font.attached = true;\n if (this.isFontLoadingAPISupported) {\n const nativeFontFace = font.createNativeFontFace();\n if (nativeFontFace) {\n this.addNativeFontFace(nativeFontFace);\n try {\n await nativeFontFace.loaded;\n } catch (ex) {\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontLoadNative\n });\n (0, _util.warn)(`Failed to load font '${nativeFontFace.family}': '${ex}'.`);\n font.disableFontFace = true;\n throw ex;\n }\n }\n return;\n }\n const rule = font.createFontFaceRule();\n if (rule) {\n this.insertRule(rule);\n if (this.isSyncFontLoadingSupported) {\n return;\n }\n await new Promise(resolve => {\n const request = this._queueLoadingCallback(resolve);\n this._prepareFontLoadEvent(font, request);\n });\n }\n }\n get isFontLoadingAPISupported() {\n const hasFonts = !!this._document?.fonts;\n return (0, _util.shadow)(this, \"isFontLoadingAPISupported\", hasFonts);\n }\n get isSyncFontLoadingSupported() {\n let supported = false;\n if (_is_node.isNodeJS) {\n supported = true;\n } else if (typeof navigator !== \"undefined\" && /Mozilla\\/5.0.*?rv:\\d+.*? Gecko/.test(navigator.userAgent)) {\n supported = true;\n }\n return (0, _util.shadow)(this, \"isSyncFontLoadingSupported\", supported);\n }\n _queueLoadingCallback(callback) {\n function completeRequest() {\n (0, _util.assert)(!request.done, \"completeRequest() cannot be called twice.\");\n request.done = true;\n while (loadingRequests.length > 0 && loadingRequests[0].done) {\n const otherRequest = loadingRequests.shift();\n setTimeout(otherRequest.callback, 0);\n }\n }\n const {\n loadingRequests\n } = this;\n const request = {\n done: false,\n complete: completeRequest,\n callback\n };\n loadingRequests.push(request);\n return request;\n }\n get _loadTestFont() {\n const testFont = atob(\"T1RUTwALAIAAAwAwQ0ZGIDHtZg4AAAOYAAAAgUZGVE1lkzZwAAAEHAAAABxHREVGABQA\" + \"FQAABDgAAAAeT1MvMlYNYwkAAAEgAAAAYGNtYXABDQLUAAACNAAAAUJoZWFk/xVFDQAA\" + \"ALwAAAA2aGhlYQdkA+oAAAD0AAAAJGhtdHgD6AAAAAAEWAAAAAZtYXhwAAJQAAAAARgA\" + \"AAAGbmFtZVjmdH4AAAGAAAAAsXBvc3T/hgAzAAADeAAAACAAAQAAAAEAALZRFsRfDzz1\" + \"AAsD6AAAAADOBOTLAAAAAM4KHDwAAAAAA+gDIQAAAAgAAgAAAAAAAAABAAADIQAAAFoD\" + \"6AAAAAAD6AABAAAAAAAAAAAAAAAAAAAAAQAAUAAAAgAAAAQD6AH0AAUAAAKKArwAAACM\" + \"AooCvAAAAeAAMQECAAACAAYJAAAAAAAAAAAAAQAAAAAAAAAAAAAAAFBmRWQAwAAuAC4D\" + \"IP84AFoDIQAAAAAAAQAAAAAAAAAAACAAIAABAAAADgCuAAEAAAAAAAAAAQAAAAEAAAAA\" + \"AAEAAQAAAAEAAAAAAAIAAQAAAAEAAAAAAAMAAQAAAAEAAAAAAAQAAQAAAAEAAAAAAAUA\" + \"AQAAAAEAAAAAAAYAAQAAAAMAAQQJAAAAAgABAAMAAQQJAAEAAgABAAMAAQQJAAIAAgAB\" + \"AAMAAQQJAAMAAgABAAMAAQQJAAQAAgABAAMAAQQJAAUAAgABAAMAAQQJAAYAAgABWABY\" + \"AAAAAAAAAwAAAAMAAAAcAAEAAAAAADwAAwABAAAAHAAEACAAAAAEAAQAAQAAAC7//wAA\" + \"AC7////TAAEAAAAAAAABBgAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA\" + \"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAD/gwAyAAAAAQAAAAAAAAAAAAAAAAAA\" + \"AAABAAQEAAEBAQJYAAEBASH4DwD4GwHEAvgcA/gXBIwMAYuL+nz5tQXkD5j3CBLnEQAC\" + \"AQEBIVhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYWFhYAAABAQAADwACAQEEE/t3\" + \"Dov6fAH6fAT+fPp8+nwHDosMCvm1Cvm1DAz6fBQAAAAAAAABAAAAAMmJbzEAAAAAzgTj\" + \"FQAAAADOBOQpAAEAAAAAAAAADAAUAAQAAAABAAAAAgABAAAAAAAAAAAD6AAAAAAAAA==\");\n return (0, _util.shadow)(this, \"_loadTestFont\", testFont);\n }\n _prepareFontLoadEvent(font, request) {\n function int32(data, offset) {\n return data.charCodeAt(offset) << 24 | data.charCodeAt(offset + 1) << 16 | data.charCodeAt(offset + 2) << 8 | data.charCodeAt(offset + 3) & 0xff;\n }\n function spliceString(s, offset, remove, insert) {\n const chunk1 = s.substring(0, offset);\n const chunk2 = s.substring(offset + remove);\n return chunk1 + insert + chunk2;\n }\n let i, ii;\n const canvas = this._document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n const ctx = canvas.getContext(\"2d\");\n let called = 0;\n function isFontReady(name, callback) {\n if (++called > 30) {\n (0, _util.warn)(\"Load test font never loaded.\");\n callback();\n return;\n }\n ctx.font = \"30px \" + name;\n ctx.fillText(\".\", 0, 20);\n const imageData = ctx.getImageData(0, 0, 1, 1);\n if (imageData.data[3] > 0) {\n callback();\n return;\n }\n setTimeout(isFontReady.bind(null, name, callback));\n }\n const loadTestFontId = `lt${Date.now()}${this.loadTestFontId++}`;\n let data = this._loadTestFont;\n const COMMENT_OFFSET = 976;\n data = spliceString(data, COMMENT_OFFSET, loadTestFontId.length, loadTestFontId);\n const CFF_CHECKSUM_OFFSET = 16;\n const XXXX_VALUE = 0x58585858;\n let checksum = int32(data, CFF_CHECKSUM_OFFSET);\n for (i = 0, ii = loadTestFontId.length - 3; i < ii; i += 4) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId, i) | 0;\n }\n if (i < loadTestFontId.length) {\n checksum = checksum - XXXX_VALUE + int32(loadTestFontId + \"XXX\", i) | 0;\n }\n data = spliceString(data, CFF_CHECKSUM_OFFSET, 4, (0, _util.string32)(checksum));\n const url = `url(data:font/opentype;base64,${btoa(data)});`;\n const rule = `@font-face {font-family:\"${loadTestFontId}\";src:${url}}`;\n this.insertRule(rule);\n const div = this._document.createElement(\"div\");\n div.style.visibility = \"hidden\";\n div.style.width = div.style.height = \"10px\";\n div.style.position = \"absolute\";\n div.style.top = div.style.left = \"0px\";\n for (const name of [font.loadedName, loadTestFontId]) {\n const span = this._document.createElement(\"span\");\n span.textContent = \"Hi\";\n span.style.fontFamily = name;\n div.append(span);\n }\n this._document.body.append(div);\n isFontReady(loadTestFontId, () => {\n div.remove();\n request.complete();\n });\n }\n}\nexports.FontLoader = FontLoader;\nclass FontFaceObject {\n constructor(translatedData, {\n isEvalSupported = true,\n disableFontFace = false,\n ignoreErrors = false,\n onUnsupportedFeature,\n fontRegistry = null\n }) {\n this.compiledGlyphs = Object.create(null);\n for (const i in translatedData) {\n this[i] = translatedData[i];\n }\n this.isEvalSupported = isEvalSupported !== false;\n this.disableFontFace = disableFontFace === true;\n this.ignoreErrors = ignoreErrors === true;\n this._onUnsupportedFeature = onUnsupportedFeature;\n this.fontRegistry = fontRegistry;\n }\n createNativeFontFace() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n let nativeFontFace;\n if (!this.cssFontInfo) {\n nativeFontFace = new FontFace(this.loadedName, this.data, {});\n } else {\n const css = {\n weight: this.cssFontInfo.fontWeight\n };\n if (this.cssFontInfo.italicAngle) {\n css.style = `oblique ${this.cssFontInfo.italicAngle}deg`;\n }\n nativeFontFace = new FontFace(this.cssFontInfo.fontFamily, this.data, css);\n }\n this.fontRegistry?.registerFont(this);\n return nativeFontFace;\n }\n createFontFaceRule() {\n if (!this.data || this.disableFontFace) {\n return null;\n }\n const data = (0, _util.bytesToString)(this.data);\n const url = `url(data:${this.mimetype};base64,${btoa(data)});`;\n let rule;\n if (!this.cssFontInfo) {\n rule = `@font-face {font-family:\"${this.loadedName}\";src:${url}}`;\n } else {\n let css = `font-weight: ${this.cssFontInfo.fontWeight};`;\n if (this.cssFontInfo.italicAngle) {\n css += `font-style: oblique ${this.cssFontInfo.italicAngle}deg;`;\n }\n rule = `@font-face {font-family:\"${this.cssFontInfo.fontFamily}\";${css}src:${url}}`;\n }\n this.fontRegistry?.registerFont(this, url);\n return rule;\n }\n getPathGenerator(objs, character) {\n if (this.compiledGlyphs[character] !== undefined) {\n return this.compiledGlyphs[character];\n }\n let cmds;\n try {\n cmds = objs.get(this.loadedName + \"_path_\" + character);\n } catch (ex) {\n if (!this.ignoreErrors) {\n throw ex;\n }\n this._onUnsupportedFeature({\n featureId: _util.UNSUPPORTED_FEATURES.errorFontGetPath\n });\n (0, _util.warn)(`getPathGenerator - ignoring character: \"${ex}\".`);\n return this.compiledGlyphs[character] = function (c, size) {};\n }\n if (this.isEvalSupported && _util.FeatureTest.isEvalSupported) {\n const jsBuf = [];\n for (const current of cmds) {\n const args = current.args !== undefined ? current.args.join(\",\") : \"\";\n jsBuf.push(\"c.\", current.cmd, \"(\", args, \");\\n\");\n }\n return this.compiledGlyphs[character] = new Function(\"c\", \"size\", jsBuf.join(\"\"));\n }\n return this.compiledGlyphs[character] = function (c, size) {\n for (const current of cmds) {\n if (current.cmd === \"scale\") {\n current.args = [size, -size];\n }\n c[current.cmd].apply(c, current.args);\n }\n };\n }\n}\nexports.FontFaceObject = FontFaceObject;\n\n/***/ }),\n/* 10 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.isNodeJS = void 0;\nconst isNodeJS = typeof process === \"object\" && process + \"\" === \"[object process]\" && !process.versions.nw && !(process.versions.electron && process.type && process.type !== \"browser\");\nexports.isNodeJS = isNodeJS;\n\n/***/ }),\n/* 11 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.CanvasGraphics = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _pattern_helper = __w_pdfjs_require__(12);\nvar _image_utils = __w_pdfjs_require__(13);\nconst MIN_FONT_SIZE = 16;\nconst MAX_FONT_SIZE = 100;\nconst MAX_GROUP_SIZE = 4096;\nconst EXECUTION_TIME = 15;\nconst EXECUTION_STEPS = 10;\nconst MAX_SIZE_TO_COMPILE = 1000;\nconst FULL_CHUNK_HEIGHT = 16;\nfunction mirrorContextOperations(ctx, destCtx) {\n if (ctx._removeMirroring) {\n throw new Error(\"Context is already forwarding operations.\");\n }\n ctx.__originalSave = ctx.save;\n ctx.__originalRestore = ctx.restore;\n ctx.__originalRotate = ctx.rotate;\n ctx.__originalScale = ctx.scale;\n ctx.__originalTranslate = ctx.translate;\n ctx.__originalTransform = ctx.transform;\n ctx.__originalSetTransform = ctx.setTransform;\n ctx.__originalResetTransform = ctx.resetTransform;\n ctx.__originalClip = ctx.clip;\n ctx.__originalMoveTo = ctx.moveTo;\n ctx.__originalLineTo = ctx.lineTo;\n ctx.__originalBezierCurveTo = ctx.bezierCurveTo;\n ctx.__originalRect = ctx.rect;\n ctx.__originalClosePath = ctx.closePath;\n ctx.__originalBeginPath = ctx.beginPath;\n ctx._removeMirroring = () => {\n ctx.save = ctx.__originalSave;\n ctx.restore = ctx.__originalRestore;\n ctx.rotate = ctx.__originalRotate;\n ctx.scale = ctx.__originalScale;\n ctx.translate = ctx.__originalTranslate;\n ctx.transform = ctx.__originalTransform;\n ctx.setTransform = ctx.__originalSetTransform;\n ctx.resetTransform = ctx.__originalResetTransform;\n ctx.clip = ctx.__originalClip;\n ctx.moveTo = ctx.__originalMoveTo;\n ctx.lineTo = ctx.__originalLineTo;\n ctx.bezierCurveTo = ctx.__originalBezierCurveTo;\n ctx.rect = ctx.__originalRect;\n ctx.closePath = ctx.__originalClosePath;\n ctx.beginPath = ctx.__originalBeginPath;\n delete ctx._removeMirroring;\n };\n ctx.save = function ctxSave() {\n destCtx.save();\n this.__originalSave();\n };\n ctx.restore = function ctxRestore() {\n destCtx.restore();\n this.__originalRestore();\n };\n ctx.translate = function ctxTranslate(x, y) {\n destCtx.translate(x, y);\n this.__originalTranslate(x, y);\n };\n ctx.scale = function ctxScale(x, y) {\n destCtx.scale(x, y);\n this.__originalScale(x, y);\n };\n ctx.transform = function ctxTransform(a, b, c, d, e, f) {\n destCtx.transform(a, b, c, d, e, f);\n this.__originalTransform(a, b, c, d, e, f);\n };\n ctx.setTransform = function ctxSetTransform(a, b, c, d, e, f) {\n destCtx.setTransform(a, b, c, d, e, f);\n this.__originalSetTransform(a, b, c, d, e, f);\n };\n ctx.resetTransform = function ctxResetTransform() {\n destCtx.resetTransform();\n this.__originalResetTransform();\n };\n ctx.rotate = function ctxRotate(angle) {\n destCtx.rotate(angle);\n this.__originalRotate(angle);\n };\n ctx.clip = function ctxRotate(rule) {\n destCtx.clip(rule);\n this.__originalClip(rule);\n };\n ctx.moveTo = function (x, y) {\n destCtx.moveTo(x, y);\n this.__originalMoveTo(x, y);\n };\n ctx.lineTo = function (x, y) {\n destCtx.lineTo(x, y);\n this.__originalLineTo(x, y);\n };\n ctx.bezierCurveTo = function (cp1x, cp1y, cp2x, cp2y, x, y) {\n destCtx.bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n this.__originalBezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y);\n };\n ctx.rect = function (x, y, width, height) {\n destCtx.rect(x, y, width, height);\n this.__originalRect(x, y, width, height);\n };\n ctx.closePath = function () {\n destCtx.closePath();\n this.__originalClosePath();\n };\n ctx.beginPath = function () {\n destCtx.beginPath();\n this.__originalBeginPath();\n };\n}\nclass CachedCanvases {\n constructor(canvasFactory) {\n this.canvasFactory = canvasFactory;\n this.cache = Object.create(null);\n }\n getCanvas(id, width, height) {\n let canvasEntry;\n if (this.cache[id] !== undefined) {\n canvasEntry = this.cache[id];\n this.canvasFactory.reset(canvasEntry, width, height);\n } else {\n canvasEntry = this.canvasFactory.create(width, height);\n this.cache[id] = canvasEntry;\n }\n return canvasEntry;\n }\n delete(id) {\n delete this.cache[id];\n }\n clear() {\n for (const id in this.cache) {\n const canvasEntry = this.cache[id];\n this.canvasFactory.destroy(canvasEntry);\n delete this.cache[id];\n }\n }\n}\nfunction drawImageAtIntegerCoords(ctx, srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH) {\n const [a, b, c, d, tx, ty] = (0, _display_utils.getCurrentTransform)(ctx);\n if (b === 0 && c === 0) {\n const tlX = destX * a + tx;\n const rTlX = Math.round(tlX);\n const tlY = destY * d + ty;\n const rTlY = Math.round(tlY);\n const brX = (destX + destW) * a + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destY + destH) * d + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(Math.sign(a), 0, 0, Math.sign(d), rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rWidth, rHeight);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rWidth, rHeight];\n }\n if (a === 0 && d === 0) {\n const tlX = destY * c + tx;\n const rTlX = Math.round(tlX);\n const tlY = destX * b + ty;\n const rTlY = Math.round(tlY);\n const brX = (destY + destH) * c + tx;\n const rWidth = Math.abs(Math.round(brX) - rTlX) || 1;\n const brY = (destX + destW) * b + ty;\n const rHeight = Math.abs(Math.round(brY) - rTlY) || 1;\n ctx.setTransform(0, Math.sign(b), Math.sign(c), 0, rTlX, rTlY);\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, 0, 0, rHeight, rWidth);\n ctx.setTransform(a, b, c, d, tx, ty);\n return [rHeight, rWidth];\n }\n ctx.drawImage(srcImg, srcX, srcY, srcW, srcH, destX, destY, destW, destH);\n const scaleX = Math.hypot(a, b);\n const scaleY = Math.hypot(c, d);\n return [scaleX * destW, scaleY * destH];\n}\nfunction compileType3Glyph(imgData) {\n const {\n width,\n height\n } = imgData;\n if (width > MAX_SIZE_TO_COMPILE || height > MAX_SIZE_TO_COMPILE) {\n return null;\n }\n const POINT_TO_PROCESS_LIMIT = 1000;\n const POINT_TYPES = new Uint8Array([0, 2, 4, 0, 1, 0, 5, 4, 8, 10, 0, 8, 0, 2, 1, 0]);\n const width1 = width + 1;\n let points = new Uint8Array(width1 * (height + 1));\n let i, j, j0;\n const lineSize = width + 7 & ~7;\n let data = new Uint8Array(lineSize * height),\n pos = 0;\n for (const elem of imgData.data) {\n let mask = 128;\n while (mask > 0) {\n data[pos++] = elem & mask ? 0 : 255;\n mask >>= 1;\n }\n }\n let count = 0;\n pos = 0;\n if (data[pos] !== 0) {\n points[0] = 1;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j] = data[pos] ? 2 : 1;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j] = 2;\n ++count;\n }\n for (i = 1; i < height; i++) {\n pos = i * lineSize;\n j0 = i * width1;\n if (data[pos - lineSize] !== data[pos]) {\n points[j0] = data[pos] ? 1 : 8;\n ++count;\n }\n let sum = (data[pos] ? 4 : 0) + (data[pos - lineSize] ? 8 : 0);\n for (j = 1; j < width; j++) {\n sum = (sum >> 2) + (data[pos + 1] ? 4 : 0) + (data[pos - lineSize + 1] ? 8 : 0);\n if (POINT_TYPES[sum]) {\n points[j0 + j] = POINT_TYPES[sum];\n ++count;\n }\n pos++;\n }\n if (data[pos - lineSize] !== data[pos]) {\n points[j0 + j] = data[pos] ? 2 : 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n }\n pos = lineSize * (height - 1);\n j0 = i * width1;\n if (data[pos] !== 0) {\n points[j0] = 8;\n ++count;\n }\n for (j = 1; j < width; j++) {\n if (data[pos] !== data[pos + 1]) {\n points[j0 + j] = data[pos] ? 4 : 8;\n ++count;\n }\n pos++;\n }\n if (data[pos] !== 0) {\n points[j0 + j] = 4;\n ++count;\n }\n if (count > POINT_TO_PROCESS_LIMIT) {\n return null;\n }\n const steps = new Int32Array([0, width1, -1, 0, -width1, 0, 0, 0, 1]);\n const path = new Path2D();\n for (i = 0; count && i <= height; i++) {\n let p = i * width1;\n const end = p + width;\n while (p < end && !points[p]) {\n p++;\n }\n if (p === end) {\n continue;\n }\n path.moveTo(p % width1, i);\n const p0 = p;\n let type = points[p];\n do {\n const step = steps[type];\n do {\n p += step;\n } while (!points[p]);\n const pp = points[p];\n if (pp !== 5 && pp !== 10) {\n type = pp;\n points[p] = 0;\n } else {\n type = pp & 0x33 * type >> 4;\n points[p] &= type >> 2 | type << 2;\n }\n path.lineTo(p % width1, p / width1 | 0);\n if (!points[p]) {\n --count;\n }\n } while (p0 !== p);\n --i;\n }\n data = null;\n points = null;\n const drawOutline = function (c) {\n c.save();\n c.scale(1 / width, -1 / height);\n c.translate(0, -height);\n c.fill(path);\n c.beginPath();\n c.restore();\n };\n return drawOutline;\n}\nclass CanvasExtraState {\n constructor(width, height) {\n this.alphaIsShape = false;\n this.fontSize = 0;\n this.fontSizeScale = 1;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.textMatrixScale = 1;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textRise = 0;\n this.fillColor = \"#000000\";\n this.strokeColor = \"#000000\";\n this.patternFill = false;\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.activeSMask = null;\n this.transferMaps = null;\n this.startNewPathAndClipBox([0, 0, width, height]);\n }\n clone() {\n const clone = Object.create(this);\n clone.clipBox = this.clipBox.slice();\n return clone;\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n updatePathMinMax(transform, x, y) {\n [x, y] = _util.Util.applyTransform([x, y], transform);\n this.minX = Math.min(this.minX, x);\n this.minY = Math.min(this.minY, y);\n this.maxX = Math.max(this.maxX, x);\n this.maxY = Math.max(this.maxY, y);\n }\n updateRectMinMax(transform, rect) {\n const p1 = _util.Util.applyTransform(rect, transform);\n const p2 = _util.Util.applyTransform(rect.slice(2), transform);\n this.minX = Math.min(this.minX, p1[0], p2[0]);\n this.minY = Math.min(this.minY, p1[1], p2[1]);\n this.maxX = Math.max(this.maxX, p1[0], p2[0]);\n this.maxY = Math.max(this.maxY, p1[1], p2[1]);\n }\n updateScalingPathMinMax(transform, minMax) {\n _util.Util.scaleMinMax(transform, minMax);\n this.minX = Math.min(this.minX, minMax[0]);\n this.maxX = Math.max(this.maxX, minMax[1]);\n this.minY = Math.min(this.minY, minMax[2]);\n this.maxY = Math.max(this.maxY, minMax[3]);\n }\n updateCurvePathMinMax(transform, x0, y0, x1, y1, x2, y2, x3, y3, minMax) {\n const box = _util.Util.bezierBoundingBox(x0, y0, x1, y1, x2, y2, x3, y3);\n if (minMax) {\n minMax[0] = Math.min(minMax[0], box[0], box[2]);\n minMax[1] = Math.max(minMax[1], box[0], box[2]);\n minMax[2] = Math.min(minMax[2], box[1], box[3]);\n minMax[3] = Math.max(minMax[3], box[1], box[3]);\n return;\n }\n this.updateRectMinMax(transform, box);\n }\n getPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n const box = [this.minX, this.minY, this.maxX, this.maxY];\n if (pathType === _pattern_helper.PathType.STROKE) {\n if (!transform) {\n (0, _util.unreachable)(\"Stroke bounding box must include transform.\");\n }\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n const xStrokePad = scale[0] * this.lineWidth / 2;\n const yStrokePad = scale[1] * this.lineWidth / 2;\n box[0] -= xStrokePad;\n box[1] -= yStrokePad;\n box[2] += xStrokePad;\n box[3] += yStrokePad;\n }\n return box;\n }\n updateClipFromPath() {\n const intersect = _util.Util.intersect(this.clipBox, this.getPathBoundingBox());\n this.startNewPathAndClipBox(intersect || [0, 0, 0, 0]);\n }\n isEmptyClip() {\n return this.minX === Infinity;\n }\n startNewPathAndClipBox(box) {\n this.clipBox = box;\n this.minX = Infinity;\n this.minY = Infinity;\n this.maxX = 0;\n this.maxY = 0;\n }\n getClippedPathBoundingBox(pathType = _pattern_helper.PathType.FILL, transform = null) {\n return _util.Util.intersect(this.clipBox, this.getPathBoundingBox(pathType, transform));\n }\n}\nfunction putBinaryImageData(ctx, imgData, transferMaps = null) {\n if (typeof ImageData !== \"undefined\" && imgData instanceof ImageData) {\n ctx.putImageData(imgData, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0,\n destPos;\n const src = imgData.data;\n const dest = chunkImgData.data;\n let i, j, thisChunkHeight, elemsInThisChunk;\n let transferMapRed, transferMapGreen, transferMapBlue, transferMapGray;\n if (transferMaps) {\n switch (transferMaps.length) {\n case 1:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[0];\n transferMapBlue = transferMaps[0];\n transferMapGray = transferMaps[0];\n break;\n case 4:\n transferMapRed = transferMaps[0];\n transferMapGreen = transferMaps[1];\n transferMapBlue = transferMaps[2];\n transferMapGray = transferMaps[3];\n break;\n }\n }\n if (imgData.kind === _util.ImageKind.GRAYSCALE_1BPP) {\n const srcLength = src.byteLength;\n const dest32 = new Uint32Array(dest.buffer, 0, dest.byteLength >> 2);\n const dest32DataLength = dest32.length;\n const fullSrcDiff = width + 7 >> 3;\n let white = 0xffffffff;\n let black = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n if (transferMapGray) {\n if (transferMapGray[0] === 0xff && transferMapGray[0xff] === 0) {\n [white, black] = [black, white];\n }\n }\n for (i = 0; i < totalChunks; i++) {\n thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n destPos = 0;\n for (j = 0; j < thisChunkHeight; j++) {\n const srcDiff = srcLength - srcPos;\n let k = 0;\n const kEnd = srcDiff > fullSrcDiff ? width : srcDiff * 8 - 7;\n const kEndUnrolled = kEnd & ~7;\n let mask = 0;\n let srcByte = 0;\n for (; k < kEndUnrolled; k += 8) {\n srcByte = src[srcPos++];\n dest32[destPos++] = srcByte & 128 ? white : black;\n dest32[destPos++] = srcByte & 64 ? white : black;\n dest32[destPos++] = srcByte & 32 ? white : black;\n dest32[destPos++] = srcByte & 16 ? white : black;\n dest32[destPos++] = srcByte & 8 ? white : black;\n dest32[destPos++] = srcByte & 4 ? white : black;\n dest32[destPos++] = srcByte & 2 ? white : black;\n dest32[destPos++] = srcByte & 1 ? white : black;\n }\n for (; k < kEnd; k++) {\n if (mask === 0) {\n srcByte = src[srcPos++];\n mask = 128;\n }\n dest32[destPos++] = srcByte & mask ? white : black;\n mask >>= 1;\n }\n }\n while (destPos < dest32DataLength) {\n dest32[destPos++] = 0;\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else if (imgData.kind === _util.ImageKind.RGBA_32BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n j = 0;\n elemsInThisChunk = width * FULL_CHUNK_HEIGHT * 4;\n for (i = 0; i < fullChunks; i++) {\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n srcPos += elemsInThisChunk;\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n ctx.putImageData(chunkImgData, 0, j);\n j += FULL_CHUNK_HEIGHT;\n }\n if (i < totalChunks) {\n elemsInThisChunk = width * partialChunkHeight * 4;\n dest.set(src.subarray(srcPos, srcPos + elemsInThisChunk));\n if (hasTransferMaps) {\n for (let k = 0; k < elemsInThisChunk; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n ctx.putImageData(chunkImgData, 0, j);\n }\n } else if (imgData.kind === _util.ImageKind.RGB_24BPP) {\n const hasTransferMaps = !!(transferMapRed || transferMapGreen || transferMapBlue);\n thisChunkHeight = FULL_CHUNK_HEIGHT;\n elemsInThisChunk = width * thisChunkHeight;\n for (i = 0; i < totalChunks; i++) {\n if (i >= fullChunks) {\n thisChunkHeight = partialChunkHeight;\n elemsInThisChunk = width * thisChunkHeight;\n }\n destPos = 0;\n for (j = elemsInThisChunk; j--;) {\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = src[srcPos++];\n dest[destPos++] = 255;\n }\n if (hasTransferMaps) {\n for (let k = 0; k < destPos; k += 4) {\n if (transferMapRed) {\n dest[k + 0] = transferMapRed[dest[k + 0]];\n }\n if (transferMapGreen) {\n dest[k + 1] = transferMapGreen[dest[k + 1]];\n }\n if (transferMapBlue) {\n dest[k + 2] = transferMapBlue[dest[k + 2]];\n }\n }\n }\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n } else {\n throw new Error(`bad image kind: ${imgData.kind}`);\n }\n}\nfunction putBinaryImageMask(ctx, imgData) {\n if (imgData.bitmap) {\n ctx.drawImage(imgData.bitmap, 0, 0);\n return;\n }\n const height = imgData.height,\n width = imgData.width;\n const partialChunkHeight = height % FULL_CHUNK_HEIGHT;\n const fullChunks = (height - partialChunkHeight) / FULL_CHUNK_HEIGHT;\n const totalChunks = partialChunkHeight === 0 ? fullChunks : fullChunks + 1;\n const chunkImgData = ctx.createImageData(width, FULL_CHUNK_HEIGHT);\n let srcPos = 0;\n const src = imgData.data;\n const dest = chunkImgData.data;\n for (let i = 0; i < totalChunks; i++) {\n const thisChunkHeight = i < fullChunks ? FULL_CHUNK_HEIGHT : partialChunkHeight;\n ({\n srcPos\n } = (0, _image_utils.applyMaskImageData)({\n src,\n srcPos,\n dest,\n width,\n height: thisChunkHeight\n }));\n ctx.putImageData(chunkImgData, 0, i * FULL_CHUNK_HEIGHT);\n }\n}\nfunction copyCtxState(sourceCtx, destCtx) {\n const properties = [\"strokeStyle\", \"fillStyle\", \"fillRule\", \"globalAlpha\", \"lineWidth\", \"lineCap\", \"lineJoin\", \"miterLimit\", \"globalCompositeOperation\", \"font\"];\n for (const property of properties) {\n if (sourceCtx[property] !== undefined) {\n destCtx[property] = sourceCtx[property];\n }\n }\n if (sourceCtx.setLineDash !== undefined) {\n destCtx.setLineDash(sourceCtx.getLineDash());\n destCtx.lineDashOffset = sourceCtx.lineDashOffset;\n }\n}\nfunction resetCtxToDefault(ctx, foregroundColor) {\n ctx.strokeStyle = ctx.fillStyle = foregroundColor || \"#000000\";\n ctx.fillRule = \"nonzero\";\n ctx.globalAlpha = 1;\n ctx.lineWidth = 1;\n ctx.lineCap = \"butt\";\n ctx.lineJoin = \"miter\";\n ctx.miterLimit = 10;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.font = \"10px sans-serif\";\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash([]);\n ctx.lineDashOffset = 0;\n }\n}\nfunction composeSMaskBackdrop(bytes, r0, g0, b0) {\n const length = bytes.length;\n for (let i = 3; i < length; i += 4) {\n const alpha = bytes[i];\n if (alpha === 0) {\n bytes[i - 3] = r0;\n bytes[i - 2] = g0;\n bytes[i - 1] = b0;\n } else if (alpha < 255) {\n const alpha_ = 255 - alpha;\n bytes[i - 3] = bytes[i - 3] * alpha + r0 * alpha_ >> 8;\n bytes[i - 2] = bytes[i - 2] * alpha + g0 * alpha_ >> 8;\n bytes[i - 1] = bytes[i - 1] * alpha + b0 * alpha_ >> 8;\n }\n }\n}\nfunction composeSMaskAlpha(maskData, layerData, transferMap) {\n const length = maskData.length;\n const scale = 1 / 255;\n for (let i = 3; i < length; i += 4) {\n const alpha = transferMap ? transferMap[maskData[i]] : maskData[i];\n layerData[i] = layerData[i] * alpha * scale | 0;\n }\n}\nfunction composeSMaskLuminosity(maskData, layerData, transferMap) {\n const length = maskData.length;\n for (let i = 3; i < length; i += 4) {\n const y = maskData[i - 3] * 77 + maskData[i - 2] * 152 + maskData[i - 1] * 28;\n layerData[i] = transferMap ? layerData[i] * transferMap[y >> 8] >> 8 : layerData[i] * y >> 16;\n }\n}\nfunction genericComposeSMask(maskCtx, layerCtx, width, height, subtype, backdrop, transferMap, layerOffsetX, layerOffsetY, maskOffsetX, maskOffsetY) {\n const hasBackdrop = !!backdrop;\n const r0 = hasBackdrop ? backdrop[0] : 0;\n const g0 = hasBackdrop ? backdrop[1] : 0;\n const b0 = hasBackdrop ? backdrop[2] : 0;\n let composeFn;\n if (subtype === \"Luminosity\") {\n composeFn = composeSMaskLuminosity;\n } else {\n composeFn = composeSMaskAlpha;\n }\n const PIXELS_TO_PROCESS = 1048576;\n const chunkSize = Math.min(height, Math.ceil(PIXELS_TO_PROCESS / width));\n for (let row = 0; row < height; row += chunkSize) {\n const chunkHeight = Math.min(chunkSize, height - row);\n const maskData = maskCtx.getImageData(layerOffsetX - maskOffsetX, row + (layerOffsetY - maskOffsetY), width, chunkHeight);\n const layerData = layerCtx.getImageData(layerOffsetX, row + layerOffsetY, width, chunkHeight);\n if (hasBackdrop) {\n composeSMaskBackdrop(maskData.data, r0, g0, b0);\n }\n composeFn(maskData.data, layerData.data, transferMap);\n layerCtx.putImageData(layerData, layerOffsetX, row + layerOffsetY);\n }\n}\nfunction composeSMask(ctx, smask, layerCtx, layerBox) {\n const layerOffsetX = layerBox[0];\n const layerOffsetY = layerBox[1];\n const layerWidth = layerBox[2] - layerOffsetX;\n const layerHeight = layerBox[3] - layerOffsetY;\n if (layerWidth === 0 || layerHeight === 0) {\n return;\n }\n genericComposeSMask(smask.context, layerCtx, layerWidth, layerHeight, smask.subtype, smask.backdrop, smask.transferMap, layerOffsetX, layerOffsetY, smask.offsetX, smask.offsetY);\n ctx.save();\n ctx.globalAlpha = 1;\n ctx.globalCompositeOperation = \"source-over\";\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(layerCtx.canvas, 0, 0);\n ctx.restore();\n}\nfunction getImageSmoothingEnabled(transform, interpolate) {\n const scale = _util.Util.singularValueDecompose2dScale(transform);\n scale[0] = Math.fround(scale[0]);\n scale[1] = Math.fround(scale[1]);\n const actualScale = Math.fround((globalThis.devicePixelRatio || 1) * _display_utils.PixelsPerInch.PDF_TO_CSS_UNITS);\n if (interpolate !== undefined) {\n return interpolate;\n } else if (scale[0] <= actualScale || scale[1] <= actualScale) {\n return true;\n }\n return false;\n}\nconst LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\nconst LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\nconst NORMAL_CLIP = {};\nconst EO_CLIP = {};\nclass CanvasGraphics {\n constructor(canvasCtx, commonObjs, objs, canvasFactory, {\n optionalContentConfig,\n markedContentStack = null\n }, annotationCanvasMap, pageColors) {\n this.ctx = canvasCtx;\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.stateStack = [];\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.res = null;\n this.xobjs = null;\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.canvasFactory = canvasFactory;\n this.groupStack = [];\n this.processingType3 = null;\n this.baseTransform = null;\n this.baseTransformStack = [];\n this.groupLevel = 0;\n this.smaskStack = [];\n this.smaskCounter = 0;\n this.tempSMask = null;\n this.suspendedCtx = null;\n this.contentVisible = true;\n this.markedContentStack = markedContentStack || [];\n this.optionalContentConfig = optionalContentConfig;\n this.cachedCanvases = new CachedCanvases(this.canvasFactory);\n this.cachedPatterns = new Map();\n this.annotationCanvasMap = annotationCanvasMap;\n this.viewportScale = 1;\n this.outputScaleX = 1;\n this.outputScaleY = 1;\n this.backgroundColor = pageColors?.background || null;\n this.foregroundColor = pageColors?.foreground || null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n this._cachedBitmapsMap = new Map();\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n beginDrawing({\n transform,\n viewport,\n transparency = false,\n background = null\n }) {\n const width = this.ctx.canvas.width;\n const height = this.ctx.canvas.height;\n const defaultBackgroundColor = background || \"#ffffff\";\n this.ctx.save();\n if (this.foregroundColor && this.backgroundColor) {\n this.ctx.fillStyle = this.foregroundColor;\n const fg = this.foregroundColor = this.ctx.fillStyle;\n this.ctx.fillStyle = this.backgroundColor;\n const bg = this.backgroundColor = this.ctx.fillStyle;\n let isValidDefaultBg = true;\n let defaultBg = defaultBackgroundColor;\n this.ctx.fillStyle = defaultBackgroundColor;\n defaultBg = this.ctx.fillStyle;\n isValidDefaultBg = typeof defaultBg === \"string\" && /^#[0-9A-Fa-f]{6}$/.test(defaultBg);\n if (fg === \"#000000\" && bg === \"#ffffff\" || fg === bg || !isValidDefaultBg) {\n this.foregroundColor = this.backgroundColor = null;\n } else {\n const [rB, gB, bB] = (0, _display_utils.getRGB)(defaultBg);\n const newComp = x => {\n x /= 255;\n return x <= 0.03928 ? x / 12.92 : ((x + 0.055) / 1.055) ** 2.4;\n };\n const lumB = Math.round(0.2126 * newComp(rB) + 0.7152 * newComp(gB) + 0.0722 * newComp(bB));\n this.selectColor = (r, g, b) => {\n const lumC = 0.2126 * newComp(r) + 0.7152 * newComp(g) + 0.0722 * newComp(b);\n return Math.round(lumC) === lumB ? bg : fg;\n };\n }\n }\n this.ctx.fillStyle = this.backgroundColor || defaultBackgroundColor;\n this.ctx.fillRect(0, 0, width, height);\n this.ctx.restore();\n if (transparency) {\n const transparentCanvas = this.cachedCanvases.getCanvas(\"transparent\", width, height);\n this.compositeCtx = this.ctx;\n this.transparentCanvas = transparentCanvas.canvas;\n this.ctx = transparentCanvas.context;\n this.ctx.save();\n this.ctx.transform(...(0, _display_utils.getCurrentTransform)(this.compositeCtx));\n }\n this.ctx.save();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n if (transform) {\n this.ctx.transform(...transform);\n this.outputScaleX = transform[0];\n this.outputScaleY = transform[0];\n }\n this.ctx.transform(...viewport.transform);\n this.viewportScale = viewport.scale;\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n }\n executeOperatorList(operatorList, executionStartIdx, continueCallback, stepper) {\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n let i = executionStartIdx || 0;\n const argsArrayLen = argsArray.length;\n if (argsArrayLen === i) {\n return i;\n }\n const chunkOperations = argsArrayLen - i > EXECUTION_STEPS && typeof continueCallback === \"function\";\n const endTime = chunkOperations ? Date.now() + EXECUTION_TIME : 0;\n let steps = 0;\n const commonObjs = this.commonObjs;\n const objs = this.objs;\n let fnId;\n while (true) {\n if (stepper !== undefined && i === stepper.nextBreakPoint) {\n stepper.breakIt(i, continueCallback);\n return i;\n }\n fnId = fnArray[i];\n if (fnId !== _util.OPS.dependency) {\n this[fnId].apply(this, argsArray[i]);\n } else {\n for (const depObjId of argsArray[i]) {\n const objsPool = depObjId.startsWith(\"g_\") ? commonObjs : objs;\n if (!objsPool.has(depObjId)) {\n objsPool.get(depObjId, continueCallback);\n return i;\n }\n }\n }\n i++;\n if (i === argsArrayLen) {\n return i;\n }\n if (chunkOperations && ++steps > EXECUTION_STEPS) {\n if (Date.now() > endTime) {\n continueCallback();\n return i;\n }\n steps = 0;\n }\n }\n }\n #restoreInitialState() {\n while (this.stateStack.length || this.inSMaskMode) {\n this.restore();\n }\n this.ctx.restore();\n if (this.transparentCanvas) {\n this.ctx = this.compositeCtx;\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.drawImage(this.transparentCanvas, 0, 0);\n this.ctx.restore();\n this.transparentCanvas = null;\n }\n }\n endDrawing() {\n this.#restoreInitialState();\n this.cachedCanvases.clear();\n this.cachedPatterns.clear();\n for (const cache of this._cachedBitmapsMap.values()) {\n for (const canvas of cache.values()) {\n if (typeof HTMLCanvasElement !== \"undefined\" && canvas instanceof HTMLCanvasElement) {\n canvas.width = canvas.height = 0;\n }\n }\n cache.clear();\n }\n this._cachedBitmapsMap.clear();\n }\n _scaleImage(img, inverseTransform) {\n const width = img.width;\n const height = img.height;\n let widthScale = Math.max(Math.hypot(inverseTransform[0], inverseTransform[1]), 1);\n let heightScale = Math.max(Math.hypot(inverseTransform[2], inverseTransform[3]), 1);\n let paintWidth = width,\n paintHeight = height;\n let tmpCanvasId = \"prescale1\";\n let tmpCanvas, tmpCtx;\n while (widthScale > 2 && paintWidth > 1 || heightScale > 2 && paintHeight > 1) {\n let newWidth = paintWidth,\n newHeight = paintHeight;\n if (widthScale > 2 && paintWidth > 1) {\n newWidth = Math.ceil(paintWidth / 2);\n widthScale /= paintWidth / newWidth;\n }\n if (heightScale > 2 && paintHeight > 1) {\n newHeight = Math.ceil(paintHeight / 2);\n heightScale /= paintHeight / newHeight;\n }\n tmpCanvas = this.cachedCanvases.getCanvas(tmpCanvasId, newWidth, newHeight);\n tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, newWidth, newHeight);\n tmpCtx.drawImage(img, 0, 0, paintWidth, paintHeight, 0, 0, newWidth, newHeight);\n img = tmpCanvas.canvas;\n paintWidth = newWidth;\n paintHeight = newHeight;\n tmpCanvasId = tmpCanvasId === \"prescale1\" ? \"prescale2\" : \"prescale1\";\n }\n return {\n img,\n paintWidth,\n paintHeight\n };\n }\n _createMaskCanvas(img) {\n const ctx = this.ctx;\n const {\n width,\n height\n } = img;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n let cache, cacheKey, scaled, maskCanvas;\n if ((img.bitmap || img.data) && img.count > 1) {\n const mainKey = img.bitmap || img.data.buffer;\n cacheKey = JSON.stringify(isPatternFill ? currentTransform : [currentTransform.slice(0, 4), fillColor]);\n cache = this._cachedBitmapsMap.get(mainKey);\n if (!cache) {\n cache = new Map();\n this._cachedBitmapsMap.set(mainKey, cache);\n }\n const cachedImage = cache.get(cacheKey);\n if (cachedImage && !isPatternFill) {\n const offsetX = Math.round(Math.min(currentTransform[0], currentTransform[2]) + currentTransform[4]);\n const offsetY = Math.round(Math.min(currentTransform[1], currentTransform[3]) + currentTransform[5]);\n return {\n canvas: cachedImage,\n offsetX,\n offsetY\n };\n }\n scaled = cachedImage;\n }\n if (!scaled) {\n maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n putBinaryImageMask(maskCanvas.context, img);\n }\n let maskToCanvas = _util.Util.transform(currentTransform, [1 / width, 0, 0, -1 / height, 0, 0]);\n maskToCanvas = _util.Util.transform(maskToCanvas, [1, 0, 0, 1, 0, -height]);\n const cord1 = _util.Util.applyTransform([0, 0], maskToCanvas);\n const cord2 = _util.Util.applyTransform([width, height], maskToCanvas);\n const rect = _util.Util.normalizeRect([cord1[0], cord1[1], cord2[0], cord2[1]]);\n const drawnWidth = Math.round(rect[2] - rect[0]) || 1;\n const drawnHeight = Math.round(rect[3] - rect[1]) || 1;\n const fillCanvas = this.cachedCanvases.getCanvas(\"fillCanvas\", drawnWidth, drawnHeight);\n const fillCtx = fillCanvas.context;\n const offsetX = Math.min(cord1[0], cord2[0]);\n const offsetY = Math.min(cord1[1], cord2[1]);\n fillCtx.translate(-offsetX, -offsetY);\n fillCtx.transform(...maskToCanvas);\n if (!scaled) {\n scaled = this._scaleImage(maskCanvas.canvas, (0, _display_utils.getCurrentTransformInverse)(fillCtx));\n scaled = scaled.img;\n if (cache && isPatternFill) {\n cache.set(cacheKey, scaled);\n }\n }\n fillCtx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(fillCtx), img.interpolate);\n drawImageAtIntegerCoords(fillCtx, scaled, 0, 0, scaled.width, scaled.height, 0, 0, width, height);\n fillCtx.globalCompositeOperation = \"source-in\";\n const inverse = _util.Util.transform((0, _display_utils.getCurrentTransformInverse)(fillCtx), [1, 0, 0, 1, -offsetX, -offsetY]);\n fillCtx.fillStyle = isPatternFill ? fillColor.getPattern(ctx, this, inverse, _pattern_helper.PathType.FILL) : fillColor;\n fillCtx.fillRect(0, 0, width, height);\n if (cache && !isPatternFill) {\n this.cachedCanvases.delete(\"fillCanvas\");\n cache.set(cacheKey, fillCanvas.canvas);\n }\n return {\n canvas: fillCanvas.canvas,\n offsetX: Math.round(offsetX),\n offsetY: Math.round(offsetY)\n };\n }\n setLineWidth(width) {\n if (width !== this.current.lineWidth) {\n this._cachedScaleForStroking = null;\n }\n this.current.lineWidth = width;\n this.ctx.lineWidth = width;\n }\n setLineCap(style) {\n this.ctx.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.ctx.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.ctx.miterLimit = limit;\n }\n setDash(dashArray, dashPhase) {\n const ctx = this.ctx;\n if (ctx.setLineDash !== undefined) {\n ctx.setLineDash(dashArray);\n ctx.lineDashOffset = dashPhase;\n }\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value[0], value[1]);\n break;\n case \"CA\":\n this.current.strokeAlpha = value;\n break;\n case \"ca\":\n this.current.fillAlpha = value;\n this.ctx.globalAlpha = value;\n break;\n case \"BM\":\n this.ctx.globalCompositeOperation = value;\n break;\n case \"SMask\":\n this.current.activeSMask = value ? this.tempSMask : null;\n this.tempSMask = null;\n this.checkSMaskState();\n break;\n case \"TR\":\n this.current.transferMaps = value;\n }\n }\n }\n get inSMaskMode() {\n return !!this.suspendedCtx;\n }\n checkSMaskState() {\n const inSMaskMode = this.inSMaskMode;\n if (this.current.activeSMask && !inSMaskMode) {\n this.beginSMaskMode();\n } else if (!this.current.activeSMask && inSMaskMode) {\n this.endSMaskMode();\n }\n }\n beginSMaskMode() {\n if (this.inSMaskMode) {\n throw new Error(\"beginSMaskMode called while already in smask mode\");\n }\n const drawnWidth = this.ctx.canvas.width;\n const drawnHeight = this.ctx.canvas.height;\n const cacheId = \"smaskGroupAt\" + this.groupLevel;\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n this.suspendedCtx = this.ctx;\n this.ctx = scratchCanvas.context;\n const ctx = this.ctx;\n ctx.setTransform(...(0, _display_utils.getCurrentTransform)(this.suspendedCtx));\n copyCtxState(this.suspendedCtx, ctx);\n mirrorContextOperations(ctx, this.suspendedCtx);\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n }\n endSMaskMode() {\n if (!this.inSMaskMode) {\n throw new Error(\"endSMaskMode called while not in smask mode\");\n }\n this.ctx._removeMirroring();\n copyCtxState(this.ctx, this.suspendedCtx);\n this.ctx = this.suspendedCtx;\n this.suspendedCtx = null;\n }\n compose(dirtyBox) {\n if (!this.current.activeSMask) {\n return;\n }\n if (!dirtyBox) {\n dirtyBox = [0, 0, this.ctx.canvas.width, this.ctx.canvas.height];\n } else {\n dirtyBox[0] = Math.floor(dirtyBox[0]);\n dirtyBox[1] = Math.floor(dirtyBox[1]);\n dirtyBox[2] = Math.ceil(dirtyBox[2]);\n dirtyBox[3] = Math.ceil(dirtyBox[3]);\n }\n const smask = this.current.activeSMask;\n const suspendedCtx = this.suspendedCtx;\n composeSMask(suspendedCtx, smask, this.ctx, dirtyBox);\n this.ctx.save();\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.ctx.canvas.width, this.ctx.canvas.height);\n this.ctx.restore();\n }\n save() {\n if (this.inSMaskMode) {\n copyCtxState(this.ctx, this.suspendedCtx);\n this.suspendedCtx.save();\n } else {\n this.ctx.save();\n }\n const old = this.current;\n this.stateStack.push(old);\n this.current = old.clone();\n }\n restore() {\n if (this.stateStack.length === 0 && this.inSMaskMode) {\n this.endSMaskMode();\n }\n if (this.stateStack.length !== 0) {\n this.current = this.stateStack.pop();\n if (this.inSMaskMode) {\n this.suspendedCtx.restore();\n copyCtxState(this.suspendedCtx, this.ctx);\n } else {\n this.ctx.restore();\n }\n this.checkSMaskState();\n this.pendingClip = null;\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n }\n transform(a, b, c, d, e, f) {\n this.ctx.transform(a, b, c, d, e, f);\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n }\n constructPath(ops, args, minMax) {\n const ctx = this.ctx;\n const current = this.current;\n let x = current.x,\n y = current.y;\n let startX, startY;\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n const isScalingMatrix = currentTransform[0] === 0 && currentTransform[3] === 0 || currentTransform[1] === 0 && currentTransform[2] === 0;\n const minMaxForBezier = isScalingMatrix ? minMax.slice(0) : null;\n for (let i = 0, j = 0, ii = ops.length; i < ii; i++) {\n switch (ops[i] | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n ctx.moveTo(x, y);\n if (width === 0 || height === 0) {\n ctx.lineTo(xw, yh);\n } else {\n ctx.lineTo(xw, y);\n ctx.lineTo(xw, yh);\n ctx.lineTo(x, yh);\n }\n if (!isScalingMatrix) {\n current.updateRectMinMax(currentTransform, [x, y, xw, yh]);\n }\n ctx.closePath();\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n ctx.moveTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n ctx.lineTo(x, y);\n if (!isScalingMatrix) {\n current.updatePathMinMax(currentTransform, x, y);\n }\n break;\n case _util.OPS.curveTo:\n startX = x;\n startY = y;\n x = args[j + 4];\n y = args[j + 5];\n ctx.bezierCurveTo(args[j], args[j + 1], args[j + 2], args[j + 3], x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], args[j + 2], args[j + 3], x, y, minMaxForBezier);\n j += 6;\n break;\n case _util.OPS.curveTo2:\n startX = x;\n startY = y;\n ctx.bezierCurveTo(x, y, args[j], args[j + 1], args[j + 2], args[j + 3]);\n current.updateCurvePathMinMax(currentTransform, startX, startY, x, y, args[j], args[j + 1], args[j + 2], args[j + 3], minMaxForBezier);\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n startX = x;\n startY = y;\n x = args[j + 2];\n y = args[j + 3];\n ctx.bezierCurveTo(args[j], args[j + 1], x, y, x, y);\n current.updateCurvePathMinMax(currentTransform, startX, startY, args[j], args[j + 1], x, y, x, y, minMaxForBezier);\n j += 4;\n break;\n case _util.OPS.closePath:\n ctx.closePath();\n break;\n }\n }\n if (isScalingMatrix) {\n current.updateScalingPathMinMax(currentTransform, minMaxForBezier);\n }\n current.setCurrentPoint(x, y);\n }\n closePath() {\n this.ctx.closePath();\n }\n stroke(consumePath = true) {\n const ctx = this.ctx;\n const strokeColor = this.current.strokeColor;\n ctx.globalAlpha = this.current.strokeAlpha;\n if (this.contentVisible) {\n if (typeof strokeColor === \"object\" && strokeColor?.getPattern) {\n ctx.save();\n ctx.strokeStyle = strokeColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.STROKE);\n this.rescaleAndStroke(false);\n ctx.restore();\n } else {\n this.rescaleAndStroke(true);\n }\n }\n if (consumePath) {\n this.consumePath(this.current.getClippedPathBoundingBox());\n }\n ctx.globalAlpha = this.current.fillAlpha;\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n fill(consumePath = true) {\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n let needRestore = false;\n if (isPatternFill) {\n ctx.save();\n ctx.fillStyle = fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n needRestore = true;\n }\n const intersect = this.current.getClippedPathBoundingBox();\n if (this.contentVisible && intersect !== null) {\n if (this.pendingEOFill) {\n ctx.fill(\"evenodd\");\n this.pendingEOFill = false;\n } else {\n ctx.fill();\n }\n }\n if (needRestore) {\n ctx.restore();\n }\n if (consumePath) {\n this.consumePath(intersect);\n }\n }\n eoFill() {\n this.pendingEOFill = true;\n this.fill();\n }\n fillStroke() {\n this.fill(false);\n this.stroke(false);\n this.consumePath();\n }\n eoFillStroke() {\n this.pendingEOFill = true;\n this.fillStroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.pendingEOFill = true;\n this.closePath();\n this.fillStroke();\n }\n endPath() {\n this.consumePath();\n }\n clip() {\n this.pendingClip = NORMAL_CLIP;\n }\n eoClip() {\n this.pendingClip = EO_CLIP;\n }\n beginText() {\n this.current.textMatrix = _util.IDENTITY_MATRIX;\n this.current.textMatrixScale = 1;\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n endText() {\n const paths = this.pendingTextPaths;\n const ctx = this.ctx;\n if (paths === undefined) {\n ctx.beginPath();\n return;\n }\n ctx.save();\n ctx.beginPath();\n for (const path of paths) {\n ctx.setTransform(...path.transform);\n ctx.translate(path.x, path.y);\n path.addToPath(ctx, path.fontSize);\n }\n ctx.restore();\n ctx.clip();\n ctx.beginPath();\n delete this.pendingTextPaths;\n }\n setCharSpacing(spacing) {\n this.current.charSpacing = spacing;\n }\n setWordSpacing(spacing) {\n this.current.wordSpacing = spacing;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setFont(fontRefName, size) {\n const fontObj = this.commonObjs.get(fontRefName);\n const current = this.current;\n if (!fontObj) {\n throw new Error(`Can't find font for ${fontRefName}`);\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n if (current.fontMatrix[0] === 0 || current.fontMatrix[3] === 0) {\n (0, _util.warn)(\"Invalid font matrix for font \" + fontRefName);\n }\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n this.current.font = fontObj;\n this.current.fontSize = size;\n if (fontObj.isType3Font) {\n return;\n }\n const name = fontObj.loadedName || \"sans-serif\";\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n const typeface = `\"${name}\", ${fontObj.fallbackName}`;\n let browserFontSize = size;\n if (size < MIN_FONT_SIZE) {\n browserFontSize = MIN_FONT_SIZE;\n } else if (size > MAX_FONT_SIZE) {\n browserFontSize = MAX_FONT_SIZE;\n }\n this.current.fontSizeScale = size / browserFontSize;\n this.ctx.font = `${italic} ${bold} ${browserFontSize}px ${typeface}`;\n }\n setTextRenderingMode(mode) {\n this.current.textRenderingMode = mode;\n }\n setTextRise(rise) {\n this.current.textRise = rise;\n }\n moveText(x, y) {\n this.current.x = this.current.lineX += x;\n this.current.y = this.current.lineY += y;\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n setTextMatrix(a, b, c, d, e, f) {\n this.current.textMatrix = [a, b, c, d, e, f];\n this.current.textMatrixScale = Math.hypot(a, b);\n this.current.x = this.current.lineX = 0;\n this.current.y = this.current.lineY = 0;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n paintChar(character, x, y, patternTransform) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const textRenderingMode = current.textRenderingMode;\n const fontSize = current.fontSize / current.fontSizeScale;\n const fillStrokeMode = textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n const isAddToPathSet = !!(textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG);\n const patternFill = current.patternFill && !font.missingFile;\n let addToPath;\n if (font.disableFontFace || isAddToPathSet || patternFill) {\n addToPath = font.getPathGenerator(this.commonObjs, character);\n }\n if (font.disableFontFace || patternFill) {\n ctx.save();\n ctx.translate(x, y);\n ctx.beginPath();\n addToPath(ctx, fontSize);\n if (patternTransform) {\n ctx.setTransform(...patternTransform);\n }\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fill();\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.stroke();\n }\n ctx.restore();\n } else {\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.fillText(character, x, y);\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n ctx.strokeText(character, x, y);\n }\n }\n if (isAddToPathSet) {\n const paths = this.pendingTextPaths || (this.pendingTextPaths = []);\n paths.push({\n transform: (0, _display_utils.getCurrentTransform)(ctx),\n x,\n y,\n fontSize,\n addToPath\n });\n }\n }\n get isFontSubpixelAAEnabled() {\n const {\n context: ctx\n } = this.cachedCanvases.getCanvas(\"isFontSubpixelAAEnabled\", 10, 10);\n ctx.scale(1.5, 1);\n ctx.fillText(\"I\", 0, 10);\n const data = ctx.getImageData(0, 0, 10, 10).data;\n let enabled = false;\n for (let i = 3; i < data.length; i += 4) {\n if (data[i] > 0 && data[i] < 255) {\n enabled = true;\n break;\n }\n }\n return (0, _util.shadow)(this, \"isFontSubpixelAAEnabled\", enabled);\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n if (font.isType3Font) {\n return this.showType3Text(glyphs);\n }\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return undefined;\n }\n const ctx = this.ctx;\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const glyphsLength = glyphs.length;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n const simpleFillText = current.textRenderingMode === _util.TextRenderingMode.FILL && !font.disableFontFace && !current.patternFill;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y + current.textRise);\n if (fontDirection > 0) {\n ctx.scale(textHScale, -1);\n } else {\n ctx.scale(textHScale, 1);\n }\n let patternTransform;\n if (current.patternFill) {\n ctx.save();\n const pattern = current.fillColor.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL);\n patternTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.restore();\n ctx.fillStyle = pattern;\n }\n let lineWidth = current.lineWidth;\n const scale = current.textMatrixScale;\n if (scale === 0 || lineWidth === 0) {\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n lineWidth = this.getSinglePixelWidth();\n }\n } else {\n lineWidth /= scale;\n }\n if (fontSizeScale !== 1.0) {\n ctx.scale(fontSizeScale, fontSizeScale);\n lineWidth /= fontSizeScale;\n }\n ctx.lineWidth = lineWidth;\n if (font.isInvalidPDFjsFont) {\n const chars = [];\n let width = 0;\n for (const glyph of glyphs) {\n chars.push(glyph.unicode);\n width += glyph.width;\n }\n ctx.fillText(chars.join(\"\"), 0, 0);\n current.x += width * widthAdvanceScale * textHScale;\n ctx.restore();\n this.compose();\n return undefined;\n }\n let x = 0,\n i;\n for (i = 0; i < glyphsLength; ++i) {\n const glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n let restoreNeeded = false;\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n const accent = glyph.accent;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n const vmetric = glyph.vmetric || defaultVMetrics;\n const vx = -(glyph.vmetric ? vmetric[1] : width * 0.5) * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (font.remeasure && width > 0) {\n const measuredWidth = ctx.measureText(character).width * 1000 / fontSize * fontSizeScale;\n if (width < measuredWidth && this.isFontSubpixelAAEnabled) {\n const characterScaleX = width / measuredWidth;\n restoreNeeded = true;\n ctx.save();\n ctx.scale(characterScaleX, 1);\n scaledX /= characterScaleX;\n } else if (width !== measuredWidth) {\n scaledX += (width - measuredWidth) / 2000 * fontSize / fontSizeScale;\n }\n }\n if (this.contentVisible && (glyph.isInFont || font.missingFile)) {\n if (simpleFillText && !accent) {\n ctx.fillText(character, scaledX, scaledY);\n } else {\n this.paintChar(character, scaledX, scaledY, patternTransform);\n if (accent) {\n const scaledAccentX = scaledX + fontSize * accent.offset.x / fontSizeScale;\n const scaledAccentY = scaledY - fontSize * accent.offset.y / fontSizeScale;\n this.paintChar(accent.fontChar, scaledAccentX, scaledAccentY, patternTransform);\n }\n }\n }\n let charWidth;\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n x += charWidth;\n if (restoreNeeded) {\n ctx.restore();\n }\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n ctx.restore();\n this.compose();\n return undefined;\n }\n showType3Text(glyphs) {\n const ctx = this.ctx;\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n const fontDirection = current.fontDirection;\n const spacingDir = font.vertical ? 1 : -1;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const textHScale = current.textHScale * fontDirection;\n const fontMatrix = current.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n const glyphsLength = glyphs.length;\n const isTextInvisible = current.textRenderingMode === _util.TextRenderingMode.INVISIBLE;\n let i, glyph, width, spacingLength;\n if (isTextInvisible || fontSize === 0) {\n return;\n }\n this._cachedScaleForStroking = null;\n this._cachedGetSinglePixelWidth = null;\n ctx.save();\n ctx.transform(...current.textMatrix);\n ctx.translate(current.x, current.y);\n ctx.scale(textHScale, fontDirection);\n for (i = 0; i < glyphsLength; ++i) {\n glyph = glyphs[i];\n if (typeof glyph === \"number\") {\n spacingLength = spacingDir * glyph * fontSize / 1000;\n this.ctx.translate(spacingLength, 0);\n current.x += spacingLength * textHScale;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const operatorList = font.charProcOperatorList[glyph.operatorListId];\n if (!operatorList) {\n (0, _util.warn)(`Type3 character \"${glyph.operatorListId}\" is not available.`);\n continue;\n }\n if (this.contentVisible) {\n this.processingType3 = glyph;\n this.save();\n ctx.scale(fontSize, fontSize);\n ctx.transform(...fontMatrix);\n this.executeOperatorList(operatorList);\n this.restore();\n }\n const transformed = _util.Util.applyTransform([glyph.width, 0], fontMatrix);\n width = transformed[0] * fontSize + spacing;\n ctx.translate(width, 0);\n current.x += width * textHScale;\n }\n ctx.restore();\n this.processingType3 = null;\n }\n setCharWidth(xWidth, yWidth) {}\n setCharWidthAndBounds(xWidth, yWidth, llx, lly, urx, ury) {\n this.ctx.rect(llx, lly, urx - llx, ury - lly);\n this.ctx.clip();\n this.endPath();\n }\n getColorN_Pattern(IR) {\n let pattern;\n if (IR[0] === \"TilingPattern\") {\n const color = IR[1];\n const baseTransform = this.baseTransform || (0, _display_utils.getCurrentTransform)(this.ctx);\n const canvasGraphicsFactory = {\n createCanvasGraphics: ctx => {\n return new CanvasGraphics(ctx, this.commonObjs, this.objs, this.canvasFactory, {\n optionalContentConfig: this.optionalContentConfig,\n markedContentStack: this.markedContentStack\n });\n }\n };\n pattern = new _pattern_helper.TilingPattern(IR, color, this.ctx, canvasGraphicsFactory, baseTransform);\n } else {\n pattern = this._getPattern(IR[1], IR[2]);\n }\n return pattern;\n }\n setStrokeColorN() {\n this.current.strokeColor = this.getColorN_Pattern(arguments);\n }\n setFillColorN() {\n this.current.fillColor = this.getColorN_Pattern(arguments);\n this.current.patternFill = true;\n }\n setStrokeRGBColor(r, g, b) {\n const color = this.selectColor?.(r, g, b) || _util.Util.makeHexColor(r, g, b);\n this.ctx.strokeStyle = color;\n this.current.strokeColor = color;\n }\n setFillRGBColor(r, g, b) {\n const color = this.selectColor?.(r, g, b) || _util.Util.makeHexColor(r, g, b);\n this.ctx.fillStyle = color;\n this.current.fillColor = color;\n this.current.patternFill = false;\n }\n _getPattern(objId, matrix = null) {\n let pattern;\n if (this.cachedPatterns.has(objId)) {\n pattern = this.cachedPatterns.get(objId);\n } else {\n pattern = (0, _pattern_helper.getShadingPattern)(this.objs.get(objId));\n this.cachedPatterns.set(objId, pattern);\n }\n if (matrix) {\n pattern.matrix = matrix;\n }\n return pattern;\n }\n shadingFill(objId) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n this.save();\n const pattern = this._getPattern(objId);\n ctx.fillStyle = pattern.getPattern(ctx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.SHADING);\n const inv = (0, _display_utils.getCurrentTransformInverse)(ctx);\n if (inv) {\n const canvas = ctx.canvas;\n const width = canvas.width;\n const height = canvas.height;\n const bl = _util.Util.applyTransform([0, 0], inv);\n const br = _util.Util.applyTransform([0, height], inv);\n const ul = _util.Util.applyTransform([width, 0], inv);\n const ur = _util.Util.applyTransform([width, height], inv);\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n this.ctx.fillRect(x0, y0, x1 - x0, y1 - y0);\n } else {\n this.ctx.fillRect(-1e10, -1e10, 2e10, 2e10);\n }\n this.compose(this.current.getClippedPathBoundingBox());\n this.restore();\n }\n beginInlineImage() {\n (0, _util.unreachable)(\"Should not call beginInlineImage\");\n }\n beginImageData() {\n (0, _util.unreachable)(\"Should not call beginImageData\");\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n this.baseTransformStack.push(this.baseTransform);\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(...matrix);\n }\n this.baseTransform = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n this.ctx.rect(bbox[0], bbox[1], width, height);\n this.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(this.ctx), bbox);\n this.clip();\n this.endPath();\n }\n }\n paintFormXObjectEnd() {\n if (!this.contentVisible) {\n return;\n }\n this.restore();\n this.baseTransform = this.baseTransformStack.pop();\n }\n beginGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.save();\n if (this.inSMaskMode) {\n this.endSMaskMode();\n this.current.activeSMask = null;\n }\n const currentCtx = this.ctx;\n if (!group.isolated) {\n (0, _util.info)(\"TODO: Support non-isolated groups.\");\n }\n if (group.knockout) {\n (0, _util.warn)(\"Knockout groups not supported.\");\n }\n const currentTransform = (0, _display_utils.getCurrentTransform)(currentCtx);\n if (group.matrix) {\n currentCtx.transform(...group.matrix);\n }\n if (!group.bbox) {\n throw new Error(\"Bounding box is required.\");\n }\n let bounds = _util.Util.getAxialAlignedBoundingBox(group.bbox, (0, _display_utils.getCurrentTransform)(currentCtx));\n const canvasBounds = [0, 0, currentCtx.canvas.width, currentCtx.canvas.height];\n bounds = _util.Util.intersect(bounds, canvasBounds) || [0, 0, 0, 0];\n const offsetX = Math.floor(bounds[0]);\n const offsetY = Math.floor(bounds[1]);\n let drawnWidth = Math.max(Math.ceil(bounds[2]) - offsetX, 1);\n let drawnHeight = Math.max(Math.ceil(bounds[3]) - offsetY, 1);\n let scaleX = 1,\n scaleY = 1;\n if (drawnWidth > MAX_GROUP_SIZE) {\n scaleX = drawnWidth / MAX_GROUP_SIZE;\n drawnWidth = MAX_GROUP_SIZE;\n }\n if (drawnHeight > MAX_GROUP_SIZE) {\n scaleY = drawnHeight / MAX_GROUP_SIZE;\n drawnHeight = MAX_GROUP_SIZE;\n }\n this.current.startNewPathAndClipBox([0, 0, drawnWidth, drawnHeight]);\n let cacheId = \"groupAt\" + this.groupLevel;\n if (group.smask) {\n cacheId += \"_smask_\" + this.smaskCounter++ % 2;\n }\n const scratchCanvas = this.cachedCanvases.getCanvas(cacheId, drawnWidth, drawnHeight);\n const groupCtx = scratchCanvas.context;\n groupCtx.scale(1 / scaleX, 1 / scaleY);\n groupCtx.translate(-offsetX, -offsetY);\n groupCtx.transform(...currentTransform);\n if (group.smask) {\n this.smaskStack.push({\n canvas: scratchCanvas.canvas,\n context: groupCtx,\n offsetX,\n offsetY,\n scaleX,\n scaleY,\n subtype: group.smask.subtype,\n backdrop: group.smask.backdrop,\n transferMap: group.smask.transferMap || null,\n startTransformInverse: null\n });\n } else {\n currentCtx.setTransform(1, 0, 0, 1, 0, 0);\n currentCtx.translate(offsetX, offsetY);\n currentCtx.scale(scaleX, scaleY);\n currentCtx.save();\n }\n copyCtxState(currentCtx, groupCtx);\n this.ctx = groupCtx;\n this.setGState([[\"BM\", \"source-over\"], [\"ca\", 1], [\"CA\", 1]]);\n this.groupStack.push(currentCtx);\n this.groupLevel++;\n }\n endGroup(group) {\n if (!this.contentVisible) {\n return;\n }\n this.groupLevel--;\n const groupCtx = this.ctx;\n const ctx = this.groupStack.pop();\n this.ctx = ctx;\n this.ctx.imageSmoothingEnabled = false;\n if (group.smask) {\n this.tempSMask = this.smaskStack.pop();\n this.restore();\n } else {\n this.ctx.restore();\n const currentMtx = (0, _display_utils.getCurrentTransform)(this.ctx);\n this.restore();\n this.ctx.save();\n this.ctx.setTransform(...currentMtx);\n const dirtyBox = _util.Util.getAxialAlignedBoundingBox([0, 0, groupCtx.canvas.width, groupCtx.canvas.height], currentMtx);\n this.ctx.drawImage(groupCtx.canvas, 0, 0);\n this.ctx.restore();\n this.compose(dirtyBox);\n }\n }\n beginAnnotation(id, rect, transform, matrix, hasOwnCanvas) {\n this.#restoreInitialState();\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.save();\n this.save();\n if (this.baseTransform) {\n this.ctx.setTransform(...this.baseTransform);\n }\n if (Array.isArray(rect) && rect.length === 4) {\n const width = rect[2] - rect[0];\n const height = rect[3] - rect[1];\n if (hasOwnCanvas && this.annotationCanvasMap) {\n transform = transform.slice();\n transform[4] -= rect[0];\n transform[5] -= rect[1];\n rect = rect.slice();\n rect[0] = rect[1] = 0;\n rect[2] = width;\n rect[3] = height;\n const [scaleX, scaleY] = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(this.ctx));\n const {\n viewportScale\n } = this;\n const canvasWidth = Math.ceil(width * this.outputScaleX * viewportScale);\n const canvasHeight = Math.ceil(height * this.outputScaleY * viewportScale);\n this.annotationCanvas = this.canvasFactory.create(canvasWidth, canvasHeight);\n const {\n canvas,\n context\n } = this.annotationCanvas;\n this.annotationCanvasMap.set(id, canvas);\n this.annotationCanvas.savedCtx = this.ctx;\n this.ctx = context;\n this.ctx.setTransform(scaleX, 0, 0, -scaleY, 0, height * scaleY);\n resetCtxToDefault(this.ctx, this.foregroundColor);\n } else {\n resetCtxToDefault(this.ctx, this.foregroundColor);\n this.ctx.rect(rect[0], rect[1], width, height);\n this.ctx.clip();\n this.endPath();\n }\n }\n this.current = new CanvasExtraState(this.ctx.canvas.width, this.ctx.canvas.height);\n this.transform(...transform);\n this.transform(...matrix);\n }\n endAnnotation() {\n if (this.annotationCanvas) {\n this.ctx = this.annotationCanvas.savedCtx;\n delete this.annotationCanvas.savedCtx;\n delete this.annotationCanvas;\n }\n }\n paintImageMaskXObject(img) {\n if (!this.contentVisible) {\n return;\n }\n const count = img.count;\n img = this.getObject(img.data, img);\n img.count = count;\n const ctx = this.ctx;\n const glyph = this.processingType3;\n if (glyph) {\n if (glyph.compiled === undefined) {\n glyph.compiled = compileType3Glyph(img);\n }\n if (glyph.compiled) {\n glyph.compiled(ctx);\n return;\n }\n }\n const mask = this._createMaskCanvas(img);\n const maskCanvas = mask.canvas;\n ctx.save();\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.drawImage(maskCanvas, mask.offsetX, mask.offsetY);\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectRepeat(img, scaleX, skewX = 0, skewY = 0, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n img = this.getObject(img.data, img);\n const ctx = this.ctx;\n ctx.save();\n const currentTransform = (0, _display_utils.getCurrentTransform)(ctx);\n ctx.transform(scaleX, skewX, skewY, scaleY, 0, 0);\n const mask = this._createMaskCanvas(img);\n ctx.setTransform(1, 0, 0, 1, mask.offsetX - currentTransform[4], mask.offsetY - currentTransform[5]);\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n const trans = _util.Util.transform(currentTransform, [scaleX, skewX, skewY, scaleY, positions[i], positions[i + 1]]);\n const [x, y] = _util.Util.applyTransform([0, 0], trans);\n ctx.drawImage(mask.canvas, x, y);\n }\n ctx.restore();\n this.compose();\n }\n paintImageMaskXObjectGroup(images) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const fillColor = this.current.fillColor;\n const isPatternFill = this.current.patternFill;\n for (const image of images) {\n const {\n data,\n width,\n height,\n transform\n } = image;\n const maskCanvas = this.cachedCanvases.getCanvas(\"maskCanvas\", width, height);\n const maskCtx = maskCanvas.context;\n maskCtx.save();\n const img = this.getObject(data, image);\n putBinaryImageMask(maskCtx, img);\n maskCtx.globalCompositeOperation = \"source-in\";\n maskCtx.fillStyle = isPatternFill ? fillColor.getPattern(maskCtx, this, (0, _display_utils.getCurrentTransformInverse)(ctx), _pattern_helper.PathType.FILL) : fillColor;\n maskCtx.fillRect(0, 0, width, height);\n maskCtx.restore();\n ctx.save();\n ctx.transform(...transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, maskCanvas.canvas, 0, 0, width, height, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintImageXObject(objId) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintImageXObjectRepeat(objId, scaleX, scaleY, positions) {\n if (!this.contentVisible) {\n return;\n }\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(\"Dependent image isn't ready yet\");\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const map = [];\n for (let i = 0, ii = positions.length; i < ii; i += 2) {\n map.push({\n transform: [scaleX, 0, 0, scaleY, positions[i], positions[i + 1]],\n x: 0,\n y: 0,\n w: width,\n h: height\n });\n }\n this.paintInlineImageXObjectGroup(imgData, map);\n }\n paintInlineImageXObject(imgData) {\n if (!this.contentVisible) {\n return;\n }\n const width = imgData.width;\n const height = imgData.height;\n const ctx = this.ctx;\n this.save();\n ctx.scale(1 / width, -1 / height);\n let imgToPaint;\n if (typeof HTMLElement === \"function\" && imgData instanceof HTMLElement || !imgData.data) {\n imgToPaint = imgData;\n } else {\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", width, height);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n imgToPaint = tmpCanvas.canvas;\n }\n const scaled = this._scaleImage(imgToPaint, (0, _display_utils.getCurrentTransformInverse)(ctx));\n ctx.imageSmoothingEnabled = getImageSmoothingEnabled((0, _display_utils.getCurrentTransform)(ctx), imgData.interpolate);\n drawImageAtIntegerCoords(ctx, scaled.img, 0, 0, scaled.paintWidth, scaled.paintHeight, 0, -height, width, height);\n this.compose();\n this.restore();\n }\n paintInlineImageXObjectGroup(imgData, map) {\n if (!this.contentVisible) {\n return;\n }\n const ctx = this.ctx;\n const w = imgData.width;\n const h = imgData.height;\n const tmpCanvas = this.cachedCanvases.getCanvas(\"inlineImage\", w, h);\n const tmpCtx = tmpCanvas.context;\n putBinaryImageData(tmpCtx, imgData, this.current.transferMaps);\n for (const entry of map) {\n ctx.save();\n ctx.transform(...entry.transform);\n ctx.scale(1, -1);\n drawImageAtIntegerCoords(ctx, tmpCanvas.canvas, entry.x, entry.y, entry.w, entry.h, 0, -1, 1, 1);\n ctx.restore();\n }\n this.compose();\n }\n paintSolidColorImageMask() {\n if (!this.contentVisible) {\n return;\n }\n this.ctx.fillRect(0, 0, 1, 1);\n this.compose();\n }\n markPoint(tag) {}\n markPointProps(tag, properties) {}\n beginMarkedContent(tag) {\n this.markedContentStack.push({\n visible: true\n });\n }\n beginMarkedContentProps(tag, properties) {\n if (tag === \"OC\") {\n this.markedContentStack.push({\n visible: this.optionalContentConfig.isVisible(properties)\n });\n } else {\n this.markedContentStack.push({\n visible: true\n });\n }\n this.contentVisible = this.isContentVisible();\n }\n endMarkedContent() {\n this.markedContentStack.pop();\n this.contentVisible = this.isContentVisible();\n }\n beginCompat() {}\n endCompat() {}\n consumePath(clipBox) {\n const isEmpty = this.current.isEmptyClip();\n if (this.pendingClip) {\n this.current.updateClipFromPath();\n }\n if (!this.pendingClip) {\n this.compose(clipBox);\n }\n const ctx = this.ctx;\n if (this.pendingClip) {\n if (!isEmpty) {\n if (this.pendingClip === EO_CLIP) {\n ctx.clip(\"evenodd\");\n } else {\n ctx.clip();\n }\n }\n this.pendingClip = null;\n }\n this.current.startNewPathAndClipBox(this.current.clipBox);\n ctx.beginPath();\n }\n getSinglePixelWidth() {\n if (!this._cachedGetSinglePixelWidth) {\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n if (m[1] === 0 && m[2] === 0) {\n this._cachedGetSinglePixelWidth = 1 / Math.min(Math.abs(m[0]), Math.abs(m[3]));\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[2]);\n const normY = Math.hypot(m[1], m[3]);\n this._cachedGetSinglePixelWidth = Math.max(normX, normY) / absDet;\n }\n }\n return this._cachedGetSinglePixelWidth;\n }\n getScaleForStroking() {\n if (!this._cachedScaleForStroking) {\n const {\n lineWidth\n } = this.current;\n const m = (0, _display_utils.getCurrentTransform)(this.ctx);\n let scaleX, scaleY;\n if (m[1] === 0 && m[2] === 0) {\n const normX = Math.abs(m[0]);\n const normY = Math.abs(m[3]);\n if (lineWidth === 0) {\n scaleX = 1 / normX;\n scaleY = 1 / normY;\n } else {\n const scaledXLineWidth = normX * lineWidth;\n const scaledYLineWidth = normY * lineWidth;\n scaleX = scaledXLineWidth < 1 ? 1 / scaledXLineWidth : 1;\n scaleY = scaledYLineWidth < 1 ? 1 / scaledYLineWidth : 1;\n }\n } else {\n const absDet = Math.abs(m[0] * m[3] - m[2] * m[1]);\n const normX = Math.hypot(m[0], m[1]);\n const normY = Math.hypot(m[2], m[3]);\n if (lineWidth === 0) {\n scaleX = normY / absDet;\n scaleY = normX / absDet;\n } else {\n const baseArea = lineWidth * absDet;\n scaleX = normY > baseArea ? normY / baseArea : 1;\n scaleY = normX > baseArea ? normX / baseArea : 1;\n }\n }\n this._cachedScaleForStroking = [scaleX, scaleY];\n }\n return this._cachedScaleForStroking;\n }\n rescaleAndStroke(saveRestore) {\n const {\n ctx\n } = this;\n const {\n lineWidth\n } = this.current;\n const [scaleX, scaleY] = this.getScaleForStroking();\n ctx.lineWidth = lineWidth || 1;\n if (scaleX === 1 && scaleY === 1) {\n ctx.stroke();\n return;\n }\n let savedMatrix, savedDashes, savedDashOffset;\n if (saveRestore) {\n savedMatrix = (0, _display_utils.getCurrentTransform)(ctx);\n savedDashes = ctx.getLineDash().slice();\n savedDashOffset = ctx.lineDashOffset;\n }\n ctx.scale(scaleX, scaleY);\n const scale = Math.max(scaleX, scaleY);\n ctx.setLineDash(ctx.getLineDash().map(x => x / scale));\n ctx.lineDashOffset /= scale;\n ctx.stroke();\n if (saveRestore) {\n ctx.setTransform(...savedMatrix);\n ctx.setLineDash(savedDashes);\n ctx.lineDashOffset = savedDashOffset;\n }\n }\n isContentVisible() {\n for (let i = this.markedContentStack.length - 1; i >= 0; i--) {\n if (!this.markedContentStack[i].visible) {\n return false;\n }\n }\n return true;\n }\n}\nexports.CanvasGraphics = CanvasGraphics;\nfor (const op in _util.OPS) {\n if (CanvasGraphics.prototype[op] !== undefined) {\n CanvasGraphics.prototype[_util.OPS[op]] = CanvasGraphics.prototype[op];\n }\n}\n\n/***/ }),\n/* 12 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TilingPattern = exports.PathType = void 0;\nexports.getShadingPattern = getShadingPattern;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst PathType = {\n FILL: \"Fill\",\n STROKE: \"Stroke\",\n SHADING: \"Shading\"\n};\nexports.PathType = PathType;\nfunction applyBoundingBox(ctx, bbox) {\n if (!bbox) {\n return;\n }\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const region = new Path2D();\n region.rect(bbox[0], bbox[1], width, height);\n ctx.clip(region);\n}\nclass BaseShadingPattern {\n constructor() {\n if (this.constructor === BaseShadingPattern) {\n (0, _util.unreachable)(\"Cannot initialize BaseShadingPattern.\");\n }\n }\n getPattern() {\n (0, _util.unreachable)(\"Abstract method `getPattern` called.\");\n }\n}\nclass RadialAxialShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._type = IR[1];\n this._bbox = IR[2];\n this._colorStops = IR[3];\n this._p0 = IR[4];\n this._p1 = IR[5];\n this._r0 = IR[6];\n this._r1 = IR[7];\n this.matrix = null;\n }\n _createGradient(ctx) {\n let grad;\n if (this._type === \"axial\") {\n grad = ctx.createLinearGradient(this._p0[0], this._p0[1], this._p1[0], this._p1[1]);\n } else if (this._type === \"radial\") {\n grad = ctx.createRadialGradient(this._p0[0], this._p0[1], this._r0, this._p1[0], this._p1[1], this._r1);\n }\n for (const colorStop of this._colorStops) {\n grad.addColorStop(colorStop[0], colorStop[1]);\n }\n return grad;\n }\n getPattern(ctx, owner, inverse, pathType) {\n let pattern;\n if (pathType === PathType.STROKE || pathType === PathType.FILL) {\n const ownerBBox = owner.current.getClippedPathBoundingBox(pathType, (0, _display_utils.getCurrentTransform)(ctx)) || [0, 0, 0, 0];\n const width = Math.ceil(ownerBBox[2] - ownerBBox[0]) || 1;\n const height = Math.ceil(ownerBBox[3] - ownerBBox[1]) || 1;\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", width, height, true);\n const tmpCtx = tmpCanvas.context;\n tmpCtx.clearRect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.beginPath();\n tmpCtx.rect(0, 0, tmpCtx.canvas.width, tmpCtx.canvas.height);\n tmpCtx.translate(-ownerBBox[0], -ownerBBox[1]);\n inverse = _util.Util.transform(inverse, [1, 0, 0, 1, ownerBBox[0], ownerBBox[1]]);\n tmpCtx.transform(...owner.baseTransform);\n if (this.matrix) {\n tmpCtx.transform(...this.matrix);\n }\n applyBoundingBox(tmpCtx, this._bbox);\n tmpCtx.fillStyle = this._createGradient(tmpCtx);\n tmpCtx.fill();\n pattern = ctx.createPattern(tmpCanvas.canvas, \"no-repeat\");\n const domMatrix = new DOMMatrix(inverse);\n pattern.setTransform(domMatrix);\n } else {\n applyBoundingBox(ctx, this._bbox);\n pattern = this._createGradient(ctx);\n }\n return pattern;\n }\n}\nfunction drawTriangle(data, context, p1, p2, p3, c1, c2, c3) {\n const coords = context.coords,\n colors = context.colors;\n const bytes = data.data,\n rowSize = data.width * 4;\n let tmp;\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n if (coords[p2 + 1] > coords[p3 + 1]) {\n tmp = p2;\n p2 = p3;\n p3 = tmp;\n tmp = c2;\n c2 = c3;\n c3 = tmp;\n }\n if (coords[p1 + 1] > coords[p2 + 1]) {\n tmp = p1;\n p1 = p2;\n p2 = tmp;\n tmp = c1;\n c1 = c2;\n c2 = tmp;\n }\n const x1 = (coords[p1] + context.offsetX) * context.scaleX;\n const y1 = (coords[p1 + 1] + context.offsetY) * context.scaleY;\n const x2 = (coords[p2] + context.offsetX) * context.scaleX;\n const y2 = (coords[p2 + 1] + context.offsetY) * context.scaleY;\n const x3 = (coords[p3] + context.offsetX) * context.scaleX;\n const y3 = (coords[p3 + 1] + context.offsetY) * context.scaleY;\n if (y1 >= y3) {\n return;\n }\n const c1r = colors[c1],\n c1g = colors[c1 + 1],\n c1b = colors[c1 + 2];\n const c2r = colors[c2],\n c2g = colors[c2 + 1],\n c2b = colors[c2 + 2];\n const c3r = colors[c3],\n c3g = colors[c3 + 1],\n c3b = colors[c3 + 2];\n const minY = Math.round(y1),\n maxY = Math.round(y3);\n let xa, car, cag, cab;\n let xb, cbr, cbg, cbb;\n for (let y = minY; y <= maxY; y++) {\n if (y < y2) {\n let k;\n if (y < y1) {\n k = 0;\n } else {\n k = (y1 - y) / (y1 - y2);\n }\n xa = x1 - (x1 - x2) * k;\n car = c1r - (c1r - c2r) * k;\n cag = c1g - (c1g - c2g) * k;\n cab = c1b - (c1b - c2b) * k;\n } else {\n let k;\n if (y > y3) {\n k = 1;\n } else if (y2 === y3) {\n k = 0;\n } else {\n k = (y2 - y) / (y2 - y3);\n }\n xa = x2 - (x2 - x3) * k;\n car = c2r - (c2r - c3r) * k;\n cag = c2g - (c2g - c3g) * k;\n cab = c2b - (c2b - c3b) * k;\n }\n let k;\n if (y < y1) {\n k = 0;\n } else if (y > y3) {\n k = 1;\n } else {\n k = (y1 - y) / (y1 - y3);\n }\n xb = x1 - (x1 - x3) * k;\n cbr = c1r - (c1r - c3r) * k;\n cbg = c1g - (c1g - c3g) * k;\n cbb = c1b - (c1b - c3b) * k;\n const x1_ = Math.round(Math.min(xa, xb));\n const x2_ = Math.round(Math.max(xa, xb));\n let j = rowSize * y + x1_ * 4;\n for (let x = x1_; x <= x2_; x++) {\n k = (xa - x) / (xa - xb);\n if (k < 0) {\n k = 0;\n } else if (k > 1) {\n k = 1;\n }\n bytes[j++] = car - (car - cbr) * k | 0;\n bytes[j++] = cag - (cag - cbg) * k | 0;\n bytes[j++] = cab - (cab - cbb) * k | 0;\n bytes[j++] = 255;\n }\n }\n}\nfunction drawFigure(data, figure, context) {\n const ps = figure.coords;\n const cs = figure.colors;\n let i, ii;\n switch (figure.type) {\n case \"lattice\":\n const verticesPerRow = figure.verticesPerRow;\n const rows = Math.floor(ps.length / verticesPerRow) - 1;\n const cols = verticesPerRow - 1;\n for (i = 0; i < rows; i++) {\n let q = i * verticesPerRow;\n for (let j = 0; j < cols; j++, q++) {\n drawTriangle(data, context, ps[q], ps[q + 1], ps[q + verticesPerRow], cs[q], cs[q + 1], cs[q + verticesPerRow]);\n drawTriangle(data, context, ps[q + verticesPerRow + 1], ps[q + 1], ps[q + verticesPerRow], cs[q + verticesPerRow + 1], cs[q + 1], cs[q + verticesPerRow]);\n }\n }\n break;\n case \"triangles\":\n for (i = 0, ii = ps.length; i < ii; i += 3) {\n drawTriangle(data, context, ps[i], ps[i + 1], ps[i + 2], cs[i], cs[i + 1], cs[i + 2]);\n }\n break;\n default:\n throw new Error(\"illegal figure\");\n }\n}\nclass MeshShadingPattern extends BaseShadingPattern {\n constructor(IR) {\n super();\n this._coords = IR[2];\n this._colors = IR[3];\n this._figures = IR[4];\n this._bounds = IR[5];\n this._bbox = IR[7];\n this._background = IR[8];\n this.matrix = null;\n }\n _createMeshCanvas(combinedScale, backgroundColor, cachedCanvases) {\n const EXPECTED_SCALE = 1.1;\n const MAX_PATTERN_SIZE = 3000;\n const BORDER_SIZE = 2;\n const offsetX = Math.floor(this._bounds[0]);\n const offsetY = Math.floor(this._bounds[1]);\n const boundsWidth = Math.ceil(this._bounds[2]) - offsetX;\n const boundsHeight = Math.ceil(this._bounds[3]) - offsetY;\n const width = Math.min(Math.ceil(Math.abs(boundsWidth * combinedScale[0] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const height = Math.min(Math.ceil(Math.abs(boundsHeight * combinedScale[1] * EXPECTED_SCALE)), MAX_PATTERN_SIZE);\n const scaleX = boundsWidth / width;\n const scaleY = boundsHeight / height;\n const context = {\n coords: this._coords,\n colors: this._colors,\n offsetX: -offsetX,\n offsetY: -offsetY,\n scaleX: 1 / scaleX,\n scaleY: 1 / scaleY\n };\n const paddedWidth = width + BORDER_SIZE * 2;\n const paddedHeight = height + BORDER_SIZE * 2;\n const tmpCanvas = cachedCanvases.getCanvas(\"mesh\", paddedWidth, paddedHeight, false);\n const tmpCtx = tmpCanvas.context;\n const data = tmpCtx.createImageData(width, height);\n if (backgroundColor) {\n const bytes = data.data;\n for (let i = 0, ii = bytes.length; i < ii; i += 4) {\n bytes[i] = backgroundColor[0];\n bytes[i + 1] = backgroundColor[1];\n bytes[i + 2] = backgroundColor[2];\n bytes[i + 3] = 255;\n }\n }\n for (const figure of this._figures) {\n drawFigure(data, figure, context);\n }\n tmpCtx.putImageData(data, BORDER_SIZE, BORDER_SIZE);\n const canvas = tmpCanvas.canvas;\n return {\n canvas,\n offsetX: offsetX - BORDER_SIZE * scaleX,\n offsetY: offsetY - BORDER_SIZE * scaleY,\n scaleX,\n scaleY\n };\n }\n getPattern(ctx, owner, inverse, pathType) {\n applyBoundingBox(ctx, this._bbox);\n let scale;\n if (pathType === PathType.SHADING) {\n scale = _util.Util.singularValueDecompose2dScale((0, _display_utils.getCurrentTransform)(ctx));\n } else {\n scale = _util.Util.singularValueDecompose2dScale(owner.baseTransform);\n if (this.matrix) {\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n scale = [scale[0] * matrixScale[0], scale[1] * matrixScale[1]];\n }\n }\n const temporaryPatternCanvas = this._createMeshCanvas(scale, pathType === PathType.SHADING ? null : this._background, owner.cachedCanvases);\n if (pathType !== PathType.SHADING) {\n ctx.setTransform(...owner.baseTransform);\n if (this.matrix) {\n ctx.transform(...this.matrix);\n }\n }\n ctx.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n ctx.scale(temporaryPatternCanvas.scaleX, temporaryPatternCanvas.scaleY);\n return ctx.createPattern(temporaryPatternCanvas.canvas, \"no-repeat\");\n }\n}\nclass DummyShadingPattern extends BaseShadingPattern {\n getPattern() {\n return \"hotpink\";\n }\n}\nfunction getShadingPattern(IR) {\n switch (IR[0]) {\n case \"RadialAxial\":\n return new RadialAxialShadingPattern(IR);\n case \"Mesh\":\n return new MeshShadingPattern(IR);\n case \"Dummy\":\n return new DummyShadingPattern();\n }\n throw new Error(`Unknown IR type: ${IR[0]}`);\n}\nconst PaintType = {\n COLORED: 1,\n UNCOLORED: 2\n};\nclass TilingPattern {\n static get MAX_PATTERN_SIZE() {\n return (0, _util.shadow)(this, \"MAX_PATTERN_SIZE\", 3000);\n }\n constructor(IR, color, ctx, canvasGraphicsFactory, baseTransform) {\n this.operatorList = IR[2];\n this.matrix = IR[3] || [1, 0, 0, 1, 0, 0];\n this.bbox = IR[4];\n this.xstep = IR[5];\n this.ystep = IR[6];\n this.paintType = IR[7];\n this.tilingType = IR[8];\n this.color = color;\n this.ctx = ctx;\n this.canvasGraphicsFactory = canvasGraphicsFactory;\n this.baseTransform = baseTransform;\n }\n createPatternCanvas(owner) {\n const operatorList = this.operatorList;\n const bbox = this.bbox;\n const xstep = this.xstep;\n const ystep = this.ystep;\n const paintType = this.paintType;\n const tilingType = this.tilingType;\n const color = this.color;\n const canvasGraphicsFactory = this.canvasGraphicsFactory;\n (0, _util.info)(\"TilingType: \" + tilingType);\n const x0 = bbox[0],\n y0 = bbox[1],\n x1 = bbox[2],\n y1 = bbox[3];\n const matrixScale = _util.Util.singularValueDecompose2dScale(this.matrix);\n const curMatrixScale = _util.Util.singularValueDecompose2dScale(this.baseTransform);\n const combinedScale = [matrixScale[0] * curMatrixScale[0], matrixScale[1] * curMatrixScale[1]];\n const dimx = this.getSizeAndScale(xstep, this.ctx.canvas.width, combinedScale[0]);\n const dimy = this.getSizeAndScale(ystep, this.ctx.canvas.height, combinedScale[1]);\n const tmpCanvas = owner.cachedCanvases.getCanvas(\"pattern\", dimx.size, dimy.size, true);\n const tmpCtx = tmpCanvas.context;\n const graphics = canvasGraphicsFactory.createCanvasGraphics(tmpCtx);\n graphics.groupLevel = owner.groupLevel;\n this.setFillAndStrokeStyleToContext(graphics, paintType, color);\n let adjustedX0 = x0;\n let adjustedY0 = y0;\n let adjustedX1 = x1;\n let adjustedY1 = y1;\n if (x0 < 0) {\n adjustedX0 = 0;\n adjustedX1 += Math.abs(x0);\n }\n if (y0 < 0) {\n adjustedY0 = 0;\n adjustedY1 += Math.abs(y0);\n }\n tmpCtx.translate(-(dimx.scale * adjustedX0), -(dimy.scale * adjustedY0));\n graphics.transform(dimx.scale, 0, 0, dimy.scale, 0, 0);\n tmpCtx.save();\n this.clipBbox(graphics, adjustedX0, adjustedY0, adjustedX1, adjustedY1);\n graphics.baseTransform = (0, _display_utils.getCurrentTransform)(graphics.ctx);\n graphics.executeOperatorList(operatorList);\n graphics.endDrawing();\n return {\n canvas: tmpCanvas.canvas,\n scaleX: dimx.scale,\n scaleY: dimy.scale,\n offsetX: adjustedX0,\n offsetY: adjustedY0\n };\n }\n getSizeAndScale(step, realOutputSize, scale) {\n step = Math.abs(step);\n const maxSize = Math.max(TilingPattern.MAX_PATTERN_SIZE, realOutputSize);\n let size = Math.ceil(step * scale);\n if (size >= maxSize) {\n size = maxSize;\n } else {\n scale = size / step;\n }\n return {\n scale,\n size\n };\n }\n clipBbox(graphics, x0, y0, x1, y1) {\n const bboxWidth = x1 - x0;\n const bboxHeight = y1 - y0;\n graphics.ctx.rect(x0, y0, bboxWidth, bboxHeight);\n graphics.current.updateRectMinMax((0, _display_utils.getCurrentTransform)(graphics.ctx), [x0, y0, x1, y1]);\n graphics.clip();\n graphics.endPath();\n }\n setFillAndStrokeStyleToContext(graphics, paintType, color) {\n const context = graphics.ctx,\n current = graphics.current;\n switch (paintType) {\n case PaintType.COLORED:\n const ctx = this.ctx;\n context.fillStyle = ctx.fillStyle;\n context.strokeStyle = ctx.strokeStyle;\n current.fillColor = ctx.fillStyle;\n current.strokeColor = ctx.strokeStyle;\n break;\n case PaintType.UNCOLORED:\n const cssColor = _util.Util.makeHexColor(color[0], color[1], color[2]);\n context.fillStyle = cssColor;\n context.strokeStyle = cssColor;\n current.fillColor = cssColor;\n current.strokeColor = cssColor;\n break;\n default:\n throw new _util.FormatError(`Unsupported paint type: ${paintType}`);\n }\n }\n getPattern(ctx, owner, inverse, pathType) {\n let matrix = inverse;\n if (pathType !== PathType.SHADING) {\n matrix = _util.Util.transform(matrix, owner.baseTransform);\n if (this.matrix) {\n matrix = _util.Util.transform(matrix, this.matrix);\n }\n }\n const temporaryPatternCanvas = this.createPatternCanvas(owner);\n let domMatrix = new DOMMatrix(matrix);\n domMatrix = domMatrix.translate(temporaryPatternCanvas.offsetX, temporaryPatternCanvas.offsetY);\n domMatrix = domMatrix.scale(1 / temporaryPatternCanvas.scaleX, 1 / temporaryPatternCanvas.scaleY);\n const pattern = ctx.createPattern(temporaryPatternCanvas.canvas, \"repeat\");\n pattern.setTransform(domMatrix);\n return pattern;\n }\n}\nexports.TilingPattern = TilingPattern;\n\n/***/ }),\n/* 13 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.applyMaskImageData = applyMaskImageData;\nvar _util = __w_pdfjs_require__(1);\nfunction applyMaskImageData({\n src,\n srcPos = 0,\n dest,\n destPos = 0,\n width,\n height,\n inverseDecode = false\n}) {\n const opaque = _util.FeatureTest.isLittleEndian ? 0xff000000 : 0x000000ff;\n const [zeroMapping, oneMapping] = !inverseDecode ? [opaque, 0] : [0, opaque];\n const widthInSource = width >> 3;\n const widthRemainder = width & 7;\n const srcLength = src.length;\n dest = new Uint32Array(dest.buffer);\n for (let i = 0; i < height; i++) {\n for (const max = srcPos + widthInSource; srcPos < max; srcPos++) {\n const elem = srcPos < srcLength ? src[srcPos] : 255;\n dest[destPos++] = elem & 0b10000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1000 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b100 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b10 ? oneMapping : zeroMapping;\n dest[destPos++] = elem & 0b1 ? oneMapping : zeroMapping;\n }\n if (widthRemainder === 0) {\n continue;\n }\n const elem = srcPos < srcLength ? src[srcPos++] : 255;\n for (let j = 0; j < widthRemainder; j++) {\n dest[destPos++] = elem & 1 << 7 - j ? oneMapping : zeroMapping;\n }\n }\n return {\n srcPos,\n destPos\n };\n}\n\n/***/ }),\n/* 14 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.GlobalWorkerOptions = void 0;\nconst GlobalWorkerOptions = Object.create(null);\nexports.GlobalWorkerOptions = GlobalWorkerOptions;\nGlobalWorkerOptions.workerPort = null;\nGlobalWorkerOptions.workerSrc = \"\";\n\n/***/ }),\n/* 15 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.MessageHandler = void 0;\nvar _util = __w_pdfjs_require__(1);\nconst CallbackKind = {\n UNKNOWN: 0,\n DATA: 1,\n ERROR: 2\n};\nconst StreamKind = {\n UNKNOWN: 0,\n CANCEL: 1,\n CANCEL_COMPLETE: 2,\n CLOSE: 3,\n ENQUEUE: 4,\n ERROR: 5,\n PULL: 6,\n PULL_COMPLETE: 7,\n START_COMPLETE: 8\n};\nfunction wrapReason(reason) {\n if (!(reason instanceof Error || typeof reason === \"object\" && reason !== null)) {\n (0, _util.unreachable)('wrapReason: Expected \"reason\" to be a (possibly cloned) Error.');\n }\n switch (reason.name) {\n case \"AbortException\":\n return new _util.AbortException(reason.message);\n case \"MissingPDFException\":\n return new _util.MissingPDFException(reason.message);\n case \"PasswordException\":\n return new _util.PasswordException(reason.message, reason.code);\n case \"UnexpectedResponseException\":\n return new _util.UnexpectedResponseException(reason.message, reason.status);\n case \"UnknownErrorException\":\n return new _util.UnknownErrorException(reason.message, reason.details);\n default:\n return new _util.UnknownErrorException(reason.message, reason.toString());\n }\n}\nclass MessageHandler {\n constructor(sourceName, targetName, comObj) {\n this.sourceName = sourceName;\n this.targetName = targetName;\n this.comObj = comObj;\n this.callbackId = 1;\n this.streamId = 1;\n this.streamSinks = Object.create(null);\n this.streamControllers = Object.create(null);\n this.callbackCapabilities = Object.create(null);\n this.actionHandler = Object.create(null);\n this._onComObjOnMessage = event => {\n const data = event.data;\n if (data.targetName !== this.sourceName) {\n return;\n }\n if (data.stream) {\n this._processStreamMessage(data);\n return;\n }\n if (data.callback) {\n const callbackId = data.callbackId;\n const capability = this.callbackCapabilities[callbackId];\n if (!capability) {\n throw new Error(`Cannot resolve callback ${callbackId}`);\n }\n delete this.callbackCapabilities[callbackId];\n if (data.callback === CallbackKind.DATA) {\n capability.resolve(data.data);\n } else if (data.callback === CallbackKind.ERROR) {\n capability.reject(wrapReason(data.reason));\n } else {\n throw new Error(\"Unexpected callback case\");\n }\n return;\n }\n const action = this.actionHandler[data.action];\n if (!action) {\n throw new Error(`Unknown action from worker: ${data.action}`);\n }\n if (data.callbackId) {\n const cbSourceName = this.sourceName;\n const cbTargetName = data.sourceName;\n new Promise(function (resolve) {\n resolve(action(data.data));\n }).then(function (result) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.DATA,\n callbackId: data.callbackId,\n data: result\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName: cbSourceName,\n targetName: cbTargetName,\n callback: CallbackKind.ERROR,\n callbackId: data.callbackId,\n reason: wrapReason(reason)\n });\n });\n return;\n }\n if (data.streamId) {\n this._createStreamSink(data);\n return;\n }\n action(data.data);\n };\n comObj.addEventListener(\"message\", this._onComObjOnMessage);\n }\n on(actionName, handler) {\n const ah = this.actionHandler;\n if (ah[actionName]) {\n throw new Error(`There is already an actionName called \"${actionName}\"`);\n }\n ah[actionName] = handler;\n }\n send(actionName, data, transfers) {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n data\n }, transfers);\n }\n sendWithPromise(actionName, data, transfers) {\n const callbackId = this.callbackId++;\n const capability = (0, _util.createPromiseCapability)();\n this.callbackCapabilities[callbackId] = capability;\n try {\n this.comObj.postMessage({\n sourceName: this.sourceName,\n targetName: this.targetName,\n action: actionName,\n callbackId,\n data\n }, transfers);\n } catch (ex) {\n capability.reject(ex);\n }\n return capability.promise;\n }\n sendWithStream(actionName, data, queueingStrategy, transfers) {\n const streamId = this.streamId++,\n sourceName = this.sourceName,\n targetName = this.targetName,\n comObj = this.comObj;\n return new ReadableStream({\n start: controller => {\n const startCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId] = {\n controller,\n startCall: startCapability,\n pullCall: null,\n cancelCall: null,\n isClosed: false\n };\n comObj.postMessage({\n sourceName,\n targetName,\n action: actionName,\n streamId,\n data,\n desiredSize: controller.desiredSize\n }, transfers);\n return startCapability.promise;\n },\n pull: controller => {\n const pullCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].pullCall = pullCapability;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL,\n streamId,\n desiredSize: controller.desiredSize\n });\n return pullCapability.promise;\n },\n cancel: reason => {\n (0, _util.assert)(reason instanceof Error, \"cancel must have a valid reason\");\n const cancelCapability = (0, _util.createPromiseCapability)();\n this.streamControllers[streamId].cancelCall = cancelCapability;\n this.streamControllers[streamId].isClosed = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL,\n streamId,\n reason: wrapReason(reason)\n });\n return cancelCapability.promise;\n }\n }, queueingStrategy);\n }\n _createStreamSink(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const self = this,\n action = this.actionHandler[data.action];\n const streamSink = {\n enqueue(chunk, size = 1, transfers) {\n if (this.isCancelled) {\n return;\n }\n const lastDesiredSize = this.desiredSize;\n this.desiredSize -= size;\n if (lastDesiredSize > 0 && this.desiredSize <= 0) {\n this.sinkCapability = (0, _util.createPromiseCapability)();\n this.ready = this.sinkCapability.promise;\n }\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ENQUEUE,\n streamId,\n chunk\n }, transfers);\n },\n close() {\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CLOSE,\n streamId\n });\n delete self.streamSinks[streamId];\n },\n error(reason) {\n (0, _util.assert)(reason instanceof Error, \"error must have a valid reason\");\n if (this.isCancelled) {\n return;\n }\n this.isCancelled = true;\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.ERROR,\n streamId,\n reason: wrapReason(reason)\n });\n },\n sinkCapability: (0, _util.createPromiseCapability)(),\n onPull: null,\n onCancel: null,\n isCancelled: false,\n desiredSize: data.desiredSize,\n ready: null\n };\n streamSink.sinkCapability.resolve();\n streamSink.ready = streamSink.sinkCapability.promise;\n this.streamSinks[streamId] = streamSink;\n new Promise(function (resolve) {\n resolve(action(data.data, streamSink));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.START_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n }\n _processStreamMessage(data) {\n const streamId = data.streamId,\n sourceName = this.sourceName,\n targetName = data.sourceName,\n comObj = this.comObj;\n const streamController = this.streamControllers[streamId],\n streamSink = this.streamSinks[streamId];\n switch (data.stream) {\n case StreamKind.START_COMPLETE:\n if (data.success) {\n streamController.startCall.resolve();\n } else {\n streamController.startCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL_COMPLETE:\n if (data.success) {\n streamController.pullCall.resolve();\n } else {\n streamController.pullCall.reject(wrapReason(data.reason));\n }\n break;\n case StreamKind.PULL:\n if (!streamSink) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n break;\n }\n if (streamSink.desiredSize <= 0 && data.desiredSize > 0) {\n streamSink.sinkCapability.resolve();\n }\n streamSink.desiredSize = data.desiredSize;\n new Promise(function (resolve) {\n resolve(streamSink.onPull && streamSink.onPull());\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.PULL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n break;\n case StreamKind.ENQUEUE:\n (0, _util.assert)(streamController, \"enqueue should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.controller.enqueue(data.chunk);\n break;\n case StreamKind.CLOSE:\n (0, _util.assert)(streamController, \"close should have stream controller\");\n if (streamController.isClosed) {\n break;\n }\n streamController.isClosed = true;\n streamController.controller.close();\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.ERROR:\n (0, _util.assert)(streamController, \"error should have stream controller\");\n streamController.controller.error(wrapReason(data.reason));\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL_COMPLETE:\n if (data.success) {\n streamController.cancelCall.resolve();\n } else {\n streamController.cancelCall.reject(wrapReason(data.reason));\n }\n this._deleteStreamController(streamController, streamId);\n break;\n case StreamKind.CANCEL:\n if (!streamSink) {\n break;\n }\n new Promise(function (resolve) {\n resolve(streamSink.onCancel && streamSink.onCancel(wrapReason(data.reason)));\n }).then(function () {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n success: true\n });\n }, function (reason) {\n comObj.postMessage({\n sourceName,\n targetName,\n stream: StreamKind.CANCEL_COMPLETE,\n streamId,\n reason: wrapReason(reason)\n });\n });\n streamSink.sinkCapability.reject(wrapReason(data.reason));\n streamSink.isCancelled = true;\n delete this.streamSinks[streamId];\n break;\n default:\n throw new Error(\"Unexpected stream case\");\n }\n }\n async _deleteStreamController(streamController, streamId) {\n await Promise.allSettled([streamController.startCall && streamController.startCall.promise, streamController.pullCall && streamController.pullCall.promise, streamController.cancelCall && streamController.cancelCall.promise]);\n delete this.streamControllers[streamId];\n }\n destroy() {\n this.comObj.removeEventListener(\"message\", this._onComObjOnMessage);\n }\n}\nexports.MessageHandler = MessageHandler;\n\n/***/ }),\n/* 16 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.Metadata = void 0;\nvar _util = __w_pdfjs_require__(1);\nclass Metadata {\n #metadataMap;\n #data;\n constructor({\n parsedData,\n rawData\n }) {\n this.#metadataMap = parsedData;\n this.#data = rawData;\n }\n getRaw() {\n return this.#data;\n }\n get(name) {\n return this.#metadataMap.get(name) ?? null;\n }\n getAll() {\n return (0, _util.objectFromMap)(this.#metadataMap);\n }\n has(name) {\n return this.#metadataMap.has(name);\n }\n}\nexports.Metadata = Metadata;\n\n/***/ }),\n/* 17 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.OptionalContentConfig = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _murmurhash = __w_pdfjs_require__(8);\nconst INTERNAL = Symbol(\"INTERNAL\");\nclass OptionalContentGroup {\n #visible = true;\n constructor(name, intent) {\n this.name = name;\n this.intent = intent;\n }\n get visible() {\n return this.#visible;\n }\n _setVisible(internal, visible) {\n if (internal !== INTERNAL) {\n (0, _util.unreachable)(\"Internal method `_setVisible` called.\");\n }\n this.#visible = visible;\n }\n}\nclass OptionalContentConfig {\n #cachedGetHash = null;\n #groups = new Map();\n #initialHash = null;\n #order = null;\n constructor(data) {\n this.name = null;\n this.creator = null;\n if (data === null) {\n return;\n }\n this.name = data.name;\n this.creator = data.creator;\n this.#order = data.order;\n for (const group of data.groups) {\n this.#groups.set(group.id, new OptionalContentGroup(group.name, group.intent));\n }\n if (data.baseState === \"OFF\") {\n for (const group of this.#groups.values()) {\n group._setVisible(INTERNAL, false);\n }\n }\n for (const on of data.on) {\n this.#groups.get(on)._setVisible(INTERNAL, true);\n }\n for (const off of data.off) {\n this.#groups.get(off)._setVisible(INTERNAL, false);\n }\n this.#initialHash = this.getHash();\n }\n #evaluateVisibilityExpression(array) {\n const length = array.length;\n if (length < 2) {\n return true;\n }\n const operator = array[0];\n for (let i = 1; i < length; i++) {\n const element = array[i];\n let state;\n if (Array.isArray(element)) {\n state = this.#evaluateVisibilityExpression(element);\n } else if (this.#groups.has(element)) {\n state = this.#groups.get(element).visible;\n } else {\n (0, _util.warn)(`Optional content group not found: ${element}`);\n return true;\n }\n switch (operator) {\n case \"And\":\n if (!state) {\n return false;\n }\n break;\n case \"Or\":\n if (state) {\n return true;\n }\n break;\n case \"Not\":\n return !state;\n default:\n return true;\n }\n }\n return operator === \"And\";\n }\n isVisible(group) {\n if (this.#groups.size === 0) {\n return true;\n }\n if (!group) {\n (0, _util.warn)(\"Optional content group not defined.\");\n return true;\n }\n if (group.type === \"OCG\") {\n if (!this.#groups.has(group.id)) {\n (0, _util.warn)(`Optional content group not found: ${group.id}`);\n return true;\n }\n return this.#groups.get(group.id).visible;\n } else if (group.type === \"OCMD\") {\n if (group.expression) {\n return this.#evaluateVisibilityExpression(group.expression);\n }\n if (!group.policy || group.policy === \"AnyOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOn\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n } else if (group.policy === \"AnyOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (!this.#groups.get(id).visible) {\n return true;\n }\n }\n return false;\n } else if (group.policy === \"AllOff\") {\n for (const id of group.ids) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return true;\n }\n if (this.#groups.get(id).visible) {\n return false;\n }\n }\n return true;\n }\n (0, _util.warn)(`Unknown optional content policy ${group.policy}.`);\n return true;\n }\n (0, _util.warn)(`Unknown group type ${group.type}.`);\n return true;\n }\n setVisibility(id, visible = true) {\n if (!this.#groups.has(id)) {\n (0, _util.warn)(`Optional content group not found: ${id}`);\n return;\n }\n this.#groups.get(id)._setVisible(INTERNAL, !!visible);\n this.#cachedGetHash = null;\n }\n get hasInitialVisibility() {\n return this.getHash() === this.#initialHash;\n }\n getOrder() {\n if (!this.#groups.size) {\n return null;\n }\n if (this.#order) {\n return this.#order.slice();\n }\n return [...this.#groups.keys()];\n }\n getGroups() {\n return this.#groups.size > 0 ? (0, _util.objectFromMap)(this.#groups) : null;\n }\n getGroup(id) {\n return this.#groups.get(id) || null;\n }\n getHash() {\n if (this.#cachedGetHash !== null) {\n return this.#cachedGetHash;\n }\n const hash = new _murmurhash.MurmurHash3_64();\n for (const [id, group] of this.#groups) {\n hash.update(`${id}:${group.visible}`);\n }\n return this.#cachedGetHash = hash.hexdigest();\n }\n}\nexports.OptionalContentConfig = OptionalContentConfig;\n\n/***/ }),\n/* 18 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFDataTransportStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nclass PDFDataTransportStream {\n constructor({\n length,\n initialData,\n progressiveDone = false,\n contentDispositionFilename = null,\n disableRange = false,\n disableStream = false\n }, pdfDataRangeTransport) {\n (0, _util.assert)(pdfDataRangeTransport, 'PDFDataTransportStream - missing required \"pdfDataRangeTransport\" argument.');\n this._queuedChunks = [];\n this._progressiveDone = progressiveDone;\n this._contentDispositionFilename = contentDispositionFilename;\n if (initialData?.length > 0) {\n const buffer = initialData instanceof Uint8Array && initialData.byteLength === initialData.buffer.byteLength ? initialData.buffer : new Uint8Array(initialData).buffer;\n this._queuedChunks.push(buffer);\n }\n this._pdfDataRangeTransport = pdfDataRangeTransport;\n this._isStreamingSupported = !disableStream;\n this._isRangeSupported = !disableRange;\n this._contentLength = length;\n this._fullRequestReader = null;\n this._rangeReaders = [];\n this._pdfDataRangeTransport.addRangeListener((begin, chunk) => {\n this._onReceiveData({\n begin,\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressListener((loaded, total) => {\n this._onProgress({\n loaded,\n total\n });\n });\n this._pdfDataRangeTransport.addProgressiveReadListener(chunk => {\n this._onReceiveData({\n chunk\n });\n });\n this._pdfDataRangeTransport.addProgressiveDoneListener(() => {\n this._onProgressiveDone();\n });\n this._pdfDataRangeTransport.transportReady();\n }\n _onReceiveData({\n begin,\n chunk\n }) {\n const buffer = chunk instanceof Uint8Array && chunk.byteLength === chunk.buffer.byteLength ? chunk.buffer : new Uint8Array(chunk).buffer;\n if (begin === undefined) {\n if (this._fullRequestReader) {\n this._fullRequestReader._enqueue(buffer);\n } else {\n this._queuedChunks.push(buffer);\n }\n } else {\n const found = this._rangeReaders.some(function (rangeReader) {\n if (rangeReader._begin !== begin) {\n return false;\n }\n rangeReader._enqueue(buffer);\n return true;\n });\n (0, _util.assert)(found, \"_onReceiveData - no `PDFDataTransportStreamRangeReader` instance found.\");\n }\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n _onProgress(evt) {\n if (evt.total === undefined) {\n this._rangeReaders[0]?.onProgress?.({\n loaded: evt.loaded\n });\n } else {\n this._fullRequestReader?.onProgress?.({\n loaded: evt.loaded,\n total: evt.total\n });\n }\n }\n _onProgressiveDone() {\n this._fullRequestReader?.progressiveDone();\n this._progressiveDone = true;\n }\n _removeRangeReader(reader) {\n const i = this._rangeReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFDataTransportStream.getFullReader can only be called once.\");\n const queuedChunks = this._queuedChunks;\n this._queuedChunks = null;\n return new PDFDataTransportStreamReader(this, queuedChunks, this._progressiveDone, this._contentDispositionFilename);\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFDataTransportStreamRangeReader(this, begin, end);\n this._pdfDataRangeTransport.requestDataRange(begin, end);\n this._rangeReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeReaders.slice(0)) {\n reader.cancel(reason);\n }\n this._pdfDataRangeTransport.abort();\n }\n}\nexports.PDFDataTransportStream = PDFDataTransportStream;\nclass PDFDataTransportStreamReader {\n constructor(stream, queuedChunks, progressiveDone = false, contentDispositionFilename = null) {\n this._stream = stream;\n this._done = progressiveDone || false;\n this._filename = (0, _display_utils.isPdfFile)(contentDispositionFilename) ? contentDispositionFilename : null;\n this._queuedChunks = queuedChunks || [];\n this._loaded = 0;\n for (const chunk of this._queuedChunks) {\n this._loaded += chunk.byteLength;\n }\n this._requests = [];\n this._headersReady = Promise.resolve();\n stream._fullRequestReader = this;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunks.push(chunk);\n }\n this._loaded += chunk.byteLength;\n }\n get headersReady() {\n return this._headersReady;\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._stream._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._stream._isStreamingSupported;\n }\n get contentLength() {\n return this._stream._contentLength;\n }\n async read() {\n if (this._queuedChunks.length > 0) {\n const chunk = this._queuedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = (0, _util.createPromiseCapability)();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n progressiveDone() {\n if (this._done) {\n return;\n }\n this._done = true;\n }\n}\nclass PDFDataTransportStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._begin = begin;\n this._end = end;\n this._queuedChunk = null;\n this._requests = [];\n this._done = false;\n this.onProgress = null;\n }\n _enqueue(chunk) {\n if (this._done) {\n return;\n }\n if (this._requests.length === 0) {\n this._queuedChunk = chunk;\n } else {\n const requestsCapability = this._requests.shift();\n requestsCapability.resolve({\n value: chunk,\n done: false\n });\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n this._done = true;\n this._stream._removeRangeReader(this);\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._queuedChunk) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = (0, _util.createPromiseCapability)();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._stream._removeRangeReader(this);\n }\n}\n\n/***/ }),\n/* 19 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaText = void 0;\nclass XfaText {\n static textContent(xfa) {\n const items = [];\n const output = {\n items,\n styles: Object.create(null)\n };\n function walk(node) {\n if (!node) {\n return;\n }\n let str = null;\n const name = node.name;\n if (name === \"#text\") {\n str = node.value;\n } else if (!XfaText.shouldBuildText(name)) {\n return;\n } else if (node?.attributes?.textContent) {\n str = node.attributes.textContent;\n } else if (node.value) {\n str = node.value;\n }\n if (str !== null) {\n items.push({\n str\n });\n }\n if (!node.children) {\n return;\n }\n for (const child of node.children) {\n walk(child);\n }\n }\n walk(xfa);\n return output;\n }\n static shouldBuildText(name) {\n return !(name === \"textarea\" || name === \"input\" || name === \"option\" || name === \"select\");\n }\n}\nexports.XfaText = XfaText;\n\n/***/ }),\n/* 20 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.NodeStandardFontDataFactory = exports.NodeCanvasFactory = exports.NodeCMapReaderFactory = void 0;\nvar _base_factory = __w_pdfjs_require__(7);\n;\nconst fetchData = function (url) {\n return new Promise((resolve, reject) => {\n const fs = require(\"fs\");\n fs.readFile(url, (error, data) => {\n if (error || !data) {\n reject(new Error(error));\n return;\n }\n resolve(new Uint8Array(data));\n });\n });\n};\nclass NodeCanvasFactory extends _base_factory.BaseCanvasFactory {\n _createCanvas(width, height) {\n const Canvas = require(\"canvas\");\n return Canvas.createCanvas(width, height);\n }\n}\nexports.NodeCanvasFactory = NodeCanvasFactory;\nclass NodeCMapReaderFactory extends _base_factory.BaseCMapReaderFactory {\n _fetchData(url, compressionType) {\n return fetchData(url).then(data => {\n return {\n cMapData: data,\n compressionType\n };\n });\n }\n}\nexports.NodeCMapReaderFactory = NodeCMapReaderFactory;\nclass NodeStandardFontDataFactory extends _base_factory.BaseStandardFontDataFactory {\n _fetchData(url) {\n return fetchData(url);\n }\n}\nexports.NodeStandardFontDataFactory = NodeStandardFontDataFactory;\n\n/***/ }),\n/* 21 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNodeStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(22);\n;\nconst fs = require(\"fs\");\nconst http = require(\"http\");\nconst https = require(\"https\");\nconst url = require(\"url\");\nconst fileUriRegex = /^file:\\/\\/\\/[a-zA-Z]:\\//;\nfunction parseUrl(sourceUrl) {\n const parsedUrl = url.parse(sourceUrl);\n if (parsedUrl.protocol === \"file:\" || parsedUrl.host) {\n return parsedUrl;\n }\n if (/^[a-z]:[/\\\\]/i.test(sourceUrl)) {\n return url.parse(`file:///${sourceUrl}`);\n }\n if (!parsedUrl.host) {\n parsedUrl.protocol = \"file:\";\n }\n return parsedUrl;\n}\nclass PDFNodeStream {\n constructor(source) {\n this.source = source;\n this.url = parseUrl(source.url);\n this.isHttp = this.url.protocol === \"http:\" || this.url.protocol === \"https:\";\n this.isFsUrl = this.url.protocol === \"file:\";\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNodeStream.getFullReader can only be called once.\");\n this._fullRequestReader = this.isFsUrl ? new PDFNodeStreamFsFullReader(this) : new PDFNodeStreamFullReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(start, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const rangeReader = this.isFsUrl ? new PDFNodeStreamFsRangeReader(this, start, end) : new PDFNodeStreamRangeReader(this, start, end);\n this._rangeRequestReaders.push(rangeReader);\n return rangeReader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNodeStream = PDFNodeStream;\nclass BaseFullReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n const source = stream.source;\n this._contentLength = source.length;\n this._loaded = 0;\n this._filename = null;\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._headersCapability = (0, _util.createPromiseCapability)();\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this._error(new _util.AbortException(\"streaming is disabled\"));\n }\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nclass BaseRangeReader {\n constructor(stream) {\n this._url = stream.url;\n this._done = false;\n this._storedError = null;\n this.onProgress = null;\n this._loaded = 0;\n this._readableStream = null;\n this._readCapability = (0, _util.createPromiseCapability)();\n const source = stream.source;\n this._isStreamingSupported = !source.disableStream;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n if (this._storedError) {\n throw this._storedError;\n }\n const chunk = this._readableStream.read();\n if (chunk === null) {\n this._readCapability = (0, _util.createPromiseCapability)();\n return this.read();\n }\n this._loaded += chunk.length;\n this.onProgress?.({\n loaded: this._loaded\n });\n const buffer = new Uint8Array(chunk).buffer;\n return {\n value: buffer,\n done: false\n };\n }\n cancel(reason) {\n if (!this._readableStream) {\n this._error(reason);\n return;\n }\n this._readableStream.destroy(reason);\n }\n _error(reason) {\n this._storedError = reason;\n this._readCapability.resolve();\n }\n _setReadableStream(readableStream) {\n this._readableStream = readableStream;\n readableStream.on(\"readable\", () => {\n this._readCapability.resolve();\n });\n readableStream.on(\"end\", () => {\n readableStream.destroy();\n this._done = true;\n this._readCapability.resolve();\n });\n readableStream.on(\"error\", reason => {\n this._error(reason);\n });\n if (this._storedError) {\n this._readableStream.destroy(this._storedError);\n }\n }\n}\nfunction createRequestOptions(parsedUrl, headers) {\n return {\n protocol: parsedUrl.protocol,\n auth: parsedUrl.auth,\n host: parsedUrl.hostname,\n port: parsedUrl.port,\n path: parsedUrl.path,\n method: \"GET\",\n headers\n };\n}\nclass PDFNodeStreamFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._headersCapability.resolve();\n this._setReadableStream(response);\n const getResponseHeader = name => {\n return this._readableStream.headers[name.toLowerCase()];\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, stream.httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n this._headersCapability.reject(reason);\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n this._httpHeaders = {};\n for (const property in stream.httpHeaders) {\n const value = stream.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n this._httpHeaders[property] = value;\n }\n this._httpHeaders.Range = `bytes=${start}-${end - 1}`;\n const handleResponse = response => {\n if (response.statusCode === 404) {\n const error = new _util.MissingPDFException(`Missing PDF \"${this._url}\".`);\n this._storedError = error;\n return;\n }\n this._setReadableStream(response);\n };\n this._request = null;\n if (this._url.protocol === \"http:\") {\n this._request = http.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n } else {\n this._request = https.request(createRequestOptions(this._url, this._httpHeaders), handleResponse);\n }\n this._request.on(\"error\", reason => {\n this._storedError = reason;\n });\n this._request.end();\n }\n}\nclass PDFNodeStreamFsFullReader extends BaseFullReader {\n constructor(stream) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n fs.lstat(path, (error, stat) => {\n if (error) {\n if (error.code === \"ENOENT\") {\n error = new _util.MissingPDFException(`Missing PDF \"${path}\".`);\n }\n this._storedError = error;\n this._headersCapability.reject(error);\n return;\n }\n this._contentLength = stat.size;\n this._setReadableStream(fs.createReadStream(path));\n this._headersCapability.resolve();\n });\n }\n}\nclass PDFNodeStreamFsRangeReader extends BaseRangeReader {\n constructor(stream, start, end) {\n super(stream);\n let path = decodeURIComponent(this._url.path);\n if (fileUriRegex.test(this._url.href)) {\n path = path.replace(/^\\//, \"\");\n }\n this._setReadableStream(fs.createReadStream(path, {\n start,\n end: end - 1\n }));\n }\n}\n\n/***/ }),\n/* 22 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createResponseStatusError = createResponseStatusError;\nexports.extractFilenameFromHeader = extractFilenameFromHeader;\nexports.validateRangeRequestCapabilities = validateRangeRequestCapabilities;\nexports.validateResponseStatus = validateResponseStatus;\nvar _util = __w_pdfjs_require__(1);\nvar _content_disposition = __w_pdfjs_require__(23);\nvar _display_utils = __w_pdfjs_require__(6);\nfunction validateRangeRequestCapabilities({\n getResponseHeader,\n isHttp,\n rangeChunkSize,\n disableRange\n}) {\n const returnValues = {\n allowRangeRequests: false,\n suggestedLength: undefined\n };\n const length = parseInt(getResponseHeader(\"Content-Length\"), 10);\n if (!Number.isInteger(length)) {\n return returnValues;\n }\n returnValues.suggestedLength = length;\n if (length <= 2 * rangeChunkSize) {\n return returnValues;\n }\n if (disableRange || !isHttp) {\n return returnValues;\n }\n if (getResponseHeader(\"Accept-Ranges\") !== \"bytes\") {\n return returnValues;\n }\n const contentEncoding = getResponseHeader(\"Content-Encoding\") || \"identity\";\n if (contentEncoding !== \"identity\") {\n return returnValues;\n }\n returnValues.allowRangeRequests = true;\n return returnValues;\n}\nfunction extractFilenameFromHeader(getResponseHeader) {\n const contentDisposition = getResponseHeader(\"Content-Disposition\");\n if (contentDisposition) {\n let filename = (0, _content_disposition.getFilenameFromContentDispositionHeader)(contentDisposition);\n if (filename.includes(\"%\")) {\n try {\n filename = decodeURIComponent(filename);\n } catch (ex) {}\n }\n if ((0, _display_utils.isPdfFile)(filename)) {\n return filename;\n }\n }\n return null;\n}\nfunction createResponseStatusError(status, url) {\n if (status === 404 || status === 0 && url.startsWith(\"file:\")) {\n return new _util.MissingPDFException('Missing PDF \"' + url + '\".');\n }\n return new _util.UnexpectedResponseException(`Unexpected server response (${status}) while retrieving PDF \"${url}\".`, status);\n}\nfunction validateResponseStatus(status) {\n return status === 200 || status === 206;\n}\n\n/***/ }),\n/* 23 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getFilenameFromContentDispositionHeader = getFilenameFromContentDispositionHeader;\nvar _util = __w_pdfjs_require__(1);\nfunction getFilenameFromContentDispositionHeader(contentDisposition) {\n let needsEncodingFixup = true;\n let tmp = toParamRegExp(\"filename\\\\*\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = unescape(filename);\n filename = rfc5987decode(filename);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n tmp = rfc2231getparam(contentDisposition);\n if (tmp) {\n const filename = rfc2047decode(tmp);\n return fixupEncoding(filename);\n }\n tmp = toParamRegExp(\"filename\", \"i\").exec(contentDisposition);\n if (tmp) {\n tmp = tmp[1];\n let filename = rfc2616unquote(tmp);\n filename = rfc2047decode(filename);\n return fixupEncoding(filename);\n }\n function toParamRegExp(attributePattern, flags) {\n return new RegExp(\"(?:^|;)\\\\s*\" + attributePattern + \"\\\\s*=\\\\s*\" + \"(\" + '[^\";\\\\s][^;\\\\s]*' + \"|\" + '\"(?:[^\"\\\\\\\\]|\\\\\\\\\"?)+\"?' + \")\", flags);\n }\n function textdecode(encoding, value) {\n if (encoding) {\n if (!/^[\\x00-\\xFF]+$/.test(value)) {\n return value;\n }\n try {\n const decoder = new TextDecoder(encoding, {\n fatal: true\n });\n const buffer = (0, _util.stringToBytes)(value);\n value = decoder.decode(buffer);\n needsEncodingFixup = false;\n } catch (e) {}\n }\n return value;\n }\n function fixupEncoding(value) {\n if (needsEncodingFixup && /[\\x80-\\xff]/.test(value)) {\n value = textdecode(\"utf-8\", value);\n if (needsEncodingFixup) {\n value = textdecode(\"iso-8859-1\", value);\n }\n }\n return value;\n }\n function rfc2231getparam(contentDispositionStr) {\n const matches = [];\n let match;\n const iter = toParamRegExp(\"filename\\\\*((?!0\\\\d)\\\\d+)(\\\\*?)\", \"ig\");\n while ((match = iter.exec(contentDispositionStr)) !== null) {\n let [, n, quot, part] = match;\n n = parseInt(n, 10);\n if (n in matches) {\n if (n === 0) {\n break;\n }\n continue;\n }\n matches[n] = [quot, part];\n }\n const parts = [];\n for (let n = 0; n < matches.length; ++n) {\n if (!(n in matches)) {\n break;\n }\n let [quot, part] = matches[n];\n part = rfc2616unquote(part);\n if (quot) {\n part = unescape(part);\n if (n === 0) {\n part = rfc5987decode(part);\n }\n }\n parts.push(part);\n }\n return parts.join(\"\");\n }\n function rfc2616unquote(value) {\n if (value.startsWith('\"')) {\n const parts = value.slice(1).split('\\\\\"');\n for (let i = 0; i < parts.length; ++i) {\n const quotindex = parts[i].indexOf('\"');\n if (quotindex !== -1) {\n parts[i] = parts[i].slice(0, quotindex);\n parts.length = i + 1;\n }\n parts[i] = parts[i].replace(/\\\\(.)/g, \"$1\");\n }\n value = parts.join('\"');\n }\n return value;\n }\n function rfc5987decode(extvalue) {\n const encodingend = extvalue.indexOf(\"'\");\n if (encodingend === -1) {\n return extvalue;\n }\n const encoding = extvalue.slice(0, encodingend);\n const langvalue = extvalue.slice(encodingend + 1);\n const value = langvalue.replace(/^[^']*'/, \"\");\n return textdecode(encoding, value);\n }\n function rfc2047decode(value) {\n if (!value.startsWith(\"=?\") || /[\\x00-\\x19\\x80-\\xff]/.test(value)) {\n return value;\n }\n return value.replace(/=\\?([\\w-]*)\\?([QqBb])\\?((?:[^?]|\\?(?!=))*)\\?=/g, function (matches, charset, encoding, text) {\n if (encoding === \"q\" || encoding === \"Q\") {\n text = text.replace(/_/g, \" \");\n text = text.replace(/=([0-9a-fA-F]{2})/g, function (match, hex) {\n return String.fromCharCode(parseInt(hex, 16));\n });\n return textdecode(charset, text);\n }\n try {\n text = atob(text);\n } catch (e) {}\n return textdecode(charset, text);\n });\n }\n return \"\";\n}\n\n/***/ }),\n/* 24 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFNetworkStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(22);\n;\nconst OK_RESPONSE = 200;\nconst PARTIAL_CONTENT_RESPONSE = 206;\nfunction getArrayBuffer(xhr) {\n const data = xhr.response;\n if (typeof data !== \"string\") {\n return data;\n }\n return (0, _util.stringToBytes)(data).buffer;\n}\nclass NetworkManager {\n constructor(url, args = {}) {\n this.url = url;\n this.isHttp = /^https?:/i.test(url);\n this.httpHeaders = this.isHttp && args.httpHeaders || Object.create(null);\n this.withCredentials = args.withCredentials || false;\n this.getXhr = args.getXhr || function NetworkManager_getXhr() {\n return new XMLHttpRequest();\n };\n this.currXhrId = 0;\n this.pendingRequests = Object.create(null);\n }\n requestRange(begin, end, listeners) {\n const args = {\n begin,\n end\n };\n for (const prop in listeners) {\n args[prop] = listeners[prop];\n }\n return this.request(args);\n }\n requestFull(listeners) {\n return this.request(listeners);\n }\n request(args) {\n const xhr = this.getXhr();\n const xhrId = this.currXhrId++;\n const pendingRequest = this.pendingRequests[xhrId] = {\n xhr\n };\n xhr.open(\"GET\", this.url);\n xhr.withCredentials = this.withCredentials;\n for (const property in this.httpHeaders) {\n const value = this.httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n xhr.setRequestHeader(property, value);\n }\n if (this.isHttp && \"begin\" in args && \"end\" in args) {\n xhr.setRequestHeader(\"Range\", `bytes=${args.begin}-${args.end - 1}`);\n pendingRequest.expectedStatus = PARTIAL_CONTENT_RESPONSE;\n } else {\n pendingRequest.expectedStatus = OK_RESPONSE;\n }\n xhr.responseType = \"arraybuffer\";\n if (args.onError) {\n xhr.onerror = function (evt) {\n args.onError(xhr.status);\n };\n }\n xhr.onreadystatechange = this.onStateChange.bind(this, xhrId);\n xhr.onprogress = this.onProgress.bind(this, xhrId);\n pendingRequest.onHeadersReceived = args.onHeadersReceived;\n pendingRequest.onDone = args.onDone;\n pendingRequest.onError = args.onError;\n pendingRequest.onProgress = args.onProgress;\n xhr.send(null);\n return xhrId;\n }\n onProgress(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n pendingRequest.onProgress?.(evt);\n }\n onStateChange(xhrId, evt) {\n const pendingRequest = this.pendingRequests[xhrId];\n if (!pendingRequest) {\n return;\n }\n const xhr = pendingRequest.xhr;\n if (xhr.readyState >= 2 && pendingRequest.onHeadersReceived) {\n pendingRequest.onHeadersReceived();\n delete pendingRequest.onHeadersReceived;\n }\n if (xhr.readyState !== 4) {\n return;\n }\n if (!(xhrId in this.pendingRequests)) {\n return;\n }\n delete this.pendingRequests[xhrId];\n if (xhr.status === 0 && this.isHttp) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const xhrStatus = xhr.status || OK_RESPONSE;\n const ok_response_on_range_request = xhrStatus === OK_RESPONSE && pendingRequest.expectedStatus === PARTIAL_CONTENT_RESPONSE;\n if (!ok_response_on_range_request && xhrStatus !== pendingRequest.expectedStatus) {\n pendingRequest.onError?.(xhr.status);\n return;\n }\n const chunk = getArrayBuffer(xhr);\n if (xhrStatus === PARTIAL_CONTENT_RESPONSE) {\n const rangeHeader = xhr.getResponseHeader(\"Content-Range\");\n const matches = /bytes (\\d+)-(\\d+)\\/(\\d+)/.exec(rangeHeader);\n pendingRequest.onDone({\n begin: parseInt(matches[1], 10),\n chunk\n });\n } else if (chunk) {\n pendingRequest.onDone({\n begin: 0,\n chunk\n });\n } else {\n pendingRequest.onError?.(xhr.status);\n }\n }\n getRequestXhr(xhrId) {\n return this.pendingRequests[xhrId].xhr;\n }\n isPendingRequest(xhrId) {\n return xhrId in this.pendingRequests;\n }\n abortRequest(xhrId) {\n const xhr = this.pendingRequests[xhrId].xhr;\n delete this.pendingRequests[xhrId];\n xhr.abort();\n }\n}\nclass PDFNetworkStream {\n constructor(source) {\n this._source = source;\n this._manager = new NetworkManager(source.url, {\n httpHeaders: source.httpHeaders,\n withCredentials: source.withCredentials\n });\n this._rangeChunkSize = source.rangeChunkSize;\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n _onRangeRequestReaderClosed(reader) {\n const i = this._rangeRequestReaders.indexOf(reader);\n if (i >= 0) {\n this._rangeRequestReaders.splice(i, 1);\n }\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFNetworkStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFNetworkStreamFullRequestReader(this._manager, this._source);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n const reader = new PDFNetworkStreamRangeRequestReader(this._manager, begin, end);\n reader.onClosed = this._onRangeRequestReaderClosed.bind(this);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFNetworkStream = PDFNetworkStream;\nclass PDFNetworkStreamFullRequestReader {\n constructor(manager, source) {\n this._manager = manager;\n const args = {\n onHeadersReceived: this._onHeadersReceived.bind(this),\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = source.url;\n this._fullRequestId = manager.requestFull(args);\n this._headersReceivedCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._contentLength = source.length;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._isStreamingSupported = false;\n this._isRangeSupported = false;\n this._cachedChunks = [];\n this._requests = [];\n this._done = false;\n this._storedError = undefined;\n this._filename = null;\n this.onProgress = null;\n }\n _onHeadersReceived() {\n const fullRequestXhrId = this._fullRequestId;\n const fullRequestXhr = this._manager.getRequestXhr(fullRequestXhrId);\n const getResponseHeader = name => {\n return fullRequestXhr.getResponseHeader(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._manager.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n if (allowRangeRequests) {\n this._isRangeSupported = true;\n }\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (this._isRangeSupported) {\n this._manager.abortRequest(fullRequestXhrId);\n }\n this._headersReceivedCapability.resolve();\n }\n _onDone(data) {\n if (data) {\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: data.chunk,\n done: false\n });\n } else {\n this._cachedChunks.push(data.chunk);\n }\n }\n this._done = true;\n if (this._cachedChunks.length > 0) {\n return;\n }\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n this._headersReceivedCapability.reject(this._storedError);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._cachedChunks.length = 0;\n }\n _onProgress(evt) {\n this.onProgress?.({\n loaded: evt.loaded,\n total: evt.lengthComputable ? evt.total : this._contentLength\n });\n }\n get filename() {\n return this._filename;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n get contentLength() {\n return this._contentLength;\n }\n get headersReady() {\n return this._headersReceivedCapability.promise;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._cachedChunks.length > 0) {\n const chunk = this._cachedChunks.shift();\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = (0, _util.createPromiseCapability)();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n this._headersReceivedCapability.reject(reason);\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._fullRequestId)) {\n this._manager.abortRequest(this._fullRequestId);\n }\n this._fullRequestReader = null;\n }\n}\nclass PDFNetworkStreamRangeRequestReader {\n constructor(manager, begin, end) {\n this._manager = manager;\n const args = {\n onDone: this._onDone.bind(this),\n onError: this._onError.bind(this),\n onProgress: this._onProgress.bind(this)\n };\n this._url = manager.url;\n this._requestId = manager.requestRange(begin, end, args);\n this._requests = [];\n this._queuedChunk = null;\n this._done = false;\n this._storedError = undefined;\n this.onProgress = null;\n this.onClosed = null;\n }\n _close() {\n this.onClosed?.(this);\n }\n _onDone(data) {\n const chunk = data.chunk;\n if (this._requests.length > 0) {\n const requestCapability = this._requests.shift();\n requestCapability.resolve({\n value: chunk,\n done: false\n });\n } else {\n this._queuedChunk = chunk;\n }\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n this._close();\n }\n _onError(status) {\n this._storedError = (0, _network_utils.createResponseStatusError)(status, this._url);\n for (const requestCapability of this._requests) {\n requestCapability.reject(this._storedError);\n }\n this._requests.length = 0;\n this._queuedChunk = null;\n }\n _onProgress(evt) {\n if (!this.isStreamingSupported) {\n this.onProgress?.({\n loaded: evt.loaded\n });\n }\n }\n get isStreamingSupported() {\n return false;\n }\n async read() {\n if (this._storedError) {\n throw this._storedError;\n }\n if (this._queuedChunk !== null) {\n const chunk = this._queuedChunk;\n this._queuedChunk = null;\n return {\n value: chunk,\n done: false\n };\n }\n if (this._done) {\n return {\n value: undefined,\n done: true\n };\n }\n const requestCapability = (0, _util.createPromiseCapability)();\n this._requests.push(requestCapability);\n return requestCapability.promise;\n }\n cancel(reason) {\n this._done = true;\n for (const requestCapability of this._requests) {\n requestCapability.resolve({\n value: undefined,\n done: true\n });\n }\n this._requests.length = 0;\n if (this._manager.isPendingRequest(this._requestId)) {\n this._manager.abortRequest(this._requestId);\n }\n this._close();\n }\n}\n\n/***/ }),\n/* 25 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.PDFFetchStream = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _network_utils = __w_pdfjs_require__(22);\n;\nfunction createFetchOptions(headers, withCredentials, abortController) {\n return {\n method: \"GET\",\n headers,\n signal: abortController.signal,\n mode: \"cors\",\n credentials: withCredentials ? \"include\" : \"same-origin\",\n redirect: \"follow\"\n };\n}\nfunction createHeaders(httpHeaders) {\n const headers = new Headers();\n for (const property in httpHeaders) {\n const value = httpHeaders[property];\n if (value === undefined) {\n continue;\n }\n headers.append(property, value);\n }\n return headers;\n}\nfunction getArrayBuffer(val) {\n if (val instanceof Uint8Array) {\n return val.buffer;\n }\n if (val instanceof ArrayBuffer) {\n return val;\n }\n (0, _util.warn)(`getArrayBuffer - unexpected data format: ${val}`);\n return new Uint8Array(val).buffer;\n}\nclass PDFFetchStream {\n constructor(source) {\n this.source = source;\n this.isHttp = /^https?:/i.test(source.url);\n this.httpHeaders = this.isHttp && source.httpHeaders || {};\n this._fullRequestReader = null;\n this._rangeRequestReaders = [];\n }\n get _progressiveDataLength() {\n return this._fullRequestReader?._loaded ?? 0;\n }\n getFullReader() {\n (0, _util.assert)(!this._fullRequestReader, \"PDFFetchStream.getFullReader can only be called once.\");\n this._fullRequestReader = new PDFFetchStreamReader(this);\n return this._fullRequestReader;\n }\n getRangeReader(begin, end) {\n if (end <= this._progressiveDataLength) {\n return null;\n }\n const reader = new PDFFetchStreamRangeReader(this, begin, end);\n this._rangeRequestReaders.push(reader);\n return reader;\n }\n cancelAllRequests(reason) {\n this._fullRequestReader?.cancel(reason);\n for (const reader of this._rangeRequestReaders.slice(0)) {\n reader.cancel(reason);\n }\n }\n}\nexports.PDFFetchStream = PDFFetchStream;\nclass PDFFetchStreamReader {\n constructor(stream) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n this._filename = null;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._contentLength = source.length;\n this._headersCapability = (0, _util.createPromiseCapability)();\n this._disableRange = source.disableRange || false;\n this._rangeChunkSize = source.rangeChunkSize;\n if (!this._rangeChunkSize && !this._disableRange) {\n this._disableRange = true;\n }\n this._abortController = new AbortController();\n this._isStreamingSupported = !source.disableStream;\n this._isRangeSupported = !source.disableRange;\n this._headers = createHeaders(this._stream.httpHeaders);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._reader = response.body.getReader();\n this._headersCapability.resolve();\n const getResponseHeader = name => {\n return response.headers.get(name);\n };\n const {\n allowRangeRequests,\n suggestedLength\n } = (0, _network_utils.validateRangeRequestCapabilities)({\n getResponseHeader,\n isHttp: this._stream.isHttp,\n rangeChunkSize: this._rangeChunkSize,\n disableRange: this._disableRange\n });\n this._isRangeSupported = allowRangeRequests;\n this._contentLength = suggestedLength || this._contentLength;\n this._filename = (0, _network_utils.extractFilenameFromHeader)(getResponseHeader);\n if (!this._isStreamingSupported && this._isRangeSupported) {\n this.cancel(new _util.AbortException(\"Streaming is disabled.\"));\n }\n }).catch(this._headersCapability.reject);\n this.onProgress = null;\n }\n get headersReady() {\n return this._headersCapability.promise;\n }\n get filename() {\n return this._filename;\n }\n get contentLength() {\n return this._contentLength;\n }\n get isRangeSupported() {\n return this._isRangeSupported;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._headersCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded,\n total: this._contentLength\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\nclass PDFFetchStreamRangeReader {\n constructor(stream, begin, end) {\n this._stream = stream;\n this._reader = null;\n this._loaded = 0;\n const source = stream.source;\n this._withCredentials = source.withCredentials || false;\n this._readCapability = (0, _util.createPromiseCapability)();\n this._isStreamingSupported = !source.disableStream;\n this._abortController = new AbortController();\n this._headers = createHeaders(this._stream.httpHeaders);\n this._headers.append(\"Range\", `bytes=${begin}-${end - 1}`);\n const url = source.url;\n fetch(url, createFetchOptions(this._headers, this._withCredentials, this._abortController)).then(response => {\n if (!(0, _network_utils.validateResponseStatus)(response.status)) {\n throw (0, _network_utils.createResponseStatusError)(response.status, url);\n }\n this._readCapability.resolve();\n this._reader = response.body.getReader();\n }).catch(this._readCapability.reject);\n this.onProgress = null;\n }\n get isStreamingSupported() {\n return this._isStreamingSupported;\n }\n async read() {\n await this._readCapability.promise;\n const {\n value,\n done\n } = await this._reader.read();\n if (done) {\n return {\n value,\n done\n };\n }\n this._loaded += value.byteLength;\n this.onProgress?.({\n loaded: this._loaded\n });\n return {\n value: getArrayBuffer(value),\n done: false\n };\n }\n cancel(reason) {\n this._reader?.cancel(reason);\n this._abortController.abort();\n }\n}\n\n/***/ }),\n/* 26 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.TextLayerRenderTask = void 0;\nexports.renderTextLayer = renderTextLayer;\nexports.updateTextLayer = updateTextLayer;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nconst MAX_TEXT_DIVS_TO_RENDER = 100000;\nconst DEFAULT_FONT_SIZE = 30;\nconst DEFAULT_FONT_ASCENT = 0.8;\nconst ascentCache = new Map();\nfunction getCtx(size, isOffscreenCanvasSupported) {\n let ctx;\n if (isOffscreenCanvasSupported && _util.FeatureTest.isOffscreenCanvasSupported) {\n ctx = new OffscreenCanvas(size, size).getContext(\"2d\", {\n alpha: false\n });\n } else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvas.height = size;\n ctx = canvas.getContext(\"2d\", {\n alpha: false\n });\n }\n return ctx;\n}\nfunction getAscent(fontFamily, isOffscreenCanvasSupported) {\n const cachedAscent = ascentCache.get(fontFamily);\n if (cachedAscent) {\n return cachedAscent;\n }\n const ctx = getCtx(DEFAULT_FONT_SIZE, isOffscreenCanvasSupported);\n ctx.font = `${DEFAULT_FONT_SIZE}px ${fontFamily}`;\n const metrics = ctx.measureText(\"\");\n let ascent = metrics.fontBoundingBoxAscent;\n let descent = Math.abs(metrics.fontBoundingBoxDescent);\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n ctx.canvas.width = ctx.canvas.height = 0;\n return ratio;\n }\n ctx.strokeStyle = \"red\";\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"g\", 0, 0);\n let pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n descent = 0;\n for (let i = pixels.length - 1 - 3; i >= 0; i -= 4) {\n if (pixels[i] > 0) {\n descent = Math.ceil(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.clearRect(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE);\n ctx.strokeText(\"A\", 0, DEFAULT_FONT_SIZE);\n pixels = ctx.getImageData(0, 0, DEFAULT_FONT_SIZE, DEFAULT_FONT_SIZE).data;\n ascent = 0;\n for (let i = 0, ii = pixels.length; i < ii; i += 4) {\n if (pixels[i] > 0) {\n ascent = DEFAULT_FONT_SIZE - Math.floor(i / 4 / DEFAULT_FONT_SIZE);\n break;\n }\n }\n ctx.canvas.width = ctx.canvas.height = 0;\n if (ascent) {\n const ratio = ascent / (ascent + descent);\n ascentCache.set(fontFamily, ratio);\n return ratio;\n }\n ascentCache.set(fontFamily, DEFAULT_FONT_ASCENT);\n return DEFAULT_FONT_ASCENT;\n}\nfunction appendText(task, geom, styles) {\n const textDiv = document.createElement(\"span\");\n const textDivProperties = {\n angle: 0,\n canvasWidth: 0,\n hasText: geom.str !== \"\",\n hasEOL: geom.hasEOL,\n fontSize: 0\n };\n task._textDivs.push(textDiv);\n const tx = _util.Util.transform(task._transform, geom.transform);\n let angle = Math.atan2(tx[1], tx[0]);\n const style = styles[geom.fontName];\n if (style.vertical) {\n angle += Math.PI / 2;\n }\n const fontHeight = Math.hypot(tx[2], tx[3]);\n const fontAscent = fontHeight * getAscent(style.fontFamily, task._isOffscreenCanvasSupported);\n let left, top;\n if (angle === 0) {\n left = tx[4];\n top = tx[5] - fontAscent;\n } else {\n left = tx[4] + fontAscent * Math.sin(angle);\n top = tx[5] - fontAscent * Math.cos(angle);\n }\n const scaleFactorStr = \"calc(var(--scale-factor)*\";\n const divStyle = textDiv.style;\n if (task._container === task._rootContainer) {\n divStyle.left = `${(100 * left / task._pageWidth).toFixed(2)}%`;\n divStyle.top = `${(100 * top / task._pageHeight).toFixed(2)}%`;\n } else {\n divStyle.left = `${scaleFactorStr}${left.toFixed(2)}px)`;\n divStyle.top = `${scaleFactorStr}${top.toFixed(2)}px)`;\n }\n divStyle.fontSize = `${scaleFactorStr}${fontHeight.toFixed(2)}px)`;\n divStyle.fontFamily = style.fontFamily;\n textDivProperties.fontSize = fontHeight;\n textDiv.setAttribute(\"role\", \"presentation\");\n textDiv.textContent = geom.str;\n textDiv.dir = geom.dir;\n if (task._fontInspectorEnabled) {\n textDiv.dataset.fontName = geom.fontName;\n }\n if (angle !== 0) {\n textDivProperties.angle = angle * (180 / Math.PI);\n }\n let shouldScaleText = false;\n if (geom.str.length > 1) {\n shouldScaleText = true;\n } else if (geom.str !== \" \" && geom.transform[0] !== geom.transform[3]) {\n const absScaleX = Math.abs(geom.transform[0]),\n absScaleY = Math.abs(geom.transform[3]);\n if (absScaleX !== absScaleY && Math.max(absScaleX, absScaleY) / Math.min(absScaleX, absScaleY) > 1.5) {\n shouldScaleText = true;\n }\n }\n if (shouldScaleText) {\n textDivProperties.canvasWidth = style.vertical ? geom.height : geom.width;\n }\n task._textDivProperties.set(textDiv, textDivProperties);\n if (task._isReadableStream) {\n task._layoutText(textDiv);\n }\n}\nfunction layout(params) {\n const {\n div,\n scale,\n properties,\n ctx,\n prevFontSize,\n prevFontFamily\n } = params;\n const {\n style\n } = div;\n let transform = \"\";\n if (properties.canvasWidth !== 0 && properties.hasText) {\n const {\n fontFamily\n } = style;\n const {\n canvasWidth,\n fontSize\n } = properties;\n if (prevFontSize !== fontSize || prevFontFamily !== fontFamily) {\n ctx.font = `${fontSize * scale}px ${fontFamily}`;\n params.prevFontSize = fontSize;\n params.prevFontFamily = fontFamily;\n }\n const {\n width\n } = ctx.measureText(div.textContent);\n if (width > 0) {\n transform = `scaleX(${canvasWidth * scale / width})`;\n }\n }\n if (properties.angle !== 0) {\n transform = `rotate(${properties.angle}deg) ${transform}`;\n }\n if (transform.length > 0) {\n style.transform = transform;\n }\n}\nfunction render(task) {\n if (task._canceled) {\n return;\n }\n const textDivs = task._textDivs;\n const capability = task._capability;\n const textDivsLength = textDivs.length;\n if (textDivsLength > MAX_TEXT_DIVS_TO_RENDER) {\n capability.resolve();\n return;\n }\n if (!task._isReadableStream) {\n for (const textDiv of textDivs) {\n task._layoutText(textDiv);\n }\n }\n capability.resolve();\n}\nclass TextLayerRenderTask {\n constructor({\n textContentSource,\n container,\n viewport,\n textDivs,\n textDivProperties,\n textContentItemsStr,\n isOffscreenCanvasSupported\n }) {\n this._textContentSource = textContentSource;\n this._isReadableStream = textContentSource instanceof ReadableStream;\n this._container = this._rootContainer = container;\n this._textDivs = textDivs || [];\n this._textContentItemsStr = textContentItemsStr || [];\n this._isOffscreenCanvasSupported = isOffscreenCanvasSupported;\n this._fontInspectorEnabled = !!globalThis.FontInspector?.enabled;\n this._reader = null;\n this._textDivProperties = textDivProperties || new WeakMap();\n this._canceled = false;\n this._capability = (0, _util.createPromiseCapability)();\n this._layoutTextParams = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale: viewport.scale * (globalThis.devicePixelRatio || 1),\n properties: null,\n ctx: getCtx(0, isOffscreenCanvasSupported)\n };\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n this._transform = [1, 0, 0, -1, -pageX, pageY + pageHeight];\n this._pageWidth = pageWidth;\n this._pageHeight = pageHeight;\n (0, _display_utils.setLayerDimensions)(container, viewport);\n this._capability.promise.finally(() => {\n this._layoutTextParams = null;\n }).catch(() => {});\n }\n get promise() {\n return this._capability.promise;\n }\n cancel() {\n this._canceled = true;\n if (this._reader) {\n this._reader.cancel(new _util.AbortException(\"TextLayer task cancelled.\")).catch(() => {});\n this._reader = null;\n }\n this._capability.reject(new _util.AbortException(\"TextLayer task cancelled.\"));\n }\n _processItems(items, styleCache) {\n for (const item of items) {\n if (item.str === undefined) {\n if (item.type === \"beginMarkedContentProps\" || item.type === \"beginMarkedContent\") {\n const parent = this._container;\n this._container = document.createElement(\"span\");\n this._container.classList.add(\"markedContent\");\n if (item.id !== null) {\n this._container.setAttribute(\"id\", `${item.id}`);\n }\n parent.append(this._container);\n } else if (item.type === \"endMarkedContent\") {\n this._container = this._container.parentNode;\n }\n continue;\n }\n this._textContentItemsStr.push(item.str);\n appendText(this, item, styleCache);\n }\n }\n _layoutText(textDiv) {\n const textDivProperties = this._layoutTextParams.properties = this._textDivProperties.get(textDiv);\n this._layoutTextParams.div = textDiv;\n layout(this._layoutTextParams);\n if (textDivProperties.hasText) {\n this._container.append(textDiv);\n }\n if (textDivProperties.hasEOL) {\n const br = document.createElement(\"br\");\n br.setAttribute(\"role\", \"presentation\");\n this._container.append(br);\n }\n }\n _render() {\n const capability = (0, _util.createPromiseCapability)();\n let styleCache = Object.create(null);\n if (this._isReadableStream) {\n const pump = () => {\n this._reader.read().then(({\n value,\n done\n }) => {\n if (done) {\n capability.resolve();\n return;\n }\n Object.assign(styleCache, value.styles);\n this._processItems(value.items, styleCache);\n pump();\n }, capability.reject);\n };\n this._reader = this._textContentSource.getReader();\n pump();\n } else if (this._textContentSource) {\n const {\n items,\n styles\n } = this._textContentSource;\n this._processItems(items, styles);\n capability.resolve();\n } else {\n throw new Error('No \"textContentSource\" parameter specified.');\n }\n capability.promise.then(() => {\n styleCache = null;\n render(this);\n }, this._capability.reject);\n }\n}\nexports.TextLayerRenderTask = TextLayerRenderTask;\nfunction renderTextLayer(params) {\n if (!params.textContentSource && (params.textContent || params.textContentStream)) {\n (0, _display_utils.deprecated)(\"The TextLayerRender `textContent`/`textContentStream` parameters \" + \"will be removed in the future, please use `textContentSource` instead.\");\n params.textContentSource = params.textContent || params.textContentStream;\n }\n const task = new TextLayerRenderTask(params);\n task._render();\n return task;\n}\nfunction updateTextLayer({\n container,\n viewport,\n textDivs,\n textDivProperties,\n isOffscreenCanvasSupported,\n mustRotate = true,\n mustRescale = true\n}) {\n if (mustRotate) {\n (0, _display_utils.setLayerDimensions)(container, {\n rotation: viewport.rotation\n });\n }\n if (mustRescale) {\n const ctx = getCtx(0, isOffscreenCanvasSupported);\n const scale = viewport.scale * (globalThis.devicePixelRatio || 1);\n const params = {\n prevFontSize: null,\n prevFontFamily: null,\n div: null,\n scale,\n properties: null,\n ctx\n };\n for (const div of textDivs) {\n params.properties = textDivProperties.get(div);\n params.div = div;\n layout(params);\n }\n }\n}\n\n/***/ }),\n/* 27 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationEditorLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _tools = __w_pdfjs_require__(5);\nvar _freetext = __w_pdfjs_require__(28);\nvar _ink = __w_pdfjs_require__(29);\nvar _display_utils = __w_pdfjs_require__(6);\nclass AnnotationEditorLayer {\n #accessibilityManager;\n #allowClick = false;\n #boundPointerup = this.pointerup.bind(this);\n #boundPointerdown = this.pointerdown.bind(this);\n #editors = new Map();\n #hadPointerDown = false;\n #isCleaningUp = false;\n #uiManager;\n static _initialized = false;\n constructor(options) {\n if (!AnnotationEditorLayer._initialized) {\n AnnotationEditorLayer._initialized = true;\n _freetext.FreeTextEditor.initialize(options.l10n);\n _ink.InkEditor.initialize(options.l10n);\n }\n options.uiManager.registerEditorTypes([_freetext.FreeTextEditor, _ink.InkEditor]);\n this.#uiManager = options.uiManager;\n this.pageIndex = options.pageIndex;\n this.div = options.div;\n this.#accessibilityManager = options.accessibilityManager;\n this.#uiManager.addLayer(this);\n }\n get isEmpty() {\n return this.#editors.size === 0;\n }\n updateToolbar(mode) {\n this.#uiManager.updateToolbar(mode);\n }\n updateMode(mode = this.#uiManager.getMode()) {\n this.#cleanup();\n if (mode === _util.AnnotationEditorType.INK) {\n this.addInkEditorIfNeeded(false);\n this.disableClick();\n } else {\n this.enableClick();\n }\n this.#uiManager.unselectAll();\n if (mode !== _util.AnnotationEditorType.NONE) {\n this.div.classList.toggle(\"freeTextEditing\", mode === _util.AnnotationEditorType.FREETEXT);\n this.div.classList.toggle(\"inkEditing\", mode === _util.AnnotationEditorType.INK);\n this.div.hidden = false;\n }\n }\n addInkEditorIfNeeded(isCommitting) {\n if (!isCommitting && this.#uiManager.getMode() !== _util.AnnotationEditorType.INK) {\n return;\n }\n if (!isCommitting) {\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.setInBackground();\n return;\n }\n }\n }\n const editor = this.#createAndAddNewEditor({\n offsetX: 0,\n offsetY: 0\n });\n editor.setInBackground();\n }\n setEditingState(isEditing) {\n this.#uiManager.setEditingState(isEditing);\n }\n addCommands(params) {\n this.#uiManager.addCommands(params);\n }\n enable() {\n this.div.style.pointerEvents = \"auto\";\n for (const editor of this.#editors.values()) {\n editor.enableEditing();\n }\n }\n disable() {\n this.div.style.pointerEvents = \"none\";\n for (const editor of this.#editors.values()) {\n editor.disableEditing();\n }\n this.#cleanup();\n if (this.isEmpty) {\n this.div.hidden = true;\n }\n }\n setActiveEditor(editor) {\n const currentActive = this.#uiManager.getActive();\n if (currentActive === editor) {\n return;\n }\n this.#uiManager.setActiveEditor(editor);\n }\n enableClick() {\n this.div.addEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.addEventListener(\"pointerup\", this.#boundPointerup);\n }\n disableClick() {\n this.div.removeEventListener(\"pointerdown\", this.#boundPointerdown);\n this.div.removeEventListener(\"pointerup\", this.#boundPointerup);\n }\n attach(editor) {\n this.#editors.set(editor.id, editor);\n }\n detach(editor) {\n this.#editors.delete(editor.id);\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n }\n remove(editor) {\n this.#uiManager.removeEditor(editor);\n this.detach(editor);\n editor.div.style.display = \"none\";\n setTimeout(() => {\n editor.div.style.display = \"\";\n editor.div.remove();\n editor.isAttachedToDOM = false;\n if (document.activeElement === document.body) {\n this.#uiManager.focusMainContainer();\n }\n }, 0);\n if (!this.#isCleaningUp) {\n this.addInkEditorIfNeeded(false);\n }\n }\n #changeParent(editor) {\n if (editor.parent === this) {\n return;\n }\n this.attach(editor);\n editor.parent?.detach(editor);\n editor.setParent(this);\n if (editor.div && editor.isAttachedToDOM) {\n editor.div.remove();\n this.div.append(editor.div);\n }\n }\n add(editor) {\n this.#changeParent(editor);\n this.#uiManager.addEditor(editor);\n this.attach(editor);\n if (!editor.isAttachedToDOM) {\n const div = editor.render();\n this.div.append(div);\n editor.isAttachedToDOM = true;\n }\n this.moveEditorInDOM(editor);\n editor.onceAdded();\n this.#uiManager.addToAnnotationStorage(editor);\n }\n moveEditorInDOM(editor) {\n this.#accessibilityManager?.moveElementInDOM(this.div, editor.div, editor.contentDiv, true);\n }\n addOrRebuild(editor) {\n if (editor.needsToBeRebuilt()) {\n editor.rebuild();\n } else {\n this.add(editor);\n }\n }\n addANewEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n addUndoableEditor(editor) {\n const cmd = () => {\n this.addOrRebuild(editor);\n };\n const undo = () => {\n editor.remove();\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: false\n });\n }\n getNextId() {\n return this.#uiManager.getId();\n }\n #createNewEditor(params) {\n switch (this.#uiManager.getMode()) {\n case _util.AnnotationEditorType.FREETEXT:\n return new _freetext.FreeTextEditor(params);\n case _util.AnnotationEditorType.INK:\n return new _ink.InkEditor(params);\n }\n return null;\n }\n deserialize(data) {\n switch (data.annotationType) {\n case _util.AnnotationEditorType.FREETEXT:\n return _freetext.FreeTextEditor.deserialize(data, this, this.#uiManager);\n case _util.AnnotationEditorType.INK:\n return _ink.InkEditor.deserialize(data, this, this.#uiManager);\n }\n return null;\n }\n #createAndAddNewEditor(event) {\n const id = this.getNextId();\n const editor = this.#createNewEditor({\n parent: this,\n id,\n x: event.offsetX,\n y: event.offsetY,\n uiManager: this.#uiManager\n });\n if (editor) {\n this.add(editor);\n }\n return editor;\n }\n setSelected(editor) {\n this.#uiManager.setSelected(editor);\n }\n toggleSelected(editor) {\n this.#uiManager.toggleSelected(editor);\n }\n isSelected(editor) {\n return this.#uiManager.isSelected(editor);\n }\n unselect(editor) {\n this.#uiManager.unselect(editor);\n }\n pointerup(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n if (!this.#hadPointerDown) {\n return;\n }\n this.#hadPointerDown = false;\n if (!this.#allowClick) {\n this.#allowClick = true;\n return;\n }\n this.#createAndAddNewEditor(event);\n }\n pointerdown(event) {\n const {\n isMac\n } = _util.FeatureTest.platform;\n if (event.button !== 0 || event.ctrlKey && isMac) {\n return;\n }\n if (event.target !== this.div) {\n return;\n }\n this.#hadPointerDown = true;\n const editor = this.#uiManager.getActive();\n this.#allowClick = !editor || editor.isEmpty();\n }\n drop(event) {\n const id = event.dataTransfer.getData(\"text/plain\");\n const editor = this.#uiManager.getEditor(id);\n if (!editor) {\n return;\n }\n event.preventDefault();\n event.dataTransfer.dropEffect = \"move\";\n this.#changeParent(editor);\n const rect = this.div.getBoundingClientRect();\n const endX = event.clientX - rect.x;\n const endY = event.clientY - rect.y;\n editor.translate(endX - editor.startX, endY - editor.startY);\n this.moveEditorInDOM(editor);\n editor.div.focus();\n }\n dragover(event) {\n event.preventDefault();\n }\n destroy() {\n if (this.#uiManager.getActive()?.parent === this) {\n this.#uiManager.setActiveEditor(null);\n }\n for (const editor of this.#editors.values()) {\n this.#accessibilityManager?.removePointerInTextLayer(editor.contentDiv);\n editor.setParent(null);\n editor.isAttachedToDOM = false;\n editor.div.remove();\n }\n this.div = null;\n this.#editors.clear();\n this.#uiManager.removeLayer(this);\n }\n #cleanup() {\n this.#isCleaningUp = true;\n for (const editor of this.#editors.values()) {\n if (editor.isEmpty()) {\n editor.remove();\n }\n }\n this.#isCleaningUp = false;\n }\n render({\n viewport\n }) {\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, viewport);\n (0, _tools.bindEvents)(this, this.div, [\"dragover\", \"drop\"]);\n for (const editor of this.#uiManager.getEditors(this.pageIndex)) {\n this.add(editor);\n }\n this.updateMode();\n }\n update({\n viewport\n }) {\n this.#uiManager.commitOrRemove();\n this.viewport = viewport;\n (0, _display_utils.setLayerDimensions)(this.div, {\n rotation: viewport.rotation\n });\n this.updateMode();\n }\n get pageDimensions() {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n return [pageWidth, pageHeight];\n }\n}\nexports.AnnotationEditorLayer = AnnotationEditorLayer;\n\n/***/ }),\n/* 28 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.FreeTextEditor = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _tools = __w_pdfjs_require__(5);\nvar _editor = __w_pdfjs_require__(4);\nclass FreeTextEditor extends _editor.AnnotationEditor {\n #boundEditorDivBlur = this.editorDivBlur.bind(this);\n #boundEditorDivFocus = this.editorDivFocus.bind(this);\n #boundEditorDivInput = this.editorDivInput.bind(this);\n #boundEditorDivKeydown = this.editorDivKeydown.bind(this);\n #color;\n #content = \"\";\n #editorDivId = `${this.id}-editor`;\n #hasAlreadyBeenCommitted = false;\n #fontSize;\n static _freeTextDefaultContent = \"\";\n static _l10nPromise;\n static _internalPadding = 0;\n static _defaultColor = null;\n static _defaultFontSize = 10;\n static _keyboardManager = new _tools.KeyboardManager([[[\"ctrl+Enter\", \"mac+meta+Enter\", \"Escape\", \"mac+Escape\"], FreeTextEditor.prototype.commitOrRemove]]);\n static _type = \"freetext\";\n constructor(params) {\n super({\n ...params,\n name: \"freeTextEditor\"\n });\n this.#color = params.color || FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.#fontSize = params.fontSize || FreeTextEditor._defaultFontSize;\n }\n static initialize(l10n) {\n this._l10nPromise = new Map([\"free_text2_default_content\", \"editor_free_text2_aria_label\"].map(str => [str, l10n.get(str)]));\n const style = getComputedStyle(document.documentElement);\n this._internalPadding = parseFloat(style.getPropertyValue(\"--freetext-padding\"));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n FreeTextEditor._defaultFontSize = value;\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n FreeTextEditor._defaultColor = value;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.FREETEXT_SIZE:\n this.#updateFontSize(value);\n break;\n case _util.AnnotationEditorParamsType.FREETEXT_COLOR:\n this.#updateColor(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, FreeTextEditor._defaultFontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, FreeTextEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.FREETEXT_SIZE, this.#fontSize], [_util.AnnotationEditorParamsType.FREETEXT_COLOR, this.#color]];\n }\n #updateFontSize(fontSize) {\n const setFontsize = size => {\n this.editorDiv.style.fontSize = `calc(${size}px * var(--scale-factor))`;\n this.translate(0, -(size - this.#fontSize) * this.parentScale);\n this.#fontSize = size;\n this.#setEditorDimensions();\n };\n const savedFontsize = this.#fontSize;\n this.addCommands({\n cmd: () => {\n setFontsize(fontSize);\n },\n undo: () => {\n setFontsize(savedFontsize);\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_SIZE,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.#color;\n this.addCommands({\n cmd: () => {\n this.#color = this.editorDiv.style.color = color;\n },\n undo: () => {\n this.#color = this.editorDiv.style.color = savedColor;\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.FREETEXT_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n getInitialTranslation() {\n const scale = this.parentScale;\n return [-FreeTextEditor._internalPadding * scale, -(FreeTextEditor._internalPadding + this.#fontSize) * scale];\n }\n rebuild() {\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n }\n }\n enableEditMode() {\n if (this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(false);\n this.parent.updateToolbar(_util.AnnotationEditorType.FREETEXT);\n super.enableEditMode();\n this.overlayDiv.classList.remove(\"enabled\");\n this.editorDiv.contentEditable = true;\n this.div.draggable = false;\n this.div.removeAttribute(\"aria-activedescendant\");\n this.editorDiv.addEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.addEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.addEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.addEventListener(\"input\", this.#boundEditorDivInput);\n }\n disableEditMode() {\n if (!this.isInEditMode()) {\n return;\n }\n this.parent.setEditingState(true);\n super.disableEditMode();\n this.overlayDiv.classList.add(\"enabled\");\n this.editorDiv.contentEditable = false;\n this.div.setAttribute(\"aria-activedescendant\", this.#editorDivId);\n this.div.draggable = true;\n this.editorDiv.removeEventListener(\"keydown\", this.#boundEditorDivKeydown);\n this.editorDiv.removeEventListener(\"focus\", this.#boundEditorDivFocus);\n this.editorDiv.removeEventListener(\"blur\", this.#boundEditorDivBlur);\n this.editorDiv.removeEventListener(\"input\", this.#boundEditorDivInput);\n this.div.focus({\n preventScroll: true\n });\n this.isEditing = false;\n this.parent.div.classList.add(\"freeTextEditing\");\n }\n focusin(event) {\n super.focusin(event);\n if (event.target !== this.editorDiv) {\n this.editorDiv.focus();\n }\n }\n onceAdded() {\n if (this.width) {\n return;\n }\n this.enableEditMode();\n this.editorDiv.focus();\n }\n isEmpty() {\n return !this.editorDiv || this.editorDiv.innerText.trim() === \"\";\n }\n remove() {\n this.isEditing = false;\n this.parent.setEditingState(true);\n this.parent.div.classList.add(\"freeTextEditing\");\n super.remove();\n }\n #extractText() {\n const divs = this.editorDiv.getElementsByTagName(\"div\");\n if (divs.length === 0) {\n return this.editorDiv.innerText;\n }\n const buffer = [];\n for (const div of divs) {\n buffer.push(div.innerText.replace(/\\r\\n?|\\n/, \"\"));\n }\n return buffer.join(\"\\n\");\n }\n #setEditorDimensions() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n let rect;\n if (this.isAttachedToDOM) {\n rect = this.div.getBoundingClientRect();\n } else {\n const {\n currentLayer,\n div\n } = this;\n const savedDisplay = div.style.display;\n div.style.display = \"hidden\";\n currentLayer.div.append(this.div);\n rect = div.getBoundingClientRect();\n div.remove();\n div.style.display = savedDisplay;\n }\n this.width = rect.width / parentWidth;\n this.height = rect.height / parentHeight;\n }\n commit() {\n if (!this.isInEditMode()) {\n return;\n }\n super.commit();\n if (!this.#hasAlreadyBeenCommitted) {\n this.#hasAlreadyBeenCommitted = true;\n this.parent.addUndoableEditor(this);\n }\n this.disableEditMode();\n this.#content = this.#extractText().trimEnd();\n this.#setEditorDimensions();\n }\n shouldGetKeyboardEvents() {\n return this.isInEditMode();\n }\n dblclick(event) {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n keydown(event) {\n if (event.target === this.div && event.key === \"Enter\") {\n this.enableEditMode();\n this.editorDiv.focus();\n }\n }\n editorDivKeydown(event) {\n FreeTextEditor._keyboardManager.exec(this, event);\n }\n editorDivFocus(event) {\n this.isEditing = true;\n }\n editorDivBlur(event) {\n this.isEditing = false;\n }\n editorDivInput(event) {\n this.parent.div.classList.toggle(\"freeTextEditing\", this.isEmpty());\n }\n disableEditing() {\n this.editorDiv.setAttribute(\"role\", \"comment\");\n this.editorDiv.removeAttribute(\"aria-multiline\");\n }\n enableEditing() {\n this.editorDiv.setAttribute(\"role\", \"textbox\");\n this.editorDiv.setAttribute(\"aria-multiline\", true);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n this.editorDiv = document.createElement(\"div\");\n this.editorDiv.className = \"internal\";\n this.editorDiv.setAttribute(\"id\", this.#editorDivId);\n this.enableEditing();\n FreeTextEditor._l10nPromise.get(\"editor_free_text2_aria_label\").then(msg => this.editorDiv?.setAttribute(\"aria-label\", msg));\n FreeTextEditor._l10nPromise.get(\"free_text2_default_content\").then(msg => this.editorDiv?.setAttribute(\"default-content\", msg));\n this.editorDiv.contentEditable = true;\n const {\n style\n } = this.editorDiv;\n style.fontSize = `calc(${this.#fontSize}px * var(--scale-factor))`;\n style.color = this.#color;\n this.div.append(this.editorDiv);\n this.overlayDiv = document.createElement(\"div\");\n this.overlayDiv.classList.add(\"overlay\", \"enabled\");\n this.div.append(this.overlayDiv);\n (0, _tools.bindEvents)(this, this.div, [\"dblclick\", \"keydown\"]);\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n for (const line of this.#content.split(\"\\n\")) {\n const div = document.createElement(\"div\");\n div.append(line ? document.createTextNode(line) : document.createElement(\"br\"));\n this.editorDiv.append(div);\n }\n this.div.draggable = true;\n this.editorDiv.contentEditable = false;\n } else {\n this.div.draggable = false;\n this.editorDiv.contentEditable = true;\n }\n return this.div;\n }\n get contentDiv() {\n return this.editorDiv;\n }\n static deserialize(data, parent, uiManager) {\n const editor = super.deserialize(data, parent, uiManager);\n editor.#fontSize = data.fontSize;\n editor.#color = _util.Util.makeHexColor(...data.color);\n editor.#content = data.value;\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const padding = FreeTextEditor._internalPadding * this.parentScale;\n const rect = this.getRect(padding, padding);\n const color = _editor.AnnotationEditor._colorManager.convert(this.isAttachedToDOM ? getComputedStyle(this.editorDiv).color : this.#color);\n return {\n annotationType: _util.AnnotationEditorType.FREETEXT,\n color,\n fontSize: this.#fontSize,\n value: this.#content,\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n}\nexports.FreeTextEditor = FreeTextEditor;\n\n/***/ }),\n/* 29 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.InkEditor = void 0;\nObject.defineProperty(exports, \"fitCurve\", ({\n enumerable: true,\n get: function () {\n return _pdfjsFitCurve.fitCurve;\n }\n}));\nvar _util = __w_pdfjs_require__(1);\nvar _editor = __w_pdfjs_require__(4);\nvar _pdfjsFitCurve = __w_pdfjs_require__(30);\nvar _tools = __w_pdfjs_require__(5);\nconst RESIZER_SIZE = 16;\nconst TIME_TO_WAIT_BEFORE_FIXING_DIMS = 100;\nclass InkEditor extends _editor.AnnotationEditor {\n #aspectRatio = 0;\n #baseHeight = 0;\n #baseWidth = 0;\n #boundCanvasPointermove = this.canvasPointermove.bind(this);\n #boundCanvasPointerleave = this.canvasPointerleave.bind(this);\n #boundCanvasPointerup = this.canvasPointerup.bind(this);\n #boundCanvasPointerdown = this.canvasPointerdown.bind(this);\n #disableEditing = false;\n #isCanvasInitialized = false;\n #lastPoint = null;\n #observer = null;\n #realWidth = 0;\n #realHeight = 0;\n #requestFrameCallback = null;\n static _defaultColor = null;\n static _defaultOpacity = 1;\n static _defaultThickness = 1;\n static _l10nPromise;\n static _type = \"ink\";\n constructor(params) {\n super({\n ...params,\n name: \"inkEditor\"\n });\n this.color = params.color || null;\n this.thickness = params.thickness || null;\n this.opacity = params.opacity || null;\n this.paths = [];\n this.bezierPath2D = [];\n this.currentPath = [];\n this.scaleFactor = 1;\n this.translationX = this.translationY = 0;\n this.x = 0;\n this.y = 0;\n }\n static initialize(l10n) {\n this._l10nPromise = new Map([\"editor_ink_canvas_aria_label\", \"editor_ink2_aria_label\"].map(str => [str, l10n.get(str)]));\n }\n static updateDefaultParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n InkEditor._defaultThickness = value;\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n InkEditor._defaultColor = value;\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n InkEditor._defaultOpacity = value / 100;\n break;\n }\n }\n updateParams(type, value) {\n switch (type) {\n case _util.AnnotationEditorParamsType.INK_THICKNESS:\n this.#updateThickness(value);\n break;\n case _util.AnnotationEditorParamsType.INK_COLOR:\n this.#updateColor(value);\n break;\n case _util.AnnotationEditorParamsType.INK_OPACITY:\n this.#updateOpacity(value);\n break;\n }\n }\n static get defaultPropertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(InkEditor._defaultOpacity * 100)]];\n }\n get propertiesToUpdate() {\n return [[_util.AnnotationEditorParamsType.INK_THICKNESS, this.thickness || InkEditor._defaultThickness], [_util.AnnotationEditorParamsType.INK_COLOR, this.color || InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor], [_util.AnnotationEditorParamsType.INK_OPACITY, Math.round(100 * (this.opacity ?? InkEditor._defaultOpacity))]];\n }\n #updateThickness(thickness) {\n const savedThickness = this.thickness;\n this.addCommands({\n cmd: () => {\n this.thickness = thickness;\n this.#fitToContent();\n },\n undo: () => {\n this.thickness = savedThickness;\n this.#fitToContent();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_THICKNESS,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateColor(color) {\n const savedColor = this.color;\n this.addCommands({\n cmd: () => {\n this.color = color;\n this.#redraw();\n },\n undo: () => {\n this.color = savedColor;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_COLOR,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n #updateOpacity(opacity) {\n opacity /= 100;\n const savedOpacity = this.opacity;\n this.addCommands({\n cmd: () => {\n this.opacity = opacity;\n this.#redraw();\n },\n undo: () => {\n this.opacity = savedOpacity;\n this.#redraw();\n },\n mustExec: true,\n type: _util.AnnotationEditorParamsType.INK_OPACITY,\n overwriteIfSameType: true,\n keepUndo: true\n });\n }\n rebuild() {\n super.rebuild();\n if (this.div === null) {\n return;\n }\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n if (!this.isAttachedToDOM) {\n this.parent.add(this);\n this.#setCanvasDims();\n }\n this.#fitToContent();\n }\n remove() {\n if (this.canvas === null) {\n return;\n }\n if (!this.isEmpty()) {\n this.commit();\n }\n this.canvas.width = this.canvas.height = 0;\n this.canvas.remove();\n this.canvas = null;\n this.#observer.disconnect();\n this.#observer = null;\n super.remove();\n }\n setParent(parent) {\n if (!this.parent && parent) {\n this._uiManager.removeShouldRescale(this);\n } else if (this.parent && parent === null) {\n this._uiManager.addShouldRescale(this);\n }\n super.setParent(parent);\n }\n onScaleChanging() {\n const [parentWidth, parentHeight] = this.parentDimensions;\n const width = this.width * parentWidth;\n const height = this.height * parentHeight;\n this.setDimensions(width, height);\n }\n enableEditMode() {\n if (this.#disableEditing || this.canvas === null) {\n return;\n }\n super.enableEditMode();\n this.div.draggable = false;\n this.canvas.addEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.canvas.addEventListener(\"pointerup\", this.#boundCanvasPointerup);\n }\n disableEditMode() {\n if (!this.isInEditMode() || this.canvas === null) {\n return;\n }\n super.disableEditMode();\n this.div.draggable = !this.isEmpty();\n this.div.classList.remove(\"editing\");\n this.canvas.removeEventListener(\"pointerdown\", this.#boundCanvasPointerdown);\n this.canvas.removeEventListener(\"pointerup\", this.#boundCanvasPointerup);\n }\n onceAdded() {\n this.div.draggable = !this.isEmpty();\n }\n isEmpty() {\n return this.paths.length === 0 || this.paths.length === 1 && this.paths[0].length === 0;\n }\n #getInitialBBox() {\n const {\n parentRotation,\n parentDimensions: [width, height]\n } = this;\n switch (parentRotation) {\n case 90:\n return [0, height, height, width];\n case 180:\n return [width, height, width, height];\n case 270:\n return [width, 0, height, width];\n default:\n return [0, 0, width, height];\n }\n }\n #setStroke() {\n const {\n ctx,\n color,\n opacity,\n thickness,\n parentScale,\n scaleFactor\n } = this;\n ctx.lineWidth = thickness * parentScale / scaleFactor;\n ctx.lineCap = \"round\";\n ctx.lineJoin = \"round\";\n ctx.miterLimit = 10;\n ctx.strokeStyle = `${color}${(0, _tools.opacityToHex)(opacity)}`;\n }\n #startDrawing(x, y) {\n this.isEditing = true;\n if (!this.#isCanvasInitialized) {\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.thickness ||= InkEditor._defaultThickness;\n this.color ||= InkEditor._defaultColor || _editor.AnnotationEditor._defaultLineColor;\n this.opacity ??= InkEditor._defaultOpacity;\n }\n this.currentPath.push([x, y]);\n this.#lastPoint = null;\n this.#setStroke();\n this.ctx.beginPath();\n this.ctx.moveTo(x, y);\n this.#requestFrameCallback = () => {\n if (!this.#requestFrameCallback) {\n return;\n }\n if (this.#lastPoint) {\n if (this.isEmpty()) {\n this.ctx.setTransform(1, 0, 0, 1, 0, 0);\n this.ctx.clearRect(0, 0, this.canvas.width, this.canvas.height);\n } else {\n this.#redraw();\n }\n this.ctx.lineTo(...this.#lastPoint);\n this.#lastPoint = null;\n this.ctx.stroke();\n }\n window.requestAnimationFrame(this.#requestFrameCallback);\n };\n window.requestAnimationFrame(this.#requestFrameCallback);\n }\n #draw(x, y) {\n const [lastX, lastY] = this.currentPath.at(-1);\n if (x === lastX && y === lastY) {\n return;\n }\n this.currentPath.push([x, y]);\n this.#lastPoint = [x, y];\n }\n #stopDrawing(x, y) {\n this.ctx.closePath();\n this.#requestFrameCallback = null;\n x = Math.min(Math.max(x, 0), this.canvas.width);\n y = Math.min(Math.max(y, 0), this.canvas.height);\n const [lastX, lastY] = this.currentPath.at(-1);\n if (x !== lastX || y !== lastY) {\n this.currentPath.push([x, y]);\n }\n let bezier;\n if (this.currentPath.length !== 1) {\n bezier = (0, _pdfjsFitCurve.fitCurve)(this.currentPath, 30, null);\n } else {\n const xy = [x, y];\n bezier = [[xy, xy.slice(), xy.slice(), xy]];\n }\n const path2D = InkEditor.#buildPath2D(bezier);\n this.currentPath.length = 0;\n const cmd = () => {\n this.paths.push(bezier);\n this.bezierPath2D.push(path2D);\n this.rebuild();\n };\n const undo = () => {\n this.paths.pop();\n this.bezierPath2D.pop();\n if (this.paths.length === 0) {\n this.remove();\n } else {\n if (!this.canvas) {\n this.#createCanvas();\n this.#createObserver();\n }\n this.#fitToContent();\n }\n };\n this.addCommands({\n cmd,\n undo,\n mustExec: true\n });\n }\n #redraw() {\n if (this.isEmpty()) {\n this.#updateTransform();\n return;\n }\n this.#setStroke();\n const {\n canvas,\n ctx\n } = this;\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n this.#updateTransform();\n for (const path of this.bezierPath2D) {\n ctx.stroke(path);\n }\n }\n commit() {\n if (this.#disableEditing) {\n return;\n }\n super.commit();\n this.isEditing = false;\n this.disableEditMode();\n this.setInForeground();\n this.#disableEditing = true;\n this.div.classList.add(\"disabled\");\n this.#fitToContent(true);\n this.parent.addInkEditorIfNeeded(true);\n this.parent.moveEditorInDOM(this);\n this.div.focus({\n preventScroll: true\n });\n }\n focusin(event) {\n super.focusin(event);\n this.enableEditMode();\n }\n canvasPointerdown(event) {\n if (event.button !== 0 || !this.isInEditMode() || this.#disableEditing) {\n return;\n }\n this.setInForeground();\n if (event.type !== \"mouse\") {\n this.div.focus();\n }\n event.stopPropagation();\n this.canvas.addEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.addEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.#startDrawing(event.offsetX, event.offsetY);\n }\n canvasPointermove(event) {\n event.stopPropagation();\n this.#draw(event.offsetX, event.offsetY);\n }\n canvasPointerup(event) {\n if (event.button !== 0) {\n return;\n }\n if (this.isInEditMode() && this.currentPath.length !== 0) {\n event.stopPropagation();\n this.#endDrawing(event);\n this.setInBackground();\n }\n }\n canvasPointerleave(event) {\n this.#endDrawing(event);\n this.setInBackground();\n }\n #endDrawing(event) {\n this.#stopDrawing(event.offsetX, event.offsetY);\n this.canvas.removeEventListener(\"pointerleave\", this.#boundCanvasPointerleave);\n this.canvas.removeEventListener(\"pointermove\", this.#boundCanvasPointermove);\n this.addToAnnotationStorage();\n }\n #createCanvas() {\n this.canvas = document.createElement(\"canvas\");\n this.canvas.width = this.canvas.height = 0;\n this.canvas.className = \"inkEditorCanvas\";\n InkEditor._l10nPromise.get(\"editor_ink_canvas_aria_label\").then(msg => this.canvas?.setAttribute(\"aria-label\", msg));\n this.div.append(this.canvas);\n this.ctx = this.canvas.getContext(\"2d\");\n }\n #createObserver() {\n let timeoutId = null;\n this.#observer = new ResizeObserver(entries => {\n const rect = entries[0].contentRect;\n if (rect.width && rect.height) {\n if (timeoutId !== null) {\n clearTimeout(timeoutId);\n }\n timeoutId = setTimeout(() => {\n this.fixDims();\n timeoutId = null;\n }, TIME_TO_WAIT_BEFORE_FIXING_DIMS);\n this.setDimensions(rect.width, rect.height);\n }\n });\n this.#observer.observe(this.div);\n }\n render() {\n if (this.div) {\n return this.div;\n }\n let baseX, baseY;\n if (this.width) {\n baseX = this.x;\n baseY = this.y;\n }\n super.render();\n InkEditor._l10nPromise.get(\"editor_ink2_aria_label\").then(msg => this.div?.setAttribute(\"aria-label\", msg));\n const [x, y, w, h] = this.#getInitialBBox();\n this.setAt(x, y, 0, 0);\n this.setDims(w, h);\n this.#createCanvas();\n if (this.width) {\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.setAt(baseX * parentWidth, baseY * parentHeight, this.width * parentWidth, this.height * parentHeight);\n this.#isCanvasInitialized = true;\n this.#setCanvasDims();\n this.setDims(this.width * parentWidth, this.height * parentHeight);\n this.#redraw();\n this.#setMinDims();\n this.div.classList.add(\"disabled\");\n } else {\n this.div.classList.add(\"editing\");\n this.enableEditMode();\n }\n this.#createObserver();\n return this.div;\n }\n #setCanvasDims() {\n if (!this.#isCanvasInitialized) {\n return;\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.canvas.width = Math.ceil(this.width * parentWidth);\n this.canvas.height = Math.ceil(this.height * parentHeight);\n this.#updateTransform();\n }\n setDimensions(width, height) {\n const roundedWidth = Math.round(width);\n const roundedHeight = Math.round(height);\n if (this.#realWidth === roundedWidth && this.#realHeight === roundedHeight) {\n return;\n }\n this.#realWidth = roundedWidth;\n this.#realHeight = roundedHeight;\n this.canvas.style.visibility = \"hidden\";\n if (this.#aspectRatio && Math.abs(this.#aspectRatio - width / height) > 1e-2) {\n height = Math.ceil(width / this.#aspectRatio);\n this.setDims(width, height);\n }\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n if (this.#disableEditing) {\n this.#setScaleFactor(width, height);\n }\n this.#setCanvasDims();\n this.#redraw();\n this.canvas.style.visibility = \"visible\";\n }\n #setScaleFactor(width, height) {\n const padding = this.#getPadding();\n const scaleFactorW = (width - padding) / this.#baseWidth;\n const scaleFactorH = (height - padding) / this.#baseHeight;\n this.scaleFactor = Math.min(scaleFactorW, scaleFactorH);\n }\n #updateTransform() {\n const padding = this.#getPadding() / 2;\n this.ctx.setTransform(this.scaleFactor, 0, 0, this.scaleFactor, this.translationX * this.scaleFactor + padding, this.translationY * this.scaleFactor + padding);\n }\n static #buildPath2D(bezier) {\n const path2D = new Path2D();\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n if (i === 0) {\n path2D.moveTo(...first);\n }\n path2D.bezierCurveTo(control1[0], control1[1], control2[0], control2[1], second[0], second[1]);\n }\n return path2D;\n }\n #serializePaths(s, tx, ty, h) {\n const NUMBER_OF_POINTS_ON_BEZIER_CURVE = 4;\n const paths = [];\n const padding = this.thickness / 2;\n let buffer, points;\n for (const bezier of this.paths) {\n buffer = [];\n points = [];\n for (let i = 0, ii = bezier.length; i < ii; i++) {\n const [first, control1, control2, second] = bezier[i];\n const p10 = s * (first[0] + tx) + padding;\n const p11 = h - s * (first[1] + ty) - padding;\n const p20 = s * (control1[0] + tx) + padding;\n const p21 = h - s * (control1[1] + ty) - padding;\n const p30 = s * (control2[0] + tx) + padding;\n const p31 = h - s * (control2[1] + ty) - padding;\n const p40 = s * (second[0] + tx) + padding;\n const p41 = h - s * (second[1] + ty) - padding;\n if (i === 0) {\n buffer.push(p10, p11);\n points.push(p10, p11);\n }\n buffer.push(p20, p21, p30, p31, p40, p41);\n this.#extractPointsOnBezier(p10, p11, p20, p21, p30, p31, p40, p41, NUMBER_OF_POINTS_ON_BEZIER_CURVE, points);\n }\n paths.push({\n bezier: buffer,\n points\n });\n }\n return paths;\n }\n #extractPointsOnBezier(p10, p11, p20, p21, p30, p31, p40, p41, n, points) {\n if (this.#isAlmostFlat(p10, p11, p20, p21, p30, p31, p40, p41)) {\n points.push(p40, p41);\n return;\n }\n for (let i = 1; i < n - 1; i++) {\n const t = i / n;\n const mt = 1 - t;\n let q10 = t * p10 + mt * p20;\n let q11 = t * p11 + mt * p21;\n let q20 = t * p20 + mt * p30;\n let q21 = t * p21 + mt * p31;\n const q30 = t * p30 + mt * p40;\n const q31 = t * p31 + mt * p41;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n q20 = t * q20 + mt * q30;\n q21 = t * q21 + mt * q31;\n q10 = t * q10 + mt * q20;\n q11 = t * q11 + mt * q21;\n points.push(q10, q11);\n }\n points.push(p40, p41);\n }\n #isAlmostFlat(p10, p11, p20, p21, p30, p31, p40, p41) {\n const tol = 10;\n const ax = (3 * p20 - 2 * p10 - p40) ** 2;\n const ay = (3 * p21 - 2 * p11 - p41) ** 2;\n const bx = (3 * p30 - p10 - 2 * p40) ** 2;\n const by = (3 * p31 - p11 - 2 * p41) ** 2;\n return Math.max(ax, bx) + Math.max(ay, by) <= tol;\n }\n #getBbox() {\n let xMin = Infinity;\n let xMax = -Infinity;\n let yMin = Infinity;\n let yMax = -Infinity;\n for (const path of this.paths) {\n for (const [first, control1, control2, second] of path) {\n const bbox = _util.Util.bezierBoundingBox(...first, ...control1, ...control2, ...second);\n xMin = Math.min(xMin, bbox[0]);\n yMin = Math.min(yMin, bbox[1]);\n xMax = Math.max(xMax, bbox[2]);\n yMax = Math.max(yMax, bbox[3]);\n }\n }\n return [xMin, yMin, xMax, yMax];\n }\n #getPadding() {\n return this.#disableEditing ? Math.ceil(this.thickness * this.parentScale) : 0;\n }\n #fitToContent(firstTime = false) {\n if (this.isEmpty()) {\n return;\n }\n if (!this.#disableEditing) {\n this.#redraw();\n return;\n }\n const bbox = this.#getBbox();\n const padding = this.#getPadding();\n this.#baseWidth = Math.max(RESIZER_SIZE, bbox[2] - bbox[0]);\n this.#baseHeight = Math.max(RESIZER_SIZE, bbox[3] - bbox[1]);\n const width = Math.ceil(padding + this.#baseWidth * this.scaleFactor);\n const height = Math.ceil(padding + this.#baseHeight * this.scaleFactor);\n const [parentWidth, parentHeight] = this.parentDimensions;\n this.width = width / parentWidth;\n this.height = height / parentHeight;\n this.#aspectRatio = width / height;\n this.#setMinDims();\n const prevTranslationX = this.translationX;\n const prevTranslationY = this.translationY;\n this.translationX = -bbox[0];\n this.translationY = -bbox[1];\n this.#setCanvasDims();\n this.#redraw();\n this.#realWidth = width;\n this.#realHeight = height;\n this.setDims(width, height);\n const unscaledPadding = firstTime ? padding / this.scaleFactor / 2 : 0;\n this.translate(prevTranslationX - this.translationX - unscaledPadding, prevTranslationY - this.translationY - unscaledPadding);\n }\n #setMinDims() {\n const {\n style\n } = this.div;\n if (this.#aspectRatio >= 1) {\n style.minHeight = `${RESIZER_SIZE}px`;\n style.minWidth = `${Math.round(this.#aspectRatio * RESIZER_SIZE)}px`;\n } else {\n style.minWidth = `${RESIZER_SIZE}px`;\n style.minHeight = `${Math.round(RESIZER_SIZE / this.#aspectRatio)}px`;\n }\n }\n static deserialize(data, parent, uiManager) {\n const editor = super.deserialize(data, parent, uiManager);\n editor.thickness = data.thickness;\n editor.color = _util.Util.makeHexColor(...data.color);\n editor.opacity = data.opacity;\n const [pageWidth, pageHeight] = editor.pageDimensions;\n const width = editor.width * pageWidth;\n const height = editor.height * pageHeight;\n const scaleFactor = editor.parentScale;\n const padding = data.thickness / 2;\n editor.#aspectRatio = width / height;\n editor.#disableEditing = true;\n editor.#realWidth = Math.round(width);\n editor.#realHeight = Math.round(height);\n for (const {\n bezier\n } of data.paths) {\n const path = [];\n editor.paths.push(path);\n let p0 = scaleFactor * (bezier[0] - padding);\n let p1 = scaleFactor * (height - bezier[1] - padding);\n for (let i = 2, ii = bezier.length; i < ii; i += 6) {\n const p10 = scaleFactor * (bezier[i] - padding);\n const p11 = scaleFactor * (height - bezier[i + 1] - padding);\n const p20 = scaleFactor * (bezier[i + 2] - padding);\n const p21 = scaleFactor * (height - bezier[i + 3] - padding);\n const p30 = scaleFactor * (bezier[i + 4] - padding);\n const p31 = scaleFactor * (height - bezier[i + 5] - padding);\n path.push([[p0, p1], [p10, p11], [p20, p21], [p30, p31]]);\n p0 = p30;\n p1 = p31;\n }\n const path2D = this.#buildPath2D(path);\n editor.bezierPath2D.push(path2D);\n }\n const bbox = editor.#getBbox();\n editor.#baseWidth = Math.max(RESIZER_SIZE, bbox[2] - bbox[0]);\n editor.#baseHeight = Math.max(RESIZER_SIZE, bbox[3] - bbox[1]);\n editor.#setScaleFactor(width, height);\n return editor;\n }\n serialize() {\n if (this.isEmpty()) {\n return null;\n }\n const rect = this.getRect(0, 0);\n const height = this.rotation % 180 === 0 ? rect[3] - rect[1] : rect[2] - rect[0];\n const color = _editor.AnnotationEditor._colorManager.convert(this.ctx.strokeStyle);\n return {\n annotationType: _util.AnnotationEditorType.INK,\n color,\n thickness: this.thickness,\n opacity: this.opacity,\n paths: this.#serializePaths(this.scaleFactor / this.parentScale, this.translationX, this.translationY, height),\n pageIndex: this.pageIndex,\n rect,\n rotation: this.rotation\n };\n }\n}\nexports.InkEditor = InkEditor;\n\n/***/ }),\n/* 30 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.fitCurve = void 0;\nconst fitCurve = __w_pdfjs_require__(31);\nexports.fitCurve = fitCurve;\n\n/***/ }),\n/* 31 */\n/***/ ((module) => {\n\n\n\nfunction fitCurve(points, maxError, progressCallback) {\n if (!Array.isArray(points)) {\n throw new TypeError(\"First argument should be an array\");\n }\n points.forEach(point => {\n if (!Array.isArray(point) || point.some(item => typeof item !== 'number') || point.length !== points[0].length) {\n throw Error(\"Each point should be an array of numbers. Each point should have the same amount of numbers.\");\n }\n });\n points = points.filter((point, i) => i === 0 || !point.every((val, j) => val === points[i - 1][j]));\n if (points.length < 2) {\n return [];\n }\n const len = points.length;\n const leftTangent = createTangent(points[1], points[0]);\n const rightTangent = createTangent(points[len - 2], points[len - 1]);\n return fitCubic(points, leftTangent, rightTangent, maxError, progressCallback);\n}\nfunction fitCubic(points, leftTangent, rightTangent, error, progressCallback) {\n const MaxIterations = 20;\n var bezCurve, u, uPrime, maxError, prevErr, splitPoint, prevSplit, centerVector, toCenterTangent, fromCenterTangent, beziers, dist, i;\n if (points.length === 2) {\n dist = maths.vectorLen(maths.subtract(points[0], points[1])) / 3.0;\n bezCurve = [points[0], maths.addArrays(points[0], maths.mulItems(leftTangent, dist)), maths.addArrays(points[1], maths.mulItems(rightTangent, dist)), points[1]];\n return [bezCurve];\n }\n u = chordLengthParameterize(points);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, u, leftTangent, rightTangent, progressCallback);\n if (maxError === 0 || maxError < error) {\n return [bezCurve];\n }\n if (maxError < error * error) {\n uPrime = u;\n prevErr = maxError;\n prevSplit = splitPoint;\n for (i = 0; i < MaxIterations; i++) {\n uPrime = reparameterize(bezCurve, points, uPrime);\n [bezCurve, maxError, splitPoint] = generateAndReport(points, u, uPrime, leftTangent, rightTangent, progressCallback);\n if (maxError < error) {\n return [bezCurve];\n } else if (splitPoint === prevSplit) {\n let errChange = maxError / prevErr;\n if (errChange > .9999 && errChange < 1.0001) {\n break;\n }\n }\n prevErr = maxError;\n prevSplit = splitPoint;\n }\n }\n beziers = [];\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint + 1]);\n if (centerVector.every(val => val === 0)) {\n centerVector = maths.subtract(points[splitPoint - 1], points[splitPoint]);\n [centerVector[0], centerVector[1]] = [-centerVector[1], centerVector[0]];\n }\n toCenterTangent = maths.normalize(centerVector);\n fromCenterTangent = maths.mulItems(toCenterTangent, -1);\n beziers = beziers.concat(fitCubic(points.slice(0, splitPoint + 1), leftTangent, toCenterTangent, error, progressCallback));\n beziers = beziers.concat(fitCubic(points.slice(splitPoint), fromCenterTangent, rightTangent, error, progressCallback));\n return beziers;\n}\n;\nfunction generateAndReport(points, paramsOrig, paramsPrime, leftTangent, rightTangent, progressCallback) {\n var bezCurve, maxError, splitPoint;\n bezCurve = generateBezier(points, paramsPrime, leftTangent, rightTangent, progressCallback);\n [maxError, splitPoint] = computeMaxError(points, bezCurve, paramsOrig);\n if (progressCallback) {\n progressCallback({\n bez: bezCurve,\n points: points,\n params: paramsOrig,\n maxErr: maxError,\n maxPoint: splitPoint\n });\n }\n return [bezCurve, maxError, splitPoint];\n}\nfunction generateBezier(points, parameters, leftTangent, rightTangent) {\n var bezCurve,\n A,\n a,\n C,\n X,\n det_C0_C1,\n det_C0_X,\n det_X_C1,\n alpha_l,\n alpha_r,\n epsilon,\n segLength,\n i,\n len,\n tmp,\n u,\n ux,\n firstPoint = points[0],\n lastPoint = points[points.length - 1];\n bezCurve = [firstPoint, null, null, lastPoint];\n A = maths.zeros_Xx2x2(parameters.length);\n for (i = 0, len = parameters.length; i < len; i++) {\n u = parameters[i];\n ux = 1 - u;\n a = A[i];\n a[0] = maths.mulItems(leftTangent, 3 * u * (ux * ux));\n a[1] = maths.mulItems(rightTangent, 3 * ux * (u * u));\n }\n C = [[0, 0], [0, 0]];\n X = [0, 0];\n for (i = 0, len = points.length; i < len; i++) {\n u = parameters[i];\n a = A[i];\n C[0][0] += maths.dot(a[0], a[0]);\n C[0][1] += maths.dot(a[0], a[1]);\n C[1][0] += maths.dot(a[0], a[1]);\n C[1][1] += maths.dot(a[1], a[1]);\n tmp = maths.subtract(points[i], bezier.q([firstPoint, firstPoint, lastPoint, lastPoint], u));\n X[0] += maths.dot(a[0], tmp);\n X[1] += maths.dot(a[1], tmp);\n }\n det_C0_C1 = C[0][0] * C[1][1] - C[1][0] * C[0][1];\n det_C0_X = C[0][0] * X[1] - C[1][0] * X[0];\n det_X_C1 = X[0] * C[1][1] - X[1] * C[0][1];\n alpha_l = det_C0_C1 === 0 ? 0 : det_X_C1 / det_C0_C1;\n alpha_r = det_C0_C1 === 0 ? 0 : det_C0_X / det_C0_C1;\n segLength = maths.vectorLen(maths.subtract(firstPoint, lastPoint));\n epsilon = 1.0e-6 * segLength;\n if (alpha_l < epsilon || alpha_r < epsilon) {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, segLength / 3.0));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, segLength / 3.0));\n } else {\n bezCurve[1] = maths.addArrays(firstPoint, maths.mulItems(leftTangent, alpha_l));\n bezCurve[2] = maths.addArrays(lastPoint, maths.mulItems(rightTangent, alpha_r));\n }\n return bezCurve;\n}\n;\nfunction reparameterize(bezier, points, parameters) {\n return parameters.map((p, i) => newtonRaphsonRootFind(bezier, points[i], p));\n}\n;\nfunction newtonRaphsonRootFind(bez, point, u) {\n var d = maths.subtract(bezier.q(bez, u), point),\n qprime = bezier.qprime(bez, u),\n numerator = maths.mulMatrix(d, qprime),\n denominator = maths.sum(maths.squareItems(qprime)) + 2 * maths.mulMatrix(d, bezier.qprimeprime(bez, u));\n if (denominator === 0) {\n return u;\n } else {\n return u - numerator / denominator;\n }\n}\n;\nfunction chordLengthParameterize(points) {\n var u = [],\n currU,\n prevU,\n prevP;\n points.forEach((p, i) => {\n currU = i ? prevU + maths.vectorLen(maths.subtract(p, prevP)) : 0;\n u.push(currU);\n prevU = currU;\n prevP = p;\n });\n u = u.map(x => x / prevU);\n return u;\n}\n;\nfunction computeMaxError(points, bez, parameters) {\n var dist, maxDist, splitPoint, v, i, count, point, t;\n maxDist = 0;\n splitPoint = Math.floor(points.length / 2);\n const t_distMap = mapTtoRelativeDistances(bez, 10);\n for (i = 0, count = points.length; i < count; i++) {\n point = points[i];\n t = find_t(bez, parameters[i], t_distMap, 10);\n v = maths.subtract(bezier.q(bez, t), point);\n dist = v[0] * v[0] + v[1] * v[1];\n if (dist > maxDist) {\n maxDist = dist;\n splitPoint = i;\n }\n }\n return [maxDist, splitPoint];\n}\n;\nvar mapTtoRelativeDistances = function (bez, B_parts) {\n var B_t_curr;\n var B_t_dist = [0];\n var B_t_prev = bez[0];\n var sumLen = 0;\n for (var i = 1; i <= B_parts; i++) {\n B_t_curr = bezier.q(bez, i / B_parts);\n sumLen += maths.vectorLen(maths.subtract(B_t_curr, B_t_prev));\n B_t_dist.push(sumLen);\n B_t_prev = B_t_curr;\n }\n B_t_dist = B_t_dist.map(x => x / sumLen);\n return B_t_dist;\n};\nfunction find_t(bez, param, t_distMap, B_parts) {\n if (param < 0) {\n return 0;\n }\n if (param > 1) {\n return 1;\n }\n var lenMax, lenMin, tMax, tMin, t;\n for (var i = 1; i <= B_parts; i++) {\n if (param <= t_distMap[i]) {\n tMin = (i - 1) / B_parts;\n tMax = i / B_parts;\n lenMin = t_distMap[i - 1];\n lenMax = t_distMap[i];\n t = (param - lenMin) / (lenMax - lenMin) * (tMax - tMin) + tMin;\n break;\n }\n }\n return t;\n}\nfunction createTangent(pointA, pointB) {\n return maths.normalize(maths.subtract(pointA, pointB));\n}\nclass maths {\n static zeros_Xx2x2(x) {\n var zs = [];\n while (x--) {\n zs.push([0, 0]);\n }\n return zs;\n }\n static mulItems(items, multiplier) {\n return items.map(x => x * multiplier);\n }\n static mulMatrix(m1, m2) {\n return m1.reduce((sum, x1, i) => sum + x1 * m2[i], 0);\n }\n static subtract(arr1, arr2) {\n return arr1.map((x1, i) => x1 - arr2[i]);\n }\n static addArrays(arr1, arr2) {\n return arr1.map((x1, i) => x1 + arr2[i]);\n }\n static addItems(items, addition) {\n return items.map(x => x + addition);\n }\n static sum(items) {\n return items.reduce((sum, x) => sum + x);\n }\n static dot(m1, m2) {\n return maths.mulMatrix(m1, m2);\n }\n static vectorLen(v) {\n return Math.hypot(...v);\n }\n static divItems(items, divisor) {\n return items.map(x => x / divisor);\n }\n static squareItems(items) {\n return items.map(x => x * x);\n }\n static normalize(v) {\n return this.divItems(v, this.vectorLen(v));\n }\n}\nclass bezier {\n static q(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(ctrlPoly[0], tx * tx * tx),\n pB = maths.mulItems(ctrlPoly[1], 3 * tx * tx * t),\n pC = maths.mulItems(ctrlPoly[2], 3 * tx * t * t),\n pD = maths.mulItems(ctrlPoly[3], t * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), maths.addArrays(pC, pD));\n }\n static qprime(ctrlPoly, t) {\n var tx = 1.0 - t;\n var pA = maths.mulItems(maths.subtract(ctrlPoly[1], ctrlPoly[0]), 3 * tx * tx),\n pB = maths.mulItems(maths.subtract(ctrlPoly[2], ctrlPoly[1]), 6 * tx * t),\n pC = maths.mulItems(maths.subtract(ctrlPoly[3], ctrlPoly[2]), 3 * t * t);\n return maths.addArrays(maths.addArrays(pA, pB), pC);\n }\n static qprimeprime(ctrlPoly, t) {\n return maths.addArrays(maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[2], maths.mulItems(ctrlPoly[1], 2)), ctrlPoly[0]), 6 * (1.0 - t)), maths.mulItems(maths.addArrays(maths.subtract(ctrlPoly[3], maths.mulItems(ctrlPoly[2], 2)), ctrlPoly[1]), 6 * t));\n }\n}\nmodule.exports = fitCurve;\nmodule.exports.fitCubic = fitCubic;\nmodule.exports.createTangent = createTangent;\n\n/***/ }),\n/* 32 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AnnotationLayer = void 0;\nvar _util = __w_pdfjs_require__(1);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _annotation_storage = __w_pdfjs_require__(3);\nvar _scripting_utils = __w_pdfjs_require__(33);\nvar _xfa_layer = __w_pdfjs_require__(34);\nconst DEFAULT_TAB_INDEX = 1000;\nconst DEFAULT_FONT_SIZE = 9;\nconst GetElementsByNameSet = new WeakSet();\nfunction getRectDims(rect) {\n return {\n width: rect[2] - rect[0],\n height: rect[3] - rect[1]\n };\n}\nclass AnnotationElementFactory {\n static create(parameters) {\n const subtype = parameters.data.annotationType;\n switch (subtype) {\n case _util.AnnotationType.LINK:\n return new LinkAnnotationElement(parameters);\n case _util.AnnotationType.TEXT:\n return new TextAnnotationElement(parameters);\n case _util.AnnotationType.WIDGET:\n const fieldType = parameters.data.fieldType;\n switch (fieldType) {\n case \"Tx\":\n return new TextWidgetAnnotationElement(parameters);\n case \"Btn\":\n if (parameters.data.radioButton) {\n return new RadioButtonWidgetAnnotationElement(parameters);\n } else if (parameters.data.checkBox) {\n return new CheckboxWidgetAnnotationElement(parameters);\n }\n return new PushButtonWidgetAnnotationElement(parameters);\n case \"Ch\":\n return new ChoiceWidgetAnnotationElement(parameters);\n }\n return new WidgetAnnotationElement(parameters);\n case _util.AnnotationType.POPUP:\n return new PopupAnnotationElement(parameters);\n case _util.AnnotationType.FREETEXT:\n return new FreeTextAnnotationElement(parameters);\n case _util.AnnotationType.LINE:\n return new LineAnnotationElement(parameters);\n case _util.AnnotationType.SQUARE:\n return new SquareAnnotationElement(parameters);\n case _util.AnnotationType.CIRCLE:\n return new CircleAnnotationElement(parameters);\n case _util.AnnotationType.POLYLINE:\n return new PolylineAnnotationElement(parameters);\n case _util.AnnotationType.CARET:\n return new CaretAnnotationElement(parameters);\n case _util.AnnotationType.INK:\n return new InkAnnotationElement(parameters);\n case _util.AnnotationType.POLYGON:\n return new PolygonAnnotationElement(parameters);\n case _util.AnnotationType.HIGHLIGHT:\n return new HighlightAnnotationElement(parameters);\n case _util.AnnotationType.UNDERLINE:\n return new UnderlineAnnotationElement(parameters);\n case _util.AnnotationType.SQUIGGLY:\n return new SquigglyAnnotationElement(parameters);\n case _util.AnnotationType.STRIKEOUT:\n return new StrikeOutAnnotationElement(parameters);\n case _util.AnnotationType.STAMP:\n return new StampAnnotationElement(parameters);\n case _util.AnnotationType.FILEATTACHMENT:\n return new FileAttachmentAnnotationElement(parameters);\n default:\n return new AnnotationElement(parameters);\n }\n }\n}\nclass AnnotationElement {\n constructor(parameters, {\n isRenderable = false,\n ignoreBorder = false,\n createQuadrilaterals = false\n } = {}) {\n this.isRenderable = isRenderable;\n this.data = parameters.data;\n this.layer = parameters.layer;\n this.page = parameters.page;\n this.viewport = parameters.viewport;\n this.linkService = parameters.linkService;\n this.downloadManager = parameters.downloadManager;\n this.imageResourcesPath = parameters.imageResourcesPath;\n this.renderForms = parameters.renderForms;\n this.svgFactory = parameters.svgFactory;\n this.annotationStorage = parameters.annotationStorage;\n this.enableScripting = parameters.enableScripting;\n this.hasJSActions = parameters.hasJSActions;\n this._fieldObjects = parameters.fieldObjects;\n if (isRenderable) {\n this.container = this._createContainer(ignoreBorder);\n }\n if (createQuadrilaterals) {\n this.quadrilaterals = this._createQuadrilaterals(ignoreBorder);\n }\n }\n _createContainer(ignoreBorder = false) {\n const {\n data,\n page,\n viewport\n } = this;\n const container = document.createElement(\"section\");\n container.setAttribute(\"data-annotation-id\", data.id);\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const rect = _util.Util.normalizeRect([data.rect[0], page.view[3] - data.rect[1] + page.view[1], data.rect[2], page.view[3] - data.rect[3] + page.view[1]]);\n if (!ignoreBorder && data.borderStyle.width > 0) {\n container.style.borderWidth = `${data.borderStyle.width}px`;\n const horizontalRadius = data.borderStyle.horizontalCornerRadius;\n const verticalRadius = data.borderStyle.verticalCornerRadius;\n if (horizontalRadius > 0 || verticalRadius > 0) {\n const radius = `calc(${horizontalRadius}px * var(--scale-factor)) / calc(${verticalRadius}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n } else if (this instanceof RadioButtonWidgetAnnotationElement) {\n const radius = `calc(${width}px * var(--scale-factor)) / calc(${height}px * var(--scale-factor))`;\n container.style.borderRadius = radius;\n }\n switch (data.borderStyle.style) {\n case _util.AnnotationBorderStyleType.SOLID:\n container.style.borderStyle = \"solid\";\n break;\n case _util.AnnotationBorderStyleType.DASHED:\n container.style.borderStyle = \"dashed\";\n break;\n case _util.AnnotationBorderStyleType.BEVELED:\n (0, _util.warn)(\"Unimplemented border style: beveled\");\n break;\n case _util.AnnotationBorderStyleType.INSET:\n (0, _util.warn)(\"Unimplemented border style: inset\");\n break;\n case _util.AnnotationBorderStyleType.UNDERLINE:\n container.style.borderBottomStyle = \"solid\";\n break;\n default:\n break;\n }\n const borderColor = data.borderColor || null;\n if (borderColor) {\n container.style.borderColor = _util.Util.makeHexColor(borderColor[0] | 0, borderColor[1] | 0, borderColor[2] | 0);\n } else {\n container.style.borderWidth = 0;\n }\n }\n container.style.left = `${100 * (rect[0] - pageX) / pageWidth}%`;\n container.style.top = `${100 * (rect[1] - pageY) / pageHeight}%`;\n const {\n rotation\n } = data;\n if (data.hasOwnCanvas || rotation === 0) {\n container.style.width = `${100 * width / pageWidth}%`;\n container.style.height = `${100 * height / pageHeight}%`;\n } else {\n this.setRotation(rotation, container);\n }\n return container;\n }\n setRotation(angle, container = this.container) {\n const {\n pageWidth,\n pageHeight\n } = this.viewport.rawDims;\n const {\n width,\n height\n } = getRectDims(this.data.rect);\n let elementWidth, elementHeight;\n if (angle % 180 === 0) {\n elementWidth = 100 * width / pageWidth;\n elementHeight = 100 * height / pageHeight;\n } else {\n elementWidth = 100 * height / pageWidth;\n elementHeight = 100 * width / pageHeight;\n }\n container.style.width = `${elementWidth}%`;\n container.style.height = `${elementHeight}%`;\n container.setAttribute(\"data-main-rotation\", (360 - angle) % 360);\n }\n get _commonActions() {\n const setColor = (jsName, styleName, event) => {\n const color = event.detail[jsName];\n event.target.style[styleName] = _scripting_utils.ColorConverters[`${color[0]}_HTML`](color.slice(1));\n };\n return (0, _util.shadow)(this, \"_commonActions\", {\n display: event => {\n const hidden = event.detail.display % 2 === 1;\n this.container.style.visibility = hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden,\n print: event.detail.display === 0 || event.detail.display === 3\n });\n },\n print: event => {\n this.annotationStorage.setValue(this.data.id, {\n print: event.detail.print\n });\n },\n hidden: event => {\n this.container.style.visibility = event.detail.hidden ? \"hidden\" : \"visible\";\n this.annotationStorage.setValue(this.data.id, {\n hidden: event.detail.hidden\n });\n },\n focus: event => {\n setTimeout(() => event.target.focus({\n preventScroll: false\n }), 0);\n },\n userName: event => {\n event.target.title = event.detail.userName;\n },\n readonly: event => {\n if (event.detail.readonly) {\n event.target.setAttribute(\"readonly\", \"\");\n } else {\n event.target.removeAttribute(\"readonly\");\n }\n },\n required: event => {\n this._setRequired(event.target, event.detail.required);\n },\n bgColor: event => {\n setColor(\"bgColor\", \"backgroundColor\", event);\n },\n fillColor: event => {\n setColor(\"fillColor\", \"backgroundColor\", event);\n },\n fgColor: event => {\n setColor(\"fgColor\", \"color\", event);\n },\n textColor: event => {\n setColor(\"textColor\", \"color\", event);\n },\n borderColor: event => {\n setColor(\"borderColor\", \"borderColor\", event);\n },\n strokeColor: event => {\n setColor(\"strokeColor\", \"borderColor\", event);\n },\n rotation: event => {\n const angle = event.detail.rotation;\n this.setRotation(angle);\n this.annotationStorage.setValue(this.data.id, {\n rotation: angle\n });\n }\n });\n }\n _dispatchEventFromSandbox(actions, jsEvent) {\n const commonActions = this._commonActions;\n for (const name of Object.keys(jsEvent.detail)) {\n const action = actions[name] || commonActions[name];\n action?.(jsEvent);\n }\n }\n _setDefaultPropertiesFromJS(element) {\n if (!this.enableScripting) {\n return;\n }\n const storedData = this.annotationStorage.getRawValue(this.data.id);\n if (!storedData) {\n return;\n }\n const commonActions = this._commonActions;\n for (const [actionName, detail] of Object.entries(storedData)) {\n const action = commonActions[actionName];\n if (action) {\n const eventProxy = {\n detail: {\n [actionName]: detail\n },\n target: element\n };\n action(eventProxy);\n delete storedData[actionName];\n }\n }\n }\n _createQuadrilaterals(ignoreBorder = false) {\n if (!this.data.quadPoints) {\n return null;\n }\n const quadrilaterals = [];\n const savedRect = this.data.rect;\n for (const quadPoint of this.data.quadPoints) {\n this.data.rect = [quadPoint[2].x, quadPoint[2].y, quadPoint[1].x, quadPoint[1].y];\n quadrilaterals.push(this._createContainer(ignoreBorder));\n }\n this.data.rect = savedRect;\n return quadrilaterals;\n }\n _createPopup(trigger, data) {\n let container = this.container;\n if (this.quadrilaterals) {\n trigger = trigger || this.quadrilaterals;\n container = this.quadrilaterals[0];\n }\n if (!trigger) {\n trigger = document.createElement(\"div\");\n trigger.className = \"popupTriggerArea\";\n container.append(trigger);\n }\n const popupElement = new PopupElement({\n container,\n trigger,\n color: data.color,\n titleObj: data.titleObj,\n modificationDate: data.modificationDate,\n contentsObj: data.contentsObj,\n richText: data.richText,\n hideWrapper: true\n });\n const popup = popupElement.render();\n popup.style.left = \"100%\";\n container.append(popup);\n }\n _renderQuadrilaterals(className) {\n for (const quadrilateral of this.quadrilaterals) {\n quadrilateral.className = className;\n }\n return this.quadrilaterals;\n }\n render() {\n (0, _util.unreachable)(\"Abstract method `AnnotationElement.render` called\");\n }\n _getElementsByName(name, skipId = null) {\n const fields = [];\n if (this._fieldObjects) {\n const fieldObj = this._fieldObjects[name];\n if (fieldObj) {\n for (const {\n page,\n id,\n exportValues\n } of fieldObj) {\n if (page === -1) {\n continue;\n }\n if (id === skipId) {\n continue;\n }\n const exportValue = typeof exportValues === \"string\" ? exportValues : null;\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (domElement && !GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_getElementsByName - element not allowed: ${id}`);\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n }\n return fields;\n }\n for (const domElement of document.getElementsByName(name)) {\n const {\n exportValue\n } = domElement;\n const id = domElement.getAttribute(\"data-element-id\");\n if (id === skipId) {\n continue;\n }\n if (!GetElementsByNameSet.has(domElement)) {\n continue;\n }\n fields.push({\n id,\n exportValue,\n domElement\n });\n }\n return fields;\n }\n}\nclass LinkAnnotationElement extends AnnotationElement {\n constructor(parameters, options = null) {\n super(parameters, {\n isRenderable: true,\n ignoreBorder: !!options?.ignoreBorder,\n createQuadrilaterals: true\n });\n this.isTooltipOnly = parameters.data.isTooltipOnly;\n }\n render() {\n const {\n data,\n linkService\n } = this;\n const link = document.createElement(\"a\");\n link.setAttribute(\"data-element-id\", data.id);\n let isBound = false;\n if (data.url) {\n linkService.addLinkAttributes(link, data.url, data.newWindow);\n isBound = true;\n } else if (data.action) {\n this._bindNamedAction(link, data.action);\n isBound = true;\n } else if (data.attachment) {\n this._bindAttachment(link, data.attachment);\n isBound = true;\n } else if (data.setOCGState) {\n this.#bindSetOCGState(link, data.setOCGState);\n isBound = true;\n } else if (data.dest) {\n this._bindLink(link, data.dest);\n isBound = true;\n } else {\n if (data.actions && (data.actions.Action || data.actions[\"Mouse Up\"] || data.actions[\"Mouse Down\"]) && this.enableScripting && this.hasJSActions) {\n this._bindJSAction(link, data);\n isBound = true;\n }\n if (data.resetForm) {\n this._bindResetFormAction(link, data.resetForm);\n isBound = true;\n } else if (this.isTooltipOnly && !isBound) {\n this._bindLink(link, \"\");\n isBound = true;\n }\n }\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"linkAnnotation\").map((quadrilateral, index) => {\n const linkElement = index === 0 ? link : link.cloneNode();\n quadrilateral.append(linkElement);\n return quadrilateral;\n });\n }\n this.container.className = \"linkAnnotation\";\n if (isBound) {\n this.container.append(link);\n }\n return this.container;\n }\n #setInternalLink() {\n this.container.setAttribute(\"data-internal-link\", \"\");\n }\n _bindLink(link, destination) {\n link.href = this.linkService.getDestinationHash(destination);\n link.onclick = () => {\n if (destination) {\n this.linkService.goToDestination(destination);\n }\n return false;\n };\n if (destination || destination === \"\") {\n this.#setInternalLink();\n }\n }\n _bindNamedAction(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeNamedAction(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindAttachment(link, attachment) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.downloadManager?.openOrDownloadData(this.container, attachment.content, attachment.filename);\n return false;\n };\n this.#setInternalLink();\n }\n #bindSetOCGState(link, action) {\n link.href = this.linkService.getAnchorUrl(\"\");\n link.onclick = () => {\n this.linkService.executeSetOCGState(action);\n return false;\n };\n this.#setInternalLink();\n }\n _bindJSAction(link, data) {\n link.href = this.linkService.getAnchorUrl(\"\");\n const map = new Map([[\"Action\", \"onclick\"], [\"Mouse Up\", \"onmouseup\"], [\"Mouse Down\", \"onmousedown\"]]);\n for (const name of Object.keys(data.actions)) {\n const jsName = map.get(name);\n if (!jsName) {\n continue;\n }\n link[jsName] = () => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: data.id,\n name\n }\n });\n return false;\n };\n }\n if (!link.onclick) {\n link.onclick = () => false;\n }\n this.#setInternalLink();\n }\n _bindResetFormAction(link, resetForm) {\n const otherClickAction = link.onclick;\n if (!otherClickAction) {\n link.href = this.linkService.getAnchorUrl(\"\");\n }\n this.#setInternalLink();\n if (!this._fieldObjects) {\n (0, _util.warn)(`_bindResetFormAction - \"resetForm\" action not supported, ` + \"ensure that the `fieldObjects` parameter is provided.\");\n if (!otherClickAction) {\n link.onclick = () => false;\n }\n return;\n }\n link.onclick = () => {\n otherClickAction?.();\n const {\n fields: resetFormFields,\n refs: resetFormRefs,\n include\n } = resetForm;\n const allFields = [];\n if (resetFormFields.length !== 0 || resetFormRefs.length !== 0) {\n const fieldIds = new Set(resetFormRefs);\n for (const fieldName of resetFormFields) {\n const fields = this._fieldObjects[fieldName] || [];\n for (const {\n id\n } of fields) {\n fieldIds.add(id);\n }\n }\n for (const fields of Object.values(this._fieldObjects)) {\n for (const field of fields) {\n if (fieldIds.has(field.id) === include) {\n allFields.push(field);\n }\n }\n }\n } else {\n for (const fields of Object.values(this._fieldObjects)) {\n allFields.push(...fields);\n }\n }\n const storage = this.annotationStorage;\n const allIds = [];\n for (const field of allFields) {\n const {\n id\n } = field;\n allIds.push(id);\n switch (field.type) {\n case \"text\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"checkbox\":\n case \"radiobutton\":\n {\n const value = field.defaultValue === field.exportValues;\n storage.setValue(id, {\n value\n });\n break;\n }\n case \"combobox\":\n case \"listbox\":\n {\n const value = field.defaultValue || \"\";\n storage.setValue(id, {\n value\n });\n break;\n }\n default:\n continue;\n }\n const domElement = document.querySelector(`[data-element-id=\"${id}\"]`);\n if (!domElement) {\n continue;\n } else if (!GetElementsByNameSet.has(domElement)) {\n (0, _util.warn)(`_bindResetFormAction - element not allowed: ${id}`);\n continue;\n }\n domElement.dispatchEvent(new Event(\"resetform\"));\n }\n if (this.enableScripting) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: \"app\",\n ids: allIds,\n name: \"ResetForm\"\n }\n });\n }\n return false;\n };\n }\n}\nclass TextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable\n });\n }\n render() {\n this.container.className = \"textAnnotation\";\n const image = document.createElement(\"img\");\n image.src = this.imageResourcesPath + \"annotation-\" + this.data.name.toLowerCase() + \".svg\";\n image.alt = \"[{{type}} Annotation]\";\n image.dataset.l10nId = \"text_annotation_type\";\n image.dataset.l10nArgs = JSON.stringify({\n type: this.data.name\n });\n if (!this.data.hasPopup) {\n this._createPopup(image, this.data);\n }\n this.container.append(image);\n return this.container;\n }\n}\nclass WidgetAnnotationElement extends AnnotationElement {\n render() {\n if (this.data.alternativeText) {\n this.container.title = this.data.alternativeText;\n }\n return this.container;\n }\n _getKeyModifier(event) {\n const {\n isWin,\n isMac\n } = _util.FeatureTest.platform;\n return isWin && event.ctrlKey || isMac && event.metaKey;\n }\n _setEventListener(element, baseName, eventName, valueGetter) {\n if (baseName.includes(\"mouse\")) {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event),\n shift: event.shiftKey,\n modifier: this._getKeyModifier(event)\n }\n });\n });\n } else {\n element.addEventListener(baseName, event => {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id: this.data.id,\n name: eventName,\n value: valueGetter(event)\n }\n });\n });\n }\n }\n _setEventListeners(element, names, getter) {\n for (const [baseName, eventName] of names) {\n if (eventName === \"Action\" || this.data.actions?.[eventName]) {\n this._setEventListener(element, baseName, eventName, getter);\n }\n }\n }\n _setBackgroundColor(element) {\n const color = this.data.backgroundColor || null;\n element.style.backgroundColor = color === null ? \"transparent\" : _util.Util.makeHexColor(color[0], color[1], color[2]);\n }\n _setTextStyle(element) {\n const TEXT_ALIGNMENT = [\"left\", \"center\", \"right\"];\n const {\n fontColor\n } = this.data.defaultAppearanceData;\n const fontSize = this.data.defaultAppearanceData.fontSize || DEFAULT_FONT_SIZE;\n const style = element.style;\n let computedFontSize;\n const BORDER_SIZE = 2;\n const roundToOneDecimal = x => Math.round(10 * x) / 10;\n if (this.data.multiLine) {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n const numberOfLines = Math.round(height / (_util.LINE_FACTOR * fontSize)) || 1;\n const lineHeight = height / numberOfLines;\n computedFontSize = Math.min(fontSize, roundToOneDecimal(lineHeight / _util.LINE_FACTOR));\n } else {\n const height = Math.abs(this.data.rect[3] - this.data.rect[1] - BORDER_SIZE);\n computedFontSize = Math.min(fontSize, roundToOneDecimal(height / _util.LINE_FACTOR));\n }\n style.fontSize = `calc(${computedFontSize}px * var(--scale-factor))`;\n style.color = _util.Util.makeHexColor(fontColor[0], fontColor[1], fontColor[2]);\n if (this.data.textAlignment !== null) {\n style.textAlign = TEXT_ALIGNMENT[this.data.textAlignment];\n }\n }\n _setRequired(element, isRequired) {\n if (isRequired) {\n element.setAttribute(\"required\", true);\n } else {\n element.removeAttribute(\"required\");\n }\n element.setAttribute(\"aria-required\", isRequired);\n }\n}\nclass TextWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n const isRenderable = parameters.renderForms || !parameters.data.hasAppearance && !!parameters.data.fieldValue;\n super(parameters, {\n isRenderable\n });\n }\n setPropertyOnSiblings(base, key, value, keyInStorage) {\n const storage = this.annotationStorage;\n for (const element of this._getElementsByName(base.name, base.id)) {\n if (element.domElement) {\n element.domElement[key] = value;\n }\n storage.setValue(element.id, {\n [keyInStorage]: value\n });\n }\n }\n render() {\n const storage = this.annotationStorage;\n const id = this.data.id;\n this.container.className = \"textWidgetAnnotation\";\n let element = null;\n if (this.renderForms) {\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n let textContent = storedData.formattedValue || storedData.value || \"\";\n const maxLen = storage.getValue(id, {\n charLimit: this.data.maxLen\n }).charLimit;\n if (maxLen && textContent.length > maxLen) {\n textContent = textContent.slice(0, maxLen);\n }\n const elementData = {\n userValue: textContent,\n formattedValue: null,\n lastCommittedValue: null,\n commitKey: 1\n };\n if (this.data.multiLine) {\n element = document.createElement(\"textarea\");\n element.textContent = textContent;\n if (this.data.doNotScroll) {\n element.style.overflowY = \"hidden\";\n }\n } else {\n element = document.createElement(\"input\");\n element.type = \"text\";\n element.setAttribute(\"value\", textContent);\n if (this.data.doNotScroll) {\n element.style.overflowX = \"hidden\";\n }\n }\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = this.data.readOnly;\n element.name = this.data.fieldName;\n element.tabIndex = DEFAULT_TAB_INDEX;\n this._setRequired(element, this.data.required);\n if (maxLen) {\n element.maxLength = maxLen;\n }\n element.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n this.setPropertyOnSiblings(element, \"value\", event.target.value, \"value\");\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue ?? \"\";\n element.value = elementData.userValue = defaultValue;\n elementData.formattedValue = null;\n });\n let blurListener = event => {\n const {\n formattedValue\n } = elementData;\n if (formattedValue !== null && formattedValue !== undefined) {\n event.target.value = formattedValue;\n }\n event.target.scrollLeft = 0;\n };\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"focus\", event => {\n const {\n target\n } = event;\n if (elementData.userValue) {\n target.value = elementData.userValue;\n }\n elementData.lastCommittedValue = target.value;\n elementData.commitKey = 1;\n });\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n elementData.userValue = event.detail.value ?? \"\";\n storage.setValue(id, {\n value: elementData.userValue.toString()\n });\n event.target.value = elementData.userValue;\n },\n formattedValue(event) {\n const {\n formattedValue\n } = event.detail;\n elementData.formattedValue = formattedValue;\n if (formattedValue !== null && formattedValue !== undefined && event.target !== document.activeElement) {\n event.target.value = formattedValue;\n }\n storage.setValue(id, {\n formattedValue\n });\n },\n selRange(event) {\n event.target.setSelectionRange(...event.detail.selRange);\n },\n charLimit: event => {\n const {\n charLimit\n } = event.detail;\n const {\n target\n } = event;\n if (charLimit === 0) {\n target.removeAttribute(\"maxLength\");\n return;\n }\n target.setAttribute(\"maxLength\", charLimit);\n let value = elementData.userValue;\n if (!value || value.length <= charLimit) {\n return;\n }\n value = value.slice(0, charLimit);\n target.value = elementData.userValue = value;\n storage.setValue(id, {\n value\n });\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: 1,\n selStart: target.selectionStart,\n selEnd: target.selectionEnd\n }\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n element.addEventListener(\"keydown\", event => {\n elementData.commitKey = 1;\n let commitKey = -1;\n if (event.key === \"Escape\") {\n commitKey = 0;\n } else if (event.key === \"Enter\" && !this.data.multiLine) {\n commitKey = 2;\n } else if (event.key === \"Tab\") {\n elementData.commitKey = 3;\n }\n if (commitKey === -1) {\n return;\n }\n const {\n value\n } = event.target;\n if (elementData.lastCommittedValue === value) {\n return;\n }\n elementData.lastCommittedValue = value;\n elementData.userValue = value;\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n });\n const _blurListener = blurListener;\n blurListener = null;\n element.addEventListener(\"blur\", event => {\n if (!event.relatedTarget) {\n return;\n }\n const {\n value\n } = event.target;\n elementData.userValue = value;\n if (elementData.lastCommittedValue !== value) {\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n willCommit: true,\n commitKey: elementData.commitKey,\n selStart: event.target.selectionStart,\n selEnd: event.target.selectionEnd\n }\n });\n }\n _blurListener(event);\n });\n if (this.data.actions?.Keystroke) {\n element.addEventListener(\"beforeinput\", event => {\n elementData.lastCommittedValue = null;\n const {\n data,\n target\n } = event;\n const {\n value,\n selectionStart,\n selectionEnd\n } = target;\n let selStart = selectionStart,\n selEnd = selectionEnd;\n switch (event.inputType) {\n case \"deleteWordBackward\":\n {\n const match = value.substring(0, selectionStart).match(/\\w*[^\\w]*$/);\n if (match) {\n selStart -= match[0].length;\n }\n break;\n }\n case \"deleteWordForward\":\n {\n const match = value.substring(selectionStart).match(/^[^\\w]*\\w*/);\n if (match) {\n selEnd += match[0].length;\n }\n break;\n }\n case \"deleteContentBackward\":\n if (selectionStart === selectionEnd) {\n selStart -= 1;\n }\n break;\n case \"deleteContentForward\":\n if (selectionStart === selectionEnd) {\n selEnd += 1;\n }\n break;\n }\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value,\n change: data || \"\",\n willCommit: false,\n selStart,\n selEnd\n }\n });\n });\n }\n this._setEventListeners(element, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.value);\n }\n if (blurListener) {\n element.addEventListener(\"blur\", blurListener);\n }\n if (this.data.comb) {\n const fieldWidth = this.data.rect[2] - this.data.rect[0];\n const combWidth = fieldWidth / maxLen;\n element.classList.add(\"comb\");\n element.style.letterSpacing = `calc(${combWidth}px * var(--scale-factor) - 1ch)`;\n }\n } else {\n element = document.createElement(\"div\");\n element.textContent = this.data.fieldValue;\n element.style.verticalAlign = \"middle\";\n element.style.display = \"table-cell\";\n }\n this._setTextStyle(element);\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass CheckboxWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.exportValue === data.fieldValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== \"Off\";\n storage.setValue(id, {\n value\n });\n }\n this.container.className = \"buttonWidgetAnnotation checkBox\";\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"checkbox\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.setAttribute(\"exportValue\", data.exportValue);\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const checkbox of this._getElementsByName(name, id)) {\n const curChecked = checked && checkbox.exportValue === data.exportValue;\n if (checkbox.domElement) {\n checkbox.domElement.checked = curChecked;\n }\n storage.setValue(checkbox.id, {\n value: curChecked\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue || \"Off\";\n event.target.checked = defaultValue === data.exportValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n event.target.checked = event.detail.value !== \"Off\";\n storage.setValue(id, {\n value: event.target.checked\n });\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass RadioButtonWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.className = \"buttonWidgetAnnotation radioButton\";\n const storage = this.annotationStorage;\n const data = this.data;\n const id = data.id;\n let value = storage.getValue(id, {\n value: data.fieldValue === data.buttonValue\n }).value;\n if (typeof value === \"string\") {\n value = value !== data.buttonValue;\n storage.setValue(id, {\n value\n });\n }\n const element = document.createElement(\"input\");\n GetElementsByNameSet.add(element);\n element.setAttribute(\"data-element-id\", id);\n element.disabled = data.readOnly;\n this._setRequired(element, this.data.required);\n element.type = \"radio\";\n element.name = data.fieldName;\n if (value) {\n element.setAttribute(\"checked\", true);\n }\n element.tabIndex = DEFAULT_TAB_INDEX;\n element.addEventListener(\"change\", event => {\n const {\n name,\n checked\n } = event.target;\n for (const radio of this._getElementsByName(name, id)) {\n storage.setValue(radio.id, {\n value: false\n });\n }\n storage.setValue(id, {\n value: checked\n });\n });\n element.addEventListener(\"resetform\", event => {\n const defaultValue = data.defaultFieldValue;\n event.target.checked = defaultValue !== null && defaultValue !== undefined && defaultValue === data.buttonValue;\n });\n if (this.enableScripting && this.hasJSActions) {\n const pdfButtonValue = data.buttonValue;\n element.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value: event => {\n const checked = pdfButtonValue === event.detail.value;\n for (const radio of this._getElementsByName(event.target.name)) {\n const curChecked = checked && radio.id === id;\n if (radio.domElement) {\n radio.domElement.checked = curChecked;\n }\n storage.setValue(radio.id, {\n value: curChecked\n });\n }\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n this._setEventListeners(element, [[\"change\", \"Validate\"], [\"change\", \"Action\"], [\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"]], event => event.target.checked);\n }\n this._setBackgroundColor(element);\n this._setDefaultPropertiesFromJS(element);\n this.container.append(element);\n return this.container;\n }\n}\nclass PushButtonWidgetAnnotationElement extends LinkAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n ignoreBorder: parameters.data.hasAppearance\n });\n }\n render() {\n const container = super.render();\n container.className = \"buttonWidgetAnnotation pushButton\";\n if (this.data.alternativeText) {\n container.title = this.data.alternativeText;\n }\n const linkElement = container.lastChild;\n if (this.enableScripting && this.hasJSActions && linkElement) {\n this._setDefaultPropertiesFromJS(linkElement);\n linkElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n this._dispatchEventFromSandbox({}, jsEvent);\n });\n }\n return container;\n }\n}\nclass ChoiceWidgetAnnotationElement extends WidgetAnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: parameters.renderForms\n });\n }\n render() {\n this.container.className = \"choiceWidgetAnnotation\";\n const storage = this.annotationStorage;\n const id = this.data.id;\n const storedData = storage.getValue(id, {\n value: this.data.fieldValue\n });\n const selectElement = document.createElement(\"select\");\n GetElementsByNameSet.add(selectElement);\n selectElement.setAttribute(\"data-element-id\", id);\n selectElement.disabled = this.data.readOnly;\n this._setRequired(selectElement, this.data.required);\n selectElement.name = this.data.fieldName;\n selectElement.tabIndex = DEFAULT_TAB_INDEX;\n let addAnEmptyEntry = this.data.combo && this.data.options.length > 0;\n if (!this.data.combo) {\n selectElement.size = this.data.options.length;\n if (this.data.multiSelect) {\n selectElement.multiple = true;\n }\n }\n selectElement.addEventListener(\"resetform\", event => {\n const defaultValue = this.data.defaultFieldValue;\n for (const option of selectElement.options) {\n option.selected = option.value === defaultValue;\n }\n });\n for (const option of this.data.options) {\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = option.displayValue;\n optionElement.value = option.exportValue;\n if (storedData.value.includes(option.exportValue)) {\n optionElement.setAttribute(\"selected\", true);\n addAnEmptyEntry = false;\n }\n selectElement.append(optionElement);\n }\n let removeEmptyEntry = null;\n if (addAnEmptyEntry) {\n const noneOptionElement = document.createElement(\"option\");\n noneOptionElement.value = \" \";\n noneOptionElement.setAttribute(\"hidden\", true);\n noneOptionElement.setAttribute(\"selected\", true);\n selectElement.prepend(noneOptionElement);\n removeEmptyEntry = () => {\n noneOptionElement.remove();\n selectElement.removeEventListener(\"input\", removeEmptyEntry);\n removeEmptyEntry = null;\n };\n selectElement.addEventListener(\"input\", removeEmptyEntry);\n }\n const getValue = isExport => {\n const name = isExport ? \"value\" : \"textContent\";\n const {\n options,\n multiple\n } = selectElement;\n if (!multiple) {\n return options.selectedIndex === -1 ? null : options[options.selectedIndex][name];\n }\n return Array.prototype.filter.call(options, option => option.selected).map(option => option[name]);\n };\n let selectedValues = getValue(false);\n const getItems = event => {\n const options = event.target.options;\n return Array.prototype.map.call(options, option => {\n return {\n displayValue: option.textContent,\n exportValue: option.value\n };\n });\n };\n if (this.enableScripting && this.hasJSActions) {\n selectElement.addEventListener(\"updatefromsandbox\", jsEvent => {\n const actions = {\n value(event) {\n removeEmptyEntry?.();\n const value = event.detail.value;\n const values = new Set(Array.isArray(value) ? value : [value]);\n for (const option of selectElement.options) {\n option.selected = values.has(option.value);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n multipleSelection(event) {\n selectElement.multiple = true;\n },\n remove(event) {\n const options = selectElement.options;\n const index = event.detail.remove;\n options[index].selected = false;\n selectElement.remove(index);\n if (options.length > 0) {\n const i = Array.prototype.findIndex.call(options, option => option.selected);\n if (i === -1) {\n options[0].selected = true;\n }\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n clear(event) {\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n storage.setValue(id, {\n value: null,\n items: []\n });\n selectedValues = getValue(false);\n },\n insert(event) {\n const {\n index,\n displayValue,\n exportValue\n } = event.detail.insert;\n const selectChild = selectElement.children[index];\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n if (selectChild) {\n selectChild.before(optionElement);\n } else {\n selectElement.append(optionElement);\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n items(event) {\n const {\n items\n } = event.detail;\n while (selectElement.length !== 0) {\n selectElement.remove(0);\n }\n for (const item of items) {\n const {\n displayValue,\n exportValue\n } = item;\n const optionElement = document.createElement(\"option\");\n optionElement.textContent = displayValue;\n optionElement.value = exportValue;\n selectElement.append(optionElement);\n }\n if (selectElement.options.length > 0) {\n selectElement.options[0].selected = true;\n }\n storage.setValue(id, {\n value: getValue(true),\n items: getItems(event)\n });\n selectedValues = getValue(false);\n },\n indices(event) {\n const indices = new Set(event.detail.indices);\n for (const option of event.target.options) {\n option.selected = indices.has(option.index);\n }\n storage.setValue(id, {\n value: getValue(true)\n });\n selectedValues = getValue(false);\n },\n editable(event) {\n event.target.disabled = !event.detail.editable;\n }\n };\n this._dispatchEventFromSandbox(actions, jsEvent);\n });\n selectElement.addEventListener(\"input\", event => {\n const exportValue = getValue(true);\n storage.setValue(id, {\n value: exportValue\n });\n event.preventDefault();\n this.linkService.eventBus?.dispatch(\"dispatcheventinsandbox\", {\n source: this,\n detail: {\n id,\n name: \"Keystroke\",\n value: selectedValues,\n changeEx: exportValue,\n willCommit: false,\n commitKey: 1,\n keyDown: false\n }\n });\n });\n this._setEventListeners(selectElement, [[\"focus\", \"Focus\"], [\"blur\", \"Blur\"], [\"mousedown\", \"Mouse Down\"], [\"mouseenter\", \"Mouse Enter\"], [\"mouseleave\", \"Mouse Exit\"], [\"mouseup\", \"Mouse Up\"], [\"input\", \"Action\"], [\"input\", \"Validate\"]], event => event.target.value);\n } else {\n selectElement.addEventListener(\"input\", function (event) {\n storage.setValue(id, {\n value: getValue(true)\n });\n });\n }\n if (this.data.combo) {\n this._setTextStyle(selectElement);\n } else {}\n this._setBackgroundColor(selectElement);\n this._setDefaultPropertiesFromJS(selectElement);\n this.container.append(selectElement);\n return this.container;\n }\n}\nclass PopupAnnotationElement extends AnnotationElement {\n static IGNORE_TYPES = new Set([\"Line\", \"Square\", \"Circle\", \"PolyLine\", \"Polygon\", \"Ink\"]);\n constructor(parameters) {\n const {\n data\n } = parameters;\n const isRenderable = !PopupAnnotationElement.IGNORE_TYPES.has(data.parentType) && !!(data.titleObj?.str || data.contentsObj?.str || data.richText?.str);\n super(parameters, {\n isRenderable\n });\n }\n render() {\n this.container.className = \"popupAnnotation\";\n const parentElements = this.layer.querySelectorAll(`[data-annotation-id=\"${this.data.parentId}\"]`);\n if (parentElements.length === 0) {\n return this.container;\n }\n const popup = new PopupElement({\n container: this.container,\n trigger: Array.from(parentElements),\n color: this.data.color,\n titleObj: this.data.titleObj,\n modificationDate: this.data.modificationDate,\n contentsObj: this.data.contentsObj,\n richText: this.data.richText\n });\n const page = this.page;\n const rect = _util.Util.normalizeRect([this.data.parentRect[0], page.view[3] - this.data.parentRect[1] + page.view[1], this.data.parentRect[2], page.view[3] - this.data.parentRect[3] + page.view[1]]);\n const popupLeft = rect[0] + this.data.parentRect[2] - this.data.parentRect[0];\n const popupTop = rect[1];\n const {\n pageWidth,\n pageHeight,\n pageX,\n pageY\n } = this.viewport.rawDims;\n this.container.style.left = `${100 * (popupLeft - pageX) / pageWidth}%`;\n this.container.style.top = `${100 * (popupTop - pageY) / pageHeight}%`;\n this.container.append(popup.render());\n return this.container;\n }\n}\nclass PopupElement {\n constructor(parameters) {\n this.container = parameters.container;\n this.trigger = parameters.trigger;\n this.color = parameters.color;\n this.titleObj = parameters.titleObj;\n this.modificationDate = parameters.modificationDate;\n this.contentsObj = parameters.contentsObj;\n this.richText = parameters.richText;\n this.hideWrapper = parameters.hideWrapper || false;\n this.pinned = false;\n }\n render() {\n const BACKGROUND_ENLIGHT = 0.7;\n const wrapper = document.createElement(\"div\");\n wrapper.className = \"popupWrapper\";\n this.hideElement = this.hideWrapper ? wrapper : this.container;\n this.hideElement.hidden = true;\n const popup = document.createElement(\"div\");\n popup.className = \"popup\";\n const color = this.color;\n if (color) {\n const r = BACKGROUND_ENLIGHT * (255 - color[0]) + color[0];\n const g = BACKGROUND_ENLIGHT * (255 - color[1]) + color[1];\n const b = BACKGROUND_ENLIGHT * (255 - color[2]) + color[2];\n popup.style.backgroundColor = _util.Util.makeHexColor(r | 0, g | 0, b | 0);\n }\n const title = document.createElement(\"h1\");\n title.dir = this.titleObj.dir;\n title.textContent = this.titleObj.str;\n popup.append(title);\n const dateObject = _display_utils.PDFDateString.toDateObject(this.modificationDate);\n if (dateObject) {\n const modificationDate = document.createElement(\"span\");\n modificationDate.className = \"popupDate\";\n modificationDate.textContent = \"{{date}}, {{time}}\";\n modificationDate.dataset.l10nId = \"annotation_date_string\";\n modificationDate.dataset.l10nArgs = JSON.stringify({\n date: dateObject.toLocaleDateString(),\n time: dateObject.toLocaleTimeString()\n });\n popup.append(modificationDate);\n }\n if (this.richText?.str && (!this.contentsObj?.str || this.contentsObj.str === this.richText.str)) {\n _xfa_layer.XfaLayer.render({\n xfaHtml: this.richText.html,\n intent: \"richText\",\n div: popup\n });\n popup.lastChild.className = \"richText popupContent\";\n } else {\n const contents = this._formatContents(this.contentsObj);\n popup.append(contents);\n }\n if (!Array.isArray(this.trigger)) {\n this.trigger = [this.trigger];\n }\n for (const element of this.trigger) {\n element.addEventListener(\"click\", this._toggle.bind(this));\n element.addEventListener(\"mouseover\", this._show.bind(this, false));\n element.addEventListener(\"mouseout\", this._hide.bind(this, false));\n }\n popup.addEventListener(\"click\", this._hide.bind(this, true));\n wrapper.append(popup);\n return wrapper;\n }\n _formatContents({\n str,\n dir\n }) {\n const p = document.createElement(\"p\");\n p.className = \"popupContent\";\n p.dir = dir;\n const lines = str.split(/(?:\\r\\n?|\\n)/);\n for (let i = 0, ii = lines.length; i < ii; ++i) {\n const line = lines[i];\n p.append(document.createTextNode(line));\n if (i < ii - 1) {\n p.append(document.createElement(\"br\"));\n }\n }\n return p;\n }\n _toggle() {\n if (this.pinned) {\n this._hide(true);\n } else {\n this._show(true);\n }\n }\n _show(pin = false) {\n if (pin) {\n this.pinned = true;\n }\n if (this.hideElement.hidden) {\n this.hideElement.hidden = false;\n this.container.style.zIndex = parseInt(this.container.style.zIndex) + 1000;\n }\n }\n _hide(unpin = true) {\n if (unpin) {\n this.pinned = false;\n }\n if (!this.hideElement.hidden && !this.pinned) {\n this.hideElement.hidden = true;\n this.container.style.zIndex = parseInt(this.container.style.zIndex) - 1000;\n }\n }\n}\nclass FreeTextAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.textContent = parameters.data.textContent;\n }\n render() {\n this.container.className = \"freeTextAnnotation\";\n if (this.textContent) {\n const content = document.createElement(\"div\");\n content.className = \"annotationTextContent\";\n content.setAttribute(\"role\", \"comment\");\n for (const line of this.textContent) {\n const lineSpan = document.createElement(\"span\");\n lineSpan.textContent = line;\n content.append(lineSpan);\n }\n this.container.append(content);\n }\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\nclass LineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n render() {\n this.container.className = \"lineAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const line = this.svgFactory.createElement(\"svg:line\");\n line.setAttribute(\"x1\", data.rect[2] - data.lineCoordinates[0]);\n line.setAttribute(\"y1\", data.rect[3] - data.lineCoordinates[1]);\n line.setAttribute(\"x2\", data.rect[2] - data.lineCoordinates[2]);\n line.setAttribute(\"y2\", data.rect[3] - data.lineCoordinates[3]);\n line.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n line.setAttribute(\"stroke\", \"transparent\");\n line.setAttribute(\"fill\", \"transparent\");\n svg.append(line);\n this.container.append(svg);\n this._createPopup(line, data);\n return this.container;\n }\n}\nclass SquareAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n render() {\n this.container.className = \"squareAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const square = this.svgFactory.createElement(\"svg:rect\");\n square.setAttribute(\"x\", borderWidth / 2);\n square.setAttribute(\"y\", borderWidth / 2);\n square.setAttribute(\"width\", width - borderWidth);\n square.setAttribute(\"height\", height - borderWidth);\n square.setAttribute(\"stroke-width\", borderWidth || 1);\n square.setAttribute(\"stroke\", \"transparent\");\n square.setAttribute(\"fill\", \"transparent\");\n svg.append(square);\n this.container.append(svg);\n this._createPopup(square, data);\n return this.container;\n }\n}\nclass CircleAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n render() {\n this.container.className = \"circleAnnotation\";\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n const borderWidth = data.borderStyle.width;\n const circle = this.svgFactory.createElement(\"svg:ellipse\");\n circle.setAttribute(\"cx\", width / 2);\n circle.setAttribute(\"cy\", height / 2);\n circle.setAttribute(\"rx\", width / 2 - borderWidth / 2);\n circle.setAttribute(\"ry\", height / 2 - borderWidth / 2);\n circle.setAttribute(\"stroke-width\", borderWidth || 1);\n circle.setAttribute(\"stroke\", \"transparent\");\n circle.setAttribute(\"fill\", \"transparent\");\n svg.append(circle);\n this.container.append(svg);\n this._createPopup(circle, data);\n return this.container;\n }\n}\nclass PolylineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"polylineAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n let points = [];\n for (const coordinate of data.vertices) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(x + \",\" + y);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n svg.append(polyline);\n this.container.append(svg);\n this._createPopup(polyline, data);\n return this.container;\n }\n}\nclass PolygonAnnotationElement extends PolylineAnnotationElement {\n constructor(parameters) {\n super(parameters);\n this.containerClassName = \"polygonAnnotation\";\n this.svgElementName = \"svg:polygon\";\n }\n}\nclass CaretAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n render() {\n this.container.className = \"caretAnnotation\";\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\nclass InkAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n this.containerClassName = \"inkAnnotation\";\n this.svgElementName = \"svg:polyline\";\n }\n render() {\n this.container.className = this.containerClassName;\n const data = this.data;\n const {\n width,\n height\n } = getRectDims(data.rect);\n const svg = this.svgFactory.create(width, height, true);\n for (const inkList of data.inkLists) {\n let points = [];\n for (const coordinate of inkList) {\n const x = coordinate.x - data.rect[0];\n const y = data.rect[3] - coordinate.y;\n points.push(`${x},${y}`);\n }\n points = points.join(\" \");\n const polyline = this.svgFactory.createElement(this.svgElementName);\n polyline.setAttribute(\"points\", points);\n polyline.setAttribute(\"stroke-width\", data.borderStyle.width || 1);\n polyline.setAttribute(\"stroke\", \"transparent\");\n polyline.setAttribute(\"fill\", \"transparent\");\n this._createPopup(polyline, data);\n svg.append(polyline);\n }\n this.container.append(svg);\n return this.container;\n }\n}\nclass HighlightAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"highlightAnnotation\");\n }\n this.container.className = \"highlightAnnotation\";\n return this.container;\n }\n}\nclass UnderlineAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"underlineAnnotation\");\n }\n this.container.className = \"underlineAnnotation\";\n return this.container;\n }\n}\nclass SquigglyAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"squigglyAnnotation\");\n }\n this.container.className = \"squigglyAnnotation\";\n return this.container;\n }\n}\nclass StrikeOutAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true,\n createQuadrilaterals: true\n });\n }\n render() {\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n if (this.quadrilaterals) {\n return this._renderQuadrilaterals(\"strikeoutAnnotation\");\n }\n this.container.className = \"strikeoutAnnotation\";\n return this.container;\n }\n}\nclass StampAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n const isRenderable = !!(parameters.data.hasPopup || parameters.data.titleObj?.str || parameters.data.contentsObj?.str || parameters.data.richText?.str);\n super(parameters, {\n isRenderable,\n ignoreBorder: true\n });\n }\n render() {\n this.container.className = \"stampAnnotation\";\n if (!this.data.hasPopup) {\n this._createPopup(null, this.data);\n }\n return this.container;\n }\n}\nclass FileAttachmentAnnotationElement extends AnnotationElement {\n constructor(parameters) {\n super(parameters, {\n isRenderable: true\n });\n const {\n filename,\n content\n } = this.data.file;\n this.filename = (0, _display_utils.getFilenameFromUrl)(filename, true);\n this.content = content;\n this.linkService.eventBus?.dispatch(\"fileattachmentannotation\", {\n source: this,\n filename,\n content\n });\n }\n render() {\n this.container.className = \"fileAttachmentAnnotation\";\n let trigger;\n if (this.data.hasAppearance) {\n trigger = document.createElement(\"div\");\n } else {\n trigger = document.createElement(\"img\");\n trigger.src = `${this.imageResourcesPath}annotation-${/paperclip/i.test(this.data.name) ? \"paperclip\" : \"pushpin\"}.svg`;\n }\n trigger.className = \"popupTriggerArea\";\n trigger.addEventListener(\"dblclick\", this._download.bind(this));\n if (!this.data.hasPopup && (this.data.titleObj?.str || this.data.contentsObj?.str || this.data.richText)) {\n this._createPopup(trigger, this.data);\n }\n this.container.append(trigger);\n return this.container;\n }\n _download() {\n this.downloadManager?.openOrDownloadData(this.container, this.content, this.filename);\n }\n}\nclass AnnotationLayer {\n static #appendElement(element, id, div, accessibilityManager) {\n const contentElement = element.firstChild || element;\n contentElement.id = `${_display_utils.AnnotationPrefix}${id}`;\n div.append(element);\n accessibilityManager?.moveElementInDOM(div, element, contentElement, false);\n }\n static render(params) {\n const {\n annotations,\n div,\n viewport,\n accessibilityManager\n } = params;\n (0, _display_utils.setLayerDimensions)(div, viewport);\n const elementParams = {\n data: null,\n layer: div,\n page: params.page,\n viewport,\n linkService: params.linkService,\n downloadManager: params.downloadManager,\n imageResourcesPath: params.imageResourcesPath || \"\",\n renderForms: params.renderForms !== false,\n svgFactory: new _display_utils.DOMSVGFactory(),\n annotationStorage: params.annotationStorage || new _annotation_storage.AnnotationStorage(),\n enableScripting: params.enableScripting === true,\n hasJSActions: params.hasJSActions,\n fieldObjects: params.fieldObjects\n };\n let zIndex = 0;\n for (const data of annotations) {\n if (data.annotationType !== _util.AnnotationType.POPUP) {\n const {\n width,\n height\n } = getRectDims(data.rect);\n if (width <= 0 || height <= 0) {\n continue;\n }\n }\n elementParams.data = data;\n const element = AnnotationElementFactory.create(elementParams);\n if (!element.isRenderable) {\n continue;\n }\n const rendered = element.render();\n if (data.hidden) {\n rendered.style.visibility = \"hidden\";\n }\n if (Array.isArray(rendered)) {\n for (const renderedElement of rendered) {\n renderedElement.style.zIndex = zIndex++;\n AnnotationLayer.#appendElement(renderedElement, data.id, div, accessibilityManager);\n }\n } else {\n rendered.style.zIndex = zIndex++;\n if (element instanceof PopupAnnotationElement) {\n div.prepend(rendered);\n } else {\n AnnotationLayer.#appendElement(rendered, data.id, div, accessibilityManager);\n }\n }\n }\n this.#setAnnotationCanvasMap(div, params.annotationCanvasMap);\n }\n static update(params) {\n const {\n annotationCanvasMap,\n div,\n viewport\n } = params;\n (0, _display_utils.setLayerDimensions)(div, {\n rotation: viewport.rotation\n });\n this.#setAnnotationCanvasMap(div, annotationCanvasMap);\n div.hidden = false;\n }\n static #setAnnotationCanvasMap(div, annotationCanvasMap) {\n if (!annotationCanvasMap) {\n return;\n }\n for (const [id, canvas] of annotationCanvasMap) {\n const element = div.querySelector(`[data-annotation-id=\"${id}\"]`);\n if (!element) {\n continue;\n }\n const {\n firstChild\n } = element;\n if (!firstChild) {\n element.append(canvas);\n } else if (firstChild.nodeName === \"CANVAS\") {\n firstChild.replaceWith(canvas);\n } else {\n firstChild.before(canvas);\n }\n }\n annotationCanvasMap.clear();\n }\n}\nexports.AnnotationLayer = AnnotationLayer;\n\n/***/ }),\n/* 33 */\n/***/ ((__unused_webpack_module, exports) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.ColorConverters = void 0;\nfunction makeColorComp(n) {\n return Math.floor(Math.max(0, Math.min(1, n)) * 255).toString(16).padStart(2, \"0\");\n}\nclass ColorConverters {\n static CMYK_G([c, y, m, k]) {\n return [\"G\", 1 - Math.min(1, 0.3 * c + 0.59 * m + 0.11 * y + k)];\n }\n static G_CMYK([g]) {\n return [\"CMYK\", 0, 0, 0, 1 - g];\n }\n static G_RGB([g]) {\n return [\"RGB\", g, g, g];\n }\n static G_HTML([g]) {\n const G = makeColorComp(g);\n return `#${G}${G}${G}`;\n }\n static RGB_G([r, g, b]) {\n return [\"G\", 0.3 * r + 0.59 * g + 0.11 * b];\n }\n static RGB_HTML([r, g, b]) {\n const R = makeColorComp(r);\n const G = makeColorComp(g);\n const B = makeColorComp(b);\n return `#${R}${G}${B}`;\n }\n static T_HTML() {\n return \"#00000000\";\n }\n static CMYK_RGB([c, y, m, k]) {\n return [\"RGB\", 1 - Math.min(1, c + k), 1 - Math.min(1, m + k), 1 - Math.min(1, y + k)];\n }\n static CMYK_HTML(components) {\n const rgb = this.CMYK_RGB(components).slice(1);\n return this.RGB_HTML(rgb);\n }\n static RGB_CMYK([r, g, b]) {\n const c = 1 - r;\n const m = 1 - g;\n const y = 1 - b;\n const k = Math.min(c, m, y);\n return [\"CMYK\", c, m, y, k];\n }\n}\nexports.ColorConverters = ColorConverters;\n\n/***/ }),\n/* 34 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.XfaLayer = void 0;\nvar _xfa_text = __w_pdfjs_require__(19);\nclass XfaLayer {\n static setupStorage(html, id, element, storage, intent) {\n const storedData = storage.getValue(id, {\n value: null\n });\n switch (element.name) {\n case \"textarea\":\n if (storedData.value !== null) {\n html.textContent = storedData.value;\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n break;\n case \"input\":\n if (element.attributes.type === \"radio\" || element.attributes.type === \"checkbox\") {\n if (storedData.value === element.attributes.xfaOn) {\n html.setAttribute(\"checked\", true);\n } else if (storedData.value === element.attributes.xfaOff) {\n html.removeAttribute(\"checked\");\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"change\", event => {\n storage.setValue(id, {\n value: event.target.checked ? event.target.getAttribute(\"xfaOn\") : event.target.getAttribute(\"xfaOff\")\n });\n });\n } else {\n if (storedData.value !== null) {\n html.setAttribute(\"value\", storedData.value);\n }\n if (intent === \"print\") {\n break;\n }\n html.addEventListener(\"input\", event => {\n storage.setValue(id, {\n value: event.target.value\n });\n });\n }\n break;\n case \"select\":\n if (storedData.value !== null) {\n for (const option of element.children) {\n if (option.attributes.value === storedData.value) {\n option.attributes.selected = true;\n }\n }\n }\n html.addEventListener(\"input\", event => {\n const options = event.target.options;\n const value = options.selectedIndex === -1 ? \"\" : options[options.selectedIndex].value;\n storage.setValue(id, {\n value\n });\n });\n break;\n }\n }\n static setAttributes({\n html,\n element,\n storage = null,\n intent,\n linkService\n }) {\n const {\n attributes\n } = element;\n const isHTMLAnchorElement = html instanceof HTMLAnchorElement;\n if (attributes.type === \"radio\") {\n attributes.name = `${attributes.name}-${intent}`;\n }\n for (const [key, value] of Object.entries(attributes)) {\n if (value === null || value === undefined) {\n continue;\n }\n switch (key) {\n case \"class\":\n if (value.length) {\n html.setAttribute(key, value.join(\" \"));\n }\n break;\n case \"dataId\":\n break;\n case \"id\":\n html.setAttribute(\"data-element-id\", value);\n break;\n case \"style\":\n Object.assign(html.style, value);\n break;\n case \"textContent\":\n html.textContent = value;\n break;\n default:\n if (!isHTMLAnchorElement || key !== \"href\" && key !== \"newWindow\") {\n html.setAttribute(key, value);\n }\n }\n }\n if (isHTMLAnchorElement) {\n linkService.addLinkAttributes(html, attributes.href, attributes.newWindow);\n }\n if (storage && attributes.dataId) {\n this.setupStorage(html, attributes.dataId, element, storage);\n }\n }\n static render(parameters) {\n const storage = parameters.annotationStorage;\n const linkService = parameters.linkService;\n const root = parameters.xfaHtml;\n const intent = parameters.intent || \"display\";\n const rootHtml = document.createElement(root.name);\n if (root.attributes) {\n this.setAttributes({\n html: rootHtml,\n element: root,\n intent,\n linkService\n });\n }\n const stack = [[root, -1, rootHtml]];\n const rootDiv = parameters.div;\n rootDiv.append(rootHtml);\n if (parameters.viewport) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n rootDiv.style.transform = transform;\n }\n if (intent !== \"richText\") {\n rootDiv.setAttribute(\"class\", \"xfaLayer xfaFont\");\n }\n const textDivs = [];\n while (stack.length > 0) {\n const [parent, i, html] = stack.at(-1);\n if (i + 1 === parent.children.length) {\n stack.pop();\n continue;\n }\n const child = parent.children[++stack.at(-1)[1]];\n if (child === null) {\n continue;\n }\n const {\n name\n } = child;\n if (name === \"#text\") {\n const node = document.createTextNode(child.value);\n textDivs.push(node);\n html.append(node);\n continue;\n }\n let childHtml;\n if (child?.attributes?.xmlns) {\n childHtml = document.createElementNS(child.attributes.xmlns, name);\n } else {\n childHtml = document.createElement(name);\n }\n html.append(childHtml);\n if (child.attributes) {\n this.setAttributes({\n html: childHtml,\n element: child,\n storage,\n intent,\n linkService\n });\n }\n if (child.children && child.children.length > 0) {\n stack.push([child, -1, childHtml]);\n } else if (child.value) {\n const node = document.createTextNode(child.value);\n if (_xfa_text.XfaText.shouldBuildText(name)) {\n textDivs.push(node);\n }\n childHtml.append(node);\n }\n }\n for (const el of rootDiv.querySelectorAll(\".xfaNonInteractive input, .xfaNonInteractive textarea\")) {\n el.setAttribute(\"readOnly\", true);\n }\n return {\n textDivs\n };\n }\n static update(parameters) {\n const transform = `matrix(${parameters.viewport.transform.join(\",\")})`;\n parameters.div.style.transform = transform;\n parameters.div.hidden = false;\n }\n}\nexports.XfaLayer = XfaLayer;\n\n/***/ }),\n/* 35 */\n/***/ ((__unused_webpack_module, exports, __w_pdfjs_require__) => {\n\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SVGGraphics = void 0;\nvar _display_utils = __w_pdfjs_require__(6);\nvar _util = __w_pdfjs_require__(1);\nvar _is_node = __w_pdfjs_require__(10);\nlet SVGGraphics = class {\n constructor() {\n (0, _util.unreachable)(\"Not implemented: SVGGraphics\");\n }\n};\nexports.SVGGraphics = SVGGraphics;\n{\n const SVG_DEFAULTS = {\n fontStyle: \"normal\",\n fontWeight: \"normal\",\n fillColor: \"#000000\"\n };\n const XML_NS = \"http://www.w3.org/XML/1998/namespace\";\n const XLINK_NS = \"http://www.w3.org/1999/xlink\";\n const LINE_CAP_STYLES = [\"butt\", \"round\", \"square\"];\n const LINE_JOIN_STYLES = [\"miter\", \"round\", \"bevel\"];\n const createObjectURL = function (data, contentType = \"\", forceDataSchema = false) {\n if (URL.createObjectURL && typeof Blob !== \"undefined\" && !forceDataSchema) {\n return URL.createObjectURL(new Blob([data], {\n type: contentType\n }));\n }\n const digits = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n let buffer = `data:${contentType};base64,`;\n for (let i = 0, ii = data.length; i < ii; i += 3) {\n const b1 = data[i] & 0xff;\n const b2 = data[i + 1] & 0xff;\n const b3 = data[i + 2] & 0xff;\n const d1 = b1 >> 2,\n d2 = (b1 & 3) << 4 | b2 >> 4;\n const d3 = i + 1 < ii ? (b2 & 0xf) << 2 | b3 >> 6 : 64;\n const d4 = i + 2 < ii ? b3 & 0x3f : 64;\n buffer += digits[d1] + digits[d2] + digits[d3] + digits[d4];\n }\n return buffer;\n };\n const convertImgDataToPng = function () {\n const PNG_HEADER = new Uint8Array([0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a]);\n const CHUNK_WRAPPER_SIZE = 12;\n const crcTable = new Int32Array(256);\n for (let i = 0; i < 256; i++) {\n let c = i;\n for (let h = 0; h < 8; h++) {\n if (c & 1) {\n c = 0xedb88320 ^ c >> 1 & 0x7fffffff;\n } else {\n c = c >> 1 & 0x7fffffff;\n }\n }\n crcTable[i] = c;\n }\n function crc32(data, start, end) {\n let crc = -1;\n for (let i = start; i < end; i++) {\n const a = (crc ^ data[i]) & 0xff;\n const b = crcTable[a];\n crc = crc >>> 8 ^ b;\n }\n return crc ^ -1;\n }\n function writePngChunk(type, body, data, offset) {\n let p = offset;\n const len = body.length;\n data[p] = len >> 24 & 0xff;\n data[p + 1] = len >> 16 & 0xff;\n data[p + 2] = len >> 8 & 0xff;\n data[p + 3] = len & 0xff;\n p += 4;\n data[p] = type.charCodeAt(0) & 0xff;\n data[p + 1] = type.charCodeAt(1) & 0xff;\n data[p + 2] = type.charCodeAt(2) & 0xff;\n data[p + 3] = type.charCodeAt(3) & 0xff;\n p += 4;\n data.set(body, p);\n p += body.length;\n const crc = crc32(data, offset + 4, p);\n data[p] = crc >> 24 & 0xff;\n data[p + 1] = crc >> 16 & 0xff;\n data[p + 2] = crc >> 8 & 0xff;\n data[p + 3] = crc & 0xff;\n }\n function adler32(data, start, end) {\n let a = 1;\n let b = 0;\n for (let i = start; i < end; ++i) {\n a = (a + (data[i] & 0xff)) % 65521;\n b = (b + a) % 65521;\n }\n return b << 16 | a;\n }\n function deflateSync(literals) {\n if (!_is_node.isNodeJS) {\n return deflateSyncUncompressed(literals);\n }\n try {\n let input;\n if (parseInt(process.versions.node) >= 8) {\n input = literals;\n } else {\n input = Buffer.from(literals);\n }\n const output = require(\"zlib\").deflateSync(input, {\n level: 9\n });\n return output instanceof Uint8Array ? output : new Uint8Array(output);\n } catch (e) {\n (0, _util.warn)(\"Not compressing PNG because zlib.deflateSync is unavailable: \" + e);\n }\n return deflateSyncUncompressed(literals);\n }\n function deflateSyncUncompressed(literals) {\n let len = literals.length;\n const maxBlockLength = 0xffff;\n const deflateBlocks = Math.ceil(len / maxBlockLength);\n const idat = new Uint8Array(2 + len + deflateBlocks * 5 + 4);\n let pi = 0;\n idat[pi++] = 0x78;\n idat[pi++] = 0x9c;\n let pos = 0;\n while (len > maxBlockLength) {\n idat[pi++] = 0x00;\n idat[pi++] = 0xff;\n idat[pi++] = 0xff;\n idat[pi++] = 0x00;\n idat[pi++] = 0x00;\n idat.set(literals.subarray(pos, pos + maxBlockLength), pi);\n pi += maxBlockLength;\n pos += maxBlockLength;\n len -= maxBlockLength;\n }\n idat[pi++] = 0x01;\n idat[pi++] = len & 0xff;\n idat[pi++] = len >> 8 & 0xff;\n idat[pi++] = ~len & 0xffff & 0xff;\n idat[pi++] = (~len & 0xffff) >> 8 & 0xff;\n idat.set(literals.subarray(pos), pi);\n pi += literals.length - pos;\n const adler = adler32(literals, 0, literals.length);\n idat[pi++] = adler >> 24 & 0xff;\n idat[pi++] = adler >> 16 & 0xff;\n idat[pi++] = adler >> 8 & 0xff;\n idat[pi++] = adler & 0xff;\n return idat;\n }\n function encode(imgData, kind, forceDataSchema, isMask) {\n const width = imgData.width;\n const height = imgData.height;\n let bitDepth, colorType, lineSize;\n const bytes = imgData.data;\n switch (kind) {\n case _util.ImageKind.GRAYSCALE_1BPP:\n colorType = 0;\n bitDepth = 1;\n lineSize = width + 7 >> 3;\n break;\n case _util.ImageKind.RGB_24BPP:\n colorType = 2;\n bitDepth = 8;\n lineSize = width * 3;\n break;\n case _util.ImageKind.RGBA_32BPP:\n colorType = 6;\n bitDepth = 8;\n lineSize = width * 4;\n break;\n default:\n throw new Error(\"invalid format\");\n }\n const literals = new Uint8Array((1 + lineSize) * height);\n let offsetLiterals = 0,\n offsetBytes = 0;\n for (let y = 0; y < height; ++y) {\n literals[offsetLiterals++] = 0;\n literals.set(bytes.subarray(offsetBytes, offsetBytes + lineSize), offsetLiterals);\n offsetBytes += lineSize;\n offsetLiterals += lineSize;\n }\n if (kind === _util.ImageKind.GRAYSCALE_1BPP && isMask) {\n offsetLiterals = 0;\n for (let y = 0; y < height; y++) {\n offsetLiterals++;\n for (let i = 0; i < lineSize; i++) {\n literals[offsetLiterals++] ^= 0xff;\n }\n }\n }\n const ihdr = new Uint8Array([width >> 24 & 0xff, width >> 16 & 0xff, width >> 8 & 0xff, width & 0xff, height >> 24 & 0xff, height >> 16 & 0xff, height >> 8 & 0xff, height & 0xff, bitDepth, colorType, 0x00, 0x00, 0x00]);\n const idat = deflateSync(literals);\n const pngLength = PNG_HEADER.length + CHUNK_WRAPPER_SIZE * 3 + ihdr.length + idat.length;\n const data = new Uint8Array(pngLength);\n let offset = 0;\n data.set(PNG_HEADER, offset);\n offset += PNG_HEADER.length;\n writePngChunk(\"IHDR\", ihdr, data, offset);\n offset += CHUNK_WRAPPER_SIZE + ihdr.length;\n writePngChunk(\"IDATA\", idat, data, offset);\n offset += CHUNK_WRAPPER_SIZE + idat.length;\n writePngChunk(\"IEND\", new Uint8Array(0), data, offset);\n return createObjectURL(data, \"image/png\", forceDataSchema);\n }\n return function convertImgDataToPng(imgData, forceDataSchema, isMask) {\n const kind = imgData.kind === undefined ? _util.ImageKind.GRAYSCALE_1BPP : imgData.kind;\n return encode(imgData, kind, forceDataSchema, isMask);\n };\n }();\n class SVGExtraState {\n constructor() {\n this.fontSizeScale = 1;\n this.fontWeight = SVG_DEFAULTS.fontWeight;\n this.fontSize = 0;\n this.textMatrix = _util.IDENTITY_MATRIX;\n this.fontMatrix = _util.FONT_IDENTITY_MATRIX;\n this.leading = 0;\n this.textRenderingMode = _util.TextRenderingMode.FILL;\n this.textMatrixScale = 1;\n this.x = 0;\n this.y = 0;\n this.lineX = 0;\n this.lineY = 0;\n this.charSpacing = 0;\n this.wordSpacing = 0;\n this.textHScale = 1;\n this.textRise = 0;\n this.fillColor = SVG_DEFAULTS.fillColor;\n this.strokeColor = \"#000000\";\n this.fillAlpha = 1;\n this.strokeAlpha = 1;\n this.lineWidth = 1;\n this.lineJoin = \"\";\n this.lineCap = \"\";\n this.miterLimit = 0;\n this.dashArray = [];\n this.dashPhase = 0;\n this.dependencies = [];\n this.activeClipUrl = null;\n this.clipGroup = null;\n this.maskId = \"\";\n }\n clone() {\n return Object.create(this);\n }\n setCurrentPoint(x, y) {\n this.x = x;\n this.y = y;\n }\n }\n function opListToTree(opList) {\n let opTree = [];\n const tmp = [];\n for (const opListElement of opList) {\n if (opListElement.fn === \"save\") {\n opTree.push({\n fnId: 92,\n fn: \"group\",\n items: []\n });\n tmp.push(opTree);\n opTree = opTree.at(-1).items;\n continue;\n }\n if (opListElement.fn === \"restore\") {\n opTree = tmp.pop();\n } else {\n opTree.push(opListElement);\n }\n }\n return opTree;\n }\n function pf(value) {\n if (Number.isInteger(value)) {\n return value.toString();\n }\n const s = value.toFixed(10);\n let i = s.length - 1;\n if (s[i] !== \"0\") {\n return s;\n }\n do {\n i--;\n } while (s[i] === \"0\");\n return s.substring(0, s[i] === \".\" ? i : i + 1);\n }\n function pm(m) {\n if (m[4] === 0 && m[5] === 0) {\n if (m[1] === 0 && m[2] === 0) {\n if (m[0] === 1 && m[3] === 1) {\n return \"\";\n }\n return `scale(${pf(m[0])} ${pf(m[3])})`;\n }\n if (m[0] === m[3] && m[1] === -m[2]) {\n const a = Math.acos(m[0]) * 180 / Math.PI;\n return `rotate(${pf(a)})`;\n }\n } else {\n if (m[0] === 1 && m[1] === 0 && m[2] === 0 && m[3] === 1) {\n return `translate(${pf(m[4])} ${pf(m[5])})`;\n }\n }\n return `matrix(${pf(m[0])} ${pf(m[1])} ${pf(m[2])} ${pf(m[3])} ${pf(m[4])} ` + `${pf(m[5])})`;\n }\n let clipCount = 0;\n let maskCount = 0;\n let shadingCount = 0;\n exports.SVGGraphics = SVGGraphics = class {\n constructor(commonObjs, objs, forceDataSchema = false) {\n (0, _display_utils.deprecated)(\"The SVG back-end is no longer maintained and *may* be removed in the future.\");\n this.svgFactory = new _display_utils.DOMSVGFactory();\n this.current = new SVGExtraState();\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.transformStack = [];\n this.extraStack = [];\n this.commonObjs = commonObjs;\n this.objs = objs;\n this.pendingClip = null;\n this.pendingEOFill = false;\n this.embedFonts = false;\n this.embeddedFonts = Object.create(null);\n this.cssStyle = null;\n this.forceDataSchema = !!forceDataSchema;\n this._operatorIdMapping = [];\n for (const op in _util.OPS) {\n this._operatorIdMapping[_util.OPS[op]] = op;\n }\n }\n getObject(data, fallback = null) {\n if (typeof data === \"string\") {\n return data.startsWith(\"g_\") ? this.commonObjs.get(data) : this.objs.get(data);\n }\n return fallback;\n }\n save() {\n this.transformStack.push(this.transformMatrix);\n const old = this.current;\n this.extraStack.push(old);\n this.current = old.clone();\n }\n restore() {\n this.transformMatrix = this.transformStack.pop();\n this.current = this.extraStack.pop();\n this.pendingClip = null;\n this.tgrp = null;\n }\n group(items) {\n this.save();\n this.executeOpTree(items);\n this.restore();\n }\n loadDependencies(operatorList) {\n const fnArray = operatorList.fnArray;\n const argsArray = operatorList.argsArray;\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n if (fnArray[i] !== _util.OPS.dependency) {\n continue;\n }\n for (const obj of argsArray[i]) {\n const objsPool = obj.startsWith(\"g_\") ? this.commonObjs : this.objs;\n const promise = new Promise(resolve => {\n objsPool.get(obj, resolve);\n });\n this.current.dependencies.push(promise);\n }\n }\n return Promise.all(this.current.dependencies);\n }\n transform(a, b, c, d, e, f) {\n const transformMatrix = [a, b, c, d, e, f];\n this.transformMatrix = _util.Util.transform(this.transformMatrix, transformMatrix);\n this.tgrp = null;\n }\n getSVG(operatorList, viewport) {\n this.viewport = viewport;\n const svgElement = this._initialize(viewport);\n return this.loadDependencies(operatorList).then(() => {\n this.transformMatrix = _util.IDENTITY_MATRIX;\n this.executeOpTree(this.convertOpList(operatorList));\n return svgElement;\n });\n }\n convertOpList(operatorList) {\n const operatorIdMapping = this._operatorIdMapping;\n const argsArray = operatorList.argsArray;\n const fnArray = operatorList.fnArray;\n const opList = [];\n for (let i = 0, ii = fnArray.length; i < ii; i++) {\n const fnId = fnArray[i];\n opList.push({\n fnId,\n fn: operatorIdMapping[fnId],\n args: argsArray[i]\n });\n }\n return opListToTree(opList);\n }\n executeOpTree(opTree) {\n for (const opTreeElement of opTree) {\n const fn = opTreeElement.fn;\n const fnId = opTreeElement.fnId;\n const args = opTreeElement.args;\n switch (fnId | 0) {\n case _util.OPS.beginText:\n this.beginText();\n break;\n case _util.OPS.dependency:\n break;\n case _util.OPS.setLeading:\n this.setLeading(args);\n break;\n case _util.OPS.setLeadingMoveText:\n this.setLeadingMoveText(args[0], args[1]);\n break;\n case _util.OPS.setFont:\n this.setFont(args);\n break;\n case _util.OPS.showText:\n this.showText(args[0]);\n break;\n case _util.OPS.showSpacedText:\n this.showText(args[0]);\n break;\n case _util.OPS.endText:\n this.endText();\n break;\n case _util.OPS.moveText:\n this.moveText(args[0], args[1]);\n break;\n case _util.OPS.setCharSpacing:\n this.setCharSpacing(args[0]);\n break;\n case _util.OPS.setWordSpacing:\n this.setWordSpacing(args[0]);\n break;\n case _util.OPS.setHScale:\n this.setHScale(args[0]);\n break;\n case _util.OPS.setTextMatrix:\n this.setTextMatrix(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.setTextRise:\n this.setTextRise(args[0]);\n break;\n case _util.OPS.setTextRenderingMode:\n this.setTextRenderingMode(args[0]);\n break;\n case _util.OPS.setLineWidth:\n this.setLineWidth(args[0]);\n break;\n case _util.OPS.setLineJoin:\n this.setLineJoin(args[0]);\n break;\n case _util.OPS.setLineCap:\n this.setLineCap(args[0]);\n break;\n case _util.OPS.setMiterLimit:\n this.setMiterLimit(args[0]);\n break;\n case _util.OPS.setFillRGBColor:\n this.setFillRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeRGBColor:\n this.setStrokeRGBColor(args[0], args[1], args[2]);\n break;\n case _util.OPS.setStrokeColorN:\n this.setStrokeColorN(args);\n break;\n case _util.OPS.setFillColorN:\n this.setFillColorN(args);\n break;\n case _util.OPS.shadingFill:\n this.shadingFill(args[0]);\n break;\n case _util.OPS.setDash:\n this.setDash(args[0], args[1]);\n break;\n case _util.OPS.setRenderingIntent:\n this.setRenderingIntent(args[0]);\n break;\n case _util.OPS.setFlatness:\n this.setFlatness(args[0]);\n break;\n case _util.OPS.setGState:\n this.setGState(args[0]);\n break;\n case _util.OPS.fill:\n this.fill();\n break;\n case _util.OPS.eoFill:\n this.eoFill();\n break;\n case _util.OPS.stroke:\n this.stroke();\n break;\n case _util.OPS.fillStroke:\n this.fillStroke();\n break;\n case _util.OPS.eoFillStroke:\n this.eoFillStroke();\n break;\n case _util.OPS.clip:\n this.clip(\"nonzero\");\n break;\n case _util.OPS.eoClip:\n this.clip(\"evenodd\");\n break;\n case _util.OPS.paintSolidColorImageMask:\n this.paintSolidColorImageMask();\n break;\n case _util.OPS.paintImageXObject:\n this.paintImageXObject(args[0]);\n break;\n case _util.OPS.paintInlineImageXObject:\n this.paintInlineImageXObject(args[0]);\n break;\n case _util.OPS.paintImageMaskXObject:\n this.paintImageMaskXObject(args[0]);\n break;\n case _util.OPS.paintFormXObjectBegin:\n this.paintFormXObjectBegin(args[0], args[1]);\n break;\n case _util.OPS.paintFormXObjectEnd:\n this.paintFormXObjectEnd();\n break;\n case _util.OPS.closePath:\n this.closePath();\n break;\n case _util.OPS.closeStroke:\n this.closeStroke();\n break;\n case _util.OPS.closeFillStroke:\n this.closeFillStroke();\n break;\n case _util.OPS.closeEOFillStroke:\n this.closeEOFillStroke();\n break;\n case _util.OPS.nextLine:\n this.nextLine();\n break;\n case _util.OPS.transform:\n this.transform(args[0], args[1], args[2], args[3], args[4], args[5]);\n break;\n case _util.OPS.constructPath:\n this.constructPath(args[0], args[1]);\n break;\n case _util.OPS.endPath:\n this.endPath();\n break;\n case 92:\n this.group(opTreeElement.items);\n break;\n default:\n (0, _util.warn)(`Unimplemented operator ${fn}`);\n break;\n }\n }\n }\n setWordSpacing(wordSpacing) {\n this.current.wordSpacing = wordSpacing;\n }\n setCharSpacing(charSpacing) {\n this.current.charSpacing = charSpacing;\n }\n nextLine() {\n this.moveText(0, this.current.leading);\n }\n setTextMatrix(a, b, c, d, e, f) {\n const current = this.current;\n current.textMatrix = current.lineMatrix = [a, b, c, d, e, f];\n current.textMatrixScale = Math.hypot(a, b);\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtElement.append(current.tspan);\n }\n beginText() {\n const current = this.current;\n current.x = current.lineX = 0;\n current.y = current.lineY = 0;\n current.textMatrix = _util.IDENTITY_MATRIX;\n current.lineMatrix = _util.IDENTITY_MATRIX;\n current.textMatrixScale = 1;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.txtElement = this.svgFactory.createElement(\"svg:text\");\n current.txtgrp = this.svgFactory.createElement(\"svg:g\");\n current.xcoords = [];\n current.ycoords = [];\n }\n moveText(x, y) {\n const current = this.current;\n current.x = current.lineX += x;\n current.y = current.lineY += y;\n current.xcoords = [];\n current.ycoords = [];\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n showText(glyphs) {\n const current = this.current;\n const font = current.font;\n const fontSize = current.fontSize;\n if (fontSize === 0) {\n return;\n }\n const fontSizeScale = current.fontSizeScale;\n const charSpacing = current.charSpacing;\n const wordSpacing = current.wordSpacing;\n const fontDirection = current.fontDirection;\n const textHScale = current.textHScale * fontDirection;\n const vertical = font.vertical;\n const spacingDir = vertical ? 1 : -1;\n const defaultVMetrics = font.defaultVMetrics;\n const widthAdvanceScale = fontSize * current.fontMatrix[0];\n let x = 0;\n for (const glyph of glyphs) {\n if (glyph === null) {\n x += fontDirection * wordSpacing;\n continue;\n } else if (typeof glyph === \"number\") {\n x += spacingDir * glyph * fontSize / 1000;\n continue;\n }\n const spacing = (glyph.isSpace ? wordSpacing : 0) + charSpacing;\n const character = glyph.fontChar;\n let scaledX, scaledY;\n let width = glyph.width;\n if (vertical) {\n let vx;\n const vmetric = glyph.vmetric || defaultVMetrics;\n vx = glyph.vmetric ? vmetric[1] : width * 0.5;\n vx = -vx * widthAdvanceScale;\n const vy = vmetric[2] * widthAdvanceScale;\n width = vmetric ? -vmetric[0] : width;\n scaledX = vx / fontSizeScale;\n scaledY = (x + vy) / fontSizeScale;\n } else {\n scaledX = x / fontSizeScale;\n scaledY = 0;\n }\n if (glyph.isInFont || font.missingFile) {\n current.xcoords.push(current.x + scaledX);\n if (vertical) {\n current.ycoords.push(-current.y + scaledY);\n }\n current.tspan.textContent += character;\n } else {}\n let charWidth;\n if (vertical) {\n charWidth = width * widthAdvanceScale - spacing * fontDirection;\n } else {\n charWidth = width * widthAdvanceScale + spacing * fontDirection;\n }\n x += charWidth;\n }\n current.tspan.setAttributeNS(null, \"x\", current.xcoords.map(pf).join(\" \"));\n if (vertical) {\n current.tspan.setAttributeNS(null, \"y\", current.ycoords.map(pf).join(\" \"));\n } else {\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n }\n if (vertical) {\n current.y -= x;\n } else {\n current.x += x * textHScale;\n }\n current.tspan.setAttributeNS(null, \"font-family\", current.fontFamily);\n current.tspan.setAttributeNS(null, \"font-size\", `${pf(current.fontSize)}px`);\n if (current.fontStyle !== SVG_DEFAULTS.fontStyle) {\n current.tspan.setAttributeNS(null, \"font-style\", current.fontStyle);\n }\n if (current.fontWeight !== SVG_DEFAULTS.fontWeight) {\n current.tspan.setAttributeNS(null, \"font-weight\", current.fontWeight);\n }\n const fillStrokeMode = current.textRenderingMode & _util.TextRenderingMode.FILL_STROKE_MASK;\n if (fillStrokeMode === _util.TextRenderingMode.FILL || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n if (current.fillColor !== SVG_DEFAULTS.fillColor) {\n current.tspan.setAttributeNS(null, \"fill\", current.fillColor);\n }\n if (current.fillAlpha < 1) {\n current.tspan.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n }\n } else if (current.textRenderingMode === _util.TextRenderingMode.ADD_TO_PATH) {\n current.tspan.setAttributeNS(null, \"fill\", \"transparent\");\n } else {\n current.tspan.setAttributeNS(null, \"fill\", \"none\");\n }\n if (fillStrokeMode === _util.TextRenderingMode.STROKE || fillStrokeMode === _util.TextRenderingMode.FILL_STROKE) {\n const lineWidthScale = 1 / (current.textMatrixScale || 1);\n this._setStrokeAttributes(current.tspan, lineWidthScale);\n }\n let textMatrix = current.textMatrix;\n if (current.textRise !== 0) {\n textMatrix = textMatrix.slice();\n textMatrix[5] += current.textRise;\n }\n current.txtElement.setAttributeNS(null, \"transform\", `${pm(textMatrix)} scale(${pf(textHScale)}, -1)`);\n current.txtElement.setAttributeNS(XML_NS, \"xml:space\", \"preserve\");\n current.txtElement.append(current.tspan);\n current.txtgrp.append(current.txtElement);\n this._ensureTransformGroup().append(current.txtElement);\n }\n setLeadingMoveText(x, y) {\n this.setLeading(-y);\n this.moveText(x, y);\n }\n addFontStyle(fontObj) {\n if (!fontObj.data) {\n throw new Error(\"addFontStyle: No font data available, \" + 'ensure that the \"fontExtraProperties\" API parameter is set.');\n }\n if (!this.cssStyle) {\n this.cssStyle = this.svgFactory.createElement(\"svg:style\");\n this.cssStyle.setAttributeNS(null, \"type\", \"text/css\");\n this.defs.append(this.cssStyle);\n }\n const url = createObjectURL(fontObj.data, fontObj.mimetype, this.forceDataSchema);\n this.cssStyle.textContent += `@font-face { font-family: \"${fontObj.loadedName}\";` + ` src: url(${url}); }\\n`;\n }\n setFont(details) {\n const current = this.current;\n const fontObj = this.commonObjs.get(details[0]);\n let size = details[1];\n current.font = fontObj;\n if (this.embedFonts && !fontObj.missingFile && !this.embeddedFonts[fontObj.loadedName]) {\n this.addFontStyle(fontObj);\n this.embeddedFonts[fontObj.loadedName] = fontObj;\n }\n current.fontMatrix = fontObj.fontMatrix || _util.FONT_IDENTITY_MATRIX;\n let bold = \"normal\";\n if (fontObj.black) {\n bold = \"900\";\n } else if (fontObj.bold) {\n bold = \"bold\";\n }\n const italic = fontObj.italic ? \"italic\" : \"normal\";\n if (size < 0) {\n size = -size;\n current.fontDirection = -1;\n } else {\n current.fontDirection = 1;\n }\n current.fontSize = size;\n current.fontFamily = fontObj.loadedName;\n current.fontWeight = bold;\n current.fontStyle = italic;\n current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n current.tspan.setAttributeNS(null, \"y\", pf(-current.y));\n current.xcoords = [];\n current.ycoords = [];\n }\n endText() {\n const current = this.current;\n if (current.textRenderingMode & _util.TextRenderingMode.ADD_TO_PATH_FLAG && current.txtElement?.hasChildNodes()) {\n current.element = current.txtElement;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n setLineWidth(width) {\n if (width > 0) {\n this.current.lineWidth = width;\n }\n }\n setLineCap(style) {\n this.current.lineCap = LINE_CAP_STYLES[style];\n }\n setLineJoin(style) {\n this.current.lineJoin = LINE_JOIN_STYLES[style];\n }\n setMiterLimit(limit) {\n this.current.miterLimit = limit;\n }\n setStrokeAlpha(strokeAlpha) {\n this.current.strokeAlpha = strokeAlpha;\n }\n setStrokeRGBColor(r, g, b) {\n this.current.strokeColor = _util.Util.makeHexColor(r, g, b);\n }\n setFillAlpha(fillAlpha) {\n this.current.fillAlpha = fillAlpha;\n }\n setFillRGBColor(r, g, b) {\n this.current.fillColor = _util.Util.makeHexColor(r, g, b);\n this.current.tspan = this.svgFactory.createElement(\"svg:tspan\");\n this.current.xcoords = [];\n this.current.ycoords = [];\n }\n setStrokeColorN(args) {\n this.current.strokeColor = this._makeColorN_Pattern(args);\n }\n setFillColorN(args) {\n this.current.fillColor = this._makeColorN_Pattern(args);\n }\n shadingFill(args) {\n const width = this.viewport.width;\n const height = this.viewport.height;\n const inv = _util.Util.inverseTransform(this.transformMatrix);\n const bl = _util.Util.applyTransform([0, 0], inv);\n const br = _util.Util.applyTransform([0, height], inv);\n const ul = _util.Util.applyTransform([width, 0], inv);\n const ur = _util.Util.applyTransform([width, height], inv);\n const x0 = Math.min(bl[0], br[0], ul[0], ur[0]);\n const y0 = Math.min(bl[1], br[1], ul[1], ur[1]);\n const x1 = Math.max(bl[0], br[0], ul[0], ur[0]);\n const y1 = Math.max(bl[1], br[1], ul[1], ur[1]);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", x0);\n rect.setAttributeNS(null, \"y\", y0);\n rect.setAttributeNS(null, \"width\", x1 - x0);\n rect.setAttributeNS(null, \"height\", y1 - y0);\n rect.setAttributeNS(null, \"fill\", this._makeShadingPattern(args));\n if (this.current.fillAlpha < 1) {\n rect.setAttributeNS(null, \"fill-opacity\", this.current.fillAlpha);\n }\n this._ensureTransformGroup().append(rect);\n }\n _makeColorN_Pattern(args) {\n if (args[0] === \"TilingPattern\") {\n return this._makeTilingPattern(args);\n }\n return this._makeShadingPattern(args);\n }\n _makeTilingPattern(args) {\n const color = args[1];\n const operatorList = args[2];\n const matrix = args[3] || _util.IDENTITY_MATRIX;\n const [x0, y0, x1, y1] = args[4];\n const xstep = args[5];\n const ystep = args[6];\n const paintType = args[7];\n const tilingId = `shading${shadingCount++}`;\n const [tx0, ty0, tx1, ty1] = _util.Util.normalizeRect([..._util.Util.applyTransform([x0, y0], matrix), ..._util.Util.applyTransform([x1, y1], matrix)]);\n const [xscale, yscale] = _util.Util.singularValueDecompose2dScale(matrix);\n const txstep = xstep * xscale;\n const tystep = ystep * yscale;\n const tiling = this.svgFactory.createElement(\"svg:pattern\");\n tiling.setAttributeNS(null, \"id\", tilingId);\n tiling.setAttributeNS(null, \"patternUnits\", \"userSpaceOnUse\");\n tiling.setAttributeNS(null, \"width\", txstep);\n tiling.setAttributeNS(null, \"height\", tystep);\n tiling.setAttributeNS(null, \"x\", `${tx0}`);\n tiling.setAttributeNS(null, \"y\", `${ty0}`);\n const svg = this.svg;\n const transformMatrix = this.transformMatrix;\n const fillColor = this.current.fillColor;\n const strokeColor = this.current.strokeColor;\n const bbox = this.svgFactory.create(tx1 - tx0, ty1 - ty0);\n this.svg = bbox;\n this.transformMatrix = matrix;\n if (paintType === 2) {\n const cssColor = _util.Util.makeHexColor(...color);\n this.current.fillColor = cssColor;\n this.current.strokeColor = cssColor;\n }\n this.executeOpTree(this.convertOpList(operatorList));\n this.svg = svg;\n this.transformMatrix = transformMatrix;\n this.current.fillColor = fillColor;\n this.current.strokeColor = strokeColor;\n tiling.append(bbox.childNodes[0]);\n this.defs.append(tiling);\n return `url(#${tilingId})`;\n }\n _makeShadingPattern(args) {\n if (typeof args === \"string\") {\n args = this.objs.get(args);\n }\n switch (args[0]) {\n case \"RadialAxial\":\n const shadingId = `shading${shadingCount++}`;\n const colorStops = args[3];\n let gradient;\n switch (args[1]) {\n case \"axial\":\n const point0 = args[4];\n const point1 = args[5];\n gradient = this.svgFactory.createElement(\"svg:linearGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"x1\", point0[0]);\n gradient.setAttributeNS(null, \"y1\", point0[1]);\n gradient.setAttributeNS(null, \"x2\", point1[0]);\n gradient.setAttributeNS(null, \"y2\", point1[1]);\n break;\n case \"radial\":\n const focalPoint = args[4];\n const circlePoint = args[5];\n const focalRadius = args[6];\n const circleRadius = args[7];\n gradient = this.svgFactory.createElement(\"svg:radialGradient\");\n gradient.setAttributeNS(null, \"id\", shadingId);\n gradient.setAttributeNS(null, \"gradientUnits\", \"userSpaceOnUse\");\n gradient.setAttributeNS(null, \"cx\", circlePoint[0]);\n gradient.setAttributeNS(null, \"cy\", circlePoint[1]);\n gradient.setAttributeNS(null, \"r\", circleRadius);\n gradient.setAttributeNS(null, \"fx\", focalPoint[0]);\n gradient.setAttributeNS(null, \"fy\", focalPoint[1]);\n gradient.setAttributeNS(null, \"fr\", focalRadius);\n break;\n default:\n throw new Error(`Unknown RadialAxial type: ${args[1]}`);\n }\n for (const colorStop of colorStops) {\n const stop = this.svgFactory.createElement(\"svg:stop\");\n stop.setAttributeNS(null, \"offset\", colorStop[0]);\n stop.setAttributeNS(null, \"stop-color\", colorStop[1]);\n gradient.append(stop);\n }\n this.defs.append(gradient);\n return `url(#${shadingId})`;\n case \"Mesh\":\n (0, _util.warn)(\"Unimplemented pattern Mesh\");\n return null;\n case \"Dummy\":\n return \"hotpink\";\n default:\n throw new Error(`Unknown IR type: ${args[0]}`);\n }\n }\n setDash(dashArray, dashPhase) {\n this.current.dashArray = dashArray;\n this.current.dashPhase = dashPhase;\n }\n constructPath(ops, args) {\n const current = this.current;\n let x = current.x,\n y = current.y;\n let d = [];\n let j = 0;\n for (const op of ops) {\n switch (op | 0) {\n case _util.OPS.rectangle:\n x = args[j++];\n y = args[j++];\n const width = args[j++];\n const height = args[j++];\n const xw = x + width;\n const yh = y + height;\n d.push(\"M\", pf(x), pf(y), \"L\", pf(xw), pf(y), \"L\", pf(xw), pf(yh), \"L\", pf(x), pf(yh), \"Z\");\n break;\n case _util.OPS.moveTo:\n x = args[j++];\n y = args[j++];\n d.push(\"M\", pf(x), pf(y));\n break;\n case _util.OPS.lineTo:\n x = args[j++];\n y = args[j++];\n d.push(\"L\", pf(x), pf(y));\n break;\n case _util.OPS.curveTo:\n x = args[j + 4];\n y = args[j + 5];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]), pf(x), pf(y));\n j += 6;\n break;\n case _util.OPS.curveTo2:\n d.push(\"C\", pf(x), pf(y), pf(args[j]), pf(args[j + 1]), pf(args[j + 2]), pf(args[j + 3]));\n x = args[j + 2];\n y = args[j + 3];\n j += 4;\n break;\n case _util.OPS.curveTo3:\n x = args[j + 2];\n y = args[j + 3];\n d.push(\"C\", pf(args[j]), pf(args[j + 1]), pf(x), pf(y), pf(x), pf(y));\n j += 4;\n break;\n case _util.OPS.closePath:\n d.push(\"Z\");\n break;\n }\n }\n d = d.join(\" \");\n if (current.path && ops.length > 0 && ops[0] !== _util.OPS.rectangle && ops[0] !== _util.OPS.moveTo) {\n d = current.path.getAttributeNS(null, \"d\") + d;\n } else {\n current.path = this.svgFactory.createElement(\"svg:path\");\n this._ensureTransformGroup().append(current.path);\n }\n current.path.setAttributeNS(null, \"d\", d);\n current.path.setAttributeNS(null, \"fill\", \"none\");\n current.element = current.path;\n current.setCurrentPoint(x, y);\n }\n endPath() {\n const current = this.current;\n current.path = null;\n if (!this.pendingClip) {\n return;\n }\n if (!current.element) {\n this.pendingClip = null;\n return;\n }\n const clipId = `clippath${clipCount++}`;\n const clipPath = this.svgFactory.createElement(\"svg:clipPath\");\n clipPath.setAttributeNS(null, \"id\", clipId);\n clipPath.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n const clipElement = current.element.cloneNode(true);\n if (this.pendingClip === \"evenodd\") {\n clipElement.setAttributeNS(null, \"clip-rule\", \"evenodd\");\n } else {\n clipElement.setAttributeNS(null, \"clip-rule\", \"nonzero\");\n }\n this.pendingClip = null;\n clipPath.append(clipElement);\n this.defs.append(clipPath);\n if (current.activeClipUrl) {\n current.clipGroup = null;\n for (const prev of this.extraStack) {\n prev.clipGroup = null;\n }\n clipPath.setAttributeNS(null, \"clip-path\", current.activeClipUrl);\n }\n current.activeClipUrl = `url(#${clipId})`;\n this.tgrp = null;\n }\n clip(type) {\n this.pendingClip = type;\n }\n closePath() {\n const current = this.current;\n if (current.path) {\n const d = `${current.path.getAttributeNS(null, \"d\")}Z`;\n current.path.setAttributeNS(null, \"d\", d);\n }\n }\n setLeading(leading) {\n this.current.leading = -leading;\n }\n setTextRise(textRise) {\n this.current.textRise = textRise;\n }\n setTextRenderingMode(textRenderingMode) {\n this.current.textRenderingMode = textRenderingMode;\n }\n setHScale(scale) {\n this.current.textHScale = scale / 100;\n }\n setRenderingIntent(intent) {}\n setFlatness(flatness) {}\n setGState(states) {\n for (const [key, value] of states) {\n switch (key) {\n case \"LW\":\n this.setLineWidth(value);\n break;\n case \"LC\":\n this.setLineCap(value);\n break;\n case \"LJ\":\n this.setLineJoin(value);\n break;\n case \"ML\":\n this.setMiterLimit(value);\n break;\n case \"D\":\n this.setDash(value[0], value[1]);\n break;\n case \"RI\":\n this.setRenderingIntent(value);\n break;\n case \"FL\":\n this.setFlatness(value);\n break;\n case \"Font\":\n this.setFont(value);\n break;\n case \"CA\":\n this.setStrokeAlpha(value);\n break;\n case \"ca\":\n this.setFillAlpha(value);\n break;\n default:\n (0, _util.warn)(`Unimplemented graphic state operator ${key}`);\n break;\n }\n }\n }\n fill() {\n const current = this.current;\n if (current.element) {\n current.element.setAttributeNS(null, \"fill\", current.fillColor);\n current.element.setAttributeNS(null, \"fill-opacity\", current.fillAlpha);\n this.endPath();\n }\n }\n stroke() {\n const current = this.current;\n if (current.element) {\n this._setStrokeAttributes(current.element);\n current.element.setAttributeNS(null, \"fill\", \"none\");\n this.endPath();\n }\n }\n _setStrokeAttributes(element, lineWidthScale = 1) {\n const current = this.current;\n let dashArray = current.dashArray;\n if (lineWidthScale !== 1 && dashArray.length > 0) {\n dashArray = dashArray.map(function (value) {\n return lineWidthScale * value;\n });\n }\n element.setAttributeNS(null, \"stroke\", current.strokeColor);\n element.setAttributeNS(null, \"stroke-opacity\", current.strokeAlpha);\n element.setAttributeNS(null, \"stroke-miterlimit\", pf(current.miterLimit));\n element.setAttributeNS(null, \"stroke-linecap\", current.lineCap);\n element.setAttributeNS(null, \"stroke-linejoin\", current.lineJoin);\n element.setAttributeNS(null, \"stroke-width\", pf(lineWidthScale * current.lineWidth) + \"px\");\n element.setAttributeNS(null, \"stroke-dasharray\", dashArray.map(pf).join(\" \"));\n element.setAttributeNS(null, \"stroke-dashoffset\", pf(lineWidthScale * current.dashPhase) + \"px\");\n }\n eoFill() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fill();\n }\n fillStroke() {\n this.stroke();\n this.fill();\n }\n eoFillStroke() {\n this.current.element?.setAttributeNS(null, \"fill-rule\", \"evenodd\");\n this.fillStroke();\n }\n closeStroke() {\n this.closePath();\n this.stroke();\n }\n closeFillStroke() {\n this.closePath();\n this.fillStroke();\n }\n closeEOFillStroke() {\n this.closePath();\n this.eoFillStroke();\n }\n paintSolidColorImageMask() {\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", \"1px\");\n rect.setAttributeNS(null, \"height\", \"1px\");\n rect.setAttributeNS(null, \"fill\", this.current.fillColor);\n this._ensureTransformGroup().append(rect);\n }\n paintImageXObject(objId) {\n const imgData = this.getObject(objId);\n if (!imgData) {\n (0, _util.warn)(`Dependent image with object ID ${objId} is not ready yet`);\n return;\n }\n this.paintInlineImageXObject(imgData);\n }\n paintInlineImageXObject(imgData, mask) {\n const width = imgData.width;\n const height = imgData.height;\n const imgSrc = convertImgDataToPng(imgData, this.forceDataSchema, !!mask);\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", \"0\");\n cliprect.setAttributeNS(null, \"y\", \"0\");\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n const imgEl = this.svgFactory.createElement(\"svg:image\");\n imgEl.setAttributeNS(XLINK_NS, \"xlink:href\", imgSrc);\n imgEl.setAttributeNS(null, \"x\", \"0\");\n imgEl.setAttributeNS(null, \"y\", pf(-height));\n imgEl.setAttributeNS(null, \"width\", pf(width) + \"px\");\n imgEl.setAttributeNS(null, \"height\", pf(height) + \"px\");\n imgEl.setAttributeNS(null, \"transform\", `scale(${pf(1 / width)} ${pf(-1 / height)})`);\n if (mask) {\n mask.append(imgEl);\n } else {\n this._ensureTransformGroup().append(imgEl);\n }\n }\n paintImageMaskXObject(img) {\n const imgData = this.getObject(img.data, img);\n if (imgData.bitmap) {\n (0, _util.warn)(\"paintImageMaskXObject: ImageBitmap support is not implemented, \" + \"ensure that the `isOffscreenCanvasSupported` API parameter is disabled.\");\n return;\n }\n const current = this.current;\n const width = imgData.width;\n const height = imgData.height;\n const fillColor = current.fillColor;\n current.maskId = `mask${maskCount++}`;\n const mask = this.svgFactory.createElement(\"svg:mask\");\n mask.setAttributeNS(null, \"id\", current.maskId);\n const rect = this.svgFactory.createElement(\"svg:rect\");\n rect.setAttributeNS(null, \"x\", \"0\");\n rect.setAttributeNS(null, \"y\", \"0\");\n rect.setAttributeNS(null, \"width\", pf(width));\n rect.setAttributeNS(null, \"height\", pf(height));\n rect.setAttributeNS(null, \"fill\", fillColor);\n rect.setAttributeNS(null, \"mask\", `url(#${current.maskId})`);\n this.defs.append(mask);\n this._ensureTransformGroup().append(rect);\n this.paintInlineImageXObject(imgData, mask);\n }\n paintFormXObjectBegin(matrix, bbox) {\n if (Array.isArray(matrix) && matrix.length === 6) {\n this.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\n }\n if (bbox) {\n const width = bbox[2] - bbox[0];\n const height = bbox[3] - bbox[1];\n const cliprect = this.svgFactory.createElement(\"svg:rect\");\n cliprect.setAttributeNS(null, \"x\", bbox[0]);\n cliprect.setAttributeNS(null, \"y\", bbox[1]);\n cliprect.setAttributeNS(null, \"width\", pf(width));\n cliprect.setAttributeNS(null, \"height\", pf(height));\n this.current.element = cliprect;\n this.clip(\"nonzero\");\n this.endPath();\n }\n }\n paintFormXObjectEnd() {}\n _initialize(viewport) {\n const svg = this.svgFactory.create(viewport.width, viewport.height);\n const definitions = this.svgFactory.createElement(\"svg:defs\");\n svg.append(definitions);\n this.defs = definitions;\n const rootGroup = this.svgFactory.createElement(\"svg:g\");\n rootGroup.setAttributeNS(null, \"transform\", pm(viewport.transform));\n svg.append(rootGroup);\n this.svg = rootGroup;\n return svg;\n }\n _ensureClipGroup() {\n if (!this.current.clipGroup) {\n const clipGroup = this.svgFactory.createElement(\"svg:g\");\n clipGroup.setAttributeNS(null, \"clip-path\", this.current.activeClipUrl);\n this.svg.append(clipGroup);\n this.current.clipGroup = clipGroup;\n }\n return this.current.clipGroup;\n }\n _ensureTransformGroup() {\n if (!this.tgrp) {\n this.tgrp = this.svgFactory.createElement(\"svg:g\");\n this.tgrp.setAttributeNS(null, \"transform\", pm(this.transformMatrix));\n if (this.current.activeClipUrl) {\n this._ensureClipGroup().append(this.tgrp);\n } else {\n this.svg.append(this.tgrp);\n }\n }\n return this.tgrp;\n }\n };\n}\n\n/***/ })\n/******/ \t]);\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __w_pdfjs_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __w_pdfjs_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk.\n(() => {\nvar exports = __webpack_exports__;\n\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"AbortException\", ({\n enumerable: true,\n get: function () {\n return _util.AbortException;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_editor_layer.AnnotationEditorLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorParamsType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorParamsType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorType\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationEditorType;\n }\n}));\nObject.defineProperty(exports, \"AnnotationEditorUIManager\", ({\n enumerable: true,\n get: function () {\n return _tools.AnnotationEditorUIManager;\n }\n}));\nObject.defineProperty(exports, \"AnnotationLayer\", ({\n enumerable: true,\n get: function () {\n return _annotation_layer.AnnotationLayer;\n }\n}));\nObject.defineProperty(exports, \"AnnotationMode\", ({\n enumerable: true,\n get: function () {\n return _util.AnnotationMode;\n }\n}));\nObject.defineProperty(exports, \"CMapCompressionType\", ({\n enumerable: true,\n get: function () {\n return _util.CMapCompressionType;\n }\n}));\nObject.defineProperty(exports, \"FeatureTest\", ({\n enumerable: true,\n get: function () {\n return _util.FeatureTest;\n }\n}));\nObject.defineProperty(exports, \"GlobalWorkerOptions\", ({\n enumerable: true,\n get: function () {\n return _worker_options.GlobalWorkerOptions;\n }\n}));\nObject.defineProperty(exports, \"InvalidPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.InvalidPDFException;\n }\n}));\nObject.defineProperty(exports, \"MissingPDFException\", ({\n enumerable: true,\n get: function () {\n return _util.MissingPDFException;\n }\n}));\nObject.defineProperty(exports, \"OPS\", ({\n enumerable: true,\n get: function () {\n return _util.OPS;\n }\n}));\nObject.defineProperty(exports, \"PDFDataRangeTransport\", ({\n enumerable: true,\n get: function () {\n return _api.PDFDataRangeTransport;\n }\n}));\nObject.defineProperty(exports, \"PDFDateString\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PDFDateString;\n }\n}));\nObject.defineProperty(exports, \"PDFWorker\", ({\n enumerable: true,\n get: function () {\n return _api.PDFWorker;\n }\n}));\nObject.defineProperty(exports, \"PasswordResponses\", ({\n enumerable: true,\n get: function () {\n return _util.PasswordResponses;\n }\n}));\nObject.defineProperty(exports, \"PermissionFlag\", ({\n enumerable: true,\n get: function () {\n return _util.PermissionFlag;\n }\n}));\nObject.defineProperty(exports, \"PixelsPerInch\", ({\n enumerable: true,\n get: function () {\n return _display_utils.PixelsPerInch;\n }\n}));\nObject.defineProperty(exports, \"RenderingCancelledException\", ({\n enumerable: true,\n get: function () {\n return _display_utils.RenderingCancelledException;\n }\n}));\nObject.defineProperty(exports, \"SVGGraphics\", ({\n enumerable: true,\n get: function () {\n return _svg.SVGGraphics;\n }\n}));\nObject.defineProperty(exports, \"UNSUPPORTED_FEATURES\", ({\n enumerable: true,\n get: function () {\n return _util.UNSUPPORTED_FEATURES;\n }\n}));\nObject.defineProperty(exports, \"UnexpectedResponseException\", ({\n enumerable: true,\n get: function () {\n return _util.UnexpectedResponseException;\n }\n}));\nObject.defineProperty(exports, \"Util\", ({\n enumerable: true,\n get: function () {\n return _util.Util;\n }\n}));\nObject.defineProperty(exports, \"VerbosityLevel\", ({\n enumerable: true,\n get: function () {\n return _util.VerbosityLevel;\n }\n}));\nObject.defineProperty(exports, \"XfaLayer\", ({\n enumerable: true,\n get: function () {\n return _xfa_layer.XfaLayer;\n }\n}));\nObject.defineProperty(exports, \"build\", ({\n enumerable: true,\n get: function () {\n return _api.build;\n }\n}));\nObject.defineProperty(exports, \"createPromiseCapability\", ({\n enumerable: true,\n get: function () {\n return _util.createPromiseCapability;\n }\n}));\nObject.defineProperty(exports, \"createValidAbsoluteUrl\", ({\n enumerable: true,\n get: function () {\n return _util.createValidAbsoluteUrl;\n }\n}));\nObject.defineProperty(exports, \"getDocument\", ({\n enumerable: true,\n get: function () {\n return _api.getDocument;\n }\n}));\nObject.defineProperty(exports, \"getFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getPdfFilenameFromUrl\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getPdfFilenameFromUrl;\n }\n}));\nObject.defineProperty(exports, \"getXfaPageViewport\", ({\n enumerable: true,\n get: function () {\n return _display_utils.getXfaPageViewport;\n }\n}));\nObject.defineProperty(exports, \"isDataScheme\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isDataScheme;\n }\n}));\nObject.defineProperty(exports, \"isPdfFile\", ({\n enumerable: true,\n get: function () {\n return _display_utils.isPdfFile;\n }\n}));\nObject.defineProperty(exports, \"loadScript\", ({\n enumerable: true,\n get: function () {\n return _display_utils.loadScript;\n }\n}));\nObject.defineProperty(exports, \"renderTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.renderTextLayer;\n }\n}));\nObject.defineProperty(exports, \"setLayerDimensions\", ({\n enumerable: true,\n get: function () {\n return _display_utils.setLayerDimensions;\n }\n}));\nObject.defineProperty(exports, \"shadow\", ({\n enumerable: true,\n get: function () {\n return _util.shadow;\n }\n}));\nObject.defineProperty(exports, \"updateTextLayer\", ({\n enumerable: true,\n get: function () {\n return _text_layer.updateTextLayer;\n }\n}));\nObject.defineProperty(exports, \"version\", ({\n enumerable: true,\n get: function () {\n return _api.version;\n }\n}));\nvar _util = __w_pdfjs_require__(1);\nvar _api = __w_pdfjs_require__(2);\nvar _display_utils = __w_pdfjs_require__(6);\nvar _text_layer = __w_pdfjs_require__(26);\nvar _annotation_editor_layer = __w_pdfjs_require__(27);\nvar _tools = __w_pdfjs_require__(5);\nvar _annotation_layer = __w_pdfjs_require__(32);\nvar _worker_options = __w_pdfjs_require__(14);\nvar _svg = __w_pdfjs_require__(35);\nvar _xfa_layer = __w_pdfjs_require__(34);\nconst pdfjsVersion = '3.4.120';\nconst pdfjsBuild = 'af6414988';\n})();\n\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});\n//# sourceMappingURL=pdf.js.map","import type { FC } from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport * as pdfjsLib from 'pdfjs-dist';\nimport styles from './SampleReportModal.module.scss';\n\n// Set worker from CDN - must match pdfjs-dist version\npdfjsLib.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjsLib.version}/build/pdf.worker.min.js`;\n\nexport interface SampleReportModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n pdfUrl: string;\n}\n\nexport const SampleReportModal: FC<SampleReportModalProps> = ({\n isOpen,\n onClose,\n title,\n pdfUrl,\n}) => {\n const pagesRef = useRef<HTMLDivElement>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!isOpen) return;\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, onClose]);\n\n useEffect(() => {\n if (!isOpen || !pdfUrl || !pagesRef.current) return;\n\n setLoading(true);\n setError(null);\n pagesRef.current.innerHTML = '';\n\n const renderPdf = async () => {\n try {\n const loadingTask = pdfjsLib.getDocument({ url: pdfUrl });\n const pdf = await loadingTask.promise;\n\n const container = pagesRef.current;\n if (!container) return;\n\n const pageWidth = container.clientWidth || 600;\n const scale = Math.min(pageWidth / 612, 2); // 612pt is default PDF page width\n\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i);\n const viewport = page.getViewport({ scale });\n\n const canvas = document.createElement('canvas');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n canvas.style.display = 'block';\n canvas.style.margin = '0 auto 1rem';\n canvas.style.maxWidth = '100%';\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n await page.render({ canvasContext: ctx, viewport }).promise;\n }\n container.appendChild(canvas);\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load PDF');\n } finally {\n setLoading(false);\n }\n };\n\n renderPdf();\n }, [isOpen, pdfUrl]);\n\n if (!isOpen) return null;\n\n return (\n <div\n className={styles.backdrop}\n onClick={onClose}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sample-report-modal-title\"\n >\n <div\n className={styles.modal}\n onClick={(e) => e.stopPropagation()}\n >\n <div className={styles.header}>\n <h2 id=\"sample-report-modal-title\" className={styles.title}>\n {title}\n </h2>\n <button\n type=\"button\"\n className={styles.closeBtn}\n onClick={onClose}\n aria-label=\"Close\"\n >\n ×\n </button>\n </div>\n <div className={styles.content}>\n <div className={styles.pdfFrame}>\n {error && (\n <div className={styles.pdfError}>\n <span>{error}</span>\n <a href={pdfUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n Open in new tab instead\n </a>\n </div>\n )}\n <div ref={pagesRef} className={styles.pdfPages} />\n </div>\n <a\n href={pdfUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.openInNewTab}\n >\n Open in new tab\n </a>\n </div>\n </div>\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport styles from './ViewSampleReportButton.module.scss';\nimport { SampleReportModal } from './SampleReportModal';\nimport type { KundliAnalytics } from '../../../../../analytics';\n\nconst DEFAULT_PDF_URL = 'https://srm-cdn.a4b.io/yoda/1770651163050.pdf';\n\nexport interface ViewSampleReportButtonProps {\n t: (key: string) => string;\n /** PDF URL to display in modal. Defaults to a sample PDF. */\n pdfUrl?: string;\n /** @deprecated Use pdfUrl instead. Opens in new tab when modal not used. */\n href?: string;\n /** Called when button is clicked (e.g. for analytics). Modal opens regardless. */\n onClick?: () => void;\n /** Optional analytics for tracking view sample clicked/closed */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nexport const ViewSampleReportButton: React.FC<ViewSampleReportButtonProps> = ({\n t,\n pdfUrl = DEFAULT_PDF_URL,\n onClick,\n analytics,\n className = '',\n}) => {\n const [modalOpen, setModalOpen] = useState(false);\n const label = t('viewSampleReport');\n const title = t('sampleReportModalTitle');\n\n const handleClick = () => {\n analytics?.trackViewSampleReportClicked?.();\n onClick?.();\n setModalOpen(true);\n };\n\n const handleClose = () => {\n analytics?.trackViewSampleReportClosed?.();\n setModalOpen(false);\n };\n\n return (\n <section className={`${styles.section} ${className}`}>\n <button type=\"button\" className={styles.button} onClick={handleClick}>\n {label}\n </button>\n <SampleReportModal\n isOpen={modalOpen}\n onClose={handleClose}\n title={title}\n pdfUrl={pdfUrl}\n />\n </section>\n );\n};\n","import React from \"react\";\nimport styles from \"./WhatYoullFindSection.module.scss\";\n\nconst ITEMS: { titleKey: string; descKey: string }[] = [\n { titleKey: \"findDasha\", descKey: \"findDashaDesc\" },\n { titleKey: \"findYoga\", descKey: \"findYogaDesc\" },\n { titleKey: \"findGemstone\", descKey: \"findGemstoneDesc\" },\n { titleKey: \"findPooja\", descKey: \"findPoojaDesc\" },\n { titleKey: \"findMonthly\", descKey: \"findMonthlyDesc\" },\n { titleKey: \"findStrength\", descKey: \"findStrengthDesc\" },\n];\n\nconst DEFAULT_IMAGE_URLS = [\n \"https://srm-cdn.a4b.io/yoda/1770639688505.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639714646.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639727335.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639739387.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639749920.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639760835.png\",\n];\n\nexport interface WhatYoullFindSectionProps {\n t: (key: string) => string;\n /** Optional image URLs per item (same order as ITEMS) */\n imageUrls?: (string | undefined)[];\n className?: string;\n}\n\nexport const WhatYoullFindSection: React.FC<WhatYoullFindSectionProps> = ({\n t,\n imageUrls = DEFAULT_IMAGE_URLS,\n className = \"\",\n}) => {\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"find-heading\"\n >\n <h2 id=\"find-heading\" className={styles.heading}>\n {t(\"whatYoullFindTitle\")}\n </h2>\n <ul className={styles.list}>\n {ITEMS.map((item, index) => (\n <li key={item.titleKey} className={styles.item}>\n <div className={styles.imageWrap}>\n {imageUrls[index] ? (\n <img src={imageUrls[index]} alt=\"\" className={styles.image} />\n ) : (\n <div className={styles.imagePlaceholder} aria-hidden />\n )}\n </div>\n <div className={styles.text}>\n <h3 className={styles.itemTitle}>{t(item.titleKey)}</h3>\n <p className={styles.itemDesc}>{t(item.descKey)}</p>\n </div>\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './WhyUsSection.module.scss';\n\nconst BULLETS = ['whyUs1', 'whyUs2', 'whyUs3', 'whyUs4'] as const;\n\nexport interface WhyUsSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const WhyUsSection: React.FC<WhyUsSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"why-heading\">\n <h2 id=\"why-heading\" className={styles.heading}>\n {t('whyUsTitle')}\n </h2>\n <p className={styles.subtitle}>{t('whyUsSubtitle')}</p>\n <ul className={styles.list}>\n {BULLETS.map((key) => (\n <li key={key} className={styles.item}>\n {t(key)}\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import React, { useState, useMemo } from \"react\";\nimport styles from \"./FeedbackSection.module.scss\";\n\nconst INITIAL_VISIBLE = 3;\n\nexport interface Testimonial {\n quote: string;\n authorName: string;\n authorAvatarUrl?: string;\n rating?: number;\n}\n\nexport interface FeedbackSectionProps {\n t: (key: string) => string;\n testimonials?: Testimonial[];\n readMoreHref?: string;\n onReadMore?: () => void;\n className?: string;\n}\n\nconst buildTestimonialsFromTranslations = (\n t: (key: string) => string,\n): Testimonial[] => {\n const MAX = 15;\n\n const itemsByIndex = new Map<number, Testimonial>();\n\n for (let i = 1; i <= MAX; i += 1) {\n const quoteKey = `feedbackTestimonial${i}`;\n const quote = t(quoteKey);\n // When a translation key is missing, our t() returns the key itself.\n if (!quote || quote === quoteKey) continue;\n\n const authorKey = `feedbackAuthor${i}`;\n const authorName = (() => {\n const v = t(authorKey);\n return v && v !== authorKey ? v : t(\"guest\");\n })();\n\n const avatarKey = `feedbackAuthor${i}AvatarUrl`;\n const avatar = (() => {\n const v = t(avatarKey);\n return v && v !== avatarKey ? v : undefined;\n })();\n\n itemsByIndex.set(i, {\n quote,\n authorName,\n authorAvatarUrl: avatar,\n rating: 5,\n });\n }\n\n // Mix ordering: start with female (9..MAX) then alternate with male (1..8).\n // This avoids a block of male reviews appearing first.\n const maleIndices: number[] = [];\n const femaleIndices: number[] = [];\n for (let i = 1; i <= MAX; i += 1) {\n if (i >= 9) femaleIndices.push(i);\n else maleIndices.push(i);\n }\n\n const mixed: Testimonial[] = [];\n let m = 0;\n let f = 0;\n while (m < maleIndices.length || f < femaleIndices.length) {\n if (f < femaleIndices.length) {\n const idx = femaleIndices[f++];\n const item = itemsByIndex.get(idx);\n if (item) mixed.push(item);\n }\n if (m < maleIndices.length) {\n const idx = maleIndices[m++];\n const item = itemsByIndex.get(idx);\n if (item) mixed.push(item);\n }\n }\n\n return mixed;\n};\n\nexport const FeedbackSection: React.FC<FeedbackSectionProps> = ({\n t,\n testimonials: testimonialsProp,\n readMoreHref,\n onReadMore,\n className = \"\",\n}) => {\n const testimonials =\n testimonialsProp ??\n useMemo(() => buildTestimonialsFromTranslations(t), [t]);\n const [expanded, setExpanded] = useState(false);\n const hasMore = testimonials.length > INITIAL_VISIBLE;\n const visibleTestimonials =\n hasMore && !expanded\n ? testimonials.slice(0, INITIAL_VISIBLE)\n : testimonials;\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"feedback-heading\"\n >\n <h2 id=\"feedback-heading\" className={styles.heading}>\n {t(\"feedbackTitle\")}\n </h2>\n <p className={styles.trustLine}>\n <span className={styles.star} aria-hidden>\n ★\n </span>\n <span className={styles.ratingNum}>{t(\"feedbackRating\")}</span>\n <span className={styles.dot} aria-hidden />\n <span className={styles.trustText}>{t(\"feedbackTrust\")}</span>\n </p>\n <ul className={styles.cardList}>\n {visibleTestimonials.map((item, index) => (\n <li key={index} className={styles.card}>\n <p className={styles.quote}>{item.quote}</p>\n <div className={styles.author}>\n {item.authorAvatarUrl ? (\n <img\n src={item.authorAvatarUrl}\n alt=\"\"\n className={styles.avatar}\n width={40}\n height={40}\n />\n ) : (\n <div className={styles.avatarPlaceholder} aria-hidden />\n )}\n <div className={styles.authorInfo}>\n <span className={styles.authorName}>{item.authorName}</span>\n <span className={styles.stars} aria-hidden>\n {\"★\".repeat(item.rating ?? 5)}\n </span>\n </div>\n </div>\n </li>\n ))}\n </ul>\n {hasMore && (\n <div className={styles.readMoreWrap}>\n <button\n type=\"button\"\n className={styles.toggleBtn}\n onClick={() => setExpanded((e) => !e)}\n aria-expanded={expanded}\n >\n {expanded ? t(\"readLess\") : t(\"readMoreReviews\")}\n <span className={styles.arrow} aria-hidden>\n {expanded ? \"›\" : \"›\"}\n </span>\n </button>\n </div>\n )}\n {(readMoreHref || onReadMore) && !hasMore && (\n <div className={styles.readMoreWrap}>\n {readMoreHref ? (\n <a\n href={readMoreHref}\n className={styles.readMore}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {t(\"readMoreReviews\")}\n <span className={styles.arrow} aria-hidden>\n ›\n </span>\n </a>\n ) : (\n <button\n type=\"button\"\n className={styles.readMore}\n onClick={() => onReadMore?.()}\n >\n {t(\"readMoreReviews\")}\n <span className={styles.arrow} aria-hidden>\n ›\n </span>\n </button>\n )}\n </div>\n )}\n </section>\n );\n};\n","import React, { useState } from \"react\";\nimport styles from \"./FAQSection.module.scss\";\nimport { useKundliContext } from \"../../KundliContext\";\n\nconst FAQ_ITEMS: { qKey: string; aKey: string }[] = [\n { qKey: \"faqQ1\", aKey: \"faqA1\" },\n { qKey: \"faqQ3\", aKey: \"faqA3\" },\n];\n\nexport interface FAQSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const FAQSection: React.FC<FAQSectionProps> = ({\n t,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n const [openIndex, setOpenIndex] = useState<number>(1); // default open: birth time question (now at index 1)\n\n const resolveAnswerKey = (aKey: string) => {\n if (aKey === \"faqA1\") {\n return isGlobal ? \"faqA1Global\" : \"faqA1Domestic\";\n }\n return aKey;\n };\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"faq-heading\"\n >\n <h2 id=\"faq-heading\" className={styles.heading}>\n {t(\"faqTitle\")}\n </h2>\n <div className={styles.accordion} role=\"list\">\n {FAQ_ITEMS.map((item, index) => {\n const isOpen = openIndex === index;\n return (\n <div\n key={item.qKey}\n className={`${styles.item} ${isOpen ? styles.itemOpen : \"\"}`}\n role=\"listitem\"\n >\n <button\n type=\"button\"\n className={styles.question}\n onClick={() => setOpenIndex(isOpen ? -1 : index)}\n aria-expanded={isOpen}\n aria-controls={`faq-answer-${index}`}\n id={`faq-question-${index}`}\n >\n <span>{t(item.qKey)}</span>\n <span\n className={`${styles.chevron} ${isOpen ? styles.chevronOpen : \"\"}`}\n aria-hidden\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n aria-hidden\n focusable=\"false\"\n >\n <path\n d=\"M5.8 8.3a1 1 0 0 1 1.4 0L10 11.09l2.8-2.8a1 1 0 1 1 1.4 1.42l-3.5 3.5a1 1 0 0 1-1.4 0l-3.5-3.5A1 1 0 0 1 5.8 8.3z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n </button>\n <div\n id={`faq-answer-${index}`}\n role=\"region\"\n aria-labelledby={`faq-question-${index}`}\n className={`${styles.answerWrap} ${isOpen ? styles.answerOpen : \"\"}`}\n hidden={!isOpen}\n >\n {item.aKey && (\n <p className={styles.answer}>\n {t(resolveAnswerKey(item.aKey))}\n </p>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './ContactUsSection.module.scss';\n\nexport interface ContactUsSectionProps {\n t: (key: string) => string;\n /** Override WhatsApp number */\n whatsAppNumber?: string;\n /** Override email */\n email?: string;\n /** Override brand name */\n brandName?: string;\n className?: string;\n}\n\nexport const ContactUsSection: React.FC<ContactUsSectionProps> = ({\n t,\n whatsAppNumber,\n email,\n brandName,\n className = '',\n}) => {\n const whatsApp = whatsAppNumber ?? '8295049751';\n const emailVal = email ?? 'shubham.goyal@supportmandir.com';\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"contact-heading\">\n <h2 id=\"contact-heading\" className={styles.heading}>\n {t('contactTitle')}\n </h2>\n <div className={styles.content}>\n <p className={styles.brandName}>{brandName ?? t('sriMandir')}</p>\n <p className={styles.line}>\n {t('contactWhatsApp').replace('8295049751', whatsApp)}\n </p>\n <p className={styles.line}>\n {t('contactEmail').replace('shubham.goyal@supportmandir.com', emailVal)}\n </p>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport { FooterShell, FooterCTAButton, footerShellStyles } from \"../../../FooterShell\";\nimport { useKundliContext } from \"../../KundliContext\";\n\nconst ICON_KUNDLI_CREATED = 'https://srm-cdn.a4b.io/yoda/1770375694934.svg';\nconst ICON_CERTIFIED = 'https://srm-cdn.a4b.io/yoda/1770375720933.svg';\nconst ICON_SECURE_PAYMENT = 'https://srm-cdn.a4b.io/yoda/1770707793537.svg';\n\nexport interface CTAFooterProps {\n t: (key: string) => string;\n /** CTA button click handler (receives click event for e.g. CTA text extraction) */\n onCtaClick?: (e: React.MouseEvent<HTMLElement>) => void;\n /** Or use href for link instead of button */\n ctaHref?: string;\n /** Optional override for CTA label text */\n ctaLabel?: string;\n className?: string;\n}\n\nconst BadgeRow: React.FC<{ t: (key: string) => string }> = ({ t }) => (\n <div className={footerShellStyles.marqueeTrack}>\n <div className={footerShellStyles.marqueeContent}>\n <span className={footerShellStyles.badge}>\n <img src={ICON_KUNDLI_CREATED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaKundliCreated')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_CERTIFIED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaCertified')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_SECURE_PAYMENT} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaSecurePayment')}\n </span>\n </div>\n <div className={footerShellStyles.marqueeContent} aria-hidden>\n <span className={footerShellStyles.badge}>\n <img src={ICON_KUNDLI_CREATED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaKundliCreated')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_CERTIFIED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaCertified')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_SECURE_PAYMENT} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaSecurePayment')}\n </span>\n </div>\n </div>\n);\n\nexport const CTAFooter: React.FC<CTAFooterProps> = ({\n t,\n onCtaClick,\n ctaHref,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n const original = isGlobal\n ? (kundliCtx?.config.originalPriceLabel ?? t(\"ctaButtonStruck\"))\n : \"₹999\";\n const discounted = isGlobal\n ? (kundliCtx?.config.discountedPriceLabel ?? t(\"ctaButtonAfter\"))\n : \"₹249\";\n\n const ctaContent = (\n <>\n {t(\"ctaButtonBefore\")}\n <span className={footerShellStyles.ctaStruck}>{original}</span>\n {\" \"}\n {discounted}\n </>\n );\n return (\n <FooterShell\n className={className}\n marquee={<BadgeRow t={t} />}\n >\n <FooterCTAButton href={ctaHref} onClick={onCtaClick}>\n {ctaContent}\n </FooterCTAButton>\n </FooterShell>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styles from \"./KundliForm.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n translations,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { useKundliContext } from \"../KundliPage/KundliContext\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport { FormHeader, ProceedFooter, UserInfoFormSection } from \"./sections\";\nimport { KundliHeader } from \"../KundliPage/sections\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\n\n// TODO: Put this in .env\nconst DEFAULT_GOOGLE_MAPS_API_KEY = \"AIzaSyCEsEBy-JYuu9SSITQrpYU3tpaq5HQOhi4\";\n\nexport interface KundliFormValues {\n fullName: string;\n phone?: string;\n email: string;\n dateOfBirth: string; // ISO yyyy-mm-dd (or empty)\n birthTime: string; // HH:mm (or empty)\n birthTimeUnknown: boolean;\n birthPlace: string;\n}\n\nexport interface KundliFormProps {\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n\n /** Back button handler in header */\n onBack?: () => void;\n\n /** Initial field values */\n initialValues?: Partial<KundliFormValues>;\n\n /** Called when user clicks Proceed to payment */\n onProceed?: (values: KundliFormValues) => void;\n\n /** If provided, proceed CTA becomes a link */\n proceedHref?: string;\n\n /** Footer pricing */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n\n /** Google Maps API key used for Birth Place autocomplete */\n googleMapsApiKey?: string;\n\n /** Optional analytics (Mixpanel etc.). Also set on KundliProvider; passing here ensures events fire when form is used inside provider (e.g. avoids context loss from multiple React instances). */\n analytics?: KundliAnalytics;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\nconst DEFAULT_VALUES: KundliFormValues = {\n fullName: \"\",\n phone: \"\",\n email: \"\",\n dateOfBirth: \"\",\n birthTime: \"\",\n birthTimeUnknown: false,\n birthPlace: \"\",\n};\n\nexport const KundliForm: React.FC<KundliFormProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n onBack,\n initialValues,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n googleMapsApiKey = DEFAULT_GOOGLE_MAPS_API_KEY,\n analytics: analyticsProp,\n}) => {\n const kundliCtx = useKundliContext();\n const i18n = useI18n();\n\n const isConnected = kundliCtx !== null;\n\n const effectiveLocaleProp = isConnected ? kundliCtx.locale : localeProp;\n const initialLocale = effectiveLocaleProp ?? i18n?.locale ?? \"en\";\n const [localLocale, setLocalLocale] =\n useState<SupportedLocale>(initialLocale);\n const locale = isConnected ? kundliCtx.locale : localLocale;\n const setLocale = isConnected ? kundliCtx.setLocale : setLocalLocale;\n\n const [langOpen, setLangOpen] = useState(false);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(effectiveLocaleProp);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n // Scroll to top when form is shown (e.g. when navigating from landing)\n useEffect(() => {\n window.scrollTo({ top: 0, left: 0, behavior: \"auto\" });\n }, []);\n\n const t = (key: string) => tFromLocale(locale, key);\n\n useEffect(() => {\n if (effectiveLocaleProp && prevLocalePropRef.current !== effectiveLocaleProp) {\n setLocale(effectiveLocaleProp);\n }\n prevLocalePropRef.current = effectiveLocaleProp;\n }, [effectiveLocaleProp, setLocale]);\n\n useEffect(() => {\n if (effectiveLocaleProp) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, effectiveLocaleProp, setLocale]);\n\n const [localValues, setLocalValues] = useState<KundliFormValues>({\n ...DEFAULT_VALUES,\n ...initialValues,\n phone: initialValues?.phone ?? \"\",\n });\n\n const values = isConnected ? kundliCtx.formValues : localValues;\n const setValues = isConnected ? kundliCtx.setFormValues : setLocalValues;\n\n const effectiveOnBack = isConnected ? kundliCtx.goToPage : onBack;\n const effectiveOnProceed = isConnected ? kundliCtx.onProceed : onProceed;\n const effectiveProceedHref = isConnected ? kundliCtx.config.proceedHref : proceedHref;\n const effectiveOriginalPrice = isConnected ? kundliCtx.config.originalPriceLabel : originalPriceLabel;\n const effectiveDiscountedPrice = isConnected ? kundliCtx.config.discountedPriceLabel : discountedPriceLabel;\n const effectiveDiscountPill = isConnected ? kundliCtx.config.discountPillLabel : discountPillLabel;\n const effectiveShowLanguageSelector = isConnected\n ? (kundliCtx.config.showLanguageSelector ?? true)\n : showLanguageSelector;\n // Prefer context analytics when inside KundliProvider; fall back to prop (e.g. when context is null due to multiple React instances or code-splitting)\n const analytics =\n (isConnected ? kundliCtx?.config?.analytics : analyticsProp) ?? analyticsProp;\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n const languageSelector = effectiveShowLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-form-lang\"\n aria-label={t(\"language\")}\n >\n <img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n aria-hidden\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-form-lang\"\n aria-activedescendant={`kundli-form-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-form-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={isConnected ? kundliCtx.config.logoUrl : undefined}\n languageSelector={languageSelector}\n className={styles.kundliHeaderNoBorder}\n />\n <div className={styles.headerSeparator} aria-hidden />\n <main className={styles.main}>\n <FormHeader t={t} onBack={effectiveOnBack} />\n <UserInfoFormSection\n t={t}\n values={values}\n onChange={setValues}\n googleMapsApiKey={googleMapsApiKey}\n />\n </main>\n <ProceedFooter\n t={t}\n values={values}\n onProceed={effectiveOnProceed}\n href={effectiveProceedHref}\n originalPriceLabel={effectiveOriginalPrice}\n discountedPriceLabel={effectiveDiscountedPrice}\n discountPillLabel={effectiveDiscountPill}\n analytics={analytics}\n />\n </div>\n );\n};\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport styles from \"./KundliPage.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n translations,\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { KundliForm } from \"../KundliForm\";\nimport { KundliProvider, useKundliContextOrThrow } from \"./KundliContext\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nimport {\n KundliHeader,\n HeroSection,\n PremiumReportOverview,\n UniversityCertification,\n ThreeStepsProcess,\n ViewSampleReportButton,\n WhatYoullFindSection,\n WhyUsSection,\n FeedbackSection,\n FAQSection,\n ContactUsSection,\n CTAFooter,\n} from \"./sections\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\n\nexport interface KundliPageProps {\n /** Optional CSS class name */\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n /** User ID from auth, for API calls etc. */\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n /** Header logo URL */\n logoUrl?: string;\n /** Premium report cover image URL */\n reportImageUrl?: string;\n /** University logo URLs [BHU, VSU] */\n universityLogoUrls?: [string?, string?];\n /** Sample report link (opens in new tab) */\n sampleReportHref?: string;\n /** Called when \"View Sample Report\" is clicked (if sampleReportHref not set) */\n onViewSampleReport?: () => void;\n /** CTA button link (e.g. checkout URL). If set, CTA is a link; otherwise CTA shows the Kundli form. */\n ctaHref?: string;\n /** Called when CTA button is clicked (if ctaHref not set). Also called after navigating to form when integrated. */\n onCtaClick?: () => void;\n /** Read more reviews link */\n readMoreReviewsHref?: string;\n /** Called when user proceeds from the form (e.g. to payment) */\n onProceed?: (values: KundliFormValues) => void;\n /** Form: proceed CTA as link */\n proceedHref?: string;\n /** Form: pricing labels */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n /** Optional analytics implementation for Mixpanel/tracking events */\n analytics?: KundliAnalytics;\n /** Notify when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\n/** Height of the sticky CTA footer (matches space reserved in main, e.g. pb-28). */\nconst CTA_FOOTER_HEIGHT_PX = 112;\n\n/** Wraps a section and fires trackDetailedKundliReportImpressionFe when it enters the viewport. */\nfunction SectionWithImpression({\n section,\n children,\n onImpression,\n}: {\n section: string;\n children: React.ReactNode;\n onImpression: (section: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const reported = useRef(false);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting || reported.current) return;\n reported.current = true;\n onImpression(section);\n },\n {\n threshold: 0.1,\n // Shrink bottom of viewport by CTA footer height so we only count content actually visible above the sticky footer\n rootMargin: `0px 0px -${CTA_FOOTER_HEIGHT_PX}px 0px`,\n }\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [section, onImpression]);\n return <div ref={ref}>{children}</div>;\n}\n\n/** Renders either the landing page or the form based on context view */\nfunction KundliPageRouter({ className }: { className: string }) {\n const { view } = useKundliContextOrThrow();\n if (view === \"form\") {\n return <KundliForm />;\n }\n return <KundliPageContent className={className} />;\n}\n\n/** Landing page content (hero, steps, CTA, etc.). Uses context for locale and CTA → form. */\nfunction KundliPageContent({ className }: { className: string }) {\n const i18n = useI18n();\n const {\n locale,\n setLocale,\n config,\n goToForm,\n } = useKundliContextOrThrow();\n\n const [langOpen, setLangOpen] = useState(false);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(config.locale);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n useEffect(() => {\n if (config.locale && prevLocalePropRef.current !== config.locale) {\n setLocale(config.locale);\n }\n prevLocalePropRef.current = config.locale;\n }, [config.locale, setLocale]);\n\n useEffect(() => {\n if (config.locale) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, config.locale, setLocale]);\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n const t = (key: string) => tFromLocale(locale, key);\n const showLanguageSelector = config.showLanguageSelector ?? true;\n\n const languageSelector = showLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n config.analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-lang\"\n aria-label={t(\"language\")}\n >\n <img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n aria-hidden\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-lang\"\n aria-activedescendant={`kundli-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n config.analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n const handleCtaClick = (e: React.MouseEvent<HTMLElement>) => {\n const ctaText =\n (e.currentTarget as HTMLElement).innerText?.trim() ?? t(\"ctaButtonAfter\");\n config.analytics?.trackPrimaryCtaClickedFe?.({ ctaText });\n goToForm();\n config.onCtaClick?.();\n };\n\n const handleSectionImpression = useCallback(\n (section: string) => {\n config.analytics?.trackDetailedKundliReportImpressionFe?.({\n section,\n timestamp: new Date().toISOString(),\n });\n },\n [config.analytics]\n );\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={config.logoUrl}\n languageSelector={languageSelector}\n />\n <main className={styles.main}>\n <SectionWithImpression\n section=\"hero\"\n onImpression={handleSectionImpression}\n >\n <HeroSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"premium_report_overview\"\n onImpression={handleSectionImpression}\n >\n <PremiumReportOverview\n t={t}\n reportImageUrl={config.reportImageUrl}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"university_certification\"\n onImpression={handleSectionImpression}\n >\n <UniversityCertification\n t={t}\n logoUrl={config.universityLogoUrls?.find((u): u is string => Boolean(u))}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"three_steps_process\"\n onImpression={handleSectionImpression}\n >\n <ThreeStepsProcess t={t} locale={locale} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"view_sample_report\"\n onImpression={handleSectionImpression}\n >\n <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"what_youll_find\"\n onImpression={handleSectionImpression}\n >\n <WhatYoullFindSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"why_us\"\n onImpression={handleSectionImpression}\n >\n <WhyUsSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"feedback\"\n onImpression={handleSectionImpression}\n >\n <FeedbackSection t={t} readMoreHref={config.readMoreReviewsHref} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"faq\"\n onImpression={handleSectionImpression}\n >\n <FAQSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"contact_us\"\n onImpression={handleSectionImpression}\n >\n <ContactUsSection t={t} />\n </SectionWithImpression>\n </main>\n <CTAFooter\n t={t}\n ctaHref={config.ctaHref}\n onCtaClick={config.ctaHref ? undefined : handleCtaClick}\n />\n </div>\n );\n}\n\nexport const KundliPage: React.FC<KundliPageProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n}) => {\n return (\n <KundliProvider\n locale={localeProp}\n showLanguageSelector={showLanguageSelector}\n userId={userId}\n isGlobal={isGlobal}\n logoUrl={logoUrl}\n reportImageUrl={reportImageUrl}\n universityLogoUrls={universityLogoUrls}\n sampleReportHref={sampleReportHref}\n onViewSampleReport={onViewSampleReport}\n ctaHref={ctaHref}\n onCtaClick={onCtaClick}\n readMoreReviewsHref={readMoreReviewsHref}\n onProceed={onProceed}\n proceedHref={proceedHref}\n originalPriceLabel={originalPriceLabel}\n discountedPriceLabel={discountedPriceLabel}\n discountPillLabel={discountPillLabel}\n analytics={analytics}\n onLocaleChange={onLocaleChange}\n >\n <KundliPageRouter className={className} />\n </KundliProvider>\n );\n};\n","/**\n * Event names matching Kundli Generator Events taxonomy (Mixpanel).\n * Host app (e.g. hanuman) should use these when calling logEvent.\n */\nexport const KUNDLI_ANALYTICS_EVENT_NAMES = {\n banner_clicked_fe: 'banner_clicked_fe',\n primary_cta_clicked_fe: 'primary_cta_clicked_fe',\n language_changed_fe: 'language_changed_fe',\n language_clicked_fe: 'language_clicked_fe',\n retry_payment: 'retry_payment',\n detailed_kundli_report_impression_fe: 'detailed_kundli_report_impression_fe',\n payment_partner_page_opened: 'payment_partner_page_opened',\n view_sample_report_clicked: 'view_sample_report_clicked',\n view_sample_report_closed: 'view_sample_report_closed',\n info_icon_clicked: 'info_icon_clicked',\n name_section_clicked: 'name_section_clicked',\n name_section_filled: 'name_section_filled',\n phone_section_clicked: 'phone_section_clicked',\n phone_section_filled: 'phone_section_filled',\n email_section_clicked: 'email_section_clicked',\n email_section_filled: 'email_section_filled',\n dob_clicked: 'dob_clicked',\n dob_filled: 'dob_filled',\n time_clicked: 'time_clicked',\n time_filled: 'time_filled',\n time_checkbox_clicked: 'time_checkbox_clicked',\n place_of_birth_clicked: 'place_of_birth_clicked',\n place_of_birth_chosen: 'place_of_birth_chosen',\n language_of_report_clicked: 'language_of_report_clicked',\n primary_cta_clicked_l1: 'primary_cta_clicked_l1',\n /** Legacy / alias: when landing page is viewed */\n kundli_page_view: 'kundli_page_view',\n /** Legacy / alias: when L1 form page is viewed (same as l1_page_opened) */\n kundli_form_view: 'kundli_form_view',\n} as const\n\nexport type KundliAnalyticsEventName =\n (typeof KUNDLI_ANALYTICS_EVENT_NAMES)[keyof typeof KUNDLI_ANALYTICS_EVENT_NAMES]\n\n/** Optional analytics implementation. Pass from host to KundliPage/KundliForm to track events. */\nexport interface KundliAnalytics {\n trackBannerClicked?(): void\n trackPrimaryCtaClickedFe?(params: { ctaText?: string }): void\n trackLanguageChangedFe?(params: { newLanguage: string }): void\n trackLanguageClickedFe?(params: { language: string }): void\n trackDetailedKundliReportImpressionFe?(params: {\n section: string\n timestamp?: string\n }): void\n trackViewSampleReportClicked?(): void\n trackViewSampleReportClosed?(): void\n trackInfoIconClicked?(params: { fieldName: string }): void\n trackNameSectionClicked?(): void\n trackNameSectionFilled?(): void\n trackPhoneSectionClicked?(): void\n trackPhoneSectionFilled?(): void\n trackEmailSectionClicked?(): void\n trackEmailSectionFilled?(): void\n trackDobClicked?(): void\n trackDobFilled?(): void\n trackTimeClicked?(): void\n trackTimeFilled?(): void\n trackTimeCheckboxClicked?(): void\n trackPlaceOfBirthClicked?(): void\n trackPlaceOfBirthChosen?(): void\n trackLanguageOfReportClicked?(): void\n trackPrimaryCtaClickedL1?(params: { avenue?: string }): void\n trackKundliPageView?(): void\n trackKundliFormView?(): void\n}\n"],"names":["f","k","l","m","n","p","q","c","a","g","b","d","e","h","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","jsxRuntimeModule","require$$0","require$$1","locale","testKey","stored","localeProp","showLanguageSelector","userId","isGlobal","logoUrl","reportImageUrl","universityLogoUrls","sampleReportHref","onViewSampleReport","ctaHref","onCtaClick","onBack","readMoreReviewsHref","onProceed","proceedHref","originalPriceLabel","discountedPriceLabel","discountPillLabel","analytics","onLocaleChange","view","setView","setLocale","formValues","setFormValues","isInitialLocaleMount","goToForm","goToPage","ctx","styles","t","className","apiKey","language","resolve","reject","existing","script","url","start","check","params","restrictCountry","isLoaded","setIsLoaded","predictions","setPredictions","isSearching","setIsSearching","loadError","setLoadError","autocompleteService","placesService","sessionToken","div","searchPlaces","query","request","response","preds","status","getPlaceDetails","placeId","place","result","lat","lng","city","state","country","component","clearPredictions","onChange","analyticsProp","googleMapsApiKey","kundliCtx","filledRef","update","patch","trackFilled","field","newValue","sanitizePhone10","raw","dobRef","lastOpenedPickerRef","lastOpenedPickerAtRef","timeWrapRef","timeOpen","setTimeOpen","timeDraft","setTimeDraft","pad2","to12HourDisplay","hhmm","hour24","minute","meridiem","from24ToDraft","draftTo24","draft","hour12","placeWrapRef","placeOpen","setPlaceOpen","infoOpen","setInfoOpen","googleApiKey","placeQuery","placeCountryRestriction","placeLanguage","placeSuggestions","placeLoading","placeLoadError","onDocMouseDown","handle","toggleNativePicker","el","onKeyDown","v","Fragment","today","maxDate","o","_","marquee","href","disabled","onClick","ariaLabel","buttonClass","ariaProps","email","phone","canProceed","original","discounted","discountPill","buttonContent","content","DEFAULT_LOGO_URL","languageSelector","handleClick","index","root","factory","__unused_webpack_module","exports","assert","bytesToString","createPromiseCapability","createValidAbsoluteUrl","getModificationDate","getVerbosityLevel","isArrayBuffer","isArrayEqual","objectFromMap","objectSize","setVerbosityLevel","shadow","string32","stringToBytes","stringToPDFString","stringToUTF8String","unreachable","utf8StringToString","warn","IDENTITY_MATRIX","FONT_IDENTITY_MATRIX","LINE_FACTOR","LINE_DESCENT_FACTOR","BASELINE_FACTOR","RenderingIntentFlag","AnnotationMode","AnnotationEditorPrefix","AnnotationEditorType","AnnotationEditorParamsType","PermissionFlag","TextRenderingMode","ImageKind","AnnotationType","AnnotationStateModelType","AnnotationMarkedState","AnnotationReviewState","AnnotationReplyType","AnnotationFlag","AnnotationFieldFlag","AnnotationBorderStyleType","AnnotationActionEventType","DocumentActionEventType","PageActionEventType","VerbosityLevel","CMapCompressionType","OPS","UNSUPPORTED_FEATURES","PasswordResponses","verbosity","msg","cond","_isValidProtocol","baseUrl","options","dots","absoluteUrl","obj","prop","nonSerializable","BaseException","message","PasswordException","code","UnknownErrorException","details","InvalidPDFException","MissingPDFException","UnexpectedResponseException","FormatError","AbortException","bytes","length","MAX_ARGUMENT_COUNT","strBuf","chunkEnd","chunk","str","map","isLittleEndian","buffer8","isEvalSupported","FeatureTest","hexNumbers","Util","r","transform","minMax","temp","m1","m2","xt","yt","p1","p2","p3","p4","transpose","first","second","sx","sy","rect","rect1","rect2","xLow","xHigh","yLow","yHigh","x0","y0","x1","y1","x2","y2","x3","y3","tvalues","bounds","t1","t2","b2ac","sqrtb2ac","j","mt","jlen","PDFStringTranslateTable","encoding","decoder","buffer","ii","arr1","arr2","date","capability","isSettled","data","reason","NodeCanvasFactory","NodeCMapReaderFactory","NodeStandardFontDataFactory","PDFNodeStream","PDFNetworkStream","PDFFetchStream","src","task","httpHeaders","withCredentials","password","rangeTransport","rangeChunkSize","worker","docBaseUrl","cMapUrl","cMapPacked","CMapReaderFactory","standardFontDataUrl","StandardFontDataFactory","ignoreErrors","maxImageSize","isOffscreenCanvasSupported","disableFontFace","fontExtraProperties","enableXfa","ownerDocument","disableRange","disableStream","disableAutoFetch","pdfBug","useSystemFonts","useWorkerFetch","styleElement","transportFactory","workerParams","docId","fetchDocParams","transportParams","workerIdPromise","networkStreamPromise","networkStream","workerId","messageHandler","transport","val","#docId","#onUnsupportedFeature","callback","initialData","progressiveDone","contentDispositionFilename","listener","begin","loaded","total","end","pdfInfo","pageNumber","id","keepLoadedFonts","pageIndex","pageInfo","scale","rotation","offsetX","offsetY","dontFlip","intent","intentArgs","canvasContext","viewport","annotationMode","canvasFactory","background","optionalContentConfigPromise","annotationCanvasMap","pageColors","printAnnotationStorage","intentState","canvasFactoryInstance","intentPrint","complete","internalRenderTask","renderTask","transparency","optionalContentConfig","operatorListChanged","opListTask","disableCombineTextItems","includeMarkedContent","textContent","xfa","readableStream","pump","reader","done","waitOn","resetStats","renderTasks","operatorList","cacheKey","operatorListChunk","renderingIntent","annotationStorageMap","force","delay","curCacheKey","curIntentState","#listeners","#deferred","transfers","event","require","pdfjsFilePath","otherUrl","base","other","wrapper","port","workerSrc","terminateEarly","onWorkerError","sendTest","testObj","WorkerMessageHandler","workerHandler","#methodPromises","#pageCache","#pagePromises","loadingTask","#cacheSimpleMethod","cachedPromise","promise","isOpList","annotationMap","page","terminated","sink","evt","readyReason","headersCapability","fullReader","rangeReader","exception","updatePassword","exportedData","exportedError","fontRegistry","font","imageData","pageProxy","MAX_IMAGE_SIZE_TO_STORE","width","height","featureId","results","#objs","#ensureObj","objId","#internalRenderTask","extraDelay","separateAnnots","#canvasInUse","objs","commonObjs","useRequestAnimationFrame","__w_pdfjs_require__","_util","_editor","_murmurhash","AnnotationStorage","#modified","#storage","defaultValue","modified","entry","#setModified","PrintAnnotationStorage","clone","serialized","hash","#serializable","parent","_tools","AnnotationEditor","#boundFocusin","#boundFocusout","#hasBeenSelected","#isEditing","#isInEditMode","#zIndex","parameters","pageWidth","pageHeight","pageX","pageY","y","tx","ty","realScale","parentWidth","parentHeight","style","widthPercent","heightPercent","isMac","shiftX","shiftY","uiManager","editor","bindEvents","opacityToHex","_display_utils","names","opacity","IdManager","#id","CommandManager","#commands","#locked","#maxSize","#position","maxSize","cmd","undo","mustExec","overwriteIfSameType","keepUndo","save","next","KeyboardManager","callbacks","isMacKey","#serialize","ColorManager","colors","color","rgb","RGB","AnnotationEditorUIManager","#activeEditor","#allEditors","#allLayers","#annotationStorage","#commandManager","#currentPageIndex","#editorTypes","#editorsToRescale","#eventBus","#idManager","#isEnabled","#mode","#selectedEditors","#boundCopy","#boundCut","#boundPaste","#boundKeydown","#boundOnEditingAction","#boundOnPageChanging","#boundOnScaleChanging","#boundOnRotationChanging","#previousStates","#container","container","eventBus","annotationStorage","#removeKeyboardManager","layer","pagesRotation","#addKeyboardManager","#addCopyPasteListeners","#removeCopyPasteListeners","editors","newEditors","deserializedEditor","#addEditorToLayer","#selectEditors","#dispatchUpdateStates","#dispatchUpdateUI","isEditing","#isEmpty","types","editorType","mode","#disableAll","#enableAll","ed","deprecated","getColorValues","getCurrentTransform","getCurrentTransformInverse","getFilenameFromUrl","getPdfFilenameFromUrl","getRGB","getXfaPageViewport","isDataScheme","isPdfFile","isValidFetchUrl","loadScript","setLayerDimensions","_base_factory","SVG_NS","AnnotationPrefix","PixelsPerInch","DOMCanvasFactory","canvas","fetchData","asTypedArray","DOMCMapReaderFactory","compressionType","DOMStandardFontDataFactory","DOMSVGFactory","PageViewport","viewBox","centerX","centerY","rotateA","rotateB","rotateC","rotateD","offsetCanvasX","offsetCanvasY","topLeft","bottomRight","RenderingCancelledException","filename","onlyStripPath","defaultFilename","reURI","reFilename","splitURI","suggestedFilename","StatTimer","outBuf","longest","protocol","removeScriptElement","pdfDateStringRegex","PDFDateString","input","matches","year","month","day","hour","universalTimeRelation","offsetHour","offsetMinute","xfaPage","colorRGB","span","computedColor","mustFlip","mustRotate","widthStr","heightStr","BaseCanvasFactory","canvasAndContext","BaseCMapReaderFactory","isCompressed","BaseStandardFontDataFactory","BaseSVGFactory","skipDimensions","svg","SEED","MASK_HIGH","MASK_LOW","MurmurHash3_64","seed","blockCounts","tailLength","dataUint32","k1","k2","h1","h2","C1","C2","C1_LOW","C2_LOW","_is_node","FontLoader","onUnsupportedFeature","nativeFontFace","rule","styleSheet","hasFonts","supported","completeRequest","loadingRequests","otherRequest","testFont","int32","offset","spliceString","remove","insert","chunk1","chunk2","called","isFontReady","loadTestFontId","CFF_CHECKSUM_OFFSET","XXXX_VALUE","checksum","FontFaceObject","translatedData","css","character","cmds","size","jsBuf","current","isNodeJS","_pattern_helper","_image_utils","MIN_FONT_SIZE","MAX_FONT_SIZE","MAX_GROUP_SIZE","EXECUTION_TIME","EXECUTION_STEPS","MAX_SIZE_TO_COMPILE","FULL_CHUNK_HEIGHT","mirrorContextOperations","destCtx","angle","cp1x","cp1y","cp2x","cp2y","CachedCanvases","canvasEntry","drawImageAtIntegerCoords","srcImg","srcX","srcY","srcW","srcH","destX","destY","destW","destH","tlX","rTlX","tlY","rTlY","brX","rWidth","brY","rHeight","scaleX","scaleY","compileType3Glyph","imgData","POINT_TO_PROCESS_LIMIT","POINT_TYPES","width1","points","j0","lineSize","pos","elem","mask","count","sum","steps","path","p0","pp","CanvasExtraState","box","pathType","xStrokePad","yStrokePad","intersect","putBinaryImageData","transferMaps","partialChunkHeight","fullChunks","totalChunks","chunkImgData","srcPos","destPos","dest","thisChunkHeight","elemsInThisChunk","transferMapRed","transferMapGreen","transferMapBlue","transferMapGray","srcLength","dest32","dest32DataLength","fullSrcDiff","white","black","srcDiff","kEnd","kEndUnrolled","srcByte","hasTransferMaps","putBinaryImageMask","copyCtxState","sourceCtx","properties","property","resetCtxToDefault","foregroundColor","composeSMaskBackdrop","r0","g0","b0","alpha","alpha_","composeSMaskAlpha","maskData","layerData","transferMap","composeSMaskLuminosity","genericComposeSMask","maskCtx","layerCtx","subtype","backdrop","layerOffsetX","layerOffsetY","maskOffsetX","maskOffsetY","hasBackdrop","composeFn","chunkSize","row","chunkHeight","composeSMask","smask","layerBox","layerWidth","layerHeight","getImageSmoothingEnabled","interpolate","actualScale","LINE_CAP_STYLES","LINE_JOIN_STYLES","NORMAL_CLIP","EO_CLIP","CanvasGraphics","canvasCtx","markedContentStack","fallback","defaultBackgroundColor","fg","bg","isValidDefaultBg","defaultBg","rB","gB","bB","newComp","lumB","lumC","transparentCanvas","executionStartIdx","continueCallback","stepper","argsArray","fnArray","argsArrayLen","chunkOperations","endTime","fnId","depObjId","objsPool","#restoreInitialState","cache","img","inverseTransform","widthScale","heightScale","paintWidth","paintHeight","tmpCanvasId","tmpCanvas","tmpCtx","newWidth","newHeight","fillColor","isPatternFill","currentTransform","scaled","maskCanvas","mainKey","cachedImage","maskToCanvas","cord1","cord2","drawnWidth","drawnHeight","fillCanvas","fillCtx","inverse","limit","dashArray","dashPhase","flatness","states","inSMaskMode","cacheId","scratchCanvas","dirtyBox","suspendedCtx","old","ops","startX","startY","isScalingMatrix","minMaxForBezier","xw","yh","consumePath","strokeColor","needRestore","paths","spacing","leading","fontRefName","fontObj","bold","italic","typeface","browserFontSize","rise","patternTransform","textRenderingMode","fontSize","fillStrokeMode","isAddToPathSet","patternFill","addToPath","enabled","glyphs","fontSizeScale","charSpacing","wordSpacing","fontDirection","textHScale","glyphsLength","vertical","spacingDir","defaultVMetrics","widthAdvanceScale","simpleFillText","pattern","lineWidth","chars","glyph","restoreNeeded","accent","scaledX","scaledY","vmetric","vx","vy","measuredWidth","characterScaleX","scaledAccentX","scaledAccentY","charWidth","fontMatrix","isTextInvisible","spacingLength","xWidth","yWidth","llx","lly","urx","ury","IR","baseTransform","canvasGraphicsFactory","matrix","inv","bl","br","ul","ur","bbox","group","currentCtx","canvasBounds","groupCtx","currentMtx","hasOwnCanvas","viewportScale","canvasWidth","canvasHeight","skewX","skewY","positions","trans","images","image","imgToPaint","w","tag","clipBox","isEmpty","absDet","normX","normY","scaledXLineWidth","scaledYLineWidth","baseArea","saveRestore","savedMatrix","savedDashes","savedDashOffset","op","getShadingPattern","PathType","applyBoundingBox","region","BaseShadingPattern","RadialAxialShadingPattern","grad","colorStop","ownerBBox","domMatrix","drawTriangle","c1","c2","c3","coords","rowSize","tmp","c1r","c1g","c1b","c2r","c2g","c2b","c3r","c3g","c3b","minY","maxY","xa","car","cag","cab","xb","cbr","cbg","cbb","x1_","x2_","drawFigure","figure","ps","cs","verticesPerRow","rows","cols","MeshShadingPattern","combinedScale","backgroundColor","cachedCanvases","boundsWidth","boundsHeight","paddedWidth","paddedHeight","matrixScale","temporaryPatternCanvas","DummyShadingPattern","PaintType","TilingPattern","xstep","ystep","paintType","tilingType","curMatrixScale","dimx","dimy","graphics","adjustedX0","adjustedY0","adjustedX1","adjustedY1","realOutputSize","bboxWidth","bboxHeight","cssColor","applyMaskImageData","inverseDecode","opaque","zeroMapping","oneMapping","widthInSource","widthRemainder","max","GlobalWorkerOptions","CallbackKind","StreamKind","wrapReason","MessageHandler","sourceName","targetName","comObj","callbackId","action","cbSourceName","cbTargetName","actionName","handler","ah","queueingStrategy","streamId","controller","startCapability","pullCapability","cancelCapability","streamSink","lastDesiredSize","streamController","Metadata","#metadataMap","#data","parsedData","rawData","INTERNAL","OptionalContentGroup","#visible","internal","visible","OptionalContentConfig","#cachedGetHash","#groups","#initialHash","#order","on","off","#evaluateVisibilityExpression","array","operator","PDFDataTransportStream","pdfDataRangeTransport","found","queuedChunks","PDFDataTransportStreamReader","PDFDataTransportStreamRangeReader","stream","requestCapability","XfaText","items","output","walk","_network_utils","fs","http","require$$2","https","require$$3","require$$4","fileUriRegex","parseUrl","sourceUrl","parsedUrl","PDFNodeStreamFsFullReader","PDFNodeStreamFullReader","PDFNodeStreamFsRangeReader","PDFNodeStreamRangeReader","BaseFullReader","BaseRangeReader","createRequestOptions","headers","handleResponse","getResponseHeader","allowRangeRequests","suggestedLength","stat","createResponseStatusError","extractFilenameFromHeader","validateRangeRequestCapabilities","validateResponseStatus","_content_disposition","isHttp","returnValues","contentDisposition","getFilenameFromContentDispositionHeader","needsEncodingFixup","toParamRegExp","rfc2616unquote","rfc5987decode","rfc2047decode","fixupEncoding","rfc2231getparam","attributePattern","flags","textdecode","contentDispositionStr","iter","quot","part","parts","quotindex","extvalue","encodingend","charset","text","hex","OK_RESPONSE","PARTIAL_CONTENT_RESPONSE","getArrayBuffer","xhr","NetworkManager","listeners","xhrId","pendingRequest","xhrStatus","rangeHeader","PDFNetworkStreamFullRequestReader","PDFNetworkStreamRangeRequestReader","manager","fullRequestXhrId","fullRequestXhr","createFetchOptions","abortController","createHeaders","PDFFetchStreamReader","PDFFetchStreamRangeReader","renderTextLayer","updateTextLayer","MAX_TEXT_DIVS_TO_RENDER","DEFAULT_FONT_SIZE","DEFAULT_FONT_ASCENT","ascentCache","getCtx","getAscent","fontFamily","cachedAscent","metrics","ascent","descent","ratio","pixels","appendText","geom","textDiv","textDivProperties","fontHeight","fontAscent","left","top","scaleFactorStr","divStyle","shouldScaleText","absScaleX","absScaleY","layout","prevFontSize","prevFontFamily","render","textDivs","TextLayerRenderTask","textContentSource","textContentItemsStr","styleCache","mustRescale","_freetext","_ink","AnnotationEditorLayer","#accessibilityManager","#allowClick","#boundPointerup","#boundPointerdown","#editors","#hadPointerDown","#isCleaningUp","#uiManager","#cleanup","isCommitting","#createAndAddNewEditor","#changeParent","#createNewEditor","endX","endY","FreeTextEditor","#boundEditorDivBlur","#boundEditorDivFocus","#boundEditorDivInput","#boundEditorDivKeydown","#color","#content","#editorDivId","#hasAlreadyBeenCommitted","#fontSize","l10n","#updateFontSize","#updateColor","setFontsize","#setEditorDimensions","savedFontsize","savedColor","#extractText","divs","currentLayer","savedDisplay","baseX","baseY","line","padding","_pdfjsFitCurve","RESIZER_SIZE","TIME_TO_WAIT_BEFORE_FIXING_DIMS","InkEditor","#aspectRatio","#baseHeight","#baseWidth","#boundCanvasPointermove","#boundCanvasPointerleave","#boundCanvasPointerup","#boundCanvasPointerdown","#disableEditing","#isCanvasInitialized","#lastPoint","#observer","#realWidth","#realHeight","#requestFrameCallback","#updateThickness","#updateOpacity","thickness","savedThickness","#fitToContent","#redraw","savedOpacity","#createCanvas","#createObserver","#setCanvasDims","#getInitialBBox","parentRotation","#setStroke","parentScale","scaleFactor","#startDrawing","#draw","lastX","lastY","#stopDrawing","bezier","xy","path2D","#buildPath2D","#updateTransform","#endDrawing","timeoutId","entries","#setMinDims","roundedWidth","roundedHeight","#setScaleFactor","#getPadding","scaleFactorW","scaleFactorH","control1","control2","#serializePaths","p10","p11","p20","p21","p30","p31","p40","p41","#extractPointsOnBezier","#isAlmostFlat","q10","q11","q20","q21","q30","q31","ax","ay","bx","by","#getBbox","xMin","xMax","yMin","yMax","firstTime","prevTranslationX","prevTranslationY","unscaledPadding","fitCurve","module","maxError","progressCallback","point","len","leftTangent","createTangent","rightTangent","fitCubic","bezCurve","u","uPrime","prevErr","splitPoint","prevSplit","centerVector","toCenterTangent","fromCenterTangent","beziers","dist","maths","chordLengthParameterize","generateAndReport","reparameterize","errChange","paramsOrig","paramsPrime","generateBezier","computeMaxError","A","C","X","det_C0_C1","det_C0_X","det_X_C1","alpha_l","alpha_r","epsilon","segLength","ux","firstPoint","lastPoint","newtonRaphsonRootFind","bez","qprime","numerator","denominator","currU","prevU","prevP","maxDist","t_distMap","mapTtoRelativeDistances","find_t","B_parts","B_t_curr","B_t_dist","B_t_prev","sumLen","param","lenMax","lenMin","tMax","tMin","pointA","pointB","zs","multiplier","addition","divisor","ctrlPoly","pA","pB","pC","pD","_annotation_storage","_scripting_utils","_xfa_layer","DEFAULT_TAB_INDEX","GetElementsByNameSet","getRectDims","AnnotationElementFactory","LinkAnnotationElement","TextAnnotationElement","TextWidgetAnnotationElement","RadioButtonWidgetAnnotationElement","CheckboxWidgetAnnotationElement","PushButtonWidgetAnnotationElement","ChoiceWidgetAnnotationElement","WidgetAnnotationElement","PopupAnnotationElement","FreeTextAnnotationElement","LineAnnotationElement","SquareAnnotationElement","CircleAnnotationElement","PolylineAnnotationElement","CaretAnnotationElement","InkAnnotationElement","PolygonAnnotationElement","HighlightAnnotationElement","UnderlineAnnotationElement","SquigglyAnnotationElement","StrikeOutAnnotationElement","StampAnnotationElement","FileAttachmentAnnotationElement","AnnotationElement","isRenderable","ignoreBorder","createQuadrilaterals","horizontalRadius","verticalRadius","radius","borderColor","elementWidth","elementHeight","setColor","jsName","styleName","hidden","actions","jsEvent","commonActions","storedData","detail","eventProxy","quadrilaterals","savedRect","quadPoint","trigger","popup","PopupElement","quadrilateral","skipId","fields","fieldObj","exportValues","exportValue","domElement","linkService","link","isBound","#bindSetOCGState","linkElement","#setInternalLink","destination","attachment","resetForm","otherClickAction","resetFormFields","resetFormRefs","include","allFields","fieldIds","fieldName","storage","allIds","isWin","baseName","eventName","valueGetter","TEXT_ALIGNMENT","fontColor","computedFontSize","BORDER_SIZE","roundToOneDecimal","numberOfLines","lineHeight","isRequired","keyInStorage","maxLen","elementData","blurListener","formattedValue","target","charLimit","commitKey","_blurListener","selectionStart","selectionEnd","selStart","selEnd","combWidth","checked","checkbox","curChecked","radio","pdfButtonValue","selectElement","addAnEmptyEntry","option","optionElement","removeEmptyEntry","noneOptionElement","getValue","isExport","multiple","selectedValues","getItems","displayValue","selectChild","indices","parentElements","popupLeft","popupTop","title","dateObject","modificationDate","contents","dir","lines","pin","unpin","lineSpan","borderWidth","square","circle","coordinate","polyline","inkList","AnnotationLayer","#appendElement","accessibilityManager","contentElement","annotations","elementParams","zIndex","rendered","renderedElement","#setAnnotationCanvasMap","firstChild","makeColorComp","ColorConverters","G","R","B","components","_xfa_text","XfaLayer","html","attributes","isHTMLAnchorElement","rootHtml","rootDiv","childHtml","SVGGraphics","opListToTree","opList","opTree","opListElement","pf","pm","SVG_DEFAULTS","XML_NS","XLINK_NS","createObjectURL","contentType","forceDataSchema","digits","b1","b2","b3","d1","d2","d3","d4","convertImgDataToPng","PNG_HEADER","CHUNK_WRAPPER_SIZE","crcTable","crc32","crc","writePngChunk","body","adler32","deflateSync","literals","deflateSyncUncompressed","maxBlockLength","deflateBlocks","idat","pi","adler","encode","kind","isMask","bitDepth","colorType","offsetLiterals","offsetBytes","ihdr","pngLength","SVGExtraState","clipCount","maskCount","shadingCount","transformMatrix","svgElement","operatorIdMapping","opTreeElement","lineWidthScale","textMatrix","strokeAlpha","fillAlpha","tilingId","tx0","ty0","tx1","ty1","xscale","yscale","txstep","tystep","tiling","shadingId","colorStops","gradient","point0","point1","focalPoint","circlePoint","focalRadius","circleRadius","stop","clipId","clipPath","clipElement","prev","textRise","imgSrc","cliprect","imgEl","definitions","rootGroup","clipGroup","moduleId","cachedModule","_annotation_editor_layer","_annotation_layer","_worker_options","_api","_svg","_text_layer","pdfjsLib.GlobalWorkerOptions","pdfjsLib.version","isOpen","onClose","pdfUrl","pagesRef","loading","setLoading","setError","handleEscape","pdf","pdfjsLib.getDocument","modalOpen","setModalOpen","label","handleClose","imageUrls","itemsByIndex","quoteKey","quote","authorKey","authorName","avatarKey","avatar","maleIndices","femaleIndices","mixed","idx","testimonialsProp","readMoreHref","onReadMore","testimonials","expanded","setExpanded","hasMore","visibleTestimonials","openIndex","setOpenIndex","resolveAnswerKey","aKey","whatsAppNumber","brandName","whatsApp","emailVal","ctaContent","GLOBE_ICON_URL","tFromLocale","initialValues","i18n","isConnected","effectiveLocaleProp","initialLocale","localLocale","setLocalLocale","langOpen","setLangOpen","langRef","prevLocalePropRef","prevProviderLocaleRef","providerLocale","localValues","setLocalValues","setValues","effectiveOnBack","effectiveOnProceed","effectiveProceedHref","effectiveOriginalPrice","effectiveDiscountedPrice","effectiveDiscountPill","effectiveShowLanguageSelector","handleClickOutside","loc","section","onImpression","reported","observer","handleCtaClick","ctaText","handleSectionImpression"],"mappings":"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","x_google_ignoreList":[0,1,2,20]}
|
|
1
|
+
{"version":3,"file":"kundli-generator.js","sources":["../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react-jsx-runtime.development.js","../node_modules/react/jsx-runtime.js","../src/i18n/translations.ts","../src/i18n/I18nContext.tsx","../src/utils/storage.ts","../src/utils/localeStorage.ts","../src/components/KundliPage/KundliContext.tsx","../src/components/KundliForm/sections/FormHeader/FormHeader.tsx","../src/components/KundliForm/sections/UserInfoFormSection/useGooglePlacesAutocomplete.ts","../src/components/KundliForm/sections/UserInfoFormSection/UserInfoFormSection.tsx","../src/components/FooterShell/FooterShell.tsx","../src/components/FooterShell/FooterCTAButton.tsx","../src/components/KundliForm/sections/ProceedFooter/ProceedFooter.tsx","../src/components/KundliPage/sections/KundliHeader/KundliHeader.tsx","../src/components/KundliPage/sections/HeroSection/HeroSection.tsx","../src/components/KundliPage/sections/PremiumReportOverview/PremiumReportOverview.tsx","../src/components/KundliPage/sections/UniversityCertification/UniversityCertification.tsx","../src/components/KundliPage/sections/ThreeStepsProcess/ThreeStepsProcess.tsx","../src/components/KundliPage/sections/ViewSampleReportButton/SampleReportModal.tsx","../src/components/KundliPage/sections/ViewSampleReportButton/ViewSampleReportButton.tsx","../src/components/KundliPage/sections/WhatYoullFindSection/WhatYoullFindSection.tsx","../src/components/KundliPage/sections/WhyUsSection/WhyUsSection.tsx","../src/components/KundliPage/sections/FeedbackSection/FeedbackSection.tsx","../src/components/KundliPage/sections/FAQSection/FAQSection.tsx","../src/components/KundliPage/sections/ContactUsSection/ContactUsSection.tsx","../src/components/KundliPage/sections/CTAFooter/CTAFooter.tsx","../src/components/KundliForm/KundliForm.tsx","../src/components/KundliPage/KundliPage.tsx","../src/analytics.ts"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","/**\n * @license React\n * react-jsx-runtime.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\nvar React = require('react');\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n} // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n if (typeof type === 'function') {\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n var context = type;\n return getContextName(context) + '.Consumer';\n\n case REACT_PROVIDER_TYPE:\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n\n // eslint-disable-next-line no-fallthrough\n }\n }\n\n return null;\n}\n\nvar assign = Object.assign;\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, source, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if ( !fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n var control;\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n }\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n }\n\n fn();\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sample.stack.split('\\n');\n var controlLines = control.stack.split('\\n');\n var s = sampleLines.length - 1;\n var c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"<anonymous>\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('<anonymous>')) {\n _frame = _frame.replace('<anonymous>', fn.displayName);\n }\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, source, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, source, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, source, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), source, ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar loggedTypeFailures = {};\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction checkPropTypes(typeSpecs, values, location, componentName, element) {\n {\n // $FlowFixMe This is okay but Flow doesn't know it.\n var has = Function.call.bind(hasOwnProperty);\n\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error$1 = void 0; // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n // eslint-disable-next-line react-internal/prod-error-codes\n var err = Error((componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' + 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' + 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.');\n err.name = 'Invariant Violation';\n throw err;\n }\n\n error$1 = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED');\n } catch (ex) {\n error$1 = ex;\n }\n\n if (error$1 && !(error$1 instanceof Error)) {\n setCurrentlyValidatingElement(element);\n\n error('%s: type specification of %s' + ' `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error$1);\n\n setCurrentlyValidatingElement(null);\n }\n\n if (error$1 instanceof Error && !(error$1.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error$1.message] = true;\n setCurrentlyValidatingElement(element);\n\n error('Failed %s type: %s', location, error$1.message);\n\n setCurrentlyValidatingElement(null);\n }\n }\n }\n }\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n/*\n * The `'' + value` pattern (used in in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object';\n return type;\n }\n} // $FlowFixMe only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nvar ReactElement = function (type, key, ref, self, source, owner, props) {\n var element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // self and source are DEV only properties.\n\n Object.defineProperty(element, '_self', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: self\n }); // Two elements created in two different places should be considered\n // equal for testing purposes and therefore we hide it from enumeration.\n\n Object.defineProperty(element, '_source', {\n configurable: false,\n enumerable: false,\n writable: false,\n value: source\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV(type, config, maybeKey, source, self) {\n {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. <div {...props} key=\"Hi\" />\n // or <div key=\"Hi\" {...props} /> ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // <div {...props} key=\"Hi\" />, because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n ref = config.ref;\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n }\n}\n\nvar ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;\n\nfunction setCurrentlyValidatingElement$1(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, element._source, owner ? owner.type : null);\n ReactDebugCurrentFrame$1.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame$1.setExtraStackFrame(null);\n }\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner$1.current) {\n var name = getComponentNameFromType(ReactCurrentOwner$1.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n\nfunction getSourceInfoErrorAddendum(source) {\n {\n if (source !== undefined) {\n var fileName = source.fileName.replace(/^.*[\\\\\\/]/, '');\n var lineNumber = source.lineNumber;\n return '\\n\\nCheck your code at ' + fileName + ':' + lineNumber + '.';\n }\n\n return '';\n }\n}\n/**\n * Warn if there's no key explicitly set on dynamic arrays of children or\n * object keys are not valid. This allows us to keep track of children between\n * updates.\n */\n\n\nvar ownerHasKeyUseWarning = {};\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = typeof parentType === 'string' ? parentType : parentType.displayName || parentType.name;\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner$1.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement$1(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement$1(null);\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object') {\n return;\n }\n\n if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else if (node) {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Given an element, validate that its props follow the propTypes definition,\n * provided by the type.\n *\n * @param {ReactElement} element\n */\n\n\nfunction validatePropTypes(element) {\n {\n var type = element.type;\n\n if (type === null || type === undefined || typeof type === 'string') {\n return;\n }\n\n var propTypes;\n\n if (typeof type === 'function') {\n propTypes = type.propTypes;\n } else if (typeof type === 'object' && (type.$$typeof === REACT_FORWARD_REF_TYPE || // Note: Memo only checks outer props here.\n // Inner props are checked in the reconciler.\n type.$$typeof === REACT_MEMO_TYPE)) {\n propTypes = type.propTypes;\n } else {\n return;\n }\n\n if (propTypes) {\n // Intentionally inside to avoid triggering lazy initializers:\n var name = getComponentNameFromType(type);\n checkPropTypes(propTypes, element.props, 'prop', name, element);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true; // Intentionally inside to avoid triggering lazy initializers:\n\n var _name = getComponentNameFromType(type);\n\n error('Component %s declared `PropTypes` instead of `propTypes`. Did you misspell the property assignment?', _name || 'Unknown');\n }\n\n if (typeof type.getDefaultProps === 'function' && !type.getDefaultProps.isReactClassApproved) {\n error('getDefaultProps is only used on classic React.createClass ' + 'definitions. Use a static property named `defaultProps` instead.');\n }\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement$1(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement$1(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement$1(null);\n }\n }\n}\n\nvar didWarnAboutKeySpread = {};\nfunction jsxWithValidation(type, props, key, isStaticChildren, source, self) {\n {\n var validType = isValidElementType(type); // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n\n if (!validType) {\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var sourceInfo = getSourceInfoErrorAddendum(source);\n\n if (sourceInfo) {\n info += sourceInfo;\n } else {\n info += getDeclarationErrorAddendum();\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n }\n\n var element = jsxDEV(type, props, key, source, self); // The result can be nullish if a mock or a custom function is used.\n // TODO: Drop this when these are no longer allowed as the type argument.\n\n if (element == null) {\n return element;\n } // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing errors.\n // We don't want exception behavior to differ between dev and prod.\n // (Rendering will throw with a helpful message and as soon as the type is\n // fixed, the key warnings will appear.)\n\n\n if (validType) {\n var children = props.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n }\n\n {\n if (hasOwnProperty.call(props, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(props).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n }\n} // These two functions exist to still get child warnings in dev\n// even with the prod transform. This means that jsxDEV is purely\n// opt-in behavior for better messages but that we won't stop\n// giving you warnings if you use production apis.\n\nfunction jsxWithValidationStatic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, true);\n }\n}\nfunction jsxWithValidationDynamic(type, props, key) {\n {\n return jsxWithValidation(type, props, key, false);\n }\n}\n\nvar jsx = jsxWithValidationDynamic ; // we may want to special case jsxs internally to take advantage of static children.\n// for now we can ship identical prod functions\n\nvar jsxs = jsxWithValidationStatic ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsx = jsx;\nexports.jsxs = jsxs;\n })();\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","export type SupportedLocale = \"en\" | \"hi\";\n\nexport const SUPPORTED_LOCALES: SupportedLocale[] = [\"en\", \"hi\"];\n\nexport const LOCALE_LABELS: Record<SupportedLocale, string> = {\n en: \"English\",\n hi: \"हिन्दी\",\n};\n\nexport const translations: Record<SupportedLocale, Record<string, string>> = {\n en: {\n kundli: \"Kundli\",\n birthChart: \"Birth Chart\",\n details: \"Details\",\n name: \"Name\",\n birthDate: \"Birth Date\",\n guest: \"Guest\",\n description:\n \"Your birth chart reveals planetary positions at the time of your birth and their influence on your life.\",\n lagna: \"Lagna\",\n rashi: \"Rashi\",\n nakshatra: \"Nakshatra\",\n // Premium Kundli landing\n language: \"Language\",\n sriMandir: \"Shubham Goyal (Director - Founder's Office)\",\n ratingText: \"4.9/5 on Google PlayStore\",\n heroTitle: \"Get Your Premium Personalised Kundli Report\",\n heroSubtitle:\n \"This premium personalised kundli report helps you find answers to major life issues.\",\n topicMarriage: \"Marriage\",\n topicRelationship: \"Relationship\",\n topicBusiness: \"Business\",\n topicHealth: \"Health\",\n topicCareer: \"Career\",\n topicEducation: \"Education\",\n topicMoney: \"Money\",\n premiumHeadline: \"200+ Pages Premium Personalised Kundli Report\",\n premiumHeadlinePill1: \"200+ Pages\",\n premiumHeadlinePlain1: \"Premium\",\n premiumHeadlinePlain2: \"Personalised\",\n premiumHeadlinePill2: \"Kundli Report\",\n premiumFeature1: \"Vedic Birth Chart\",\n premiumFeature2: \"Destiny Insights\",\n premiumFeature3: \"Major Life Issues\",\n premiumFeature4: \"Practical Remedies\",\n certifiedBy: \"Certified by BHU and VHU Astrologers\",\n yourThreeSteps: \"Your 3 steps\",\n threeStepsSubtitle: \"Premium Personalised Kundli report\",\n step1: \"Enter your information\",\n step2: \"Your horoscope will be created by experts\",\n step3Intro: \"You'll receive your Kundli on your Whatsapp\",\n step3Days: \"2 days\",\n viewSampleReport: \"View Sample Kundli Report\",\n sampleReportModalTitle: \"Sample Kundli Report\",\n whatYoullFindTitle: \"What will you find in your Kundli report?\",\n findDasha: \"Analysis of flaws and periods.\",\n findDashaDesc:\n \"Identify major flaws, period durations, and simple remedies.\",\n findYoga: \"All yoga reports.\",\n findYogaDesc:\n \"Discover the yogas in your horoscope that affect wealth, career, and relationships.\",\n findGemstone: \"Gemstone recommendations.\",\n findGemstoneDesc: \"Personalised gemstone guidance based on your horoscope.\",\n findPooja: \"Puja recommendations.\",\n findPoojaDesc:\n \"Suggestions for pujas and rituals to balance planetary influences.\",\n findMonthly: \"Monthly predictions (1 year).\",\n findMonthlyDesc: \"Month-by-month guidance for the coming year.\",\n findStrength: \"Strength graph.\",\n findStrengthDesc:\n \"Visual charts showing the strength and influence of the planets.\",\n whyUsTitle: \"Why us?\",\n whyUsSubtitle: \"Fill out the form to get started and unlock your fortune!\",\n whyUs1: \"30,00,000+ kundlis created\",\n whyUs2: \"1,000+ partnered Top Astrologers\",\n whyUs3: \"500+ temple partnerships you can trust\",\n whyUs4: \"Personalised section-wise life analysis\",\n feedbackTitle: \"Feedback from our users\",\n feedbackTrust: \"Trusted by over 5 million users worldwide\",\n feedbackRating: \"4.9\",\n feedbackTestimonial1:\n \"Detailed kundli report mila, life mein clarity mili.\",\n feedbackTestimonial2: \"Career aur marriage dono pe clear guidance mila.\",\n feedbackTestimonial3: \"Clear direction mila next steps ke liye.\",\n feedbackTestimonial4: \"Doubts kaafi had tak clear ho gaye report se.\",\n feedbackTestimonial5: \"Future planning ke liye useful insights mile.\",\n feedbackTestimonial6: \"Har important area cover kiya gaya properly.\",\n feedbackTestimonial7: \"Kaafi deep analysis hai, superficial nahi.\",\n feedbackTestimonial8: \"Kundli insights ne future decisions clear kiye.\",\n feedbackTestimonial9: \"Overall kundli report very helpful rahi.\",\n feedbackTestimonial10: \"Personalised report ne confidence badhaya.\",\n feedbackTestimonial11: \"Report accurate aur easy to understand thi.\",\n feedbackTestimonial12: \"Report expected se zyada detailed nikli.\",\n feedbackTestimonial13: \"Report padhke life patterns samajh aaye.\",\n feedbackTestimonial14: \"Simple language mein detailed analysis diya hai.\",\n feedbackTestimonial15: \"Timing aur dasha explanation helpful thi.\",\n feedbackAuthor1: \"Aarav\",\n feedbackAuthor2: \"Vivaan\",\n feedbackAuthor3: \"Arjun\",\n feedbackAuthor4: \"Kabir\",\n feedbackAuthor5: \"Rohan\",\n feedbackAuthor6: \"Ishaan\",\n feedbackAuthor7: \"Krish\",\n feedbackAuthor8: \"Rahul\",\n feedbackAuthor9: \"Ananya\",\n feedbackAuthor10: \"Aadhya\",\n feedbackAuthor11: \"Kavya\",\n feedbackAuthor12: \"Diya\",\n feedbackAuthor13: \"Meera\",\n feedbackAuthor14: \"Pooja\",\n feedbackAuthor15: \"Nisha\",\n feedbackAuthor1AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639271096.png\",\n feedbackAuthor2AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639330970.png\",\n feedbackAuthor3AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639345411.png\",\n feedbackAuthor4AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639358174.png\",\n feedbackAuthor5AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639369712.png\",\n feedbackAuthor6AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639381899.png\",\n feedbackAuthor7AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639442858.png\",\n feedbackAuthor8AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639454626.png\",\n feedbackAuthor9AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639254172.png\",\n feedbackAuthor10AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639293055.png\",\n feedbackAuthor11AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639306698.png\",\n feedbackAuthor12AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639319028.png\",\n feedbackAuthor13AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639402894.png\",\n feedbackAuthor14AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639416587.png\",\n feedbackAuthor15AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639427379.png\",\n readMoreReviews: \"Read More Reviews\",\n readLess: \"Read Less\",\n faqTitle: \"Frequently Asked Questions\",\n faqQ1: \"How will I receive my kundli?\",\n faqQ2: \"Is Premium personalised kundli available in any other language?\",\n faqQ3: \"What if I don't know my birth time?\",\n faqA1Global:\n \"You will receive your premium personalised kundli report on your shared email ID within 2 days.\",\n faqA1Domestic:\n \"You will receive your premium personalised kundli report on your shared WhatsApp number within 2 days.\",\n faqA2: \"Yes, we provide report in Hindi and English languages\",\n faqA3:\n \"Accurate birth time helps to create more accurate report. However we are still able to prepare 80% accurate report if you don't know your exact time of birth\",\n contactTitle: \"Contact Us\",\n contactWhatsApp: \"Whatsapp: 9845089752\",\n contactEmail: \"Email: shubham.goyal@appsforbharat.com\",\n ctaKundliCreated: \"2L+ Kundli Created.\",\n ctaCertified: \"BHU Certified Astrologer.\",\n ctaSecurePayment: \"Secure Payment.\",\n ctaButton: \"Get My Detailed Kundli in $300 $25\",\n ctaButtonStruck: \"$100\",\n ctaButtonBefore: \"Get My Detailed Kundli in \",\n ctaButtonAfter: \"$25\",\n\n // Kundli form (from incoming branch)\n back: \"Back\",\n info: \"Info\",\n formTitle: \"Enter your information\",\n formSubtitle:\n \"Fill out the form below to get started and unlock your fortune!\",\n formFullName: \"Enter your full name\",\n formFullNamePlaceholder: \"Full name\",\n formPhone: \"Enter your phone number\",\n formPhonePlaceholder: \"Phone number\",\n formEmail: \"Enter your email address\",\n formEmailHelp: \"Your kundli report will be sent to your email\",\n formEmailPlaceholder: \"Email address\",\n formDob: \"Enter your date of birth\",\n formDobInfo:\n \"This helps us calculate exact planetary position in your birth chart\",\n formBirthTime: \"Enter your birth time\",\n formBirthTimeInfo:\n \"This helps us calculate exact planetary position in your birth chart\",\n formBirthTimeUnknownLine1: \"Don't know your exact birth time?\",\n formBirthTimeUnknownLine2: \"We can analyze with 80% accuracy\",\n formBirthPlace: \"Enter your birth place\",\n formBirthPlaceInfo:\n \"This helps us calculate exact planetary position in your birth chart\",\n formBirthPlacePlaceholder: \"City, State\",\n formOfferEnding: \"The offer is ending soon\",\n formDiscountPill: \"75% discount\",\n formProceed: \"Proceed to payment \",\n formOriginalPrice: \"$100\",\n formDiscountedPrice: \"$25\",\n formPriceAria: \"Price\",\n },\n hi: {\n kundli: \"कुंडली\",\n birthChart: \"जन्म कुंडली\",\n details: \"विवरण\",\n name: \"नाम\",\n birthDate: \"जन्म तिथि\",\n guest: \"अतिथि\",\n description:\n \"आपकी जन्म कुंडली आपके जन्म के समय ग्रहों की स्थिति और आपके जीवन पर उनके प्रभाव को दर्शाती है।\",\n lagna: \"लग्न\",\n rashi: \"राशि\",\n nakshatra: \"नक्षत्र\",\n language: \"भाषा\",\n sriMandir: \"शुभम गोयल (डायरेक्टर - फाउंडर's ऑफिस)\",\n ratingText: \"4.5 (8 लाख Google Playstore)\",\n heroTitle: \"अपनी प्रीमियम व्यक्तिगत कुंडली रिपोर्ट प्राप्त करें\",\n heroSubtitle:\n \"यह प्रीमियम व्यक्तिगत कुंडली रिपोर्ट आपको प्रमुख जीवन मुद्दों के जवाब खोजने में मदद करती है।\",\n topicMarriage: \"विवाह\",\n topicRelationship: \"रिश्ता\",\n topicBusiness: \"व्यवसाय\",\n topicHealth: \"स्वास्थ्य\",\n topicCareer: \"करियर\",\n topicEducation: \"शिक्षा\",\n topicMoney: \"पैसा\",\n premiumHeadline: \"200+ पृष्ठ प्रीमियम व्यक्तिगत कुंडली रिपोर्ट\",\n premiumHeadlinePill1: \"200+ पृष्ठ\",\n premiumHeadlinePlain1: \"प्रीमियम\",\n premiumHeadlinePlain2: \"व्यक्तिगत\",\n premiumHeadlinePill2: \"कुंडली रिपोर्ट\",\n premiumFeature1: \"वैदिक जन्म कुंडली\",\n premiumFeature2: \"भाग्य जानकारी\",\n premiumFeature3: \"प्रमुख जीवन मुद्दे\",\n premiumFeature4: \"व्यावहारिक उपाय\",\n certifiedBy: \"BHU और VHU ज्योतिषियों द्वारा प्रमाणित\",\n yourThreeSteps: \"आपके 3 कदम\",\n threeStepsSubtitle: \"प्रीमियम व्यक्तिगत कुंडली रिपोर्ट\",\n step1: \"अपनी जानकारी दर्ज करें\",\n step2: \"आपकी कुंडली विशेषज्ञों द्वारा बनाई जाएगी\",\n step3Intro: \"आपको व्हाट्सएप पर अपनी कुंडली मिलेगी\",\n step3Days: \"2 दिनों में\",\n viewSampleReport: \"नमूना कुंडली रिपोर्ट देखें\",\n sampleReportModalTitle: \"नमूना कुंडली रिपोर्ट\",\n whatYoullFindTitle: \"आपकी कुंडली रिपोर्ट में क्या मिलेगा?\",\n findDasha: \"दोष और दशा का विश्लेषण\",\n findDashaDesc: \"मुख्य दोष, दशा काल और सरल उपायों की पहचान करें\",\n findYoga: \"सभी योग रिपोर्ट्स\",\n findYogaDesc:\n \"अपनी कुंडली में उन योगों को जानें जो धन, करियर और संबंधों को प्रभावित करते हैं\",\n findGemstone: \"रत्न सिफारिशें\",\n findGemstoneDesc: \"आपकी कुंडली के आधार पर पर्सनलाइज्ड रत्न मार्गदर्शन\",\n findPooja: \"पूजा सिफारिशें\",\n findPoojaDesc:\n \"ग्रहों के प्रभाव को संतुलित करने के लिए पूजा और अनुष्ठान सुझाव\",\n findMonthly: \"मासिक भविष्यवाणियाँ (1 वर्ष)\",\n findMonthlyDesc: \"आने वाले वर्ष के लिए महीने-दर-महीने मार्गदर्शन\",\n findStrength: \"भावबल ग्राफ\",\n findStrengthDesc: \"ग्रहों की ताकत और प्रभाव दिखाने वाले दृश्य चार्ट\",\n whyUsTitle: \"क्यों हम?\",\n whyUsSubtitle: \"शुरू करने के लिए फॉर्म भरें और अपना भाग्य खोलें!\",\n whyUs1: \"30,00,000+ कुंडली बनाई गई\",\n whyUs2: \"1,000+ शीर्ष ज्योतिषी भागीदार\",\n whyUs3: \"500+ मंदिर भागीदारी\",\n whyUs4: \"व्यक्तिगत खंडवार जीवन विश्लेषण\",\n feedbackTitle: \"हमारे उपयोगकर्ताओं की प्रतिक्रिया\",\n feedbackTrust:\n \"दुनिया भर में 5 मिलियन से अधिक उपयोगकर्ताओं द्वारा विश्वसनीय\",\n feedbackRating: \"4.9\",\n feedbackTestimonial1:\n \"डिटेल्ड कुंडली रिपोर्ट मिली, जीवन में काफी क्लैरिटी आई।\",\n feedbackTestimonial2: \"करियर और शादी दोनों पर साफ मार्गदर्शन मिला।\",\n feedbackTestimonial3: \"आगे क्या करना है, उसकी साफ दिशा मिली।\",\n feedbackTestimonial4: \"रिपोर्ट से ज़्यादातर डाउट्स क्लियर हो गए।\",\n feedbackTestimonial5: \"फ्यूचर प्लानिंग के लिए अच्छे सुझाव मिले।\",\n feedbackTestimonial6: \"सभी ज़रूरी चीज़ें अच्छे से कवर की गई हैं।\",\n feedbackTestimonial7: \"एनालिसिस काफी डीप है, ऊपर-ऊपर का नहीं।\",\n feedbackTestimonial8: \"कुंडली के सुझावों से फ्यूचर डिसीजन क्लियर हुए।\",\n feedbackTestimonial9: \"कुल मिलाकर कुंडली रिपोर्ट बहुत हेल्पफुल रही।\",\n feedbackTestimonial10: \"पर्सनल रिपोर्ट से कॉन्फिडेंस बढ़ा।\",\n feedbackTestimonial11: \"रिपोर्ट एकदम सही और समझने में आसान थी।\",\n feedbackTestimonial12: \"रिपोर्ट उम्मीद से ज़्यादा डिटेल्ड निकली।\",\n feedbackTestimonial13: \"रिपोर्ट पढ़कर लाइफ के पैटर्न समझ आए।\",\n feedbackTestimonial14: \"आसान भाषा में पूरा डिटेल्ड एनालिसिस दिया है।\",\n feedbackTestimonial15: \"दशा और टाइमिंग की जानकारी बहुत काम की थी।\",\n feedbackAuthor1: \"आरव\",\n feedbackAuthor2: \"विवान\",\n feedbackAuthor3: \"अर्जुन\",\n feedbackAuthor4: \"कबीर\",\n feedbackAuthor5: \"रोहन\",\n feedbackAuthor6: \"ईशान\",\n feedbackAuthor7: \"कृष\",\n feedbackAuthor8: \"राहुल\",\n feedbackAuthor9: \"अनन्या\",\n feedbackAuthor10: \"आध्या\",\n feedbackAuthor11: \"काव्या\",\n feedbackAuthor12: \"दिया\",\n feedbackAuthor13: \"मीरा\",\n feedbackAuthor14: \"पूजा\",\n feedbackAuthor15: \"निशा\",\n feedbackAuthor1AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639271096.png\",\n feedbackAuthor2AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639330970.png\",\n feedbackAuthor3AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639345411.png\",\n feedbackAuthor4AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639358174.png\",\n feedbackAuthor5AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639369712.png\",\n feedbackAuthor6AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639381899.png\",\n feedbackAuthor7AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639442858.png\",\n feedbackAuthor8AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639454626.png\",\n feedbackAuthor9AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639254172.png\",\n feedbackAuthor10AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639293055.png\",\n feedbackAuthor11AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639306698.png\",\n feedbackAuthor12AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639319028.png\",\n feedbackAuthor13AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639402894.png\",\n feedbackAuthor14AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639416587.png\",\n feedbackAuthor15AvatarUrl: \"https://srm-cdn.a4b.io/yoda/1770639427379.png\",\n readMoreReviews: \"और समीक्षाएं पढ़ें\",\n readLess: \"कम पढ़ें\",\n faqTitle: \"अक्सर पूछे जाने वाले प्रश्न\",\n faqQ1: \"मुझे अपनी कुंडली कैसे मिलेगी?\",\n faqQ2: \"क्या प्रीमियम पर्सनलाइज्ड कुंडली किसी और भाषा में उपलब्ध है?\",\n faqQ3: \"अगर मुझे अपने जन्म का समय नहीं पता हो तो?\",\n faqA1Global:\n \"आपको 2 दिनों के भीतर आपके साझा किए गए ईमेल आईडी पर आपकी प्रीमियम पर्सनलाइज्ड कुंडली रिपोर्ट मिल जाएगी।\",\n faqA1Domestic:\n \"आपको 2 दिनों के भीतर आपके साझा किए गए व्हाट्सऐप नंबर पर आपकी प्रीमियम पर्सनलाइज्ड कुंडली रिपोर्ट मिल जाएगी।\",\n faqA2: \"हाँ, हम रिपोर्ट हिंदी और अंग्रेज़ी भाषाओं में प्रदान करते हैं।\",\n faqA3:\n \"सही जन्म समय से रिपोर्ट और अधिक सटीक बनती है। फिर भी, बिना सटीक समय के हम लगभग 80% सटीक रिपोर्ट तैयार कर सकते हैं।\",\n contactTitle: \"संपर्क करें\",\n contactWhatsApp: \"व्हाट्सएप: 9845089752\",\n contactEmail: \"ईमेल: shubham.goyal@appsforbharat.com\",\n ctaKundliCreated: \"2L+ कुंडली बनाई।\",\n ctaCertified: \"BHU प्रमाणित ज्योतिषी।\",\n ctaSecurePayment: \"सुरक्षित भुगतान।\",\n ctaButton: \"$300 $25 में मेरी विस्तृत कुंडली प्राप्त करें\",\n ctaButtonStruck: \"$100\",\n ctaButtonBefore: \"मेरा विस्तृत कुंडली प्राप्त करें \",\n ctaButtonAfter: \"$25 में मेरी विस्तृत कुंडली प्राप्त करें\",\n\n // Kundli form (from incoming branch)\n back: \"वापस\",\n info: \"जानकारी\",\n formTitle: \"अपनी जानकारी दर्ज करें\",\n formSubtitle:\n \"शुरू करने के लिए नीचे दिया गया फॉर्म भरें और अपना भाग्य खोलें!\",\n formFullName: \"अपना पूरा नाम दर्ज करें\",\n formFullNamePlaceholder: \"पूरा नाम\",\n formPhone: \"अपना फोन नंबर दर्ज करें\",\n formPhonePlaceholder: \"फोन नंबर\",\n formEmail: \"अपना ईमेल पता दर्ज करें\",\n formEmailHelp: \"आपकी कुंडली रिपोर्ट आपके ईमेल पर भेजी जाएगी\",\n formEmailPlaceholder: \"ईमेल पता\",\n formDob: \"अपनी जन्म तिथि दर्ज करें\",\n formDobInfo:\n \"यह आपके जन्म कुंडली में ग्रहों की सटीक स्थिति की गणना करने में हमारी सहायता करता है।\",\n formBirthTime: \"अपना जन्म समय दर्ज करें\",\n formBirthTimeInfo:\n \"यह आपके जन्म कुंडली में ग्रहों की सटीक स्थिति की गणना करने में हमारी सहायता करता है।\",\n formBirthTimeUnknownLine1: \"क्या आपको अपना सटीक जन्म समय नहीं पता?\",\n formBirthTimeUnknownLine2: \"हम 80% सटीकता के साथ विश्लेषण कर सकते हैं\",\n formBirthPlace: \"अपना जन्म स्थान दर्ज करें\",\n formBirthPlaceInfo:\n \"यह आपके जन्म कुंडली में ग्रहों की सटीक स्थिति की गणना करने में हमारी सहायता करता है।\",\n formBirthPlacePlaceholder: \"शहर, राज्य\",\n formOfferEnding: \"ऑफर जल्द खत्म हो रहा है\",\n formDiscountPill: \"75% छूट\",\n formProceed: \"भुगतान के लिए आगे बढ़ें\",\n formOriginalPrice: \"$100\",\n formDiscountedPrice: \"$25\",\n formPriceAria: \"कीमत\",\n },\n};\n","import React, { createContext, useContext } from 'react';\nimport type { SupportedLocale } from './translations';\nimport { translations } from './translations';\n\ninterface I18nContextValue {\n locale: SupportedLocale;\n t: (key: string) => string;\n}\n\nconst I18nContext = createContext<I18nContextValue | null>(null);\n\ninterface I18nProviderProps {\n locale: SupportedLocale;\n children: React.ReactNode;\n}\n\nexport const I18nProvider: React.FC<I18nProviderProps> = ({\n locale,\n children,\n}) => {\n const t = (key: string) => translations[locale]?.[key] ?? key;\n const value: I18nContextValue = { locale, t };\n\n return (\n <I18nContext.Provider value={value}>{children}</I18nContext.Provider>\n );\n};\n\nexport function useI18n(): I18nContextValue | null {\n return useContext(I18nContext);\n}\n","/**\n * SSR-safe localStorage helpers. No-op when window is undefined.\n */\n\nexport function getItem(key: string): string | null {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return null;\n }\n try {\n return window.localStorage.getItem(key);\n } catch {\n return null;\n }\n}\n\nexport function setItem(key: string, value: string): void {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return;\n }\n try {\n window.localStorage.setItem(key, value);\n } catch {\n // ignore (e.g. quota, private mode)\n }\n}\n\nexport function removeItem(key: string): void {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return;\n }\n try {\n window.localStorage.removeItem(key);\n } catch {\n // ignore\n }\n}\n\nexport function isLocalStorageAvailable(): boolean {\n if (typeof window === \"undefined\" || !window.localStorage) {\n return false;\n }\n try {\n const testKey = \"__kundli_storage_test__\";\n window.localStorage.setItem(testKey, \"1\");\n window.localStorage.removeItem(testKey);\n return true;\n } catch {\n return false;\n }\n}\n","/**\n * Persist Kundli UI language (en | hi) in localStorage so it survives reloads.\n * Uses a package-specific key so it doesn't conflict with host app storage.\n */\n\nimport type { SupportedLocale } from \"../i18n/translations\";\nimport { SUPPORTED_LOCALES } from \"../i18n/translations\";\nimport { getItem, setItem } from \"./storage\";\n\nexport const KUNDLI_LANGUAGE_STORAGE_KEY = \"kundli_language\";\n\n/**\n * Reads the stored Kundli language. Returns null if not set or invalid.\n */\nexport function getStoredKundliLocale(): SupportedLocale | null {\n const stored = getItem(KUNDLI_LANGUAGE_STORAGE_KEY);\n if (stored && SUPPORTED_LOCALES.includes(stored as SupportedLocale)) {\n return stored as SupportedLocale;\n }\n return null;\n}\n\n/**\n * Saves the selected Kundli language so it can be restored on next visit.\n */\nexport function setStoredKundliLocale(locale: SupportedLocale): void {\n setItem(KUNDLI_LANGUAGE_STORAGE_KEY, locale);\n}\n","import React, { createContext, useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport type { SupportedLocale } from \"../../i18n/translations\";\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport { getStoredKundliLocale, setStoredKundliLocale } from \"../../utils/localeStorage\";\n\nexport type KundliView = \"landing\" | \"form\";\n\nexport interface KundliContextConfig {\n locale?: SupportedLocale;\n showLanguageSelector?: boolean;\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n logoUrl?: string;\n reportImageUrl?: string;\n universityLogoUrls?: [string?, string?];\n sampleReportHref?: string;\n onViewSampleReport?: () => void;\n ctaHref?: string;\n onCtaClick?: () => void;\n /** Called when form back is clicked (e.g. when form is shown standalone) */\n onBack?: () => void;\n readMoreReviewsHref?: string;\n onProceed?: (values: KundliFormValues) => void;\n proceedHref?: string;\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n analytics?: KundliAnalytics;\n /** Notify parent when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n}\n\nexport interface KundliContextValue {\n view: KundliView;\n locale: SupportedLocale;\n setLocale: (locale: SupportedLocale) => void;\n config: KundliContextConfig;\n formValues: KundliFormValues;\n setFormValues: React.Dispatch<React.SetStateAction<KundliFormValues>>;\n goToForm: () => void;\n goToPage: () => void;\n onProceed?: (values: KundliFormValues) => void;\n}\n\nconst KundliContext = createContext<KundliContextValue | null>(null);\n\nconst DEFAULT_FORM_VALUES: KundliFormValues = {\n fullName: \"\",\n phone: \"\",\n email: \"\",\n dateOfBirth: \"\",\n birthTime: \"\",\n birthTimeUnknown: false,\n birthPlace: \"\",\n};\n\nexport interface KundliProviderProps extends KundliContextConfig {\n className?: string;\n children?: React.ReactNode;\n}\n\nexport const KundliProvider: React.FC<KundliProviderProps> = ({\n locale: localeProp,\n showLanguageSelector = true,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n onBack,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n children,\n}) => {\n const [view, setView] = useState<KundliView>(\"landing\");\n const [locale, setLocale] = useState<SupportedLocale>(localeProp ?? \"en\");\n const [formValues, setFormValues] = useState<KundliFormValues>(DEFAULT_FORM_VALUES);\n const isInitialLocaleMount = useRef(true);\n\n // Restore persisted locale on mount (client-only; avoids hydration mismatch)\n useEffect(() => {\n const stored = getStoredKundliLocale();\n if (stored) setLocale(stored);\n }, []);\n\n useEffect(() => {\n setStoredKundliLocale(locale);\n }, [locale]);\n\n useEffect(() => {\n if (isInitialLocaleMount.current) {\n isInitialLocaleMount.current = false;\n return;\n }\n onLocaleChange?.(locale);\n }, [locale, onLocaleChange]);\n\n const config = useMemo<KundliContextConfig>(\n () => ({\n locale: localeProp,\n showLanguageSelector,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n onBack,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n }),\n [\n localeProp,\n showLanguageSelector,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n onBack,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n ]\n );\n\n const goToForm = useCallback(() => {\n setView(\"form\");\n }, [config.analytics]);\n\n const goToPage = useCallback(() => {\n setView(\"landing\");\n config.onBack?.();\n }, [config.onBack]);\n\n const value = useMemo<KundliContextValue>(\n () => ({\n view,\n locale,\n setLocale,\n config,\n formValues,\n setFormValues,\n goToForm,\n goToPage,\n onProceed: config.onProceed,\n }),\n [view, locale, config, formValues, goToForm, goToPage]\n );\n\n return (\n <KundliContext.Provider value={value}>\n {children}\n </KundliContext.Provider>\n );\n};\n\nexport function useKundliContext(): KundliContextValue | null {\n return useContext(KundliContext);\n}\n\nexport function useKundliContextOrThrow(): KundliContextValue {\n const ctx = useContext(KundliContext);\n if (!ctx) {\n throw new Error(\"useKundliContextOrThrow must be used within KundliProvider\");\n }\n return ctx;\n}\n\nexport { KundliContext };\n","import React from \"react\";\nimport styles from \"./FormHeader.module.scss\";\n\nexport interface FormHeaderProps {\n t: (key: string) => string;\n onBack?: () => void;\n className?: string;\n}\n\nconst BackIcon: React.FC = () => (\n <svg\n className={styles.backIcon}\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden\n >\n <path\n d=\"M15 18l-6-6 6-6\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n);\n\nexport const FormHeader: React.FC<FormHeaderProps> = ({\n t,\n onBack,\n className = \"\",\n}) => {\n return (\n <header className={`${styles.header} ${className}`}>\n <div className={styles.left}>\n <button\n type=\"button\"\n className={styles.backBtn}\n onClick={onBack}\n aria-label={t(\"back\")}\n >\n <BackIcon />\n </button>\n <div className={styles.titleWrap}>\n <h1 className={styles.title}>{t(\"formTitle\")}</h1>\n <p className={styles.subtitle}>{t(\"formSubtitle\")}</p>\n </div>\n </div>\n </header>\n );\n};\n","import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport interface PlacePrediction {\n place_id: string;\n description: string;\n structured_formatting: {\n main_text: string;\n secondary_text: string;\n };\n}\n\nexport interface PlaceDetails {\n display_name: string;\n lat: number;\n lng: number;\n city?: string;\n state?: string;\n country?: string;\n}\n\nlet googleMapsPromise: Promise<void> | null = null;\n\nconst loadGoogleMapsScript = (\n apiKey: string,\n language?: string,\n): Promise<void> => {\n if (typeof window === \"undefined\") return Promise.resolve();\n\n if (window.google?.maps?.places) {\n return Promise.resolve();\n }\n\n if (googleMapsPromise) return googleMapsPromise;\n\n googleMapsPromise = new Promise((resolve, reject) => {\n const existing = document.querySelector<HTMLScriptElement>(\n 'script[data-google-maps-places=\"true\"]',\n );\n\n if (existing) {\n existing.addEventListener(\"load\", () => resolve());\n existing.addEventListener(\"error\", () =>\n reject(new Error(\"Failed to load Google Maps API\")),\n );\n return;\n }\n\n const script = document.createElement(\"script\");\n const url = new URL(\"https://maps.googleapis.com/maps/api/js\");\n url.searchParams.set(\"key\", apiKey);\n url.searchParams.set(\"libraries\", \"places\");\n url.searchParams.set(\"loading\", \"async\");\n if (language) url.searchParams.set(\"language\", language);\n\n script.src = url.toString();\n script.async = true;\n script.defer = true;\n script.setAttribute(\"data-google-maps-places\", \"true\");\n\n script.onload = () => {\n const start = Date.now();\n const check = () => {\n if (window.google?.maps?.places) {\n resolve();\n return;\n }\n if (Date.now() - start > 2000) {\n reject(\n new Error(\n \"Google Maps loaded but Places library is unavailable. Check API key restrictions / enabled APIs.\",\n ),\n );\n return;\n }\n window.setTimeout(check, 50);\n };\n check();\n };\n\n script.onerror = () => reject(new Error(\"Failed to load Google Maps API\"));\n\n document.head.appendChild(script);\n });\n\n return googleMapsPromise;\n};\n\nexport const useGooglePlacesAutocomplete = (params: {\n apiKey?: string;\n language?: string;\n restrictCountry?: string;\n}) => {\n const { apiKey, language = \"en\", restrictCountry } = params;\n\n const [isLoaded, setIsLoaded] = useState(false);\n const [predictions, setPredictions] = useState<PlacePrediction[]>([]);\n const [isSearching, setIsSearching] = useState(false);\n const [loadError, setLoadError] = useState<string | null>(null);\n\n const autocompleteService =\n useRef<google.maps.places.AutocompleteService | null>(null);\n const placesService = useRef<google.maps.places.PlacesService | null>(null);\n const sessionToken =\n useRef<google.maps.places.AutocompleteSessionToken | null>(null);\n\n useEffect(() => {\n if (!apiKey) {\n setIsLoaded(false);\n setLoadError(null);\n return;\n }\n\n loadGoogleMapsScript(apiKey, language)\n .then(() => {\n autocompleteService.current =\n new google.maps.places.AutocompleteService();\n const div = document.createElement(\"div\");\n placesService.current = new google.maps.places.PlacesService(div);\n sessionToken.current =\n new google.maps.places.AutocompleteSessionToken();\n setIsLoaded(true);\n setLoadError(null);\n })\n .catch((err: any) => {\n setIsLoaded(false);\n setLoadError(err?.message || \"Failed to load location service\");\n });\n }, [apiKey, language]);\n\n const searchPlaces = useCallback(\n async (query: string): Promise<void> => {\n if (!query || query.length < 2 || !autocompleteService.current) {\n setPredictions([]);\n return;\n }\n\n setIsSearching(true);\n\n try {\n const request: google.maps.places.AutocompletionRequest = {\n input: query,\n types: [\"(cities)\"],\n sessionToken: sessionToken.current ?? undefined,\n };\n\n if (restrictCountry) {\n request.componentRestrictions = { country: restrictCountry };\n }\n\n const response = await new Promise<\n google.maps.places.AutocompletePrediction[]\n >((resolve, reject) => {\n autocompleteService.current!.getPlacePredictions(\n request,\n (preds, status) => {\n if (\n status === google.maps.places.PlacesServiceStatus.OK &&\n preds\n ) {\n resolve(preds);\n } else if (\n status === google.maps.places.PlacesServiceStatus.ZERO_RESULTS\n ) {\n resolve([]);\n } else {\n reject(new Error(`Places API error: ${status}`));\n }\n },\n );\n });\n\n setPredictions(\n response.map((p) => ({\n place_id: p.place_id,\n description: p.description,\n structured_formatting: {\n main_text: p.structured_formatting?.main_text || p.description,\n secondary_text: p.structured_formatting?.secondary_text || \"\",\n },\n })),\n );\n } catch {\n setPredictions([]);\n } finally {\n setIsSearching(false);\n }\n },\n [restrictCountry],\n );\n\n const getPlaceDetails = useCallback(\n async (placeId: string): Promise<PlaceDetails | null> => {\n if (!placesService.current) return null;\n\n try {\n const place = await new Promise<google.maps.places.PlaceResult>(\n (resolve, reject) => {\n placesService.current!.getDetails(\n {\n placeId,\n fields: [\"geometry\", \"address_components\", \"formatted_address\"],\n sessionToken: sessionToken.current ?? undefined,\n },\n (result, status) => {\n if (\n status === google.maps.places.PlacesServiceStatus.OK &&\n result\n ) {\n resolve(result);\n } else {\n reject(new Error(`Place details error: ${status}`));\n }\n },\n );\n },\n );\n\n sessionToken.current =\n new google.maps.places.AutocompleteSessionToken();\n\n const lat = place.geometry?.location?.lat() || 0;\n const lng = place.geometry?.location?.lng() || 0;\n\n let city = \"\";\n let state = \"\";\n let country = \"\";\n\n place.address_components?.forEach((component) => {\n if (component.types.includes(\"locality\")) city = component.long_name;\n if (component.types.includes(\"administrative_area_level_1\"))\n state = component.long_name;\n if (component.types.includes(\"country\"))\n country = component.long_name;\n });\n\n return {\n display_name: place.formatted_address || \"\",\n lat,\n lng,\n city,\n state,\n country,\n };\n } catch {\n return null;\n }\n },\n [],\n );\n\n const clearPredictions = useCallback(() => setPredictions([]), []);\n\n return {\n isLoaded,\n predictions,\n isSearching,\n loadError,\n searchPlaces,\n getPlaceDetails,\n clearPredictions,\n };\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styles from \"./UserInfoFormSection.module.scss\";\nimport type { KundliFormValues } from \"../../KundliForm\";\nimport type { KundliAnalytics } from \"../../../../../analytics\";\nimport { useKundliContext } from \"../../../KundliPage/KundliContext\";\nimport { useGooglePlacesAutocomplete } from \"./useGooglePlacesAutocomplete\";\n\nexport interface UserInfoFormSectionProps {\n t: (key: string) => string;\n values: KundliFormValues;\n onChange: (values: KundliFormValues) => void;\n analytics?: KundliAnalytics;\n /** Google Maps API key used for Birth Place autocomplete */\n googleMapsApiKey?: string;\n className?: string;\n}\n\nconst ICONS = {\n time: \"https://srm-cdn.a4b.io/yoda/1770372014782.svg\",\n location: \"https://srm-cdn.a4b.io/yoda/1770372031092.svg\",\n date: \"https://srm-cdn.a4b.io/yoda/1770372045894.svg\",\n info: \"https://srm-cdn.a4b.io/yoda/1770372066357.svg\",\n} as const;\n\nexport const UserInfoFormSection: React.FC<UserInfoFormSectionProps> = ({\n t,\n values,\n onChange,\n analytics: analyticsProp,\n googleMapsApiKey,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const analytics = kundliCtx?.config?.analytics ?? analyticsProp;\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const filledRef = useRef<Record<string, boolean>>({});\n const update = (patch: Partial<KundliFormValues>) =>\n onChange({ ...values, ...patch });\n\n const trackFilled = (field: string, newValue: string) => {\n if (newValue.trim() && !filledRef.current[field]) {\n filledRef.current[field] = true;\n const m: Record<string, () => void> = {\n fullName: () => analytics?.trackNameSectionFilled?.(),\n phone: () => analytics?.trackPhoneSectionFilled?.(),\n email: () => analytics?.trackEmailSectionFilled?.(),\n dateOfBirth: () => analytics?.trackDobFilled?.(),\n birthTime: () => analytics?.trackTimeFilled?.(),\n birthPlace: () => analytics?.trackPlaceOfBirthChosen?.(),\n };\n m[field]?.();\n }\n };\n\n const sanitizePhone10 = (raw: string) => raw.replace(/\\D/g, \"\").slice(0, 10);\n\n const dobRef = useRef<HTMLInputElement>(null);\n const birthTimeRef = useRef<HTMLInputElement>(null);\n const lastOpenedPickerRef = useRef<HTMLInputElement | null>(null);\n const lastOpenedPickerAtRef = useRef<number>(0);\n\n const timeWrapRef = useRef<HTMLDivElement>(null);\n const [timeOpen, setTimeOpen] = useState(false);\n const [timeDraft, setTimeDraft] = useState<{\n hour12: number;\n minute: string;\n meridiem: \"AM\" | \"PM\";\n }>({ hour12: 12, minute: \"00\", meridiem: \"AM\" });\n\n const pad2 = (n: number) => String(n).padStart(2, \"0\");\n\n const to12HourDisplay = (hhmm: string) => {\n const m = /^([01]\\d|2[0-3]):([0-5]\\d)$/.exec(hhmm);\n if (!m) return hhmm;\n const hour24 = Number(m[1]);\n const minute = m[2];\n const meridiem: \"AM\" | \"PM\" = hour24 >= 12 ? \"PM\" : \"AM\";\n const hour12 = hour24 % 12 === 0 ? 12 : hour24 % 12;\n return `${hour12}:${minute} ${meridiem}`;\n };\n\n const from24ToDraft = (hhmm: string) => {\n const m = /^([01]\\d|2[0-3]):([0-5]\\d)$/.exec(hhmm);\n if (!m) return { hour12: 12, minute: \"00\", meridiem: \"AM\" as const };\n const hour24 = Number(m[1]);\n const minute = m[2];\n const meridiem: \"AM\" | \"PM\" = hour24 >= 12 ? \"PM\" : \"AM\";\n const hour12 = hour24 % 12 === 0 ? 12 : hour24 % 12;\n return { hour12, minute, meridiem };\n };\n\n const draftTo24 = (draft: {\n hour12: number;\n minute: string;\n meridiem: \"AM\" | \"PM\";\n }) => {\n const hour12 = Math.min(12, Math.max(1, draft.hour12));\n const minute = /^([0-5]\\d)$/.test(draft.minute) ? draft.minute : \"00\";\n let hour24 = hour12 % 12;\n if (draft.meridiem === \"PM\") hour24 += 12;\n return `${pad2(hour24)}:${minute}`;\n };\n\n const placeWrapRef = useRef<HTMLDivElement>(null);\n const [placeOpen, setPlaceOpen] = useState(false);\n\n const [infoOpen, setInfoOpen] = useState<null | \"dob\" | \"time\" | \"place\">(\n null,\n );\n\n const googleApiKey =\n googleMapsApiKey ??\n ((import.meta as any).env?.VITE_GOOGLE_MAPS_API_KEY as string | undefined);\n\n const placeQuery = (values.birthPlace ?? \"\").trim();\n const placeCountryRestriction = isGlobal ? undefined : \"in\";\n const placeLanguage = \"en\";\n\n const {\n predictions: placeSuggestions,\n isSearching: placeLoading,\n loadError: placeLoadError,\n searchPlaces,\n clearPredictions,\n } = useGooglePlacesAutocomplete({\n apiKey: googleApiKey,\n language: placeLanguage,\n restrictCountry: placeCountryRestriction,\n });\n\n useEffect(() => {\n const onDocMouseDown = (e: MouseEvent) => {\n if (!placeWrapRef.current) return;\n if (!placeWrapRef.current.contains(e.target as Node)) {\n setPlaceOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, []);\n\n useEffect(() => {\n if (!placeOpen) return;\n if (placeQuery.length < 2) {\n clearPredictions();\n return;\n }\n\n const handle = window.setTimeout(async () => {\n await searchPlaces(placeQuery);\n }, 250);\n\n return () => window.clearTimeout(handle);\n }, [clearPredictions, placeOpen, placeQuery, searchPlaces]);\n\n const toggleNativePicker = (ref: React.RefObject<HTMLInputElement>) => {\n const el = ref.current;\n if (!el || el.disabled) return;\n\n // If already focused and we opened this picker last time, close by blurring.\n // We reset this state on change/blur so clicking again after selecting a value re-opens.\n if (\n document.activeElement === el &&\n lastOpenedPickerRef.current === el &&\n Date.now() - lastOpenedPickerAtRef.current < 60_000\n ) {\n el.blur();\n return;\n }\n\n // showPicker is supported in modern Chromium/Safari; fallback keeps behavior intact.\n if (\n typeof (el as HTMLInputElement & { showPicker?: () => void })\n .showPicker === \"function\"\n ) {\n (el as HTMLInputElement & { showPicker: () => void }).showPicker();\n lastOpenedPickerRef.current = el;\n lastOpenedPickerAtRef.current = Date.now();\n return;\n }\n el.focus();\n lastOpenedPickerRef.current = el;\n lastOpenedPickerAtRef.current = Date.now();\n };\n\n useEffect(() => {\n const onDocMouseDown = (e: MouseEvent) => {\n if (!timeWrapRef.current) return;\n if (!timeWrapRef.current.contains(e.target as Node)) {\n setTimeOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n return () => document.removeEventListener(\"mousedown\", onDocMouseDown);\n }, []);\n\n useEffect(() => {\n const onDocMouseDown = (e: MouseEvent) => {\n const target = e.target as HTMLElement | null;\n if (target?.closest?.(\"[data-info-tooltip]\") != null) return;\n setInfoOpen(null);\n };\n const onKeyDown = (e: KeyboardEvent) => {\n if (e.key === \"Escape\") setInfoOpen(null);\n };\n document.addEventListener(\"mousedown\", onDocMouseDown);\n document.addEventListener(\"keydown\", onKeyDown);\n return () => {\n document.removeEventListener(\"mousedown\", onDocMouseDown);\n document.removeEventListener(\"keydown\", onKeyDown);\n };\n }, []);\n\n return (\n <section\n className={`${styles.wrap} ${className}`}\n aria-label={t(\"formTitle\")}\n >\n <div className={styles.card}>\n <div className={styles.cardInner}>\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-full-name\">\n {t(\"formFullName\")}\n <span className={styles.req}>*</span>\n </label>\n </div>\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-full-name\"\n className={styles.input}\n type=\"text\"\n value={values.fullName}\n onFocus={() => analytics?.trackNameSectionClicked?.()}\n onChange={(e) => {\n const v = e.target.value;\n update({ fullName: v });\n trackFilled(\"fullName\", v);\n }}\n placeholder={t(\"formFullNamePlaceholder\")}\n autoComplete=\"name\"\n />\n </div>\n </div>\n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-phone\">\n {t(\"formPhone\")}\n {!isGlobal && <span className={styles.req}>*</span>}\n </label>\n </div>\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-phone\"\n className={styles.input}\n type=\"tel\"\n value={values.phone ?? \"\"}\n onFocus={() => analytics?.trackPhoneSectionClicked?.()}\n onChange={(e) => {\n const v = e.target.value;\n update({ phone: sanitizePhone10(v) })\n trackFilled(\"phone\", sanitizePhone10(v));\n }}\n placeholder={t(\"formPhonePlaceholder\")}\n autoComplete=\"tel\"\n inputMode=\"numeric\"\n pattern=\"[0-9]{10}\"\n maxLength={10}\n required={!isGlobal}\n aria-required={!isGlobal}\n />\n </div>\n </div>\n\n {isGlobal && (\n <>\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-email\">\n {t(\"formEmail\")}\n <span className={styles.req}>*</span>\n </label>\n </div>\n <div className={styles.help}>{t(\"formEmailHelp\")}</div>\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-email\"\n className={styles.input}\n type=\"email\"\n value={values.email}\n onChange={(e) => update({ email: e.target.value })}\n placeholder={t(\"formEmailPlaceholder\")}\n autoComplete=\"email\"\n required\n aria-required\n />\n </div>\n </div>\n </>)}\n \n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-dob\">\n {t(\"formDob\")}\n <span className={styles.req}>*</span>\n </label>\n <div className={styles.infoWrap} data-info-tooltip>\n <button\n type=\"button\"\n className={styles.infoBtn}\n aria-label={t(\"info\")}\n aria-expanded={infoOpen === \"dob\"}\n onClick={() => {\n setInfoOpen((v) => (v === \"dob\" ? null : \"dob\"))\n analytics?.trackInfoIconClicked?.({ fieldName: \"dob\" })\n }\n }\n >\n <img\n className={styles.infoImg}\n src={ICONS.info}\n alt=\"\"\n aria-hidden\n />\n </button>\n {infoOpen === \"dob\" && (\n <div className={styles.tooltip} role=\"tooltip\">\n {t(\"formDobInfo\")}\n <span className={styles.tooltipArrow} aria-hidden />\n </div>\n )}\n </div>\n </div >\n <div className={styles.inputWrap}>\n <input\n id=\"kundli-dob\"\n className={styles.input}\n type=\"date\"\n ref={dobRef}\n value={values.dateOfBirth}\n max={(() => {\n const d = new Date();\n return `${d.getFullYear()}-${pad2(d.getMonth() + 1)}-${pad2(d.getDate())}`;\n })()}\n onChange={(e) => {\n const v = e.target.value;\n const today = new Date();\n const maxDate = `${today.getFullYear()}-${pad2(today.getMonth() + 1)}-${pad2(today.getDate())}`;\n if (v && v > maxDate) return;\n update({ dateOfBirth: v });\n trackFilled(\"dateOfBirth\", v);\n lastOpenedPickerRef.current = null;\n }}\n onFocus={() => analytics?.trackDobClicked?.()}\n onClick={() => toggleNativePicker(dobRef)}\n onBlur={() => {\n if (lastOpenedPickerRef.current === dobRef.current) {\n lastOpenedPickerRef.current = null;\n }\n }}\n />\n <button\n type=\"button\"\n className={`${styles.iconBtn} ${styles.iconBtnInteractive}`}\n aria-label=\"Open date picker\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n toggleNativePicker(dobRef);\n }}\n >\n <img\n className={styles.iconImg}\n src={ICONS.date}\n alt=\"\"\n aria-hidden\n />\n </button>\n </div>\n </div >\n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-birth-time\">\n {t(\"formBirthTime\")}\n <span className={styles.req}>*</span>\n </label>\n <div className={styles.infoWrap} data-info-tooltip>\n <button\n type=\"button\"\n className={styles.infoBtn}\n aria-label={t(\"info\")}\n aria-expanded={infoOpen === \"time\"}\n onClick={() => {\n analytics?.trackInfoIconClicked?.({ fieldName: \"time\" })\n setInfoOpen((v) => (v === \"time\" ? null : \"time\"))\n }}\n >\n <img\n className={styles.infoImg}\n src={ICONS.info}\n alt=\"\"\n aria-hidden\n />\n </button>\n {infoOpen === \"time\" && (\n <div className={styles.tooltip} role=\"tooltip\">\n {t(\"formBirthTimeInfo\")}\n <span className={styles.tooltipArrow} aria-hidden />\n </div>\n )}\n </div>\n </div >\n <div className={styles.inputWrap} ref={timeWrapRef}>\n <input\n id=\"kundli-birth-time\"\n className={styles.input}\n type=\"text\"\n value={\n values.birthTime ? to12HourDisplay(values.birthTime) : \"\"\n }\n readOnly\n onFocus={() => analytics?.trackTimeClicked?.()}\n onChange={(e) => {\n const v = e.target.value;\n update({ birthTime: v });\n trackFilled(\"birthTime\", v);\n }}\n disabled={values.birthTimeUnknown}\n placeholder=\"HH:MM AM\"\n onClick={() => {\n if (values.birthTimeUnknown) return;\n setTimeDraft(from24ToDraft(values.birthTime || \"12:00\"));\n setTimeOpen((o) => !o);\n }}\n />\n <button\n type=\"button\"\n className={`${styles.iconBtn} ${styles.iconBtnInteractive}`}\n aria-label=\"Open time picker\"\n disabled={values.birthTimeUnknown}\n onMouseDown={(e) => e.preventDefault()}\n onClick={(e) => {\n e.preventDefault();\n e.stopPropagation();\n if (values.birthTimeUnknown) return;\n setTimeDraft(from24ToDraft(values.birthTime || \"12:00\"));\n setTimeOpen((o) => !o);\n }}\n >\n <img\n className={styles.iconImg}\n src={ICONS.time}\n alt=\"\"\n aria-hidden\n />\n </button>\n\n {timeOpen && !values.birthTimeUnknown && (\n <div\n className={styles.timePopover}\n role=\"dialog\"\n aria-label=\"Select time\"\n >\n <div className={styles.timePickerRow}>\n <select\n className={styles.timePickerSelect}\n value={timeDraft.hour12}\n onChange={(e) =>\n setTimeDraft((d) => ({\n ...d,\n hour12: Number(e.target.value),\n }))\n }\n aria-label=\"Hour\"\n >\n {Array.from({ length: 12 }, (_, i) => i + 1).map((h) => (\n <option key={h} value={h}>\n {h}\n </option>\n ))}\n </select>\n <span className={styles.timePickerColon}>:</span>\n <select\n className={styles.timePickerSelect}\n value={timeDraft.minute}\n onChange={(e) =>\n setTimeDraft((d) => ({ ...d, minute: e.target.value }))\n }\n aria-label=\"Minute\"\n >\n {Array.from({ length: 60 }, (_, i) => pad2(i)).map(\n (m) => (\n <option key={m} value={m}>\n {m}\n </option>\n ),\n )}\n </select>\n\n <div className={styles.meridiemToggle} aria-label=\"AM/PM\">\n <button\n type=\"button\"\n className={`${styles.meridiemBtn} ${timeDraft.meridiem === \"AM\"\n ? styles.meridiemActive\n : \"\"\n }`}\n onClick={() =>\n setTimeDraft((d) => ({ ...d, meridiem: \"AM\" }))\n }\n >\n AM\n </button>\n <button\n type=\"button\"\n className={`${styles.meridiemBtn} ${timeDraft.meridiem === \"PM\"\n ? styles.meridiemActive\n : \"\"\n }`}\n onClick={() =>\n setTimeDraft((d) => ({ ...d, meridiem: \"PM\" }))\n }\n >\n PM\n </button>\n </div>\n </div>\n <div className={styles.timePopoverActions}>\n <button\n type=\"button\"\n className={styles.timePopoverBtn}\n onClick={() => setTimeOpen(false)}\n >\n Cancel\n </button>\n <button\n type=\"button\"\n className={`${styles.timePopoverBtn} ${styles.timePopoverOk}`}\n onClick={() => {\n const v = draftTo24(timeDraft);\n update({ birthTime: v });\n trackFilled(\"birthTime\", v);\n setTimeOpen(false);\n }}\n aria-label=\"OK\"\n >\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n aria-hidden\n >\n <path\n d=\"M20 6L9 17l-5-5\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n </div>\n </div>\n )}\n </div>\n\n <div className={styles.checkboxRow}>\n <input\n id=\"kundli-time-unknown\"\n className={styles.checkbox}\n type=\"checkbox\"\n checked={values.birthTimeUnknown}\n onChange={(e) => {\n analytics?.trackTimeCheckboxClicked?.();\n update({\n birthTimeUnknown: e.target.checked,\n birthTime: e.target.checked ? \"\" : values.birthTime,\n });\n }}\n />\n <label\n className={styles.checkboxText}\n htmlFor=\"kundli-time-unknown\"\n >\n {t(\"formBirthTimeUnknownLine1\")}\n <br />\n {t(\"formBirthTimeUnknownLine2\")}\n </label>\n </div>\n </div >\n\n <div className={styles.field}>\n <div className={styles.labelRow}>\n <label className={styles.label} htmlFor=\"kundli-birth-place\">\n {t(\"formBirthPlace\")}\n <span className={styles.req}>*</span>\n </label>\n <div className={styles.infoWrap} data-info-tooltip>\n <button\n type=\"button\"\n className={styles.infoBtn}\n aria-label={t(\"info\")}\n aria-expanded={infoOpen === \"place\"}\n onClick={() => {\n analytics?.trackInfoIconClicked?.({ fieldName: \"birthPlace\" })\n setInfoOpen((v) => (v === \"place\" ? null : \"place\"))\n }}\n >\n <img\n className={styles.infoImg}\n src={ICONS.info}\n alt=\"\"\n aria-hidden\n />\n </button>\n {infoOpen === \"place\" && (\n <div className={styles.tooltip} role=\"tooltip\">\n {t(\"formBirthPlaceInfo\")}\n <span className={styles.tooltipArrow} aria-hidden />\n </div>\n )}\n </div>\n </div >\n <div className={styles.inputWrap} ref={placeWrapRef}>\n <input\n id=\"kundli-birth-place\"\n className={styles.input}\n type=\"text\"\n value={values.birthPlace}\n onChange={(e) => {\n const v = e.target.value;\n update({ birthPlace: v });\n trackFilled(\"birthPlace\", v);\n setPlaceOpen(true);\n }}\n onFocus={() => {\n analytics?.trackPlaceOfBirthClicked?.()\n setPlaceOpen(true)\n }}\n placeholder={t(\"formBirthPlacePlaceholder\")}\n autoComplete=\"address-level2\"\n />\n <span className={styles.iconBtn} aria-hidden>\n <img\n className={styles.iconImg}\n src={ICONS.location}\n alt=\"\"\n aria-hidden\n />\n </span>\n\n {placeOpen && placeSuggestions.length > 0 && (\n <div className={styles.suggestions} role=\"listbox\">\n {placeSuggestions.slice(0, 8).map((p) => (\n <button\n key={p.place_id}\n type=\"button\"\n className={styles.suggestionItem}\n onClick={() => {\n update({ birthPlace: p.description });\n clearPredictions();\n setPlaceOpen(false);\n }}\n >\n <span className={styles.suggestionMain}>\n {p.structured_formatting?.main_text ?? p.description}\n </span>\n {p.structured_formatting?.secondary_text && (\n <span className={styles.suggestionSecondary}>\n {p.structured_formatting.secondary_text}\n </span>\n )}\n </button>\n ))}\n </div>\n )}\n\n {placeOpen && googleApiKey && placeLoading && (\n <div className={styles.suggestionsHint}>Loading…</div>\n )}\n\n {placeOpen &&\n googleApiKey &&\n !placeLoading &&\n !!placeLoadError && (\n <div className={styles.suggestionsHint}>{placeLoadError}</div>\n )}\n </div>\n </div >\n </div >\n </div >\n </section >\n );\n};\n","import React from \"react\";\nimport styles from \"./FooterShell.module.scss\";\n\nexport interface FooterShellProps {\n /** Optional circular marquee content (e.g. badges). When provided, marquee is shown. */\n marquee?: React.ReactNode;\n /** Main footer content (e.g. CTA button or form proceed block) */\n children: React.ReactNode;\n className?: string;\n}\n\nexport const FooterShell: React.FC<FooterShellProps> = ({\n marquee,\n children,\n className = \"\",\n}) => {\n return (\n <footer className={`${styles.footer} ${className}`} role=\"contentinfo\">\n <div className={styles.inner}>\n {marquee != null && (\n <div className={styles.badges} aria-hidden>\n {marquee}\n </div>\n )}\n <div className={styles.ctaWrap}>\n {children}\n </div>\n </div>\n </footer>\n );\n};\n","import React from \"react\";\nimport styles from \"./FooterShell.module.scss\";\n\nexport interface FooterCTAButtonProps {\n /** Button content */\n children: React.ReactNode;\n /** When set, renders an anchor instead of a button (e.g. target=\"_blank\" rel=\"noopener noreferrer\") */\n href?: string;\n /** Disabled state; for anchor uses aria-disabled and preventDefault on click */\n disabled?: boolean;\n /** Click handler (used when href is not set); receives click event */\n onClick?: (e: React.MouseEvent<HTMLElement>) => void;\n className?: string;\n /** Optional aria-label for accessibility */\n \"aria-label\"?: string;\n}\n\nexport const FooterCTAButton: React.FC<FooterCTAButtonProps> = ({\n children,\n href,\n disabled = false,\n onClick,\n className = \"\",\n \"aria-label\": ariaLabel,\n}) => {\n const buttonClass = `${styles.ctaButton} ${className}`.trim();\n const ariaProps = ariaLabel != null ? { \"aria-label\": ariaLabel } : {};\n\n if (href != null) {\n return (\n <a\n href={href}\n className={buttonClass}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n aria-disabled={disabled}\n onClick={(e) => disabled && e.preventDefault()}\n {...ariaProps}\n >\n {children}\n </a>\n );\n }\n\n return (\n <button\n type=\"button\"\n className={buttonClass}\n disabled={disabled}\n onClick={onClick}\n {...ariaProps}\n >\n {children}\n </button>\n );\n};\n","import React, { useMemo } from \"react\";\nimport {\n FooterShell,\n FooterCTAButton,\n footerShellStyles,\n} from \"../../../FooterShell\";\nimport type { KundliFormValues } from \"../../KundliForm\";\nimport type { KundliAnalytics } from \"../../../../../analytics\";\nimport { useKundliContext } from \"../../../KundliPage/KundliContext\";\n\nexport interface ProceedFooterProps {\n t: (key: string) => string;\n values: KundliFormValues;\n onProceed?: (values: KundliFormValues) => void;\n href?: string;\n analytics?: KundliAnalytics;\n className?: string;\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n}\n\nconst isValidEmail = (email: string) => /.+@.+\\..+/.test(email);\nconst isValidIndianPhone10 = (phone: string) => /^\\d{10}$/.test(phone);\n\nexport const ProceedFooter: React.FC<ProceedFooterProps> = ({\n t,\n values,\n onProceed,\n href,\n analytics,\n className = \"\",\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n\n const canProceed = useMemo(() => {\n if (!values.fullName.trim()) return false;\n if (isGlobal) {\n if (!isValidEmail(values.email.trim())) return false;\n } else {\n if (!isValidIndianPhone10((values.phone ?? \"\").trim())) return false;\n }\n if (!values.dateOfBirth) return false;\n if (!values.birthPlace.trim()) return false;\n if (!values.birthTimeUnknown && !values.birthTime) return false;\n return true;\n }, [isGlobal, values]);\n\n const original = isGlobal\n ? (originalPriceLabel ?? t(\"formOriginalPrice\"))\n : \"₹999\";\n const discounted = isGlobal\n ? (discountedPriceLabel ?? t(\"formDiscountedPrice\"))\n : \"₹249\";\n const discountPill = discountPillLabel ?? t(\"formDiscountPill\");\n\n const buttonContent = (\n <>\n {t(\"formProceed\")}\n <span className={footerShellStyles.ctaStruck}>{original}</span>\n {\" \"}\n {discounted}\n </>\n );\n\n const content = (\n <>\n <div className={footerShellStyles.offerRow}>\n <span>{t(\"formOfferEnding\")}</span>\n <span className={footerShellStyles.pill}>{discountPill}</span>\n </div>\n <FooterCTAButton\n href={href}\n disabled={!canProceed}\n onClick={() => {\n analytics?.trackPrimaryCtaClickedL1?.({ avenue: \"form\" });\n onProceed?.(values);\n }}\n aria-label={t(\"formPriceAria\")}\n >\n {buttonContent}\n </FooterCTAButton>\n </>\n );\n\n return <FooterShell className={className}>{content}</FooterShell>;\n};\n","import React from 'react';\nimport { useKundliContext } from '../../KundliContext';\nimport styles from './KundliHeader.module.scss';\n\nexport interface KundliHeaderProps {\n /** Translation function */\n t: (key: string) => string;\n /** Language selector slot */\n languageSelector?: React.ReactNode;\n /** Logo URL (optional; shows placeholder if not provided) */\n logoUrl?: string;\n /** Optional class name */\n className?: string;\n}\n\nconst DEFAULT_LOGO_URL = 'https://srm-cdn.a4b.io/yoda/1770362904947.svg';\n\nexport const KundliHeader: React.FC<KundliHeaderProps> = ({\n t,\n languageSelector,\n logoUrl = DEFAULT_LOGO_URL,\n className = '',\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n const showLanguageSelector = languageSelector && !isGlobal;\n\n return (\n <header className={`${styles.header} ${className}`}>\n <div className={styles.brand}>\n <div className={styles.logo}>\n {logoUrl ? (\n <img src={logoUrl} alt={t('sriMandir')} className={styles.logoImg} />\n ) : (\n <div className={styles.logoPlaceholder} aria-hidden />\n )}\n </div>\n <div className={styles.brandText}>\n <span className={styles.brandName}>{t('sriMandir')}</span>\n <span className={styles.rating}>\n <span className={styles.stars} aria-hidden>★</span>\n {t('ratingText')}\n </span>\n </div>\n </div>\n {showLanguageSelector && (\n <div className={styles.langSlot}>{languageSelector}</div>\n )}\n </header>\n );\n};\n","import React from 'react';\nimport styles from './HeroSection.module.scss';\n\nconst TOPIC_KEYS = [\n 'topicMarriage',\n 'topicRelationship',\n 'topicBusiness',\n 'topicHealth',\n 'topicCareer',\n 'topicEducation',\n 'topicMoney',\n] as const;\n\nexport interface HeroSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const HeroSection: React.FC<HeroSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.hero} ${className}`} aria-labelledby=\"hero-title\">\n <h1 id=\"hero-title\" className={styles.title}>\n {t('heroTitle')}\n </h1>\n <p className={styles.subtitle}>{t('heroSubtitle')}</p>\n <div className={styles.topicTags} role=\"list\">\n {TOPIC_KEYS.map((key) => (\n <span key={key} className={styles.tag} role=\"listitem\">\n {t(key)}\n </span>\n ))}\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './PremiumReportOverview.module.scss';\nimport type { KundliAnalytics } from '../../../../analytics';\n\nconst FEATURE_CHECK_ICON_URL = 'https://srm-cdn.a4b.io/yoda/1770363846052.svg';\n\nconst FEATURES = [\n 'premiumFeature1',\n 'premiumFeature2',\n 'premiumFeature3',\n 'premiumFeature4',\n] as const;\n\nexport interface PremiumReportOverviewProps {\n t: (key: string) => string;\n /** Optional report cover image URL */\n reportImageUrl?: string;\n /** Optional analytics for tracking banner clicked */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nconst DEFAULT_REPORT_IMAGE_URL =\n \"https://srm-cdn.a4b.io/yoda/1770710060606.png\";\n\nexport const PremiumReportOverview: React.FC<PremiumReportOverviewProps> = ({\n t,\n reportImageUrl = DEFAULT_REPORT_IMAGE_URL,\n analytics,\n className = '',\n}: PremiumReportOverviewProps) => {\n\n const handleClick = () => {\n analytics?.trackBannerClicked?.();\n };\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"premium-headline\"\n role=\"button\"\n tabIndex={0}\n onClick={handleClick}\n >\n <div className={styles.inner}>\n <div className={styles.content}>\n <h2 id=\"premium-headline\" className={styles.headline}>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill1')}</span>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain1')}</span>\n </span>\n <span className={styles.headlineLine}>\n <span className={styles.headlinePlain}>{t('premiumHeadlinePlain2')}</span>\n <span className={styles.headlinePill}>{t('premiumHeadlinePill2')}</span>\n </span>\n </h2>\n <ul className={styles.featureList}>\n {FEATURES.map((key) => (\n <li key={key} className={styles.featureItem}>\n <img\n src={FEATURE_CHECK_ICON_URL}\n alt=\"\"\n className={styles.featureIcon}\n width={16}\n height={16}\n aria-hidden\n />\n {t(key)}\n </li>\n ))}\n </ul>\n </div>\n <div className={styles.reportImage}>\n <img src={reportImageUrl} alt=\"\" className={styles.reportImg} />\n </div>\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './UniversityCertification.module.scss';\n\nexport interface UniversityCertificationProps {\n t: (key: string) => string;\n /** Optional logo URLs: [BHU, VSU or similar] */\n logoUrl?: string;\n className?: string;\n}\n\nconst DEFAULT_LOGO_URL = 'https://srm-cdn.a4b.io/yoda/1770365699409.png';\n\nexport const UniversityCertification: React.FC<UniversityCertificationProps> = ({\n t,\n logoUrl = DEFAULT_LOGO_URL,\n className = '',\n}) => {\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"certified-heading\">\n <h2 id=\"certified-heading\" className={styles.heading}>\n {t('certifiedBy')}\n </h2>\n <img src={logoUrl} alt=\"University Certification\" className={styles.logoImg} />\n </section>\n );\n};\n","import React from 'react';\nimport styles from './ThreeStepsProcess.module.scss';\n\nconst STEP_KEYS = ['step1', 'step2'] as const;\n\nexport interface ThreeStepsProcessProps {\n t: (key: string) => string;\n locale?: string;\n className?: string;\n}\n\nexport const ThreeStepsProcess: React.FC<ThreeStepsProcessProps> = ({\n t,\n locale = 'en',\n className = '',\n}) => {\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"steps-heading\"\n >\n <p className={styles.heading}>{t('yourThreeSteps')}</p>\n <h2 id=\"steps-heading\" className={styles.subtitle}>\n {t('threeStepsSubtitle')}\n </h2>\n <ol className={styles.stepList}>\n {STEP_KEYS.map((key, index) => (\n <li key={key} className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n {index + 1}\n </span>\n <span className={styles.stepText}>{t(key)}</span>\n </li>\n ))}\n <li className={styles.stepItem}>\n <span className={styles.stepNumber} aria-hidden>\n 3\n </span>\n <span className={styles.stepText}>\n {t('step3Intro')}\n <br />\n {locale === 'en' ? (\n <>\n in <strong className={styles.step3Days}>{t('step3Days')}</strong>\n </>\n ) : (\n <strong className={styles.step3Days}>{t('step3Days')}</strong>\n )}\n </span>\n </li>\n </ol>\n </section>\n );\n};\n","import type { FC } from 'react';\nimport { useEffect, useRef, useState } from 'react';\nimport * as pdfjsLib from 'pdfjs-dist';\nimport styles from './SampleReportModal.module.scss';\n\n// Set worker from CDN - must match pdfjs-dist version\npdfjsLib.GlobalWorkerOptions.workerSrc = `https://unpkg.com/pdfjs-dist@${pdfjsLib.version}/build/pdf.worker.min.js`;\n\nexport interface SampleReportModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n pdfUrl: string;\n}\n\nexport const SampleReportModal: FC<SampleReportModalProps> = ({\n isOpen,\n onClose,\n title,\n pdfUrl,\n}) => {\n const pagesRef = useRef<HTMLDivElement>(null);\n const [loading, setLoading] = useState(true);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n if (!isOpen) return;\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n };\n document.addEventListener('keydown', handleEscape);\n document.body.style.overflow = 'hidden';\n return () => {\n document.removeEventListener('keydown', handleEscape);\n document.body.style.overflow = '';\n };\n }, [isOpen, onClose]);\n\n useEffect(() => {\n if (!isOpen || !pdfUrl || !pagesRef.current) return;\n\n setLoading(true);\n setError(null);\n pagesRef.current.innerHTML = '';\n\n const renderPdf = async () => {\n try {\n const loadingTask = pdfjsLib.getDocument({ url: pdfUrl });\n const pdf = await loadingTask.promise;\n\n const container = pagesRef.current;\n if (!container) return;\n\n const pageWidth = container.clientWidth || 600;\n const scale = Math.min(pageWidth / 612, 2);\n\n for (let i = 1; i <= pdf.numPages; i++) {\n const page = await pdf.getPage(i);\n const viewport = page.getViewport({ scale });\n\n const canvas = document.createElement('canvas');\n canvas.height = viewport.height;\n canvas.width = viewport.width;\n canvas.style.display = 'block';\n canvas.style.margin = '0 auto 1rem';\n canvas.style.maxWidth = '100%';\n\n const ctx = canvas.getContext('2d');\n if (ctx) {\n await page.render({ canvasContext: ctx, viewport }).promise;\n }\n container.appendChild(canvas);\n }\n } catch (err) {\n setError(err instanceof Error ? err.message : 'Failed to load PDF');\n } finally {\n setLoading(false);\n }\n };\n\n renderPdf();\n }, [isOpen, pdfUrl]);\n\n if (!isOpen) return null;\n\n return (\n <div\n className={styles.backdrop}\n onClick={onClose}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"sample-report-modal-title\"\n >\n <div\n className={styles.modal}\n onClick={(e) => e.stopPropagation()}\n >\n <div className={styles.header}>\n <h2 id=\"sample-report-modal-title\" className={styles.title}>\n {title}\n </h2>\n <button\n type=\"button\"\n className={styles.closeBtn}\n onClick={onClose}\n aria-label=\"Close\"\n >\n ×\n </button>\n </div>\n <div className={styles.content}>\n <div className={styles.pdfFrame}>\n {error && (\n <div className={styles.pdfError}>\n <span>{error}</span>\n <a href={pdfUrl} target=\"_blank\" rel=\"noopener noreferrer\">\n Open in new tab instead\n </a>\n </div>\n )}\n <div ref={pagesRef} className={styles.pdfPages} />\n </div>\n <a\n href={pdfUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className={styles.openInNewTab}\n >\n Open in new tab\n </a>\n </div>\n </div>\n </div>\n );\n};\n","import React, { useState } from 'react';\nimport styles from './ViewSampleReportButton.module.scss';\nimport { SampleReportModal } from './SampleReportModal';\nimport type { KundliAnalytics } from '../../../../../analytics';\n\nconst DEFAULT_PDF_URL = 'https://srm-cdn.a4b.io/yoda/1770651163050.pdf';\n\nexport interface ViewSampleReportButtonProps {\n t: (key: string) => string;\n /** PDF URL to display in modal. Defaults to a sample PDF. */\n pdfUrl?: string;\n /** @deprecated Use pdfUrl instead. Opens in new tab when modal not used. */\n href?: string;\n /** Called when button is clicked (e.g. for analytics). Modal opens regardless. */\n onClick?: () => void;\n /** Optional analytics for tracking view sample clicked/closed */\n analytics?: KundliAnalytics;\n className?: string;\n}\n\nexport const ViewSampleReportButton: React.FC<ViewSampleReportButtonProps> = ({\n t,\n pdfUrl = DEFAULT_PDF_URL,\n onClick,\n analytics,\n className = '',\n}) => {\n const [modalOpen, setModalOpen] = useState(false);\n const label = t('viewSampleReport');\n const title = t('sampleReportModalTitle');\n\n const handleClick = () => {\n analytics?.trackViewSampleReportClicked?.();\n onClick?.();\n setModalOpen(true);\n };\n\n const handleClose = () => {\n analytics?.trackViewSampleReportClosed?.();\n setModalOpen(false);\n };\n\n return (\n <section className={`${styles.section} ${className}`}>\n <button type=\"button\" className={styles.button} onClick={handleClick}>\n {label}\n </button>\n <SampleReportModal\n isOpen={modalOpen}\n onClose={handleClose}\n title={title}\n pdfUrl={pdfUrl}\n />\n </section>\n );\n};\n","import React from \"react\";\nimport styles from \"./WhatYoullFindSection.module.scss\";\n\nconst ITEMS: { titleKey: string; descKey: string }[] = [\n { titleKey: \"findDasha\", descKey: \"findDashaDesc\" },\n { titleKey: \"findYoga\", descKey: \"findYogaDesc\" },\n { titleKey: \"findGemstone\", descKey: \"findGemstoneDesc\" },\n { titleKey: \"findPooja\", descKey: \"findPoojaDesc\" },\n { titleKey: \"findMonthly\", descKey: \"findMonthlyDesc\" },\n { titleKey: \"findStrength\", descKey: \"findStrengthDesc\" },\n];\n\nconst DEFAULT_IMAGE_URLS = [\n \"https://srm-cdn.a4b.io/yoda/1770639688505.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639714646.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639727335.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639739387.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639749920.png\",\n \"https://srm-cdn.a4b.io/yoda/1770639760835.png\",\n];\n\nexport interface WhatYoullFindSectionProps {\n t: (key: string) => string;\n /** Optional image URLs per item (same order as ITEMS) */\n imageUrls?: (string | undefined)[];\n className?: string;\n}\n\nexport const WhatYoullFindSection: React.FC<WhatYoullFindSectionProps> = ({\n t,\n imageUrls = DEFAULT_IMAGE_URLS,\n className = \"\",\n}) => {\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"find-heading\"\n >\n <h2 id=\"find-heading\" className={styles.heading}>\n {t(\"whatYoullFindTitle\")}\n </h2>\n <ul className={styles.list}>\n {ITEMS.map((item, index) => (\n <li key={item.titleKey} className={styles.item}>\n <div className={styles.imageWrap}>\n {imageUrls[index] ? (\n <img src={imageUrls[index]} alt=\"\" className={styles.image} />\n ) : (\n <div className={styles.imagePlaceholder} aria-hidden />\n )}\n </div>\n <div className={styles.text}>\n <h3 className={styles.itemTitle}>{t(item.titleKey)}</h3>\n <p className={styles.itemDesc}>{t(item.descKey)}</p>\n </div>\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './WhyUsSection.module.scss';\n\nconst BULLETS = ['whyUs1', 'whyUs2', 'whyUs3', 'whyUs4'] as const;\n\nexport interface WhyUsSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const WhyUsSection: React.FC<WhyUsSectionProps> = ({ t, className = '' }) => {\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"why-heading\">\n <h2 id=\"why-heading\" className={styles.heading}>\n {t('whyUsTitle')}\n </h2>\n <p className={styles.subtitle}>{t('whyUsSubtitle')}</p>\n <ul className={styles.list}>\n {BULLETS.map((key) => (\n <li key={key} className={styles.item}>\n {t(key)}\n </li>\n ))}\n </ul>\n </section>\n );\n};\n","import React, { useState, useMemo } from \"react\";\nimport styles from \"./FeedbackSection.module.scss\";\n\nconst INITIAL_VISIBLE = 3;\n\nexport interface Testimonial {\n quote: string;\n authorName: string;\n authorAvatarUrl?: string;\n rating?: number;\n}\n\nexport interface FeedbackSectionProps {\n t: (key: string) => string;\n testimonials?: Testimonial[];\n readMoreHref?: string;\n onReadMore?: () => void;\n className?: string;\n}\n\nconst buildTestimonialsFromTranslations = (\n t: (key: string) => string,\n): Testimonial[] => {\n const MAX = 15;\n\n const itemsByIndex = new Map<number, Testimonial>();\n\n for (let i = 1; i <= MAX; i += 1) {\n const quoteKey = `feedbackTestimonial${i}`;\n const quote = t(quoteKey);\n // When a translation key is missing, our t() returns the key itself.\n if (!quote || quote === quoteKey) continue;\n\n const authorKey = `feedbackAuthor${i}`;\n const authorName = (() => {\n const v = t(authorKey);\n return v && v !== authorKey ? v : t(\"guest\");\n })();\n\n const avatarKey = `feedbackAuthor${i}AvatarUrl`;\n const avatar = (() => {\n const v = t(avatarKey);\n return v && v !== avatarKey ? v : undefined;\n })();\n\n itemsByIndex.set(i, {\n quote,\n authorName,\n authorAvatarUrl: avatar,\n rating: 5,\n });\n }\n\n // Mix ordering: start with female (9..MAX) then alternate with male (1..8).\n // This avoids a block of male reviews appearing first.\n const maleIndices: number[] = [];\n const femaleIndices: number[] = [];\n for (let i = 1; i <= MAX; i += 1) {\n if (i >= 9) femaleIndices.push(i);\n else maleIndices.push(i);\n }\n\n const mixed: Testimonial[] = [];\n let m = 0;\n let f = 0;\n while (m < maleIndices.length || f < femaleIndices.length) {\n if (f < femaleIndices.length) {\n const idx = femaleIndices[f++];\n const item = itemsByIndex.get(idx);\n if (item) mixed.push(item);\n }\n if (m < maleIndices.length) {\n const idx = maleIndices[m++];\n const item = itemsByIndex.get(idx);\n if (item) mixed.push(item);\n }\n }\n\n return mixed;\n};\n\nexport const FeedbackSection: React.FC<FeedbackSectionProps> = ({\n t,\n testimonials: testimonialsProp,\n readMoreHref,\n onReadMore,\n className = \"\",\n}) => {\n const testimonials =\n testimonialsProp ??\n useMemo(() => buildTestimonialsFromTranslations(t), [t]);\n const [expanded, setExpanded] = useState(false);\n const hasMore = testimonials.length > INITIAL_VISIBLE;\n const visibleTestimonials =\n hasMore && !expanded\n ? testimonials.slice(0, INITIAL_VISIBLE)\n : testimonials;\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"feedback-heading\"\n >\n <h2 id=\"feedback-heading\" className={styles.heading}>\n {t(\"feedbackTitle\")}\n </h2>\n <p className={styles.trustLine}>\n <span className={styles.star} aria-hidden>\n ★\n </span>\n <span className={styles.ratingNum}>{t(\"feedbackRating\")}</span>\n <span className={styles.dot} aria-hidden />\n <span className={styles.trustText}>{t(\"feedbackTrust\")}</span>\n </p>\n <ul className={styles.cardList}>\n {visibleTestimonials.map((item, index) => (\n <li key={index} className={styles.card}>\n <p className={styles.quote}>{item.quote}</p>\n <div className={styles.author}>\n {item.authorAvatarUrl ? (\n <img\n src={item.authorAvatarUrl}\n alt=\"\"\n className={styles.avatar}\n width={40}\n height={40}\n />\n ) : (\n <div className={styles.avatarPlaceholder} aria-hidden />\n )}\n <div className={styles.authorInfo}>\n <span className={styles.authorName}>{item.authorName}</span>\n <span className={styles.stars} aria-hidden>\n {\"★\".repeat(item.rating ?? 5)}\n </span>\n </div>\n </div>\n </li>\n ))}\n </ul>\n {hasMore && (\n <div className={styles.readMoreWrap}>\n <button\n type=\"button\"\n className={styles.toggleBtn}\n onClick={() => setExpanded((e) => !e)}\n aria-expanded={expanded}\n >\n {expanded ? t(\"readLess\") : t(\"readMoreReviews\")}\n <span className={styles.arrow} aria-hidden>\n {expanded ? \"›\" : \"›\"}\n </span>\n </button>\n </div>\n )}\n {(readMoreHref || onReadMore) && !hasMore && (\n <div className={styles.readMoreWrap}>\n {readMoreHref ? (\n <a\n href={readMoreHref}\n className={styles.readMore}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n >\n {t(\"readMoreReviews\")}\n <span className={styles.arrow} aria-hidden>\n ›\n </span>\n </a>\n ) : (\n <button\n type=\"button\"\n className={styles.readMore}\n onClick={() => onReadMore?.()}\n >\n {t(\"readMoreReviews\")}\n <span className={styles.arrow} aria-hidden>\n ›\n </span>\n </button>\n )}\n </div>\n )}\n </section>\n );\n};\n","import React, { useState } from \"react\";\nimport styles from \"./FAQSection.module.scss\";\nimport { useKundliContext } from \"../../KundliContext\";\n\nconst FAQ_ITEMS: { qKey: string; aKey: string }[] = [\n { qKey: \"faqQ1\", aKey: \"faqA1\" },\n { qKey: \"faqQ3\", aKey: \"faqA3\" },\n];\n\nexport interface FAQSectionProps {\n t: (key: string) => string;\n className?: string;\n}\n\nexport const FAQSection: React.FC<FAQSectionProps> = ({\n t,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n const [openIndex, setOpenIndex] = useState<number>(1); // default open: birth time question (now at index 1)\n\n const resolveAnswerKey = (aKey: string) => {\n if (aKey === \"faqA1\") {\n return isGlobal ? \"faqA1Global\" : \"faqA1Domestic\";\n }\n return aKey;\n };\n\n return (\n <section\n className={`${styles.section} ${className}`}\n aria-labelledby=\"faq-heading\"\n >\n <h2 id=\"faq-heading\" className={styles.heading}>\n {t(\"faqTitle\")}\n </h2>\n <div className={styles.accordion} role=\"list\">\n {FAQ_ITEMS.map((item, index) => {\n const isOpen = openIndex === index;\n return (\n <div\n key={item.qKey}\n className={`${styles.item} ${isOpen ? styles.itemOpen : \"\"}`}\n role=\"listitem\"\n >\n <button\n type=\"button\"\n className={styles.question}\n onClick={() => setOpenIndex(isOpen ? -1 : index)}\n aria-expanded={isOpen}\n aria-controls={`faq-answer-${index}`}\n id={`faq-question-${index}`}\n >\n <span>{t(item.qKey)}</span>\n <span\n className={`${styles.chevron} ${isOpen ? styles.chevronOpen : \"\"}`}\n aria-hidden\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n aria-hidden\n focusable=\"false\"\n >\n <path\n d=\"M5.8 8.3a1 1 0 0 1 1.4 0L10 11.09l2.8-2.8a1 1 0 1 1 1.4 1.42l-3.5 3.5a1 1 0 0 1-1.4 0l-3.5-3.5A1 1 0 0 1 5.8 8.3z\"\n fill=\"currentColor\"\n />\n </svg>\n </span>\n </button>\n <div\n id={`faq-answer-${index}`}\n role=\"region\"\n aria-labelledby={`faq-question-${index}`}\n className={`${styles.answerWrap} ${isOpen ? styles.answerOpen : \"\"}`}\n hidden={!isOpen}\n >\n {item.aKey && (\n <p className={styles.answer}>\n {t(resolveAnswerKey(item.aKey))}\n </p>\n )}\n </div>\n </div>\n );\n })}\n </div>\n </section>\n );\n};\n","import React from 'react';\nimport styles from './ContactUsSection.module.scss';\n\nexport interface ContactUsSectionProps {\n t: (key: string) => string;\n /** Override WhatsApp number */\n whatsAppNumber?: string;\n /** Override email */\n email?: string;\n /** Override brand name */\n brandName?: string;\n className?: string;\n}\n\nexport const ContactUsSection: React.FC<ContactUsSectionProps> = ({\n t,\n whatsAppNumber,\n email,\n brandName,\n className = '',\n}) => {\n const whatsApp = whatsAppNumber ?? '8295049751';\n const emailVal = email ?? 'shubham.goyal@supportmandir.com';\n return (\n <section className={`${styles.section} ${className}`} aria-labelledby=\"contact-heading\">\n <h2 id=\"contact-heading\" className={styles.heading}>\n {t('contactTitle')}\n </h2>\n <div className={styles.content}>\n <p className={styles.brandName}>{brandName ?? t('sriMandir')}</p>\n <p className={styles.line}>\n {t('contactWhatsApp').replace('8295049751', whatsApp)}\n </p>\n <p className={styles.line}>\n {t('contactEmail').replace('shubham.goyal@supportmandir.com', emailVal)}\n </p>\n </div>\n </section>\n );\n};\n","import React from \"react\";\nimport { FooterShell, FooterCTAButton, footerShellStyles } from \"../../../FooterShell\";\nimport { useKundliContext } from \"../../KundliContext\";\n\nconst ICON_KUNDLI_CREATED = 'https://srm-cdn.a4b.io/yoda/1770375694934.svg';\nconst ICON_CERTIFIED = 'https://srm-cdn.a4b.io/yoda/1770375720933.svg';\nconst ICON_SECURE_PAYMENT = 'https://srm-cdn.a4b.io/yoda/1770707793537.svg';\n\nexport interface CTAFooterProps {\n t: (key: string) => string;\n /** CTA button click handler (receives click event for e.g. CTA text extraction) */\n onCtaClick?: (e: React.MouseEvent<HTMLElement>) => void;\n /** Or use href for link instead of button */\n ctaHref?: string;\n /** Optional override for CTA label text */\n ctaLabel?: string;\n className?: string;\n}\n\nconst BadgeRow: React.FC<{ t: (key: string) => string }> = ({ t }) => (\n <div className={footerShellStyles.marqueeTrack}>\n <div className={footerShellStyles.marqueeContent}>\n <span className={footerShellStyles.badge}>\n <img src={ICON_KUNDLI_CREATED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaKundliCreated')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_CERTIFIED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaCertified')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_SECURE_PAYMENT} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaSecurePayment')}\n </span>\n </div>\n <div className={footerShellStyles.marqueeContent} aria-hidden>\n <span className={footerShellStyles.badge}>\n <img src={ICON_KUNDLI_CREATED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaKundliCreated')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_CERTIFIED} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaCertified')}\n </span>\n <span className={footerShellStyles.badge}>\n <img src={ICON_SECURE_PAYMENT} alt=\"\" className={footerShellStyles.badgeIcon} width={16} height={16} aria-hidden />\n {t('ctaSecurePayment')}\n </span>\n </div>\n </div>\n);\n\nexport const CTAFooter: React.FC<CTAFooterProps> = ({\n t,\n onCtaClick,\n ctaHref,\n className = \"\",\n}) => {\n const kundliCtx = useKundliContext();\n const isGlobal = kundliCtx?.config.isGlobal ?? true;\n const original = isGlobal\n ? (kundliCtx?.config.originalPriceLabel ?? t(\"ctaButtonStruck\"))\n : \"₹999\";\n const discounted = isGlobal\n ? (kundliCtx?.config.discountedPriceLabel ?? t(\"ctaButtonAfter\"))\n : \"₹249\";\n\n const ctaContent = (\n <>\n {t(\"ctaButtonBefore\")}\n <span className={footerShellStyles.ctaStruck}>{original}</span>\n {\" \"}\n {discounted}\n </>\n );\n return (\n <FooterShell\n className={className}\n marquee={<BadgeRow t={t} />}\n >\n <FooterCTAButton href={ctaHref} onClick={onCtaClick}>\n {ctaContent}\n </FooterCTAButton>\n </FooterShell>\n );\n};\n","import React, { useEffect, useRef, useState } from \"react\";\nimport styles from \"./KundliForm.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n translations,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { useKundliContext } from \"../KundliPage/KundliContext\";\nimport type { KundliAnalytics } from \"../../analytics\";\nimport { FormHeader, ProceedFooter, UserInfoFormSection } from \"./sections\";\nimport { KundliHeader } from \"../KundliPage/sections\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\n\n// TODO: Put this in .env\nconst DEFAULT_GOOGLE_MAPS_API_KEY = \"AIzaSyCEsEBy-JYuu9SSITQrpYU3tpaq5HQOhi4\";\n\nexport interface KundliFormValues {\n fullName: string;\n phone?: string;\n email: string;\n dateOfBirth: string; // ISO yyyy-mm-dd (or empty)\n birthTime: string; // HH:mm (or empty)\n birthTimeUnknown: boolean;\n birthPlace: string;\n}\n\nexport interface KundliFormProps {\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n\n /** Back button handler in header */\n onBack?: () => void;\n\n /** Initial field values */\n initialValues?: Partial<KundliFormValues>;\n\n /** Called when user clicks Proceed to payment */\n onProceed?: (values: KundliFormValues) => void;\n\n /** If provided, proceed CTA becomes a link */\n proceedHref?: string;\n\n /** Footer pricing */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n\n /** Google Maps API key used for Birth Place autocomplete */\n googleMapsApiKey?: string;\n\n /** Optional analytics (Mixpanel etc.). Also set on KundliProvider; passing here ensures events fire when form is used inside provider (e.g. avoids context loss from multiple React instances). */\n analytics?: KundliAnalytics;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\nconst DEFAULT_VALUES: KundliFormValues = {\n fullName: \"\",\n phone: \"\",\n email: \"\",\n dateOfBirth: \"\",\n birthTime: \"\",\n birthTimeUnknown: false,\n birthPlace: \"\",\n};\n\nexport const KundliForm: React.FC<KundliFormProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n onBack,\n initialValues,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n googleMapsApiKey = DEFAULT_GOOGLE_MAPS_API_KEY,\n analytics: analyticsProp,\n}) => {\n const kundliCtx = useKundliContext();\n const i18n = useI18n();\n\n const isConnected = kundliCtx !== null;\n\n const effectiveLocaleProp = isConnected ? kundliCtx.locale : localeProp;\n const initialLocale = effectiveLocaleProp ?? i18n?.locale ?? \"en\";\n const [localLocale, setLocalLocale] =\n useState<SupportedLocale>(initialLocale);\n const locale = isConnected ? kundliCtx.locale : localLocale;\n const setLocale = isConnected ? kundliCtx.setLocale : setLocalLocale;\n\n const [langOpen, setLangOpen] = useState(false);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(effectiveLocaleProp);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n // Scroll to top when form is shown (e.g. when navigating from landing)\n useEffect(() => {\n window.scrollTo({ top: 0, left: 0, behavior: \"auto\" });\n }, []);\n\n const t = (key: string) => tFromLocale(locale, key);\n\n useEffect(() => {\n if (effectiveLocaleProp && prevLocalePropRef.current !== effectiveLocaleProp) {\n setLocale(effectiveLocaleProp);\n }\n prevLocalePropRef.current = effectiveLocaleProp;\n }, [effectiveLocaleProp, setLocale]);\n\n useEffect(() => {\n if (effectiveLocaleProp) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, effectiveLocaleProp, setLocale]);\n\n const [localValues, setLocalValues] = useState<KundliFormValues>({\n ...DEFAULT_VALUES,\n ...initialValues,\n phone: initialValues?.phone ?? \"\",\n });\n\n const values = isConnected ? kundliCtx.formValues : localValues;\n const setValues = isConnected ? kundliCtx.setFormValues : setLocalValues;\n\n const effectiveOnBack = isConnected ? kundliCtx.goToPage : onBack;\n const effectiveOnProceed = isConnected ? kundliCtx.onProceed : onProceed;\n const effectiveProceedHref = isConnected ? kundliCtx.config.proceedHref : proceedHref;\n const effectiveOriginalPrice = isConnected ? kundliCtx.config.originalPriceLabel : originalPriceLabel;\n const effectiveDiscountedPrice = isConnected ? kundliCtx.config.discountedPriceLabel : discountedPriceLabel;\n const effectiveDiscountPill = isConnected ? kundliCtx.config.discountPillLabel : discountPillLabel;\n const effectiveShowLanguageSelector = isConnected\n ? (kundliCtx.config.showLanguageSelector ?? true)\n : showLanguageSelector;\n // Prefer context analytics when inside KundliProvider; fall back to prop (e.g. when context is null due to multiple React instances or code-splitting)\n const analytics =\n (isConnected ? kundliCtx?.config?.analytics : analyticsProp) ?? analyticsProp;\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n const languageSelector = effectiveShowLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-form-lang\"\n aria-label={t(\"language\")}\n >\n <img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n aria-hidden\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-form-lang\"\n aria-activedescendant={`kundli-form-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-form-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={isConnected ? kundliCtx.config.logoUrl : undefined}\n languageSelector={languageSelector}\n className={styles.kundliHeaderNoBorder}\n />\n <div className={styles.headerSeparator} aria-hidden />\n <main className={styles.main}>\n <FormHeader t={t} onBack={effectiveOnBack} />\n <UserInfoFormSection\n t={t}\n values={values}\n onChange={setValues}\n googleMapsApiKey={googleMapsApiKey}\n />\n </main>\n <ProceedFooter\n t={t}\n values={values}\n onProceed={effectiveOnProceed}\n href={effectiveProceedHref}\n originalPriceLabel={effectiveOriginalPrice}\n discountedPriceLabel={effectiveDiscountedPrice}\n discountPillLabel={effectiveDiscountPill}\n analytics={analytics}\n />\n </div>\n );\n};\n","import React, { useState, useRef, useEffect, useCallback } from \"react\";\nimport styles from \"./KundliPage.module.scss\";\nimport { useI18n } from \"../../i18n\";\nimport {\n translations,\n LOCALE_LABELS,\n SUPPORTED_LOCALES,\n type SupportedLocale,\n} from \"../../i18n/translations\";\nimport { KundliForm } from \"../KundliForm\";\nimport { KundliProvider, useKundliContextOrThrow } from \"./KundliContext\";\n\nconst GLOBE_ICON_URL = \"https://srm-cdn.a4b.io/yoda/1770362713543.svg\";\nimport {\n KundliHeader,\n HeroSection,\n PremiumReportOverview,\n UniversityCertification,\n ThreeStepsProcess,\n ViewSampleReportButton,\n WhatYoullFindSection,\n WhyUsSection,\n FeedbackSection,\n FAQSection,\n ContactUsSection,\n CTAFooter,\n} from \"./sections\";\n\nimport type { KundliFormValues } from \"../KundliForm\";\nimport type { KundliAnalytics } from \"../../analytics\";\n\nexport interface KundliPageProps {\n /** Optional CSS class name */\n className?: string;\n /** Language (en, hi). Overrides I18nProvider if set. Initial value when using dropdown. */\n locale?: SupportedLocale;\n /** Show language dropdown. Default true. */\n showLanguageSelector?: boolean;\n /** User ID from auth, for API calls etc. */\n userId?: number;\n /** Whether the user is global (international) or domestic */\n isGlobal?: boolean;\n /** Header logo URL */\n logoUrl?: string;\n /** Premium report cover image URL */\n reportImageUrl?: string;\n /** University logo URLs [BHU, VSU] */\n universityLogoUrls?: [string?, string?];\n /** Sample report link (opens in new tab) */\n sampleReportHref?: string;\n /** Called when \"View Sample Report\" is clicked (if sampleReportHref not set) */\n onViewSampleReport?: () => void;\n /** CTA button link (e.g. checkout URL). If set, CTA is a link; otherwise CTA shows the Kundli form. */\n ctaHref?: string;\n /** Called when CTA button is clicked (if ctaHref not set). Also called after navigating to form when integrated. */\n onCtaClick?: () => void;\n /** Read more reviews link */\n readMoreReviewsHref?: string;\n /** Called when user proceeds from the form (e.g. to payment) */\n onProceed?: (values: KundliFormValues) => void;\n /** Form: proceed CTA as link */\n proceedHref?: string;\n /** Form: pricing labels */\n originalPriceLabel?: string;\n discountedPriceLabel?: string;\n discountPillLabel?: string;\n /** Optional analytics implementation for Mixpanel/tracking events */\n analytics?: KundliAnalytics;\n /** Notify when user changes language (e.g. to keep form view in sync when switching from landing) */\n onLocaleChange?: (locale: SupportedLocale) => void;\n}\n\nconst tFromLocale = (locale: SupportedLocale, key: string) =>\n translations[locale]?.[key] ?? key;\n\n/** Height of the sticky CTA footer (matches space reserved in main, e.g. pb-28). */\nconst CTA_FOOTER_HEIGHT_PX = 112;\n\n/** Wraps a section and fires trackDetailedKundliReportImpressionFe when it enters the viewport. */\nfunction SectionWithImpression({\n section,\n children,\n onImpression,\n}: {\n section: string;\n children: React.ReactNode;\n onImpression: (section: string) => void;\n}) {\n const ref = useRef<HTMLDivElement>(null);\n const reported = useRef(false);\n useEffect(() => {\n const el = ref.current;\n if (!el) return;\n const observer = new IntersectionObserver(\n ([entry]) => {\n if (!entry?.isIntersecting || reported.current) return;\n reported.current = true;\n onImpression(section);\n },\n {\n threshold: 0.1,\n // Shrink bottom of viewport by CTA footer height so we only count content actually visible above the sticky footer\n rootMargin: `0px 0px -${CTA_FOOTER_HEIGHT_PX}px 0px`,\n }\n );\n observer.observe(el);\n return () => observer.disconnect();\n }, [section, onImpression]);\n return <div ref={ref}>{children}</div>;\n}\n\n/** Renders either the landing page or the form based on context view */\nfunction KundliPageRouter({ className }: { className: string }) {\n const { view } = useKundliContextOrThrow();\n if (view === \"form\") {\n return <KundliForm />;\n }\n return <KundliPageContent className={className} />;\n}\n\n/** Landing page content (hero, steps, CTA, etc.). Uses context for locale and CTA → form. */\nfunction KundliPageContent({ className }: { className: string }) {\n const i18n = useI18n();\n const {\n locale,\n setLocale,\n config,\n goToForm,\n } = useKundliContextOrThrow();\n\n const [langOpen, setLangOpen] = useState(false);\n const langRef = useRef<HTMLDivElement>(null);\n const prevLocalePropRef = useRef<SupportedLocale | undefined>(config.locale);\n const prevProviderLocaleRef = useRef<SupportedLocale | undefined>(\n i18n?.locale,\n );\n\n useEffect(() => {\n if (config.locale && prevLocalePropRef.current !== config.locale) {\n setLocale(config.locale);\n }\n prevLocalePropRef.current = config.locale;\n }, [config.locale, setLocale]);\n\n useEffect(() => {\n if (config.locale) return;\n const providerLocale = i18n?.locale;\n if (providerLocale && prevProviderLocaleRef.current !== providerLocale) {\n setLocale(providerLocale);\n }\n prevProviderLocaleRef.current = providerLocale;\n }, [i18n?.locale, config.locale, setLocale]);\n\n useEffect(() => {\n if (!langOpen) return;\n const handleClickOutside = (e: MouseEvent) => {\n if (langRef.current && !langRef.current.contains(e.target as Node)) {\n setLangOpen(false);\n }\n };\n document.addEventListener(\"mousedown\", handleClickOutside);\n return () => document.removeEventListener(\"mousedown\", handleClickOutside);\n }, [langOpen]);\n\n const t = (key: string) => tFromLocale(locale, key);\n const showLanguageSelector = config.showLanguageSelector ?? true;\n\n const languageSelector = showLanguageSelector ? (\n <div className={styles.langDropdownWrap} ref={langRef}>\n <button\n type=\"button\"\n className={styles.langTrigger}\n onClick={() => {\n config.analytics?.trackLanguageClickedFe?.({ language: locale });\n setLangOpen((o) => !o);\n }}\n aria-expanded={langOpen}\n aria-haspopup=\"listbox\"\n id=\"kundli-lang\"\n aria-label={t(\"language\")}\n >\n <img\n src={GLOBE_ICON_URL}\n alt=\"\"\n className={styles.langIcon}\n width={16}\n height={16}\n aria-hidden\n />\n <span className={styles.langLabel}>{LOCALE_LABELS[locale]}</span>\n </button>\n {langOpen && (\n <ul\n className={styles.langMenu}\n role=\"listbox\"\n aria-labelledby=\"kundli-lang\"\n aria-activedescendant={`kundli-lang-option-${locale}`}\n >\n {SUPPORTED_LOCALES.map((loc) => (\n <li\n key={loc}\n id={`kundli-lang-option-${loc}`}\n role=\"option\"\n aria-selected={loc === locale}\n className={styles.langOption}\n onClick={() => {\n config.analytics?.trackLanguageChangedFe?.({ newLanguage: loc });\n setLocale(loc);\n setLangOpen(false);\n }}\n >\n {LOCALE_LABELS[loc]}\n </li>\n ))}\n </ul>\n )}\n </div>\n ) : null;\n\n const handleCtaClick = (e: React.MouseEvent<HTMLElement>) => {\n const ctaText =\n (e.currentTarget as HTMLElement).innerText?.trim() ?? t(\"ctaButtonAfter\");\n config.analytics?.trackPrimaryCtaClickedFe?.({ ctaText });\n goToForm();\n config.onCtaClick?.();\n };\n\n const handleSectionImpression = useCallback(\n (section: string) => {\n config.analytics?.trackDetailedKundliReportImpressionFe?.({\n section,\n timestamp: new Date().toISOString(),\n });\n },\n [config.analytics]\n );\n\n return (\n <div className={`${styles.container} ${className}`}>\n <KundliHeader\n t={t}\n logoUrl={config.logoUrl}\n languageSelector={languageSelector}\n />\n <main className={styles.main}>\n <SectionWithImpression\n section=\"hero\"\n onImpression={handleSectionImpression}\n >\n <HeroSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"premium_report_overview\"\n onImpression={handleSectionImpression}\n >\n <PremiumReportOverview\n t={t}\n reportImageUrl={config.reportImageUrl}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"university_certification\"\n onImpression={handleSectionImpression}\n >\n <UniversityCertification\n t={t}\n logoUrl={config.universityLogoUrls?.find((u): u is string => Boolean(u))}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"three_steps_process\"\n onImpression={handleSectionImpression}\n >\n <ThreeStepsProcess t={t} locale={locale} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"view_sample_report\"\n onImpression={handleSectionImpression}\n >\n <ViewSampleReportButton\n t={t}\n pdfUrl={config.sampleReportHref}\n onClick={config.onViewSampleReport}\n analytics={config.analytics}\n />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"what_youll_find\"\n onImpression={handleSectionImpression}\n >\n <WhatYoullFindSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"why_us\"\n onImpression={handleSectionImpression}\n >\n <WhyUsSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"feedback\"\n onImpression={handleSectionImpression}\n >\n <FeedbackSection t={t} readMoreHref={config.readMoreReviewsHref} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"faq\"\n onImpression={handleSectionImpression}\n >\n <FAQSection t={t} />\n </SectionWithImpression>\n <SectionWithImpression\n section=\"contact_us\"\n onImpression={handleSectionImpression}\n >\n <ContactUsSection t={t} />\n </SectionWithImpression>\n </main>\n <CTAFooter\n t={t}\n ctaHref={config.ctaHref}\n onCtaClick={config.ctaHref ? undefined : handleCtaClick}\n />\n </div>\n );\n}\n\nexport const KundliPage: React.FC<KundliPageProps> = ({\n className = \"\",\n locale: localeProp,\n showLanguageSelector = true,\n userId,\n isGlobal,\n logoUrl,\n reportImageUrl,\n universityLogoUrls,\n sampleReportHref,\n onViewSampleReport,\n ctaHref,\n onCtaClick,\n readMoreReviewsHref,\n onProceed,\n proceedHref,\n originalPriceLabel,\n discountedPriceLabel,\n discountPillLabel,\n analytics,\n onLocaleChange,\n}) => {\n return (\n <KundliProvider\n locale={localeProp}\n showLanguageSelector={showLanguageSelector}\n userId={userId}\n isGlobal={isGlobal}\n logoUrl={logoUrl}\n reportImageUrl={reportImageUrl}\n universityLogoUrls={universityLogoUrls}\n sampleReportHref={sampleReportHref}\n onViewSampleReport={onViewSampleReport}\n ctaHref={ctaHref}\n onCtaClick={onCtaClick}\n readMoreReviewsHref={readMoreReviewsHref}\n onProceed={onProceed}\n proceedHref={proceedHref}\n originalPriceLabel={originalPriceLabel}\n discountedPriceLabel={discountedPriceLabel}\n discountPillLabel={discountPillLabel}\n analytics={analytics}\n onLocaleChange={onLocaleChange}\n >\n <KundliPageRouter className={className} />\n </KundliProvider>\n );\n};\n","/**\n * Event names matching Kundli Generator Events taxonomy (Mixpanel).\n * Host app (e.g. hanuman) should use these when calling logEvent.\n */\nexport const KUNDLI_ANALYTICS_EVENT_NAMES = {\n banner_clicked_fe: 'banner_clicked_fe',\n primary_cta_clicked_fe: 'primary_cta_clicked_fe',\n language_changed_fe: 'language_changed_fe',\n language_clicked_fe: 'language_clicked_fe',\n retry_payment: 'retry_payment',\n detailed_kundli_report_impression_fe: 'detailed_kundli_report_impression_fe',\n payment_partner_page_opened: 'payment_partner_page_opened',\n view_sample_report_clicked: 'view_sample_report_clicked',\n view_sample_report_closed: 'view_sample_report_closed',\n info_icon_clicked: 'info_icon_clicked',\n name_section_clicked: 'name_section_clicked',\n name_section_filled: 'name_section_filled',\n phone_section_clicked: 'phone_section_clicked',\n phone_section_filled: 'phone_section_filled',\n email_section_clicked: 'email_section_clicked',\n email_section_filled: 'email_section_filled',\n dob_clicked: 'dob_clicked',\n dob_filled: 'dob_filled',\n time_clicked: 'time_clicked',\n time_filled: 'time_filled',\n time_checkbox_clicked: 'time_checkbox_clicked',\n place_of_birth_clicked: 'place_of_birth_clicked',\n place_of_birth_chosen: 'place_of_birth_chosen',\n language_of_report_clicked: 'language_of_report_clicked',\n primary_cta_clicked_l1: 'primary_cta_clicked_l1',\n /** Legacy / alias: when landing page is viewed */\n kundli_page_view: 'kundli_page_view',\n /** Legacy / alias: when L1 form page is viewed (same as l1_page_opened) */\n kundli_form_view: 'kundli_form_view',\n} as const\n\nexport type KundliAnalyticsEventName =\n (typeof KUNDLI_ANALYTICS_EVENT_NAMES)[keyof typeof KUNDLI_ANALYTICS_EVENT_NAMES]\n\n/** Optional analytics implementation. Pass from host to KundliPage/KundliForm to track events. */\nexport interface KundliAnalytics {\n trackBannerClicked?(): void\n trackPrimaryCtaClickedFe?(params: { ctaText?: string }): void\n trackLanguageChangedFe?(params: { newLanguage: string }): void\n trackLanguageClickedFe?(params: { language: string }): void\n trackDetailedKundliReportImpressionFe?(params: {\n section: string\n timestamp?: string\n }): void\n trackViewSampleReportClicked?(): void\n trackViewSampleReportClosed?(): void\n trackInfoIconClicked?(params: { fieldName: string }): void\n trackNameSectionClicked?(): void\n trackNameSectionFilled?(): void\n trackPhoneSectionClicked?(): void\n trackPhoneSectionFilled?(): void\n trackEmailSectionClicked?(): void\n trackEmailSectionFilled?(): void\n trackDobClicked?(): void\n trackDobFilled?(): void\n trackTimeClicked?(): void\n trackTimeFilled?(): void\n trackTimeCheckboxClicked?(): void\n trackPlaceOfBirthClicked?(): void\n trackPlaceOfBirthChosen?(): void\n trackLanguageOfReportClicked?(): void\n trackPrimaryCtaClickedL1?(params: { avenue?: string }): void\n trackKundliPageView?(): void\n trackKundliFormView?(): void\n}\n"],"names":["f","require$$0","k","m","n","p","q","c","a","g","b","d","e","h","reactJsxRuntime_production_min","React","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_OFFSCREEN_TYPE","MAYBE_ITERATOR_SYMBOL","FAUX_ITERATOR_SYMBOL","getIteratorFn","maybeIterable","maybeIterator","ReactSharedInternals","error","format","_len2","args","_key2","printWarning","level","ReactDebugCurrentFrame","stack","argsWithFormat","item","enableScopeAPI","enableCacheElement","enableTransitionTracing","enableLegacyHidden","enableDebugTracing","REACT_MODULE_REFERENCE","isValidElementType","type","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","assign","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","props","reenableLogs","ReactCurrentDispatcher","prefix","describeBuiltInComponentFrame","name","source","ownerFn","x","match","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","fn","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","s","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","element","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","value","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","hasValidRef","config","getter","hasValidKey","warnIfStringRefCannotBeAutoConverted","self","defineKeyPropWarningGetter","warnAboutAccessingKey","defineRefPropWarningGetter","warnAboutAccessingRef","ReactElement","key","ref","jsxDEV","maybeKey","propName","defaultProps","ReactCurrentOwner$1","ReactDebugCurrentFrame$1","setCurrentlyValidatingElement$1","propTypesMisspellWarningShown","isValidElement","object","getDeclarationErrorAddendum","getSourceInfoErrorAddendum","ownerHasKeyUseWarning","getCurrentComponentErrorInfo","parentType","info","parentName","validateExplicitKey","currentComponentErrorInfo","childOwner","validateChildKeys","node","i","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","didWarnAboutKeySpread","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","children","beforeExample","afterExample","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","SUPPORTED_LOCALES","LOCALE_LABELS","translations","I18nContext","createContext","I18nProvider","locale","useI18n","useContext","getItem","setItem","removeItem","isLocalStorageAvailable","testKey","KUNDLI_LANGUAGE_STORAGE_KEY","getStoredKundliLocale","stored","setStoredKundliLocale","KundliContext","DEFAULT_FORM_VALUES","KundliProvider","localeProp","showLanguageSelector","userId","isGlobal","logoUrl","reportImageUrl","universityLogoUrls","sampleReportHref","onViewSampleReport","ctaHref","onCtaClick","onBack","readMoreReviewsHref","onProceed","proceedHref","originalPriceLabel","discountedPriceLabel","discountPillLabel","analytics","onLocaleChange","view","setView","useState","setLocale","formValues","setFormValues","isInitialLocaleMount","useRef","useEffect","useMemo","goToForm","useCallback","goToPage","useKundliContext","useKundliContextOrThrow","ctx","BackIcon","styles","FormHeader","t","className","googleMapsPromise","loadGoogleMapsScript","apiKey","language","resolve","reject","existing","script","url","start","check","useGooglePlacesAutocomplete","params","restrictCountry","isLoaded","setIsLoaded","predictions","setPredictions","isSearching","setIsSearching","loadError","setLoadError","autocompleteService","placesService","sessionToken","div","searchPlaces","query","request","response","preds","status","getPlaceDetails","placeId","place","result","lat","lng","city","state","country","component","clearPredictions","ICONS","UserInfoFormSection","onChange","analyticsProp","googleMapsApiKey","kundliCtx","filledRef","update","patch","trackFilled","field","newValue","sanitizePhone10","raw","dobRef","lastOpenedPickerRef","lastOpenedPickerAtRef","timeWrapRef","timeOpen","setTimeOpen","timeDraft","setTimeDraft","pad2","to12HourDisplay","hhmm","hour24","minute","meridiem","from24ToDraft","draftTo24","draft","hour12","placeWrapRef","placeOpen","setPlaceOpen","infoOpen","setInfoOpen","googleApiKey","__vite_import_meta_env__","placeQuery","placeCountryRestriction","placeLanguage","placeSuggestions","placeLoading","placeLoadError","onDocMouseDown","handle","toggleNativePicker","el","onKeyDown","v","Fragment","today","maxDate","o","_","FooterShell","marquee","FooterCTAButton","href","disabled","onClick","ariaLabel","buttonClass","ariaProps","isValidEmail","email","isValidIndianPhone10","phone","ProceedFooter","canProceed","original","discounted","discountPill","buttonContent","footerShellStyles","content","DEFAULT_LOGO_URL","KundliHeader","languageSelector","TOPIC_KEYS","HeroSection","FEATURE_CHECK_ICON_URL","FEATURES","DEFAULT_REPORT_IMAGE_URL","PremiumReportOverview","handleClick","UniversityCertification","STEP_KEYS","ThreeStepsProcess","index","pdfjsLib","SampleReportModal","isOpen","onClose","title","pdfUrl","pagesRef","loading","setLoading","setError","handleEscape","pdf","container","pageWidth","scale","page","viewport","canvas","DEFAULT_PDF_URL","ViewSampleReportButton","modalOpen","setModalOpen","label","handleClose","ITEMS","DEFAULT_IMAGE_URLS","WhatYoullFindSection","imageUrls","BULLETS","WhyUsSection","INITIAL_VISIBLE","buildTestimonialsFromTranslations","itemsByIndex","quoteKey","quote","authorKey","authorName","avatarKey","avatar","maleIndices","femaleIndices","mixed","idx","FeedbackSection","testimonialsProp","readMoreHref","onReadMore","testimonials","expanded","setExpanded","hasMore","visibleTestimonials","FAQ_ITEMS","FAQSection","openIndex","setOpenIndex","resolveAnswerKey","aKey","ContactUsSection","whatsAppNumber","brandName","whatsApp","emailVal","ICON_KUNDLI_CREATED","ICON_CERTIFIED","ICON_SECURE_PAYMENT","BadgeRow","CTAFooter","ctaContent","GLOBE_ICON_URL","DEFAULT_GOOGLE_MAPS_API_KEY","tFromLocale","DEFAULT_VALUES","KundliForm","initialValues","i18n","isConnected","effectiveLocaleProp","initialLocale","localLocale","setLocalLocale","langOpen","setLangOpen","langRef","prevLocalePropRef","prevProviderLocaleRef","providerLocale","localValues","setLocalValues","setValues","effectiveOnBack","effectiveOnProceed","effectiveProceedHref","effectiveOriginalPrice","effectiveDiscountedPrice","effectiveDiscountPill","effectiveShowLanguageSelector","handleClickOutside","loc","CTA_FOOTER_HEIGHT_PX","SectionWithImpression","section","onImpression","reported","observer","entry","KundliPageRouter","KundliPageContent","handleCtaClick","ctaText","handleSectionImpression","u","KundliPage","KUNDLI_ANALYTICS_EVENT_NAMES"],"mappings":"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","x_google_ignoreList":[0,1,2]}
|