{"version":3,"sources":["webpack://@lemon8/web-sharing/./client/components/loading/index.tsx","webpack://@lemon8/web-sharing/./client/utils/sharing-loader.ts","webpack://@lemon8/web-sharing/./client/utils/sharing-remix-page.tsx","webpack://@lemon8/web-sharing/../libs/ark-css-links/dist/es/index.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/common.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/csr.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/index.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/ssr.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/i18n-provider/index.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/index.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/remix-page/index.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/safe-atom-family.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/scoped-provider/hooks.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/scoped-provider/index.js","webpack://@lemon8/web-sharing/../libs/lemon8-web-app-shared/dist/esm/ssr/use-route-loader.js"],"names":["LoadingBall","props","fitParent","style","loadingDiv","useRef","useEffect","current","lottie","container","renderer","loop","autoplay","animationData","LOADING_BALL","jsx","className","cls","children","ref","LoadingGradient","shadow","backgroundImage","concat","LOADING_GRADIENT_SHADOW","LOADING_GRADIENT_NO_SHADOW","Loading","variant","jsxs","Fragment","buildSharingLoader","name","args","context","loaders","setRemixParams","params","SharingRemixPage","AbsRemixPage","constructor","arguments","HeadSkeleton","BodySkeleton","useRouteLoading","canonicalUrl","useAtomValue","$SharingPageLevelTraffic","a","URL","location","pathname","manifestCache","getManifest","window","__remixManifest","cssLinks","routeId","routes","cssImports","map","href","rel","Object","exports","value","getAtom","key","res","includes","atomKey","split","decodeArgs","decodeURIComponent","atomFamily","atomFamilies","console","error","atoms","jotai_1","require","react_1","react_2","common_1","CSRDataInjector","store","useStore","matches","useMatches","ids","Set","isHydrating","pendingAtoms","forEach","m","data","dataLoaderId","__id__","has","add","startsWith","atom","atomData","push","length","_ref","set","jsx_runtime_1","csr_1","ssr_1","DataInjector","_objectSpread","SSRDataInjector","utils_1","hydrateAtoms","useMemo","useHydrateAtoms","__importDefault","mod","__esModule","atom_1","i18next_icu_1","i18next_1","react_i18next_1","I18nProvider","language","$Locale","resources","$I18nText","i18n","_i18n","createInstance","lng","returnNull","use","initReactI18next","default","init","catch","i18next","I18nextProvider","__createBinding","create","o","k","k2","desc","getOwnPropertyDescriptor","writable","configurable","enumerable","get","defineProperty","__exportStar","p","prototype","hasOwnProperty","call","HeadOutlet","Outlet","target","BodyOutlet","Component","HeadContent","state","useNavigation","Head","routeLoading","BodyContent","Body","Content","useOutletContext","render","util_1","safeAtomFamily","initializeAtom","areEqual","family","initializeAtomWrapper","param","PendingQueue","instance","remove","index_1","ScopedStoreNotFoundError","Error","options","scopedStore","useContext","ScopedProviderContext","useAtom","useScopedAtomValue","useSetScopedAtom","useSetAtom","createContext","Map","ScopedProvider","atomsWithHydration","createStore","parentScopedContext","scopedContextValue","_ref2","Provider","safe_atom_family_1","$LoaderState","uniqueId","debugLabel","useRouteLoader","method","loaderId","useId","$CurrentLoaderState","setState","stateRef","load","useCallback","_a","url","searchParams","at","id","entries","String","fetch","then","rsp","json","atomToSet","e","log","finally"],"mappings":"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","file":"16-9362e9335169dbfdaaba.js","sourcesContent":["import { CSSProperties, useEffect, useRef } from 'react';\nimport LOADING_GRADIENT_SHADOW from './assets/gradient_shadow.png';\nimport LOADING_GRADIENT_NO_SHADOW from './assets/gradient_no_shadow.png';\nimport LOADING_BALL from './assets/loading_ball.json';\nimport cls from 'classnames';\nimport lottie from 'lottie-web/build/player/lottie_light_canvas';\n\nimport './style.scss';\n\nexport interface LoadingProps {\n variant: 'ball' | 'gradient';\n\n /**\n * @default false\n */\n shadow?: boolean;\n\n /**\n * @default false\n */\n fitParent?: boolean;\n\n style?: CSSProperties;\n}\n\nexport const LoadingBall = (props: { fitParent: boolean; style: CSSProperties }): JSX.Element => {\n const { fitParent, style = {} } = props;\n const loadingDiv = useRef(null);\n\n useEffect(() => {\n if (loadingDiv.current) {\n lottie.loadAnimation({\n container: loadingDiv.current,\n renderer: 'canvas',\n loop: true,\n autoplay: true,\n animationData: LOADING_BALL,\n });\n }\n }, []);\n\n return (\n \n
\n
\n );\n};\n\nexport const LoadingGradient = (props: { shadow: boolean; fitParent: boolean; style: CSSProperties }): JSX.Element => {\n const { shadow, fitParent, style = {} } = props;\n return (\n \n \n \n );\n};\n\nexport const Loading = (props: LoadingProps): JSX.Element => {\n const { variant, shadow = false, fitParent = false, style = {} } = props;\n\n return (\n <>\n {variant === 'ball' && }\n {variant === 'gradient' && }\n \n );\n};\n","import { LoaderFunction } from '@remix-run/node';\n\nexport const buildSharingLoader = (name: string): LoaderFunction => {\n return (args: any) => {\n const {\n context: { loaders, setRemixParams },\n params,\n } = args;\n\n setRemixParams(params);\n return loaders[name]();\n };\n};\n","import { AbsRemixPage } from '@lemon8/web-app-shared/ssr';\nimport { useAtomValue } from 'jotai';\nimport { $SharingPageLevelTraffic } from 'shared/atoms';\nimport { useLocation } from '@remix-run/react';\nimport { Loading } from '~/components/loading';\n\nexport abstract class SharingRemixPage extends AbsRemixPage {\n HeadSkeleton = () => {\n return (\n <>\n Lemon8 Loading...\n \n );\n };\n BodySkeleton = () => {\n return (\n <>\n \n \n );\n };\n\n useRouteLoading = () => {\n const { canonicalUrl } = useAtomValue($SharingPageLevelTraffic);\n\n if (__BUILD_TARGET__ === 'server') {\n return false;\n }\n\n const a = new URL(canonicalUrl);\n return location.pathname !== a.pathname;\n };\n}\n","var manifestCache;\nfunction getManifest() {\n if (manifestCache)\n return manifestCache;\n return (manifestCache = process.env.BUILD_TARGET === 'client' ? window.__remixManifest : require('ttark').assets);\n}\n// do not pass routeId directly, webpack CSSLinksPlugin will pass the routeId\nexport function cssLinks(routeId) {\n return (manifestCache || getManifest()).routes[routeId].cssImports.map(function (href) { return ({ rel: 'stylesheet', href: href }); });\n}\n//# sourceMappingURL=index.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getAtom = void 0;\nconst getAtom = (props, key) => {\n let res;\n if (key.includes('+')) {\n // for atom family\n const [atomKey, ...args] = key.split('+');\n const decodeArgs = args.map((a) => decodeURIComponent(a));\n const atomFamily = props.atomFamilies[atomKey];\n if (!atomFamily) {\n console.error('atomFamily not found for key: %s', key);\n }\n res = atomFamily(...decodeArgs);\n }\n else {\n // for plain atom\n res = props.atoms[key];\n }\n if (process.env.NODE_ENV === 'development' && !res) {\n throw new Error(`no such atom for key: ${key}`);\n }\n return res;\n};\nexports.getAtom = getAtom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CSRDataInjector = void 0;\nconst jotai_1 = require(\"jotai\");\nconst react_1 = require(\"react\");\nconst react_2 = require(\"@remix-run/react\");\nconst common_1 = require(\"./common\");\nconst CSRDataInjector = (props) => {\n const store = (0, jotai_1.useStore)();\n const matches = (0, react_2.useMatches)();\n const ids = (0, react_1.useRef)(new Set());\n const isHydrating = (0, react_1.useRef)(true);\n (0, react_1.useEffect)(() => {\n if (isHydrating.current) {\n isHydrating.current = false;\n return;\n }\n const pendingAtoms = [];\n matches.forEach((m) => {\n const data = m.data;\n const dataLoaderId = data?.__id__ || null;\n // 根据 root loader 去重\n if (dataLoaderId && ids.current.has(dataLoaderId)) {\n return;\n }\n if (dataLoaderId) {\n ids.current.add(dataLoaderId);\n }\n for (const key in data) {\n if (!key.startsWith('$')) {\n continue;\n }\n const atom = (0, common_1.getAtom)(props, key);\n const atomData = data[key];\n pendingAtoms.push([atom, atomData]);\n }\n });\n if (pendingAtoms.length) {\n pendingAtoms.forEach(([atom, atomData]) => store.set(atom, atomData));\n }\n }, [matches]);\n return null;\n};\nexports.CSRDataInjector = CSRDataInjector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DataInjector = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst csr_1 = require(\"./csr\");\nconst ssr_1 = require(\"./ssr\");\nconst DataInjector = (props) => {\n return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(csr_1.CSRDataInjector, { ...props }), (0, jsx_runtime_1.jsx)(ssr_1.SSRDataInjector, { ...props })] }));\n};\nexports.DataInjector = DataInjector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SSRDataInjector = void 0;\nconst jotai_1 = require(\"jotai\");\nconst utils_1 = require(\"jotai/utils\");\nconst react_1 = require(\"react\");\nconst react_2 = require(\"@remix-run/react\");\nconst common_1 = require(\"./common\");\n/**\n * SSR + Hydration\n */\nconst SSRDataInjector = (props) => {\n const store = (0, jotai_1.useStore)();\n const matches = (0, react_2.useMatches)();\n const hydrateAtoms = (0, react_1.useMemo)(() => {\n const res = [];\n matches.forEach((m) => {\n const data = m.data;\n for (const key in data) {\n if (!key.startsWith('$')) {\n continue;\n }\n const atom = (0, common_1.getAtom)(props, key);\n const atomData = data[key];\n res.push([atom, atomData]);\n }\n });\n return res;\n }, []);\n (0, utils_1.useHydrateAtoms)(hydrateAtoms, { store });\n return null;\n};\nexports.SSRDataInjector = SSRDataInjector;\n","\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.I18nProvider = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst react_1 = require(\"react\");\nconst jotai_1 = require(\"jotai\");\nconst atom_1 = require(\"../../atom\");\nconst i18next_icu_1 = __importDefault(require(\"i18next-icu\"));\nconst i18next_1 = require(\"i18next\");\nconst react_i18next_1 = require(\"react-i18next\");\nconst I18nProvider = ({ children }) => {\n const { language } = (0, jotai_1.useAtomValue)(atom_1.$Locale);\n const resources = (0, jotai_1.useAtomValue)(atom_1.$I18nText);\n const i18n = (0, react_1.useMemo)(() => {\n const _i18n = (0, i18next_1.createInstance)({\n lng: language,\n resources,\n returnNull: false,\n });\n _i18n.use(react_i18next_1.initReactI18next);\n _i18n.use(i18next_icu_1.default);\n _i18n.init().catch(() => void 0);\n if (__BUILD_TARGET__ === 'client') {\n window.i18next = _i18n;\n }\n return _i18n;\n }, []);\n return (0, jsx_runtime_1.jsx)(react_i18next_1.I18nextProvider, { i18n: i18n, children: children });\n};\nexports.I18nProvider = I18nProvider;\n","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./scoped-provider\"), exports);\n__exportStar(require(\"./data-injector\"), exports);\n__exportStar(require(\"./i18n-provider\"), exports);\n__exportStar(require(\"./remix-page\"), exports);\n__exportStar(require(\"./use-route-loader\"), exports);\n__exportStar(require(\"./safe-atom-family\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsRemixPage = exports.BodyOutlet = exports.HeadOutlet = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst react_1 = require(\"react\");\nconst react_2 = require(\"@remix-run/react\");\nconst HeadOutlet = () => (0, jsx_runtime_1.jsx)(react_2.Outlet, { context: { target: 'head' } });\nexports.HeadOutlet = HeadOutlet;\nconst BodyOutlet = () => (0, jsx_runtime_1.jsx)(react_2.Outlet, { context: { target: 'body' } });\nexports.BodyOutlet = BodyOutlet;\nclass AbsRemixPage extends react_1.Component {\n constructor() {\n super(...arguments);\n this.HeadContent = () => {\n const { state } = (0, react_2.useNavigation)();\n const { Head, HeadSkeleton, useRouteLoading } = this;\n const routeLoading = useRouteLoading();\n if (state === 'loading' || routeLoading) {\n return (0, jsx_runtime_1.jsx)(HeadSkeleton, {});\n }\n return (0, jsx_runtime_1.jsx)(Head, {});\n };\n this.BodyContent = () => {\n const { state } = (0, react_2.useNavigation)();\n const { Body, BodySkeleton, useRouteLoading } = this;\n const routeLoading = useRouteLoading();\n if (state === 'loading' || routeLoading) {\n return (0, jsx_runtime_1.jsx)(BodySkeleton, {});\n }\n return (0, jsx_runtime_1.jsx)(Body, {});\n };\n this.Content = () => {\n const { HeadContent, BodyContent } = this;\n const context = (0, react_2.useOutletContext)();\n if (context.target === 'head') {\n return (0, jsx_runtime_1.jsx)(HeadContent, {});\n }\n else {\n return (0, jsx_runtime_1.jsx)(BodyContent, {});\n }\n };\n }\n render() {\n const { Content } = this;\n return (0, jsx_runtime_1.jsx)(Content, {});\n }\n}\nexports.AbsRemixPage = AbsRemixPage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.safeAtomFamily = void 0;\nconst utils_1 = require(\"jotai/utils\");\nconst util_1 = require(\"../util\");\nconst safeAtomFamily = (initializeAtom, areEqual) => {\n let family = null;\n const initializeAtomWrapper = (param) => {\n const atom = initializeAtom(param);\n if (typeof window === 'undefined') {\n util_1.PendingQueue.instance.push(() => {\n family?.remove(param);\n });\n }\n return atom;\n };\n family = (0, utils_1.atomFamily)(initializeAtomWrapper, areEqual);\n return family;\n};\nexports.safeAtomFamily = safeAtomFamily;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useSetScopedAtom = exports.useScopedAtomValue = exports.useScopedAtom = void 0;\nconst jotai_1 = require(\"jotai\");\nconst react_1 = require(\"react\");\nconst index_1 = require(\"./index\");\nclass ScopedStoreNotFoundError extends Error {\n constructor() {\n super('No scoped store found');\n }\n}\nexports.useScopedAtom = ((atom, options) => {\n const scopedProviderContext = (0, react_1.useContext)(index_1.ScopedProviderContext);\n const scopedStore = scopedProviderContext.get(atom);\n if (!scopedStore) {\n throw new ScopedStoreNotFoundError();\n }\n return (0, jotai_1.useAtom)(atom, { store: scopedStore, ...options });\n});\nconst useScopedAtomValue = (atom, options) => {\n const scopedProviderContext = (0, react_1.useContext)(index_1.ScopedProviderContext);\n const scopedStore = scopedProviderContext.get(atom);\n if (!scopedStore) {\n throw new ScopedStoreNotFoundError();\n }\n return (0, jotai_1.useAtomValue)(atom, { store: scopedStore, ...options });\n};\nexports.useScopedAtomValue = useScopedAtomValue;\nconst useSetScopedAtom = (atom, options) => {\n const scopedProviderContext = (0, react_1.useContext)(index_1.ScopedProviderContext);\n const scopedStore = scopedProviderContext.get(atom);\n if (!scopedStore) {\n throw new ScopedStoreNotFoundError();\n }\n return (0, jotai_1.useSetAtom)(atom, { store: scopedStore, ...options });\n};\nexports.useSetScopedAtom = useSetScopedAtom;\n","\"use strict\";\nvar __createBinding = (this && this.__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}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ScopedProvider = exports.ScopedProviderContext = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst jotai_1 = require(\"jotai\");\nconst react_1 = require(\"react\");\n__exportStar(require(\"./hooks\"), exports);\nexports.ScopedProviderContext = (0, react_1.createContext)(new Map());\n/**\n * a simple provider for reading atoms from children inside React DOM tree\n * support inheritance and SAME_LEVEL atom computing.\n */\nconst ScopedProvider = (props) => {\n const { atomsWithHydration = [], atoms = [], children } = props;\n const scopedStore = (0, react_1.useMemo)(jotai_1.createStore, []);\n const parentScopedContext = (0, react_1.useContext)(exports.ScopedProviderContext);\n const scopedContextValue = (0, react_1.useMemo)(() => {\n const map = new Map(parentScopedContext);\n atomsWithHydration.forEach(([atom, data]) => {\n map.set(atom, scopedStore);\n scopedStore.set(atom, data);\n });\n atoms.forEach((atom) => {\n map.set(atom, scopedStore);\n });\n return map;\n }, [scopedStore, parentScopedContext]);\n atomsWithHydration.forEach(([atom, data]) => {\n (0, react_1.useEffect)(() => {\n scopedStore.set(atom, data);\n }, [data]);\n });\n return (0, jsx_runtime_1.jsx)(exports.ScopedProviderContext.Provider, { value: scopedContextValue, children: children });\n};\nexports.ScopedProvider = ScopedProvider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useRouteLoader = void 0;\nconst react_1 = require(\"@remix-run/react\");\nconst jotai_1 = require(\"jotai\");\nconst react_2 = require(\"react\");\nconst safe_atom_family_1 = require(\"./safe-atom-family\");\nconst getAtom = (atom, key) => {\n let res;\n if (key.includes('+')) {\n // for atom family\n const [atomKey, ...args] = key.split('+');\n const decodeArgs = args.map((a) => decodeURIComponent(a));\n const atomFamily = (atom.atomFamilies || {})[atomKey];\n if (!atomFamily) {\n console.error('atomFamily not found for key: %s', key);\n }\n res = atomFamily(...decodeArgs);\n }\n else {\n // for plain atom\n res = (atom.atoms || {})[key];\n }\n if (process.env.NODE_ENV === 'development' && !res) {\n throw new Error(`no such atom for key: ${key}`);\n }\n return res;\n};\nconst $LoaderState = (0, safe_atom_family_1.safeAtomFamily)((uniqueId) => {\n const a = (0, jotai_1.atom)('idle');\n a.debugLabel = `$LoaderState+${uniqueId}`;\n return a;\n});\nconst useRouteLoader = (method, params, atom) => {\n const loaderId = (0, react_2.useId)();\n const $CurrentLoaderState = $LoaderState(loaderId);\n const [state, setState] = (0, jotai_1.useAtom)($CurrentLoaderState);\n const store = (0, jotai_1.useStore)();\n const matches = (0, react_1.useMatches)();\n const stateRef = (0, react_2.useRef)('idle');\n const load = (0, react_2.useCallback)(() => {\n if (stateRef.current === 'loading') {\n return;\n }\n stateRef.current = 'loading';\n setState('loading');\n const url = new URL('', location.href);\n url.searchParams.set('method', method);\n url.searchParams.set('_data', matches.at(-1)?.id || '');\n Object.entries(params).forEach(([key, value]) => {\n url.searchParams.set(key, String(value));\n });\n window\n .fetch(url)\n .then((rsp) => rsp.json())\n .then((data) => {\n if (!data) {\n return;\n }\n try {\n Object.entries(data).forEach(([key, value]) => {\n if (!key.startsWith('$')) {\n return;\n }\n const atomToSet = getAtom(atom, key);\n store.set(atomToSet, value);\n });\n }\n catch (e) {\n console.error(e);\n }\n })\n .catch(console.log)\n .finally(() => {\n stateRef.current = 'idle';\n setState('idle');\n });\n }, [method, params]);\n return {\n state,\n load,\n };\n};\nexports.useRouteLoader = useRouteLoader;\n"],"sourceRoot":""}