@fluidattacks/design 1.2.6 → 1.2.8
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/design.js +143 -86
- package/dist/design.mjs +4560 -2784
- package/dist/src/components/@core/styles.d.ts +2 -1
- package/dist/src/components/@core/types.d.ts +9 -1
- package/dist/src/components/container/index.stories.d.ts +7 -0
- package/dist/src/components/container/types.d.ts +1 -1
- package/dist/src/components/grid-layout/index.stories.d.ts +5 -0
- package/dist/src/components/grid-layout/styles.d.ts +5 -0
- package/dist/src/components/icon/index.d.ts +3 -0
- package/dist/src/components/icon/styles.d.ts +14 -0
- package/dist/src/components/icon/types.d.ts +33 -0
- package/dist/src/components/tooltip/index.d.ts +4 -0
- package/dist/src/components/tooltip/index.stories.d.ts +8 -0
- package/dist/src/components/tooltip/styles.d.ts +7 -0
- package/dist/src/components/tooltip/types.d.ts +28 -0
- package/dist/src/components/typography/types.d.ts +1 -1
- package/dist/src/index.d.ts +2 -0
- package/package.json +26 -4
- package/dist/design.js.map +0 -1
- package/dist/design.mjs.map +0 -1
package/dist/design.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"design.js","sources":["../src/components/@core/variants/utils.ts","../src/components/@core/constants.ts","../node_modules/tslib/tslib.es6.mjs","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Parser.js","../node_modules/stylis/src/Prefixer.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/styled-components/dist/styled-components.browser.esm.js","../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/components/colors/index.tsx","../src/components/@core/utils.ts","../src/components/@core/styles.ts","../node_modules/@cloudinary/react/index.js","../node_modules/@cloudinary/url-gen/config/BaseConfig.js","../node_modules/@cloudinary/url-gen/internal/internalConstants.js","../node_modules/@cloudinary/url-gen/config/URLConfig.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/qualifier/QualifierValue.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/utils/unsupportedError.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/models/qualifierToJson.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/models/QualifierModel.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/qualifier/Qualifier.js","../node_modules/@cloudinary/transformation-builder-sdk/qualifiers/flag/FlagQualifier.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/utils/dataStructureUtils.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/models/actionToJson.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/models/ActionModel.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/Action.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/utils/prepareColor.js","../node_modules/@cloudinary/transformation-builder-sdk/actions/background/actions/BackgroundColor.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/RawAction.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/models/IErrorObject.js","../node_modules/@cloudinary/transformation-builder-sdk/qualifiers/flag.js","../node_modules/@cloudinary/transformation-builder-sdk/qualifiers/format/FormatQualifier.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/utils/objectFlip.js","../node_modules/@cloudinary/transformation-builder-sdk/internal/internalConstants.js","../node_modules/@cloudinary/transformation-builder-sdk/actions/delivery/DeliveryAction.js","../node_modules/@cloudinary/transformation-builder-sdk/qualifiers/progressive.js","../node_modules/@cloudinary/transformation-builder-sdk/actions/delivery/DeliveryFormatAction.js","../node_modules/@cloudinary/transformation-builder-sdk/transformation/Transformation.js","../node_modules/@cloudinary/transformation-builder-sdk/transformation/ImageTransformation.js","../node_modules/@cloudinary/transformation-builder-sdk/transformation/VideoTransformation.js","../node_modules/@cloudinary/url-gen/internal/url/urlUtils/isUrl.js","../node_modules/@cloudinary/url-gen/internal/url/urlUtils/isFileName.js","../node_modules/@cloudinary/url-gen/internal/url/urlUtils/publicIDContainsVersion.js","../node_modules/@cloudinary/url-gen/internal/url/cloudinaryURL.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/stringPad.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/base64Map.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/reverseVersion.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/padVersion.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/encodeVersion.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/getAnalyticsOptions.js","../node_modules/@cloudinary/url-gen/internal/utils/packageVersion.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/encodeOSVersion.js","../node_modules/@cloudinary/url-gen/sdkAnalytics/getSDKAnalyticsSignature.js","../node_modules/@cloudinary/url-gen/assets/CloudinaryFile.js","../node_modules/@cloudinary/url-gen/assets/CloudinaryTransformable.js","../node_modules/@cloudinary/url-gen/assets/CloudinaryImage.js","../node_modules/@cloudinary/url-gen/assets/CloudinaryVideo.js","../node_modules/@cloudinary/url-gen/instance/Cloudinary.js","../src/hooks/use-cloudinary-image.ts","../src/components/cloud-image/index.tsx","../src/components/container/styles.ts","../src/components/container/index.tsx","../src/components/logo/index.tsx","../src/components/typography/styles.ts","../src/components/typography/heading/index.tsx","../src/components/typography/text/index.tsx"],"sourcesContent":["import type { IconPrefix } from \"@fortawesome/free-solid-svg-icons\";\nimport type { DefaultTheme, Interpolation } from \"styled-components\";\n\ntype TCssString = Interpolation<object>[];\n\n/**\n * Object with the icons to be printed on Iconography section.\n * The key is the name of the icon and the value is an array of icon prefixes.\n *\n * Possible prefixes are:\n * - `fas`: for solid icons\n * - `far`: for regular icons\n *\n * Example:\n * ```ts\n * const icons: IconsList = {\n * \"user\": [\"far\", \"fas\"],\n * \"search\": [\"fas\"],\n * ...\n * };\n * ```\n */\ntype TIconsList = Record<string, [IconPrefix, IconPrefix] | [IconPrefix]>;\n\ninterface IComponentVariant<T extends string> {\n /**\n * Get the variant css string. It can be added to `styled` template string.\n *\n * @param theme Theme to use\n * @param variant Variant to get\n * @returns Css string for the variant\n */\n getVariant: (theme: Readonly<DefaultTheme>, variant: T) => TCssString;\n}\n\n/**\n * Builder function to create a function for getting component variants\n * injecting the theme.\n *\n * Example:\n * ```ts\n * const { getVariant } = variantBuilder((theme) => ({\n * primary: css`\n * background: ${theme.colors.primary};\n * border: 2px solid ${theme.colors.primary};\n * color: ${theme.colors.white};\n * `,\n * secondary: css`\n * background: ${theme.colors.secondary};\n * border: 2px solid ${theme.colors.secondary};\n * color: ${theme.colors.white};\n * `,\n * }));\n *\n * getVariant(theme, \"primary\"); // returns the primary variant\n * ```\n *\n * @param variants A function that returns the variants of a component as\n * an object with variants as keys and values as css strings.\n * @returns An object with a function to get the variant.\n */\nconst variantBuilder = <T extends string>(\n variants: (theme: Readonly<DefaultTheme>) => Record<T, TCssString>,\n): IComponentVariant<T> => ({\n getVariant: (theme: Readonly<DefaultTheme>, variant: T): TCssString =>\n variants(theme)[variant],\n});\n\nexport type { TCssString, IComponentVariant, TIconsList };\nexport { variantBuilder };\n","const hiddenProps = [\n // IPaddingModifiable\n \"padding\",\n \"px\",\n \"py\",\n \"pl\",\n \"pr\",\n \"pt\",\n \"pb\",\n\n // IMarginModifiable\n \"margin\",\n \"mx\",\n \"my\",\n \"ml\",\n \"mr\",\n \"mt\",\n \"mb\",\n\n // IPositionModifiable\n \"zIndex\",\n \"position\",\n \"top\",\n \"right\",\n \"bottom\",\n \"left\",\n\n // IBorderModifiable\n \"border\",\n \"borderTop\",\n \"borderRight\",\n \"borderBottom\",\n \"borderLeft\",\n \"borderColor\",\n \"borderRadius\",\n\n // IDisplayModifiable\n \"scroll\",\n \"visibility\",\n \"display\",\n \"height\",\n \"width\",\n \"maxHeight\",\n \"maxWidth\",\n \"minHeight\",\n \"minWidth\",\n \"shadow\",\n \"bgColor\",\n \"bgGradient\",\n \"gap\",\n \"flexDirection\",\n \"flexGrow\",\n \"justify\",\n \"alignItems\",\n \"wrap\",\n\n // ITextModifiable\n \"color\",\n \"fontFamily\",\n \"fontSize\",\n \"fontWeight\",\n \"textAlign\",\n \"whiteSpace\",\n \"letterSpacing\",\n \"lineSpacing\",\n \"textDecoration\",\n \"textOverflow\",\n \"whiteSpace\",\n \"wordBreak\",\n \"wordWrap\",\n\n // IInteractionModifiable\n \"cursor\",\n \"transition\",\n \"borderColorHover\",\n \"bgColorHover\",\n \"shadowHover\",\n];\n\nexport { hiddenProps };\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|disableRemotePlayback|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"active\",y=\"data-styled-version\",v=\"6.1.13\",g=\"/*!sc*/\\n\",S=\"undefined\"!=typeof window&&\"HTMLElement\"in window,w=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),b={},E=/invalid hook call/i,N=new Set,P=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];E.test(t)?(a=!1,N.delete(s)):i.apply(void 0,e([t],n,!1))},r(),a&&!N.has(s)&&(console.warn(s),N.add(s))}catch(e){E.test(e.message)&&N.delete(s)}finally{console.error=i}}},_=Object.freeze([]),C=Object.freeze({});function I(e,t,n){return void 0===n&&(n=C),e.theme!==n.theme&&e.theme||t||n.theme}var A=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"u\",\"ul\",\"use\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"]),O=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,D=/(^-|-$)/g;function R(e){return e.replace(O,\"-\").replace(D,\"\")}var T=/(a)(d)/gi,k=52,j=function(e){return String.fromCharCode(e+(e>25?39:97))};function x(e){var t,n=\"\";for(t=Math.abs(e);t>k;t=t/k|0)n=j(t%k)+n;return(j(t%k)+n).replace(T,\"$1-$2\")}var V,F=5381,M=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},z=function(e){return M(F,e)};function $(e){return x(z(e)>>>0)}function B(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function L(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var G=\"function\"==typeof Symbol&&Symbol.for,Y=G?Symbol.for(\"react.memo\"):60115,W=G?Symbol.for(\"react.forward_ref\"):60112,q={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},H={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},U={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},J=((V={})[W]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},V[Y]=U,V);function X(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Y?U:\"$$typeof\"in e?J[e.$$typeof]:q;var t}var Z=Object.defineProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,ne=Object.prototype;function oe(e,t,n){if(\"string\"!=typeof t){if(ne){var o=te(t);o&&o!==ne&&oe(e,o,n)}var r=K(t);Q&&(r=r.concat(Q(t)));for(var s=X(e),i=X(t),a=0;a<r.length;++a){var c=r[a];if(!(c in H||n&&n[c]||i&&c in i||s&&c in s)){var l=ee(t,c);try{Z(e,c,l)}catch(e){}}}}return e}function re(e){return\"function\"==typeof e}function se(e){return\"object\"==typeof e&&\"styledComponentId\"in e}function ie(e,t){return e&&t?\"\".concat(e,\" \").concat(t):e||t||\"\"}function ae(e,t){if(0===e.length)return\"\";for(var n=e[0],o=1;o<e.length;o++)n+=t?t+e[o]:e[o];return n}function ce(e){return null!==e&&\"object\"==typeof e&&e.constructor.name===Object.name&&!(\"props\"in e&&e.$$typeof)}function le(e,t,n){if(void 0===n&&(n=!1),!n&&!ce(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var o=0;o<t.length;o++)e[o]=le(e[o],t[o]);else if(ce(t))for(var o in t)e[o]=le(e[o],t[o]);return e}function ue(e,t){Object.defineProperty(e,\"toString\",{value:t})}var pe=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`\"}:{};function de(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=e[0],o=[],r=1,s=e.length;r<s;r+=1)o.push(e[r]);return o.forEach(function(e){n=n.replace(/%[a-z]/,e)}),n}function he(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];return\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#\".concat(t,\" for more information.\").concat(n.length>0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(de.apply(void 0,e([pe[t]],n,!1)).trim())}var fe=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},e.prototype.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw he(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s<r;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=(s=0,t.length);s<a;s++)this.tag.insertRule(i,t[s])&&(this.groupSizes[e]++,i++)},e.prototype.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},e.prototype.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;s<r;s++)t+=\"\".concat(this.tag.getRule(s)).concat(g);return t},e}(),me=1<<30,ye=new Map,ve=new Map,ge=1,Se=function(e){if(ye.has(e))return ye.get(e);for(;ve.has(ge);)ge++;var t=ge++;if(\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>me))throw he(16,\"\".concat(t));return ye.set(e,t),ve.set(t,e),t},we=function(e,t){ge=t+1,ye.set(e,t),ve.set(t,e)},be=\"style[\".concat(f,\"][\").concat(y,'=\"').concat(v,'\"]'),Ee=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),Ne=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s<i;s++)(o=r[s])&&e.registerName(t,o)},Pe=function(e,t){for(var n,o=(null!==(n=t.textContent)&&void 0!==n?n:\"\").split(g),r=[],s=0,i=o.length;s<i;s++){var a=o[s].trim();if(a){var c=a.match(Ee);if(c){var l=0|parseInt(c[1],10),u=c[2];0!==l&&(we(u,l),Ne(e,u,c[3]),e.getTag().insertRules(l,r)),r.length=0}else r.push(a)}}},_e=function(e){for(var t=document.querySelectorAll(be),n=0,o=t.length;n<o;n++){var r=t[n];r&&r.getAttribute(f)!==m&&(Pe(e,r),r.parentNode&&r.parentNode.removeChild(r))}};function Ce(){return\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:null}var Ie=function(e){var t=document.head,n=e||t,o=document.createElement(\"style\"),r=function(e){var t=Array.from(e.querySelectorAll(\"style[\".concat(f,\"]\")));return t[t.length-1]}(n),s=void 0!==r?r.nextSibling:null;o.setAttribute(f,m),o.setAttribute(y,v);var i=Ce();return i&&o.setAttribute(\"nonce\",i),n.insertBefore(o,s),o},Ae=function(){function e(e){this.element=Ie(e),this.element.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}throw he(17)}(this.element),this.length=0}return e.prototype.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},e.prototype.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},e.prototype.getRule=function(e){var t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:\"\"},e}(),Oe=function(){function e(e){this.element=Ie(e),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),De=function(){function e(e){this.rules=[],this.length=0}return e.prototype.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},e.prototype.deleteRule=function(e){this.rules.splice(e,1),this.length--},e.prototype.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),Re=S,Te={isServer:!S,useCSSOMInjection:!w},ke=function(){function e(e,n,o){void 0===e&&(e=C),void 0===n&&(n={});var r=this;this.options=t(t({},Te),e),this.gs=n,this.names=new Map(o),this.server=!!e.isServer,!this.server&&S&&Re&&(Re=!1,_e(this)),ue(this,function(){return function(e){for(var t=e.getTag(),n=t.length,o=\"\",r=function(n){var r=function(e){return ve.get(e)}(n);if(void 0===r)return\"continue\";var s=e.names.get(r),i=t.getGroup(n);if(void 0===s||!s.size||0===i.length)return\"continue\";var a=\"\".concat(f,\".g\").concat(n,'[id=\"').concat(r,'\"]'),c=\"\";void 0!==s&&s.forEach(function(e){e.length>0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(g)},s=0;s<n;s++)r(s);return o}(r)})}return e.registerId=function(e){return Se(e)},e.prototype.rehydrate=function(){!this.server&&S&&_e(this)},e.prototype.reconstructWithOptions=function(n,o){return void 0===o&&(o=!0),new e(t(t({},this.options),n),this.gs,o&&this.names||void 0)},e.prototype.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(e=function(e){var t=e.useCSSOMInjection,n=e.target;return e.isServer?new De(n):t?new Ae(n):new Oe(n)}(this.options),new fe(e)));var e},e.prototype.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},e.prototype.registerName=function(e,t){if(Se(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},e.prototype.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(Se(e),n)},e.prototype.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},e.prototype.clearRules=function(e){this.getTag().clearGroup(Se(e)),this.clearNames(e)},e.prototype.clearTag=function(){this.tag=void 0},e}(),je=/&/g,xe=/^\\s*\\/\\/.*$/gm;function Ve(e,t){return e.map(function(e){return\"rule\"===e.type&&(e.value=\"\".concat(t,\" \").concat(e.value),e.value=e.value.replaceAll(\",\",\",\".concat(t,\" \")),e.props=e.props.map(function(e){return\"\".concat(t,\" \").concat(e)})),Array.isArray(e.children)&&\"@keyframes\"!==e.type&&(e.children=Ve(e.children,t)),e})}function Fe(e){var t,n,o,r=void 0===e?C:e,s=r.options,i=void 0===s?C:s,a=r.plugins,c=void 0===a?_:a,l=function(e,o,r){return r.startsWith(n)&&r.endsWith(n)&&r.replaceAll(n,\"\").length>0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(je,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(xe,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=Ve(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||he(15),M(e,t.name)},F).toString():\"\",p}var Me=new ke,ze=Fe(),$e=o.createContext({shouldForwardProp:void 0,styleSheet:Me,stylis:ze}),Be=$e.Consumer,Le=o.createContext(void 0);function Ge(){return c($e)}function Ye(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Ge().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return Fe({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement($e.Provider,{value:d},o.createElement(Le.Provider,{value:u},e.children))}var We=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=ze);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,ue(this,function(){throw he(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=ze),this.name+e.hash},e}(),qe=function(e){return e>=\"A\"&&e<=\"Z\"};function He(e){for(var t=\"\",n=0;n<e.length;n++){var o=e[n];if(1===n&&\"-\"===o&&\"-\"===e[0])return e;qe(o)?t+=\"-\"+o.toLowerCase():t+=o}return t.startsWith(\"ms-\")?\"-\"+t:t}var Ue=function(e){return null==e||!1===e||\"\"===e},Je=function(t){var n,o,r=[];for(var s in t){var i=t[s];t.hasOwnProperty(s)&&!Ue(i)&&(Array.isArray(i)&&i.isCss||re(i)?r.push(\"\".concat(He(s),\":\"),i,\";\"):ce(i)?r.push.apply(r,e(e([\"\".concat(s,\" {\")],Je(i),!1),[\"}\"],!1)):r.push(\"\".concat(He(s),\": \").concat((n=s,null==(o=i)||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||n in h||n.startsWith(\"--\")?String(o).trim():\"\".concat(o,\"px\")),\";\")))}return r};function Xe(e,t,n,o){if(Ue(e))return[];if(se(e))return[\".\".concat(e.styledComponentId)];if(re(e)){if(!re(s=e)||s.prototype&&s.prototype.isReactComponent||!t)return[e];var r=e(t);return\"production\"===process.env.NODE_ENV||\"object\"!=typeof r||Array.isArray(r)||r instanceof We||ce(r)||null===r||console.error(\"\".concat(B(e),\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\")),Xe(r,t,n,o)}var s;return e instanceof We?n?(e.inject(n,o),[e.getName(o)]):[e]:ce(e)?Je(e):Array.isArray(e)?Array.prototype.concat.apply(_,e.map(function(e){return Xe(e,t,n,o)})):[e.toString()]}function Ze(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(re(n)&&!se(n))return!1}return!0}var Ke=z(v),Qe=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&Ze(e),this.componentId=t,this.baseHash=M(Ke,t),this.baseStyle=n,ke.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n):\"\";if(this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(this.componentId,this.staticRulesId))o=ie(o,this.staticRulesId);else{var r=ae(Xe(this.rules,e,t,n)),s=x(M(this.baseHash,r)>>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=ie(o,s),this.staticRulesId=s}else{for(var a=M(this.baseHash,n.hash),c=\"\",l=0;l<this.rules.length;l++){var u=this.rules[l];if(\"string\"==typeof u)c+=u,\"production\"!==process.env.NODE_ENV&&(a=M(a,u));else if(u){var p=ae(Xe(u,e,t,n));a=M(a,p+l),c+=p}}if(c){var d=x(a>>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=ie(o,d)}}return o},e}(),et=o.createContext(void 0),tt=et.Consumer;function nt(){var e=c(et);if(!e)throw he(18);return e}function ot(e){var n=o.useContext(et),r=i(function(){return function(e,n){if(!e)throw he(14);if(re(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw he(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw he(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(et.Provider,{value:r},e.children):null}var rt={},st=new Set;function it(e,r,s){var i=se(e),a=e,c=!L(e),p=r.attrs,d=void 0===p?_:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":R(e);rt[n]=(rt[n]||0)+1;var o=\"\".concat(n,\"-\").concat($(v+n+rt[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return L(e)?\"styled.\".concat(e):\"Styled(\".concat(B(e),\")\")}(e):m,g=r.displayName&&r.componentId?\"\".concat(R(r.displayName),\"-\").concat(r.componentId):r.componentId||f,S=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,w=r.shouldForwardProp;if(i&&a.shouldForwardProp){var b=a.shouldForwardProp;if(r.shouldForwardProp){var E=r.shouldForwardProp;w=function(e,t){return b(e,t)&&E(e,t)}}else w=b}var N=new Qe(s,g,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(et),m=Ge(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=I(r,f,c)||C,g=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i<e.length;i+=1){var a=re(r=e[i])?r(s):r;for(var c in a)s[c]=\"className\"===c?ie(s[c],a[c]):\"style\"===c?t(t({},s[c]),a[c]):a[c]}return n.className&&(s.className=ie(s.className,n.className)),s}(i,r,v),S=g.as||h,w={};for(var b in g)void 0===g[b]||\"$\"===b[0]||\"as\"===b||\"theme\"===b&&g.theme===v||(\"forwardedAs\"===b?w.as=g.forwardedAs:y&&!y(b,S)||(w[b]=g[b],y||\"development\"!==process.env.NODE_ENV||n(b)||st.has(b)||!A.has(S)||(st.add(b),console.warn('styled-components: it looks like an unknown prop \"'.concat(b,'\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var E=function(e,t){var n=Ge(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,g);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(E);var N=ie(p,d);return E&&(N+=\" \"+E),g.className&&(N+=\" \"+g.className),w[L(S)&&!A.has(S)?\"class\":\"className\"]=N,w.ref=s,u(S,w)}(D,e,r)}O.displayName=y;var D=o.forwardRef(O);return D.attrs=S,D.componentStyle=N,D.displayName=y,D.shouldForwardProp=w,D.foldedComponentIds=i?ie(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=g,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0,r=t;o<r.length;o++)le(e,r[o],!0);return e}({},a.defaultProps,e):e}}),\"production\"!==process.env.NODE_ENV&&(P(y,g),D.warnTooManyClasses=function(e,t){var n={},o=!1;return function(r){if(!o&&(n[r]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n <Component />\"),o=!0,n={}}}}(y,g)),ue(D,function(){return\".\".concat(D.styledComponentId)}),c&&oe(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function at(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n}var ct=function(e){return Object.assign(e,{isCss:!0})};function lt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];if(re(t)||ce(t))return ct(Xe(at(_,e([t],n,!0))));var r=t;return 0===n.length&&1===r.length&&\"string\"==typeof r[0]?Xe(r):ct(Xe(at(r,n)))}function ut(n,o,r){if(void 0===r&&(r=C),!o)throw he(1,o);var s=function(t){for(var s=[],i=1;i<arguments.length;i++)s[i-1]=arguments[i];return n(o,r,lt.apply(void 0,e([t],s,!1)))};return s.attrs=function(e){return ut(n,o,t(t({},r),{attrs:Array.prototype.concat(r.attrs,e).filter(Boolean)}))},s.withConfig=function(e){return ut(n,o,t(t({},r),e))},s}var pt=function(e){return ut(it,e)},dt=pt;A.forEach(function(e){dt[e]=pt(e)});var ht=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Ze(e),ke.registerId(this.componentId+1)}return e.prototype.createStyles=function(e,t,n,o){var r=o(ae(Xe(this.rules,t,n,o)),\"\"),s=this.componentId+e;n.insertRules(s,s,r)},e.prototype.removeStyles=function(e,t){t.clearRules(this.componentId+e)},e.prototype.renderStyles=function(e,t,n,o){e>2&&ke.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function ft(n){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var i=lt.apply(void 0,e([n],r,!1)),a=\"sc-global-\".concat($(JSON.stringify(i))),c=new ht(i,a);\"production\"!==process.env.NODE_ENV&&P(a);var l=function(e){var t=Ge(),n=o.useContext(et),r=o.useRef(t.styleSheet.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&o.Children.count(e.children)&&console.warn(\"The global style component \".concat(a,\" was given child JSX. createGlobalStyle does not render children.\")),\"production\"!==process.env.NODE_ENV&&i.some(function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")})&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),t.styleSheet.server&&u(r,e,t.styleSheet,n,t.stylis),o.useLayoutEffect(function(){if(!t.styleSheet.server)return u(r,e,t.styleSheet,n,t.stylis),function(){return c.removeStyles(r,t.styleSheet)}},[r,e,t.styleSheet,n,t.stylis]),null};function u(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,b,o,s);else{var i=t(t({},n),{theme:I(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}return o.memo(l)}function mt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");var r=ae(lt.apply(void 0,e([t],n,!1))),s=$(r);return new We(s,r)}function yt(e){var n=o.forwardRef(function(n,r){var s=I(n,o.useContext(et),e.defaultProps);return\"production\"!==process.env.NODE_ENV&&void 0===s&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'.concat(B(e),'\"')),o.createElement(e,t({},n,{theme:s,ref:r}))});return n.displayName=\"WithTheme(\".concat(B(e),\")\"),oe(n,e)}var vt=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return\"\";var n=Ce(),o=ae([n&&'nonce=\"'.concat(n,'\"'),\"\".concat(f,'=\"true\"'),\"\".concat(y,'=\"').concat(v,'\"')].filter(Boolean),\" \");return\"<style \".concat(o,\">\").concat(t,\"</style>\")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=e.instance.toString();if(!r)return[];var s=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:r},n),i=Ce();return i&&(s.nonce=i),[o.createElement(\"style\",t({},s,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new ke({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Ye,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw he(3)},e}(),gt={StyleSheet:ke,mainSheet:Me};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var St=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[St]||(window[St]=0),1===window[St]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[St]+=1);export{vt as ServerStyleSheet,Be as StyleSheetConsumer,$e as StyleSheetContext,Ye as StyleSheetManager,tt as ThemeConsumer,et as ThemeContext,ot as ThemeProvider,gt as __PRIVATE__,ft as createGlobalStyle,lt as css,dt as default,se as isStyledComponent,mt as keyframes,dt as styled,nt as useTheme,v as version,yt as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","/**\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\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 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","import type { IconName, IconPrefix } from \"@fortawesome/free-solid-svg-icons\";\nimport React from \"react\";\n\nimport { type DefaultTheme, ThemeProvider } from \"styled-components\";\n\nconst gray = {\n \"25\": \"#fcfcfd\",\n \"50\": \"#f9fafb\",\n \"100\": \"#f2f4f7\",\n \"200\": \"#eaecf0\",\n \"300\": \"#d0d5dd\",\n \"400\": \"#98a2b3\",\n \"500\": \"#667085\",\n \"600\": \"#475467\",\n \"700\": \"#2f394b\",\n \"800\": \"#212a36\",\n \"900\": \"#161b25\",\n};\n\nconst primary = {\n \"25\": \"#fef2f3\",\n \"50\": \"#fddfe2\",\n \"100\": \"#fbbac0\",\n \"200\": \"#f9959e\",\n \"300\": \"#f65e6a\",\n \"400\": \"#f32637\",\n \"500\": \"#bf0b1a\", // Brand color\n \"600\": \"#ac0a17\",\n \"700\": \"#9a0915\",\n \"800\": \"#870812\",\n \"900\": \"#750710\",\n};\n\nconst complementary = {\n \"25\": \"\",\n \"50\": \"\",\n \"100\": \"#ffe6ff\",\n \"200\": \"\",\n \"300\": \"#b8075d\",\n \"400\": \"\",\n \"500\": \"#7f0540\",\n \"600\": \"\",\n \"700\": \"#59042d\",\n \"800\": \"\",\n \"900\": \"#460323\",\n};\n\nconst error = {\n \"25\": \"\",\n \"50\": \"#fef3f2\",\n \"100\": \"\",\n \"200\": \"#fecdca\",\n \"300\": \"\",\n \"400\": \"\",\n \"500\": \"#f04438\",\n \"600\": \"\",\n \"700\": \"#b42318\",\n \"800\": \"\",\n \"900\": \"\",\n};\n\nconst warning = {\n \"25\": \"\",\n \"50\": \"#fffaeb\",\n \"100\": \"\",\n \"200\": \"#fef0c7\",\n \"300\": \"\",\n \"400\": \"#ffd562\",\n \"500\": \"#fdb022\",\n \"600\": \"#dc6803\",\n \"700\": \"#b54708\",\n \"800\": \"\",\n \"900\": \"\",\n};\n\nconst success = {\n \"25\": \"\",\n \"50\": \"#f6fef9\",\n \"100\": \"\",\n \"200\": \"#a6f4c5\",\n \"300\": \"\",\n \"400\": \"\",\n \"500\": \"#12b76a\",\n \"600\": \"\",\n \"700\": \"#027a48\",\n \"800\": \"\",\n \"900\": \"\",\n};\n\nconst info = {\n \"25\": \"\",\n \"50\": \"#eff8ff\",\n \"100\": \"\",\n \"200\": \"#b2ddff\",\n \"300\": \"\",\n \"400\": \"\",\n \"500\": \"#2e90fa\",\n \"600\": \"\",\n \"700\": \"#175cd3\",\n \"800\": \"\",\n \"900\": \"\",\n};\n\nconst gradients = {\n \"01\": \"linear-gradient(45deg, #f32637 0%, #b8075d 100%)\",\n \"02\": \"linear-gradient(45deg, #fcfcfd 0%, #667085 100%)\",\n};\n\nconst typography: DefaultTheme[\"typography\"] = {\n type: {\n primary: \"Roboto, sans-serif\",\n poppins: \"'Poppins', sans-serif\",\n mono: \"'Space Mono', monospace\",\n },\n heading: {\n xxl: \"64px\",\n xl: \"48px\",\n lg: \"32px\",\n md: \"24px\",\n sm: \"20px\",\n xs: \"16px\",\n },\n text: {\n xl: \"20px\",\n lg: \"18px\",\n md: \"16px\",\n sm: \"14px\",\n xs: \"12px\",\n },\n weight: {\n bold: \"700\",\n semibold: \"600\",\n regular: \"400\",\n },\n};\n\nconst shadows: DefaultTheme[\"shadows\"] = {\n none: \"none\",\n sm: \"0px 1px 2px 0px rgba(16, 24, 40, 0.15)\",\n md: \"0px 4px 6px 0px rgba(16, 24, 40, 0.15)\",\n lg: \"0px 8px 24px 0px rgba(16, 24, 40, 0.15)\",\n};\n\nconst breakpoints: DefaultTheme[\"breakpoints\"] = {\n mobile: \"360px\",\n tablet: \"960px\",\n sm: \"1024px\",\n md: \"1440px\",\n lg: \"1920px\",\n};\n\nconst spacing: DefaultTheme[\"spacing\"] = {\n 0: \"0rem\",\n 0.125: \"0.125rem\",\n 0.25: \"0.25rem\",\n 0.5: \"0.5rem\",\n 0.625: \"0.625rem\",\n 0.75: \"0.75rem\",\n 1: \"1rem\",\n 1.25: \"1.25rem\",\n 1.5: \"1.5rem\",\n 1.75: \"1.75rem\",\n 2: \"2rem\",\n 2.25: \"2.25rem\",\n 2.5: \"2.5rem\",\n 3: \"3rem\",\n 3.5: \"3.5rem\",\n 4: \"4rem\",\n 5: \"5rem\",\n 6: \"6rem\",\n};\n\nconst icons: IconName[] = [\n \"bell\",\n \"calendar-days\",\n \"caret-up\",\n \"chart-simple\",\n \"circle-check\",\n \"circle-exclamation\",\n \"circle-info\",\n \"cloud\",\n \"comment\",\n \"credit-card\",\n \"ellipsis-stroke-vertical\",\n \"envelope\",\n \"eye\",\n \"file-shield\",\n \"file\",\n \"filter\",\n \"folder\",\n \"gear\",\n \"hexagon-exclamation\",\n \"house\",\n \"key\",\n \"magnifying-glass\",\n \"paper-plane\",\n \"pen-nib\",\n \"pen\",\n \"shield-check\",\n \"shield-halved\",\n \"sliders\",\n \"square-check\",\n \"star\",\n \"tags\",\n \"trash\",\n \"triangle-exclamation\",\n \"user-plus\",\n \"user\",\n \"xmark\",\n];\n\nconst uniqueIcons: [IconPrefix, IconName][] = [\n [\"fal\", \"arrow-down-to-line\"],\n [\"fal\", \"arrow-left-to-line\"],\n [\"fal\", \"arrow-right-to-line\"],\n [\"fal\", \"arrow-up-to-line\"],\n [\"fal\", \"square-plus\"],\n [\"fas\", \"check\"],\n [\"fas\", \"circle-question\"],\n];\n\nconst theme: DefaultTheme = {\n typography,\n shadows,\n breakpoints,\n spacing,\n palette: {\n primary,\n complementary,\n error,\n info,\n warning,\n success,\n black: \"#0c111d\",\n white: \"#ffffff\",\n gray,\n gradients,\n },\n};\n\nconst CustomThemeProvider = ({\n children,\n}: Readonly<{\n children: React.ReactNode;\n}>): JSX.Element => <ThemeProvider theme={theme}>{children}</ThemeProvider>;\n\nexport { CustomThemeProvider, theme, icons, uniqueIcons };\n","import type { StyledOptions } from \"styled-components\";\n\nimport { hiddenProps } from \"./constants\";\nimport type {\n IBorderModifiable,\n IDisplayModifiable,\n IInteractionModifiable,\n IMarginModifiable,\n IPaddingModifiable,\n IPositionModifiable,\n ITextModifiable,\n} from \"./types\";\n\nimport { theme } from \"components/colors\";\n\n/**\n * Format a property string if it's not `undefined`\n * @returns `<name>: <value>;` or empty string if `value` is `undefined`\n */\nconst formatPropIf = (name: string, value?: number | string): string => {\n return value === undefined ? \"\" : `${name}: ${value};`;\n};\n\nconst setPadding = (props: Readonly<IPaddingModifiable>): string => {\n const pt = props.py ?? props.pt ?? 0;\n const pr = props.px ?? props.pr ?? 0;\n const pb = props.py ?? props.pb ?? 0;\n const pl = props.px ?? props.pl ?? 0;\n\n if (props.padding) {\n const [top, right, bottom, left] = props.padding;\n\n return `padding: ${theme.spacing[top]} ${theme.spacing[right]} ${theme.spacing[bottom]} ${theme.spacing[left]};`;\n }\n\n return `padding: ${theme.spacing[pt]} ${theme.spacing[pr]} ${theme.spacing[pb]} ${theme.spacing[pl]};`;\n};\n\nconst setMargin = (props: Readonly<IMarginModifiable>): string => {\n const mt = props.my ?? props.mt ?? 0;\n const mr = props.mx ?? props.mr ?? 0;\n const mb = props.my ?? props.mb ?? 0;\n const ml = props.mx ?? props.ml ?? 0;\n\n if (props.margin) {\n const [top, right, bottom, left] = props.margin;\n\n return `margin: ${theme.spacing[top]} ${theme.spacing[right]} ${theme.spacing[bottom]} ${theme.spacing[left]};`;\n }\n\n return `margin: ${theme.spacing[mt]} ${theme.spacing[mr]} ${theme.spacing[mb]} ${theme.spacing[ml]};`;\n};\n\nconst setPosition = (props: Readonly<IPositionModifiable>): string => {\n const position = formatPropIf(\"position\", props.position);\n const top = formatPropIf(\"top\", props.top);\n const right = formatPropIf(\"right\", props.right);\n const bottom = formatPropIf(\"bottom\", props.bottom);\n const left = formatPropIf(\"left\", props.left);\n const zIndex = formatPropIf(\"z-index\", props.zIndex);\n\n return `\n ${position}\n ${top}\n ${right}\n ${bottom}\n ${left}\n ${zIndex}\n `;\n};\n\nconst setBorder = (props: Readonly<IBorderModifiable>): string => {\n const border = formatPropIf(\"border\", props.border);\n const borderTop = formatPropIf(\"border-top\", props.borderTop);\n const borderRight = formatPropIf(\"border-right\", props.borderRight);\n const borderBottom = formatPropIf(\"border-bottom\", props.borderBottom);\n const borderLeft = formatPropIf(\"border-left\", props.borderLeft);\n const borderColor = formatPropIf(\"border-color\", props.borderColor);\n const borderRadius = formatPropIf(\"border-radius\", props.borderRadius);\n\n return `\n ${border}\n ${borderTop}\n ${borderRight}\n ${borderBottom}\n ${borderLeft}\n ${borderColor}\n ${borderRadius}\n `;\n};\n\nconst getScrollX = (scroll: string): string => {\n return scroll.includes(\"x\") ? \"overflow-x: auto;\" : \"\";\n};\n\nconst getScrollY = (scroll: string): string => {\n return scroll.includes(\"y\") ? \"overflow-y: auto;\" : \"\";\n};\n\nconst setDisplay = (props: Readonly<IDisplayModifiable>): string => {\n const scroll = props.scroll\n ? `\n ${getScrollX(props.scroll)}\n ${getScrollY(props.scroll)}\n `\n : \"\";\n\n const visibility = formatPropIf(\"visibility\", props.visibility);\n const display = formatPropIf(\"display\", props.display);\n const height = formatPropIf(\"height\", props.height);\n const width = formatPropIf(\"width\", props.width);\n const maxHeight = formatPropIf(\"max-height\", props.maxHeight);\n const maxWidth = formatPropIf(\"max-width\", props.maxWidth);\n const minHeight = formatPropIf(\"min-height\", props.minHeight);\n const minWidth = formatPropIf(\"min-width\", props.minWidth);\n const shadow = formatPropIf(\n \"box-shadow\",\n props.shadow ? theme.shadows[props.shadow] : undefined,\n );\n const gap = formatPropIf(\n \"gap\",\n props.gap === undefined ? undefined : theme.spacing[props.gap],\n );\n const bgColor = formatPropIf(\"background-color\", props.bgColor);\n const bgGradient = formatPropIf(\"background\", props.bgGradient);\n const flexDirection = formatPropIf(\"flex-direction\", props.flexDirection);\n const flexGrow = formatPropIf(\"flex-grow\", props.flexGrow);\n const justify = formatPropIf(\"justify-content\", props.justify);\n const justifySelf = formatPropIf(\"justify-self\", props.justifySelf);\n const alignItems = formatPropIf(\"align-items\", props.alignItems);\n const alignSelf = formatPropIf(\"align-self\", props.alignSelf);\n const wrap = formatPropIf(\"flex-wrap\", props.wrap);\n\n return `\n ${scroll}\n ${visibility}\n ${display}\n ${height}\n ${width}\n ${maxHeight}\n ${maxWidth}\n ${minHeight}\n ${minWidth}\n ${shadow}\n ${bgColor}\n ${bgGradient}\n ${gap}\n ${flexDirection}\n ${flexGrow}\n ${justify}\n ${justifySelf}\n ${alignItems}\n ${alignSelf}\n ${wrap}\n `;\n};\n\nconst setText = (props: Readonly<ITextModifiable>): string => {\n const color = formatPropIf(\"color\", props.color);\n const fontFamily = formatPropIf(\"font-family\", props.fontFamily);\n const fontSize = formatPropIf(\"font-size\", props.fontSize);\n const fontWeight = formatPropIf(\"font-weight\", props.fontWeight);\n const letterSpacing = formatPropIf(\"line-spacing\", props.letterSpacing);\n const lineSpacing = formatPropIf(\"line-height\", props.lineSpacing);\n const textAlign = formatPropIf(\"text-align\", props.textAlign);\n const textDecoration = formatPropIf(\"text-decoration\", props.textDecoration);\n const textOverflow = formatPropIf(\"text-overflow\", props.textOverflow);\n const whiteSpace = formatPropIf(\"white-space\", props.whiteSpace);\n const wordBreak = formatPropIf(\"word-break\", props.wordBreak);\n const wordWrap = formatPropIf(\"word-wrap\", props.wordWrap);\n\n return `\n ${color}\n ${fontFamily}\n ${fontSize}\n ${fontWeight}\n ${letterSpacing}\n ${lineSpacing}\n ${textAlign}\n ${textDecoration}\n ${textOverflow}\n ${whiteSpace}\n ${wordBreak}\n ${wordWrap}\n `;\n};\n\nconst setInteraction = (props: Readonly<IInteractionModifiable>): string => {\n const cursor = formatPropIf(\"cursor\", props.cursor);\n const borderColorHover = formatPropIf(\"border-color\", props.borderColorHover);\n const bgColorHover = formatPropIf(\"background-color\", props.bgColorHover);\n const shadowHover = formatPropIf(\n \"box-shadow\",\n props.shadowHover === undefined\n ? undefined\n : theme.shadows[props.shadowHover],\n );\n const transition = formatPropIf(\"transition\", props.transition);\n\n return `\n ${cursor}\n\n &:hover {\n ${transition || \"transition: all 0.2s;\"}\n ${borderColorHover}\n ${bgColorHover}\n ${shadowHover}\n }\n `;\n};\n\nconst getStyledConfig = (): StyledOptions<\"web\", object> => {\n return {\n shouldForwardProp: (prop: string): boolean => !hiddenProps.includes(prop),\n };\n};\n\nexport {\n setPadding,\n setText,\n setMargin,\n setInteraction,\n setPosition,\n setDisplay,\n setBorder,\n getStyledConfig,\n};\n","import { styled } from \"styled-components\";\n\nimport type { TModifiable } from \"./types\";\nimport {\n getStyledConfig,\n setBorder,\n setDisplay,\n setInteraction,\n setMargin,\n setPadding,\n setPosition,\n setText,\n} from \"./utils\";\n\nconst BaseComponent = styled.div.withConfig(getStyledConfig())<TModifiable>`\n ${setPadding}\n ${setMargin}\n ${setPosition}\n ${setDisplay}\n ${setText}\n ${setBorder}\n ${setInteraction}\n`;\n\nconst BaseTextComponent = styled.p.withConfig(getStyledConfig())<TModifiable>`\n ${setPadding}\n ${setMargin}\n ${setPosition}\n ${setDisplay}\n ${setText}\n ${setBorder}\n ${setInteraction}\n`;\n\nexport { BaseComponent, BaseTextComponent };\n","var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nvar lodash_clonedeep = {exports: {}};\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n(function (module, exports) {\n/** Used as the size to enable large array optimizations. */\nvar LARGE_ARRAY_SIZE = 200;\n\n/** Used to stand-in for `undefined` hash values. */\nvar HASH_UNDEFINED = '__lodash_hash_undefined__';\n\n/** Used as references for various `Number` constants. */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n promiseTag = '[object Promise]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Used to match `RegExp`\n * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns).\n */\nvar reRegExpChar = /[\\\\^$.*+?()[\\]{}|]/g;\n\n/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/** Used to detect host constructors (Safari). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^(?:0|[1-9]\\d*)$/;\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Detect free variable `exports`. */\nvar freeExports = exports && !exports.nodeType && exports;\n\n/** Detect free variable `module`. */\nvar freeModule = freeExports && 'object' == 'object' && module && !module.nodeType && module;\n\n/** Detect the popular CommonJS extension `module.exports`. */\nvar moduleExports = freeModule && freeModule.exports === freeExports;\n\n/**\n * Adds the key-value `pair` to `map`.\n *\n * @private\n * @param {Object} map The map to modify.\n * @param {Array} pair The key-value pair to add.\n * @returns {Object} Returns `map`.\n */\nfunction addMapEntry(map, pair) {\n // Don't return `map.set` because it's not chainable in IE 11.\n map.set(pair[0], pair[1]);\n return map;\n}\n\n/**\n * Adds `value` to `set`.\n *\n * @private\n * @param {Object} set The set to modify.\n * @param {*} value The value to add.\n * @returns {Object} Returns `set`.\n */\nfunction addSetEntry(set, value) {\n // Don't return `set.add` because it's not chainable in IE 11.\n set.add(value);\n return set;\n}\n\n/**\n * A specialized version of `_.forEach` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array ? array.length : 0;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\n/**\n * Appends the elements of `values` to `array`.\n *\n * @private\n * @param {Array} array The array to modify.\n * @param {Array} values The values to append.\n * @returns {Array} Returns `array`.\n */\nfunction arrayPush(array, values) {\n var index = -1,\n length = values.length,\n offset = array.length;\n\n while (++index < length) {\n array[offset + index] = values[index];\n }\n return array;\n}\n\n/**\n * A specialized version of `_.reduce` for arrays without support for\n * iteratee shorthands.\n *\n * @private\n * @param {Array} [array] The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {*} [accumulator] The initial value.\n * @param {boolean} [initAccum] Specify using the first element of `array` as\n * the initial value.\n * @returns {*} Returns the accumulated value.\n */\nfunction arrayReduce(array, iteratee, accumulator, initAccum) {\n var index = -1,\n length = array ? array.length : 0;\n\n if (initAccum && length) {\n accumulator = array[++index];\n }\n while (++index < length) {\n accumulator = iteratee(accumulator, array[index], index, array);\n }\n return accumulator;\n}\n\n/**\n * The base implementation of `_.times` without support for iteratee shorthands\n * or max array length checks.\n *\n * @private\n * @param {number} n The number of times to invoke `iteratee`.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns the array of results.\n */\nfunction baseTimes(n, iteratee) {\n var index = -1,\n result = Array(n);\n\n while (++index < n) {\n result[index] = iteratee(index);\n }\n return result;\n}\n\n/**\n * Gets the value at `key` of `object`.\n *\n * @private\n * @param {Object} [object] The object to query.\n * @param {string} key The key of the property to get.\n * @returns {*} Returns the property value.\n */\nfunction getValue(object, key) {\n return object == null ? undefined : object[key];\n}\n\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nfunction isHostObject(value) {\n // Many host objects are `Object` objects that can coerce to strings\n // despite having improperly defined `toString` methods.\n var result = false;\n if (value != null && typeof value.toString != 'function') {\n try {\n result = !!(value + '');\n } catch (e) {}\n }\n return result;\n}\n\n/**\n * Converts `map` to its key-value pairs.\n *\n * @private\n * @param {Object} map The map to convert.\n * @returns {Array} Returns the key-value pairs.\n */\nfunction mapToArray(map) {\n var index = -1,\n result = Array(map.size);\n\n map.forEach(function(value, key) {\n result[++index] = [key, value];\n });\n return result;\n}\n\n/**\n * Creates a unary function that invokes `func` with its argument transformed.\n *\n * @private\n * @param {Function} func The function to wrap.\n * @param {Function} transform The argument transform.\n * @returns {Function} Returns the new function.\n */\nfunction overArg(func, transform) {\n return function(arg) {\n return func(transform(arg));\n };\n}\n\n/**\n * Converts `set` to an array of its values.\n *\n * @private\n * @param {Object} set The set to convert.\n * @returns {Array} Returns the values.\n */\nfunction setToArray(set) {\n var index = -1,\n result = Array(set.size);\n\n set.forEach(function(value) {\n result[++index] = value;\n });\n return result;\n}\n\n/** Used for built-in method references. */\nvar arrayProto = Array.prototype,\n funcProto = Function.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect overreaching core-js shims. */\nvar coreJsData = root['__core-js_shared__'];\n\n/** Used to detect methods masquerading as native. */\nvar maskSrcKey = (function() {\n var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || '');\n return uid ? ('Symbol(src)_1.' + uid) : '';\n}());\n\n/** Used to resolve the decompiled source of functions. */\nvar funcToString = funcProto.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/** Built-in value references. */\nvar Buffer = moduleExports ? root.Buffer : undefined,\n Symbol = root.Symbol,\n Uint8Array = root.Uint8Array,\n getPrototype = overArg(Object.getPrototypeOf, Object),\n objectCreate = Object.create,\n propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols,\n nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined,\n nativeKeys = overArg(Object.keys, Object);\n\n/* Built-in method references that are verified to be native. */\nvar DataView = getNative(root, 'DataView'),\n Map = getNative(root, 'Map'),\n Promise = getNative(root, 'Promise'),\n Set = getNative(root, 'Set'),\n WeakMap = getNative(root, 'WeakMap'),\n nativeCreate = getNative(Object, 'create');\n\n/** Used to detect maps, sets, and weakmaps. */\nvar dataViewCtorString = toSource(DataView),\n mapCtorString = toSource(Map),\n promiseCtorString = toSource(Promise),\n setCtorString = toSource(Set),\n weakMapCtorString = toSource(WeakMap);\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a hash object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Hash(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the hash.\n *\n * @private\n * @name clear\n * @memberOf Hash\n */\nfunction hashClear() {\n this.__data__ = nativeCreate ? nativeCreate(null) : {};\n}\n\n/**\n * Removes `key` and its value from the hash.\n *\n * @private\n * @name delete\n * @memberOf Hash\n * @param {Object} hash The hash to modify.\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction hashDelete(key) {\n return this.has(key) && delete this.__data__[key];\n}\n\n/**\n * Gets the hash value for `key`.\n *\n * @private\n * @name get\n * @memberOf Hash\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction hashGet(key) {\n var data = this.__data__;\n if (nativeCreate) {\n var result = data[key];\n return result === HASH_UNDEFINED ? undefined : result;\n }\n return hasOwnProperty.call(data, key) ? data[key] : undefined;\n}\n\n/**\n * Checks if a hash value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Hash\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction hashHas(key) {\n var data = this.__data__;\n return nativeCreate ? data[key] !== undefined : hasOwnProperty.call(data, key);\n}\n\n/**\n * Sets the hash `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Hash\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the hash instance.\n */\nfunction hashSet(key, value) {\n var data = this.__data__;\n data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value;\n return this;\n}\n\n// Add methods to `Hash`.\nHash.prototype.clear = hashClear;\nHash.prototype['delete'] = hashDelete;\nHash.prototype.get = hashGet;\nHash.prototype.has = hashHas;\nHash.prototype.set = hashSet;\n\n/**\n * Creates an list cache object.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction ListCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the list cache.\n *\n * @private\n * @name clear\n * @memberOf ListCache\n */\nfunction listCacheClear() {\n this.__data__ = [];\n}\n\n/**\n * Removes `key` and its value from the list cache.\n *\n * @private\n * @name delete\n * @memberOf ListCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction listCacheDelete(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n return false;\n }\n var lastIndex = data.length - 1;\n if (index == lastIndex) {\n data.pop();\n } else {\n splice.call(data, index, 1);\n }\n return true;\n}\n\n/**\n * Gets the list cache value for `key`.\n *\n * @private\n * @name get\n * @memberOf ListCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction listCacheGet(key) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n return index < 0 ? undefined : data[index][1];\n}\n\n/**\n * Checks if a list cache value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf ListCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction listCacheHas(key) {\n return assocIndexOf(this.__data__, key) > -1;\n}\n\n/**\n * Sets the list cache `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf ListCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the list cache instance.\n */\nfunction listCacheSet(key, value) {\n var data = this.__data__,\n index = assocIndexOf(data, key);\n\n if (index < 0) {\n data.push([key, value]);\n } else {\n data[index][1] = value;\n }\n return this;\n}\n\n// Add methods to `ListCache`.\nListCache.prototype.clear = listCacheClear;\nListCache.prototype['delete'] = listCacheDelete;\nListCache.prototype.get = listCacheGet;\nListCache.prototype.has = listCacheHas;\nListCache.prototype.set = listCacheSet;\n\n/**\n * Creates a map cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction MapCache(entries) {\n var index = -1,\n length = entries ? entries.length : 0;\n\n this.clear();\n while (++index < length) {\n var entry = entries[index];\n this.set(entry[0], entry[1]);\n }\n}\n\n/**\n * Removes all key-value entries from the map.\n *\n * @private\n * @name clear\n * @memberOf MapCache\n */\nfunction mapCacheClear() {\n this.__data__ = {\n 'hash': new Hash,\n 'map': new (Map || ListCache),\n 'string': new Hash\n };\n}\n\n/**\n * Removes `key` and its value from the map.\n *\n * @private\n * @name delete\n * @memberOf MapCache\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction mapCacheDelete(key) {\n return getMapData(this, key)['delete'](key);\n}\n\n/**\n * Gets the map value for `key`.\n *\n * @private\n * @name get\n * @memberOf MapCache\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction mapCacheGet(key) {\n return getMapData(this, key).get(key);\n}\n\n/**\n * Checks if a map value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf MapCache\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction mapCacheHas(key) {\n return getMapData(this, key).has(key);\n}\n\n/**\n * Sets the map `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf MapCache\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the map cache instance.\n */\nfunction mapCacheSet(key, value) {\n getMapData(this, key).set(key, value);\n return this;\n}\n\n// Add methods to `MapCache`.\nMapCache.prototype.clear = mapCacheClear;\nMapCache.prototype['delete'] = mapCacheDelete;\nMapCache.prototype.get = mapCacheGet;\nMapCache.prototype.has = mapCacheHas;\nMapCache.prototype.set = mapCacheSet;\n\n/**\n * Creates a stack cache object to store key-value pairs.\n *\n * @private\n * @constructor\n * @param {Array} [entries] The key-value pairs to cache.\n */\nfunction Stack(entries) {\n this.__data__ = new ListCache(entries);\n}\n\n/**\n * Removes all key-value entries from the stack.\n *\n * @private\n * @name clear\n * @memberOf Stack\n */\nfunction stackClear() {\n this.__data__ = new ListCache;\n}\n\n/**\n * Removes `key` and its value from the stack.\n *\n * @private\n * @name delete\n * @memberOf Stack\n * @param {string} key The key of the value to remove.\n * @returns {boolean} Returns `true` if the entry was removed, else `false`.\n */\nfunction stackDelete(key) {\n return this.__data__['delete'](key);\n}\n\n/**\n * Gets the stack value for `key`.\n *\n * @private\n * @name get\n * @memberOf Stack\n * @param {string} key The key of the value to get.\n * @returns {*} Returns the entry value.\n */\nfunction stackGet(key) {\n return this.__data__.get(key);\n}\n\n/**\n * Checks if a stack value for `key` exists.\n *\n * @private\n * @name has\n * @memberOf Stack\n * @param {string} key The key of the entry to check.\n * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`.\n */\nfunction stackHas(key) {\n return this.__data__.has(key);\n}\n\n/**\n * Sets the stack `key` to `value`.\n *\n * @private\n * @name set\n * @memberOf Stack\n * @param {string} key The key of the value to set.\n * @param {*} value The value to set.\n * @returns {Object} Returns the stack cache instance.\n */\nfunction stackSet(key, value) {\n var cache = this.__data__;\n if (cache instanceof ListCache) {\n var pairs = cache.__data__;\n if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) {\n pairs.push([key, value]);\n return this;\n }\n cache = this.__data__ = new MapCache(pairs);\n }\n cache.set(key, value);\n return this;\n}\n\n// Add methods to `Stack`.\nStack.prototype.clear = stackClear;\nStack.prototype['delete'] = stackDelete;\nStack.prototype.get = stackGet;\nStack.prototype.has = stackHas;\nStack.prototype.set = stackSet;\n\n/**\n * Creates an array of the enumerable property names of the array-like `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @param {boolean} inherited Specify returning inherited property names.\n * @returns {Array} Returns the array of property names.\n */\nfunction arrayLikeKeys(value, inherited) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n // Safari 9 makes `arguments.length` enumerable in strict mode.\n var result = (isArray(value) || isArguments(value))\n ? baseTimes(value.length, String)\n : [];\n\n var length = result.length,\n skipIndexes = !!length;\n\n for (var key in value) {\n if ((inherited || hasOwnProperty.call(value, key)) &&\n !(skipIndexes && (key == 'length' || isIndex(key, length)))) {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Assigns `value` to `key` of `object` if the existing value is not equivalent\n * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * for equality comparisons.\n *\n * @private\n * @param {Object} object The object to modify.\n * @param {string} key The key of the property to assign.\n * @param {*} value The value to assign.\n */\nfunction assignValue(object, key, value) {\n var objValue = object[key];\n if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) ||\n (value === undefined && !(key in object))) {\n object[key] = value;\n }\n}\n\n/**\n * Gets the index at which the `key` is found in `array` of key-value pairs.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {*} key The key to search for.\n * @returns {number} Returns the index of the matched value, else `-1`.\n */\nfunction assocIndexOf(array, key) {\n var length = array.length;\n while (length--) {\n if (eq(array[length][0], key)) {\n return length;\n }\n }\n return -1;\n}\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @param {boolean} [isFull] Specify a clone including symbols.\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, isDeep, isFull, customizer, key, object, stack) {\n var result;\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n if (isHostObject(value)) {\n return object ? value : {};\n }\n result = initCloneObject(isFunc ? {} : value);\n if (!isDeep) {\n return copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, baseClone, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (!isArr) {\n var props = isFull ? getAllKeys(value) : keys(value);\n }\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, isDeep, isFull, customizer, key, value, stack));\n });\n return result;\n}\n\n/**\n * The base implementation of `_.create` without support for assigning\n * properties to the created object.\n *\n * @private\n * @param {Object} prototype The object to inherit from.\n * @returns {Object} Returns the new object.\n */\nfunction baseCreate(proto) {\n return isObject(proto) ? objectCreate(proto) : {};\n}\n\n/**\n * The base implementation of `getAllKeys` and `getAllKeysIn` which uses\n * `keysFunc` and `symbolsFunc` to get the enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @param {Function} symbolsFunc The function to get the symbols of `object`.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction baseGetAllKeys(object, keysFunc, symbolsFunc) {\n var result = keysFunc(object);\n return isArray(object) ? result : arrayPush(result, symbolsFunc(object));\n}\n\n/**\n * The base implementation of `getTag`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n return objectToString.call(value);\n}\n\n/**\n * The base implementation of `_.isNative` without bad shim checks.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function,\n * else `false`.\n */\nfunction baseIsNative(value) {\n if (!isObject(value) || isMasked(value)) {\n return false;\n }\n var pattern = (isFunction(value) || isHostObject(value)) ? reIsNative : reIsHostCtor;\n return pattern.test(toSource(value));\n}\n\n/**\n * The base implementation of `_.keys` which doesn't treat sparse arrays as dense.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction baseKeys(object) {\n if (!isPrototype(object)) {\n return nativeKeys(object);\n }\n var result = [];\n for (var key in Object(object)) {\n if (hasOwnProperty.call(object, key) && key != 'constructor') {\n result.push(key);\n }\n }\n return result;\n}\n\n/**\n * Creates a clone of `buffer`.\n *\n * @private\n * @param {Buffer} buffer The buffer to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Buffer} Returns the cloned buffer.\n */\nfunction cloneBuffer(buffer, isDeep) {\n if (isDeep) {\n return buffer.slice();\n }\n var result = new buffer.constructor(buffer.length);\n buffer.copy(result);\n return result;\n}\n\n/**\n * Creates a clone of `arrayBuffer`.\n *\n * @private\n * @param {ArrayBuffer} arrayBuffer The array buffer to clone.\n * @returns {ArrayBuffer} Returns the cloned array buffer.\n */\nfunction cloneArrayBuffer(arrayBuffer) {\n var result = new arrayBuffer.constructor(arrayBuffer.byteLength);\n new Uint8Array(result).set(new Uint8Array(arrayBuffer));\n return result;\n}\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\n/**\n * Creates a clone of `map`.\n *\n * @private\n * @param {Object} map The map to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned map.\n */\nfunction cloneMap(map, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(mapToArray(map), true) : mapToArray(map);\n return arrayReduce(array, addMapEntry, new map.constructor);\n}\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\n/**\n * Creates a clone of `set`.\n *\n * @private\n * @param {Object} set The set to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned set.\n */\nfunction cloneSet(set, isDeep, cloneFunc) {\n var array = isDeep ? cloneFunc(setToArray(set), true) : setToArray(set);\n return arrayReduce(array, addSetEntry, new set.constructor);\n}\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\n/**\n * Creates a clone of `typedArray`.\n *\n * @private\n * @param {Object} typedArray The typed array to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned typed array.\n */\nfunction cloneTypedArray(typedArray, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(typedArray.buffer) : typedArray.buffer;\n return new typedArray.constructor(buffer, typedArray.byteOffset, typedArray.length);\n}\n\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction copyArray(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property identifiers to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @param {Function} [customizer] The function to customize copied values.\n * @returns {Object} Returns `object`.\n */\nfunction copyObject(source, props, object, customizer) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n\n var newValue = customizer\n ? customizer(object[key], source[key], key, object, source)\n : undefined;\n\n assignValue(object, key, newValue === undefined ? source[key] : newValue);\n }\n return object;\n}\n\n/**\n * Copies own symbol properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\n/**\n * Creates an array of own enumerable property names and symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeys(object) {\n return baseGetAllKeys(object, keys, getSymbols);\n}\n\n/**\n * Gets the data for `map`.\n *\n * @private\n * @param {Object} map The map to query.\n * @param {string} key The reference key.\n * @returns {*} Returns the map data.\n */\nfunction getMapData(map, key) {\n var data = map.__data__;\n return isKeyable(key)\n ? data[typeof key == 'string' ? 'string' : 'hash']\n : data.map;\n}\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = getValue(object, key);\n return baseIsNative(value) ? value : undefined;\n}\n\n/**\n * Creates an array of the own enumerable symbol properties of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbols = nativeGetSymbols ? overArg(nativeGetSymbols, Object) : stubArray;\n\n/**\n * Gets the `toStringTag` of `value`.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nvar getTag = baseGetTag;\n\n// Fallback for data views, maps, sets, and weak maps in IE 11,\n// for data views in Edge < 14, and promises in Node.js.\nif ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) ||\n (Map && getTag(new Map) != mapTag) ||\n (Promise && getTag(Promise.resolve()) != promiseTag) ||\n (Set && getTag(new Set) != setTag) ||\n (WeakMap && getTag(new WeakMap) != weakMapTag)) {\n getTag = function(value) {\n var result = objectToString.call(value),\n Ctor = result == objectTag ? value.constructor : undefined,\n ctorString = Ctor ? toSource(Ctor) : undefined;\n\n if (ctorString) {\n switch (ctorString) {\n case dataViewCtorString: return dataViewTag;\n case mapCtorString: return mapTag;\n case promiseCtorString: return promiseTag;\n case setCtorString: return setTag;\n case weakMapCtorString: return weakMapTag;\n }\n }\n return result;\n };\n}\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\n/**\n * Initializes an object clone.\n *\n * @private\n * @param {Object} object The object to clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneObject(object) {\n return (typeof object.constructor == 'function' && !isPrototype(object))\n ? baseCreate(getPrototype(object))\n : {};\n}\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {Function} cloneFunc The function to clone values.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, cloneFunc, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return cloneMap(object, isDeep, cloneFunc);\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return cloneSet(object, isDeep, cloneFunc);\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n length = length == null ? MAX_SAFE_INTEGER : length;\n return !!length &&\n (typeof value == 'number' || reIsUint.test(value)) &&\n (value > -1 && value % 1 == 0 && value < length);\n}\n\n/**\n * Checks if `value` is suitable for use as unique object key.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is suitable, else `false`.\n */\nfunction isKeyable(value) {\n var type = typeof value;\n return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean')\n ? (value !== '__proto__')\n : (value === null);\n}\n\n/**\n * Checks if `func` has its source masked.\n *\n * @private\n * @param {Function} func The function to check.\n * @returns {boolean} Returns `true` if `func` is masked, else `false`.\n */\nfunction isMasked(func) {\n return !!maskSrcKey && (maskSrcKey in func);\n}\n\n/**\n * Checks if `value` is likely a prototype object.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a prototype, else `false`.\n */\nfunction isPrototype(value) {\n var Ctor = value && value.constructor,\n proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto;\n\n return value === proto;\n}\n\n/**\n * Converts `func` to its source code.\n *\n * @private\n * @param {Function} func The function to process.\n * @returns {string} Returns the source code.\n */\nfunction toSource(func) {\n if (func != null) {\n try {\n return funcToString.call(func);\n } catch (e) {}\n try {\n return (func + '');\n } catch (e) {}\n }\n return '';\n}\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, true, true);\n}\n\n/**\n * Performs a\n * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero)\n * comparison between two values to determine if they are equivalent.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to compare.\n * @param {*} other The other value to compare.\n * @returns {boolean} Returns `true` if the values are equivalent, else `false`.\n * @example\n *\n * var object = { 'a': 1 };\n * var other = { 'a': 1 };\n *\n * _.eq(object, object);\n * // => true\n *\n * _.eq(object, other);\n * // => false\n *\n * _.eq('a', 'a');\n * // => true\n *\n * _.eq('a', Object('a'));\n * // => false\n *\n * _.eq(NaN, NaN);\n * // => true\n */\nfunction eq(value, other) {\n return value === other || (value !== value && other !== other);\n}\n\n/**\n * Checks if `value` is likely an `arguments` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an `arguments` object,\n * else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n // Safari 8.1 makes `arguments.callee` enumerable in strict mode.\n return isArrayLikeObject(value) && hasOwnProperty.call(value, 'callee') &&\n (!propertyIsEnumerable.call(value, 'callee') || objectToString.call(value) == argsTag);\n}\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(document.body.children);\n * // => false\n *\n * _.isArray('abc');\n * // => false\n *\n * _.isArray(_.noop);\n * // => false\n */\nvar isArray = Array.isArray;\n\n/**\n * Checks if `value` is array-like. A value is considered array-like if it's\n * not a function and has a `value.length` that's an integer greater than or\n * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n * @example\n *\n * _.isArrayLike([1, 2, 3]);\n * // => true\n *\n * _.isArrayLike(document.body.children);\n * // => true\n *\n * _.isArrayLike('abc');\n * // => true\n *\n * _.isArrayLike(_.noop);\n * // => false\n */\nfunction isArrayLike(value) {\n return value != null && isLength(value.length) && !isFunction(value);\n}\n\n/**\n * This method is like `_.isArrayLike` except that it also checks if `value`\n * is an object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an array-like object,\n * else `false`.\n * @example\n *\n * _.isArrayLikeObject([1, 2, 3]);\n * // => true\n *\n * _.isArrayLikeObject(document.body.children);\n * // => true\n *\n * _.isArrayLikeObject('abc');\n * // => false\n *\n * _.isArrayLikeObject(_.noop);\n * // => false\n */\nfunction isArrayLikeObject(value) {\n return isObjectLike(value) && isArrayLike(value);\n}\n\n/**\n * Checks if `value` is a buffer.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a buffer, else `false`.\n * @example\n *\n * _.isBuffer(new Buffer(2));\n * // => true\n *\n * _.isBuffer(new Uint8Array(2));\n * // => false\n */\nvar isBuffer = nativeIsBuffer || stubFalse;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a function, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in Safari 8-9 which returns 'object' for typed array and other constructors.\n var tag = isObject(value) ? objectToString.call(value) : '';\n return tag == funcTag || tag == genTag;\n}\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This method is loosely based on\n * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength).\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n * @example\n *\n * _.isLength(3);\n * // => true\n *\n * _.isLength(Number.MIN_VALUE);\n * // => false\n *\n * _.isLength(Infinity);\n * // => false\n *\n * _.isLength('3');\n * // => false\n */\nfunction isLength(value) {\n return typeof value == 'number' &&\n value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nfunction keys(object) {\n return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object);\n}\n\n/**\n * This method returns a new empty array.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {Array} Returns the new empty array.\n * @example\n *\n * var arrays = _.times(2, _.stubArray);\n *\n * console.log(arrays);\n * // => [[], []]\n *\n * console.log(arrays[0] === arrays[1]);\n * // => false\n */\nfunction stubArray() {\n return [];\n}\n\n/**\n * This method returns `false`.\n *\n * @static\n * @memberOf _\n * @since 4.13.0\n * @category Util\n * @returns {boolean} Returns `false`.\n * @example\n *\n * _.times(2, _.stubFalse);\n * // => [false, false]\n */\nfunction stubFalse() {\n return false;\n}\n\nmodule.exports = cloneDeep;\n}(lodash_clonedeep, lodash_clonedeep.exports));\n\nvar cloneDeep = lodash_clonedeep.exports;\n\n/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n\nvar __assign$1 = function() {\n __assign$1 = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\n\nfunction __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nfunction __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\n/**\r\n * Iterate through plugins and break in cases where the response is canceled. The\r\n * response is canceled if component is updated or unmounted\r\n * @param element {HTMLImageElement|HTMLVideoElement} Html Image or Video element\r\n * @param pluginCloudinaryAsset {CloudinaryImage|CloudinaryVideo} The Cloudinary asset generated by base\r\n * @param plugins {plugins} array of plugins passed in by the user\r\n * @param pluginState {htmlPluginState} Holds cleanup callbacks and event subscriptions\r\n * @param analyticsOptions {BaseAnalyticsOptions} analytics options for the url to be created\r\n */\r\nfunction render(element, pluginCloudinaryAsset, plugins, pluginState, analyticsOptions) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var response, i;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n if (plugins === undefined)\r\n return [2 /*return*/];\r\n i = 0;\r\n _a.label = 1;\r\n case 1:\r\n if (!(i < plugins.length)) return [3 /*break*/, 4];\r\n return [4 /*yield*/, plugins[i](element, pluginCloudinaryAsset, pluginState, analyticsOptions, plugins)];\r\n case 2:\r\n response = _a.sent();\r\n if (response === 'canceled') {\r\n return [3 /*break*/, 4];\r\n }\r\n _a.label = 3;\r\n case 3:\r\n i++;\r\n return [3 /*break*/, 1];\r\n case 4:\r\n if (response !== 'canceled') {\r\n return [2 /*return*/, response];\r\n }\r\n return [2 /*return*/];\r\n }\r\n });\r\n });\r\n}\n\nvar getAnalyticsOptions = function (options, features) {\r\n if (features === void 0) { features = {}; }\r\n return options ? {\r\n trackedAnalytics: __assign$1({ sdkCode: options.sdkCode, sdkSemver: options.sdkSemver, techVersion: options.techVersion }, features)\r\n } : null;\r\n};\n\nvar HtmlImageLayer = /** @class */ (function () {\r\n function HtmlImageLayer(element, userCloudinaryImage, plugins, baseAnalyticsOptions) {\r\n var _this = this;\r\n this.isMounted = true;\r\n this.imgElement = element;\r\n this.htmlPluginState = { cleanupCallbacks: [], pluginEventSubscription: [] };\r\n var pluginCloudinaryImage = cloneDeep(userCloudinaryImage);\r\n render(element, pluginCloudinaryImage, plugins, this.htmlPluginState, baseAnalyticsOptions)\r\n .then(function (pluginResponse) {\r\n if (!_this.isMounted) {\r\n return;\r\n }\r\n _this.htmlPluginState.pluginEventSubscription.forEach(function (fn) { fn(); });\r\n var analyticsOptions = getAnalyticsOptions(baseAnalyticsOptions, pluginResponse);\r\n _this.imgElement.setAttribute('src', pluginCloudinaryImage.toURL(analyticsOptions));\r\n });\r\n }\r\n /**\r\n * Called when component is updated and re-triggers render\r\n * @param userCloudinaryImage\r\n * @param plugins\r\n * @param baseAnalyticsOptions\r\n */\r\n HtmlImageLayer.prototype.update = function (userCloudinaryImage, plugins, baseAnalyticsOptions) {\r\n var _this = this;\r\n var pluginCloudinaryImage = cloneDeep(userCloudinaryImage);\r\n render(this.imgElement, pluginCloudinaryImage, plugins, this.htmlPluginState)\r\n .then(function (pluginResponse) {\r\n if (!_this.isMounted) {\r\n return;\r\n }\r\n var featuredAnalyticsOptions = getAnalyticsOptions(baseAnalyticsOptions, pluginResponse);\r\n _this.imgElement.setAttribute('src', pluginCloudinaryImage.toURL(featuredAnalyticsOptions));\r\n });\r\n };\r\n HtmlImageLayer.prototype.unmount = function () {\r\n this.isMounted = false;\r\n };\r\n return HtmlImageLayer;\r\n}());\n\n/**\n * @summary SDK\n * @memberOf SDK\n */\nclass QualifierValue {\n /**\n *\n * @param {QualifierValue | QualifierValue[] | any[] | string | number}qualifierValue\n */\n constructor(qualifierValue) {\n this.values = [];\n this.delimiter = ':'; // {value}{delimiter}{value}...\n if (this.hasValue(qualifierValue)) {\n this.addValue(qualifierValue);\n }\n }\n /**\n * @description Joins the provided values with the provided delimiter\n */\n toString() {\n return this.values.join(this.delimiter);\n }\n /**\n * @description Checks if the provided argument has a value\n * @param {any} v\n * @private\n * @return {boolean}\n */\n hasValue(v) {\n return typeof v !== 'undefined' && v !== null && v !== '';\n }\n /**\n * @desc Adds a value for the this qualifier instance\n * @param {any} value\n * @return {this}\n */\n addValue(value) {\n // Append value or array of values\n if (Array.isArray(value)) {\n this.values = this.values.concat(value);\n }\n else {\n this.values.push(value);\n }\n // Remove falsy values\n this.values = this.values.filter((v) => this.hasValue(v));\n return this;\n }\n /**\n * @description Sets the delimiter for this instance\n * @param delimiter\n */\n setDelimiter(delimiter) {\n this.delimiter = delimiter;\n return this;\n }\n}\n\nclass UnsupportedError extends Error {\n constructor(message = 'Unsupported') {\n super(message);\n }\n}\n/**\n * Creates a new UnsupportedError\n * @param message\n */\nfunction createUnsupportedError(message) {\n return new UnsupportedError(message);\n}\n\n/**\n * Returns the action's model\n */\nfunction qualifierToJson() {\n return this._qualifierModel || { error: createUnsupportedError(`unsupported qualifier ${this.constructor.name}`) };\n}\n\nclass QualifierModel {\n constructor() {\n this._qualifierModel = {};\n }\n toJson() {\n return qualifierToJson.apply(this);\n }\n}\n\n/**\n * @summary SDK\n * @memberOf SDK\n */\nclass Qualifier extends QualifierModel {\n constructor(key, qualifierValue) {\n super();\n this.delimiter = '_'; // {key}{delimiter}{qualifierValue}\n this.key = key;\n if (qualifierValue instanceof QualifierValue) {\n this.qualifierValue = qualifierValue;\n }\n else {\n this.qualifierValue = new QualifierValue();\n this.qualifierValue.addValue(qualifierValue);\n }\n }\n toString() {\n const { key, delimiter, qualifierValue } = this;\n return `${key}${delimiter}${qualifierValue.toString()}`;\n }\n addValue(value) {\n this.qualifierValue.addValue(value);\n return this;\n }\n}\n\n/**\n * @memberOf Qualifiers.Flag\n * @extends {SDK.Qualifier}\n * @description the FlagQualifier class\n */\nclass FlagQualifier extends Qualifier {\n constructor(flagType, flagValue) {\n let qualifierValue;\n if (flagValue) {\n qualifierValue = new QualifierValue([flagType, `${flagValue}`]).setDelimiter(':');\n }\n else {\n qualifierValue = flagType;\n }\n super('fl', qualifierValue);\n this.flagValue = flagValue;\n }\n toString() {\n return super.toString().replace(/\\./, '%2E');\n }\n getFlagValue() {\n return this.flagValue;\n }\n}\n\n/**\n * Sort a map by key\n * @private\n * @param map <string, any>\n * @Return array of map's values sorted by key\n */\nfunction mapToSortedArray(map, flags) {\n const array = Array.from(map.entries());\n // objects from the Array.from() method above are stored in array of arrays:\n // [[qualifierKey, QualifierObj], [qualifierKey, QualifierObj]]\n // Flags is an array of FlagQualifierObj\n // We need to convert it to the same form: [flagQualifier] => ['fl', flagQualifier]\n flags.forEach((flag) => {\n array.push(['fl', flag]); // push ['fl', flagQualifier]\n });\n return array.sort().map((v) => v[1]);\n}\n\n/**\n * Returns the action's model\n */\nfunction actionToJson() {\n var _a, _b, _c;\n const actionModelIsNotEmpty = this._actionModel && Object.keys(this._actionModel).length;\n const sourceTransformationError = (_c = (_b = (_a = this._actionModel) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.transformation) === null || _c === void 0 ? void 0 : _c.error;\n // Should return error when there is unsupported transformation inside\n if (sourceTransformationError && sourceTransformationError instanceof Error) {\n return { error: sourceTransformationError };\n }\n if (actionModelIsNotEmpty) {\n return this._actionModel;\n }\n return { error: createUnsupportedError(`unsupported action ${this.constructor.name}`) };\n}\n\nclass ActionModel {\n constructor() {\n this._actionModel = {};\n }\n toJson() {\n return actionToJson.apply(this);\n }\n}\n\n/**\n * @summary SDK\n * @memberOf SDK\n * @description Defines the category of transformation to perform.\n */\nclass Action extends ActionModel {\n constructor() {\n super(...arguments);\n // We're using map, to overwrite existing keys. for example:\n // addParam(w_100).addQualifier(w_200) should result in w_200. and not w_100,w_200\n this.qualifiers = new Map();\n // Unlike regular qualifiers, there can be multiple flags in each url component /fl_1,fl_2/\n // If the falgs are added to the qualifiers map, only a single flag could exist in a component (it's a map)\n // So flags are stored separately until the very end because of that reason\n this.flags = [];\n this.delimiter = ','; // {qualifier}{delimiter}{qualifier} for example: `${'w_100'}${','}${'c_fill'}`\n this.actionTag = ''; // A custom name tag to identify this action in the future\n }\n prepareQualifiers() { }\n /**\n * @description Returns the custom name tag that was given to this action\n * @return {string}\n */\n getActionTag() {\n return this.actionTag;\n }\n /**\n * @description Sets the custom name tag for this action\n * @return {this}\n */\n setActionTag(tag) {\n this.actionTag = tag;\n return this;\n }\n /**\n * @description Calls toString() on all child qualifiers (implicitly by using .join()).\n * @return {string}\n */\n toString() {\n this.prepareQualifiers();\n return mapToSortedArray(this.qualifiers, this.flags).join(this.delimiter);\n }\n /**\n * @description Adds the parameter to the action.\n * @param {SDK.Qualifier} qualifier\n * @return {this}\n */\n addQualifier(qualifier) {\n // if string, find the key and value\n if (typeof qualifier === 'string') {\n const [key, value] = qualifier.toLowerCase().split('_');\n if (key === 'fl') {\n // if string qualifier is a flag, store it in the flags arrays\n this.flags.push(new FlagQualifier(value));\n }\n else {\n // if the string qualifier is not a flag, create a new qualifier from it\n this.qualifiers.set(key, new Qualifier(key, value));\n }\n }\n else {\n // if a qualifier object, insert to the qualifiers map\n this.qualifiers.set(qualifier.key, qualifier);\n }\n return this;\n }\n /**\n * @description Adds a flag to the current action.\n * @param {Qualifiers.Flag} flag\n * @return {this}\n */\n addFlag(flag) {\n if (typeof flag === 'string') {\n this.flags.push(new FlagQualifier(flag));\n }\n else {\n if (flag instanceof FlagQualifier) {\n this.flags.push(flag);\n }\n }\n return this;\n }\n addValueToQualifier(qualifierKey, qualifierValue) {\n this.qualifiers.get(qualifierKey).addValue(qualifierValue);\n return this;\n }\n}\n\n/**\n * @memberOf Qualifiers.Region\n */\nclass NamedRegion extends Action {\n constructor(type) {\n super();\n this.regionType = type;\n this._actionModel.regionType = type;\n }\n}\n\n/**\n * @memberOf Qualifiers.Region\n */\nclass CustomRegion extends NamedRegion {\n constructor() {\n super('custom');\n }\n /**\n * @description The x position in pixels.\n * @param {number | string} x\n */\n x(x) {\n this._actionModel.x = x;\n this.addQualifier(new Qualifier('x', x));\n return this;\n }\n /**\n * @description The y position in pixels.\n * @param {number | string} y\n */\n y(y) {\n this._actionModel.y = y;\n this.addQualifier(new Qualifier('y', y));\n return this;\n }\n /**\n * @description The width of the region in pixels.\n * @param {number | string} width\n */\n width(width) {\n this._actionModel.width = width;\n this.addQualifier(new Qualifier('w', width));\n return this;\n }\n /**\n * @description The height of the region in pixels.\n * @param {number | string} height\n */\n height(height) {\n this._actionModel.height = height;\n this.addQualifier(new Qualifier('h', height));\n return this;\n }\n static fromJson(model) {\n const customRegion = new CustomRegion();\n if (model.width) {\n customRegion.width(model.width);\n }\n if (model.height) {\n customRegion.height(model.height);\n }\n if (model.x) {\n customRegion.x(model.x);\n }\n if (model.y) {\n customRegion.y(model.y);\n }\n return customRegion;\n }\n}\n\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Region\n * @return {Qualifiers.Region.CustomRegion}\n */\nfunction custom() {\n return new CustomRegion();\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Region\n * @return {Qualifiers.Region.NamedRegion}\n */\nfunction faces() {\n return new NamedRegion(\"faces\");\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Region\n * @return {Qualifiers.Region.NamedRegion}\n */\nfunction ocr$1() {\n return new NamedRegion(\"ocr_text\");\n}\n\n/**\n * @description The Action class of the blur Builder.\n * @extends SDK.Action\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass BlurAction extends Action {\n constructor(strength) {\n super();\n this._actionModel = {};\n this._strength = strength;\n this._actionModel.actionType = 'blur';\n this._actionModel.strength = strength;\n }\n /**\n * @description Specifies the region to blur.\n * @param {NamedRegion} blurRegion\n */\n region(blurRegion) {\n this._region = blurRegion;\n this._actionModel.region = blurRegion.toJson();\n return this;\n }\n /**\n * @description Sets the strength of the blur effect.\n * @param {number | string} strength\n */\n strength(strength) {\n this._strength = strength;\n this._actionModel.strength = strength;\n return this;\n }\n prepareQualifiers() {\n /*\n * Blur with region is a unique object in this codebase.\n * On top of Blur being an Action with Qualifiers,\n * it also accepts a Qualifier called Region.\n *\n * This Qualifier is in itself composite of qualifiers (such as height, or width).\n * The existence of Region changes the output of Blur in non traditional ways\n * which forced this relatively ad-hoc implementation.\n *\n * Aside from all of that, all of the Qualifiers in the component should be alphabetized\n * This happens naturally in the Action class,\n * however since we're dealing with two levels of qualifiers (Blur and Region),\n * these need to be merged.\n *\n * This function will merge the Region qualifiers with Blur\n * and add all needed implicit qualifiers (like g_ocr_text).\n * We're not using the full Gravity Qualifier here to prevent the code import for such a simplistic case\n */\n const strength = this._strength ? `:${this._strength}` : '';\n if ('_region' in this) {\n const qualifiers = this._region.qualifiers;\n // Copy qualifiers from the region \"action\" to the blur action\n qualifiers.forEach((q) => this.addQualifier(q));\n if (this._region.regionType === 'custom') {\n this.addQualifier(new Qualifier('e', `blur_region${strength}`));\n }\n if (this._region.regionType === 'ocr_text') {\n this.addQualifier(new Qualifier('e', `blur_region${strength}`));\n this.addQualifier(new Qualifier('g', `ocr_text`));\n }\n if (this._region.regionType === 'faces') {\n this.addQualifier(new Qualifier('e', `blur_faces${strength}`));\n }\n }\n else {\n this.addQualifier(new Qualifier('e', `blur${strength}`));\n }\n }\n static fromJson(actionModel) {\n const { strength, region } = actionModel;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this(strength);\n strength && result.strength(strength);\n if (region && region.regionType === 'faces') {\n result.region(faces());\n }\n if (region && region.regionType === 'ocr_text') {\n result.region(ocr$1());\n }\n if (region && region.regionType === 'custom') {\n result.region(CustomRegion.fromJson(region));\n }\n return result;\n }\n}\n\n/**\n * Flip keys and values for given object\n * @param obj\n */\nfunction objectFlip(obj) {\n const result = {};\n Object.keys(obj).forEach((key) => {\n result[obj[key]] = key;\n });\n return result;\n}\n\n/**\n * This file is for internal constants only.\n * It is not intended for public use and is not part of the public API\n */\nconst ACTION_TYPE_TO_CROP_MODE_MAP = {\n limitFit: 'limit',\n limitFill: 'lfill',\n minimumFit: 'mfit',\n thumbnail: 'thumb',\n limitPad: 'lpad',\n minimumPad: 'mpad'\n};\nconst ACTION_TYPE_TO_DELIVERY_MODE_MAP = {\n colorSpace: 'cs',\n dpr: 'dpr',\n density: 'dn',\n defaultImage: 'd',\n format: 'f',\n quality: 'q'\n};\nconst ACTION_TYPE_TO_EFFECT_MODE_MAP = {\n redEye: 'redeye',\n advancedRedEye: 'adv_redeye',\n oilPaint: 'oil_paint',\n unsharpMask: 'unsharp_mask',\n makeTransparent: 'make_transparent',\n generativeRestore: 'gen_restore',\n upscale: 'upscale'\n};\nconst ACTION_TYPE_TO_QUALITY_MODE_MAP = {\n autoBest: 'auto:best',\n autoEco: 'auto:eco',\n autoGood: 'auto:good',\n autoLow: 'auto:low',\n jpegminiHigh: 'jpegmini:1',\n jpegminiMedium: 'jpegmini:2',\n jpegminiBest: 'jpegmini:0'\n};\nconst ACTION_TYPE_TO_STREAMING_PROFILE_MODE_MAP = {\n fullHd: 'full_hd',\n fullHdWifi: 'full_hd_wifi',\n fullHdLean: 'full_hd_lean',\n hdLean: 'hd_lean'\n};\nconst CHROMA_VALUE_TO_CHROMA_MODEL_ENUM = {\n 444: \"CHROMA_444\",\n 420: \"CHROMA_420\"\n};\nconst COLOR_SPACE_MODEL_MODE_TO_COLOR_SPACE_MODE_MAP = {\n 'noCmyk': 'no_cmyk',\n 'keepCmyk': 'keep_cmyk',\n 'tinySrgb': 'tinysrgb',\n 'srgbTrueColor': 'srgb:truecolor'\n};\nconst CHROMA_MODEL_ENUM_TO_CHROMA_VALUE = objectFlip(CHROMA_VALUE_TO_CHROMA_MODEL_ENUM);\nobjectFlip(COLOR_SPACE_MODEL_MODE_TO_COLOR_SPACE_MODE_MAP);\nconst CROP_MODE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_CROP_MODE_MAP);\nconst DELIVERY_MODE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_DELIVERY_MODE_MAP);\nconst EFFECT_MODE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_EFFECT_MODE_MAP);\nobjectFlip(ACTION_TYPE_TO_QUALITY_MODE_MAP);\nobjectFlip(ACTION_TYPE_TO_STREAMING_PROFILE_MODE_MAP);\n\n/**\n * @description A class that defines a simple effect of the type e_{effectName}\n * @extends SDK.Action\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass SimpleEffectAction extends Action {\n constructor(effectType, level) {\n super();\n this._actionModel = {};\n this._actionModel.actionType = EFFECT_MODE_TO_ACTION_TYPE_MAP[effectType] || effectType;\n const qualifierEffect = this.createEffectQualifier(effectType, level);\n this.addQualifier(qualifierEffect);\n }\n createEffectQualifier(effectType, level) {\n let qualifierValue;\n if (level) {\n qualifierValue = new QualifierValue([effectType, `${level}`]).setDelimiter(':');\n }\n else {\n qualifierValue = new QualifierValue(effectType);\n }\n return new Qualifier('e', qualifierValue);\n }\n static fromJson(actionModel) {\n const { actionType, level, strength } = actionModel;\n const effectType = ACTION_TYPE_TO_EFFECT_MODE_MAP[actionType] || actionType;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n // @ts-ignore\n const result = new this(effectType, level ? level : strength);\n return result;\n }\n}\n\n/**\n * @description A base class for effects with a level, the extending class needs to implement a method that calls setLevel()\n * @extends {Actions.Effect.SimpleEffectAction}\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass LeveledEffectAction extends SimpleEffectAction {\n constructor(effectType, level) {\n super(effectType, level);\n this.LEVEL_NAME = 'level';\n this._actionModel = {};\n this.effectType = effectType;\n this._actionModel.actionType = EFFECT_MODE_TO_ACTION_TYPE_MAP[effectType] || effectType;\n if (level) {\n this.setLevel(level);\n }\n }\n /**\n *\n * @description Sets the effect level for the action\n * @param {string | number} level - The strength of the effect\n * @protected\n */\n setLevel(level) {\n this._actionModel[this.LEVEL_NAME] = level;\n const qualifierEffect = this.createEffectQualifier(this.effectType, level);\n this.addQualifier(qualifierEffect);\n return this;\n }\n}\n\n/**\n * Returns RGB or Color\n * @private\n * @param color\n */\nfunction prepareColor(color) {\n if (color) {\n return color.match(/^#/) ? `rgb:${color.substr(1)}` : color;\n }\n else {\n return color;\n }\n}\n\n/**\n * @description Vectorizes the image.\n * @extends SDK.Action\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass VectorizeEffectAction extends Action {\n constructor() {\n super();\n this._actionModel = {};\n this._actionModel.actionType = 'vectorize';\n }\n /**\n * @description The number of colors. (Range: 2 to 30, Server default: 10)\n * @param {number | string} num\n * @return {this}\n */\n numOfColors(num) {\n this._actionModel.numOfColors = num;\n this._numOfColors = num;\n return this;\n }\n /**\n * @description The level of detail. Specify either a percentage of the original image (Range: 0.0 to 1.0) or an absolute number of pixels (Range: 0 to 1000). (Server default: 300)\n * @param {number | string} num\n * @return {this}\n */\n detailsLevel(num) {\n this._actionModel.detailLevel = num;\n this._detailsLevel = num;\n return this;\n }\n /**\n * @description The size of speckles to suppress. Specify either a percentage of the original image (Range: 0.0 to 1.0) or an absolute number of pixels (Range: 0 to 100, Server default: 2)\n * @param {number | string} num\n * @return {this}\n */\n despeckleLevel(num) {\n this._actionModel.despeckleLevel = num;\n this._despeckleLevel = num;\n return this;\n }\n /**\n * @description The corner threshold. Specify 100 for no smoothing (polygon corners), 0 for completely smooth corners. (Range: 0 to 100, Default: 25)\n * @param {number | string} num\n * @return {this}\n */\n cornersLevel(num) {\n this._actionModel.cornersLevel = num;\n this._cornersLevel = num;\n return this;\n }\n /**\n * @description The optimization value. Specify 100 for least optimization and the largest file. (Range: 0 to 100, Server default: 100).\n * @param {number} num\n * @return {this}\n */\n paths(num) {\n this._actionModel.paths = num;\n this._paths = num;\n return this;\n }\n prepareQualifiers() {\n let str = 'vectorize';\n if (this._numOfColors) {\n str += `:${new QualifierValue(`colors:${this._numOfColors}`).toString()}`;\n }\n if (this._detailsLevel) {\n str += `:${new QualifierValue(`detail:${this._detailsLevel}`).toString()}`;\n }\n if (this._despeckleLevel) {\n str += `:${new QualifierValue(`despeckle:${this._despeckleLevel}`).toString()}`;\n }\n if (this._paths) {\n str += `:${new QualifierValue(`paths:${this._paths}`).toString()}`;\n }\n if (this._cornersLevel) {\n str += `:${new QualifierValue(`corners:${this._cornersLevel}`).toString()}`;\n }\n this.addQualifier(new Qualifier('e', str));\n }\n static fromJson(actionModel) {\n const { actionType, paths, cornersLevel, despeckleLevel, detailLevel, numOfColors } = actionModel;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this();\n paths && result.paths(paths);\n cornersLevel && result.cornersLevel(cornersLevel);\n despeckleLevel && result.despeckleLevel(despeckleLevel);\n detailLevel && result.detailsLevel(detailLevel);\n numOfColors && result.numOfColors(numOfColors);\n return result;\n }\n}\n\n/**\n * @description A class that provides a built in level() method that sets the level of the effect\n * @extends {Actions.Effect.LeveledEffectAction}\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass EffectActionWithLevel extends LeveledEffectAction {\n level(value) {\n this._actionModel.level = value;\n return this.setLevel(value);\n }\n}\n\n/**\n * @description Applies stripes to the image to help people with common color-blind conditions to differentiate between colors that are similar for them.\n * You can replace colors using the xray() method.\n * @extends SDK.Action\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass AssistColorBlindEffectAction extends Action {\n constructor() {\n super();\n this._actionModel = {};\n this._actionModel.actionType = 'assistColorblind';\n this.addQualifier(new Qualifier('e', new QualifierValue('assist_colorblind')));\n }\n /**\n * @description Replaces problematic colors with colors that are easier to differentiate.\n * @return {this}\n */\n xray() {\n this._actionModel.type = 'xray';\n return this.addQualifier(new Qualifier('e', new QualifierValue(['assist_colorblind', 'xray']).setDelimiter(':')));\n }\n /**\n * @description Applies stripes of the specified intensity to help people with common color blind conditions to differentiate between colors that are similar for them.\n * @param {number | string} strength The intensity of the stripes. (Range: 1 to 100, Server default: 10)\n * @return {this}\n */\n stripesStrength(strength) {\n this._actionModel.type = 'stripes';\n this._actionModel.stripesStrength = strength;\n return this.addQualifier(new Qualifier('e', new QualifierValue(['assist_colorblind', strength]).setDelimiter(':')));\n }\n static fromJson(actionModel) {\n const { actionType, type, stripesStrength } = actionModel;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this();\n if (type === 'xray') {\n result.xray();\n }\n if (type === 'stripes') {\n stripesStrength && result.stripesStrength(stripesStrength);\n }\n return result;\n }\n}\n\n/**\n * @description Applies a colorizing filter to the asset, use the methods in the class to adjust the filter\n * @extends EffectActionWithLevel\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass ColorizeEffectAction extends EffectActionWithLevel {\n /**\n * @description The color to use for colorization. Specify HTML name or RGB hex code. (Server default: gray)\n * @param {string} color HTML name(red, green, etc.) or RGB hex code. (Server default: gray)\n * @return {this}\n */\n color(color) {\n this._actionModel.color = color;\n return this.addQualifier(new Qualifier('co', new QualifierValue(prepareColor(color))));\n }\n static fromJson(actionModel) {\n const { actionType, level, color } = actionModel;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this(actionType, level);\n color && result.color(color);\n return result;\n }\n}\n\n/**\n * @description The Action class of the pixelate Builder\n * @extends SDK.Action\n * @memberOf Actions.Effect\n * @see Visit {@link Actions.Effect|Effect} for an example\n */\nclass Pixelate extends Action {\n constructor(squareSize) {\n super();\n this._actionModel = {};\n this._squareSize = squareSize;\n this._actionModel.actionType = 'pixelate';\n this._actionModel.squareSize = squareSize;\n }\n /**\n * @description Specifies the region to piexlate.\n * @param {NamedRegion} pixelateRegion\n */\n region(pixelateRegion) {\n this._region = pixelateRegion;\n this._actionModel.region = { regionType: this._region.regionType };\n return this;\n }\n /**\n * @description Sets the squareSize of the pixelate effect.\n * @param {number | string} squareSize\n */\n squareSize(squareSize) {\n this._squareSize = squareSize;\n this._actionModel.squareSize = squareSize;\n return this;\n }\n prepareQualifiers() {\n /*\n * pixelate with region is a unique object in this codebase.\n * On top of pixelate being an Action with Qualifiers,\n * it also accepts a Qualifier called Region.\n *\n * This Qualifier is in itself composite of qualifiers (such as height, or width).\n * The existence of Region changes the output of pixelate in non traditional ways\n * which forced this relatively ad-hoc implementation.\n *\n * Aside from all of that, all of the Qualifiers in the component should be alphabetized\n * This happens naturally in the Action class,\n * however since we're dealing with two levels of qualifiers (pixelate and Region),\n * these need to be merged.\n *\n * This function will merge the Region qualifiers with pixelate\n * and add all needed implicit qualifiers (like g_ocr_text).\n * We're not using the full Gravity Qualifier here to prevent the code import for such a simplistic case\n */\n const str = this._squareSize ? `:${this._squareSize}` : '';\n if ('_region' in this) {\n const qualifiers = this._region.qualifiers;\n // Copy qualifiers from the region \"action\" to the pixelate action\n qualifiers.forEach((q) => this.addQualifier(q));\n if (this._region.regionType === 'custom') {\n this.addQualifier(new Qualifier('e', `pixelate_region${str}`));\n }\n if (this._region.regionType === 'ocr_text') {\n this.addQualifier(new Qualifier('e', `pixelate_region${str}`));\n this.addQualifier(new Qualifier('g', `ocr_text`));\n }\n if (this._region.regionType === 'faces') {\n this.addQualifier(new Qualifier('e', `pixelate_faces${str}`));\n }\n }\n else {\n this.addQualifier(new Qualifier('e', `pixelate${str}`));\n }\n }\n static fromJson(actionModel) {\n const { region, squareSize } = actionModel;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this(squareSize);\n squareSize && result.squareSize(squareSize);\n if (region && region.regionType === 'faces') {\n result.region(faces());\n }\n if (region && region.regionType === 'custom') {\n result.region(custom());\n }\n return result;\n }\n}\n\n/**\n * @summary action\n * @description Applies a blurring filter to the asset.\n * @memberOf Actions.Effect\n * @param {number} blurLevel The strength of the blur. (Range: 1 to 2000, Server default: 100)\n * @return {Actions.Effect.BlurAction}\n */\nfunction blur(blurLevel) {\n return new BlurAction(blurLevel);\n}\n/**\n * @summary action\n * @description Converts the image to gray-scale (multiple shades of gray).\n * @memberOf Actions.Effect\n * @return {Actions.Effect.SimpleEffectAction}\n */\nfunction grayscale() {\n return new SimpleEffectAction(\"grayscale\");\n}\n/**\n * @summary action\n * @description Applies a colorizing filter to the asset.\n * @memberOf Actions.Effect\n * @param {number} colorizeLevel The strength of the color. (Range: 0 to 100, Server default: 100)\n * @return {Actions.Effect.ColorizeEffectAction}\n */\nfunction colorize(colorizeLevel) {\n return new ColorizeEffectAction(\"colorize\", colorizeLevel);\n}\n/**\n * @summary action\n * @description\n * Vectorizes the image.\n * Notes:\n * To deliver the image as a vector image, make sure to change the format (or URL extension) to a vector format, such as SVG.</br>\n * However, you can also deliver in a raster format if you just want to get the 'vectorized' graphic effect.</br>\n * Large images are scaled down to 1000 pixels in the largest dimension before vectorization.\n *\n * @memberOf Actions.Effect\n * @return {Actions.Effect.VectorizeEffectAction}\n */\nfunction vectorize() {\n return new VectorizeEffectAction();\n}\n/**\n * @summary action\n * @description\n * Applies stripes to the image to help people with common color-blind conditions to differentiate between colors that are similar for them.</br>\n * You can replace colors using the xRay() method of the \\Cloudinary\\Transformation\\AssistColorBlind class.\n * @memberOf Actions.Effect\n * @return {Actions.Effect.AssistColorBlindEffectAction}\n */\nfunction assistColorBlind() {\n return new AssistColorBlindEffectAction();\n}\n/**\n * @summary action\n * @description Applies a pixelatering filter to the asset.\n * @memberOf Actions.Effect\n * @param {number} squareSize The squareSize in the pixelation. (Range: 1 to 2000, Server default: 100)\n * @return {Actions.Effect.Pixelate}\n */\nfunction pixelate(squareSize) {\n return new Pixelate(squareSize);\n}\n\n/**\n * @extends SDK.Action\n * @description A class for background transformations.\n */\nclass BackgroundColor extends Action {\n constructor(color) {\n super();\n this._actionModel = {};\n this.addQualifier(new Qualifier('b', new QualifierValue(prepareColor(color)).setDelimiter('_')));\n this._actionModel.color = color;\n this._actionModel.actionType = 'backgroundColor';\n }\n static fromJson(actionModel) {\n const { color } = actionModel;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this(color);\n return result;\n }\n}\n\n/**\n * @summary SDK\n * @memberOf SDK\n * @description Defines an action that's a string literal, no validations or manipulations are performed\n */\nclass RawAction {\n constructor(raw) {\n this.raw = raw;\n }\n toString() {\n return this.raw;\n }\n toJson() {\n return { error: createUnsupportedError(`unsupported action ${this.constructor.name}`) };\n }\n}\n\n/**\n * Validates obj is an instance of IErrorObject\n * @param obj\n */\nfunction isErrorObject(obj) {\n const errorObj = obj;\n return ('error' in errorObj) && !!errorObj.error;\n}\n\n/**\n * @description Defines flags that you can use to alter the default transformation behavior.\n * @namespace Flag\n * @memberOf Qualifiers\n */\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description * Allows specifying only either width or height so the value of the second axis remains as is, and is not\n * recalculated to maintain the aspect ratio of the original image.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction ignoreInitialAspectRatio() {\n return new FlagQualifier('ignore_aspect_ratio');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Automatically use lossy compression when delivering animated GIF files.\n *\n * This flag can also be used as a conditional flag for delivering PNG files: it tells Cloudinary to deliver the\n * image in PNG format (as requested) unless there is no transparency channel - in which case deliver in JPEG\n * format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction lossy() {\n return new FlagQualifier('lossy');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description When used with automatic fetch_format (f_auto): ensures that images with a transparency channel will be\n * delivered in PNG format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction preserveTransparency() {\n return new FlagQualifier('preserve_transparency');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Generates a JPG image using the progressive (interlaced) JPG format.\n *\n * This format allows the browser to quickly show a low-quality rendering of the image until the full-quality\n * image is loaded.\n *\n * @param {string} mode? The mode to determine a specific progressive outcome as follows:\n * * semi - A smart optimization of the decoding time, compression level and progressive rendering\n * (less iterations). This is the default mode when using q_auto.\n * * steep - Delivers a preview very quickly, and in a single later phase improves the image to\n * the required resolution.\n * * none - Use this to deliver a non-progressive image. This is the default mode when setting\n * a specific value for quality.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction progressive(mode) {\n return new FlagQualifier('progressive', mode);\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Modifies percentage-based width & height parameters of overlays and underlays (e.g., 1.0) to be relative to the overlaid region\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction regionRelative() {\n return new FlagQualifier('region_relative');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Modifies percentage-based width & height parameters of overlays and underlays (e.g., 1.0) to be relative to the containing image instead of the added layer.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction relative() {\n return new FlagQualifier('relative');\n}\n\n/**\n * @memberOf Qualifiers.Format\n * @extends {SDK.QualifierValue}\n */\nclass FormatQualifier extends QualifierValue {\n constructor(val) {\n super(val);\n this.val = val;\n }\n getValue() {\n return this.val;\n }\n}\n\n/**\n * @description Qualifies the delivery of an asset.\n * @memberOf Actions.Delivery\n * @extends SDK.Action\n */\nclass DeliveryAction extends Action {\n /**\n * @param {string} deliveryKey A generic Delivery Action Key (such as q, f, dn, etc.)\n * @param {string} deliveryType A Format Qualifiers for the action, such as Quality.auto()\n * @param {string} modelProperty internal model property of the action, for example quality uses `level` while dpr uses `density`\n * @see Visit {@link Actions.Delivery|Delivery} for an example\n */\n constructor(deliveryKey, deliveryType, modelProperty) {\n super();\n this._actionModel = {};\n let deliveryTypeValue;\n if (deliveryType instanceof FormatQualifier) {\n deliveryTypeValue = deliveryType.getValue();\n }\n else {\n deliveryTypeValue = deliveryType;\n }\n this._actionModel.actionType = DELIVERY_MODE_TO_ACTION_TYPE_MAP[deliveryKey];\n this._actionModel[modelProperty] = deliveryTypeValue;\n this.addQualifier(new Qualifier(deliveryKey, deliveryType));\n }\n}\n\n/**\n * @description Contains functions to select the mode when using a progressive format.\n * <b>Learn more</b>: {@link https://cloudinary.com/documentation/transformation_reference#fl_progressive|Progressive modes}\n * @memberOf Qualifiers\n * @namespace Progressive\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {format} from \"@cloudinary/url-gen/actions/delivery\";\n * import {jpg} from \"@cloudinary/url-gen/qualifiers/format\";\n * import {steep} from \"@cloudinary/url-gen/qualifiers/progressive\";\n *\n * const yourCldInstance = new Cloudinary({cloud: {cloudName: 'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.delivery(format(jpg()).progressive(steep()))\n */\nclass ProgressiveQualifier extends FlagQualifier {\n constructor(mode) {\n super('progressive', mode);\n }\n}\n\n/**\n * @memberOf Actions.Delivery\n * @extends {Actions.Delivery.DeliveryAction}\n * @see Visit {@link Actions.Delivery|Delivery} for an example\n */\nclass DeliveryFormatAction extends DeliveryAction {\n constructor(deliveryKey, deliveryType) {\n super(deliveryKey, deliveryType, 'formatType');\n }\n /**\n * @description Uses lossy compression when delivering animated GIF files.\n * @return {this}\n */\n lossy() {\n this._actionModel.lossy = true;\n this.addFlag(lossy());\n return this;\n }\n /**\n * @description Uses progressive compression when delivering JPG file format.\n * @return {this}\n */\n progressive(mode) {\n if (mode instanceof ProgressiveQualifier) {\n this._actionModel.progressive = { mode: mode.getFlagValue() };\n this.addFlag(mode);\n }\n else {\n this._actionModel.progressive = { mode: mode };\n this.addFlag(progressive(mode));\n }\n return this;\n }\n /**\n * @description Ensures that images with a transparency channel are delivered in PNG format.\n */\n preserveTransparency() {\n this._actionModel.preserveTransparency = true;\n this.addFlag(preserveTransparency());\n return this;\n }\n static fromJson(actionModel) {\n const { formatType, lossy, progressive, preserveTransparency } = actionModel;\n let result;\n if (formatType) {\n result = new this('f', formatType);\n }\n else {\n result = new this('f');\n }\n if (progressive) {\n if (progressive.mode) {\n result.progressive(progressive.mode);\n }\n else {\n result.progressive();\n }\n }\n lossy && result.lossy();\n preserveTransparency && result.preserveTransparency();\n return result;\n }\n}\n\n/**\n * @summary SDK\n * @description - Defines how to transform an asset\n * @memberOf SDK\n */\nclass Transformation {\n constructor() {\n this.actions = [];\n }\n /**\n * @param {SDK.Action | string} action\n * @return {this}\n */\n addAction(action) {\n let actionToAdd;\n if (typeof action === 'string') {\n if (action.indexOf('/') >= 0) {\n throw 'addAction cannot accept a string with a forward slash in it - /, use .addTransformation() instead';\n }\n else {\n actionToAdd = new RawAction(action);\n }\n }\n else {\n actionToAdd = action;\n }\n this.actions.push(actionToAdd);\n return this;\n }\n /**\n * @description Allows the injection of a raw transformation as a string into the transformation, or a Transformation instance that was previously created\n * @param {string | SDK.Transformation} tx\n * @example\n * import {Transformation} from \"@cloudinary/url-gen\";\n *\n * const transformation = new Transformation();\n * transformation.addTransformation('w_100/w_200/w_300');\n * @return {this}\n */\n addTransformation(tx) {\n if (tx instanceof Transformation) {\n // Concat the new actions into the existing actions\n this.actions = this.actions.concat(tx.actions);\n }\n else {\n this.actions.push(new RawAction(tx));\n }\n return this;\n }\n /**\n * @return {string}\n */\n toString() {\n return this.actions\n .map((action) => {\n return action.toString();\n })\n .filter((a) => a)\n .join('/');\n }\n /**\n * @description Delivers an animated GIF.\n * @param {AnimatedAction} animatedAction\n * @return {this}\n */\n animated(animatedAction) {\n return this.addAction(animatedAction);\n }\n /**\n * @description Adds a border around the image.\n * @param {Border} borderAction\n * @return {this}\n */\n border(borderAction) {\n return this.addAction(borderAction);\n }\n /**\n * @description Adjusts the shape of the delivered image. </br>\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/effects_and_artistic_enhancements#distort|Shape changes and distortion effects}\n * @param {IReshape} reshapeAction\n * @return {this}\n */\n reshape(reshapeAction) {\n return this.addAction(reshapeAction);\n }\n /**\n * @description Resize the asset using provided resize action\n * @param {ResizeSimpleAction} resizeAction\n * @return {this}\n */\n resize(resizeAction) {\n return this.addAction(resizeAction);\n }\n /**\n * @desc An alias to Action Delivery.quality\n * @param {string|number} quality\n * @return {this}\n */\n quality(quality) {\n this.addAction(new DeliveryFormatAction('q', quality));\n return this;\n }\n /**\n * @desc An alias to Action Delivery.format\n * @param {string} format\n * @return {this}\n */\n format(format) {\n this.addAction(new DeliveryFormatAction('f', format));\n return this;\n }\n /**\n * @description Rounds the specified corners of an image.\n * @param roundCornersAction\n * @return {this}\n */\n roundCorners(roundCornersAction) {\n return this.addAction(roundCornersAction);\n }\n /**\n * @description Adds an overlay over the base image.\n * @param {LayerAction} overlayAction\n * @return {this}\n */\n overlay(overlayAction) {\n return this.addAction(overlayAction);\n }\n /**\n * @description Adds an underlay under the base image.\n * @param {LayerAction} underlayAction\n * @return {this}\n */\n underlay(underlayAction) {\n underlayAction.setLayerType('u');\n return this.addAction(underlayAction);\n }\n /**\n * @description Defines an new user variable.\n * @param {VariableAction} variableAction\n * @return {this}\n */\n addVariable(variableAction) {\n return this.addAction(variableAction);\n }\n /**\n * @description Specifies a condition to be met before applying a transformation.\n * @param {ConditionalAction} conditionAction\n * @return {this}\n */\n conditional(conditionAction) {\n return this.addAction(conditionAction);\n }\n /**\n * @description Applies a filter or an effect on an asset.\n * @param {SimpleEffectAction} effectAction\n * @return {this}\n */\n effect(effectAction) {\n return this.addAction(effectAction);\n }\n /**\n * @description Applies adjustment effect on an asset.\n * @param action\n * @return {this}\n */\n adjust(action) {\n return this.addAction(action);\n }\n /**\n * @description Rotates the asset by the given angle.\n * @param {RotateAction} rotateAction\n * @return {this}\n */\n rotate(rotateAction) {\n return this.addAction(rotateAction);\n }\n /**\n * @description Applies a pre-defined named transformation of the given name.\n * @param {NamedTransformation} namedTransformation\n * @return {this}\n */\n namedTransformation(namedTransformation) {\n return this.addAction(namedTransformation);\n }\n /**\n * @description Applies delivery action.\n * @param deliveryAction\n * @return {this}\n */\n delivery(deliveryAction) {\n return this.addAction(deliveryAction);\n }\n /**\n * @description Sets the color of the background.\n * @param {Qualifiers.Color} color\n * @return {this}\n */\n backgroundColor(color) {\n return this.addAction(new BackgroundColor(color));\n }\n /**\n * @description Adds a layer in a Photoshop document.\n * @param action\n * @return {this}\n */\n psdTools(action) {\n return this.addAction(action);\n }\n /**\n * @description Extracts an image or a page using an index, a range, or a name from a layered media asset.\n * @param action\n * @return {this}\n */\n extract(action) {\n return this.addAction(action);\n }\n /**\n * @description Adds a flag as a separate action.\n * @param {Qualifiers.Flag | string} flagQualifier\n * @return {this}\n */\n addFlag(flagQualifier) {\n const action = new Action();\n let flagToAdd = flagQualifier;\n if (typeof flagQualifier === 'string') {\n flagToAdd = new FlagQualifier(flagQualifier);\n }\n action.addQualifier(flagToAdd);\n return this.addAction(action);\n }\n /**\n * @description Inject a custom function into the image transformation pipeline.\n * @return {this}\n */\n customFunction(customFunction) {\n return this.addAction(customFunction);\n }\n /**\n * Transcodes the video (or audio) to another format.\n * @param {Action} action\n * @return {this}\n */\n transcode(action) {\n return this.addAction(action);\n }\n /**\n * Applies the specified video edit action.\n *\n * @param {videoEditType} action\n * @return {this}\n */\n videoEdit(action) {\n return this.addAction(action);\n }\n toJson() {\n const actions = [];\n for (const action of this.actions) {\n const json = action.toJson();\n if (isErrorObject(json)) {\n // Fail early and return an IErrorObject\n return json;\n }\n actions.push(json);\n }\n return { actions };\n }\n}\n\n/**\n * @description\n * Returns a string representing the float value of the input, if the input was a number-like.\n * Examples:\n * - '1.0' -> '1.0'\n * - 1 -> '1.0'\n * - '5' -> '5.0'\n * - 'auto' -> 'auto'\n * @private\n * @param {string|number} value\n * @return {string}\n */\nfunction toFloatAsString(value) {\n // Turn the input to string\n // The Function will return `returnValue` value if the input is not a number-like expression\n const returnValue = value.toString();\n // if the string contains letters, return the input\n if (returnValue.match(/[A-Z]/gi)) {\n return returnValue;\n }\n // If the leading digit is 0, and we have more than 1 digit, it's not a number.\n // 00, 00000, 0x15 etc.\n if (returnValue.length > 1 && returnValue[0] === '0') {\n return returnValue;\n }\n // Final sanity check, parse the number as a float and check if its NaN\n const isNumberLike = !isNaN(parseFloat(returnValue)) && returnValue.indexOf(':') === -1;\n // If it's a number-like, but the input does not contain a decimal - add it.\n if (isNumberLike && returnValue.indexOf('.') === -1) {\n return `${returnValue}.0`;\n }\n else {\n // If the input already contains a decimal, just return the value\n return returnValue;\n }\n}\n\n/**\n * @memberOf Qualifiers.AspectRatio\n * @extends {SDK.QualifierValue}\n */\nclass AspectRatioQualifierValue extends QualifierValue {\n}\n\n/**\n * @description Defines a resize using width and height.\n * @extends SDK.Action\n * @memberOf Actions.Resize\n * @see Visit {@link Actions.Resize| Resize} for examples\n */\nclass ResizeSimpleAction extends Action {\n /**\n * @param {string} cropType\n * @param {number | string} cropWidth The required width of a transformed asset.\n * @param {number | string} cropHeight The required height of a transformed asset.\n */\n constructor(cropType, cropWidth, cropHeight) {\n super();\n this._actionModel = { dimensions: {} };\n this._actionModel.actionType = CROP_MODE_TO_ACTION_TYPE_MAP[cropType] || cropType;\n this.addQualifier(new Qualifier('c', cropType));\n cropWidth && this.width(cropWidth);\n cropHeight && this.height(cropHeight);\n }\n /**\n * @description Sets the height of the resize\n * @param {string | number} x The height in pixels (if an integer is specified) or as a percentage (if a float is specified).\n */\n height(x) {\n this._actionModel.dimensions.height = x;\n return this.addQualifier(new Qualifier('h', x));\n }\n /**\n * @description Sets the width of the resize\n * @param {string | number} x The width in pixels (if an integer is specified) or as a percentage (if a float is specified).\n */\n width(x) {\n this._actionModel.dimensions.width = x;\n return this.addQualifier(new Qualifier('w', x));\n }\n /**\n * @description Sets the aspect ratio of the asset.\n * For a list of supported types see {@link Qualifiers.AspectRatio|\n * AspectRatio values}\n * @param {AspectRatioType|number|string} ratio The new aspect ratio, specified as a percentage or ratio.\n * @return {this}\n */\n aspectRatio(ratio) {\n // toFloatAsString is used to ensure 1 turns into 1.0\n if (ratio instanceof AspectRatioQualifierValue) {\n this._actionModel.dimensions.aspectRatio = `${ratio}`;\n return this.addQualifier(new Qualifier('ar', ratio));\n }\n if (typeof ratio === 'number' || typeof ratio === 'string') {\n this._actionModel.dimensions.aspectRatio = toFloatAsString(ratio);\n return this.addQualifier(new Qualifier('ar', toFloatAsString(ratio)));\n }\n if (ratio instanceof FlagQualifier) {\n this._actionModel.dimensions.aspectRatio = `${ratio.qualifierValue}`;\n return this.addFlag(ratio);\n }\n }\n /**\n * @description Modifies percentage-based width & height parameters of overlays and underlays (e.g., 1.0) to be relative to the containing image instead of the added layer.\n * @return {this}\n */\n relative() {\n this._actionModel.relative = true;\n return this.addFlag(relative());\n }\n /**\n * @description Modifies percentage-based width & height parameters of overlays and underlays (e.g., 1.0) to be relative to the overlaid region\n * @return {this}\n */\n regionRelative() {\n this._actionModel.regionRelative = true;\n return this.addFlag(regionRelative());\n }\n static fromJson(actionModel) {\n const { actionType, dimensions, relative, regionRelative } = actionModel;\n const { aspectRatio, width, height } = dimensions;\n const cropMode = ACTION_TYPE_TO_CROP_MODE_MAP[actionType] || actionType;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this(cropMode, width, height);\n aspectRatio && result.aspectRatio(aspectRatio === 'ignore_aspect_ratio' ? ignoreInitialAspectRatio() : aspectRatio);\n relative && result.relative();\n regionRelative && result.regionRelative();\n return result;\n }\n}\n\n/**\n * @memberOf Gravity.GravityQualifier\n * @extends {SDK.Qualifier}\n */\nclass GravityQualifier extends Qualifier {\n /**\n * @param value, an array containing (GravityObject | AutoGravity | string) or a string;\n */\n constructor(value) {\n super('g', new QualifierValue(value));\n }\n}\n\n/**\n * @description The class for the autoGravity builder\n * @memberOf Qualifiers.Gravity\n * @extends {Qualifiers.Gravity.GravityQualifier}\n */\nclass AutoGravity extends GravityQualifier {\n constructor() {\n // Required due to https://github.com/microsoft/TypeScript/issues/13029\n /* istanbul ignore next */\n super('auto');\n }\n /**\n * @description Autofocuses on objects, allowing their priority within the algorithm to be configured.\n * @param {AutoFocus} AutoFocusObjects\n */\n autoFocus(...AutoFocusObjects) {\n this.addValue(AutoFocusObjects);\n return this;\n }\n}\n\n/**\n * @description The class for the FocusOn builder\n * @memberOf Qualifiers.Gravity\n * @extends {Qualifiers.Gravity.GravityQualifier}\n */\nclass FocusOnGravity extends GravityQualifier {\n constructor(FocusOnObjects) {\n // Required due to https://github.com/microsoft/TypeScript/issues/13029\n /* istanbul ignore next */\n super(FocusOnObjects);\n }\n /**\n * @description Specifies the gravity to use if none of the other gravity objects are found.\n * @param {Qualifiers.Gravity.AutoGravity} val\n */\n fallbackGravity(val) {\n /*\n * FocusOnGravity(this) is already a qualifier, with a key and a value g_{obj1}\n * fallBackGravity also attempts to add a value, to reach the result of g_{obj1}:auto:{obj2}\n * Since AutoGravity is a Qualifier, it also comes with its own g_ key, which needs to be removed.\n * To solve it, we take only the value from the qualifier, instead of the whole thing\n */\n this.addValue(val.qualifierValue);\n return this;\n }\n}\n\n/**\n * @description The class for the CompassGravity builder\n * @memberOf Qualifiers.Gravity\n * @extends {Qualifiers.Gravity.GravityQualifier}\n */\nclass CompassGravity extends GravityQualifier {\n constructor(dir) {\n // Required due to https://github.com/microsoft/TypeScript/issues/13029\n /* istanbul ignore next */\n super(dir);\n }\n}\n\n/**\n * @description Defines the gravity based on directional values from a compass.\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/resizing_and_cropping#control_gravity|Control gravity for images}\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/video_resizing_and_cropping#control_gravity|Control gravity for videos}\n * @param {Qualifiers.Compass | string} direction A compass Values\n * @memberOf Qualifiers.Gravity\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {compass} from \"@cloudinary/url-gen/qualifiers/gravity\";\n * import {north} from \"@cloudinary/url-gen/qualifiers/compass\";\n * import {crop} from \"@cloudinary/url-gen/actions/resize\";\n *\n * const yourCldInstance = new Cloudinary({cloud: {cloudName: 'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.resize(crop().width(300).gravity(compass(north())))\n * @return {CompassGravity}\n */\nfunction compass(direction) {\n return new CompassGravity(direction);\n}\n/**\n * @summary qualifier\n * @description Specifies what to focus on, for example: faces, objects, eyes, etc.\n * @param {...Qualifier.FocusOn} args One or more objects to focus on\n * @memberOf Qualifiers.Gravity\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {focusOn} from \"@cloudinary/url-gen/qualifiers/gravity\";\n * import {crop} from \"@cloudinary/url-gen/actions/resize\";\n * import {cat} from \"@cloudinary/url-gen/qualifiers/focusOn\";\n *\n * const yourCldInstance = new Cloudinary({cloud: {cloudName: 'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.resize(crop().width(300).gravity(focusOn(cat())))\n * @return {FocusOnGravity}\n */\nfunction focusOn(...args) {\n const res = [...args];\n return new FocusOnGravity(res);\n}\n/**\n * @summary qualifier\n * @description Automatically identifies the most interesting regions in the asset, can be qualified further by including what to focus on.\n * @memberOf Qualifiers.Gravity\n * @return {Qualifiers.Gravity.AutoGravity}\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {autoGravity} from \"@cloudinary/url-gen/qualifiers/gravity\";\n * import {crop} from \"@cloudinary/url-gen/actions/resize\";\n *\n * const yourCldInstance = new Cloudinary({cloud: {cloudName: 'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.resize(crop().width(300).gravity(autoGravity()))\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {autoGravity} from \"@cloudinary/url-gen/qualifiers/gravity\";\n * import {crop} from \"@cloudinary/url-gen/actions/resize\";\n * import {cat} from \"@cloudinary/url-gen/qualifiers/focusOn\";\n * import {AutoFocus} from \"@cloudinary/url-gen/qualifiers/autoFocus\";\n *\n * const yourCldInstance = new Cloudinary({cloud: {cloudName: 'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.resize(crop().width(300).gravity(autoGravity().autoFocus(AutoFocus.focusOn(cat()))))\n */\nfunction autoGravity() {\n return new AutoGravity();\n}\n\n/**\n * @memberOf Qualifiers.FocusOn\n * @extends {SDK.QualifierValue}\n */\nclass FocusOnValue extends QualifierValue {\n constructor(name) {\n super();\n this.name = name;\n }\n toString() {\n return this.name;\n }\n}\n\n/**\n * @summary qualifier\n * @memberOf Qualifiers.FocusOn\n * @description Detect all text elements in an image using the {@link https://cloudinary.com/documentation/ocr_text_detection_and_extraction_addon|OCR Text Detection and Extraction add-on} and use the detected bounding box coordinates as the basis of the transformation.\n * @return {Qualifiers.FocusOn.FocusOnValue} FocusOnValue\n */\nfunction ocr() {\n return new FocusOnValue('ocr_text');\n}\n\n/**\n * true if gravity starts with 'auto' or 'auto:'\n * @param gravity\n */\nfunction isIAutoGravityString(gravity) {\n return gravity && `${gravity}`.split(':')[0] === 'auto';\n}\n/**\n * Validate that given val is an ICompassGravity\n * @param gravity\n */\nfunction isCompassGravity(gravity) {\n //const gravityString = `${(typeof gravity === \"string\" ? gravity : gravity.qualifierValue)}`;\n const gravityValue = getGravityValue(gravity);\n return ['north', 'center', 'east', 'west', 'south', 'north_west', 'south_east', 'south_west', 'north_east'].includes(gravityValue);\n}\n/**\n * Get the value of given gravity\n * @param gravity\n */\nfunction getGravityValue(gravity) {\n return `${gravity}`.replace('g_', '');\n}\n/**\n * Creates a compassGravity model\n * @param gravity\n */\nfunction createCompassGravityModel(gravity) {\n return {\n compass: getGravityValue(gravity),\n gravityType: 'direction'\n };\n}\n/**\n * Validate that given gravity is an instance of ocr gravity\n * @param gravity\n */\nfunction isOcrGravity(gravity) {\n return getGravityValue(gravity) === 'ocr_text';\n}\n/**\n * Creates an ocr gravity model\n */\nfunction createOcrGravityModel() {\n return {\n gravityType: 'ocr'\n };\n}\n/**\n * Validate that given gravity is an instance of AutoGravity\n * @param gravity\n */\nfunction isAutoGravity(gravity) {\n return `${gravity.qualifierValue}`.split(':')[0] === 'auto';\n}\n/**\n * Create an instance of IAutoGravityObjectModel\n * @param gravity\n */\nfunction createIAutoFocusObject(gravity) {\n const gravityString = gravity.toString();\n const values = gravityString.split('_');\n const result = {\n object: values[0]\n };\n if (values.length > 1) {\n if (values[1] === 'avoid') {\n result.avoid = true;\n }\n else {\n result.weight = +values[1];\n }\n }\n return result;\n}\n/**\n * Creates an auto gravity model from given AutoGravity\n * @param gravity\n */\nfunction createAutoGravityModel(gravity) {\n let values;\n const gravityQualifier = gravity === 'auto' ? new AutoGravity() : gravity;\n if (`${gravity}`.startsWith('auto:')) {\n values = `${gravity}`.split(':').filter((v) => v !== 'auto');\n }\n else {\n values = gravityQualifier.qualifierValue.values.filter((v) => v !== 'auto');\n }\n const autoFocus = values.map(createIAutoFocusObject);\n return {\n gravityType: 'auto',\n autoFocus\n };\n}\n/**\n * Create IFocusOnGravityModel from FocusOnGravity\n * @param gravity\n */\nfunction createFocusOnGravityModel(gravity) {\n const hasAutoGravity = `${gravity}`.split(':').includes('auto');\n const values = gravity.qualifierValue.values;\n const focusOnValues = hasAutoGravity ? values.slice(0, values.length - 1) : values;\n const result = {\n gravityType: 'object',\n focusOnObjects: focusOnValues.map((v) => `${v}`)\n };\n if (hasAutoGravity) {\n // Remove the first 'auto' value by slicing it, because it's added by autoGravity()\n const autoFocusObjects = values[values.length - 1].values.slice(1);\n const autoGravityInstance = autoGravity().autoFocus(...autoFocusObjects);\n result.fallbackGravity = createAutoGravityModel(autoGravityInstance);\n }\n return result;\n}\n/**\n * Creates a FocusOnGravity from given string\n * @param gravity\n */\nfunction createFocusOnGravity(gravity) {\n const values = gravity.split(':');\n const focusOnValues = values.map((g) => new FocusOnValue(g));\n return new FocusOnGravity(focusOnValues);\n}\n/**\n * Create a model of given gravity\n * @param gravity\n */\nfunction createGravityModel(gravity) {\n if (isCompassGravity(gravity)) {\n return createCompassGravityModel(gravity);\n }\n if (isOcrGravity(gravity)) {\n return createOcrGravityModel();\n }\n if (isIAutoGravityString(gravity) || isAutoGravity(gravity)) {\n return createAutoGravityModel(gravity);\n }\n return createFocusOnGravityModel(typeof gravity === 'string' ? createFocusOnGravity(gravity) : gravity);\n}\n\n/**\n * @summary qualifier\n * @namespace AutoFocus\n * @memberOf Qualifiers\n * @see Visit {@link Qualifiers.Gravity|Gravity} for an example\n */\n/**\n * @memberOf Qualifiers.AutoFocus\n * @extends {SDK.QualifierValue}\n * @see Visit {@link Qualifiers.Gravity|Gravity} for an example\n */\nclass AutoFocus extends QualifierValue {\n constructor(focusOn, weight) {\n super();\n this._weight = weight;\n this.focusOn = focusOn;\n this.shouldAvoid = false;\n }\n /**\n * @summary qualifier\n * @description Specifies the object to focus on automatically\n * Accepts an AutoFocusObject (which is just a wrapper for a FocusOn object, but with extra method: avoid, weight)\n * @param {Qualifiers.FocusOn} obj The object to focus on.\n * @param {number} weight\n */\n static focusOn(obj, weight) {\n return new AutoFocus(obj, weight);\n }\n shouldAddWeight() {\n return typeof this._weight === 'number' || typeof this._weight === 'string' || this.shouldAvoid;\n }\n /**\n * @summary qualifier\n * @desc Get the name of the of the object\n */\n getName() {\n return this.focusOn.name;\n }\n /**\n * @summary qualifier\n * @desc Get the weight for the object\n */\n getWeight() {\n if (this.shouldAvoid) {\n return 'avoid';\n }\n else {\n return this._weight;\n }\n }\n /**\n * @summary qualifier\n * @desc Return the string representation of this QualifierValue\n */\n toString() {\n // Future proofing, in case we'd like to support some custom string in the future, or if data is coming from a DB\n if (this.shouldAddWeight()) {\n return `${this.getName()}_${this.getWeight()}`;\n }\n else {\n return `${this.getName()}`;\n }\n }\n /**\n * @summary qualifier\n * @description Sets the importance level of the object within the automatic gravity algorithm\n * @param {numebr} w The focus weight for the object\n * @return {this}\n */\n weight(w) {\n this._weight = w;\n return this;\n }\n /**\n * @summary qualifier\n * @description Attempts to avoid the detected object in the image\n * @return {this}\n */\n avoid() {\n this.shouldAvoid = true;\n return this;\n }\n}\n\n/**\n * @memberOf Qualifiers.Compass\n * @extends {SDK.QualifierValue}\n */\nclass CompassQualifier extends QualifierValue {\n constructor(val) {\n super();\n this.val = val;\n }\n toString() {\n return this.val;\n }\n}\n\n/**\n * Validates that gravityModel is an ICompassGravityModel\n * @param gravityModel\n */\nfunction isCompassGravityModel(gravityModel) {\n return gravityModel.gravityType === 'direction';\n}\n/**\n * Validates that gravityModel is an IOcrGravityModel\n * @param gravityModel\n */\nfunction isOcrGravityModel(gravityModel) {\n return gravityModel.gravityType === 'ocr';\n}\n/**\n * Validates that gravityModel is an IAutoGravityModel\n * @param gravityModel\n */\nfunction isAutoGravityModel(gravityModel) {\n return gravityModel.gravityType === 'auto';\n}\n/**\n * Create AutoFocus from IAutoGravityObjectModel\n * @param autoGravityObjectModel\n */\nfunction createAutoFocusFromModel(autoGravityObjectModel) {\n const { object, weight, avoid } = autoGravityObjectModel;\n const autoFocus = new AutoFocus(new FocusOnValue(object));\n (weight || weight === 0) && autoFocus.weight(weight);\n avoid && autoFocus.avoid();\n return autoFocus;\n}\n/**\n * Create AutoGravity from IAutoGravityModel\n * @param gravityModel\n */\nfunction createAutoGravityFromModel(gravityModel) {\n const autoFocusModel = gravityModel.autoFocus || [];\n const autoFocus = autoFocusModel.map(createAutoFocusFromModel);\n return autoGravity().autoFocus(...autoFocus);\n}\n/**\n * Create FocusOnGravity from given IFocusOnGravityModel\n * @param gravityModel\n */\nfunction createFocusOnGravityFromModel(gravityModel) {\n const focusOnObjects = (gravityModel.focusOnObjects || []).map((str) => new FocusOnValue(str));\n const result = focusOn(...focusOnObjects);\n if (gravityModel.fallbackGravity) {\n const autoGravity = createAutoGravityFromModel(gravityModel.fallbackGravity);\n result.fallbackGravity(autoGravity);\n }\n return result;\n}\n/**\n * Create gravity instance from given gravity model\n * @param gravityModel\n */\nfunction createGravityFromModel(gravityModel) {\n if (isCompassGravityModel(gravityModel)) {\n return new CompassGravity(new CompassQualifier(gravityModel.compass));\n }\n if (isOcrGravityModel(gravityModel)) {\n return focusOn(ocr());\n }\n if (isAutoGravityModel(gravityModel)) {\n return createAutoGravityFromModel(gravityModel);\n }\n return createFocusOnGravityFromModel(gravityModel);\n}\n\n/**\n * @description Defines an advanced resize.\n * @extends Actions.Resize.ResizeSimpleAction\n * @memberOf Actions.Resize\n * @see Visit {@link Actions.Resize| Resize} for examples\n */\nclass ResizeAdvancedAction extends ResizeSimpleAction {\n /**\n * @description Which part of the original image to include.\n * @param {Qualifiers.Gravity} gravity\n */\n gravity(gravity) {\n this._actionModel.gravity = createGravityModel(gravity);\n const gravityQualifier = typeof gravity === \"string\" ? new Qualifier('g', gravity) : gravity;\n return this.addQualifier(gravityQualifier);\n }\n static fromJson(actionModel) {\n const result = super.fromJson.apply(this, [actionModel]);\n if (actionModel.gravity) {\n result.gravity(createGravityFromModel(actionModel.gravity));\n }\n return result;\n }\n}\n\n/**\n * @description Defines the visual appearance of the background.\n * @memberOf Qualifiers.Background\n * @extends {SDK.Qualifier}\n */\nclass BackgroundQualifier extends Qualifier {\n constructor(backgroundValue) {\n // The qualifier key for this qualifier\n super('b');\n // Such as color (b_red)\n if (backgroundValue) {\n this.addValue(backgroundValue);\n }\n }\n}\n\nconst DEFAULT_INTENSITY = 100;\nconst DEFAULT_BRIGHTNESS = 0;\n/**\n * @description A class for blurred background transformations.\n * @memberOf Qualifiers.Background\n * @extends {Qualifiers.Background.BackgroundQualifier}\n */\nclass BlurredBackgroundAction extends BackgroundQualifier {\n /**\n * @description Sets the intensity of the blur.\n * @param {number} value - The intensity of the blur.\n */\n intensity(value) {\n this.intensityLevel = value;\n return this;\n }\n /**\n * @description Sets the brightness of the background.\n * @param {number} value - The brightness of the background.\n */\n brightness(value) {\n this.brightnessLevel = value;\n return this;\n }\n /**\n * @description\n * Stringify the qualifier\n * BackgroundQualifiers don't have a value, but instead override the toString() function\n */\n toString() {\n // b_blurred:{intensity}:{brightness}\n const intensity = this.intensityLevel !== undefined ? `:${this.intensityLevel}` : '';\n const brightness = this.brightnessLevel !== undefined\n ? this.intensityLevel !== undefined\n ? `:${this.brightnessLevel}`\n : `:${DEFAULT_INTENSITY}:${this.brightnessLevel}`\n : '';\n return `b_blurred${intensity}${brightness}`;\n }\n}\nvar BlurredBackgroundAction$1 = BlurredBackgroundAction;\n\n/**\n * @description Defines the background color to use when resizing with padding.\n * @memberOf Qualifiers.Background\n * @extends {Qualifiers.Background.BackgroundQualifier}\n */\nclass BaseCommonBackground extends BackgroundQualifier {\n constructor() {\n super();\n this._palette = [];\n }\n /**\n * @description Selects the strongest contrasting color to use for padding.\n * @return {this}\n */\n contrast() {\n this._contrast = true;\n return this;\n }\n /**\n * @description Defines the custom colors to use when resizing using content-aware padding.\n * @param {...string} colors One or more colors - Example: palette('green', 'red', blue')\n * @return {this}\n */\n palette(...colors) {\n this._palette = colors.map((color) => {\n return prepareColor(color);\n });\n return this;\n }\n}\n\n/**\n * @description Automatically determines the color to use for padding, if needed when resizing an asset. Selects the\n * predominant color from the border of the image.\n * @memberOf Qualifiers.Background\n * @extends {Qualifiers.Background.BaseCommonBackground}\n */\nclass BackgroundAutoBorderQualifier extends BaseCommonBackground {\n /**\n * @description\n * Stringify the qualifier\n * BackgroundQualifiers don't have a value, but instead override the toString() function.\n */\n toString() {\n return `\n b_auto:border\n ${this._contrast ? '_contrast' : ''}\n ${this._palette.length ? `:palette_${this._palette.join('_')}` : ''}\n `.replace(/\\s+/g, '');\n }\n}\n\n/**\n * @description Defines the gradient fade effect to use for the background when resizing with padding.\n * @memberOf Qualifiers.Background\n * @extends {Qualifiers.Background.BaseCommonBackground}\n */\nclass BaseGradientBackground extends BaseCommonBackground {\n /**\n *\n * @description Sets the number of predominant colors to use (2 or 4).\n * @param {number} num\n * @return {this}\n */\n gradientColors(num) {\n this._gradientColors = num;\n return this;\n }\n /**\n * @description Sets the direction for a background gradient fade effect.\n * @param {Qualifiers.GradientDirection | GradientDirectionType | string} direction Use one of these functions\n * provided by {@link Qualifiers.GradientDirection|GradientDirection}\n * @return {this}\n */\n gradientDirection(direction) {\n this._gradientDirection = direction;\n return this;\n }\n}\n\n/**\n * @description Specifies that the gradient fade effect, used for the background when resizing with padding, uses the\n * predominant colors in the border pixels of the image.\n * @memberOf Qualifiers.Background\n * @extends {Qualifiers.Background.BaseGradientBackground}\n */\nclass BackgroundBorderGradientQualifier extends BaseGradientBackground {\n /**\n * @description\n * Stringify the qualifier\n * BackgroundQualifiers don't have a value, but instead override the toString() function.\n */\n toString() {\n return `\n b_auto:border_gradient\n ${this._contrast ? '_contrast' : ''}\n ${this._gradientColors ? `:${this._gradientColors}` : ''}\n ${this._gradientDirection ? `:${this._gradientDirection}` : ''}\n ${this._palette.length ? `:palette_${this._palette.join('_')}` : ''}\n `.replace(/\\s+/g, '');\n }\n}\n\n/**\n * @description Specifies that the gradient fade effect, used for the background when resizing with padding, uses the\n * predominant colors in the whole of the image.\n * @memberOf Qualifiers.Background\n * @extends {Qualifiers.Background.BaseGradientBackground}\n */\nclass BackgroundPredominantGradientQualifier extends BaseGradientBackground {\n /**\n * @description\n * Stringify the qualifier\n * BackgroundQualifiers don't have a value, but instead override the toString() function.\n */\n toString() {\n return `\n b_auto:predominant_gradient\n ${this._contrast ? '_contrast' : ''}\n ${this._gradientColors ? `:${this._gradientColors}` : ''}\n ${this._gradientDirection ? `:${this._gradientDirection}` : ''}\n ${this._palette.length ? `:palette_${this._palette.join('_')}` : ''}\n `.replace(/\\s+/g, '');\n }\n}\n\n/**\n * @description Automatically determines the color to use for padding, if needed when resizing an asset. Selects the\n * predominant color from the whole image.\n * @memberOf Qualifiers.Background\n * @extends {Qualifiers.Background.BaseCommonBackground}\n */\nclass BackgroundAutoPredominantQualifier extends BaseCommonBackground {\n /**\n * @description\n * Stringify the qualifier\n * BackgroundQualifiers don't have a value, but instead override the toString() function.\n */\n toString() {\n return `\n b_auto:predominant\n ${this._contrast ? '_contrast' : ''}\n ${this._palette.length ? `:palette_${this._palette.join('_')}` : ''}\n `.replace(/\\s+/g, '');\n }\n}\n\n/**\n * @description Automatically fills the padded area using generative AI to extend the image seamlessly.\n * Optionally include a prompt to guide the image generation.\n * @memberOf Qualifiers.Background\n */\nclass BackgroundGenerativeFillQualifier extends BackgroundQualifier {\n constructor() {\n super(\"gen_fill\");\n this._backgroundType = 'generativeFill';\n }\n prompt(prompt) {\n this._prompt = prompt;\n return this;\n }\n getPrompt() {\n return this._prompt;\n }\n getBackgroundType() {\n return this._backgroundType;\n }\n /**\n * @description\n * Override the toString() function to explicitly stringify the qualifier.\n */\n toString() {\n return `b_gen_fill${this._prompt ? `:prompt_${this._prompt}` : ''}`;\n }\n}\n\n/**\n * Get the value of given background\n * @param background\n */\nfunction getBackgroundValue(background) {\n return `${background}`.replace('b_', '');\n}\n/**\n * Create an IAutoBackgroundModel from given background\n */\nfunction createAutoBackgroundModel() {\n return { backgroundType: 'auto' };\n}\n/**\n * Create an IBlurredBackgroundModel from given background\n * @param background\n */\nfunction createBlurredBackgroundModel(background) {\n const { intensityLevel, brightnessLevel } = background;\n const result = {\n backgroundType: 'blurred'\n };\n if (intensityLevel || intensityLevel === 0) {\n result.intensity = intensityLevel;\n }\n if (brightnessLevel || brightnessLevel === 0) {\n result.brightness = brightnessLevel;\n }\n return result;\n}\n/**\n * Create an IContrastPaletteBackgroundModel from given background\n * @param background\n */\nfunction createContrastPaletteBackgroundModel(background) {\n const contrast = background._contrast;\n const palette = background._palette;\n const result = {\n backgroundType: ''\n };\n if (contrast) {\n result.contrast = true;\n }\n if (palette) {\n result.palette = palette;\n }\n return result;\n}\n/**\n * Create an IBorderBackgroundModel from given background\n * @param background\n */\nfunction createBorderBackgroundModel(background) {\n return Object.assign(Object.assign({}, createContrastPaletteBackgroundModel(background)), { backgroundType: 'border' });\n}\n/**\n * Create an IBaseGradientBackgroundModel from given background\n * @param background\n */\nfunction createBaseGradientBackgroundModel(background) {\n const gradientColors = background._gradientColors;\n const gradientDirection = `${background._gradientDirection}`;\n const result = createContrastPaletteBackgroundModel(background);\n if (gradientColors) {\n result.gradientColors = gradientColors;\n }\n if (gradientDirection) {\n result.gradientDirection = gradientDirection;\n }\n return result;\n}\n/**\n * Create an IBorderGradientBackgroundModel from given background\n * @param background\n */\nfunction createBorderGradientBackgroundModel(background) {\n return Object.assign(Object.assign({}, createBaseGradientBackgroundModel(background)), { backgroundType: 'borderGradient' });\n}\n/**\n * Create an IColorBackgroundModel from given background\n * @param background\n */\nfunction createColorBackgroundModel(background) {\n return {\n backgroundType: 'color',\n color: getBackgroundValue(background)\n };\n}\n/**\n * Create an IPredominantBackgroundModel from given background\n * @param background\n */\nfunction createPredominantBackgroundModel(background) {\n return Object.assign(Object.assign({}, createContrastPaletteBackgroundModel(background)), { backgroundType: 'predominant' });\n}\n/**\n * Create an IPredominantGradientBackgroundModel from given background\n * @param background\n */\nfunction createPredominantGradientBackgroundModel(background) {\n return Object.assign(Object.assign({}, createBaseGradientBackgroundModel(background)), { backgroundType: 'predominantGradient' });\n}\n/**\n * Create an IGenerativeFillBackgroundModel from given background\n * @param urlValue\n */\nfunction createGenerativeFillBackgroundModel(background) {\n return Object.assign({ backgroundType: background.getBackgroundType() }, (background.getPrompt() ? { prompt: background.getPrompt() } : {}));\n}\n/**\n * Create an IBackgroundModel from given background\n * @param background\n */\nfunction createBackgroundModel(background) {\n if (getBackgroundValue(background) === 'auto') {\n return createAutoBackgroundModel();\n }\n if (background instanceof BlurredBackgroundAction$1) {\n return createBlurredBackgroundModel(background);\n }\n if (background instanceof BackgroundAutoBorderQualifier) {\n return createBorderBackgroundModel(background);\n }\n if (background instanceof BackgroundBorderGradientQualifier) {\n return createBorderGradientBackgroundModel(background);\n }\n if (background instanceof BackgroundAutoPredominantQualifier) {\n return createPredominantBackgroundModel(background);\n }\n if (background instanceof BackgroundPredominantGradientQualifier) {\n return createPredominantGradientBackgroundModel(background);\n }\n if (background instanceof BackgroundGenerativeFillQualifier) {\n return createGenerativeFillBackgroundModel(background);\n }\n return createColorBackgroundModel(background);\n}\n\n/**\n * @summary qualifier\n * @description Image format svg.\n * @memberOf Qualifiers.Format\n * @return {Qualifiers.Format.FormatQualifier}\n */\nfunction svg() { return new FormatQualifier('svg'); }\n/**\n * @summary qualifier\n * @description Image format auto.\n * @memberOf Qualifiers.Format\n * @return {Qualifiers.Format.FormatQualifier}\n */\nfunction auto$1() { return new FormatQualifier('auto'); }\n\n/**\n * @description Defines the background color to use instead of transparent background areas or when resizing with padding.\n *\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/effects_and_artistic_enhancements#setting_background_color|Setting background for images} | {@link https://cloudinary.com/documentation/video_effects_and_enhancements#background_color|Setting background for videos}\n *\n * @namespace Background\n * @memberOf Qualifiers\n */\n/**\n * @summary qualifier\n * @description Selects the predominant color while taking only the image border pixels into account.\n * @memberOf Qualifiers.Background\n * @return {BackgroundAutoBorderQualifier}\n */\nfunction border() {\n return new BackgroundAutoBorderQualifier();\n}\n/**\n * @summary qualifier\n * @description Automatically determines the color to use for padding, if needed when resizing an asset.\n *\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/effects_and_artistic_enhancements#content_aware_padding|Content-aware padding}\n * @memberOf Qualifiers.Background\n * @return {Qualifiers.Background.BackgroundQualifier}\n */\nfunction auto() {\n return new BackgroundQualifier('auto');\n}\n/**\n * @summary qualifier\n * @description Applies a padding gradient fade effect using the predominant colors in the border of the image.\n * @memberOf Qualifiers.Background\n * @return {BackgroundBorderGradientQualifier}\n */\nfunction borderGradient() {\n return new BackgroundBorderGradientQualifier();\n}\n/**\n * @summary qualifier\n * @description Applies a padding gradient fade effect using the predominant colors in the image.\n * @memberOf Qualifiers.Background\n * @return {BackgroundPredominantGradientQualifier}\n */\nfunction predominantGradient() {\n return new BackgroundPredominantGradientQualifier();\n}\n/**\n * @summary qualifier\n * @description Selects the predominant color while taking all pixels in the image into account\n * @memberOf Qualifiers.Background\n * @return {BackgroundAutoPredominantQualifier}\n */\nfunction predominant() {\n return new BackgroundAutoPredominantQualifier();\n}\n/**\n * @summary qualifier\n * @description Selects the predominant color while taking all pixels in the image into account.\n * @memberOf Qualifiers.Background\n * @return {Qualifiers.Background.BackgroundQualifier}\n */\nfunction color(colorStr) {\n return new BackgroundQualifier(prepareColor(colorStr));\n}\n/**\n * @summary qualifier\n * @description Selects the predominant color while taking all pixels in the image into account.\n * @memberOf Qualifiers.Background\n * @return {BlurredBackgroundAction}\n */\nfunction blurred() {\n return new BlurredBackgroundAction$1();\n}\n/**\n * @summary qualifier\n * @description A qualifier that automatically fills the padded area using generative AI to extend the image seamlessly.\n * @memberOf Qualifiers.Background\n * @return {BackgroundGenerativeFillQualifier}\n */\nfunction generativeFill() {\n return new BackgroundGenerativeFillQualifier();\n}\nconst Background = {\n auto,\n border,\n borderGradient,\n predominantGradient,\n predominant,\n color,\n blurred,\n generativeFill\n};\n\n/**\n * Create BackgroundQualifier from IBlurredBackgroundModel\n * @param backgroundModel\n */\nfunction createBlurredBackground(backgroundModel) {\n const { brightness, intensity } = backgroundModel;\n const result = Background.blurred();\n result.brightness(brightness !== null && brightness !== void 0 ? brightness : DEFAULT_BRIGHTNESS);\n result.intensity(intensity !== null && intensity !== void 0 ? intensity : DEFAULT_INTENSITY);\n return result;\n}\n/**\n * Create a gradientBackground from given model\n * @param background\n * @param backgroundModel\n */\nfunction createGradientBackground(background, backgroundModel) {\n const { gradientColors, gradientDirection, contrast, palette } = backgroundModel;\n if (contrast) {\n background.contrast();\n }\n if (palette) {\n background.palette(...palette);\n }\n if (gradientColors) {\n background.gradientColors(+gradientColors);\n }\n if (gradientDirection) {\n background.gradientDirection(gradientDirection);\n }\n return background;\n}\n/**\n * Crete a background with contrast and palette from given model\n * @param background\n * @param backgroundModel\n */\nfunction createContrastPaletteBackground(background, backgroundModel) {\n const { contrast, palette } = backgroundModel;\n if (contrast) {\n background.contrast();\n }\n if (palette) {\n background.palette(...palette);\n }\n return background;\n}\n/**\n * Create a Generative Fill background from given model\n * @param background\n * @param backgroundModel\n */\nfunction createGenerativeFillBackground(background, backgroundModel) {\n const { prompt } = backgroundModel;\n if (prompt) {\n background.prompt(prompt);\n }\n return background;\n}\n/**\n * Create BackgroundQualifier from IBackgroundModel\n * @param backgroundModel\n */\nfunction createBackgroundFromModel(backgroundModel) {\n const { backgroundType } = backgroundModel;\n switch (backgroundType) {\n case 'auto':\n return auto();\n case 'blurred':\n return createBlurredBackground(backgroundModel);\n case 'border':\n return createContrastPaletteBackground(border(), backgroundModel);\n case 'borderGradient':\n return createGradientBackground(borderGradient(), backgroundModel);\n case 'predominant':\n return createContrastPaletteBackground(predominant(), backgroundModel);\n case 'predominantGradient':\n return createGradientBackground(predominantGradient(), backgroundModel);\n case 'generativeFill':\n return createGenerativeFillBackground(generativeFill(), backgroundModel);\n default:\n return color(backgroundModel.color);\n }\n}\n\n/**\n * @description Defines an advanced resize with padding.\n * @extends Actions.Resize.ResizeAdvancedAction\n * @memberOf Actions.Resize\n * @see Visit {@link Actions.Resize| Resize} for examples\n */\nclass ResizePadAction extends ResizeAdvancedAction {\n /**\n * @description Sets the background.\n * @param {Qualifiers.Background} backgroundQualifier Defines the background color to use instead of\n * transparent background areas or when resizing with padding.\n */\n background(backgroundQualifier) {\n this._actionModel.background = createBackgroundModel(backgroundQualifier);\n return this.addQualifier(backgroundQualifier);\n }\n /**\n * @description Horizontal position for custom-coordinates based padding.\n * @param {number} x The x position.\n */\n offsetX(x) {\n this._actionModel.x = x;\n return this.addQualifier(new Qualifier('x', x));\n }\n /**\n * @description Vertical position for custom-coordinates based padding\n * @param {number} y The y position.\n */\n offsetY(y) {\n this._actionModel.y = y;\n return this.addQualifier(new Qualifier('y', y));\n }\n static fromJson(actionModel) {\n const result = super.fromJson.apply(this, [actionModel]);\n actionModel.background && result.background(createBackgroundFromModel(actionModel.background));\n actionModel.x && result.offsetX(actionModel.x);\n actionModel.y && result.offsetY(actionModel.y);\n actionModel.zoom && result.zoom(actionModel.zoom);\n return result;\n }\n}\n\n/**\n * @description Defines a scaling resize action.\n * @extends Actions.Resize.ResizeSimpleAction\n * @memberOf Actions.Resize\n * @see Visit {@link Actions.Resize| Resize} for examples\n */\nclass ResizeScaleAction extends ResizeSimpleAction {\n /**\n * @description Changes the aspect ratio of an image while retaining all important content and avoiding unnatural\n * distortions.\n * @return {this}\n */\n liquidRescaling() {\n return this.addQualifier(new GravityQualifier('liquid'));\n }\n}\n\n/**\n * @description Defines how to crop an asset\n * @extends Actions.Resize.ResizeAdvancedAction\n * @memberOf Actions.Resize\n * @see Visit {@link Actions.Resize| Resize} for examples\n */\nclass ResizeCropAction extends ResizeAdvancedAction {\n /**\n * @description Horizontal position for custom-coordinates based cropping.\n * @param {number} x The x position.\n */\n x(x) {\n this._actionModel.x = x;\n return this.addQualifier(new Qualifier('x', x));\n }\n /**\n * @description Vertical position for custom-coordinates based cropping\n * @param {number} y The y position.\n */\n y(y) {\n this._actionModel.y = y;\n return this.addQualifier(new Qualifier('y', y));\n }\n /**\n * @description Controls how much of the original image surrounding the face to keep when using either the 'crop' or 'thumb' cropping modes with face detection.\n * @param {number | string} z The zoom factor. (Default: 1.0)\n */\n zoom(z) {\n this._actionModel.zoom = z;\n return this.addQualifier(new Qualifier('z', z));\n }\n static fromJson(actionModel) {\n const result = super.fromJson.apply(this, [actionModel]);\n actionModel.x && result.x(actionModel.x);\n actionModel.y && result.y(actionModel.y);\n actionModel.zoom && result.zoom(actionModel.zoom);\n return result;\n }\n}\n\n/**\n * @description Defines how to crop-fill an asset\n * @extends Actions.Resize.ResizeAdvancedAction\n * @memberOf Actions.Resize\n * @see Visit {@link Actions.Resize| Resize} for examples\n */\nclass ResizeFillAction extends ResizeAdvancedAction {\n /**\n * @description Absolute X position when used with Gravity.xyCenter {@link Qualifiers.Gravity.GravityQualifier}}\n * @param {number} x The x position.\n */\n x(x) {\n this._actionModel.x = x;\n return this.addQualifier(new Qualifier('x', x));\n }\n /**\n * @description Absolute Y position when used with Gravity.xyCenter {@link Qualifiers.Gravity.GravityQualifier}}\n * @param {number} y The y position.\n */\n y(y) {\n this._actionModel.y = y;\n return this.addQualifier(new Qualifier('y', y));\n }\n static fromJson(actionModel) {\n const result = super.fromJson.apply(this, [actionModel]);\n actionModel.x && result.x(actionModel.x);\n actionModel.y && result.y(actionModel.y);\n return result;\n }\n}\n\n/**\n * @description Determines how to crop, scale, and/or zoom the delivered asset according to the requested dimensions.\n * @memberOf Actions\n * @namespace Resize\n * @see Learn more about Gravity and Focus {@link Qualifiers.Gravity| here }\n * @example\n * <caption> <h4>Scaling an image</h4> </caption>\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {scale, fit, pad, crop} from '@cloudinary/url-gen/actions/resize';\n *\n * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});\n * const image = yourCldInstance.image('woman');\n *\n * image.resize( scale(100, 100) );\n * // All resize actions have a similar interface.\n * // image.resize( fit(100, 100)) );\n * // image.resize( pad(100, 100)) );\n * // image.resize( crop(100, 100)) );\n * // However, Some actions have additional arguments exposed as builder methods.\n * // See the documentation for each method for more information\n *\n *\n * // Alternative syntax, using builder methods\n * image.resize(\n * scale()\n * .width(100)\n * .height(100)\n * );\n * image.toString()\n *\n * @example\n * <caption> <h4>Cropping with automatic focus(Gravity)</h4> </caption>\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n *\n * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});\n * const image = yourCldInstance.image('woman');\n *\n * import {scale} from '@cloudinary/url-gen/actions/resize';\n * import {autoGravity} from '@cloudinary/url-gen/qualifiers/gravity';\n *\n * image.resize( crop(100, 100).gravity(autoGravity()) );\n *\n * // Alternative syntax, using builder methods\n * image.resize(\n * scale()\n * .width(100)\n * .height(100)\n * .gravity(autoGravity())\n * );\n * image.toString()\n */\n/**\n * @summary action\n * @description\n * Changes the size of the image exactly to the given width and height without necessarily retaining the original aspect ratio:<br/>\n * all original image parts are visible but might be stretched or shrunk.\n * @memberOf Actions.Resize\n * @param {number|string} width The required width of a transformed asset.\n * @param {number|string} height The required height of a transformed asset.\n * @return {Actions.Resize.ScaleAction}\n */\nfunction scale(width, height) {\n return new ResizeScaleAction('scale', width, height);\n}\n/**\n * @summary action\n * @description Extracts a region of the given width and height out of the original image.\n * @memberOf Actions.Resize\n * @param {number|string} width The required width of a transformed asset.\n * @param {number|string} height The required height of a transformed asset.\n * @return {Actions.Resize.ResizeCropAction}\n */\nfunction crop(width, height) {\n return new ResizeCropAction('crop', width, height);\n}\n/**\n * @summary action\n * @description\n * Creates an image with the exact given width and height without distorting the image.<br/>\n * This option first scales up or down as much as needed to at least fill both of the given dimensions.<br/><br/>\n * If the requested aspect ratio is different than the original, cropping will occur on the dimension that exceeds the requested size after scaling.\n * @memberOf Actions.Resize\n * @param {number|string} width The required width of a transformed asset.\n * @param {number|string} height The required height of a transformed asset.\n * @return {Actions.Resize.ResizeFillAction}\n */\nfunction fill(width, height) {\n return new ResizeFillAction('fill', width, height);\n}\n/**\n * @summary action\n * @description\n * Resizes the asset to fill the given width and height while retaining the original aspect ratio.\n *\n * If the proportions of the original asset do not match the given width and height, padding is added to the asset\n * to reach the required size.\n * @memberOf Actions.Resize\n * @param {number|string} width The required width of a transformed asset.\n * @param {number|string} height The required height of a transformed asset.\n * @return {Actions.Resize.ResizePadAction}\n */\nfunction pad(width, height) {\n return new ResizePadAction('pad', width, height);\n}\n\n/**\n * @description Controls the quality of the delivered image or video.\n * @memberOf Actions.Delivery\n * @extends {Actions.Delivery.DeliveryAction}\n * @see Visit {@link Actions.Delivery|Delivery} for an example\n */\nclass DeliveryQualityAction extends DeliveryAction {\n /**\n * @param {Qualifiers.Quality} qualityValue a Quality value\n */\n constructor(qualityValue) {\n super('q', qualityValue.toString(), 'level');\n }\n /**\n * Selet the Chroma sub sampling</br>\n * <b>Learn more</b>: {@link https://cloudinary.com/documentation/image_optimization#toggle_chroma_subsampling|Toggling chroma subsampling}\n * @param {420 | 444 | number} type The chroma sub sampling type\n */\n chromaSubSampling(type) {\n this._actionModel.chromaSubSampling = CHROMA_VALUE_TO_CHROMA_MODEL_ENUM[type];\n const qualityWithSubSampling = new QualifierValue([this._actionModel.level, type]);\n qualityWithSubSampling.setDelimiter(':');\n // We either have chroma or quantization, but not both\n return this.addQualifier(new Qualifier('q', qualityWithSubSampling));\n }\n /**\n * Controls the final quality by setting a maximum quantization percentage\n * @param {number} val\n */\n quantization(val) {\n this._actionModel.quantization = val;\n const qualityWithQuantization = new QualifierValue([this._actionModel.level, `qmax_${val}`]).setDelimiter(':');\n // We either have chroma or quantization, but not both\n return this.addQualifier(new Qualifier('q', qualityWithQuantization));\n }\n static fromJson(actionModel) {\n const { level, chromaSubSampling, quantization } = actionModel;\n const levelType = ACTION_TYPE_TO_QUALITY_MODE_MAP[level] || level;\n const result = new this(levelType);\n if (chromaSubSampling) {\n //Turn strings like 'CHROMA_420' to 420\n const chromaValue = CHROMA_MODEL_ENUM_TO_CHROMA_VALUE[chromaSubSampling.toUpperCase()];\n chromaValue && result.chromaSubSampling(+chromaValue);\n }\n quantization && result.quantization(quantization);\n return result;\n }\n}\n\n/**\n * @description Defines transformations for delivering your assets without changing the visual or audio experience for the end user.\n * @memberOf Actions\n * @namespace Delivery\n * @example\n * See the examples under every method\n */\n/**\n * @summary action\n * @description Defines the format of the delivered asset.\n *\n * <b>Learn more:</b>\n * {@link https://cloudinary.com/documentation/image_transformations#image_format_support|Image formats}\n * {@link https://cloudinary.com/documentation/video_manipulation_and_delivery#transcoding_video_to_other_formats|Video formats}\n *\n * @memberOf Actions.Delivery\n * @param {string} format The file format. For a list of supported format types see {@link Qualifiers.Format| format types} for\n * possible values\n * @return {Actions.Delivery.DeliveryFormat}\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {format} from \"@cloudinary/url-gen/actions/delivery\";\n *\n * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.delivery(\n * format('jpg'),\n * );\n *\n */\nfunction format(format) {\n return new DeliveryFormatAction('f', format);\n}\n/**\n * @summary action\n * @description Controls the quality of the delivered image or video.\n *\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/image_optimization#how_to_optimize_image_quality|Image quality}\n * {@link https://cloudinary.com/documentation/video_optimization#how_to_optimize_video_quality|Video quality}\n * @memberOf Actions.Delivery\n * @param {QualityTypes | string | number | Qualifiers.Quality} qualityType For a list of supported quality types see\n * {@link Qualifiers.Quality| quality types} for\n * possible values.\n * @return {Actions.Delivery.DeliveryQualityAction}\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {quality} from \"@cloudinary/url-gen/actions/delivery\";\n * import {quality} from \"@cloudinary/url-gen/qualifiers/quantity\";\n *\n * const yourCldInstance = new Cloudinary({cloud:{cloudName:'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.delivery(\n * quality('auto'),\n * );\n */\nfunction quality(qualityType) {\n return new DeliveryQualityAction(qualityType);\n}\n\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Compass\n * @description North east corner (top right).\n * @return {Qualifiers.Compass.CompassQualifier} Compass\n */\nfunction northEast() {\n return new CompassQualifier('north_east');\n}\n\n/**\r\n * Predefined accessibility transformations\r\n * @const {Object} Cloudinary.ACCESSIBILITY_MODES\r\n */\r\nvar ACCESSIBILITY_MODES = {\r\n 'darkmode': colorize(70).color('black'),\r\n 'brightmode': colorize(40).color('white'),\r\n 'monochrome': grayscale(),\r\n 'colorblind': assistColorBlind()\r\n};\r\n/**\r\n * Predefined vectorize placeholder transformation\r\n */\r\nvar VECTORIZE = new Transformation()\r\n .effect(vectorize())\r\n .delivery(quality('auto'))\r\n .delivery(format(svg()));\r\n/**\r\n * Predefined pixelate placeholder transformation\r\n */\r\nvar PIXELATE = new Transformation()\r\n .effect(pixelate())\r\n .delivery(quality('auto'))\r\n .delivery(format(auto$1()));\r\n/**\r\n * Predefined blur placeholder transformation\r\n */\r\nvar BLUR = new Transformation()\r\n .effect(blur(2000))\r\n .delivery(quality('auto'))\r\n .delivery(format(auto$1()));\r\n/**\r\n * Predefined predominant color placeholder transformation\r\n */\r\nvar PREDOMINANT_COLOR_TRANSFORM = new Transformation()\r\n .resize(pad('iw_div_2').aspectRatio(1).background(Background.auto()))\r\n .resize(crop(1, 1).gravity(compass(northEast())))\r\n .resize(fill().height('ih').width('iw'))\r\n .delivery(quality('auto'))\r\n .delivery(format(auto$1()));\r\n/**\r\n * Predefined placeholder image options\r\n */\r\nvar PLACEHOLDER_IMAGE_OPTIONS = {\r\n 'vectorize': VECTORIZE,\r\n 'pixelate': PIXELATE,\r\n 'blur': BLUR,\r\n 'predominant-color': PREDOMINANT_COLOR_TRANSFORM\r\n};\r\n/**\r\n * transparent gif\r\n */\r\nvar singleTransparentPixel = 'data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==';\r\n/**\r\n * Convert common video file extensions to mime types\r\n * Most other common video file extensions have an identical mime type so do not need conversion.\r\n */\r\nvar VIDEO_MIME_TYPES = {\r\n 'flv': 'x-flv',\r\n '3gp': '3gpp',\r\n 'mov': 'quicktime',\r\n 'mpg': 'mpeg',\r\n 'avi': 'x-msvideo',\r\n 'wmv': 'x-ms-wmv',\r\n 'ogv': 'ogg',\r\n 'webm': 'webm',\r\n 'mp4': 'mp4',\r\n};\n\nvar ANALYTICS_DELIMITER = '?_a=';\r\nvar HtmlVideoLayer = /** @class */ (function () {\r\n function HtmlVideoLayer(element, userCloudinaryVideo, sources, plugins, videoAttributes, userCloudinaryPoster, videoOptions) {\r\n var _this = this;\r\n this.mimeType = 'video';\r\n this.mimeSubTypes = VIDEO_MIME_TYPES;\r\n this.videoElement = element;\r\n this.originalVideo = userCloudinaryVideo;\r\n this.videoOptions = videoOptions;\r\n this.htmlPluginState = { cleanupCallbacks: [], pluginEventSubscription: [] };\r\n var pluginCloudinaryVideo = cloneDeep(userCloudinaryVideo);\r\n render(element, userCloudinaryVideo, plugins, this.htmlPluginState)\r\n .then(function () {\r\n _this.htmlPluginState.pluginEventSubscription.forEach(function (fn) { fn(); });\r\n _this.setVideoAttributes(videoAttributes, userCloudinaryPoster);\r\n _this.handleSourceToVideo(pluginCloudinaryVideo, sources);\r\n });\r\n }\r\n /**\r\n * Handles user supplied sources or default sources\r\n * @param userCloudinaryVideo {CloudinaryVideo}\r\n * @param sources\r\n */\r\n HtmlVideoLayer.prototype.handleSourceToVideo = function (userCloudinaryVideo, sources) {\r\n var _this = this;\r\n // checks if user supplied sources\r\n if (sources) {\r\n this.generateUserSources(userCloudinaryVideo, sources);\r\n }\r\n else {\r\n var defaultTypes = ['webm', 'mp4', 'ogv'];\r\n defaultTypes.forEach(function (type) {\r\n _this.appendSourceTag(cloneDeep(userCloudinaryVideo), type);\r\n });\r\n }\r\n };\r\n /**\r\n * Generate sources based on user input\r\n * @param userCloudinaryVideo {CloudinaryVideo}\r\n * @param sources\r\n */\r\n HtmlVideoLayer.prototype.generateUserSources = function (userCloudinaryVideo, sources) {\r\n var _this = this;\r\n sources.map(function (_a) {\r\n var type = _a.type, codecs = _a.codecs, transcode = _a.transcode;\r\n return (_this.appendSourceTag(cloneDeep(userCloudinaryVideo)\r\n .transcode(transcode), type, _this.buildMimeType(type, codecs)));\r\n });\r\n };\r\n /**\r\n * Appends source tag to html video element\r\n * @param userCloudinaryVideo {CloudinaryVideo}\r\n * @param type {string}\r\n * @param mimeType {string}\r\n */\r\n HtmlVideoLayer.prototype.appendSourceTag = function (userCloudinaryVideo, type, mimeType) {\r\n var _a;\r\n var source = document.createElement('source');\r\n var shouldUseFetchFormat = (_a = this.videoOptions) === null || _a === void 0 ? void 0 : _a.useFetchFormat;\r\n if (shouldUseFetchFormat) {\r\n userCloudinaryVideo.format(type);\r\n }\r\n var url = userCloudinaryVideo.toURL();\r\n // Split url to get analytics string so that we can insert the file extension (type) before it\r\n // To simplify this we could add a .getPublicId to CloudinaryVideo and do vid.setPublicId(vid.getPublicId+type)\r\n // Another option could be to add a .setExtension, which will allow to do vid.setExtension(type)\r\n var srcParts = url.split(ANALYTICS_DELIMITER);\r\n var analyticsStr = srcParts[1] ? \"\".concat(ANALYTICS_DELIMITER).concat(srcParts[1]) : '';\r\n var ext = shouldUseFetchFormat ? '' : \".\".concat(type);\r\n source.src = \"\".concat(srcParts[0]).concat(ext).concat(analyticsStr);\r\n // Ideally, we want to use the VIDEO_MIME_TYPE to detect the mime of the extension\r\n // For future proofing of simple formats (say .foo and mimetype of video/foo), we also fallback to the actual type\r\n source.type = mimeType ? mimeType : \"video/\".concat(VIDEO_MIME_TYPES[type] || type);\r\n this.videoElement.appendChild(source);\r\n };\r\n /**\r\n * Determines MIME type of given source type and codecs.\r\n * @param type - format of the video\r\n * @param codecs - optional information about codecs of the video\r\n */\r\n HtmlVideoLayer.prototype.buildMimeType = function (type, codecs) {\r\n var mimeType = \"\".concat(this.mimeType, \"/\").concat(this.mimeSubTypes[type] || type);\r\n if (codecs) {\r\n mimeType += \"; codecs=\" + (Array.isArray(codecs) ? codecs.join(', ') : codecs);\r\n }\r\n return mimeType;\r\n };\r\n /**\r\n * Iterates through the video attributes and sets to true if passed in by the user.\r\n * In case of poster, sets the poster.\r\n * @param videoAttributes {object} Supported attributes: controls, loop, muted, poster, preload, autoplay, playsinline\r\n */\r\n HtmlVideoLayer.prototype.setVideoAttributes = function (videoAttributes, userCloudinaryPoster) {\r\n var _a;\r\n if (videoAttributes === void 0) { videoAttributes = {}; }\r\n if (userCloudinaryPoster === 'auto') {\r\n var posterCloudinaryVideo = cloneDeep(this.originalVideo);\r\n videoAttributes['poster'] = posterCloudinaryVideo\r\n .quality('auto')\r\n .format('jpg')\r\n .addTransformation('so_auto')\r\n .toURL();\r\n }\r\n else if (userCloudinaryPoster) {\r\n videoAttributes['poster'] = (_a = userCloudinaryPoster.toURL) === null || _a === void 0 ? void 0 : _a.call(userCloudinaryPoster);\r\n }\r\n for (var _i = 0, _b = Object.entries(videoAttributes); _i < _b.length; _i++) {\r\n var _c = _b[_i], key = _c[0], value = _c[1];\r\n // Boolean attributes are considered to be true if they're present on the element at all.\r\n // You should set value to the empty string (\"\") or the attribute's name.\r\n // See https://developer.mozilla.org/en-US/docs/Web/API/Element/setAttribute\r\n value && this.videoElement.setAttribute(key, key === 'poster' ? value : '');\r\n }\r\n };\r\n /**\r\n * Called when component is updated. If our video source has changed, a video reload is triggered.\r\n * @param updatedCloudinaryVideo\r\n * @param sources\r\n * @param plugins\r\n * @param videoAttributes\r\n */\r\n HtmlVideoLayer.prototype.update = function (updatedCloudinaryVideo, sources, plugins, videoAttributes, userCloudinaryPoster) {\r\n var _this = this;\r\n if (updatedCloudinaryVideo !== this.originalVideo) {\r\n var sourcesToDelete = this.videoElement.getElementsByTagName(\"SOURCE\");\r\n while (sourcesToDelete[0])\r\n sourcesToDelete[0].parentNode.removeChild(sourcesToDelete[0]);\r\n render(this.videoElement, updatedCloudinaryVideo, plugins, this.htmlPluginState)\r\n .then(function () {\r\n _this.setVideoAttributes(videoAttributes, userCloudinaryPoster);\r\n _this.handleSourceToVideo(updatedCloudinaryVideo, sources);\r\n _this.videoElement.load();\r\n });\r\n }\r\n };\r\n return HtmlVideoLayer;\r\n}());\n\n/**\n * lodash (Custom Build) <https://lodash.com/>\n * Build: `lodash modularize exports=\"npm\" -o ./`\n * Copyright jQuery Foundation and other contributors <https://jquery.org/>\n * Released under MIT license <https://lodash.com/license>\n * Based on Underscore.js 1.8.3 <http://underscorejs.org/LICENSE>\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n */\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/** Used to match leading and trailing whitespace. */\nvar reTrim = /^\\s+|\\s+$/g;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof commonjsGlobal == 'object' && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objectToString = objectProto.toString;\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n result = wait - timeSinceLastCall;\n\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\n}\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = value.replace(reTrim, '');\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nvar lodash_debounce = debounce;\n\n/**\r\n * Returns true if value is number\r\n * @param value\r\n */\r\nfunction isNum(value) {\r\n return typeof value === \"number\";\r\n}\n\n/**\r\n * return true when window is defined\r\n */\r\nfunction isBrowser() {\r\n return typeof window !== 'undefined';\r\n}\n\n/**\r\n * returns true if input is an image element\r\n * @param i\r\n */\r\nfunction isImage(i) {\r\n return i instanceof HTMLImageElement;\r\n}\n\nvar initialPlugins = {\r\n accessibility: false,\r\n lazyload: false,\r\n placeholder: false,\r\n responsive: false,\r\n};\r\nvar getPluginType = function (name) { return name.replace('bound ', '').replace('Plugin', ''); };\r\nvar isPluginUsed = function (plugins, pluginType) {\r\n if (plugins === void 0) { plugins = []; }\r\n var usedPlugins = plugins.reduce(function (used, _a) {\r\n var _b;\r\n var name = _a.name;\r\n return (__assign$1(__assign$1({}, used), (_b = {}, _b[getPluginType(name)] = true, _b)));\r\n }, initialPlugins);\r\n return usedPlugins[pluginType];\r\n};\n\n/**\r\n * @namespace\r\n * @description Updates the src with the size of the parent element and triggers a resize event for\r\n * subsequent resizing.\r\n * @param steps {number | number[]} The step size in pixels or an array of image widths in pixels.\r\n * @return {Plugin}\r\n * @example <caption>NOTE: The following is in React. For further examples, see the Packages tab.</caption>\r\n * <AdvancedImage cldImg={img} plugins={[responsive({steps: [800, 1000, 1400]})]} />\r\n */\r\nfunction responsive(_a) {\r\n var _b = _a === void 0 ? {} : _a, steps = _b.steps;\r\n return responsivePlugin.bind(null, steps);\r\n}\r\n/**\r\n * @description Responsive plugin\r\n * @param steps {number | number[]} The step size in pixels.\r\n * @param element {HTMLImageElement} The image element\r\n * @param responsiveImage {CloudinaryImage}\r\n * @param htmlPluginState {HtmlPluginState} holds cleanup callbacks and event subscriptions\r\n * @param analyticsOptions {BaseAnalyticsOptions} analytics options for the url to be created\r\n */\r\nfunction responsivePlugin(steps, element, responsiveImage, htmlPluginState, baseAnalyticsOptions, plugins) {\r\n if (!isBrowser())\r\n return true;\r\n if (!isImage(element))\r\n return;\r\n return new Promise(function (resolve) {\r\n htmlPluginState.cleanupCallbacks.push(function () {\r\n window.removeEventListener(\"resize\", resizeRef);\r\n resolve('canceled');\r\n });\r\n var analyticsOptions = getAnalyticsOptions(baseAnalyticsOptions, { responsive: true });\r\n // Use a tagged generic action that can be later searched and replaced.\r\n responsiveImage.addAction(new Action().setActionTag('responsive'));\r\n var shouldRunImmediately = !isPluginUsed(plugins, 'placeholder');\r\n if (shouldRunImmediately) {\r\n // Immediately run the resize plugin, ensuring that first render gets a responsive image.\r\n onResize(steps, element, responsiveImage, analyticsOptions);\r\n }\r\n else {\r\n updateByContainerWidth(steps, element, responsiveImage);\r\n }\r\n var resizeRef;\r\n htmlPluginState.pluginEventSubscription.push(function () {\r\n window.addEventListener('resize', resizeRef = lodash_debounce(function () {\r\n onResize(steps, element, responsiveImage, analyticsOptions);\r\n }, 100));\r\n });\r\n resolve({ responsive: true });\r\n });\r\n}\r\n/**\r\n * On resize updates image src\r\n * @param steps {number | number[]} The step size in pixels.\r\n * | number[] A set of image sizes in pixels.\r\n * @param element {HTMLImageElement} The image element\r\n * @param responsiveImage {CloudinaryImage}\r\n * @param analyticsOptions {AnalyticsOptions} analytics options for the url to be created\r\n */\r\nfunction onResize(steps, element, responsiveImage, analyticsOptions) {\r\n updateByContainerWidth(steps, element, responsiveImage);\r\n element.src = responsiveImage.toURL(analyticsOptions);\r\n}\r\n/**\r\n * Updates the responsiveImage by container width.\r\n * @param steps {number | number[]} The step size in pixels.\r\n * | number[] A set of image sizes in pixels.\r\n * @param element {HTMLImageElement} The image element\r\n * @param responsiveImage {CloudinaryImage}\r\n */\r\nfunction updateByContainerWidth(steps, element, responsiveImage) {\r\n // Default value for responsiveImgWidth, used when no steps are passed.\r\n var responsiveImgWidth = element.parentElement.clientWidth;\r\n if (isNum(steps)) {\r\n var WIDTH_INTERVALS = steps;\r\n // We need to force the container width to be intervals of max width.\r\n responsiveImgWidth = Math.ceil(responsiveImgWidth / WIDTH_INTERVALS) * WIDTH_INTERVALS;\r\n }\r\n else if (Array.isArray(steps)) {\r\n responsiveImgWidth = steps.reduce(function (prev, curr) {\r\n return (Math.abs(curr - responsiveImgWidth) < Math.abs(prev - responsiveImgWidth) ? curr : prev);\r\n });\r\n }\r\n responsiveImage.transformation.actions.forEach(function (action, index) {\r\n if (action instanceof Action && action.getActionTag() === 'responsive') {\r\n responsiveImage.transformation.actions[index] = scale(responsiveImgWidth).setActionTag('responsive');\r\n }\r\n });\r\n}\n\n/**\r\n * @namespace\r\n * @description Loads an image once it is in a certain margin in the viewport. This includes vertical and horizontal scrolling.\r\n * @param rootMargin {string} The root element's bounding box before the intersection test is performed. Default: 0px.\r\n * @param threshold {number} The percentage of the image's visibility at which point the image should load. Default: 0.1 (10%).\r\n * @return {Plugin}\r\n * @example\r\n * <caption>\r\n * NOTE: The following is in React. For further examples, see the Packages tab.\r\n * When using the plugin make sure to add dimensions, otherwise the images will load with\r\n * the size of 0x0, meaning the images will be in the viewport and trigger the lazyload plugin.\r\n * </caption>\r\n * <AdvancedImage style={{width: \"400px\", height: \"400px\"}} cldImg={img} plugins={[lazyload({rootMargin: '0px',\r\n * threshold: 0.25})]} />\r\n */\r\nfunction lazyload(_a) {\r\n var _b = _a === void 0 ? {} : _a, _c = _b.rootMargin, rootMargin = _c === void 0 ? '0px' : _c, _d = _b.threshold, threshold = _d === void 0 ? 0.1 : _d;\r\n return lazyloadPlugin.bind(null, rootMargin, threshold);\r\n}\r\n/**\r\n * @description lazyload plugin\r\n * @param rootMargin {string} The root element's bounding box before the intersection test is performed. Default: 0px.\r\n * @param threshold {number} The percentage of the image's visibility at which point the image should load. Default: 0.1 (10%).\r\n * @param element The image element.\r\n * @param element {HTMLImageElement} The image element.\r\n * @param cloudinaryImage {CloudinaryImage}\r\n * @param htmlPluginState {HtmlPluginState} Holds cleanup callbacks and event subscriptions.\r\n */\r\nfunction lazyloadPlugin(rootMargin, threshold, element, cloudinaryImage, htmlPluginState, plugins) {\r\n if (rootMargin === void 0) { rootMargin = '0px'; }\r\n if (threshold === void 0) { threshold = 0.1; }\r\n // if SSR skip plugin\r\n if (!isBrowser())\r\n return false;\r\n return new Promise(function (resolve) {\r\n var onIntersect = function () { return (resolve({ lazyload: true })); };\r\n var unobserve = detectIntersection(element, onIntersect, rootMargin, threshold);\r\n htmlPluginState.cleanupCallbacks.push(function () {\r\n unobserve();\r\n resolve('canceled');\r\n });\r\n });\r\n}\r\n/**\r\n * Check if IntersectionObserver is supported\r\n * @return {boolean} true if window.IntersectionObserver is defined\r\n */\r\nfunction isIntersectionObserverSupported() {\r\n // Check that 'IntersectionObserver' property is defined on window\r\n return window && 'IntersectionObserver' in window;\r\n}\r\n/**\r\n * Calls onIntersect() to resolve when intersection is detected, or when\r\n * no native lazy loading or when IntersectionObserver isn't supported.\r\n * @param {Element} el - the element to observe\r\n * @param {function} onIntersect - called when the given element is in view\r\n * @param rootMargin {string} The root element's bounding box before the intersection test is performed. Default: 0px.\r\n * @param threshold {number} The percentage of the image's visibility at which point the image should load. Default: 0.1 (10%).\r\n */\r\nfunction detectIntersection(el, onIntersect, rootMargin, threshold) {\r\n try {\r\n if (!isIntersectionObserverSupported()) {\r\n // Return if there's no need or possibility to detect intersection\r\n onIntersect();\r\n return function () { };\r\n }\r\n // Detect intersection with given element using IntersectionObserver\r\n var observer_1 = new IntersectionObserver(function (entries) {\r\n entries.forEach(function (entry) {\r\n if (entry.isIntersecting) {\r\n observer_1.unobserve(entry.target);\r\n onIntersect();\r\n }\r\n });\r\n }, { rootMargin: rootMargin, threshold: threshold });\r\n observer_1.observe(el);\r\n return function () { el && observer_1.observe(el); };\r\n }\r\n catch (e) {\r\n onIntersect();\r\n }\r\n}\n\n/**\r\n * @namespace\r\n * @description Appends accessibility transformations to the original image.\r\n * @return {Plugin}\r\n * @example <caption>NOTE: The following is in React. For further examples, see the Packages tab.</caption>\r\n * <AdvancedImage cldImg={img} plugins={[accessibility()]}/>\r\n */\r\nfunction accessibility(_a) {\r\n var _b = _a === void 0 ? {} : _a, _c = _b.mode, mode = _c === void 0 ? 'darkmode' : _c;\r\n return accessibilityPlugin.bind(null, mode);\r\n}\r\n/**\r\n * @description Accessibility plugin\r\n * @param mode {AccessibilityMode} The accessibility mode to use. Possible modes: 'darkmode' | 'brightmode' | 'monochrome' | 'colorblind'. Default: 'darkmode'.\r\n * @param element {HTMLImageElement} The image element.\r\n * @param pluginCloudinaryImage {CloudinaryImage}\r\n * @param htmlPluginState {htmlPluginState} Holds cleanup callbacks and event subscriptions.\r\n */\r\nfunction accessibilityPlugin(mode, element, pluginCloudinaryImage, htmlPluginState, plugins) {\r\n if (isBrowser()) {\r\n if (!isImage(element))\r\n return;\r\n return new Promise(function (resolve) {\r\n // resolved promise when canceled\r\n htmlPluginState.cleanupCallbacks.push(function () {\r\n resolve('canceled');\r\n });\r\n if (!ACCESSIBILITY_MODES[mode]) {\r\n mode = 'darkmode';\r\n }\r\n pluginCloudinaryImage.effect(ACCESSIBILITY_MODES[mode]);\r\n resolve({ accessibility: true });\r\n });\r\n }\r\n else {\r\n pluginCloudinaryImage.effect(ACCESSIBILITY_MODES[mode]);\r\n return true;\r\n }\r\n}\n\n/**\r\n * @namespace\r\n * @description Displays a placeholder image until the original image loads.\r\n * @param mode {PlaceholderMode} The type of placeholder image to display. Possible modes: 'vectorize' | 'pixelate' | 'blur' | 'predominant-color'. Default: 'vectorize'.\r\n * @return {Plugin}\r\n * @example <caption>NOTE: The following is in React. For further examples, see the Packages tab.</caption>\r\n * <AdvancedImage cldImg={img} plugins={[placeholder({mode: 'blur'})]} />\r\n */\r\nfunction placeholder(_a) {\r\n var _b = _a === void 0 ? {} : _a, _c = _b.mode, mode = _c === void 0 ? 'vectorize' : _c;\r\n return placeholderPlugin.bind(null, mode);\r\n}\r\n/**\r\n * @description Placeholder plugin\r\n * @param mode {PlaceholderMode} The type of placeholder image to display. Possible modes: 'vectorize' | 'pixelate' | 'blur' | 'predominant-color'. Default: 'vectorize'.\r\n * @param element {HTMLImageElement} The image element.\r\n * @param pluginCloudinaryImage {CloudinaryImage}\r\n * @param htmlPluginState {htmlPluginState} Holds cleanup callbacks and event subscriptions.\r\n * @param baseAnalyticsOptions {BaseAnalyticsOptions} analytics options for the url to be created\r\n */\r\nfunction placeholderPlugin(mode, element, pluginCloudinaryImage, htmlPluginState, baseAnalyticsOptions, plugins) {\r\n // @ts-ignore\r\n // If we're using an invalid mode, we default to vectorize\r\n if (!PLACEHOLDER_IMAGE_OPTIONS[mode]) {\r\n mode = 'vectorize';\r\n }\r\n // A placeholder mode maps to an array of transformations\r\n var PLACEHOLDER_ACTIONS = PLACEHOLDER_IMAGE_OPTIONS[mode].actions;\r\n // Before proceeding, clone the original image\r\n // We clone because we don't want to pollute the state of the image\r\n // Future renders (after the placeholder is loaded) should not load placeholder transformations\r\n var placeholderClonedImage = cloneDeep(pluginCloudinaryImage);\r\n //appends a placeholder transformation on the clone\r\n // @ts-ignore\r\n PLACEHOLDER_ACTIONS.forEach(function (transformation) {\r\n placeholderClonedImage.addAction(transformation);\r\n });\r\n if (!isBrowser()) {\r\n // in SSR, we copy the transformations of the clone to the user provided CloudinaryImage\r\n // We return here, since we don't have HTML elements to work with.\r\n pluginCloudinaryImage.transformation = placeholderClonedImage.transformation;\r\n return true;\r\n }\r\n // Client side rendering, if an image was not provided we don't perform any action\r\n if (!isImage(element))\r\n return;\r\n // For the cloned placeholder image, we remove the responsive action.\r\n // There's no need to load e_pixelate,w_{responsive} beacuse that image is temporary as-is\r\n // and it just causes another image to load.\r\n // This also means that the de-facto way to use responsive in SSR is WITH placeholder.\r\n // This also means that the user must provide dimensions for the responsive plugin on the img tag.\r\n placeholderClonedImage.transformation.actions.forEach(function (action, index) {\r\n if (action instanceof Action && action.getActionTag() === 'responsive') {\r\n delete placeholderClonedImage.transformation.actions[index];\r\n }\r\n });\r\n var analyticsOptions = getAnalyticsOptions(baseAnalyticsOptions, { placeholder: true });\r\n // Set the SRC of the imageElement to the URL of the placeholder Image\r\n element.src = placeholderClonedImage.toURL(analyticsOptions);\r\n //Fallback, if placeholder errors, load a single transparent pixel\r\n element.onerror = function () {\r\n element.src = singleTransparentPixel;\r\n };\r\n /*\r\n * This plugin loads two images:\r\n * - The first image is loaded as a placeholder\r\n * - The second image is loaded after the placeholder is loaded\r\n *\r\n * Placeholder image loads first. Once it loads, the promise is resolved and the\r\n * larger image will load. Once the larger image loads, promised and plugin is resolved.\r\n */\r\n return new Promise(function (resolve) {\r\n element.onload = function () {\r\n resolve();\r\n };\r\n }).then(function () {\r\n return new Promise(function (resolve) {\r\n htmlPluginState.cleanupCallbacks.push(function () {\r\n element.src = singleTransparentPixel;\r\n resolve('canceled');\r\n });\r\n // load image once placeholder is done loading\r\n var largeImage = new Image();\r\n largeImage.src = pluginCloudinaryImage.toURL(analyticsOptions);\r\n largeImage.onload = function () {\r\n resolve({ placeholder: true });\r\n };\r\n // image does not load, resolve\r\n largeImage.onerror = function () {\r\n resolve({ placeholder: true });\r\n };\r\n });\r\n });\r\n}\n\nfunction serverSideSrc(plugins, serverCloudinaryImage, analyticsOptions) {\r\n var clonedServerCloudinaryImage = cloneDeep(serverCloudinaryImage);\r\n if (plugins) {\r\n for (var i = 0; i < plugins.length; i++) {\r\n var response = plugins[i](null, clonedServerCloudinaryImage);\r\n if (!response) { //lazyload\r\n break;\r\n }\r\n }\r\n }\r\n return clonedServerCloudinaryImage.toURL(analyticsOptions ? { trackedAnalytics: analyticsOptions } : null);\r\n}\n\n/**\r\n * Cancels currently running plugins. This is called from unmount or update\r\n * @param pluginState {HtmlPluginState} Holds cleanup callbacks and event subscriptions\r\n */\r\nfunction cancelCurrentlyRunningPlugins(pluginState) {\r\n pluginState.cleanupCallbacks.forEach(function (fn) {\r\n fn(); // resolve each promise with 'canceled'\r\n });\r\n}\n\n/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nfunction __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\n\nfunction __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\ntypeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nvar react = {exports: {}};\n\nvar react_production_min = {};\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n/** @license React v16.14.0\n * react.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 */\nvar l=objectAssign,n=\"function\"===typeof Symbol&&Symbol.for,p=n?Symbol.for(\"react.element\"):60103,q=n?Symbol.for(\"react.portal\"):60106,r=n?Symbol.for(\"react.fragment\"):60107,t=n?Symbol.for(\"react.strict_mode\"):60108,u=n?Symbol.for(\"react.profiler\"):60114,v=n?Symbol.for(\"react.provider\"):60109,w=n?Symbol.for(\"react.context\"):60110,x=n?Symbol.for(\"react.forward_ref\"):60112,y=n?Symbol.for(\"react.suspense\"):60113,z=n?Symbol.for(\"react.memo\"):60115,A=n?Symbol.for(\"react.lazy\"):\n60116,B=\"function\"===typeof Symbol&&Symbol.iterator;function C(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return \"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}\nvar D={isMounted:function(){return !1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},E={};function F(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D;}F.prototype.isReactComponent={};F.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(C(85));this.updater.enqueueSetState(this,a,b,\"setState\");};F.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\");};\nfunction G(){}G.prototype=F.prototype;function H(a,b,c){this.props=a;this.context=b;this.refs=E;this.updater=c||D;}var I=H.prototype=new G;I.constructor=H;l(I,F.prototype);I.isPureReactComponent=!0;var J={current:null},K=Object.prototype.hasOwnProperty,L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,c){var e,d={},g=null,k=null;if(null!=b)for(e in void 0!==b.ref&&(k=b.ref),void 0!==b.key&&(g=\"\"+b.key),b)K.call(b,e)&&!L.hasOwnProperty(e)&&(d[e]=b[e]);var f=arguments.length-2;if(1===f)d.children=c;else if(1<f){for(var h=Array(f),m=0;m<f;m++)h[m]=arguments[m+2];d.children=h;}if(a&&a.defaultProps)for(e in f=a.defaultProps,f)void 0===d[e]&&(d[e]=f[e]);return {$$typeof:p,type:a,key:g,ref:k,props:d,_owner:J.current}}\nfunction N(a,b){return {$$typeof:p,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return \"object\"===typeof a&&null!==a&&a.$$typeof===p}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return \"$\"+(\"\"+a).replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g,Q=[];function R(a,b,c,e){if(Q.length){var d=Q.pop();d.result=a;d.keyPrefix=b;d.func=c;d.context=e;d.count=0;return d}return {result:a,keyPrefix:b,func:c,context:e,count:0}}\nfunction S(a){a.result=null;a.keyPrefix=null;a.func=null;a.context=null;a.count=0;10>Q.length&&Q.push(a);}\nfunction T(a,b,c,e){var d=typeof a;if(\"undefined\"===d||\"boolean\"===d)a=null;var g=!1;if(null===a)g=!0;else switch(d){case \"string\":case \"number\":g=!0;break;case \"object\":switch(a.$$typeof){case p:case q:g=!0;}}if(g)return c(e,a,\"\"===b?\".\"+U(a,0):b),1;g=0;b=\"\"===b?\".\":b+\":\";if(Array.isArray(a))for(var k=0;k<a.length;k++){d=a[k];var f=b+U(d,k);g+=T(d,f,c,e);}else if(null===a||\"object\"!==typeof a?f=null:(f=B&&a[B]||a[\"@@iterator\"],f=\"function\"===typeof f?f:null),\"function\"===typeof f)for(a=f.call(a),k=\n0;!(d=a.next()).done;)d=d.value,f=b+U(d,k++),g+=T(d,f,c,e);else if(\"object\"===d)throw c=\"\"+a,Error(C(31,\"[object Object]\"===c?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":c,\"\"));return g}function V(a,b,c){return null==a?0:T(a,\"\",b,c)}function U(a,b){return \"object\"===typeof a&&null!==a&&null!=a.key?escape(a.key):b.toString(36)}function W(a,b){a.func.call(a.context,b,a.count++);}\nfunction aa(a,b,c){var e=a.result,d=a.keyPrefix;a=a.func.call(a.context,b,a.count++);Array.isArray(a)?X(a,e,c,function(a){return a}):null!=a&&(O(a)&&(a=N(a,d+(!a.key||b&&b.key===a.key?\"\":(\"\"+a.key).replace(P,\"$&/\")+\"/\")+c)),e.push(a));}function X(a,b,c,e,d){var g=\"\";null!=c&&(g=(\"\"+c).replace(P,\"$&/\")+\"/\");b=R(b,g,e,d);V(a,aa,b);S(b);}var Y={current:null};function Z(){var a=Y.current;if(null===a)throw Error(C(321));return a}\nvar ba={ReactCurrentDispatcher:Y,ReactCurrentBatchConfig:{suspense:null},ReactCurrentOwner:J,IsSomeRendererActing:{current:!1},assign:l};react_production_min.Children={map:function(a,b,c){if(null==a)return a;var e=[];X(a,e,null,b,c);return e},forEach:function(a,b,c){if(null==a)return a;b=R(null,null,b,c);V(a,W,b);S(b);},count:function(a){return V(a,function(){return null},null)},toArray:function(a){var b=[];X(a,b,null,function(a){return a});return b},only:function(a){if(!O(a))throw Error(C(143));return a}};\nreact_production_min.Component=F;react_production_min.Fragment=r;react_production_min.Profiler=u;react_production_min.PureComponent=H;react_production_min.StrictMode=t;react_production_min.Suspense=y;react_production_min.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ba;\nreact_production_min.cloneElement=function(a,b,c){if(null===a||void 0===a)throw Error(C(267,a));var e=l({},a.props),d=a.key,g=a.ref,k=a._owner;if(null!=b){void 0!==b.ref&&(g=b.ref,k=J.current);void 0!==b.key&&(d=\"\"+b.key);if(a.type&&a.type.defaultProps)var f=a.type.defaultProps;for(h in b)K.call(b,h)&&!L.hasOwnProperty(h)&&(e[h]=void 0===b[h]&&void 0!==f?f[h]:b[h]);}var h=arguments.length-2;if(1===h)e.children=c;else if(1<h){f=Array(h);for(var m=0;m<h;m++)f[m]=arguments[m+2];e.children=f;}return {$$typeof:p,type:a.type,\nkey:d,ref:g,props:e,_owner:k}};react_production_min.createContext=function(a,b){void 0===b&&(b=null);a={$$typeof:w,_calculateChangedBits:b,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null};a.Provider={$$typeof:v,_context:a};return a.Consumer=a};react_production_min.createElement=M;react_production_min.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};react_production_min.createRef=function(){return {current:null}};react_production_min.forwardRef=function(a){return {$$typeof:x,render:a}};react_production_min.isValidElement=O;\nreact_production_min.lazy=function(a){return {$$typeof:A,_ctor:a,_status:-1,_result:null}};react_production_min.memo=function(a,b){return {$$typeof:z,type:a,compare:void 0===b?null:b}};react_production_min.useCallback=function(a,b){return Z().useCallback(a,b)};react_production_min.useContext=function(a,b){return Z().useContext(a,b)};react_production_min.useDebugValue=function(){};react_production_min.useEffect=function(a,b){return Z().useEffect(a,b)};react_production_min.useImperativeHandle=function(a,b,c){return Z().useImperativeHandle(a,b,c)};\nreact_production_min.useLayoutEffect=function(a,b){return Z().useLayoutEffect(a,b)};react_production_min.useMemo=function(a,b){return Z().useMemo(a,b)};react_production_min.useReducer=function(a,b,c){return Z().useReducer(a,b,c)};react_production_min.useRef=function(a){return Z().useRef(a)};react_production_min.useState=function(a){return Z().useState(a)};react_production_min.version=\"16.14.0\";\n\nvar react_development = {};\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar ReactPropTypesSecret$1 = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nvar ReactPropTypesSecret_1 = ReactPropTypesSecret$1;\n\nvar has$1 = Function.call.bind(Object.prototype.hasOwnProperty);\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\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\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = ReactPropTypesSecret_1;\n var loggedTypeFailures = {};\n var has = has$1;\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // 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 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 var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n};\n\nvar checkPropTypes_1 = checkPropTypes;\n\n/** @license React v16.14.0\n * react.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\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n\nvar _assign = objectAssign;\nvar checkPropTypes = checkPropTypes_1;\n\nvar ReactVersion = '16.14.0';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\nvar MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && 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\n/**\n * Keeps track of the current dispatcher.\n */\nvar ReactCurrentDispatcher = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\n/**\n * Keeps track of the current batch's configuration such as how long an update\n * should suspend for if it needs to.\n */\nvar ReactCurrentBatchConfig = {\n suspense: null\n};\n\n/**\n * Keeps track of the current owner.\n *\n * The current owner is the component who should own any components that are\n * currently being constructed.\n */\nvar ReactCurrentOwner = {\n /**\n * @internal\n * @type {ReactComponent}\n */\n current: null\n};\n\nvar BEFORE_SLASH_RE = /^(.*)[\\\\\\/]/;\nfunction describeComponentFrame (name, source, ownerName) {\n var sourceInfo = '';\n\n if (source) {\n var path = source.fileName;\n var fileName = path.replace(BEFORE_SLASH_RE, '');\n\n {\n // In DEV, include code for a common special case:\n // prefer \"folder/index.js\" instead of just \"index.js\".\n if (/^index\\./.test(fileName)) {\n var match = path.match(BEFORE_SLASH_RE);\n\n if (match) {\n var pathBeforeSlash = match[1];\n\n if (pathBeforeSlash) {\n var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');\n fileName = folderName + '/' + fileName;\n }\n }\n }\n }\n\n sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';\n } else if (ownerName) {\n sourceInfo = ' (created by ' + ownerName + ')';\n }\n\n return '\\n in ' + (name || 'Unknown') + sourceInfo;\n}\n\nvar Resolved = 1;\nfunction refineResolvedLazyComponent(lazyComponent) {\n return lazyComponent._status === Resolved ? lazyComponent._result : null;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = innerType.displayName || innerType.name || '';\n return outerType.displayName || (functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName);\n}\n\nfunction getComponentName(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 getComponentName(). ' + '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 if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_CONTEXT_TYPE:\n return 'Context.Consumer';\n\n case REACT_PROVIDER_TYPE:\n return 'Context.Provider';\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n return getComponentName(type.type);\n\n case REACT_BLOCK_TYPE:\n return getComponentName(type.render);\n\n case REACT_LAZY_TYPE:\n {\n var thenable = type;\n var resolvedThenable = refineResolvedLazyComponent(thenable);\n\n if (resolvedThenable) {\n return getComponentName(resolvedThenable);\n }\n\n break;\n }\n }\n }\n\n return null;\n}\n\nvar ReactDebugCurrentFrame = {};\nvar currentlyValidatingElement = null;\nfunction setCurrentlyValidatingElement(element) {\n {\n currentlyValidatingElement = element;\n }\n}\n\n{\n // Stack implementation injected by the current renderer.\n ReactDebugCurrentFrame.getCurrentStack = null;\n\n ReactDebugCurrentFrame.getStackAddendum = function () {\n var stack = ''; // Add an extra top frame while an element is being validated\n\n if (currentlyValidatingElement) {\n var name = getComponentName(currentlyValidatingElement.type);\n var owner = currentlyValidatingElement._owner;\n stack += describeComponentFrame(name, currentlyValidatingElement._source, owner && getComponentName(owner.type));\n } // Delegate to the injected renderer-specific implementation\n\n\n var impl = ReactDebugCurrentFrame.getCurrentStack;\n\n if (impl) {\n stack += impl() || '';\n }\n\n return stack;\n };\n}\n\n/**\n * Used by act() to track whether you're inside an act() scope.\n */\nvar IsSomeRendererActing = {\n current: false\n};\n\nvar ReactSharedInternals = {\n ReactCurrentDispatcher: ReactCurrentDispatcher,\n ReactCurrentBatchConfig: ReactCurrentBatchConfig,\n ReactCurrentOwner: ReactCurrentOwner,\n IsSomeRendererActing: IsSomeRendererActing,\n // Used by renderers to avoid bundling object-assign twice in UMD bundles:\n assign: _assign\n};\n\n{\n _assign(ReactSharedInternals, {\n // These should not be included in production.\n ReactDebugCurrentFrame: ReactDebugCurrentFrame,\n // Shim for React DOM 16.0.0 which still destructured (but not used) this.\n // TODO: remove in React 17.0.\n ReactComponentTreeHook: {}\n });\n}\n\n// by calls to these methods by a Babel plugin.\n//\n// In PROD (or in packages without access to React internals),\n// they are left as they are instead.\n\nfunction warn(format) {\n {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n printWarning('warn', format, args);\n }\n}\nfunction error(format) {\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\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 hasExistingStack = args.length > 0 && typeof args[args.length - 1] === 'string' && args[args.length - 1].indexOf('\\n in') === 0;\n\n if (!hasExistingStack) {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n }\n }\n\n var argsWithFormat = args.map(function (item) {\n return '' + 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 try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n throw new Error(message);\n } catch (x) {}\n }\n}\n\nvar didWarnStateUpdateForUnmountedComponent = {};\n\nfunction warnNoop(publicInstance, callerName) {\n {\n var _constructor = publicInstance.constructor;\n var componentName = _constructor && (_constructor.displayName || _constructor.name) || 'ReactClass';\n var warningKey = componentName + \".\" + callerName;\n\n if (didWarnStateUpdateForUnmountedComponent[warningKey]) {\n return;\n }\n\n error(\"Can't call %s on a component that is not yet mounted. \" + 'This is a no-op, but it might indicate a bug in your application. ' + 'Instead, assign to `this.state` directly or define a `state = {};` ' + 'class property with the desired state in the %s component.', callerName, componentName);\n\n didWarnStateUpdateForUnmountedComponent[warningKey] = true;\n }\n}\n/**\n * This is the abstract API for an update queue.\n */\n\n\nvar ReactNoopUpdateQueue = {\n /**\n * Checks whether or not this composite component is mounted.\n * @param {ReactClass} publicInstance The instance we want to test.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function (publicInstance) {\n return false;\n },\n\n /**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueForceUpdate: function (publicInstance, callback, callerName) {\n warnNoop(publicInstance, 'forceUpdate');\n },\n\n /**\n * Replaces all of the state. Always use this or `setState` to mutate state.\n * You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} completeState Next state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} callerName name of the calling function in the public API.\n * @internal\n */\n enqueueReplaceState: function (publicInstance, completeState, callback, callerName) {\n warnNoop(publicInstance, 'replaceState');\n },\n\n /**\n * Sets a subset of the state. This only exists because _pendingState is\n * internal. This provides a merging strategy that is not available to deep\n * properties which is confusing. TODO: Expose pendingState or don't use it\n * during the merge.\n *\n * @param {ReactClass} publicInstance The instance that should rerender.\n * @param {object} partialState Next partial state to be merged with state.\n * @param {?function} callback Called after component is updated.\n * @param {?string} Name of the calling function in the public API.\n * @internal\n */\n enqueueSetState: function (publicInstance, partialState, callback, callerName) {\n warnNoop(publicInstance, 'setState');\n }\n};\n\nvar emptyObject = {};\n\n{\n Object.freeze(emptyObject);\n}\n/**\n * Base class helpers for the updating state of a component.\n */\n\n\nfunction Component(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject; // We initialize the default updater but the real one gets injected by the\n // renderer.\n\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nComponent.prototype.isReactComponent = {};\n/**\n * Sets a subset of the state. Always use this to mutate\n * state. You should treat `this.state` as immutable.\n *\n * There is no guarantee that `this.state` will be immediately updated, so\n * accessing `this.state` after calling this method may return the old value.\n *\n * There is no guarantee that calls to `setState` will run synchronously,\n * as they may eventually be batched together. You can provide an optional\n * callback that will be executed when the call to setState is actually\n * completed.\n *\n * When a function is provided to setState, it will be called at some point in\n * the future (not synchronously). It will be called with the up to date\n * component arguments (state, props, context). These values can be different\n * from this.* because your function may be called after receiveProps but before\n * shouldComponentUpdate, and this new state, props, and context will not yet be\n * assigned to this.\n *\n * @param {object|function} partialState Next partial state or function to\n * produce next partial state to be merged with current state.\n * @param {?function} callback Called after state is updated.\n * @final\n * @protected\n */\n\nComponent.prototype.setState = function (partialState, callback) {\n if (!(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null)) {\n {\n throw Error( \"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\" );\n }\n }\n\n this.updater.enqueueSetState(this, partialState, callback, 'setState');\n};\n/**\n * Forces an update. This should only be invoked when it is known with\n * certainty that we are **not** in a DOM transaction.\n *\n * You may want to call this when you know that some deeper aspect of the\n * component's state has changed but `setState` was not called.\n *\n * This will not invoke `shouldComponentUpdate`, but it will invoke\n * `componentWillUpdate` and `componentDidUpdate`.\n *\n * @param {?function} callback Called after update is complete.\n * @final\n * @protected\n */\n\n\nComponent.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, 'forceUpdate');\n};\n/**\n * Deprecated APIs. These APIs used to exist on classic React classes but since\n * we would like to deprecate them, we're not going to move them over to this\n * modern base class. Instead, we define a getter that warns if it's accessed.\n */\n\n\n{\n var deprecatedAPIs = {\n isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],\n replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']\n };\n\n var defineDeprecationWarning = function (methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n warn('%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);\n\n return undefined;\n }\n });\n };\n\n for (var fnName in deprecatedAPIs) {\n if (deprecatedAPIs.hasOwnProperty(fnName)) {\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n }\n }\n}\n\nfunction ComponentDummy() {}\n\nComponentDummy.prototype = Component.prototype;\n/**\n * Convenience component with default shallow equality check for sCU.\n */\n\nfunction PureComponent(props, context, updater) {\n this.props = props;\n this.context = context; // If a component has string refs, we will assign a different object later.\n\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n}\n\nvar pureComponentPrototype = PureComponent.prototype = new ComponentDummy();\npureComponentPrototype.constructor = PureComponent; // Avoid an extra prototype jump for these methods.\n\n_assign(pureComponentPrototype, Component.prototype);\n\npureComponentPrototype.isPureReactComponent = true;\n\n// an immutable object with a single mutable value\nfunction createRef() {\n var refObject = {\n current: null\n };\n\n {\n Object.seal(refObject);\n }\n\n return refObject;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar RESERVED_PROPS = {\n key: true,\n ref: true,\n __self: true,\n __source: true\n};\nvar specialPropKeyWarningShown, specialPropRefWarningShown, 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 defineKeyPropWarningGetter(props, displayName) {\n var warnAboutAccessingKey = function () {\n {\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://fb.me/react-special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n var warnAboutAccessingRef = function () {\n {\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://fb.me/react-special-props)', displayName);\n }\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && config.__self && ReactCurrentOwner.current.stateNode !== config.__self) {\n var componentName = getComponentName(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://fb.me/react-strict-mode-string-ref', getComponentName(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\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 * Create and return a new ReactElement of the given type.\n * See https://reactjs.org/docs/react-api.html#createelement\n */\n\nfunction createElement(type, config, children) {\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null;\n var self = null;\n var source = null;\n\n if (config != null) {\n if (hasValidRef(config)) {\n ref = config.ref;\n\n {\n warnIfStringRefCannotBeAutoConverted(config);\n }\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n }\n\n self = config.__self === undefined ? null : config.__self;\n source = config.__source === undefined ? null : config.__source; // Remaining properties are added to a new props object\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n props[propName] = config[propName];\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n {\n if (Object.freeze) {\n Object.freeze(childArray);\n }\n }\n\n props.children = childArray;\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 {\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\n return ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n}\nfunction cloneAndReplaceKey(oldElement, newKey) {\n var newElement = ReactElement(oldElement.type, newKey, oldElement.ref, oldElement._self, oldElement._source, oldElement._owner, oldElement.props);\n return newElement;\n}\n/**\n * Clone and return a new ReactElement using element as the starting point.\n * See https://reactjs.org/docs/react-api.html#cloneelement\n */\n\nfunction cloneElement(element, config, children) {\n if (!!(element === null || element === undefined)) {\n {\n throw Error( \"React.cloneElement(...): The argument must be a React element, but you passed \" + element + \".\" );\n }\n }\n\n var propName; // Original props are copied\n\n var props = _assign({}, element.props); // Reserved names are extracted\n\n\n var key = element.key;\n var ref = element.ref; // Self is preserved since the owner is preserved.\n\n var self = element._self; // Source is preserved since cloneElement is unlikely to be targeted by a\n // transpiler, and the original source is probably a better indicator of the\n // true owner.\n\n var source = element._source; // Owner will be preserved, unless ref is overridden\n\n var owner = element._owner;\n\n if (config != null) {\n if (hasValidRef(config)) {\n // Silently steal the ref from the parent.\n ref = config.ref;\n owner = ReactCurrentOwner.current;\n }\n\n if (hasValidKey(config)) {\n key = '' + config.key;\n } // Remaining properties override existing props\n\n\n var defaultProps;\n\n if (element.type && element.type.defaultProps) {\n defaultProps = element.type.defaultProps;\n }\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && !RESERVED_PROPS.hasOwnProperty(propName)) {\n if (config[propName] === undefined && defaultProps !== undefined) {\n // Resolve default props\n props[propName] = defaultProps[propName];\n } else {\n props[propName] = config[propName];\n }\n }\n }\n } // Children can be more than one argument, and those are transferred onto\n // the newly allocated props object.\n\n\n var childrenLength = arguments.length - 2;\n\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = Array(childrenLength);\n\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 2];\n }\n\n props.children = childArray;\n }\n\n return ReactElement(element.type, key, ref, self, source, owner, props);\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\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nvar SEPARATOR = '.';\nvar SUBSEPARATOR = ':';\n/**\n * Escape and wrap key so it is safe to use as a reactid\n *\n * @param {string} key to be escaped.\n * @return {string} the escaped key.\n */\n\nfunction escape(key) {\n var escapeRegex = /[=:]/g;\n var escaperLookup = {\n '=': '=0',\n ':': '=2'\n };\n var escapedString = ('' + key).replace(escapeRegex, function (match) {\n return escaperLookup[match];\n });\n return '$' + escapedString;\n}\n/**\n * TODO: Test that a single child and an array with one item have the same key\n * pattern.\n */\n\n\nvar didWarnAboutMaps = false;\nvar userProvidedKeyEscapeRegex = /\\/+/g;\n\nfunction escapeUserProvidedKey(text) {\n return ('' + text).replace(userProvidedKeyEscapeRegex, '$&/');\n}\n\nvar POOL_SIZE = 10;\nvar traverseContextPool = [];\n\nfunction getPooledTraverseContext(mapResult, keyPrefix, mapFunction, mapContext) {\n if (traverseContextPool.length) {\n var traverseContext = traverseContextPool.pop();\n traverseContext.result = mapResult;\n traverseContext.keyPrefix = keyPrefix;\n traverseContext.func = mapFunction;\n traverseContext.context = mapContext;\n traverseContext.count = 0;\n return traverseContext;\n } else {\n return {\n result: mapResult,\n keyPrefix: keyPrefix,\n func: mapFunction,\n context: mapContext,\n count: 0\n };\n }\n}\n\nfunction releaseTraverseContext(traverseContext) {\n traverseContext.result = null;\n traverseContext.keyPrefix = null;\n traverseContext.func = null;\n traverseContext.context = null;\n traverseContext.count = 0;\n\n if (traverseContextPool.length < POOL_SIZE) {\n traverseContextPool.push(traverseContext);\n }\n}\n/**\n * @param {?*} children Children tree container.\n * @param {!string} nameSoFar Name of the key path so far.\n * @param {!function} callback Callback to invoke with each child found.\n * @param {?*} traverseContext Used to pass information throughout the traversal\n * process.\n * @return {!number} The number of children in this subtree.\n */\n\n\nfunction traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {\n var type = typeof children;\n\n if (type === 'undefined' || type === 'boolean') {\n // All of the above are perceived as null.\n children = null;\n }\n\n var invokeCallback = false;\n\n if (children === null) {\n invokeCallback = true;\n } else {\n switch (type) {\n case 'string':\n case 'number':\n invokeCallback = true;\n break;\n\n case 'object':\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = true;\n }\n\n }\n }\n\n if (invokeCallback) {\n callback(traverseContext, children, // If it's the only child, treat the name as if it was wrapped in an array\n // so that it's consistent if the number of children grows.\n nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);\n return 1;\n }\n\n var child;\n var nextName;\n var subtreeCount = 0; // Count of children found in the current subtree.\n\n var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;\n\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n nextName = nextNamePrefix + getComponentKey(child, i);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else {\n var iteratorFn = getIteratorFn(children);\n\n if (typeof iteratorFn === 'function') {\n\n {\n // Warn about using Maps as children\n if (iteratorFn === children.entries) {\n if (!didWarnAboutMaps) {\n warn('Using Maps as children is deprecated and will be removed in ' + 'a future major release. Consider converting children to ' + 'an array of keyed ReactElements instead.');\n }\n\n didWarnAboutMaps = true;\n }\n }\n\n var iterator = iteratorFn.call(children);\n var step;\n var ii = 0;\n\n while (!(step = iterator.next()).done) {\n child = step.value;\n nextName = nextNamePrefix + getComponentKey(child, ii++);\n subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);\n }\n } else if (type === 'object') {\n var addendum = '';\n\n {\n addendum = ' If you meant to render a collection of children, use an array ' + 'instead.' + ReactDebugCurrentFrame.getStackAddendum();\n }\n\n var childrenString = '' + children;\n\n {\n {\n throw Error( \"Objects are not valid as a React child (found: \" + (childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString) + \").\" + addendum );\n }\n }\n }\n }\n\n return subtreeCount;\n}\n/**\n * Traverses children that are typically specified as `props.children`, but\n * might also be specified through attributes:\n *\n * - `traverseAllChildren(this.props.children, ...)`\n * - `traverseAllChildren(this.props.leftPanelChildren, ...)`\n *\n * The `traverseContext` is an optional argument that is passed through the\n * entire traversal. It can be used to store accumulations or anything else that\n * the callback might find relevant.\n *\n * @param {?*} children Children tree object.\n * @param {!function} callback To invoke upon traversing each child.\n * @param {?*} traverseContext Context for traversal.\n * @return {!number} The number of children in this subtree.\n */\n\n\nfunction traverseAllChildren(children, callback, traverseContext) {\n if (children == null) {\n return 0;\n }\n\n return traverseAllChildrenImpl(children, '', callback, traverseContext);\n}\n/**\n * Generate a key string that identifies a component within a set.\n *\n * @param {*} component A component that could contain a manual key.\n * @param {number} index Index that is used if a manual key is not provided.\n * @return {string}\n */\n\n\nfunction getComponentKey(component, index) {\n // Do some typechecking here since we call this blindly. We want to ensure\n // that we don't block potential future ES APIs.\n if (typeof component === 'object' && component !== null && component.key != null) {\n // Explicit key\n return escape(component.key);\n } // Implicit key determined by the index in the set\n\n\n return index.toString(36);\n}\n\nfunction forEachSingleChild(bookKeeping, child, name) {\n var func = bookKeeping.func,\n context = bookKeeping.context;\n func.call(context, child, bookKeeping.count++);\n}\n/**\n * Iterates through children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenforeach\n *\n * The provided forEachFunc(child, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} forEachFunc\n * @param {*} forEachContext Context for forEachContext.\n */\n\n\nfunction forEachChildren(children, forEachFunc, forEachContext) {\n if (children == null) {\n return children;\n }\n\n var traverseContext = getPooledTraverseContext(null, null, forEachFunc, forEachContext);\n traverseAllChildren(children, forEachSingleChild, traverseContext);\n releaseTraverseContext(traverseContext);\n}\n\nfunction mapSingleChildIntoContext(bookKeeping, child, childKey) {\n var result = bookKeeping.result,\n keyPrefix = bookKeeping.keyPrefix,\n func = bookKeeping.func,\n context = bookKeeping.context;\n var mappedChild = func.call(context, child, bookKeeping.count++);\n\n if (Array.isArray(mappedChild)) {\n mapIntoWithKeyPrefixInternal(mappedChild, result, childKey, function (c) {\n return c;\n });\n } else if (mappedChild != null) {\n if (isValidElement(mappedChild)) {\n mappedChild = cloneAndReplaceKey(mappedChild, // Keep both the (mapped) and old keys if they differ, just as\n // traverseAllChildren used to do for objects as children\n keyPrefix + (mappedChild.key && (!child || child.key !== mappedChild.key) ? escapeUserProvidedKey(mappedChild.key) + '/' : '') + childKey);\n }\n\n result.push(mappedChild);\n }\n}\n\nfunction mapIntoWithKeyPrefixInternal(children, array, prefix, func, context) {\n var escapedPrefix = '';\n\n if (prefix != null) {\n escapedPrefix = escapeUserProvidedKey(prefix) + '/';\n }\n\n var traverseContext = getPooledTraverseContext(array, escapedPrefix, func, context);\n traverseAllChildren(children, mapSingleChildIntoContext, traverseContext);\n releaseTraverseContext(traverseContext);\n}\n/**\n * Maps children that are typically specified as `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenmap\n *\n * The provided mapFunction(child, key, index) will be called for each\n * leaf child.\n *\n * @param {?*} children Children tree container.\n * @param {function(*, int)} func The map function.\n * @param {*} context Context for mapFunction.\n * @return {object} Object containing the ordered map of results.\n */\n\n\nfunction mapChildren(children, func, context) {\n if (children == null) {\n return children;\n }\n\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, func, context);\n return result;\n}\n/**\n * Count the number of children that are typically specified as\n * `props.children`.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrencount\n *\n * @param {?*} children Children tree container.\n * @return {number} The number of children.\n */\n\n\nfunction countChildren(children) {\n return traverseAllChildren(children, function () {\n return null;\n }, null);\n}\n/**\n * Flatten a children object (typically specified as `props.children`) and\n * return an array with appropriately re-keyed children.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrentoarray\n */\n\n\nfunction toArray(children) {\n var result = [];\n mapIntoWithKeyPrefixInternal(children, result, null, function (child) {\n return child;\n });\n return result;\n}\n/**\n * Returns the first child in a collection of children and verifies that there\n * is only one child in the collection.\n *\n * See https://reactjs.org/docs/react-api.html#reactchildrenonly\n *\n * The current implementation of this function assumes that a single child gets\n * passed without a wrapper, but the purpose of this helper function is to\n * abstract away the particular structure of children.\n *\n * @param {?object} children Child collection structure.\n * @return {ReactElement} The first and only `ReactElement` contained in the\n * structure.\n */\n\n\nfunction onlyChild(children) {\n if (!isValidElement(children)) {\n {\n throw Error( \"React.Children.only expected to receive a single React element child.\" );\n }\n }\n\n return children;\n}\n\nfunction createContext(defaultValue, calculateChangedBits) {\n if (calculateChangedBits === undefined) {\n calculateChangedBits = null;\n } else {\n {\n if (calculateChangedBits !== null && typeof calculateChangedBits !== 'function') {\n error('createContext: Expected the optional second argument to be a ' + 'function. Instead received: %s', calculateChangedBits);\n }\n }\n }\n\n var context = {\n $$typeof: REACT_CONTEXT_TYPE,\n _calculateChangedBits: calculateChangedBits,\n // As a workaround to support multiple concurrent renderers, we categorize\n // some renderers as primary and others as secondary. We only expect\n // there to be two concurrent renderers at most: React Native (primary) and\n // Fabric (secondary); React DOM (primary) and React ART (secondary).\n // Secondary renderers store their context values on separate fields.\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n // Used to track how many concurrent renderers this context currently\n // supports within in a single renderer. Such as parallel server rendering.\n _threadCount: 0,\n // These are circular\n Provider: null,\n Consumer: null\n };\n context.Provider = {\n $$typeof: REACT_PROVIDER_TYPE,\n _context: context\n };\n var hasWarnedAboutUsingNestedContextConsumers = false;\n var hasWarnedAboutUsingConsumerProvider = false;\n\n {\n // A separate object, but proxies back to the original context object for\n // backwards compatibility. It has a different $$typeof, so we can properly\n // warn for the incorrect usage of Context as a Consumer.\n var Consumer = {\n $$typeof: REACT_CONTEXT_TYPE,\n _context: context,\n _calculateChangedBits: context._calculateChangedBits\n }; // $FlowFixMe: Flow complains about not setting a value, which is intentional here\n\n Object.defineProperties(Consumer, {\n Provider: {\n get: function () {\n if (!hasWarnedAboutUsingConsumerProvider) {\n hasWarnedAboutUsingConsumerProvider = true;\n\n error('Rendering <Context.Consumer.Provider> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Provider> instead?');\n }\n\n return context.Provider;\n },\n set: function (_Provider) {\n context.Provider = _Provider;\n }\n },\n _currentValue: {\n get: function () {\n return context._currentValue;\n },\n set: function (_currentValue) {\n context._currentValue = _currentValue;\n }\n },\n _currentValue2: {\n get: function () {\n return context._currentValue2;\n },\n set: function (_currentValue2) {\n context._currentValue2 = _currentValue2;\n }\n },\n _threadCount: {\n get: function () {\n return context._threadCount;\n },\n set: function (_threadCount) {\n context._threadCount = _threadCount;\n }\n },\n Consumer: {\n get: function () {\n if (!hasWarnedAboutUsingNestedContextConsumers) {\n hasWarnedAboutUsingNestedContextConsumers = true;\n\n error('Rendering <Context.Consumer.Consumer> is not supported and will be removed in ' + 'a future major release. Did you mean to render <Context.Consumer> instead?');\n }\n\n return context.Consumer;\n }\n }\n }); // $FlowFixMe: Flow complains about missing properties because it doesn't understand defineProperty\n\n context.Consumer = Consumer;\n }\n\n {\n context._currentRenderer = null;\n context._currentRenderer2 = null;\n }\n\n return context;\n}\n\nfunction lazy(ctor) {\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _ctor: ctor,\n // React uses these fields to store the result.\n _status: -1,\n _result: null\n };\n\n {\n // In production, this would just set it on the object.\n var defaultProps;\n var propTypes;\n Object.defineProperties(lazyType, {\n defaultProps: {\n configurable: true,\n get: function () {\n return defaultProps;\n },\n set: function (newDefaultProps) {\n error('React.lazy(...): It is not supported to assign `defaultProps` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n defaultProps = newDefaultProps; // Match production behavior more closely:\n\n Object.defineProperty(lazyType, 'defaultProps', {\n enumerable: true\n });\n }\n },\n propTypes: {\n configurable: true,\n get: function () {\n return propTypes;\n },\n set: function (newPropTypes) {\n error('React.lazy(...): It is not supported to assign `propTypes` to ' + 'a lazy component import. Either specify them where the component ' + 'is defined, or create a wrapping component around it.');\n\n propTypes = newPropTypes; // Match production behavior more closely:\n\n Object.defineProperty(lazyType, 'propTypes', {\n enumerable: true\n });\n }\n }\n });\n }\n\n return lazyType;\n}\n\nfunction forwardRef(render) {\n {\n if (render != null && render.$$typeof === REACT_MEMO_TYPE) {\n error('forwardRef requires a render function but received a `memo` ' + 'component. Instead of forwardRef(memo(...)), use ' + 'memo(forwardRef(...)).');\n } else if (typeof render !== 'function') {\n error('forwardRef requires a render function but was given %s.', render === null ? 'null' : typeof render);\n } else {\n if (render.length !== 0 && render.length !== 2) {\n error('forwardRef render functions accept exactly two parameters: props and ref. %s', render.length === 1 ? 'Did you forget to use the ref parameter?' : 'Any additional parameter will be undefined.');\n }\n }\n\n if (render != null) {\n if (render.defaultProps != null || render.propTypes != null) {\n error('forwardRef render functions do not support propTypes or defaultProps. ' + 'Did you accidentally pass a React component?');\n }\n }\n }\n\n return {\n $$typeof: REACT_FORWARD_REF_TYPE,\n render: render\n };\n}\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (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 || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction memo(type, compare) {\n {\n if (!isValidElementType(type)) {\n error('memo: The first argument must be a component. Instead ' + 'received: %s', type === null ? 'null' : typeof type);\n }\n }\n\n return {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: compare === undefined ? null : compare\n };\n}\n\nfunction resolveDispatcher() {\n var dispatcher = ReactCurrentDispatcher.current;\n\n if (!(dispatcher !== null)) {\n {\n throw Error( \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://fb.me/react-invalid-hook-call for tips about how to debug and fix this problem.\" );\n }\n }\n\n return dispatcher;\n}\n\nfunction useContext(Context, unstable_observedBits) {\n var dispatcher = resolveDispatcher();\n\n {\n if (unstable_observedBits !== undefined) {\n error('useContext() second argument is reserved for future ' + 'use in React. Passing it is not supported. ' + 'You passed: %s.%s', unstable_observedBits, typeof unstable_observedBits === 'number' && Array.isArray(arguments[2]) ? '\\n\\nDid you call array.map(useContext)? ' + 'Calling Hooks inside a loop is not supported. ' + 'Learn more at https://fb.me/rules-of-hooks' : '');\n } // TODO: add a more generic warning for invalid values.\n\n\n if (Context._context !== undefined) {\n var realContext = Context._context; // Don't deduplicate because this legitimately causes bugs\n // and nobody should be using this in existing code.\n\n if (realContext.Consumer === Context) {\n error('Calling useContext(Context.Consumer) is not supported, may cause bugs, and will be ' + 'removed in a future major release. Did you mean to call useContext(Context) instead?');\n } else if (realContext.Provider === Context) {\n error('Calling useContext(Context.Provider) is not supported. ' + 'Did you mean to call useContext(Context) instead?');\n }\n }\n }\n\n return dispatcher.useContext(Context, unstable_observedBits);\n}\nfunction useState(initialState) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useState(initialState);\n}\nfunction useReducer(reducer, initialArg, init) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useReducer(reducer, initialArg, init);\n}\nfunction useRef(initialValue) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useRef(initialValue);\n}\nfunction useEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useEffect(create, deps);\n}\nfunction useLayoutEffect(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useLayoutEffect(create, deps);\n}\nfunction useCallback(callback, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useCallback(callback, deps);\n}\nfunction useMemo(create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useMemo(create, deps);\n}\nfunction useImperativeHandle(ref, create, deps) {\n var dispatcher = resolveDispatcher();\n return dispatcher.useImperativeHandle(ref, create, deps);\n}\nfunction useDebugValue(value, formatterFn) {\n {\n var dispatcher = resolveDispatcher();\n return dispatcher.useDebugValue(value, formatterFn);\n }\n}\n\nvar propTypesMisspellWarningShown;\n\n{\n propTypesMisspellWarningShown = false;\n}\n\nfunction getDeclarationErrorAddendum() {\n if (ReactCurrentOwner.current) {\n var name = getComponentName(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n}\n\nfunction getSourceInfoErrorAddendum(source) {\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\nfunction getSourceInfoErrorAddendumForProps(elementProps) {\n if (elementProps !== null && elementProps !== undefined) {\n return getSourceInfoErrorAddendum(elementProps.__source);\n }\n\n return '';\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 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 * 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 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.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentName(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement(element);\n\n {\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://fb.me/react-warning-keys for more information.', currentComponentErrorInfo, childOwner);\n }\n\n setCurrentlyValidatingElement(null);\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 if (typeof node !== 'object') {\n return;\n }\n\n if (Array.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 * 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 name = getComponentName(type);\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 setCurrentlyValidatingElement(element);\n checkPropTypes(propTypes, element.props, 'prop', name, ReactDebugCurrentFrame.getStackAddendum);\n setCurrentlyValidatingElement(null);\n } else if (type.PropTypes !== undefined && !propTypesMisspellWarningShown) {\n propTypesMisspellWarningShown = true;\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 setCurrentlyValidatingElement(fragment);\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 error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n break;\n }\n }\n\n if (fragment.ref !== null) {\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n }\n\n setCurrentlyValidatingElement(null);\n }\n}\nfunction createElementWithValidation(type, props, children) {\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 = getSourceInfoErrorAddendumForProps(props);\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 (Array.isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentName(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 {\n error('React.createElement: 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\n var element = createElement.apply(this, arguments); // 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 for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], type);\n }\n }\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n } else {\n validatePropTypes(element);\n }\n\n return element;\n}\nvar didWarnAboutDeprecatedCreateFactory = false;\nfunction createFactoryWithValidation(type) {\n var validatedFactory = createElementWithValidation.bind(null, type);\n validatedFactory.type = type;\n\n {\n if (!didWarnAboutDeprecatedCreateFactory) {\n didWarnAboutDeprecatedCreateFactory = true;\n\n warn('React.createFactory() is deprecated and will be removed in ' + 'a future major release. Consider using JSX ' + 'or use React.createElement() directly instead.');\n } // Legacy hook: remove it\n\n\n Object.defineProperty(validatedFactory, 'type', {\n enumerable: false,\n get: function () {\n warn('Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');\n\n Object.defineProperty(this, 'type', {\n value: type\n });\n return type;\n }\n });\n }\n\n return validatedFactory;\n}\nfunction cloneElementWithValidation(element, props, children) {\n var newElement = cloneElement.apply(this, arguments);\n\n for (var i = 2; i < arguments.length; i++) {\n validateChildKeys(arguments[i], newElement.type);\n }\n\n validatePropTypes(newElement);\n return newElement;\n}\n\n{\n\n try {\n var frozenObject = Object.freeze({});\n var testMap = new Map([[frozenObject, null]]);\n var testSet = new Set([frozenObject]); // This is necessary for Rollup to not consider these unused.\n // https://github.com/rollup/rollup/issues/1771\n // TODO: we can remove these if Rollup fixes the bug.\n\n testMap.set(0, 0);\n testSet.add(0);\n } catch (e) {\n }\n}\n\nvar createElement$1 = createElementWithValidation ;\nvar cloneElement$1 = cloneElementWithValidation ;\nvar createFactory = createFactoryWithValidation ;\nvar Children = {\n map: mapChildren,\n forEach: forEachChildren,\n count: countChildren,\n toArray: toArray,\n only: onlyChild\n};\n\nreact_development.Children = Children;\nreact_development.Component = Component;\nreact_development.Fragment = REACT_FRAGMENT_TYPE;\nreact_development.Profiler = REACT_PROFILER_TYPE;\nreact_development.PureComponent = PureComponent;\nreact_development.StrictMode = REACT_STRICT_MODE_TYPE;\nreact_development.Suspense = REACT_SUSPENSE_TYPE;\nreact_development.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED = ReactSharedInternals;\nreact_development.cloneElement = cloneElement$1;\nreact_development.createContext = createContext;\nreact_development.createElement = createElement$1;\nreact_development.createFactory = createFactory;\nreact_development.createRef = createRef;\nreact_development.forwardRef = forwardRef;\nreact_development.isValidElement = isValidElement;\nreact_development.lazy = lazy;\nreact_development.memo = memo;\nreact_development.useCallback = useCallback;\nreact_development.useContext = useContext;\nreact_development.useDebugValue = useDebugValue;\nreact_development.useEffect = useEffect;\nreact_development.useImperativeHandle = useImperativeHandle;\nreact_development.useLayoutEffect = useLayoutEffect;\nreact_development.useMemo = useMemo;\nreact_development.useReducer = useReducer;\nreact_development.useRef = useRef;\nreact_development.useState = useState;\nreact_development.version = ReactVersion;\n })();\n}\n\nif (process.env.NODE_ENV === 'production') {\n react.exports = react_production_min;\n} else {\n react.exports = react_development;\n}\n\nvar React = react.exports;\n\nvar SDKAnalyticsConstants = {\n sdkSemver: '1.13.0',\n techVersion: React.version,\n sdkCode: 'J'\n};\n\n/**\n * @mixin ReactSDK\n * @description The Cloudinary React SDK contains components like \\<AdvancedImage\\> to easily render your media assets from Cloudinary.\n * The SDK also comes with support for optional JS plugins that make the components smart, with features like lazy loading, placeholder, accessibility & responsiveness.\n *\n * @example\n * <caption>\n * Please note that the order of the plugins is important. See {@link https://cloudinary.com/documentation/sdks/js/frontend-frameworks/index.html#plugin-order|Plugin Order} for more details.\n * </caption>\n * // Example\n * import {CloudinaryImage} from \"@cloudinary/url-gen/assets/CloudinaryImage\";\n * import {\n * AdvancedImage,\n * accessibility,\n * responsive,\n * lazyload,\n * placeholder\n * } from '@cloudinary/react';\n *\n * const App = () => {\n *\n * const myCld = new Cloudinary({ cloudName: 'demo'});\n * let img = myCld().image('sample');\n *\n * return (\n * <div>\n * <div style={{height: \"1000px\"}}/>\n * <AdvancedImage\n * cldImg={img}\n * plugins={[lazyload(), responsive(100), placeholder()]}\n * />\n * </div>\n * )\n * };\n *\n *\n *\n *\n *\n */\n/**\n * @memberOf ReactSDK\n * @type {Component}\n * @description The Cloudinary image component.\n * @prop {CloudinaryImage} cldImg Generated by @cloudinary/url-gen\n * @prop {Plugins} plugins Advanced image component plugins accessibility(), responsive(), lazyload(), placeholder()\n */\nvar AdvancedImage = /** @class */ (function (_super) {\n __extends(AdvancedImage, _super);\n function AdvancedImage(props) {\n var _this = _super.call(this, props) || this;\n _this.imageRef = React.createRef();\n return _this;\n }\n /**\n * On mount, creates a new HTMLLayer instance and initializes with ref to img element,\n * user generated cloudinaryImage and the plugins to be used.\n */\n AdvancedImage.prototype.componentDidMount = function () {\n this.htmlLayerInstance = new HtmlImageLayer(this.imageRef.current, this.props.cldImg, this.props.plugins, SDKAnalyticsConstants);\n };\n /**\n * On update, we cancel running plugins and update image instance with the state of user\n * cloudinaryImage and the state of plugins.\n */\n AdvancedImage.prototype.componentDidUpdate = function () {\n cancelCurrentlyRunningPlugins(this.htmlLayerInstance.htmlPluginState);\n // call html layer to update the dom again with plugins and reset toBeCanceled\n this.htmlLayerInstance.update(this.props.cldImg, this.props.plugins, SDKAnalyticsConstants);\n };\n /**\n * On unmount, we cancel the currently running plugins, and destroy the html layer instance\n */\n AdvancedImage.prototype.componentWillUnmount = function () {\n // Safely cancel running events on unmount.\n cancelCurrentlyRunningPlugins(this.htmlLayerInstance.htmlPluginState);\n this.htmlLayerInstance.unmount();\n };\n AdvancedImage.prototype.render = function () {\n var _a = this.props; _a.cldImg; _a.plugins; var otherProps = __rest(_a, [\"cldImg\", \"plugins\"]) // Assume any other props are for the base element\n ;\n if (isBrowser()) { // On client side render\n return React.createElement(\"img\", __assign({ suppressHydrationWarning: true }, otherProps, { ref: this.imageRef }));\n }\n else { // on server side render\n var src = serverSideSrc(this.props.plugins, this.props.cldImg, SDKAnalyticsConstants);\n return React.createElement(\"img\", __assign({}, otherProps, { src: src }));\n }\n };\n return AdvancedImage;\n}(React.Component));\n\nvar VIDEO_ATTRIBUTES_KEYS = ['controls', 'loop', 'muted', 'poster', 'preload', 'autoplay', 'playsinline'];\n/**\n * @memberOf ReactSDK\n * @type {Component}\n * @description The Cloudinary video component.\n * @prop {CloudinaryVideo} transformation Generated by @cloudinary/url-gen\n * @prop {Plugins} plugins Advanced image component plugins lazyload()\n * @prop videoAttributes Optional attributes include controls, loop, muted, poster, preload, autoplay\n * @prop videoEvents Optional video events include play, loadstart, playing, error, ended\n * @prop {VideoSources} sources Optional sources to generate\n * @example\n * <caption>\n * Using custom defined resources.\n * </caption>\n * const vid = new CloudinaryVideo('dog', {cloudName: 'demo'});\n * const videoEl = useRef();\n * const sources = [\n * {\n * type: 'mp4',\n * codecs: ['vp8', 'vorbis'],\n * transcode: videoCodec(auto())\n * },\n * {\n * type: 'webm',\n * codecs: ['avc1.4D401E', 'mp4a.40.2'],\n * videoCodec: videoCodec(auto())\n * }];\n *\n * return <AdvancedVideo cldVid={vid} sources={sources} ref={videoEl} controls />\n */\nvar AdvancedVideo = /** @class */ (function (_super) {\n __extends(AdvancedVideo, _super);\n function AdvancedVideo(props) {\n var _this = _super.call(this, props) || this;\n _this.videoRef = react.exports.createRef();\n _this.attachRef = _this.attachRef.bind(_this);\n return _this;\n }\n /**\n * On mount, creates a new HTMLVideoLayer instance and initializes with ref to video element,\n * user generated cloudinaryVideo and the plugins to be used.\n */\n AdvancedVideo.prototype.componentDidMount = function () {\n this.htmlVideoLayerInstance = new HtmlVideoLayer(this.videoRef && this.videoRef.current, this.props.cldVid, this.props.sources, this.props.plugins, this.getVideoAttributes(), this.props.cldPoster, {\n useFetchFormat: this.props.useFetchFormat\n });\n };\n /**\n * On update, we cancel running plugins and update the video instance if the src\n * was changed.\n */\n AdvancedVideo.prototype.componentDidUpdate = function () {\n cancelCurrentlyRunningPlugins(this.htmlVideoLayerInstance.htmlPluginState);\n // call html layer to update the dom again with plugins and reset toBeCanceled\n this.htmlVideoLayerInstance.update(this.props.cldVid, this.props.sources, this.props.plugins, this.getVideoAttributes(), this.props.cldPoster);\n };\n /**\n * On unmount, we cancel the currently running plugins.\n */\n AdvancedVideo.prototype.componentWillUnmount = function () {\n // safely cancel running events on unmount\n cancelCurrentlyRunningPlugins(this.htmlVideoLayerInstance.htmlPluginState);\n };\n /**\n * Returns video attributes.\n */\n AdvancedVideo.prototype.getVideoAttributes = function () {\n var _this = this;\n var result = {};\n VIDEO_ATTRIBUTES_KEYS.forEach(function (key) {\n if (key in _this.props) {\n result[key] = _this.props[key];\n }\n });\n return result;\n };\n /**\n * Attach both this.videoRef and props.innerRef as ref to the given element.\n * @param element - the element to attach a ref to\n */\n AdvancedVideo.prototype.attachRef = function (element) {\n this.videoRef.current = element;\n var innerRef = this.props.innerRef;\n if (innerRef) {\n if (innerRef instanceof Function) {\n innerRef(element);\n }\n else {\n innerRef.current = element;\n }\n }\n };\n AdvancedVideo.prototype.render = function () {\n var _a = this.props; _a.cldVid; _a.cldPoster; _a.plugins; _a.sources; _a.innerRef; _a.useFetchFormat; var videoAttrs = __rest(_a, [\"cldVid\", \"cldPoster\", \"plugins\", \"sources\", \"innerRef\", \"useFetchFormat\"]) // Assume any other props are for the base element\n ;\n return React.createElement(\"video\", __assign({}, videoAttrs, { ref: this.attachRef }));\n };\n return AdvancedVideo;\n}(react.exports.Component));\n\nexport { AdvancedImage, AdvancedVideo, accessibility, lazyload, placeholder, responsive };\n","/**\n *\n * @private\n * @param {any} a\n */\nfunction isObject(a) {\n if (typeof a !== 'object' || a instanceof Array) {\n return false;\n }\n else {\n return true;\n }\n}\nclass Config {\n filterOutNonSupportedKeys(userProvidedConfig, validKeys) {\n const obj = Object.create({});\n if (isObject(userProvidedConfig)) {\n Object.keys(userProvidedConfig).forEach((key) => {\n if (validKeys.indexOf(key) >= 0) {\n obj[key] = userProvidedConfig[key];\n }\n else {\n console.warn('Warning - unsupported key provided to configuration: ', key);\n }\n });\n return obj;\n }\n else {\n return Object.create({});\n }\n }\n}\nexport default Config;\n","/**\n * This file is for internal constants only.\n * It is not intended for public use and is not part of the public API\n */\n/**\n * @private\n */\nexport const ALLOWED_URL_CONFIG = [\n 'cname',\n 'secureDistribution',\n 'privateCdn',\n 'signUrl',\n 'longUrlSignature',\n 'shorten',\n 'useRootPath',\n 'secure',\n 'forceVersion',\n 'analytics',\n 'queryParams'\n];\n/**\n * @private\n */\nexport const ALLOWED_CLOUD_CONFIG = [\n 'cloudName',\n 'apiKey',\n 'apiSecret',\n 'authToken'\n];\n","import Config from \"./BaseConfig.js\";\nimport { ALLOWED_URL_CONFIG } from \"../internal/internalConstants.js\";\nclass URLConfig extends Config {\n /**\n * @param {IURLConfig} userURLConfig\n */\n constructor(userURLConfig) {\n super();\n const urlConfig = this.filterOutNonSupportedKeys(userURLConfig, ALLOWED_URL_CONFIG);\n Object.assign(this, {\n secure: true\n }, urlConfig);\n }\n extend(userURLConfig) {\n const urlConfig = this.filterOutNonSupportedKeys(userURLConfig, ALLOWED_URL_CONFIG);\n return new URLConfig(Object.assign({}, this, urlConfig));\n }\n /**\n * @param {string} value Sets the cname\n */\n setCname(value) {\n this.cname = value;\n return this;\n }\n /**\n * @param {string} value Sets the secureDistribution\n */\n setSecureDistribution(value) {\n this.secureDistribution = value;\n return this;\n }\n /**\n * @param {boolean} value Sets whether to use a private CDN (Removes cloudName from URL)\n */\n setPrivateCdn(value) {\n this.privateCdn = value;\n return this;\n }\n /**\n * @param value Sets whether or not to sign the URL\n */\n setSignUrl(value) {\n this.signUrl = value;\n return this;\n }\n /**\n * @param value Sets whether or not to use a long signature\n */\n setLongUrlSignature(value) {\n this.longUrlSignature = value;\n return this;\n }\n /**\n * @param value Sets whether or not to shorten the URL\n */\n setShorten(value) {\n this.shorten = value;\n return this;\n }\n /**\n * @param value Sets whether or not to use a root path\n */\n setUseRootPath(value) {\n this.useRootPath = value;\n return this;\n }\n /**\n * @param value Sets whether or not to deliver the asset through https\n */\n setSecure(value) {\n this.secure = value;\n return this;\n }\n /**\n * @param value Sets whether to force a version in the URL\n */\n setForceVersion(value) {\n this.forceVersion = value;\n return this;\n }\n /**\n * @param params Sets additional params\n */\n setQueryParams(params) {\n this.queryParams = params;\n return this;\n }\n}\nexport default URLConfig;\n","/**\n * @summary SDK\n * @memberOf SDK\n */\nclass QualifierValue {\n /**\n *\n * @param {QualifierValue | QualifierValue[] | any[] | string | number}qualifierValue\n */\n constructor(qualifierValue) {\n this.values = [];\n this.delimiter = ':'; // {value}{delimiter}{value}...\n if (this.hasValue(qualifierValue)) {\n this.addValue(qualifierValue);\n }\n }\n /**\n * @description Joins the provided values with the provided delimiter\n */\n toString() {\n return this.values.join(this.delimiter);\n }\n /**\n * @description Checks if the provided argument has a value\n * @param {any} v\n * @private\n * @return {boolean}\n */\n hasValue(v) {\n return typeof v !== 'undefined' && v !== null && v !== '';\n }\n /**\n * @desc Adds a value for the this qualifier instance\n * @param {any} value\n * @return {this}\n */\n addValue(value) {\n // Append value or array of values\n if (Array.isArray(value)) {\n this.values = this.values.concat(value);\n }\n else {\n this.values.push(value);\n }\n // Remove falsy values\n this.values = this.values.filter((v) => this.hasValue(v));\n return this;\n }\n /**\n * @description Sets the delimiter for this instance\n * @param delimiter\n */\n setDelimiter(delimiter) {\n this.delimiter = delimiter;\n return this;\n }\n}\nexport { QualifierValue };\n","class UnsupportedError extends Error {\n constructor(message = 'Unsupported') {\n super(message);\n }\n}\n/**\n * Creates a new UnsupportedError\n * @param message\n */\nfunction createUnsupportedError(message) {\n return new UnsupportedError(message);\n}\nexport { UnsupportedError, createUnsupportedError };\n","import { createUnsupportedError } from \"../utils/unsupportedError.js\";\n/**\n * Returns the action's model\n */\nexport function qualifierToJson() {\n return this._qualifierModel || { error: createUnsupportedError(`unsupported qualifier ${this.constructor.name}`) };\n}\n","import { qualifierToJson } from \"./qualifierToJson.js\";\nexport class QualifierModel {\n constructor() {\n this._qualifierModel = {};\n }\n toJson() {\n return qualifierToJson.apply(this);\n }\n}\n","import { QualifierValue } from './QualifierValue.js';\nimport { QualifierModel } from '../models/QualifierModel.js';\n/**\n * @summary SDK\n * @memberOf SDK\n */\nclass Qualifier extends QualifierModel {\n constructor(key, qualifierValue) {\n super();\n this.delimiter = '_'; // {key}{delimiter}{qualifierValue}\n this.key = key;\n if (qualifierValue instanceof QualifierValue) {\n this.qualifierValue = qualifierValue;\n }\n else {\n this.qualifierValue = new QualifierValue();\n this.qualifierValue.addValue(qualifierValue);\n }\n }\n toString() {\n const { key, delimiter, qualifierValue } = this;\n return `${key}${delimiter}${qualifierValue.toString()}`;\n }\n addValue(value) {\n this.qualifierValue.addValue(value);\n return this;\n }\n}\nexport { Qualifier };\n","import { QualifierValue } from \"../../internal/qualifier/QualifierValue.js\";\nimport { Qualifier } from \"../../internal/qualifier/Qualifier.js\";\n/**\n * @memberOf Qualifiers.Flag\n * @extends {SDK.Qualifier}\n * @description the FlagQualifier class\n */\nclass FlagQualifier extends Qualifier {\n constructor(flagType, flagValue) {\n let qualifierValue;\n if (flagValue) {\n qualifierValue = new QualifierValue([flagType, `${flagValue}`]).setDelimiter(':');\n }\n else {\n qualifierValue = flagType;\n }\n super('fl', qualifierValue);\n this.flagValue = flagValue;\n }\n toString() {\n return super.toString().replace(/\\./g, '%2E');\n }\n getFlagValue() {\n return this.flagValue;\n }\n}\nexport { FlagQualifier };\n","/**\n * Sort a map by key\n * @private\n * @param map <string, any>\n * @Return array of map's values sorted by key\n */\nfunction mapToSortedArray(map, flags) {\n const array = Array.from(map.entries());\n // objects from the Array.from() method above are stored in array of arrays:\n // [[qualifierKey, QualifierObj], [qualifierKey, QualifierObj]]\n // Flags is an array of FlagQualifierObj\n // We need to convert it to the same form: [flagQualifier] => ['fl', flagQualifier]\n flags.forEach((flag) => {\n array.push(['fl', flag]); // push ['fl', flagQualifier]\n });\n return array.sort().map((v) => v[1]);\n}\n/**\n * Checks if `value` is a string.\n * @private\n * @param {*} value The value to check.\n * @return {boolean} `true` if `value` is a string, else `false`.\n */\nfunction isString(value) {\n return (typeof value === 'string' || value instanceof String);\n}\nexport { isString, mapToSortedArray };\n","import { createUnsupportedError } from \"../utils/unsupportedError.js\";\n/**\n * Returns the action's model\n */\nexport function actionToJson() {\n var _a, _b, _c;\n const actionModelIsNotEmpty = this._actionModel && Object.keys(this._actionModel).length;\n const sourceTransformationError = (_c = (_b = (_a = this._actionModel) === null || _a === void 0 ? void 0 : _a.source) === null || _b === void 0 ? void 0 : _b.transformation) === null || _c === void 0 ? void 0 : _c.error;\n // Should return error when there is unsupported transformation inside\n if (sourceTransformationError && sourceTransformationError instanceof Error) {\n return { error: sourceTransformationError };\n }\n if (actionModelIsNotEmpty) {\n return this._actionModel;\n }\n return { error: createUnsupportedError(`unsupported action ${this.constructor.name}`) };\n}\n","import { actionToJson } from \"./actionToJson.js\";\nexport class ActionModel {\n constructor() {\n this._actionModel = {};\n }\n toJson() {\n return actionToJson.apply(this);\n }\n}\n","import { FlagQualifier } from \"../qualifiers/flag/FlagQualifier.js\";\nimport { Qualifier } from \"./qualifier/Qualifier.js\";\nimport { mapToSortedArray } from \"./utils/dataStructureUtils.js\";\nimport { ActionModel } from \"./models/ActionModel.js\";\n/**\n * @summary SDK\n * @memberOf SDK\n * @description Defines the category of transformation to perform.\n */\nclass Action extends ActionModel {\n constructor() {\n super(...arguments);\n // We're using map, to overwrite existing keys. for example:\n // addParam(w_100).addQualifier(w_200) should result in w_200. and not w_100,w_200\n this.qualifiers = new Map();\n // Unlike regular qualifiers, there can be multiple flags in each url component /fl_1,fl_2/\n // If the falgs are added to the qualifiers map, only a single flag could exist in a component (it's a map)\n // So flags are stored separately until the very end because of that reason\n this.flags = [];\n this.delimiter = ','; // {qualifier}{delimiter}{qualifier} for example: `${'w_100'}${','}${'c_fill'}`\n this.actionTag = ''; // A custom name tag to identify this action in the future\n }\n prepareQualifiers() { }\n /**\n * @description Returns the custom name tag that was given to this action\n * @return {string}\n */\n getActionTag() {\n return this.actionTag;\n }\n /**\n * @description Sets the custom name tag for this action\n * @return {this}\n */\n setActionTag(tag) {\n this.actionTag = tag;\n return this;\n }\n /**\n * @description Calls toString() on all child qualifiers (implicitly by using .join()).\n * @return {string}\n */\n toString() {\n this.prepareQualifiers();\n return mapToSortedArray(this.qualifiers, this.flags).join(this.delimiter);\n }\n /**\n * @description Adds the parameter to the action.\n * @param {SDK.Qualifier} qualifier\n * @return {this}\n */\n addQualifier(qualifier) {\n // if string, find the key and value\n if (typeof qualifier === 'string') {\n const [key, value] = qualifier.toLowerCase().split('_');\n if (key === 'fl') {\n // if string qualifier is a flag, store it in the flags arrays\n this.flags.push(new FlagQualifier(value));\n }\n else {\n // if the string qualifier is not a flag, create a new qualifier from it\n this.qualifiers.set(key, new Qualifier(key, value));\n }\n }\n else {\n // if a qualifier object, insert to the qualifiers map\n this.qualifiers.set(qualifier.key, qualifier);\n }\n return this;\n }\n /**\n * @description Adds a flag to the current action.\n * @param {Qualifiers.Flag} flag\n * @return {this}\n */\n addFlag(flag) {\n if (typeof flag === 'string') {\n this.flags.push(new FlagQualifier(flag));\n }\n else {\n if (flag instanceof FlagQualifier) {\n this.flags.push(flag);\n }\n }\n return this;\n }\n addValueToQualifier(qualifierKey, qualifierValue) {\n this.qualifiers.get(qualifierKey).addValue(qualifierValue);\n return this;\n }\n}\nexport { Action };\n","/**\n * Returns RGB or Color\n * @private\n * @param color\n */\nexport function prepareColor(color) {\n if (color) {\n return color.match(/^#/) ? `rgb:${color.substr(1)}` : color;\n }\n else {\n return color;\n }\n}\n","import { Action } from \"../../../internal/Action.js\";\nimport { QualifierValue } from \"../../../internal/qualifier/QualifierValue.js\";\nimport { Qualifier } from \"../../../internal/qualifier/Qualifier.js\";\nimport { prepareColor } from \"../../../internal/utils/prepareColor.js\";\n/**\n * @extends SDK.Action\n * @description A class for background transformations.\n */\nclass BackgroundColor extends Action {\n constructor(color) {\n super();\n this._actionModel = {};\n this.addQualifier(new Qualifier('b', new QualifierValue(prepareColor(color)).setDelimiter('_')));\n this._actionModel.color = color;\n this._actionModel.actionType = 'backgroundColor';\n }\n static fromJson(actionModel) {\n const { color } = actionModel;\n // We are using this() to allow inheriting classes to use super.fromJson.apply(this, [actionModel])\n // This allows the inheriting classes to determine the class to be created\n const result = new this(color);\n return result;\n }\n}\nexport { BackgroundColor };\n","import { createUnsupportedError } from \"./utils/unsupportedError.js\";\n/**\n * @summary SDK\n * @memberOf SDK\n * @description Defines an action that's a string literal, no validations or manipulations are performed\n */\nclass RawAction {\n constructor(raw) {\n this.raw = raw;\n }\n toString() {\n return this.raw;\n }\n toJson() {\n return { error: createUnsupportedError(`unsupported action ${this.constructor.name}`) };\n }\n}\nexport { RawAction };\n","/**\n * Validates obj is an instance of IErrorObject\n * @param obj\n */\nfunction isErrorObject(obj) {\n const errorObj = obj;\n return ('error' in errorObj) && !!errorObj.error;\n}\nexport { isErrorObject };\n","/**\n * @description Defines flags that you can use to alter the default transformation behavior.\n * @namespace Flag\n * @memberOf Qualifiers\n */\nimport { FlagQualifier } from \"./flag/FlagQualifier.js\";\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Used when delivering a video file as an image format that supports animation, such as animated WebP.\n * Plays all frames rather than just delivering the first one as a static image.\n * Use this flag in addition to the flag or parameter controlling the delivery format,\n * for example f_auto or fl_awebp.\n\n * Note: When delivering a video in GIF format, it is delivered as an animated GIF by default and this flag is not\n * necessary. To deliver a single frame of a video in GIF format, use the page parameter.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction animated() {\n return new FlagQualifier('animated');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description When converting animated images to WebP format, generate an animated WebP from all the frames in the\n * original\n * animated file instead of only from the first still frame.\n *\n * Note that animated WebPs are not supported in all browsers and versions.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction animatedWebP() {\n return new FlagQualifier('awebp');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description When used together with automatic quality (q_auto):\n * allow switching to PNG8 encoding if the quality algorithm decides that it's more efficient.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction anyFormat() {\n return new FlagQualifier('any_format');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description When converting animated images to PNG format, generates an animated PNG from all the frames in the\n * original\n * animated file instead of only from the first still frame.\n *\n * Note that animated PNGs are not supported in all browsers and versions.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction animatedPng() {\n return new FlagQualifier('apng');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Trims pixels according to a clipping path included in the original image\n * (e.g., manually created using PhotoShop).\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction clip() {\n return new FlagQualifier('clip');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Trims pixels according to a clipping path included in the original image (e.g., manually created\n * using PhotoShop)\n * using an evenodd clipping rule.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction clipEvenOdd() {\n return new FlagQualifier('clip_evenodd');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Instructs Cloudinary to clear all image meta-data (IPTC, Exif and XMP) while applying an incoming\n * transformation.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction forceStrip() {\n return new FlagQualifier('force_strip');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Allows custom flag\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction custom(value) {\n return new FlagQualifier(value);\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Adds ICC color space metadata to the image, even when the original image doesn't contain any ICC data.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction forceIcc() {\n return new FlagQualifier('force_icc');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Delivers the image as an attachment.\n * @param {string} filename The attachment's filename\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction attachment(filename) {\n return new FlagQualifier('attachment', filename);\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Returns metadata of the input asset and of the transformed output asset in JSON instead of the\n * transformed image.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction getInfo() {\n return new FlagQualifier('getinfo');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Deliver an HLS adaptive bitrate streaming file as HLS v3 instead of the default version (HLS v4).\n * Delivering in this format requires a private CDN configuration.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction hlsv3() {\n return new FlagQualifier('hlsv3');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Sets the cache-control to immutable for the asset.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction immutableCache() {\n return new FlagQualifier('immutable_cache');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description * Allows specifying only either width or height so the value of the second axis remains as is, and is not\n * recalculated to maintain the aspect ratio of the original image.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction ignoreInitialAspectRatio() {\n return new FlagQualifier('ignore_aspect_ratio');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Keeps the copyright related fields when stripping meta-data.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction keepAttribution() {\n return new FlagQualifier('keep_attribution');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * Keep the Display Aspect Ratio metadata of the uploaded video (if it’s different from the current video\n * dimensions).\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction keepDar() {\n return new FlagQualifier('keep_dar');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Keeps all meta-data.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction keepIptc() {\n return new FlagQualifier('keep_iptc');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Applies all chained transformations, until a transformation component that includes this flag, on the last added\n * overlay or underlay instead of applying on the containing image.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction layerApply() {\n return new FlagQualifier('layer_apply');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Automatically use lossy compression when delivering animated GIF files.\n *\n * This flag can also be used as a conditional flag for delivering PNG files: it tells Cloudinary to deliver the\n * image in PNG format (as requested) unless there is no transparency channel - in which case deliver in JPEG\n * format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction lossy() {\n return new FlagQualifier('lossy');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Convert the audio channel to mono\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction mono() {\n return new FlagQualifier('mono');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Used internally by Position within an Overlay, this flag will tile the overlay across your image.\n *\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/transformation_reference#fl_no_overflow|Overflow in overlays}\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction noOverflow() {\n return new FlagQualifier('no_overflow');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Don't stream a video that is currently being generated on the fly. Wait until the video is fully generated.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction noStream() {\n return new FlagQualifier('no_stream');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Generate PNG images in the png24 format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction png24() {\n return new FlagQualifier('png24');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Generate PNG images in the png32 format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction png32() {\n return new FlagQualifier('png32');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Generate PNG images in the PNG8 format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction png8() {\n return new FlagQualifier('png8');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description When used with automatic fetch_format (f_auto): ensures that images with a transparency channel will be\n * delivered in PNG format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction preserveTransparency() {\n return new FlagQualifier('preserve_transparency');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Generates a JPG image using the progressive (interlaced) JPG format.\n *\n * This format allows the browser to quickly show a low-quality rendering of the image until the full-quality\n * image is loaded.\n *\n * @param {string} mode? The mode to determine a specific progressive outcome as follows:\n * * semi - A smart optimization of the decoding time, compression level and progressive rendering\n * (less iterations). This is the default mode when using q_auto.\n * * steep - Delivers a preview very quickly, and in a single later phase improves the image to\n * the required resolution.\n * * none - Use this to deliver a non-progressive image. This is the default mode when setting\n * a specific value for quality.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction progressive(mode) {\n return new FlagQualifier('progressive', mode);\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Modifies percentage-based width & height parameters of overlays and underlays (e.g., 1.0) to be relative to the overlaid region\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction regionRelative() {\n return new FlagQualifier('region_relative');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Reduces the image to one flat pixelated layer (as opposed to the default vector based graphic) in\n * order to enable\n * PDF resizing and overlay manipulations.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction rasterize() {\n return new FlagQualifier('rasterize');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Modifies percentage-based width & height parameters of overlays and underlays (e.g., 1.0) to be relative to the containing image instead of the added layer.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction relative() {\n return new FlagQualifier('relative');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Instructs Cloudinary to run a sanitizer on the image (relevant only for the SVG format).\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction sanitize() {\n return new FlagQualifier('sanitize');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Splices the video stipulated as an overlay on to the end of the container video instead of adding it as an\n * overlay.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction splice() {\n return new FlagQualifier('splice');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Instructs Cloudinary to clear all ICC color profile data included with the image.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction stripProfile() {\n return new FlagQualifier('strip_profile');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description If the requested video transformation has already been generated, this flag works identically to\n * Flag::attachment.\n *\n * However, if the video transformation is being requested for the first time, this flag causes the video download\n * to begin immediately, streaming it as a fragmented video file.\n *\n * In contrast, if the regular fl_attachment flag is used when a user requests a new video transformation,\n * the download will begin only after the complete transformed video has been generated.\n *\n * Most standard video players successfully play fragmented video files without issue.\n *\n * @param {string} filename The attachment's filename\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction streamingAttachment(filename) {\n return new FlagQualifier('streaming_attachment', filename);\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Generates TIFF images using LZW compression and in the TIFF8 format.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction tiff8Lzw() {\n return new FlagQualifier('tiff8_lzw');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Used internally by Position within an Overlay, this flag will tile the overlay across your image.\n *\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/layers#automatic_tiling|Tiling overlay}\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction tiled() {\n return new FlagQualifier('tiled');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Truncate (trim) a video file based on the start time defined in the metadata (relevant only where the metadata\n * includes a directive to play only a section of the video).\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction truncateTS() {\n return new FlagQualifier('truncate_ts');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description Create a waveform image (in the format specified by the file extension) from the audio or video file.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction waveform() {\n return new FlagQualifier('waveform');\n}\n/**\n * @summary qualifier\n * @memberOf Qualifiers.Flag\n * @description A qualifier that ensures that an alpha channel is not applied to a TIFF image if it is a mask channel.\n * @return {Qualifiers.Flag.FlagQualifier}\n */\nfunction ignoreMaskChannels() {\n return new FlagQualifier('ignore_mask_channels');\n}\nconst Flag = {\n animated, anyFormat, animatedPng, animatedWebP,\n clipEvenOdd, lossy, preserveTransparency, png8, png24, png32, progressive, rasterize,\n sanitize, stripProfile, tiff8Lzw, attachment, forceIcc, forceStrip, getInfo, immutableCache,\n keepAttribution, keepIptc, custom, streamingAttachment, hlsv3, keepDar, noStream, mono,\n layerApply, relative, regionRelative, splice, truncateTS, waveform, ignoreInitialAspectRatio, clip,\n tiled, noOverflow, ignoreMaskChannels\n};\nexport { Flag, animated, anyFormat, animatedPng, animatedWebP, clipEvenOdd, lossy, preserveTransparency, png8, png24, png32, progressive, rasterize, sanitize, stripProfile, tiff8Lzw, attachment, forceIcc, forceStrip, getInfo, immutableCache, keepAttribution, keepIptc, custom, streamingAttachment, hlsv3, keepDar, noStream, mono, layerApply, relative, regionRelative, splice, truncateTS, waveform, ignoreInitialAspectRatio, clip, tiled, noOverflow, ignoreMaskChannels };\n","import { QualifierValue } from \"../../internal/qualifier/QualifierValue.js\";\n/**\n * @memberOf Qualifiers.Format\n * @extends {SDK.QualifierValue}\n */\nclass FormatQualifier extends QualifierValue {\n constructor(val) {\n super(val);\n this.val = val;\n }\n getValue() {\n return this.val;\n }\n}\nexport { FormatQualifier };\n","/**\n * Flip keys and values for given object\n * @param obj\n */\nfunction objectFlip(obj) {\n const result = {};\n Object.keys(obj).forEach((key) => {\n result[obj[key]] = key;\n });\n return result;\n}\nexport { objectFlip };\n","/**\n * This file is for internal constants only.\n * It is not intended for public use and is not part of the public API\n */\nimport { objectFlip } from \"./utils/objectFlip.js\";\nexport const CONDITIONAL_OPERATORS = {\n \"=\": \"eq\",\n \"!=\": \"ne\",\n \"<\": \"lt\",\n \">\": \"gt\",\n \"<=\": \"lte\",\n \">=\": \"gte\",\n \"&&\": \"and\",\n \"||\": \"or\",\n \"*\": \"mul\",\n \"/\": \"div\",\n \"+\": \"add\",\n \"-\": \"sub\",\n \"^\": \"pow\"\n};\nexport const RESERVED_NAMES = {\n \"aspect_ratio\": \"ar\",\n \"aspectRatio\": \"ar\",\n \"current_page\": \"cp\",\n \"currentPage\": \"cp\",\n \"duration\": \"du\",\n \"face_count\": \"fc\",\n \"faceCount\": \"fc\",\n \"height\": \"h\",\n \"initial_aspect_ratio\": \"iar\",\n \"initial_height\": \"ih\",\n \"initial_width\": \"iw\",\n \"initialAspectRatio\": \"iar\",\n \"initialHeight\": \"ih\",\n \"initialWidth\": \"iw\",\n \"initial_duration\": \"idu\",\n \"initialDuration\": \"idu\",\n \"page_count\": \"pc\",\n \"page_x\": \"px\",\n \"page_y\": \"py\",\n \"pageCount\": \"pc\",\n \"pageX\": \"px\",\n \"pageY\": \"py\",\n \"tags\": \"tags\",\n \"width\": \"w\",\n \"trimmed_aspect_ratio\": \"tar\",\n \"current_public_id\": \"cpi\",\n \"initial_density\": \"idn\",\n \"page_names\": \"pgnames\"\n};\nexport const ACTION_TYPE_TO_CROP_MODE_MAP = {\n limitFit: 'limit',\n limitFill: 'lfill',\n minimumFit: 'mfit',\n thumbnail: 'thumb',\n limitPad: 'lpad',\n minimumPad: 'mpad',\n autoPad: 'auto_pad'\n};\nexport const ACTION_TYPE_TO_DELIVERY_MODE_MAP = {\n colorSpace: 'cs',\n dpr: 'dpr',\n density: 'dn',\n defaultImage: 'd',\n format: 'f',\n quality: 'q'\n};\nexport const ACTION_TYPE_TO_EFFECT_MODE_MAP = {\n redEye: 'redeye',\n advancedRedEye: 'adv_redeye',\n oilPaint: 'oil_paint',\n unsharpMask: 'unsharp_mask',\n makeTransparent: 'make_transparent',\n generativeRestore: 'gen_restore',\n upscale: 'upscale'\n};\nexport const ACTION_TYPE_TO_QUALITY_MODE_MAP = {\n autoBest: 'auto:best',\n autoEco: 'auto:eco',\n autoGood: 'auto:good',\n autoLow: 'auto:low',\n jpegminiHigh: 'jpegmini:1',\n jpegminiMedium: 'jpegmini:2',\n jpegminiBest: 'jpegmini:0'\n};\nexport const ACTION_TYPE_TO_STREAMING_PROFILE_MODE_MAP = {\n fullHd: 'full_hd',\n fullHdWifi: 'full_hd_wifi',\n fullHdLean: 'full_hd_lean',\n hdLean: 'hd_lean'\n};\nexport const CHROMA_VALUE_TO_CHROMA_MODEL_ENUM = {\n 444: \"CHROMA_444\",\n 420: \"CHROMA_420\"\n};\nexport const COLOR_SPACE_MODEL_MODE_TO_COLOR_SPACE_MODE_MAP = {\n 'noCmyk': 'no_cmyk',\n 'keepCmyk': 'keep_cmyk',\n 'tinySrgb': 'tinysrgb',\n 'srgbTrueColor': 'srgb:truecolor'\n};\nexport const ACTION_TYPE_TO_BLEND_MODE_MAP = {\n 'antiRemoval': 'anti_removal'\n};\nexport const CHROMA_MODEL_ENUM_TO_CHROMA_VALUE = objectFlip(CHROMA_VALUE_TO_CHROMA_MODEL_ENUM);\nexport const COLOR_SPACE_MODE_TO_COLOR_SPACE_MODEL_MODE_MAP = objectFlip(COLOR_SPACE_MODEL_MODE_TO_COLOR_SPACE_MODE_MAP);\nexport const CROP_MODE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_CROP_MODE_MAP);\nexport const DELIVERY_MODE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_DELIVERY_MODE_MAP);\nexport const EFFECT_MODE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_EFFECT_MODE_MAP);\nexport const QUALITY_MODE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_QUALITY_MODE_MAP);\nexport const STREAMING_PROFILE_TO_ACTION_TYPE_MAP = objectFlip(ACTION_TYPE_TO_STREAMING_PROFILE_MODE_MAP);\n","import { Action } from \"../../internal/Action.js\";\nimport { FormatQualifier } from \"../../qualifiers/format/FormatQualifier.js\";\nimport { Qualifier } from \"../../internal/qualifier/Qualifier.js\";\nimport { DELIVERY_MODE_TO_ACTION_TYPE_MAP } from \"../../internal/internalConstants.js\";\n/**\n * @description Qualifies the delivery of an asset.\n * @memberOf Actions.Delivery\n * @extends SDK.Action\n */\nclass DeliveryAction extends Action {\n /**\n * @param {string} deliveryKey A generic Delivery Action Key (such as q, f, dn, etc.)\n * @param {string} deliveryType A Format Qualifiers for the action, such as Quality.auto()\n * @param {string} modelProperty internal model property of the action, for example quality uses `level` while dpr uses `density`\n * @see Visit {@link Actions.Delivery|Delivery} for an example\n */\n constructor(deliveryKey, deliveryType, modelProperty) {\n super();\n this._actionModel = {};\n let deliveryTypeValue;\n if (deliveryType instanceof FormatQualifier) {\n deliveryTypeValue = deliveryType.getValue();\n }\n else {\n deliveryTypeValue = deliveryType;\n }\n this._actionModel.actionType = DELIVERY_MODE_TO_ACTION_TYPE_MAP[deliveryKey];\n this._actionModel[modelProperty] = deliveryTypeValue;\n this.addQualifier(new Qualifier(deliveryKey, deliveryType));\n }\n}\nexport { DeliveryAction };\n","/**\n * @description Contains functions to select the mode when using a progressive format.\n * <b>Learn more</b>: {@link https://cloudinary.com/documentation/transformation_reference#fl_progressive|Progressive modes}\n * @memberOf Qualifiers\n * @namespace Progressive\n * @example\n * import {Cloudinary} from \"@cloudinary/url-gen\";\n * import {format} from \"@cloudinary/url-gen/actions/delivery\";\n * import {jpg} from \"@cloudinary/url-gen/qualifiers/format\";\n * import {steep} from \"@cloudinary/url-gen/qualifiers/progressive\";\n *\n * const yourCldInstance = new Cloudinary({cloud: {cloudName: 'demo'}});\n * const image = yourCldInstance.image('woman');\n * image.delivery(format(jpg()).progressive(steep()))\n */\nimport { FlagQualifier } from \"./flag/FlagQualifier.js\";\nclass ProgressiveQualifier extends FlagQualifier {\n constructor(mode) {\n super('progressive', mode);\n }\n}\n/**\n * @memberOf Qualifiers.Progressive\n */\nfunction none() {\n return new ProgressiveQualifier('none');\n}\n/**\n * @memberOf Qualifiers.Progressive\n */\nfunction semi() {\n return new ProgressiveQualifier('semi');\n}\n/**\n * @memberOf Qualifiers.Progressive\n */\nfunction steep() {\n return new ProgressiveQualifier('steep');\n}\n/**\n * @memberOf Qualifiers.Progressive\n */\nfunction progressive() {\n return new ProgressiveQualifier();\n}\nconst Progressive = {\n semi,\n none,\n steep,\n progressive,\n ProgressiveQualifier\n};\nexport { Progressive, semi, none, steep, progressive, ProgressiveQualifier };\n","import { lossy, preserveTransparency, progressive } from \"../../qualifiers/flag.js\";\nimport { DeliveryAction } from \"./DeliveryAction.js\";\nimport { ProgressiveQualifier } from \"../../qualifiers/progressive.js\";\n/**\n * @memberOf Actions.Delivery\n * @extends {Actions.Delivery.DeliveryAction}\n * @see Visit {@link Actions.Delivery|Delivery} for an example\n */\nclass DeliveryFormatAction extends DeliveryAction {\n constructor(deliveryKey, deliveryType) {\n super(deliveryKey, deliveryType, 'formatType');\n }\n /**\n * @description Uses lossy compression when delivering animated GIF files.\n * @return {this}\n */\n lossy() {\n this._actionModel.lossy = true;\n this.addFlag(lossy());\n return this;\n }\n /**\n * @description Uses progressive compression when delivering JPG file format.\n * @return {this}\n */\n progressive(mode) {\n if (mode instanceof ProgressiveQualifier) {\n this._actionModel.progressive = { mode: mode.getFlagValue() };\n this.addFlag(mode);\n }\n else {\n this._actionModel.progressive = { mode: mode };\n this.addFlag(progressive(mode));\n }\n return this;\n }\n /**\n * @description Ensures that images with a transparency channel are delivered in PNG format.\n */\n preserveTransparency() {\n this._actionModel.preserveTransparency = true;\n this.addFlag(preserveTransparency());\n return this;\n }\n static fromJson(actionModel) {\n const { formatType, lossy, progressive, preserveTransparency } = actionModel;\n let result;\n if (formatType) {\n result = new this('f', formatType);\n }\n else {\n result = new this('f');\n }\n if (progressive) {\n if (progressive.mode) {\n result.progressive(progressive.mode);\n }\n else {\n result.progressive();\n }\n }\n lossy && result.lossy();\n preserveTransparency && result.preserveTransparency();\n return result;\n }\n}\nexport { DeliveryFormatAction };\n","import { Action } from \"../internal/Action.js\";\nimport { BackgroundColor } from \"../actions/background/actions/BackgroundColor.js\";\nimport { FlagQualifier } from \"../qualifiers/flag/FlagQualifier.js\";\nimport { RawAction } from \"../internal/RawAction.js\";\nimport { isErrorObject } from \"../internal/models/IErrorObject.js\";\nimport { DeliveryFormatAction } from \"../actions/delivery/DeliveryFormatAction.js\";\n/**\n * @summary SDK\n * @description - Defines how to transform an asset\n * @memberOf SDK\n */\nclass Transformation {\n constructor() {\n this.actions = [];\n }\n /**\n * @param {SDK.Action | string} action\n * @return {this}\n */\n addAction(action) {\n let actionToAdd;\n if (typeof action === 'string') {\n if (action.indexOf('/') >= 0) {\n throw 'addAction cannot accept a string with a forward slash in it - /, use .addTransformation() instead';\n }\n else {\n actionToAdd = new RawAction(action);\n }\n }\n else {\n actionToAdd = action;\n }\n this.actions.push(actionToAdd);\n return this;\n }\n /**\n * @description Allows the injection of a raw transformation as a string into the transformation, or a Transformation instance that was previously created\n * @param {string | SDK.Transformation} tx\n * @example\n * import {Transformation} from \"@cloudinary/url-gen\";\n *\n * const transformation = new Transformation();\n * transformation.addTransformation('w_100/w_200/w_300');\n * @return {this}\n */\n addTransformation(tx) {\n if (tx instanceof Transformation) {\n // Concat the new actions into the existing actions\n this.actions = this.actions.concat(tx.actions);\n }\n else {\n this.actions.push(new RawAction(tx));\n }\n return this;\n }\n /**\n * @return {string}\n */\n toString() {\n return this.actions\n .map((action) => {\n return action.toString();\n })\n .filter((a) => a)\n .join('/');\n }\n /**\n * @description Delivers an animated GIF.\n * @param {AnimatedAction} animatedAction\n * @return {this}\n */\n animated(animatedAction) {\n return this.addAction(animatedAction);\n }\n /**\n * @description Adds a border around the image.\n * @param {Border} borderAction\n * @return {this}\n */\n border(borderAction) {\n return this.addAction(borderAction);\n }\n /**\n * @description Adjusts the shape of the delivered image. </br>\n * <b>Learn more:</b> {@link https://cloudinary.com/documentation/effects_and_artistic_enhancements#distort|Shape changes and distortion effects}\n * @param {IReshape} reshapeAction\n * @return {this}\n */\n reshape(reshapeAction) {\n return this.addAction(reshapeAction);\n }\n /**\n * @description Resize the asset using provided resize action\n * @param {ResizeSimpleAction} resizeAction\n * @return {this}\n */\n resize(resizeAction) {\n return this.addAction(resizeAction);\n }\n /**\n * @desc An alias to Action Delivery.quality\n * @param {string|number} quality\n * @return {this}\n */\n quality(quality) {\n this.addAction(new DeliveryFormatAction('q', quality));\n return this;\n }\n /**\n * @desc An alias to Action Delivery.format\n * @param {string} format\n * @return {this}\n */\n format(format) {\n this.addAction(new DeliveryFormatAction('f', format));\n return this;\n }\n /**\n * @description Rounds the specified corners of an image.\n * @param roundCornersAction\n * @return {this}\n */\n roundCorners(roundCornersAction) {\n return this.addAction(roundCornersAction);\n }\n /**\n * @description Adds an overlay over the base image.\n * @param {LayerAction} overlayAction\n * @return {this}\n */\n overlay(overlayAction) {\n return this.addAction(overlayAction);\n }\n /**\n * @description Adds an underlay under the base image.\n * @param {LayerAction} underlayAction\n * @return {this}\n */\n underlay(underlayAction) {\n underlayAction.setLayerType('u');\n return this.addAction(underlayAction);\n }\n /**\n * @description Defines an new user variable.\n * @param {VariableAction} variableAction\n * @return {this}\n */\n addVariable(variableAction) {\n return this.addAction(variableAction);\n }\n /**\n * @description Specifies a condition to be met before applying a transformation.\n * @param {ConditionalAction} conditionAction\n * @return {this}\n */\n conditional(conditionAction) {\n return this.addAction(conditionAction);\n }\n /**\n * @description Applies a filter or an effect on an asset.\n * @param {SimpleEffectAction} effectAction\n * @return {this}\n */\n effect(effectAction) {\n return this.addAction(effectAction);\n }\n /**\n * @description Applies adjustment effect on an asset.\n * @param action\n * @return {this}\n */\n adjust(action) {\n return this.addAction(action);\n }\n /**\n * @description Rotates the asset by the given angle.\n * @param {RotateAction} rotateAction\n * @return {this}\n */\n rotate(rotateAction) {\n return this.addAction(rotateAction);\n }\n /**\n * @description Applies a pre-defined named transformation of the given name.\n * @param {NamedTransformation} namedTransformation\n * @return {this}\n */\n namedTransformation(namedTransformation) {\n return this.addAction(namedTransformation);\n }\n /**\n * @description Applies delivery action.\n * @param deliveryAction\n * @return {this}\n */\n delivery(deliveryAction) {\n return this.addAction(deliveryAction);\n }\n /**\n * @description Sets the color of the background.\n * @param {Qualifiers.Color} color\n * @return {this}\n */\n backgroundColor(color) {\n return this.addAction(new BackgroundColor(color));\n }\n /**\n * @description Adds a layer in a Photoshop document.\n * @param action\n * @return {this}\n */\n psdTools(action) {\n return this.addAction(action);\n }\n /**\n * @description Extracts an image or a page using an index, a range, or a name from a layered media asset.\n * @param action\n * @return {this}\n */\n extract(action) {\n return this.addAction(action);\n }\n /**\n * @description Adds a flag as a separate action.\n * @param {Qualifiers.Flag | string} flagQualifier\n * @return {this}\n */\n addFlag(flagQualifier) {\n const action = new Action();\n let flagToAdd = flagQualifier;\n if (typeof flagQualifier === 'string') {\n flagToAdd = new FlagQualifier(flagQualifier);\n }\n action.addQualifier(flagToAdd);\n return this.addAction(action);\n }\n /**\n * @description Inject a custom function into the image transformation pipeline.\n * @return {this}\n */\n customFunction(customFunction) {\n return this.addAction(customFunction);\n }\n /**\n * Transcodes the video (or audio) to another format.\n * @param {Action} action\n * @return {this}\n */\n transcode(action) {\n return this.addAction(action);\n }\n /**\n * Applies the specified video edit action.\n *\n * @param {videoEditType} action\n * @return {this}\n */\n videoEdit(action) {\n return this.addAction(action);\n }\n toJson() {\n const actions = [];\n for (const action of this.actions) {\n const json = action.toJson();\n if (isErrorObject(json)) {\n // Fail early and return an IErrorObject\n return json;\n }\n actions.push(json);\n }\n return { actions };\n }\n}\nexport { Transformation };\n","import { Transformation } from \"./Transformation.js\";\n/**\n * @summary SDK\n * @extends {SDK.Transformation}\n * @memberOf SDK\n */\nclass ImageTransformation extends Transformation {\n}\nexport { ImageTransformation };\n","import { Transformation } from \"./Transformation.js\";\n/**\n * @summary SDK\n * @extends {SDK.Transformation}\n * @memberOf SDK\n */\nclass VideoTransformation extends Transformation {\n}\nexport { VideoTransformation };\n","/**\n *\n * @param publicID\n */\nexport function isUrl(publicID) {\n return publicID.match(/^https?:\\//);\n}\n","/**\n *\n * @param publicID\n */\nexport function isFileName(publicID) {\n return publicID.indexOf('/') < 0;\n}\n","/**\n *\n * @param publicID\n */\nexport function publicIDContainsVersion(publicID) {\n return publicID.match(/^v[0-9]+/);\n}\n","import { isUrl } from \"./urlUtils/isUrl.js\";\nimport { isFileName } from \"./urlUtils/isFileName.js\";\nimport { publicIDContainsVersion } from \"./urlUtils/publicIDContainsVersion.js\";\n/**\n * Create the URL prefix for Cloudinary resources.\n * Available use cases\n * http://res.cloudinary.com/{cloudName}\n * https://res.cloudinary.com/{cloudName}\n * https://{cloudName}-res.cloudinary.com/\n * http://{domain}/${cloudName}\n * https://{domain}/${cloudName}\n * https://{domain}\n * @private\n *\n * @param {string} cloudName\n * @param {IURLConfig} urlConfig\n */\nfunction getUrlPrefix(cloudName, urlConfig) {\n const secure = urlConfig.secure;\n const privateCDN = urlConfig.privateCdn;\n const cname = urlConfig.cname;\n const secureDistribution = urlConfig.secureDistribution;\n if (!secure && !cname) {\n return `http://res.cloudinary.com/${cloudName}`;\n }\n if (secure && !secureDistribution && privateCDN) {\n return `https://${cloudName}-res.cloudinary.com`;\n }\n if (secure && !secureDistribution) {\n return `https://res.cloudinary.com/${cloudName}`;\n }\n if (secure && secureDistribution && privateCDN) {\n return `https://${secureDistribution}`;\n }\n if (secure && secureDistribution) {\n return `https://${secureDistribution}/${cloudName}`;\n }\n if (!secure && cname) {\n return `http://${cname}/${cloudName}`;\n }\n else {\n return 'ERROR';\n }\n}\n/**\n * @private\n * @param assetType\n */\nfunction handleAssetType(assetType) {\n //default to image\n if (!assetType) {\n return 'image';\n }\n return assetType;\n}\n/**\n * @private\n * @param deliveryType\n */\nfunction handleDeliveryType(deliveryType) {\n //default to upload\n if (!deliveryType) {\n return 'upload';\n }\n return deliveryType;\n}\n/**\n *\n * @param {string} publicID\n * @param {number} version\n * @param {boolean} forceVersion\n */\nfunction getUrlVersion(publicID, version, forceVersion) {\n const shouldForceVersion = forceVersion !== false;\n if (version) {\n return `v${version}`;\n }\n // In all these conditions we never force a version\n if (publicIDContainsVersion(publicID) || isUrl(publicID) || isFileName(publicID)) {\n return '';\n }\n return shouldForceVersion ? 'v1' : '';\n}\nexport { handleAssetType, getUrlVersion, handleDeliveryType, getUrlPrefix };\n","/**\n * @private\n * @description Adds left padding to a string with the desired substring the provided number of times\n * @example stringPad(foo, 3, 'a'') // -> aaafoo\n * @param {string} value\n * @param {number} _targetLength\n * @param {string} _padString\n */\nexport function stringPad(value, _targetLength, _padString) {\n let targetLength = _targetLength >> 0; //truncate if number or convert non-number to 0;\n let padString = String((typeof _padString !== 'undefined' ? _padString : ' '));\n if (value.length > targetLength) {\n return String(value);\n }\n else {\n targetLength = targetLength - value.length;\n if (targetLength > padString.length) {\n padString += repeatStringNumTimes(padString, targetLength / padString.length);\n }\n return padString.slice(0, targetLength) + String(value);\n }\n}\n/**\n * @description Repeat a string multiple times, cross-browser-safe alternative to string.repeat()\n * @param string\n * @param _times\n */\nfunction repeatStringNumTimes(string, _times) {\n let times = _times;\n let repeatedString = \"\";\n while (times > 0) {\n repeatedString += string;\n times--;\n }\n return repeatedString;\n}\n","import { stringPad } from \"./stringPad.js\";\n/**\n * This file maps sequences of 6 bit binary digits to a character in base64.\n * 000000 -> A\n * 110011 -> Z\n * 111111 -> /\n */\nconst chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nconst base64Map = {};\nlet num = 0;\nchars.split('').forEach((char) => {\n let key = num.toString(2);\n key = stringPad(key, 6, '0');\n base64Map[key] = char;\n num++;\n});\n/**\n * Map of [six-bit binary codes] -> [Base64 characters]\n */\nexport { base64Map };\n","/**\n * @private\n * @description Reverses the version positions, x.y.z turns to z.y.x\n * Example: 1.2.3 -> 03.02.01\n * @param {string} semVer Input can be either x.y.z or x.y\n * @return {string} in the form of zz.yy.xx (\n */\nexport function reverseVersion(semVer) {\n if (semVer.split('.').length < 2) {\n throw new Error('invalid semVer, must have at least two segments');\n }\n // Split by '.', reverse, create new array\n return semVer.split('.').reverse().join('.');\n}\n","import { stringPad } from \"./stringPad.js\";\n/**\n * @private\n * @description Pads each segment with '0' so they have length of 2\n * @param {string} semVer Input can be either x.y.z or x.y\n * @return {string} in the form of xx.yy.zz (\n */\nexport function padVersion(semVer) {\n if (semVer.split('.').length < 2) {\n throw new Error('invalid semVer, must have at least two segments');\n }\n // Split by '.', reverse, create new array with padded values and concat it together\n return semVer.split('.').map((segment) => {\n // try to cast to number\n const asNumber = +segment;\n if (isNaN(asNumber) || asNumber < 0) {\n throw 'Invalid version number provided';\n }\n return stringPad(segment, 2, '0');\n }).join('.');\n}\n","import { base64Map } from \"./base64Map.js\";\nimport { stringPad } from \"./stringPad.js\";\nimport { reverseVersion } from \"./reverseVersion.js\";\nimport { padVersion } from \"./padVersion.js\";\n/**\n * @private\n * @description Encodes a semVer-like version string\n * @param {string} semVer Input can be either x.y.z or x.y\n * @return {string} A string built from 3 characters of the base64 table that encode the semVer\n */\nexport function encodeVersion(semVer) {\n let strResult = '';\n // support x.y or x.y.z by using 'parts' as a variable\n const parts = semVer.split('.').length;\n const paddedStringLength = parts * 6; // we pad to either 12 or 18 characters\n // reverse (but don't mirror) the version. 1.5.15 -> 15.5.1\n const reversedSemver = reverseVersion(semVer);\n // Pad to two spaces, 15.5.1 -> 15.05.01\n const paddedSemver = padVersion(reversedSemver);\n // turn 15.05.01 to a string '150501' then to a number 150501\n const num = parseInt(paddedSemver.split('.').join(''));\n // Represent as binary, add left padding to 12 or 18 characters.\n // 150,501 -> 100100101111100101\n let paddedBinary = num.toString(2);\n paddedBinary = stringPad(paddedBinary, paddedStringLength, '0');\n // Stop in case an invalid version number was provided\n // paddedBinary must be built from sections of 6 bits\n if (paddedBinary.length % 6 !== 0) {\n throw 'Version must be smaller than 43.21.26)';\n }\n // turn every 6 bits into a character using the base64Map\n paddedBinary.match(/.{1,6}/g).forEach((bitString) => {\n // console.log(bitString);\n strResult += base64Map[bitString];\n });\n return strResult;\n}\n","/**\n * @private\n * @description Gets the analyticsOptions from options- should include sdkSemver, techVersion, sdkCode, and feature\n * @param {ITrackedPropertiesThroughAnalytics} options\n * @returns {IAnalyticsOptions}\n */\nexport function getAnalyticsOptions(options) {\n const analyticsOptions = {\n sdkSemver: options.sdkSemver,\n techVersion: options.techVersion,\n sdkCode: options.sdkCode,\n product: options.product,\n feature: '0',\n osType: options.osType,\n osVersion: options.osVersion,\n };\n if (options.accessibility) {\n analyticsOptions.feature = 'D';\n }\n if (options.lazyload) {\n analyticsOptions.feature = 'C';\n }\n if (options.responsive) {\n analyticsOptions.feature = 'A';\n }\n if (options.placeholder) {\n analyticsOptions.feature = 'B';\n }\n return analyticsOptions;\n}\n","const packageVersion = '1.21.0';\n/**\n * Export package version (injected during our build).\n * Reason for this is that If we import values from from package.json,\n * it will cause an error for users who do not have an 'import from json' plugin\n * as part of their build process / bundler.\n */\nexport { packageVersion };\n","import { base64Map } from \"./base64Map.js\";\n/**\n * @private\n * @description Encodes a semVer-like version string for OS\n * @param {string} semVer Input is x.y\n * @return {string} A string built from 2 characters of the base64 table that encode the semVer\n */\nexport function encodeOSVersion(semVer) {\n const [major, minor] = semVer.split('.');\n //convert to binary\n const binaryMajorVersion = parseInt(major).toString(2);\n const binaryMinorVersion = parseInt(minor).toString(2);\n //pad to 6\n const paddedMajor = binaryMajorVersion.padStart(6, '0');\n const paddedMinor = binaryMinorVersion.padStart(6, '0');\n return base64Map[paddedMajor] + base64Map[paddedMinor];\n}\n","import { encodeVersion } from \"./encodeVersion.js\";\nimport { getAnalyticsOptions } from \"./getAnalyticsOptions.js\";\nimport { packageVersion } from \"../internal/utils/packageVersion.js\";\nimport { encodeOSVersion } from \"./encodeOSVersion.js\";\n/**\n * @private\n * @description Try to get the node version out of process, if browser just return 0.0.0\n */\nfunction getNodeVersion() {\n const failedVersion = '0.0.0';\n if (typeof window !== 'undefined') {\n return failedVersion;\n }\n else {\n // node env\n try {\n return process.versions.node || failedVersion;\n }\n catch (e) {\n return failedVersion;\n }\n }\n}\n/**\n * @private\n * @description Ensure that all values ITrackedPropertiesThroughAnalytics are populated.\n * Accept a partial map of values and returns the complete interface of ITrackedPropertiesThroughAnalytics\n * @param {ITrackedPropertiesThroughAnalytics} trackedAnalytics\n * @param {ITrackedPropertiesThroughAnalytics} trackedAnalytics\n */\nfunction ensureShapeOfTrackedProperties(trackedAnalytics) {\n // try to get the process version from node, but if we're on the client return 0.0.0\n const defaults = {\n techVersion: getNodeVersion(),\n sdkCode: 'T',\n sdkSemver: packageVersion.split('-')[0],\n product: 'A',\n osType: 'Z',\n osVersion: '0.0',\n responsive: false,\n placeholder: false,\n lazyload: false,\n accessibility: false\n };\n if (!trackedAnalytics) {\n return defaults;\n }\n else {\n return Object.assign(Object.assign({}, defaults), trackedAnalytics);\n }\n}\n/**\n * @private\n * @description Creates the complete SDK signature by using all the values provided by ITrackedPropertiesThroughAnalytics\n * Creation of the signature\n * - Set the AlgoVersion of the encoding, this is an internal letter that represents the version\n * of our encoding algorithm, it will allow us to perform breaking changes if we'll need them.\n * - Take the constant SDK code (Arbitrary letter chosen for each SDK, for Base that letter is 'T')\n * this is used to tell apart which SDK is being tracked.\n * - Take the {major.minor} versions of the node version (techVersion) (14.2, 16.2 etc.)\n * - Take the full semver of the SDK you wish to track\n * - Take the features used(lazy, placeholder etc.) and turn them to a letter (for example accessibility -> D)\n * - Before appending the string, the Versions must be encoded, see the function `encodeVersion` for more details\n * - Append all the variables to a single string\n * - In any case of an error, return the single letter 'E'\n *\n * @return {string} sdkAnalyticsSignature\n */\nexport function getSDKAnalyticsSignature(_trackedAnalytics) {\n const trackedAnalytics = ensureShapeOfTrackedProperties(_trackedAnalytics);\n const analyticsOptions = getAnalyticsOptions(trackedAnalytics);\n try {\n const twoPartVersion = removePatchFromSemver(analyticsOptions.techVersion);\n const encodedSDKVersion = encodeVersion(analyticsOptions.sdkSemver);\n const encodedTechVersion = encodeVersion(twoPartVersion);\n const encodedOSVersion = encodeOSVersion(analyticsOptions.osVersion);\n const featureCode = analyticsOptions.feature;\n const SDKCode = analyticsOptions.sdkCode;\n const { product, osType } = analyticsOptions;\n const algoVersion = 'D'; // The algo version is determined here, it should not be an argument\n return `${algoVersion}${product}${SDKCode}${encodedSDKVersion}${encodedTechVersion}${osType}${encodedOSVersion}${featureCode}`;\n }\n catch (e) {\n // Either SDK or Node versions were unparsable\n return 'E';\n }\n}\n/**\n * @private\n * @description Removes patch version from the semver if it exists\n * Turns x.y.z OR x.y into x.y\n * @param {'x.y.z' | 'x.y' | string} semVerStr\n */\nfunction removePatchFromSemver(semVerStr) {\n const parts = semVerStr.split('.');\n return `${parts[0]}.${parts[1]}`;\n}\n","import { getUrlPrefix, getUrlVersion, handleAssetType, handleDeliveryType } from \"../internal/url/cloudinaryURL.js\";\nimport URLConfig from \"../config/URLConfig.js\";\nimport { getSDKAnalyticsSignature } from \"../sdkAnalytics/getSDKAnalyticsSignature.js\";\n/**\n * This const contains all the valid combination of asset/delivery for URL shortening purposes\n * It's exported because it's used in a test, but it's not really shared enough to belong in a separate file\n */\nexport const SEO_TYPES = {\n \"image/upload\": \"images\",\n \"image/private\": \"private_images\",\n \"image/authenticated\": \"authenticated_images\",\n \"raw/upload\": \"files\",\n \"video/upload\": \"videos\"\n};\n/**\n * @description Cloudinary file without a transformation\n * @summary SDK\n * @memberOf SDK\n */\nclass CloudinaryFile {\n constructor(publicID, cloudConfig = {}, urlConfig) {\n this.setPublicID(publicID);\n this.setCloudConfig(cloudConfig);\n this.setURLConfig(urlConfig);\n }\n /**\n * @description Sets the URL Config for this asset\n * @param urlConfig\n * @return {this}\n */\n setURLConfig(urlConfig) {\n this.urlConfig = new URLConfig(urlConfig);\n return this;\n }\n /**\n * @description Sets the Cloud Config for this asset\n * @param urlConfig\n * @return {this}\n */\n setCloudConfig(cloudConfig) {\n this.cloudName = cloudConfig.cloudName;\n this.apiKey = cloudConfig.apiKey;\n this.apiSecret = cloudConfig.apiSecret;\n this.authToken = cloudConfig.authToken;\n return this;\n }\n /**\n * @description Sets the public ID of the asset.\n * @param {string} publicID The public ID of the asset.\n * @return {this}\n */\n setPublicID(publicID) {\n // PublicID must be a string!\n this.publicID = publicID ? publicID.toString() : '';\n return this;\n }\n /**\n * @description Sets the delivery type of the asset.\n * @param {DELIVERY_TYPE | string} newType The type of the asset.\n * @return {this}\n */\n setDeliveryType(newType) {\n this.deliveryType = newType;\n return this;\n }\n /**\n * @description Sets the URL SEO suffix of the asset.\n * @param {string} newSuffix The SEO suffix.\n * @return {this}\n */\n setSuffix(newSuffix) {\n this.suffix = newSuffix;\n return this;\n }\n /**\n * @description Sets the signature of the asset.\n * @param {string} signature The signature.\n * @return {this}\n */\n setSignature(signature) {\n this.signature = signature;\n return this;\n }\n /**\n * @description Sets the version of the asset.\n * @param {string} newVersion The version of the asset.\n * @return {this}\n */\n setVersion(newVersion) {\n if (newVersion) {\n this.version = newVersion;\n }\n return this;\n }\n /**\n * @description Sets the asset type.\n * @param {string} newType The type of the asset.\n * @return {this}\n */\n setAssetType(newType) {\n if (newType) {\n this.assetType = newType;\n }\n return this;\n }\n sign() {\n return this;\n }\n /**\n * @description Serializes to URL string\n * @param overwriteOptions\n */\n toURL(overwriteOptions = {}) {\n return this.createCloudinaryURL(null, overwriteOptions.trackedAnalytics);\n }\n /**\n * @description Validate various options before attempting to create a URL\n * The function will throw in case a violation\n * @throws Validation errors\n */\n validateAssetForURLCreation() {\n if (typeof this.cloudName === 'undefined') {\n throw 'You must supply a cloudName when initializing the asset';\n }\n const suffixContainsDot = this.suffix && this.suffix.indexOf('.') >= 0;\n const suffixContainsSlash = this.suffix && this.suffix.indexOf('/') >= 0;\n if (suffixContainsDot || suffixContainsSlash) {\n throw '`suffix`` should not include . or /';\n }\n }\n /**\n * @description return an SEO friendly name for a combination of asset/delivery, some examples:\n * * image/upload -> images\n * * video/upload -> videos\n * If no match is found, return `{asset}/{delivery}`\n */\n getResourceType() {\n const assetType = handleAssetType(this.assetType);\n const deliveryType = handleDeliveryType(this.deliveryType);\n const hasSuffix = !!this.suffix;\n const regularSEOType = `${assetType}/${deliveryType}`;\n const shortSEOType = SEO_TYPES[`${assetType}/${deliveryType}`];\n const useRootPath = this.urlConfig.useRootPath;\n const shorten = this.urlConfig.shorten;\n // Quick exit incase of useRootPath\n if (useRootPath) {\n if (regularSEOType === 'image/upload') {\n return ''; // For image/upload we're done, just return nothing\n }\n else {\n throw new Error(`useRootPath can only be used with assetType: 'image' and deliveryType: 'upload'. Provided: ${regularSEOType} instead`);\n }\n }\n if (shorten && regularSEOType === 'image/upload') {\n return 'iu';\n }\n if (hasSuffix) {\n if (shortSEOType) {\n return shortSEOType;\n }\n else {\n throw new Error(`URL Suffix only supported for ${Object.keys(SEO_TYPES).join(', ')}, Provided: ${regularSEOType} instead`);\n }\n }\n // If all else fails, return the regular image/upload combination (asset/delivery)\n return regularSEOType;\n }\n getSignature() {\n if (this.signature) {\n return `s--${this.signature}--`;\n }\n else {\n return '';\n }\n }\n /**\n *\n * @description Creates a fully qualified CloudinaryURL\n * @return {string} CloudinaryURL\n * @throws Validation Errors\n */\n createCloudinaryURL(transformation, trackedAnalytics) {\n // In accordance with the existing implementation, if no publicID exists we should return nothing.\n if (!this.publicID) {\n return '';\n }\n // Throws if some options are mis-configured\n // See the function for more information on when it throws\n this.validateAssetForURLCreation();\n const prefix = getUrlPrefix(this.cloudName, this.urlConfig);\n const transformationString = transformation ? transformation.toString() : '';\n const version = getUrlVersion(this.publicID, this.version, this.urlConfig.forceVersion);\n const publicID = this.publicID;\n if (typeof transformation === 'string') {\n const url = [prefix, this.getResourceType(), this.getSignature(), transformationString, version, publicID.replace(/,/g, '%2C'), this.suffix]\n .filter((a) => a)\n .join('/');\n return url;\n }\n else {\n // Avoid applying encodeURI on entire string in case where we have transformations with comma (i.e. f_auto,q_auto)\n // Since encodeURI does not encode commas we replace commas *only* on the publicID\n const safeURL = [\n encodeURI(prefix),\n this.getResourceType(),\n this.getSignature(),\n encodeURI(transformationString),\n version,\n encodeURI(publicID).replace(/,/g, '%2C'),\n this.suffix && encodeURI(this.suffix)\n ]\n .filter((a) => a)\n .join('/')\n .replace(/\\?/g, '%3F')\n .replace(/=/g, '%3D');\n const shouldAddAnalytics = this.urlConfig.analytics !== false && !(publicID.includes('?'));\n let queryParamsString = '';\n if (typeof (this.urlConfig.queryParams) === 'object') {\n try {\n const queryParams = new URLSearchParams(this.urlConfig.queryParams);\n if (shouldAddAnalytics) {\n queryParams.set(\"_a\", getSDKAnalyticsSignature(trackedAnalytics));\n }\n queryParamsString = queryParams.toString();\n }\n catch (err) {\n console.error('Error: URLSearchParams is not available so the queryParams object cannot be parsed, please try passing as an already parsed string');\n }\n }\n else {\n queryParamsString = this.urlConfig.queryParams || '';\n if (shouldAddAnalytics) {\n queryParamsString += `${(queryParamsString.length > 0 ? '&' : '')}_a=${getSDKAnalyticsSignature(trackedAnalytics)}`;\n }\n }\n if (queryParamsString) {\n return `${safeURL}?${queryParamsString}`;\n }\n else {\n return safeURL;\n }\n }\n }\n}\nexport { CloudinaryFile };\n","import { CloudinaryFile } from \"./CloudinaryFile.js\";\nimport { DeliveryFormatAction } from \"@cloudinary/transformation-builder-sdk/actions/delivery/DeliveryFormatAction\";\n/**\n * @desc Cloudinary Transformable interface, extended by any class that needs a Transformation Interface\n * @summary SDK\n * @memberOf SDK\n */\nclass CloudinaryTransformable extends CloudinaryFile {\n constructor(publicID, cloudConfig, urlConfig, transformation) {\n /* istanbul ignore next */\n super(publicID, cloudConfig, urlConfig);\n this.transformation = transformation;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Animated} animated\n * @return {this}\n */\n animated(animated) {\n this.transformation.animated(animated);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Border} border\n * @return {this}\n */\n border(border) {\n this.transformation.border(border);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Reshape} reshape\n * @return {this}\n */\n reshape(reshape) {\n this.transformation.reshape(reshape);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Resize} resize\n * @return {this}\n */\n resize(resize) {\n this.transformation.resize(resize);\n return this;\n }\n /**\n * @desc An alias to Action Delivery.quality\n * @param {string|number} quality\n * @return {this}\n */\n quality(quality) {\n this.addAction(new DeliveryFormatAction('q', quality));\n return this;\n }\n /**\n * @desc An alias to Action Delivery.format\n * @param {string} format\n * @return {this}\n */\n format(format) {\n this.addAction(new DeliveryFormatAction('f', format));\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.RoundCorners} roundCorners\n * @return {this}\n */\n roundCorners(roundCorners) {\n this.transformation.roundCorners(roundCorners);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @return {this}\n */\n overlay(overlayAction) {\n this.transformation.overlay(overlayAction);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Variable} variableAction\n * @return {this}\n */\n addVariable(variableAction) {\n this.transformation.addVariable(variableAction);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Condition} conditionalAction\n * @return {this}\n */\n conditional(conditionalAction) {\n this.transformation.conditional(conditionalAction);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Effect} effect\n * @return {this}\n */\n effect(effect) {\n this.transformation.effect(effect);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Adjust} action\n * @return {this}\n */\n adjust(action) {\n this.transformation.adjust(action);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Rotate} rotate\n * @return {this}\n */\n rotate(rotate) {\n this.transformation.rotate(rotate);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.NamedTransformation} namedTransformation\n * @return {this}\n */\n namedTransformation(namedTransformation) {\n this.transformation.namedTransformation(namedTransformation);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Delivery} deliveryAction\n * @return {this}\n */\n delivery(deliveryAction) {\n this.transformation.delivery(deliveryAction);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Qualifiers.color} color\n * @return {this}\n */\n backgroundColor(color) {\n this.transformation.backgroundColor(color);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.PSDTools} action\n * @return {this}\n */\n psdTools(action) {\n this.transformation.psdTools(action);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Extract} action\n * @return {this}\n */\n extract(action) {\n this.transformation.extract(action);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Qualifiers.Flag | string} flagQualifier\n * @return {this}\n */\n addFlag(flagQualifier) {\n this.transformation.addFlag(flagQualifier);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.CustomFunction} customFunction\n * @return {this}\n */\n customFunction(customFunction) {\n this.transformation.customFunction(customFunction);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {SDK.Action | string} action\n * @return {this}\n */\n addAction(action) {\n this.transformation.addAction(action);\n return this;\n }\n /**\n * @description Extend your transformation with another transformation\n * @param { string | SDK.Transformation } tx\n */\n addTransformation(tx) {\n this.transformation.addTransformation(tx);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @return {string}\n */\n toString() {\n return this.transformation.toString();\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @return {this}\n */\n underlay(underlayAction) {\n this.transformation.underlay(underlayAction);\n return this;\n }\n toURL(overwriteOptions = {}) {\n return this.createCloudinaryURL(this.transformation, overwriteOptions === null || overwriteOptions === void 0 ? void 0 : overwriteOptions.trackedAnalytics);\n }\n}\nexport { CloudinaryTransformable };\n","import { ImageTransformation } from \"@cloudinary/transformation-builder-sdk/transformation/ImageTransformation\";\nimport { CloudinaryTransformable } from \"./CloudinaryTransformable.js\";\n/**\n * @desc Cloudinary image asset, with image-related transformations\n * @summary SDK\n * @memberOf SDK\n */\nclass CloudinaryImage extends CloudinaryTransformable {\n constructor(publicID, cloudConfig, urlConfig) {\n /* istanbul ignore next */\n super(publicID, cloudConfig, urlConfig, new ImageTransformation());\n }\n}\nexport { CloudinaryImage };\n","import { CloudinaryTransformable } from \"./CloudinaryTransformable.js\";\nimport { VideoTransformation } from \"../transformation/VideoTransformation.js\";\n/**\n * @desc Cloudinary video asset, with video-related transformations\n * @summary SDK\n * @memberOf SDK\n */\nclass CloudinaryVideo extends CloudinaryTransformable {\n constructor(publicID, cloudConfig, urlConfig) {\n /* istanbul ignore next */\n super(publicID, cloudConfig, urlConfig, new VideoTransformation());\n this.assetType = 'video';\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.Transcode} action\n * @return {this}\n */\n transcode(action) {\n this.transformation.transcode(action);\n return this;\n }\n /**\n * @desc A proxy to {@link SDK.Transformation| Transformation} - Calls the same method contained in this.transformation\n * @param {Actions.VideoEdit} action\n * @return {this}\n */\n videoEdit(action) {\n this.transformation.videoEdit(action);\n return this;\n }\n}\nexport { CloudinaryVideo };\n","import { CloudinaryImage } from \"../assets/CloudinaryImage.js\";\nimport { CloudinaryVideo } from \"../assets/CloudinaryVideo.js\";\nclass Cloudinary {\n constructor(cloudinaryConfig) {\n if (cloudinaryConfig) {\n this.cloudinaryConfig = cloudinaryConfig;\n }\n }\n image(publicID) {\n return new CloudinaryImage(publicID, this.cloudinaryConfig.cloud, this.cloudinaryConfig.url);\n }\n video(publicID) {\n return new CloudinaryVideo(publicID, this.cloudinaryConfig.cloud, this.cloudinaryConfig.url);\n }\n setConfig(cloudinaryConfig) {\n this.cloudinaryConfig = cloudinaryConfig;\n return this;\n }\n getConfig() {\n return this.cloudinaryConfig;\n }\n extendConfig() {\n // Future implementation\n }\n}\nexport { Cloudinary };\n","import type { CloudinaryImage } from \"@cloudinary/url-gen\";\nimport { Cloudinary } from \"@cloudinary/url-gen\";\nimport { useMemo } from \"react\";\n\n/**\n * Cloudinary image hook props.\n * @property {string} publicId The publicId location in cloudinary.\n * @property {string} [format] The image format desired (e.g., png, jpg).\n */\ninterface IUseCloudinaryImageProps {\n readonly publicId: string;\n readonly format?: string;\n}\n\nexport const useCloudinaryImage = ({\n publicId,\n format = \"webp\",\n}: IUseCloudinaryImageProps): CloudinaryImage => {\n const cloudinaryInstance = useMemo((): Cloudinary => {\n return new Cloudinary({\n cloud: {\n cloudName: \"fluid-attacks\",\n },\n });\n }, []);\n\n const image = useMemo((): CloudinaryImage => {\n return cloudinaryInstance.image(publicId).format(format);\n }, [cloudinaryInstance, publicId, format]);\n\n return image;\n};\n","import { lazyload, placeholder, AdvancedImage } from \"@cloudinary/react\";\nimport React from \"react\";\n\nimport { useCloudinaryImage } from \"hooks\";\n\nimport { IImageProps } from \"./types\";\n\nconst CloudImage = ({\n alt = \"img\",\n height = \"\",\n width = \"\",\n plugins = [lazyload(), placeholder()],\n publicId,\n}: Readonly<IImageProps>): JSX.Element => {\n const image = useCloudinaryImage({ publicId });\n\n return (\n <AdvancedImage\n alt={alt}\n cldImg={image}\n height={height}\n plugins={plugins}\n width={width}\n />\n );\n};\n\nconst MemoizedImage = React.memo(CloudImage);\n\nexport type { IImageProps };\nexport { MemoizedImage as CloudImage };\n","import { styled } from \"styled-components\";\n\nimport { BaseComponent } from \"components/@core/styles\";\n\ninterface IStyledContainerProps {\n $center?: boolean;\n}\n\nconst StyledContainer = styled(BaseComponent)<IStyledContainerProps>`\n ${({ $center = false }): string => `\n ${$center ? \"margin: auto;\" : \"\"}\n`}\n`;\n\nexport { StyledContainer };\n","import type { PropsWithChildren, Ref } from \"react\";\nimport { forwardRef } from \"react\";\n\nimport { StyledContainer } from \"./styles\";\nimport type { IContainerProps } from \"./types\";\n\nconst Container = forwardRef(function Container(\n {\n as = \"div\",\n center,\n children,\n id,\n onHover,\n onLeave,\n ...props\n }: Readonly<PropsWithChildren<IContainerProps>>,\n ref: Ref<HTMLDivElement>,\n): JSX.Element {\n return (\n <StyledContainer\n $center={center}\n as={as}\n id={id}\n onMouseLeave={onLeave}\n onMouseOver={onHover}\n ref={ref}\n {...props}\n >\n {children}\n </StyledContainer>\n );\n});\n\nexport { Container };\n","import { CloudImage } from \"components/cloud-image\";\nimport { Container } from \"components/container\";\n\nimport { ILogoProps, TLogoVariant } from \"./types\";\n\nconst containerProps: Record<TLogoVariant, { height: string; width: string }> =\n {\n footer: { height: \"57px\", width: \"315px\" },\n header: { height: \"35px\", width: \"160px\" },\n icon: { height: \"40px\", width: \"40px\" },\n };\n\nconst Logo = ({ publicId, variant }: Readonly<ILogoProps>): JSX.Element => {\n return (\n <Container {...containerProps[variant]}>\n <CloudImage alt={\"logo\"} publicId={publicId} />\n </Container>\n );\n};\n\nexport { Logo };\n","import { styled } from \"styled-components\";\n\nimport type { TTextProps } from \"./types\";\nimport { BaseTextComponent } from \"components/@core\";\n\ninterface IStyledTextProps {\n $color?: TTextProps[\"color\"];\n $display?: TTextProps[\"display\"];\n $fontFamily?: TTextProps[\"fontFamily\"];\n $fontWeight?: TTextProps[\"fontWeight\"];\n $letterSpacing?: TTextProps[\"letterSpacing\"];\n $lineSpacing?: TTextProps[\"lineSpacing\"];\n $size: TTextProps[\"size\"];\n $wordBreak?: TTextProps[\"wordBreak\"];\n}\n\ntype TStyledHeadingProps = IStyledTextProps;\n\nconst StyledHeading = styled(BaseTextComponent)<TStyledHeadingProps>`\n ${({\n theme,\n $color = theme.palette.gray[800],\n $display = \"block\",\n $fontFamily = theme.typography.type.poppins,\n $fontWeight = \"bold\",\n $letterSpacing = 0,\n $lineSpacing = theme.spacing[1.5],\n $size,\n $wordBreak = \"normal\",\n }): string => `\n color: ${$color};\n display: ${$display};\n font-family: ${$fontFamily};\n font-size: ${theme.typography.heading[$size]};\n font-weight: ${theme.typography.weight[$fontWeight]};\n letter-spacing: ${$letterSpacing};\n line-height: ${$lineSpacing};\n width: ${$display === \"block\" ? \"100%\" : \"auto\"};\n word-break: ${$wordBreak};\n `}\n`;\n\nconst StyledText = styled(BaseTextComponent)<IStyledTextProps>`\n ${({\n theme,\n $color = theme.palette.gray[600],\n $display = \"block\",\n $fontFamily = theme.typography.type.primary,\n $fontWeight = \"regular\",\n $letterSpacing = 0,\n $lineSpacing = theme.spacing[1.25],\n $size,\n $wordBreak = \"normal\",\n }): string => `\n color: ${$color};\n display: ${$display};\n font-family: ${$fontFamily};\n font-size: ${theme.typography.heading[$size]};\n font-weight: ${$fontWeight};\n letter-spacing: ${$letterSpacing};\n line-height: ${$lineSpacing};\n width: ${$display === \"block\" ? \"100%\" : \"auto\"};\n word-break: ${$wordBreak};\n `}\n`;\n\nexport { StyledHeading, StyledText };\n","import type { PropsWithChildren, Ref } from \"react\";\nimport { forwardRef } from \"react\";\n\nimport { StyledHeading } from \"../styles\";\nimport type { THeadingProps } from \"../types\";\n\nconst Heading = forwardRef(function Heading(\n {\n children,\n color,\n display,\n fontFamily,\n fontWeight,\n letterSpacing,\n lineSpacing,\n size,\n wordBreak,\n ...props\n }: Readonly<PropsWithChildren<THeadingProps>>,\n ref: Ref<HTMLParagraphElement>,\n): JSX.Element {\n return (\n <StyledHeading\n $color={color}\n $display={display}\n $fontFamily={fontFamily}\n $fontWeight={fontWeight}\n $letterSpacing={letterSpacing}\n lineSpacing={lineSpacing}\n $size={size}\n $wordBreak={wordBreak}\n ref={ref}\n {...props}\n >\n {children}\n </StyledHeading>\n );\n});\n\nexport { Heading };\n","import type { PropsWithChildren, Ref } from \"react\";\nimport { forwardRef } from \"react\";\n\nimport { StyledText } from \"../styles\";\nimport type { TTextProps } from \"../types\";\n\nconst Text = forwardRef(function Text(\n {\n children,\n color,\n display,\n fontFamily,\n fontWeight,\n letterSpacing,\n lineSpacing,\n size,\n wordBreak,\n ...props\n }: Readonly<PropsWithChildren<TTextProps>>,\n ref: Ref<HTMLParagraphElement>,\n): JSX.Element {\n return (\n <StyledText\n $color={color}\n $display={display}\n $fontFamily={fontFamily}\n $fontWeight={fontWeight}\n $letterSpacing={letterSpacing}\n lineSpacing={lineSpacing}\n $size={size}\n $wordBreak={wordBreak}\n ref={ref}\n {...props}\n >\n {children}\n </StyledText>\n );\n});\n\nexport { Text };\n"],"names":["variantBuilder","variants","theme","variant","hiddenProps","__assign","t","s","i","n","p","__spreadArray","to","from","pack","l","ar","memoize","fn","cache","arg","reactPropsRegex","isPropValid","prop","MS","MOZ","WEBKIT","COMMENT","RULESET","DECLARATION","IMPORT","KEYFRAMES","LAYER","abs","assign","hash","value","length","charat","trim","match","pattern","replace","replacement","indexof","search","position","index","substr","begin","end","strlen","sizeof","append","array","combine","callback","filter","line","column","character","characters","node","root","parent","type","props","children","siblings","copy","lift","char","prev","next","peek","caret","slice","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","prefix","element","_","a","b","c","d","e","f","serialize","output","stringify","middleware","collection","rulesheet","prefixer","unitlessKeys","m","v","g","S","w","E","N","P","o","r","C","I","A","O","D","R","T","V","F","M","$","B","L","G","Y","W","q","H","U","J","X","Z","K","Q","ee","te","ne","oe","re","se","ie","ae","ce","le","ue","pe","de","he","fe","me","ye","ve","ge","Se","we","be","Ee","Ne","Pe","u","_e","Ce","Ie","Ae","Oe","De","Re","Te","ke","je","xe","Ve","Fe","d.RULESET","d.prefixer","d.stringify","d.compile","d.serialize","d.middleware","d.rulesheet","Me","ze","$e","Ge","We","qe","He","Ue","Je","h","Xe","Ze","Ke","Qe","et","ot","rt","st","it","at","ct","lt","ut","pt","dt","St","require$$0","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","getWrappedName","outerType","innerType","wrapperName","displayName","functionName","getContextName","getComponentNameFromType","context","provider","outerName","lazyComponent","payload","init","disabledDepth","prevLog","prevInfo","prevWarn","prevError","prevGroup","prevGroupCollapsed","prevGroupEnd","disabledLog","disableLogs","reenableLogs","ReactCurrentDispatcher","describeBuiltInComponentFrame","name","source","ownerFn","reentry","componentFrameCache","PossiblyWeakMap","describeNativeComponentFrame","construct","frame","control","previousPrepareStackTrace","previousDispatcher","Fake","sample","sampleLines","controlLines","_frame","syntheticFrame","describeFunctionComponentFrame","shouldConstruct","Component","prototype","describeUnknownElementTypeFrameInDEV","hasOwnProperty","loggedTypeFailures","setCurrentlyValidatingElement","owner","checkPropTypes","typeSpecs","values","location","componentName","has","typeSpecName","error$1","err","ex","isArrayImpl","isArray","typeName","hasToStringTag","willCoercionThrow","testStringCoercion","checkKeyStringCoercion","ReactCurrentOwner","RESERVED_PROPS","specialPropKeyWarningShown","specialPropRefWarningShown","didWarnAboutStringRefs","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","child","iteratorFn","iterator","step","validatePropTypes","propTypes","_name","validateFragmentProps","fragment","keys","jsxWithValidation","isStaticChildren","validType","sourceInfo","typeString","jsxWithValidationStatic","jsxWithValidationDynamic","jsx","jsxs","reactJsxRuntime_development","jsxRuntimeModule","require$$1","gray","primary","complementary","warning","success","gradients","typography","shadows","breakpoints","spacing","icons","uniqueIcons","CustomThemeProvider","ThemeProvider","formatPropIf","setPadding","pr","pb","pl","top","right","bottom","left","setMargin","mt","mr","mb","ml","setPosition","zIndex","setBorder","border","borderTop","borderRight","borderBottom","borderLeft","borderColor","borderRadius","getScrollX","scroll","getScrollY","setDisplay","visibility","display","height","width","maxHeight","maxWidth","minHeight","minWidth","shadow","gap","bgColor","bgGradient","flexDirection","flexGrow","justify","justifySelf","alignItems","alignSelf","wrap","setText","color","fontFamily","fontSize","fontWeight","letterSpacing","lineSpacing","textAlign","textDecoration","textOverflow","whiteSpace","wordBreak","wordWrap","setInteraction","cursor","borderColorHover","bgColorHover","shadowHover","transition","getStyledConfig","BaseComponent","styled","BaseTextComponent","commonjsGlobal","lodash_clonedeep","module","exports","LARGE_ARRAY_SIZE","HASH_UNDEFINED","MAX_SAFE_INTEGER","argsTag","arrayTag","boolTag","dateTag","errorTag","funcTag","genTag","mapTag","numberTag","objectTag","promiseTag","regexpTag","setTag","stringTag","symbolTag","weakMapTag","arrayBufferTag","dataViewTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","reRegExpChar","reFlags","reIsHostCtor","reIsUint","cloneableTags","freeGlobal","freeSelf","freeExports","freeModule","moduleExports","addMapEntry","map","pair","addSetEntry","set","arrayEach","iteratee","arrayPush","arrayReduce","accumulator","initAccum","baseTimes","result","getValue","isHostObject","mapToArray","overArg","func","transform","setToArray","arrayProto","funcProto","objectProto","coreJsData","maskSrcKey","uid","funcToString","objectToString","reIsNative","Buffer","Symbol","Uint8Array","getPrototype","objectCreate","propertyIsEnumerable","splice","nativeGetSymbols","nativeIsBuffer","nativeKeys","DataView","getNative","Map","Promise","Set","WeakMap","nativeCreate","dataViewCtorString","toSource","mapCtorString","promiseCtorString","setCtorString","weakMapCtorString","symbolProto","symbolValueOf","Hash","entries","entry","hashClear","hashDelete","hashGet","data","hashHas","hashSet","ListCache","listCacheClear","listCacheDelete","assocIndexOf","lastIndex","listCacheGet","listCacheHas","listCacheSet","MapCache","mapCacheClear","mapCacheDelete","getMapData","mapCacheGet","mapCacheHas","mapCacheSet","Stack","stackClear","stackDelete","stackGet","stackHas","stackSet","pairs","arrayLikeKeys","inherited","isArguments","skipIndexes","isIndex","assignValue","objValue","eq","baseAssign","copyObject","baseClone","isDeep","isFull","customizer","isObject","isArr","initCloneArray","copyArray","tag","getTag","isFunc","isBuffer","cloneBuffer","initCloneObject","copySymbols","initCloneByTag","stacked","getAllKeys","subValue","baseCreate","proto","baseGetAllKeys","keysFunc","symbolsFunc","baseGetTag","baseIsNative","isMasked","isFunction","baseKeys","isPrototype","buffer","cloneArrayBuffer","arrayBuffer","cloneDataView","dataView","cloneMap","cloneFunc","cloneRegExp","regexp","cloneSet","cloneSymbol","symbol","cloneTypedArray","typedArray","newValue","getSymbols","isKeyable","stubArray","Ctor","ctorString","cloneDeep","other","isArrayLikeObject","isArrayLike","isLength","isObjectLike","stubFalse","__assign$1","__awaiter","thisArg","_arguments","generator","adopt","resolve","reject","fulfilled","rejected","__generator","body","verb","op","render","pluginCloudinaryAsset","plugins","pluginState","analyticsOptions","response","_a","getAnalyticsOptions","options","features","HtmlImageLayer","userCloudinaryImage","baseAnalyticsOptions","_this","pluginCloudinaryImage","pluginResponse","featuredAnalyticsOptions","QualifierValue$1","qualifierValue","message","createUnsupportedError","UnsupportedError","qualifierToJson","QualifierModel$1","QualifierModel","QualifierValue","Qualifier","flagType","flagValue","mapToSortedArray","flags","flag","actionToJson","_b","_c","actionModelIsNotEmpty","sourceTransformationError","ActionModel$1","ActionModel","qualifier","FlagQualifier","qualifierKey","NamedRegion","Action","CustomRegion","model","customRegion","custom","faces","ocr$1","BlurAction","strength","blurRegion","actionModel","region","objectFlip","obj","ACTION_TYPE_TO_CROP_MODE_MAP","ACTION_TYPE_TO_DELIVERY_MODE_MAP","ACTION_TYPE_TO_EFFECT_MODE_MAP","ACTION_TYPE_TO_QUALITY_MODE_MAP","ACTION_TYPE_TO_STREAMING_PROFILE_MODE_MAP","CHROMA_VALUE_TO_CHROMA_MODEL_ENUM","COLOR_SPACE_MODEL_MODE_TO_COLOR_SPACE_MODE_MAP","CHROMA_MODEL_ENUM_TO_CHROMA_VALUE","CROP_MODE_TO_ACTION_TYPE_MAP","DELIVERY_MODE_TO_ACTION_TYPE_MAP","EFFECT_MODE_TO_ACTION_TYPE_MAP","SimpleEffectAction","effectType","qualifierEffect","actionType","LeveledEffectAction","prepareColor","VectorizeEffectAction","num","str","paths","cornersLevel","despeckleLevel","detailLevel","numOfColors","EffectActionWithLevel","AssistColorBlindEffectAction","stripesStrength","ColorizeEffectAction","Pixelate","squareSize","pixelateRegion","blur","blurLevel","grayscale","colorize","colorizeLevel","vectorize","assistColorBlind","pixelate","RawAction$1","raw","isErrorObject","errorObj","ignoreInitialAspectRatio","lossy","preserveTransparency","progressive","mode","regionRelative","relative","val","deliveryKey","deliveryType","modelProperty","deliveryTypeValue","FormatQualifier","DeliveryAction","ProgressiveQualifier","formatType","Transformation$1","Transformation","action","actionToAdd","RawAction","tx","animatedAction","borderAction","reshapeAction","resizeAction","quality","DeliveryFormatAction","roundCornersAction","overlayAction","underlayAction","variableAction","conditionAction","effectAction","rotateAction","namedTransformation","deliveryAction","BackgroundColor","flagQualifier","flagToAdd","customFunction","actions","json","toFloatAsString","returnValue","AspectRatioQualifierValue","ResizeSimpleAction","cropType","cropWidth","cropHeight","ratio","dimensions","aspectRatio","cropMode","GravityQualifier","AutoGravity","AutoFocusObjects","FocusOnGravity","FocusOnObjects","CompassGravity","dir","compass","direction","focusOn","res","autoGravity","FocusOnValue","ocr","isIAutoGravityString","gravity","isCompassGravity","gravityValue","getGravityValue","createCompassGravityModel","isOcrGravity","createOcrGravityModel","isAutoGravity","createIAutoFocusObject","createAutoGravityModel","gravityQualifier","createFocusOnGravityModel","hasAutoGravity","autoFocusObjects","autoGravityInstance","createFocusOnGravity","focusOnValues","createGravityModel","AutoFocus","weight","CompassQualifier","isCompassGravityModel","gravityModel","isOcrGravityModel","isAutoGravityModel","createAutoFocusFromModel","autoGravityObjectModel","avoid","autoFocus","createAutoGravityFromModel","createFocusOnGravityFromModel","focusOnObjects","createGravityFromModel","ResizeAdvancedAction","BackgroundQualifier","backgroundValue","DEFAULT_INTENSITY","DEFAULT_BRIGHTNESS","BlurredBackgroundAction","intensity","brightness","BlurredBackgroundAction$1","BaseCommonBackground","colors","BackgroundAutoBorderQualifier","BaseGradientBackground","BackgroundBorderGradientQualifier","BackgroundPredominantGradientQualifier","BackgroundAutoPredominantQualifier","BackgroundGenerativeFillQualifier","prompt","getBackgroundValue","background","createAutoBackgroundModel","createBlurredBackgroundModel","intensityLevel","brightnessLevel","createContrastPaletteBackgroundModel","contrast","palette","createBorderBackgroundModel","createBaseGradientBackgroundModel","gradientColors","gradientDirection","createBorderGradientBackgroundModel","createColorBackgroundModel","createPredominantBackgroundModel","createPredominantGradientBackgroundModel","createGenerativeFillBackgroundModel","createBackgroundModel","svg","auto$1","auto","borderGradient","predominantGradient","predominant","colorStr","blurred","generativeFill","Background","createBlurredBackground","backgroundModel","createGradientBackground","createContrastPaletteBackground","createGenerativeFillBackground","createBackgroundFromModel","backgroundType","ResizePadAction","backgroundQualifier","ResizeCropAction","ResizeFillAction","crop","fill","pad","DeliveryQualityAction","qualityValue","qualityWithSubSampling","qualityWithQuantization","chromaSubSampling","quantization","levelType","chromaValue","qualityType","northEast","VECTORIZE","PIXELATE","BLUR","PREDOMINANT_COLOR_TRANSFORM","PLACEHOLDER_IMAGE_OPTIONS","singleTransparentPixel","VIDEO_MIME_TYPES","ANALYTICS_DELIMITER","HtmlVideoLayer","userCloudinaryVideo","sources","videoAttributes","userCloudinaryPoster","videoOptions","pluginCloudinaryVideo","defaultTypes","codecs","transcode","mimeType","shouldUseFetchFormat","url","srcParts","analyticsStr","ext","posterCloudinaryVideo","_i","updatedCloudinaryVideo","sourcesToDelete","isBrowser","isImage","lazyload","rootMargin","_d","threshold","lazyloadPlugin","cloudinaryImage","htmlPluginState","onIntersect","unobserve","detectIntersection","isIntersectionObserverSupported","el","observer_1","placeholder","placeholderPlugin","PLACEHOLDER_ACTIONS","placeholderClonedImage","transformation","largeImage","serverSideSrc","serverCloudinaryImage","clonedServerCloudinaryImage","cancelCurrentlyRunningPlugins","extendStatics","__extends","__","__rest","react","react_production_min","getOwnPropertySymbols","propIsEnumerable","toObject","shouldUseNative","test1","test2","order2","test3","letter","objectAssign","target","symbols","escape","aa","ba","react_development","ReactPropTypesSecret$1","ReactPropTypesSecret_1","has$1","ReactPropTypesSecret","text","getStack","checkPropTypes_1","_assign","ReactVersion","hasSymbol","REACT_CONCURRENT_MODE_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","ReactCurrentBatchConfig","BEFORE_SLASH_RE","describeComponentFrame","ownerName","path","fileName","pathBeforeSlash","folderName","Resolved","refineResolvedLazyComponent","getComponentName","thenable","resolvedThenable","currentlyValidatingElement","impl","IsSomeRendererActing","warn","_len","_key","hasExistingStack","argIndex","didWarnStateUpdateForUnmountedComponent","warnNoop","publicInstance","callerName","_constructor","warningKey","ReactNoopUpdateQueue","completeState","partialState","emptyObject","updater","deprecatedAPIs","defineDeprecationWarning","methodName","fnName","ComponentDummy","PureComponent","pureComponentPrototype","createRef","refObject","createElement","childrenLength","childArray","cloneAndReplaceKey","oldElement","newKey","newElement","cloneElement","SEPARATOR","SUBSEPARATOR","escapeRegex","escaperLookup","escapedString","didWarnAboutMaps","userProvidedKeyEscapeRegex","escapeUserProvidedKey","POOL_SIZE","traverseContextPool","getPooledTraverseContext","mapResult","keyPrefix","mapFunction","mapContext","traverseContext","releaseTraverseContext","traverseAllChildrenImpl","nameSoFar","invokeCallback","getComponentKey","nextName","subtreeCount","nextNamePrefix","ii","addendum","childrenString","traverseAllChildren","component","forEachSingleChild","bookKeeping","forEachChildren","forEachFunc","forEachContext","mapSingleChildIntoContext","childKey","mappedChild","mapIntoWithKeyPrefixInternal","escapedPrefix","mapChildren","countChildren","toArray","onlyChild","createContext","defaultValue","calculateChangedBits","hasWarnedAboutUsingNestedContextConsumers","hasWarnedAboutUsingConsumerProvider","Consumer","_Provider","_currentValue","_currentValue2","_threadCount","lazy","ctor","lazyType","newDefaultProps","newPropTypes","forwardRef","memo","compare","resolveDispatcher","dispatcher","useContext","Context","unstable_observedBits","realContext","useState","initialState","useReducer","reducer","initialArg","useRef","initialValue","useEffect","create","deps","useLayoutEffect","useCallback","useMemo","useImperativeHandle","useDebugValue","formatterFn","lineNumber","getSourceInfoErrorAddendumForProps","elementProps","createElementWithValidation","didWarnAboutDeprecatedCreateFactory","createFactoryWithValidation","validatedFactory","cloneElementWithValidation","frozenObject","testMap","testSet","createElement$1","cloneElement$1","createFactory","Children","SDKAnalyticsConstants","AdvancedImage","_super","otherProps","src","VIDEO_ATTRIBUTES_KEYS","AdvancedVideo","innerRef","videoAttrs","Config","userProvidedConfig","validKeys","ALLOWED_URL_CONFIG","URLConfig","userURLConfig","urlConfig","params","ImageTransformation","VideoTransformation","isUrl","publicID","isFileName","publicIDContainsVersion","getUrlPrefix","cloudName","secure","privateCDN","cname","secureDistribution","handleAssetType","assetType","handleDeliveryType","getUrlVersion","version","forceVersion","shouldForceVersion","stringPad","_targetLength","_padString","targetLength","padString","repeatStringNumTimes","string","_times","times","repeatedString","chars","base64Map","reverseVersion","semVer","padVersion","segment","asNumber","encodeVersion","strResult","paddedStringLength","reversedSemver","paddedSemver","paddedBinary","bitString","packageVersion","encodeOSVersion","major","minor","binaryMajorVersion","binaryMinorVersion","paddedMajor","paddedMinor","getNodeVersion","failedVersion","ensureShapeOfTrackedProperties","trackedAnalytics","defaults","getSDKAnalyticsSignature","_trackedAnalytics","twoPartVersion","removePatchFromSemver","encodedSDKVersion","encodedTechVersion","encodedOSVersion","featureCode","SDKCode","product","osType","semVerStr","parts","SEO_TYPES","CloudinaryFile","cloudConfig","newType","newSuffix","signature","newVersion","overwriteOptions","suffixContainsDot","suffixContainsSlash","hasSuffix","regularSEOType","shortSEOType","useRootPath","shorten","transformationString","safeURL","shouldAddAnalytics","queryParamsString","queryParams","CloudinaryTransformable","animated","reshape","resize","roundCorners","conditionalAction","effect","rotate","CloudinaryImage","CloudinaryVideo","Cloudinary","cloudinaryConfig","useCloudinaryImage","publicId","cloudinaryInstance","CloudImage","alt","image","MemoizedImage","StyledContainer","$center","Container","as","center","id","onHover","onLeave","containerProps","Logo","StyledHeading","$color","$display","$fontFamily","$fontWeight","$letterSpacing","$lineSpacing","$size","$wordBreak","StyledText","Heading","Text"],"mappings":"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","x_google_ignoreList":[2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]}
|