{"version":3,"file":"js/873.f3b82106.js","sources":["../../frontend/src/base/components/common/Toast.module.scss?8df7","../../frontend/src/base/components/common/primitives/BaseElement.tsx","../../frontend/src/base/components/common/primitives/Box.tsx","../../frontend/src/base/components/common/primitives/Button.module.scss?7265","../../frontend/src/base/components/common/primitives/Button.tsx","../../frontend/src/base/components/common/primitives/Loader.module.scss?a56c","../../frontend/src/base/components/common/primitives/Loader.tsx","../../frontend/src/base/core/ServerSentEvents.ts","../../frontend/src/base/core/numericLimits.ts","../../frontend/src/base/hooks/useOrgStore.ts","../../frontend/src/base/utils/analyticsHelperInternal.ts"],"sourcesContent":["// extracted by css-extract-rspack-plugin\nexport default {\"toastGroupHolder\":\"toastGroupHolder_TDa6eF\",\"toastContainer\":\"toastContainer__K1JMw\"};","import clsx from \"clsx\";\nimport React, { HTMLAttributes } from \"react\";\n\nexport type BaseSizeList =\n\t| \"-025x\"\n\t| \"-05x\"\n\t| \"-1x\"\n\t| \"-2x\"\n\t| \"-3x\"\n\t| \"-4x\"\n\t| \"-5x\"\n\t| \"-6x\"\n\t| \"-7x\"\n\t| \"-8x\"\n\t| \"-9x\"\n\t| \"-10x\"\n\t| \"-11x\"\n\t| \"-12x\"\n\t| \"-13x\"\n\t| \"-14x\"\n\t| \"-15x\"\n\t| \"-16x\"\n\t| \"-17x\"\n\t| \"-18x\"\n\t| \"-19x\"\n\t| \"-20x\"\n\t| \"-21x\"\n\t| \"-22x\"\n\t| \"-23x\"\n\t| \"-24x\"\n\t| \"-25x\"\n\t| \"-26x\"\n\t| \"-27x\"\n\t| \"-28x\"\n\t| \"-29x\"\n\t| \"-30x\"\n\t| \"-31x\"\n\t| \"-32x\"\n\t| \"-33x\"\n\t| \"-34x\"\n\t| \"-35x\"\n\t| \"-36x\"\n\t| \"-37x\"\n\t| \"-38x\"\n\t| \"-39x\"\n\t| \"-40x\"\n\t| \"-41x\"\n\t| \"-42x\"\n\t| \"-43x\"\n\t| \"-44x\"\n\t| \"-45x\"\n\t| \"-46x\"\n\t| \"-47x\"\n\t| \"-48x\"\n\t| \"-49x\"\n\t| \"-50x\"\n\t| \"-51x\"\n\t| \"-52x\"\n\t| \"-53x\"\n\t| \"-54x\"\n\t| \"-55x\"\n\t| \"-56x\"\n\t| \"-57x\"\n\t| \"-58x\"\n\t| \"-59x\"\n\t| \"-60x\"\n\t| \"-70x\"\n\t| \"-80x\"\n\t| \"-92x\"\n\t| \"-100x\"\n\t| \"0\"\n\t| \"025x\"\n\t| \"05x\"\n\t| \"1x\"\n\t| \"2x\"\n\t| \"3x\"\n\t| \"4x\"\n\t| \"5x\"\n\t| \"6x\"\n\t| \"7x\"\n\t| \"8x\"\n\t| \"9x\"\n\t| \"10x\"\n\t| \"11x\"\n\t| \"12x\"\n\t| \"13x\"\n\t| \"14x\"\n\t| \"15x\"\n\t| \"16x\"\n\t| \"17x\"\n\t| \"18x\"\n\t| \"19x\"\n\t| \"20x\"\n\t| \"21x\"\n\t| \"22x\"\n\t| \"23x\"\n\t| \"24x\"\n\t| \"25x\"\n\t| \"26x\"\n\t| \"27x\"\n\t| \"28x\"\n\t| \"29x\"\n\t| \"30x\"\n\t| \"31x\"\n\t| \"32x\"\n\t| \"33x\"\n\t| \"34x\"\n\t| \"35x\"\n\t| \"36x\"\n\t| \"37x\"\n\t| \"38x\"\n\t| \"39x\"\n\t| \"40x\"\n\t| \"41x\"\n\t| \"42x\"\n\t| \"43x\"\n\t| \"44x\"\n\t| \"45x\"\n\t| \"46x\"\n\t| \"47x\"\n\t| \"48x\"\n\t| \"49x\"\n\t| \"50x\"\n\t| \"51x\"\n\t| \"52x\"\n\t| \"53x\"\n\t| \"54x\"\n\t| \"55x\"\n\t| \"56x\"\n\t| \"57x\"\n\t| \"58x\"\n\t| \"59x\"\n\t| \"60x\"\n\t| \"70x\"\n\t| \"80x\"\n\t| \"92x\"\n\t| \"100x\"\n\t| \"full\"\n\t| \"half\"\n\t| \"max-content\"\n\t| \"fit-content\"\n\t| \"min-content\"\n\t| \"auto\";\n\nexport type BaseSizes =\n\t| \"full\"\n\t| \"minimal\"\n\t| \"full-width\"\n\t| \"full-height\"\n\t| \"half-width\"\n\t| \"half-height\"\n\t| \"minimal-width\"\n\t| \"minimal-height\"\n\t| \"small\"\n\t| \"regular\"\n\t| \"big\";\n\nexport type BaseColors =\n\t| \"primary\"\n\t| \"primary-dark\"\n\t| \"primary-darker\"\n\t| \"primary-light\"\n\t| \"primary-lighter\"\n\t| \"secondary\"\n\t| \"secondary-dark\"\n\t| \"secondary-darker\"\n\t| \"secondary-light\"\n\t| \"secondary-lighter\"\n\t| \"tertiary\"\n\t| \"tertiary-dark\"\n\t| \"tertiary-darker\"\n\t| \"tertiary-light\"\n\t| \"tertiary-lighter\"\n\t| \"white\"\n\t| \"black\"\n\t| \"gray\"\n\t| \"gray-dark\"\n\t| \"gray-darker\"\n\t| \"gray-light\"\n\t| \"gray-lighter\"\n\t| \"info\"\n\t| \"info-dark\"\n\t| \"info-darker\"\n\t| \"info-light\"\n\t| \"info-lighter\"\n\t| \"success\"\n\t| \"success-dark\"\n\t| \"success-darker\"\n\t| \"success-light\"\n\t| \"success-lighter\"\n\t| \"warning\"\n\t| \"warning-dark\"\n\t| \"warning-darker\"\n\t| \"warning-light\"\n\t| \"warning-lighter\"\n\t| \"error\"\n\t| \"error-dark\"\n\t| \"error-darker\"\n\t| \"error-light\"\n\t| \"error-lighter\"\n\t| \"support\"\n\t| \"support-dark\"\n\t| \"support-darker\"\n\t| \"support-light\"\n\t| \"support-lighter\"\n\t| \"transparent\";\n\nexport interface DefaultProps {\n\tclassName?: string;\n\tposition?: \"left\" | \"center\" | \"right\";\n\tmargin?: Array<BaseSizeList> | BaseSizeList;\n\tmarginTop?: BaseSizeList;\n\tmarginBottom?: BaseSizeList;\n\tmarginLeft?: BaseSizeList;\n\tmarginRight?: BaseSizeList;\n\tpadding?: Array<BaseSizeList> | BaseSizeList;\n\tpaddingTop?: BaseSizeList;\n\tpaddingBottom?: BaseSizeList;\n\tpaddingLeft?: BaseSizeList;\n\tpaddingRight?: BaseSizeList;\n\tminHeight?: BaseSizeList;\n\theight?: BaseSizeList;\n\tmaxHeight?: BaseSizeList;\n\tminWidth?: BaseSizeList;\n\twidth?: BaseSizeList;\n\tmaxWidth?: BaseSizeList;\n\tsize?: Array<BaseSizes> | BaseSizes;\n\tchildren?: React.ReactNode;\n\tbackground?: BaseColors;\n\tborderColor?: BaseColors;\n\tborderRadius?: \"default\" | \"big\" | \"small\" | \"tiny\" | \"micro\" | \"none\";\n\tborderStyle?: \"solid\" | \"dashed\";\n}\n\nexport interface BaseElementProps extends DefaultProps, HTMLAttributes<HTMLElement> {\n\tchildren?: React.ReactNode;\n}\n\nexport const BaseElement = React.forwardRef(\n\t(\n\t\t{\n\t\t\tposition,\n\t\t\tmargin,\n\t\t\tmarginTop,\n\t\t\tmarginBottom,\n\t\t\tmarginLeft,\n\t\t\tmarginRight,\n\t\t\tpadding,\n\t\t\tpaddingTop,\n\t\t\tpaddingBottom,\n\t\t\tpaddingLeft,\n\t\t\tpaddingRight,\n\t\t\tsize,\n\t\t\tminHeight,\n\t\t\theight,\n\t\t\tmaxHeight,\n\t\t\tminWidth,\n\t\t\twidth,\n\t\t\tmaxWidth,\n\t\t\tbackground,\n\t\t\tborderColor,\n\t\t\tborderRadius,\n\t\t\tborderStyle,\n\t\t\tclassName,\n\t\t\tchildren,\n\t\t\t...props\n\t\t}: BaseElementProps,\n\t\tref: React.Ref<HTMLDivElement>\n\t) => {\n\t\tconst cssClasses = clsx([\n\t\t\tclassName,\n\t\t\tposition && `position-${position}`,\n\t\t\tsize && getSize(size),\n\t\t\tgetDefaultMarginClasses({ margin, marginTop, marginBottom, marginLeft, marginRight }),\n\t\t\tbackground && `background-${background}`,\n\t\t\tpadding && getPadding(padding),\n\t\t\tpaddingTop && `padding-top-${paddingTop}`,\n\t\t\tpaddingBottom && `padding-bottom-${paddingBottom}`,\n\t\t\tpaddingLeft && `padding-left-${paddingLeft}`,\n\t\t\tpaddingRight && `padding-right-${paddingRight}`,\n\t\t\tminHeight && `min-height-${minHeight}`,\n\t\t\theight && `height-${height}`,\n\t\t\tmaxHeight && `max-height-${maxHeight}`,\n\t\t\tminWidth && `min-width-${minWidth}`,\n\t\t\twidth && `width-${width}`,\n\t\t\tmaxWidth && `max-width-${maxWidth}`,\n\t\t\tborderColor && `border-color-${borderColor}`,\n\t\t\tborderRadius && `border-radius-${borderRadius}`,\n\t\t\tborderStyle && `border-style-${borderStyle}`,\n\t\t]);\n\n\t\treturn (\n\t\t\t<div ref={ref} {...props} className={cssClasses} style={props.style} data-layer=\"primitive\">\n\t\t\t\t{children}\n\t\t\t</div>\n\t\t);\n\t}\n);\n\nfunction getSize(size?: Array<string> | string) {\n\tif (Array.isArray(size)) {\n\t\treturn size.map((s) => `size-${s}`).join(\" \");\n\t}\n\treturn `size-${size}`;\n}\n\nfunction getPadding(padding: Array<string> | string) {\n\tif (Array.isArray(padding)) {\n\t\tswitch (padding.length) {\n\t\t\tdefault:\n\t\t\tcase 1:\n\t\t\t\treturn `padding-${padding[0]}`;\n\t\t\tcase 2:\n\t\t\t\treturn `padding-vertical-${padding[0]} padding-horizontal-${padding[1]}`;\n\t\t\tcase 3:\n\t\t\t\treturn `padding-top-${padding[0]} padding-horizontal-${padding[1]}\n                padding-bottom-${padding[2]}`;\n\t\t\tcase 4:\n\t\t\t\treturn `padding-top-${padding[0]} padding-right-${padding[1]}\n                padding-bottom-${padding[2]} padding-left-${padding[3]}`;\n\t\t}\n\t}\n\n\treturn `padding-${padding}`;\n}\n\nexport function getDefaultMarginClasses(\n\tprops: Pick<DefaultProps, \"margin\" | \"marginTop\" | \"marginBottom\" | \"marginLeft\" | \"marginRight\">\n) {\n\treturn [\n\t\tprops.margin && getMargin(props.margin),\n\t\tprops.marginTop && `margin-top-${props.marginTop}`,\n\t\tprops.marginBottom && `margin-bottom-${props.marginBottom}`,\n\t\tprops.marginLeft && `margin-left-${props.marginLeft}`,\n\t\tprops.marginRight && `margin-right-${props.marginRight}`,\n\t];\n}\n\nexport function getMargin(margin: Array<string> | string) {\n\tif (Array.isArray(margin)) {\n\t\tswitch (margin.length) {\n\t\t\tdefault:\n\t\t\tcase 1:\n\t\t\t\treturn `margin-${margin[0]}`;\n\t\t\tcase 2:\n\t\t\t\treturn `margin-vertical-${margin[0]} margin-horizontal-${margin[1]}`;\n\t\t\tcase 3:\n\t\t\t\treturn `margin-top-${margin[0]} margin-horizontal-${margin[1]}\n                                margin-bottom-${margin[2]}`;\n\t\t\tcase 4:\n\t\t\t\treturn `margin-top-${margin[0]} margin-right-${margin[1]}\n                                margin-bottom-${margin[2]} margin-left-${margin[3]}`;\n\t\t}\n\t}\n\n\treturn `margin-${margin}`;\n}\n","import clsx from \"clsx\";\nimport React, { forwardRef } from \"react\";\nimport { BaseElement, BaseElementProps, BaseSizeList } from \"./BaseElement\";\nimport styles from \"./Box.module.scss\";\n\ntype Alignments = \"left\" | \"center\" | \"right\" | \"top\" | \"middle\" | \"bottom\" | \"around\" | \"between\" | \"evenly\";\n\nexport interface BoxProps extends BaseElementProps {\n\torientation?: \"horizontal\" | \"vertical\" | \"horizontal-reverse\" | \"vertical-reverse\";\n\talign?: Alignments | Array<Alignments>;\n\tgap?: BaseSizeList | Array<BaseSizeList>;\n\tgapHorizontal?: BaseSizeList;\n\tgapVertical?: BaseSizeList;\n\twrap?: \"wrap\" | \"wrap-reverse\" | \"no-wrap\";\n\tinline?: boolean;\n\tclassName?: string;\n\tchildren?: React.ReactNode;\n\t\"data-is\"?: string;\n}\n\nexport const Box = forwardRef<HTMLDivElement, BoxProps>(\n\t(\n\t\t{\n\t\t\torientation,\n\t\t\talign,\n\t\t\tgap,\n\t\t\tgapHorizontal,\n\t\t\tgapVertical,\n\t\t\twrap,\n\t\t\tinline = false,\n\t\t\tclassName,\n\t\t\t\"data-is\": dataIs = \"box\",\n\t\t\t...props\n\t\t},\n\t\tref\n\t) => {\n\t\tconst cssClasses = clsx([\n\t\t\tstyles.block,\n\t\t\torientation && styles[`${orientation}`],\n\t\t\tgetAlign(align, orientation),\n\t\t\tgap && getGap(gap),\n\t\t\tgapHorizontal && `gap-horizontal-${gapHorizontal}`,\n\t\t\tgapVertical && `gap-vertical-${gapVertical}`,\n\t\t\tgap && `gap-${gap}`,\n\t\t\twrap && styles[`wrap-${wrap}`],\n\t\t\tinline && styles.inline,\n\t\t\tprops.onClick && `cursor-pointer`,\n\t\t\tclassName,\n\t\t]);\n\n\t\treturn (\n\t\t\t<BaseElement {...props} className={cssClasses} ref={ref} data-is={dataIs}>\n\t\t\t\t{props.children}\n\t\t\t</BaseElement>\n\t\t);\n\t}\n);\n\nfunction getAlign(align: Array<string> | string | undefined, orientation?: string) {\n\tif (!orientation || !align) {\n\t\treturn \"\";\n\t}\n\tif (Array.isArray(align)) {\n\t\treturn align.map((al) => styles[al]).join(\" \");\n\t}\n\n\treturn styles[align];\n}\nexport function getGap(gap: Array<string> | string) {\n\tif (Array.isArray(gap)) {\n\t\tswitch (gap.length) {\n\t\t\tdefault:\n\t\t\tcase 1:\n\t\t\t\treturn `gap-${gap[0]}`;\n\t\t\tcase 2:\n\t\t\t\treturn `gap-vertical-${gap[0]} gap-horizontal-${gap[1]}`;\n\t\t}\n\t}\n\n\treturn `gap-${gap}`;\n}\n","// extracted by css-extract-rspack-plugin\nexport default {\"common\":\"common_QV4hmg\",\"primary\":\"primary_XygM4g\",\"secondary\":\"secondary_vgSA8R\",\"tertiary\":\"tertiary_gxmjWF\",\"outlined\":\"outlined_acsuJp\",\"link\":\"link_WEfHWC\",\"error\":\"error_QOJ7wq\",\"admin\":\"admin_Y5wq_C\",\"tiny\":\"tiny_FDpmjO\",\"iconOnly\":\"iconOnly_vYJZMQ\",\"small\":\"small_OYLnnc\",\"regular\":\"regular_tGHnlG\",\"big\":\"big_O1WrdQ\",\"loading\":\"loading_vQE1GK\",\"iconLeft\":\"iconLeft_XleJm6\",\"iconRight\":\"iconRight_V_1KXE\"};","import { DefaultProps, getDefaultMarginClasses } from \"@base/components/common/primitives/BaseElement\";\nimport { Icon, IconProps } from \"@base/components/common/primitives/Icon\";\nimport { Loader } from \"@base/components/common/primitives/Loader\";\nimport clsx from \"clsx\";\nimport React from \"react\";\nimport styles from \"./Button.module.scss\";\nimport { capitalizeString } from \"@base/utils/stringFormatter\";\n\nexport type ButtonVariants = \"primary\" | \"secondary\" | \"tertiary\" | \"outlined\" | \"link\" | \"error\" | \"admin\";\n\nexport interface ButtonProps\n\textends Omit<DefaultProps, \"size\" | \"background\">, React.ButtonHTMLAttributes<HTMLButtonElement> {\n\tvariant?: ButtonVariants;\n\tloading?: boolean;\n\tsize?: \"tiny\" | \"small\" | \"regular\" | \"big\";\n\ticon?: IconProps;\n\ticonPlacement?: \"left\" | \"right\";\n\tdataTest?: string;\n}\n\nexport const Button = ({\n\tchildren,\n\tsize = \"regular\",\n\tvariant = \"primary\",\n\tloading = false,\n\tclassName,\n\ticon,\n\ticonPlacement = \"left\",\n\tmargin,\n\tmarginTop,\n\tmarginBottom,\n\tmarginLeft,\n\tmarginRight,\n\twidth,\n\tdataTest,\n\tdisabled,\n\t...props\n}: ButtonProps) => {\n\tconst cssClasses = clsx([\n\t\t...getDefaultMarginClasses({ margin, marginTop, marginBottom, marginLeft, marginRight }),\n\t\tloading && styles.loading,\n\t\tstyles.common,\n\t\tstyles[variant],\n\t\tstyles[size],\n\t\t(icon || loading) && !children && styles.iconOnly,\n\t\tstyles[`icon${capitalizeString(iconPlacement)}`],\n\t\twidth && `width-${width}`,\n\t\tclassName,\n\t]);\n\n\tconst iconProp = icon?.source ? icon : undefined;\n\n\treturn (\n\t\t<button\n\t\t\tdata-test={dataTest}\n\t\t\tclassName={cssClasses}\n\t\t\tdisabled={loading || disabled}\n\t\t\ttype=\"button\"\n\t\t\t{...props}\n\t\t\tdata-is=\"button\"\n\t\t\tdata-layer=\"primitive\">\n\t\t\t{loading && <Loader size={size} />}\n\t\t\t{!loading && iconProp && <Icon {...iconProp} />}\n\t\t\t{children}\n\t\t</button>\n\t);\n};\n","// extracted by css-extract-rspack-plugin\nexport default {\"loader\":\"loader_BDNDCD\",\"loaderIcon\":\"loaderIcon_teev8P\",\"loaderSmall\":\"loaderSmall_jNMp5Z\",\"loaderRegular\":\"loaderRegular_yCHeVx\",\"loaderBig\":\"loaderBig_XnJfws\",\"loaderAnimation\":\"loaderAnimation_hWxuQO\"};","import { ButtonProps } from \"@base/components/common/primitives/Button\";\nimport { clsx } from \"clsx\";\nimport React from \"react\";\nimport styles from \"./Loader.module.scss\";\n\ninterface LoaderProps {\n\tsize: ButtonProps[\"size\"];\n}\n\nconst loaderSizes = {\n\tsmall: styles.loaderSmall,\n\tregular: styles.loaderRegular,\n\tbig: styles.loaderBig,\n};\n\nconst Loader = ({ size }: LoaderProps) => {\n\treturn (\n\t\t// @ts-expect-error STRICT_NULL_CHECKS undefined as index\n\t\t<div className={clsx(styles.loader, loaderSizes[size])} data-layer=\"primitive\" data-is=\"loader\">\n\t\t\t{Array.from({ length: 12 }, (_, index) => (\n\t\t\t\t<div key={index} className={styles.loaderIcon} />\n\t\t\t))}\n\t\t</div>\n\t);\n};\n\nexport { Loader };\n","import { ToastError, ToastSuccess } from \"@base/components/common/Toast\";\nimport { PlatformVersionDocument } from \"@base/core/graphql\";\nimport { useOrgStore } from \"@base/hooks/useOrgStore\";\nimport ReconnectingEventSource from \"reconnecting-eventsource\";\nimport { getAppContext, useAppConfig } from \"./CakeStore\";\n\n// @ts-expect-error STRICT_NULL_CHECKS implicit any rest\ntype ServerSentEventCallback = (Object) => void;\n\nclass ReconnectingEventSourceWithTimeout extends ReconnectingEventSource {\n\t#retryCount: number = 0;\n\t#minRetryTime: number = 5000;\n\t#jitterTime: number = 3000;\n\tstatic MAX_RETRIES = 10; // After ~1 minute stop trying\n\n\t_onerror(event: Event) {\n\t\tif (this.readyState === 1) {\n\t\t\tthis.readyState = 0;\n\t\t\tthis.onerror(event);\n\t\t} else {\n\t\t\tthis.#retryCount += 1;\n\t\t\tconsole.debug(`SSE connection error (retry ${this.#retryCount}) ${new Date().toISOString()}`, event);\n\t\t\tif (this.#retryCount >= ReconnectingEventSourceWithTimeout.MAX_RETRIES) {\n\t\t\t\tconsole.error(\"Maximum SSE retry attempts reached, closing connection.\");\n\t\t\t\tToastError(\"Could not connect to the server. Please refresh\", Infinity);\n\t\t\t\t// @ts-expect-error STRICT_NULL_CHECKS object possibly null\n\t\t\t\tthis._eventSource.close();\n\t\t\t\tthis._eventSource = null;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tif (this._eventSource) {\n\t\t\tif (this._eventSource.readyState === 2) {\n\t\t\t\t// reconnect with new object\n\t\t\t\tthis._eventSource.close();\n\t\t\t\tthis._eventSource = null;\n\n\t\t\t\t// reconnect after random timeout < max_retry_time\n\t\t\t\tconst timeout = Math.round(this.#minRetryTime + Math.random() * this.#jitterTime);\n\t\t\t\tthis._timer = setTimeout(() => this._start(), timeout);\n\t\t\t}\n\t\t}\n\t}\n\n\t_onopen(event: Event): void {\n\t\tconsole.debug(\"SSE connection opened\", event, this._eventSource);\n\t\tthis.#retryCount = 0;\n\t\tsuper._onopen(event);\n\t}\n}\n\nclass ServerSentEvents {\n\t#privateEvents?: ReconnectingEventSourceWithTimeout = undefined;\n\t#listeners: Array<ServerSentEventCallback> = [];\n\t#skipSseOrgCheck: boolean = false;\n\n\tpublic addListener = (listener: ServerSentEventCallback) => {\n\t\tthis.#listeners.push(listener);\n\t\treturn () => this.removeListener(listener);\n\t};\n\n\tpublic removeListener = (listener: ServerSentEventCallback) => {\n\t\tthis.#listeners = this.#listeners.filter((l) => l !== listener);\n\t};\n\n\t#onEvent = (e: MessageEvent) => {\n\t\tconsole.debug(\"SSE event received\", e.data);\n\t\ttry {\n\t\t\tconst event = JSON.parse(e.data);\n\t\t\tconsole.debug(\"event received\", event);\n\t\t\tif (event.error) {\n\t\t\t\tToastError(event.error[\"message\"] || \"Unknown error\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (event.success) {\n\t\t\t\tToastSuccess(event.success[\"message\"]);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif (!this.#skipSseOrgCheck) {\n\t\t\t\tconst organisationId =\n\t\t\t\t\tuseOrgStore.getState().selectedOrgId ?? getAppContext()?.DEFAULT_SELECTED_COMPANY_ID;\n\t\t\t\tif ((event.organisation_id || organisationId) != organisationId) {\n\t\t\t\t\tconsole.debug(\"Ignoring event from other organisation\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.#listeners.forEach((l) => l(event));\n\t\t} catch (err) {\n\t\t\tconsole.warn(\"failed to trigger server-side event\", err, e.data);\n\t\t}\n\t};\n\n\t#onStreamError = (e: MessageEvent) => {\n\t\t// ... client fell behind, reinitialize ...\n\t\tconsole.debug(\"stream-reset\", e);\n\t};\n\n\t#onOpen = () => {\n\t\tconsole.log(\"onOpen - checking platform version\");\n\t\tuseAppConfig\n\t\t\t.getState()\n\t\t\t?.apolloClient?.query({ query: PlatformVersionDocument })\n\t\t\t.then((response) => {\n\t\t\t\tif (response.error) {\n\t\t\t\t\treturn Promise.reject(response);\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\t!window.cakeUpdateAvailable &&\n\t\t\t\t\t// @ts-expect-error STRICT_NULL_CHECKS possibly undefined value\n\t\t\t\t\tresponse.data.platformVersion !== (getAppContext()?.PLATFORM_VERSION || \"\")\n\t\t\t\t) {\n\t\t\t\t\twindow.cakeUpdateAvailable = true;\n\t\t\t\t\twindow.riot?.update();\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(console.trace);\n\t};\n\n\tpublic initialize = (userId: string, skipSseOrgCheck: boolean = false) => {\n\t\tthis.#destroy();\n\n\t\t// Private per-user events\n\t\tthis.#privateEvents = new ReconnectingEventSourceWithTimeout(`/sse/u/${userId}/`);\n\t\tthis.#privateEvents.onopen = this.#onOpen;\n\t\tthis.#privateEvents.onerror = this.#onStreamError;\n\t\tthis.#privateEvents.onmessage = this.#onEvent;\n\t\tthis.#skipSseOrgCheck = skipSseOrgCheck;\n\t};\n\n\t#destroy = () => {\n\t\tif (this.#privateEvents) {\n\t\t\tthis.#privateEvents.close();\n\t\t\tthis.#privateEvents = undefined;\n\t\t}\n\t};\n}\n\nexport { ServerSentEvents };\n","// DecimalField(max_digits=30, decimal_places=15) allows 15 integer digits.\nexport const MAX_DECIMAL_INPUT = 1e15 - 1;\n","import type { OrganisationsOrganisationExperienceLevelChoices } from \"@base/core/graphql/enums\";\nimport Cookies from \"js-cookie\";\nimport { create } from \"zustand\";\nimport { createJSONStorage, persist } from \"zustand/middleware\";\n\nconst cookieStorage = {\n\tgetItem: (name: string) => Cookies.get(name) ?? null,\n\tsetItem: (name: string, value: string) => {\n\t\tCookies.set(name, value, { expires: 7 });\n\t},\n\tremoveItem: (name: string) => Cookies.remove(name),\n};\n\nexport interface OrganisationData {\n\tid: string;\n\tname: string;\n\tcountry: string;\n\tcurrency: string;\n\tcapabilities: Record<string, boolean>;\n\tpartner: { id: string; name: string; logo: string } | null;\n\tuserRoles: string[];\n\tisValid: boolean;\n\ttype: string;\n\tcompanyType: string;\n\tfundingPhase?: string;\n\tcreatorRole?: string;\n\texperienceLevel?: OrganisationsOrganisationExperienceLevelChoices;\n\tcreated?: string;\n}\n\ninterface OrgStore {\n\tselectedOrgId: string;\n\torganisationData: OrganisationData | null;\n\tloading: boolean;\n\tshowChecklist: boolean;\n\thideAuthorizedSharesPrompt: boolean;\n\torgResetting: boolean;\n\tinitialize: (orgData: OrganisationData) => void;\n\tresetOrganisation: (orgId?: string, redirectPath?: string) => void;\n\tsetShowChecklist: (show: boolean) => void;\n\tsetHideAuthorizedSharesPrompt: (hide: boolean) => void;\n\tcanEditShareRegistry: boolean;\n\tcanAdminShareRegistry: boolean;\n\tisLLC: boolean;\n\tisCSF: boolean;\n}\n\nconst REDIRECT_KEY = \"org-bad-redirects\";\nconst REDIRECT_LIMIT = 3;\n\nconst safeCount = (): number => {\n\tconst raw = localStorage.getItem(REDIRECT_KEY);\n\tconst parsed = parseInt(raw || \"0\", 10);\n\treturn Number.isNaN(parsed) ? 0 : parsed;\n};\n\nconst badOrgDetection = (orgId: string) => {\n\tif (orgId === \"00000000-0000-0000-0000-00000000000\") {\n\t\tconsole.error(\"Invalid organisation ID detected.\");\n\t\tCookies.remove(\"org-store\", { path: \"/\" });\n\n\t\t// Increment counter safely\n\t\tconst count = safeCount() + 1;\n\t\ttry {\n\t\t\tlocalStorage.setItem(REDIRECT_KEY, String(count));\n\t\t} catch {\n\t\t\t// If localStorage is full or inaccessible, fallback to in-memory redirect\n\t\t\tconsole.warn(\"Could not write redirect counter to localStorage.\");\n\t\t}\n\n\t\tif (count >= REDIRECT_LIMIT) {\n\t\t\talert(\n\t\t\t\t\"We detected repeated redirects while loading your organisation. \" +\n\t\t\t\t\t\"We'll log you out to reset your session. If this keeps happening, please contact support.\"\n\t\t\t);\n\t\t\tlocalStorage.removeItem(REDIRECT_KEY);\n\t\t\twindow.location.replace(\"/resetsession\");\n\t\t} else {\n\t\t\twindow.location.replace(\"/\");\n\t\t}\n\t\treturn true;\n\t}\n\n\t// Success: clear counter\n\tlocalStorage.removeItem(REDIRECT_KEY);\n\treturn false;\n};\n\nexport const useOrgStore = create<OrgStore>()(\n\tpersist(\n\t\t(set, get) => ({\n\t\t\tselectedOrgId: \"\",\n\t\t\torgResetting: false,\n\n\t\t\torganisationData: null,\n\t\t\tloading: false,\n\t\t\terror: null,\n\n\t\t\tshowChecklist: true,\n\t\t\thideAuthorizedSharesPrompt: false,\n\t\t\tcanAdminShareRegistry: false,\n\t\t\tcanEditShareRegistry: false,\n\t\t\tisLLC: false,\n\t\t\tisCSF: false,\n\n\t\t\tresetOrganisation: (id, redirectPath = \"/\") => {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tset({ organisationData: null, loading: false, selectedOrgId: id || \"\", orgResetting: true });\n\t\t\t\t\twindow.location.replace(redirectPath);\n\t\t\t\t}, 0);\n\t\t\t},\n\n\t\t\tsetShowChecklist: (show) => set({ showChecklist: show }),\n\t\t\tsetHideAuthorizedSharesPrompt: (hide) => set({ hideAuthorizedSharesPrompt: hide }),\n\t\t\tinitialize: (orgData) => {\n\t\t\t\tconst orgResetting = get().orgResetting;\n\t\t\t\tif (badOrgDetection(orgData.id)) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// @ts-expect-error STRICT_NULL_CHECKS implicit any parameter\n\t\t\t\tconst hasUserCompanyRoles = (roles) => {\n\t\t\t\t\tconst desiredRoles = Array.isArray(roles) ? roles : [roles];\n\t\t\t\t\tif (!orgData.userRoles) return false;\n\t\t\t\t\treturn desiredRoles.some((role) => orgData.userRoles.includes(role));\n\t\t\t\t};\n\n\t\t\t\tset({\n\t\t\t\t\tselectedOrgId: orgData.id,\n\t\t\t\t\torganisationData: orgData,\n\t\t\t\t\tloading: false,\n\t\t\t\t\torgResetting: false,\n\t\t\t\t\tcanAdminShareRegistry: hasUserCompanyRoles([\"ADVISOR\", \"ADMIN\", \"SUPPORT\"]),\n\t\t\t\t\tcanEditShareRegistry: hasUserCompanyRoles([\"ADVISOR\", \"EDIT\", \"ADMIN\", \"SUPPORT\"]),\n\t\t\t\t\tisLLC: orgData.type === \"LLC\",\n\t\t\t\t\tisCSF: orgData.type === \"CSF\",\n\t\t\t\t});\n\n\t\t\t\tif (orgResetting) {\n\t\t\t\t\tconsole.debug(\"Organisation reset detected, reloading organisation data.\");\n\t\t\t\t}\n\t\t\t},\n\t\t}),\n\t\t{\n\t\t\tname: \"org-store\",\n\t\t\tstorage: createJSONStorage(() => cookieStorage),\n\t\t\tpartialize: (state) => {\n\t\t\t\tif (badOrgDetection(state?.selectedOrgId)) {\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tselectedOrgId: state.selectedOrgId,\n\t\t\t\t\tshowChecklist: state.showChecklist,\n\t\t\t\t\thideAuthorizedSharesPrompt: state.hideAuthorizedSharesPrompt,\n\t\t\t\t};\n\t\t\t},\n\t\t}\n\t)\n);\n","import { AppContext, getAppContext } from \"@base/core/CakeStore\";\nimport { useOrgStore } from \"@base/hooks/useOrgStore\";\n\n/**\n * Generates a discriminated union for events that have specific required properties.\n *\n * @template TTrackEvent - The complete string literal union of all possible event names.\n * @template TEventPropsMap - An object mapping specific event names (keys) to their required properties (values).\n * We use `Partial<Record<TTrackEvent, object>>` to ensure the keys of\n * TEventPropsMap are a subset of TTrackEvent.\n */\ntype TEventsWithRequiredProps<\n\tTTrackEvent extends string,\n\tTEventPropsMap extends Partial<Record<TTrackEvent, object>>,\n> = {\n\t// Iterate over only the keys present in TEventPropsMap.\n\t// This ensures that if TEventPropsMap is empty, this type resolves to 'never'.\n\t[K in keyof TEventPropsMap]: __BaseEvent__ & { event: K } & TEventPropsMap[K];\n}[keyof TEventPropsMap];\n\n/**\n * Defines the shape for all common events that do NOT have specific required properties.\n *\n * @template TTrackEvent - The complete string literal union of all possible event names.\n * @template TEventPropsMap - An object mapping specific event names to their required properties.\n */\ninterface TCommonEvent<\n\tTTrackEvent extends string,\n\tTEventPropsMap extends Partial<Record<TTrackEvent, object>>,\n> extends __BaseEvent__ {\n\t// The event name is any event from TTrackEvent *except* for those\n\t// defined as keys in TEventPropsMap.\n\tevent: Exclude<TTrackEvent, keyof TEventPropsMap>;\n}\n\n/**\n * Creates the final, comprehensive analytics event type.\n * This is a union of:\n * 1. All common events (those without specific required props).\n * 2. All special events (those with specific required props).\n *\n * @template TTrackEvent - The complete string literal union of all possible event names.\n * @template TEventPropsMap - An object mapping specific event names to their required properties.\n *\n * @example\n * type MyEvents = \"doc_download\" | \"message_react\" | \"open_external_link\";\n * type MyPropsMap = {\n * open_external_link: { link: string };\n * };\n *\n * type FinalAnalyticsEvent = TAnalyticsEvent<MyEvents, MyPropsMap>;\n *\n * // This would be valid:\n * // { event: \"doc_download\" }\n * // { event: \"message_react\" }\n * // { event: \"open_external_link\", link: \"https://example.com\" }\n *\n * // This would be invalid:\n * // { event: \"open_external_link\" } // Missing required props\n */\ntype TAnalyticsEvent<TTrackEvent extends string, TEventPropsMap extends Partial<Record<TTrackEvent, object>>> =\n\t| TCommonEvent<TTrackEvent, TEventPropsMap>\n\t| TEventsWithRequiredProps<TTrackEvent, TEventPropsMap>;\n\ntype TrackEventStep = \"success\" | \"error\" | \"intent\" | \"attempt\";\n\n// Common event types that both platforms share\ntype BaseTrackEvent =\n\t| \"webapp_page_view\"\n\t| \"doc_download\"\n\t| \"doc_upload\"\n\t| \"account_logout\"\n\t| \"open_plain\"\n\t| \"open_external_link\"\n\t| \"offer_add_witness\"\n\t| \"exercise_request_action\"\n\t| \"people_columns\"\n\t| \"message_react\"\n\t| \"message_reply\"\n\t| \"terms_acceptance\"\n\t| \"icp_chat_prompt_show\";\n\n// Base event interface that can be extended by platform-specific types\ninterface __BaseEvent__ {\n\tevent: string; // Will be narrowed by platform-specific types\n\tevent_step: TrackEventStep;\n\ttarget_platform?: AppContext[\"APP_SEGMENT\"];\n\tcreated_at?: string;\n\treferrer?: string;\n\turl?: string;\n\ttarget?: string;\n\ttarget_child?: string;\n\ttarget_parent?: string;\n\torgid?: string; // if not supplied, it will be injected for the founder app\n\tcountry?: string; // if not supplied, it will be injected for the founder app\n}\n\ntype EventRequiredPropsMap = {\n\topen_external_link: {\n\t\tlink: string;\n\t};\n};\n\ntype BaseEventInternal = TAnalyticsEvent<BaseTrackEvent, EventRequiredPropsMap>;\n\n// UTM code extraction utility\nfunction extractUtmCodes(): Record<string, string | null> {\n\tconst searchParams = new URLSearchParams(window.location.search);\n\n\treturn {\n\t\tutm_source: searchParams.get(\"utm_source\"),\n\t\tutm_term: searchParams.get(\"utm_term\"),\n\t\tutm_medium: searchParams.get(\"utm_medium\"),\n\t\tutm_content: searchParams.get(\"utm_content\"),\n\t\tutm_campaign: searchParams.get(\"utm_campaign\"),\n\t\tutm_source_last: searchParams.get(\"utm_source_last\"),\n\t\tutm_term_last: searchParams.get(\"utm_term_last\"),\n\t\tutm_medium_last: searchParams.get(\"utm_medium_last\"),\n\t\tutm_content_last: searchParams.get(\"utm_content_last\"),\n\t\tutm_campaign_last: searchParams.get(\"utm_campaign_last\"),\n\t\tcta_platform: searchParams.get(\"cta_platform\"),\n\t\tcta_location: searchParams.get(\"cta_location\"),\n\t\tcta_button: searchParams.get(\"cta_button\"),\n\t};\n}\n\n// WebSocket management\nlet tracking_websocket: WebSocket | null = null;\n\nfunction getOrCreateWebSocket(): Promise<WebSocket> {\n\treturn new Promise((resolve, reject) => {\n\t\tif (\n\t\t\t!tracking_websocket ||\n\t\t\ttracking_websocket.readyState === 2 /* CLOSING */ ||\n\t\t\ttracking_websocket.readyState === 3 /* CLOSED */\n\t\t) {\n\t\t\ttracking_websocket = new WebSocket(\n\t\t\t\t`${window.location.protocol === \"http:\" ? \"ws\" : \"wss\"}://${window.location.host}/ws/tracking`\n\t\t\t);\n\t\t\ttracking_websocket.onerror = console.warn;\n\t\t\ttracking_websocket.onclose = console.warn;\n\t\t\ttracking_websocket.addEventListener(\"open\", () => resolve(tracking_websocket!));\n\t\t} else if (tracking_websocket.readyState === 0 /* CONNECTING */) {\n\t\t\ttracking_websocket.addEventListener(\"open\", () => resolve(tracking_websocket!));\n\t\t} else if (tracking_websocket.readyState === 1 /* OPEN */) {\n\t\t\tresolve(tracking_websocket);\n\t\t} else {\n\t\t\treject(\"El chupacabra haunts this code\");\n\t\t}\n\t});\n}\n\n// Base tracking function that can be extended by platform-specific implementations\nfunction baseCakeTrack<T extends __BaseEvent__>(event: T): Promise<void> {\n\tif (!event.event) {\n\t\tif (getAppContext().APP_ENVIRONMENT === \"local\") {\n\t\t\tconsole.trace([\"Missing event data\", event]);\n\t\t\talert(\"Bad analytics event, check console.\");\n\t\t} else {\n\t\t\tconsole.error(`Missing event data: ${JSON.stringify(event)}`);\n\t\t}\n\t\treturn Promise.reject(\"Missing event data\");\n\t}\n\n\t// Extract UTM codes for page view events\n\tconst utm_codes = event.event === \"webapp_page_view\" ? extractUtmCodes() : {};\n\n\tconst appContext = getAppContext();\n\tconst platform = appContext?.APP_SEGMENT || \"unknown\";\n\n\t// Build base event object\n\tlet enrichedEvent: __BaseEvent__ = {\n\t\t// @ts-expect-error STRICT_NULL_CHECKS duplicate key overwritten\n\t\tevent_step: \"success\" as const, //  just a default, to be overridden by cakeTrack calls when necessary\n\t\tcreated_at: new Date().toISOString(),\n\t\treferrer: document.referrer,\n\t\turl: window.location.href,\n\t\tsession_id: window.amplitude?.getSessionId() || null, // inject amplitude session id if available\n\t\ttarget_platform: platform, // inject platform\n\t\t...event,\n\t\t...utm_codes,\n\t};\n\n\t// const platformData = platformEnhancer(event);\n\tif (platform === \"founder\") {\n\t\tenrichedEvent = {\n\t\t\t...enrichedEvent,\n\t\t\torgid: event.orgid || useOrgStore.getState().selectedOrgId || \"\",\n\t\t\tcountry: event.country || useOrgStore.getState().organisationData?.country || \"\",\n\t\t};\n\t}\n\n\t// @ts-expect-error STRICT_NULL_CHECKS implicit any element\n\tif (window[\"showEvents\"]) {\n\t\tconsole.log(\" event:\", enrichedEvent.event, \"\\n\", \"event_step:\", enrichedEvent.event_step, \"\\n\", {\n\t\t\tdata: enrichedEvent,\n\t\t});\n\t}\n\n\treturn getOrCreateWebSocket()\n\t\t.then((ws: WebSocket) => {\n\t\t\tws.send(JSON.stringify(enrichedEvent));\n\t\t})\n\t\t.catch(console.warn);\n}\n\nexport {\n\tbaseCakeTrack as __baseCakeTrackInternal__,\n\ttype BaseEventInternal as __BaseEventInternal__,\n\ttype BaseTrackEvent as __BaseTrackEvent__,\n\ttype TrackEventStep,\n\ttype TAnalyticsEvent,\n};\n"],"names":["BaseElement","React","position","margin","marginTop","marginBottom","marginLeft","marginRight","padding","paddingTop","paddingBottom","paddingLeft","paddingRight","size","minHeight","height","maxHeight","minWidth","width","maxWidth","background","borderColor","borderRadius","borderStyle","className","children","props","ref","cssClasses","clsx","Array","s","getDefaultMarginClasses","getPadding","getMargin","Box","forwardRef","orientation","align","gap","gapHorizontal","gapVertical","wrap","inline","dataIs","styles","al","getGap","Button","variant","loading","icon","iconPlacement","dataTest","disabled","capitalizeString","iconProp","undefined","Loader","Icon","loaderSizes","_","index","ReconnectingEventSourceWithTimeout","ReconnectingEventSource","event","console","Date","ToastError","Infinity","timeout","Math","setTimeout","ServerSentEvents","listener","l","e","JSON","ToastSuccess","organisationId","useOrgStore","getAppContext","err","useAppConfig","PlatformVersionDocument","response","Promise","window","userId","skipSseOrgCheck","MAX_DECIMAL_INPUT","cookieStorage","name","Cookies","value","REDIRECT_KEY","badOrgDetection","orgId","parsed","count","safeCount","Number","parseInt","raw","localStorage","String","alert","create","persist","set","get","id","redirectPath","show","hide","orgData","orgResetting","hasUserCompanyRoles","roles","desiredRoles","role","createJSONStorage","state","tracking_websocket","baseCakeTrack","searchParams","utm_codes","URLSearchParams","appContext","platform","enrichedEvent","document","getOrCreateWebSocket","resolve","reject","WebSocket","ws"],"mappings":"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"}