{"version":3,"sources":["webpack://@lemon8/web-seo/./client/components/image/index.tsx","webpack://@lemon8/web-seo/./client/components/view-tracker/view-observer.ts","webpack://@lemon8/web-seo/./client/models/enable-pintrk.ts","webpack://@lemon8/web-seo/./client/utils/active/schema.ts","webpack://@lemon8/web-seo/./client/utils/active/index.ts","webpack://@lemon8/web-seo/./client/utils/active/use-page-active.ts","webpack://@lemon8/web-seo/./client/utils/click-position.ts","webpack://@lemon8/web-seo/./client/utils/is-mobile-user.ts","webpack://@lemon8/web-seo/./client/utils/libra/seo-reflow-v4.ts","webpack://@lemon8/web-seo/./client/utils/libra/inp.ts","webpack://@lemon8/web-seo/./client/utils/libra/post-comment-expand.ts","webpack://@lemon8/web-seo/./client/utils/module-type.ts","webpack://@lemon8/web-seo/./client/utils/use-reflow-click.ts","webpack://@lemon8/web-seo/./client/utils/use-view-tracking.ts","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/europe.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/language.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/region.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/common.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/csr.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/data-injector/ssr.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/i18n-provider/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/remix-page/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/remix-script/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/safe-atom-family.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/scoped-provider/hooks.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/scoped-provider/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/ssr/use-route-loader.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/num-formatter.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/time-ago-formatter.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/time-formatter.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/no-operation.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/pending-queue.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/unreachable.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/index.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/observer.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/preset.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/use-view-observer.js","webpack://@lemon8/web-seo/../libs/lemon8-web-app-shared/dist/esm/util/xss/index.js"],"names":["Image","props","jsx","_objectSpread","onContextMenu","e","preventDefault","buildThreshold","steps","arguments","length","undefined","Array","from","_x","i","DEFAULT_ERROR_MARGIN","DEFAULT_MARGIN","DEFAULT_OPTIONS","errorMargin","defaultMargin","percentCompensation","minTimeVisible","useExistedInstance","config","root","rootMargin","threshold","Math","min","instance","_ViewObserver","constructor","_this","options","_watchElements","entries","containerHeight","window","innerHeight","document","documentElement","clientHeight","filter","entry","isIntersecting","forEach","node","target","element","elements","get","elementHeight","boundingClientRect","getBoundingClientRect","height","_isElementHeightSimilarToContainer","maxIntersectionRatio","isVisible","intersectionRatio","timeoutSet","timeouts","set","setTimeout","_onVisibilityChange","timeout","clearTimeout","delete","observe","callback","visible","observer","unobserve","_reportVisibilityStates","_ref","Object","assign","isNaN","Map","IntersectionObserver","_addEventListeners","destroy","clear","disconnect","_removeEventListeners","addEventListener","removeEventListener","ViewObserver","Factory","$EnablePintrk","atom","region","ipRegion","$Locale","enterHref","href","$RootTraffic","searchParams","URL","includes","EURO_COUNTRY_SET","isArticleSchemaBuildingProps","input","pageType","isVideoSchemaBuildingProps","isUserSchemaBuildingProps","isCategorySchemaBuildingProps","isHashtagSchemaBuildingProps","isPOISchemaBuildingProps","isSearchSchemaBuildingProps","buildSchema","protocol","host","params","URLSearchParams","group_id","groupId","authorId","user_id","userId","tab","channel_id","String","categoryId","hashtag_id","hashtagId","poi_id","poiId","channel","bundle","trans_status_bar","enter_anim","exit_anim","business_type","business_data","JSON","stringify","query","inputClickType","logExtra","search_page_from","search_from","previous_page_name","Unreachable","append","pid","campaign","concat","toString","modifyURLForSEM","onelink","location","parameter","value","modifyURLForPinterest","pathname","generateOneLink","schemaOption","ampExtra","overridePid","store","seoPageId","$PageLevelTraffic","trafficPid","versions","$ABTest","isiOS","isMacOS","$UserAgent","enablePintrk","schema","seo_page_id","traffic_type","source_group_id","active","optimizeOnelinkActive","$LibraOptimizeOnelinkActive","requestAnimationFrame","pintrk","event_id","lead_type","open","usePageActive","isBanner","useAtomValue","traffic","currentPid","pageId","PageLevelTrafficUtil","EPageType","contentByTranslate","useCallback","oneLinkAmpExtra","enter_page_type","enter_page_id","ClickPositionPrefix","ClickPosition","$IsMobileUser","isBot","isMobile","$SEOReflowV42","parameters","_get","$SEOReflowV42ArticleCarousel","isMobileUser","V42Config","$SEOReflowV42InterceptOpt","$SEOReflowV4","$HitSEOReflowV4","V4Config","$SEOReflowV4AllowExpand","$SEOReflowV4ManualPlay","$SEOReflowV4AllowExpandFoldWithAnchor","$SEOReflowV4NeverExpandFoldWithAnchor","$SEOReflowV4AllowExpandFoldWithoutAnchor","$LibraPreconnectOnelinkHost","Boolean","$PostCommentCountExp","$HitPostCommentCountExp","ModuleType","useReflowClick","deps","isInApp","trafficType","isRealUser","shouldReflow","notReflow","useRef","event","defaultBehavior","modalBehavior","reflowBehavior","finallyBehavior","clickEvent","isCTA","forceReflow","eventParams","current_position","click_result","current","Tea","is_cta","stopPropagation","useViewTracking","onView","ref","inputRef","tracked","setTracked","useState","useEffect","exports","Set","EURO_COUNTRY_LIST","isEuropeRegion","has","__createBinding","create","o","m","k","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","defineProperty","__exportStar","p","prototype","hasOwnProperty","call","require","region_1","Language","en","id","ja","ms","th","vi","fil","SupportedLanguages","map","language","displayName","LanguageDisplayNameMap","sort","l","r","Region","jp","my","vn","us","gb","sg","ph","VGeo","IDCRegion","getRegionIDC","VA","SG","getAtom","key","res","atomKey","args","split","decodeArgs","a","decodeURIComponent","atomFamily","atomFamilies","console","error","atoms","jotai_1","react_1","react_2","common_1","CSRDataInjector","useStore","matches","useMatches","ids","isHydrating","pendingAtoms","data","dataLoaderId","__id__","add","startsWith","atomData","push","jsx_runtime_1","csr_1","ssr_1","DataInjector","jsxs","Fragment","children","SSRDataInjector","utils_1","hydrateAtoms","useMemo","useHydrateAtoms","__importDefault","mod","atom_1","i18next_icu_1","i18next_1","react_i18next_1","I18nProvider","resources","$I18nText","i18n","_i18n","createInstance","lng","returnNull","use","initReactI18next","default","init","catch","i18next","I18nextProvider","HeadOutlet","Outlet","context","BodyOutlet","AbsRemixPage","Component","HeadContent","state","useNavigation","Head","HeadSkeleton","useRouteLoading","routeLoading","BodyContent","Body","BodySkeleton","Content","useOutletContext","render","react_router_dom_1","dedupe","array","StrictCSPScripts","manifest","serverHandoffString","useContext","UNSAFE_RemixContext","router","UNSAFE_DataRouterContext","UNSAFE_DataRouterStateContext","navigation","isHydrated","setIsHydrated","cspScripts","$CSPScripts","initialScripts","type","suppressHydrationWarning","dangerouslySetInnerHTML","__html","url","modules","match","route","routes","module","src","async","nextMatches","matchRoutes","Error","routePreloads","imports","flat","preloads","rel","path","LemonRemixScripts","disableInlineScripts","$RenderConfig","Scripts","util_1","safeAtomFamily","initializeAtom","areEqual","family","initializeAtomWrapper","param","PendingQueue","remove","index_1","ScopedStoreNotFoundError","scopedStore","ScopedProviderContext","useAtom","useScopedAtomValue","useSetScopedAtom","useSetAtom","createContext","ScopedProvider","atomsWithHydration","createStore","parentScopedContext","scopedContextValue","_ref2","Provider","safe_atom_family_1","$LoaderState","uniqueId","debugLabel","useRouteLoader","method","loaderId","useId","$CurrentLoaderState","setState","stateRef","load","_a","at","fetch","then","rsp","json","atomToSet","log","finally","i18n_1","NUM_INTERVAL_MAP","w","formatNum","num","_config","val","decimal","units","needDiv","toFixed","replace","unitDigit","oneDecimal","Number","upperLimit","upperText","s","tmpl","formatNumByRegion","t","dayjs_1","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_WEEK","EIGHT_DAY","formatTimeAgo","time","now","Date","after","seconds","floor","minutes","hours","days","weeks","timeDayjs","year","format","dateToLocalISO","timeStamp","timeZone","off","absoff","abs","toISOString","substr","padStart","NoOperation","_tasks","_doInterval","task","setInterval","reason","targetVisibleIntersectionThreshold","containerVisibleIntersectionThreshold","instances","scene","observer_1","preset_1","useViewObserver","ViewObserverPreset","filter_xss_1","filterXSS","html","_filterXSS","buildInnerHtml"],"mappings":"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","file":"114-1c0292d2b53470341b27.js","sourcesContent":["import React from 'react';\n\nexport const Image = (\n props: React.DetailedHTMLProps<\n React.ImgHTMLAttributes & { fetchpriority?: 'high' | 'low' | 'auto' },\n HTMLImageElement\n >,\n) => {\n return e.preventDefault()} />;\n};\n","export interface ObserverOptionsType {\n errorMargin: number;\n defaultMargin: number;\n percentCompensation: number;\n minTimeVisible: number;\n useExistedInstance?: boolean;\n config: {\n root: Element | null;\n rootMargin: string;\n threshold: number[];\n };\n}\n\ninterface IViewObserver {\n destroy: () => void;\n\n observe: (element: Element, callback: (visible: boolean) => void) => void;\n unobserve: (element: Element) => void;\n}\n\n/**\n * Build an array of threshold values ranging from 0 to 1\n * @param {Number} steps - number of steps between 0 and 1.0\n * @returns {Number[]} returns array of floats\n */\nexport const buildThreshold = (steps = 1) => {\n const threshold = Array.from({ length: steps }, (_x, i) => i / steps);\n\n // Returns an array like [0, ...n, 1]\n return [...threshold, 1];\n};\n\nconst DEFAULT_ERROR_MARGIN = 0.25;\nconst DEFAULT_MARGIN = 0.2;\n\nexport const DEFAULT_OPTIONS: ObserverOptionsType = {\n // If an element height is similar to the container height,\n // it's very difficult to catch an impression in 250ms.\n // By default, the intersectionRatio of an element should be\n // 1 to be considered seen and so for tall elements we reduce the\n // max intersectionRatio by this value\n errorMargin: DEFAULT_ERROR_MARGIN, // 25%\n\n // default to 0.2. The max intersectionRatio for a regular element\n // should be 0.8 as being _too_ strict can result in missed events.\n defaultMargin: DEFAULT_MARGIN, // 20%\n\n // The container height range at which to compensate with\n // an error margin\n percentCompensation: 0.2, // 20%\n\n // Element must be visible for >= 250ms\n minTimeVisible: 250,\n\n // Use the instance of the observer already exists, stay singleton\n useExistedInstance: true,\n\n // The ViewObserver config\n config: {\n root: null,\n rootMargin: '0px',\n threshold: buildThreshold(1 / Math.min(DEFAULT_ERROR_MARGIN, DEFAULT_MARGIN) + 5),\n },\n};\n\nlet instance: ViewObserver | null = null;\n\nexport default class ViewObserver implements IViewObserver {\n options: ObserverOptionsType;\n elements: Map<\n Element,\n {\n callback: (visible: boolean) => void;\n visible: boolean;\n entry: Element;\n timeoutSet?: boolean;\n }\n >;\n timeouts: Map>;\n observer: IntersectionObserver;\n\n static Factory = {\n get(options: ObserverOptionsType): ViewObserver {\n return new ViewObserver(options);\n },\n };\n\n constructor(options = {}) {\n this.options = Object.assign({}, DEFAULT_OPTIONS, options);\n\n if (isNaN(this.options.minTimeVisible) || this.options.minTimeVisible < 0) {\n this.options.minTimeVisible = DEFAULT_OPTIONS.minTimeVisible;\n }\n\n this.elements = new Map();\n this.timeouts = new Map();\n\n this.observer = new IntersectionObserver(this._watchElements, this.options.config);\n\n this._addEventListeners();\n }\n\n /**\n * Return the single instance of the IntersectionObserver if one exists already,\n * otherwise create an instance\n * @param {Object} options - ViewObserver instantiation options\n * @return {ViewObserver} return instance of the class\n */\n static get(options: ObserverOptionsType): ViewObserver {\n // If an instance of the observer already exists, return the singleton\n // otherwise instantiate a new one\n if (instance && instance instanceof ViewObserver && options.useExistedInstance) {\n return instance;\n }\n\n instance = new ViewObserver(options);\n return instance;\n }\n\n /**\n * Detroy all Maps and event listeners.\n * @returns {void} returns instance\n */\n public destroy(): void {\n // Clear all elements\n this.elements.clear();\n\n // Clear all lingering timeouts\n this.timeouts.clear();\n\n // Disconnect the observer, if available\n if (this.observer && typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n\n // Remove all event listeners\n this._removeEventListeners();\n\n instance = null;\n }\n\n /**\n * callback for Intersection Observer\n *\n * Loop through all the observed elements and check if visible\n *\n * @param {Array} [entries] array of [IntersectionObserverEntry],\n */\n private _watchElements = (entries: IntersectionObserverEntry[] = []): void => {\n // If rootBounds does not exist, it will default to the height and width\n // of the viewport\n const containerHeight = window.innerHeight || document.documentElement.clientHeight;\n\n entries\n .filter((entry) => entry.isIntersecting)\n .forEach((entry) => {\n const node = entry.target;\n const element = this.elements.get(node);\n\n // We wrap the child in a container, so we need to ensure we're looking at\n // the bounds of the child and not the wrapper\n const bounds = entry.boundingClientRect || node.getBoundingClientRect();\n\n const elementHeight = bounds.height;\n\n // If the element height is within x% (this.options.percentCompensation)\n // of the container height, use the errorMargin option (this.options.errorMargin).\n // Otherwise default to 0.25. The max intersectionRatio for a regular element\n // should be 0.75 as being _too_ strict can result in missed events.\n const errorMargin = this._isElementHeightSimilarToContainer(elementHeight, containerHeight)\n ? this.options.errorMargin\n : this.options.defaultMargin;\n\n const maxIntersectionRatio =\n containerHeight / elementHeight > 1 ? 1 - errorMargin : containerHeight / elementHeight - errorMargin;\n\n const isVisible = entry.intersectionRatio >= maxIntersectionRatio;\n // Element is still visible since last check\n if (isVisible && element && element.timeoutSet) {\n return;\n }\n\n // If the element is visible\n if (isVisible && element) {\n // Set the visibility state to true but wait until the timeout finishes\n // to fire the event\n element.timeoutSet = true;\n\n // Start timer\n this.timeouts.set(\n node,\n setTimeout(() => {\n // Fire the event\n this._onVisibilityChange(node, true);\n }, this.options.minTimeVisible),\n );\n } else {\n const timeout = this.timeouts.get(node);\n // Fire event\n this._onVisibilityChange(node, false);\n // Element is no longer visible, delete timeout\n clearTimeout(timeout);\n this.timeouts.delete(node);\n if (element) {\n element.timeoutSet = false;\n }\n }\n });\n };\n\n /**\n * Observe an IntersectionObserver entry\n * @param {Element} element the element to watch\n * @param {Function} callback the element callback event\n */\n observe = (element: Element, callback: (visible: boolean) => void): void => {\n this.elements.set(element, {\n callback,\n visible: false,\n entry: element,\n });\n\n this.observer.observe(element);\n };\n\n /**\n * Unobserve an IntersectionObserver entry\n * @param {Element} element the element to unobserve\n */\n unobserve = (element: Element): void => {\n if (!this.elements.get(element)) {\n return;\n }\n\n this.observer.unobserve(element);\n\n this.elements.delete(element);\n };\n\n /**\n * callback for orientationchange or other event which may cause element visible change\n *\n * Fire onChange event listeners for all visible elements\n */\n private _reportVisibilityStates = (): void => {\n this.elements.forEach(({ visible }, element) => {\n if (visible) {\n this._onVisibilityChange(element, visible);\n }\n });\n };\n\n /**\n * Handle DOM element visibility state change\n * @param {Element} element - the DOM node\n * @param {Boolean} visible - the visibility state of the entry\n */\n private _onVisibilityChange(element: Element, visible: boolean): void {\n const entry = this.elements.get(element);\n\n if (!entry) {\n return;\n }\n\n // Set the new visibility state\n entry.visible = visible;\n\n const { callback } = entry;\n callback(visible);\n }\n\n private _isElementHeightSimilarToContainer(elementHeight: number, containerHeight: number): boolean {\n return (\n elementHeight >= containerHeight - containerHeight * this.options.percentCompensation &&\n elementHeight <= containerHeight + containerHeight * this.options.percentCompensation\n );\n }\n\n private _addEventListeners(): void {\n window.addEventListener('focus', this._reportVisibilityStates);\n window.addEventListener('orientationchange', this._reportVisibilityStates);\n }\n\n private _removeEventListeners(): void {\n window.removeEventListener('focus', this._reportVisibilityStates);\n window.removeEventListener('orientationchange', this._reportVisibilityStates);\n }\n}\n","import { $Locale, $RootTraffic } from '@lemon8/web-app-shared/atom';\nimport { EURO_COUNTRY_SET } from '@lemon8/web-app-shared/i18n';\nimport { atom } from 'jotai';\n\nexport const $EnablePintrk = atom((get) => {\n const { region, ipRegion } = get($Locale);\n const { enterHref: href } = get($RootTraffic);\n\n const { searchParams } = new URL(href);\n\n return ['US_pinterest', 'JP_pinterest'].includes(searchParams.get('pid') || '') && !EURO_COUNTRY_SET.has(ipRegion);\n});\n","import { Unreachable } from '@lemon8/web-app-shared/util';\n\ninterface CommonSchemaBuildingProps {\n pageType: string;\n\n // 拉活渠道细分 TODO type\n campaign?: string;\n}\n\ninterface DetailSchemaBuildingProps extends CommonSchemaBuildingProps {\n groupId: string;\n authorId?: string;\n}\n\ninterface ArticleSchemaBuildingProps extends DetailSchemaBuildingProps {\n pageType: 'article';\n}\n\nconst isArticleSchemaBuildingProps = (input: CommonSchemaBuildingProps): input is ArticleSchemaBuildingProps =>\n input.pageType === 'article';\n\ninterface VideoSchemaBuildingProps extends DetailSchemaBuildingProps {\n pageType: 'video';\n}\n\nconst isVideoSchemaBuildingProps = (input: CommonSchemaBuildingProps): input is VideoSchemaBuildingProps =>\n input.pageType === 'video';\n\nexport interface UserSchemaBuildingProps extends CommonSchemaBuildingProps {\n pageType: 'user';\n userId: string;\n}\n\nconst isUserSchemaBuildingProps = (input: CommonSchemaBuildingProps): input is UserSchemaBuildingProps =>\n input.pageType === 'user';\n\ninterface CategorySchemaBuildingProps extends CommonSchemaBuildingProps {\n pageType: 'feed';\n categoryId: number;\n}\n\nconst isCategorySchemaBuildingProps = (input: CommonSchemaBuildingProps): input is CategorySchemaBuildingProps =>\n input.pageType === 'feed';\n\nexport interface HashtagSchemaBuildingProps extends CommonSchemaBuildingProps {\n pageType: 'hashtag';\n hashtagId: string;\n}\n\nconst isHashtagSchemaBuildingProps = (input: CommonSchemaBuildingProps): input is HashtagSchemaBuildingProps =>\n input.pageType === 'hashtag';\n\nexport interface POISchemaBuildingProps extends CommonSchemaBuildingProps {\n pageType: 'poi';\n poiId: string;\n}\n\nconst isPOISchemaBuildingProps = (input: CommonSchemaBuildingProps): input is POISchemaBuildingProps =>\n input.pageType === 'poi';\n\nexport interface SearchSchemaBuildingProps extends CommonSchemaBuildingProps {\n pageType: 'search';\n query: string;\n}\n\nconst isSearchSchemaBuildingProps = (input: CommonSchemaBuildingProps): input is SearchSchemaBuildingProps =>\n input.pageType === 'search';\n\nexport type DeepLinkBuildingProps =\n | ArticleSchemaBuildingProps\n | VideoSchemaBuildingProps\n | UserSchemaBuildingProps\n | CategorySchemaBuildingProps\n | HashtagSchemaBuildingProps\n | POISchemaBuildingProps\n | SearchSchemaBuildingProps;\n\nexport const buildSchema = (props: DeepLinkBuildingProps & { pid: string }): string => {\n let protocol = 'snssdk2657';\n let host = 'unknown';\n let params: URLSearchParams;\n\n if (isArticleSchemaBuildingProps(props)) {\n host = 'article_detail_page';\n params = new URLSearchParams({\n group_id: props.groupId,\n });\n if (props.authorId) {\n params.set('media_id', props.authorId);\n }\n } else if (isVideoSchemaBuildingProps(props)) {\n host = 'video_detail';\n params = new URLSearchParams({\n group_id: props.groupId,\n });\n if (props.authorId) {\n params.set('media_id', props.authorId);\n }\n } else if (isUserSchemaBuildingProps(props)) {\n host = 'user_profile';\n params = new URLSearchParams({\n user_id: props.userId,\n });\n } else if (isCategorySchemaBuildingProps(props)) {\n host = 'main';\n params = new URLSearchParams({\n tab: 'home',\n channel_id: String(props.categoryId),\n });\n } else if (isHashtagSchemaBuildingProps(props)) {\n host = 'hashtag';\n params = new URLSearchParams({\n hashtag_id: props.hashtagId,\n });\n } else if (isPOISchemaBuildingProps(props)) {\n host = 'poi_landing_page';\n params = new URLSearchParams({\n poi_id: props.poiId,\n });\n } else if (isSearchSchemaBuildingProps(props)) {\n host = 'lynxview';\n params = new URLSearchParams({\n channel: 'search_v2',\n bundle: 'result_page/template.js',\n trans_status_bar: '1',\n enter_anim: 'search_alpha',\n exit_anim: 'search_alpha',\n business_type: 'search',\n business_data: JSON.stringify({\n query: props.query,\n tab: 0,\n inputClickType: 'open',\n logExtra: {\n query: props.query,\n search_page_from: 'search_page_general',\n search_from: 'seo_click',\n previous_page_name: 'seo',\n },\n }),\n });\n } else {\n return Unreachable('no match schema handler');\n }\n\n // append common params\n params.append('pid', props.pid);\n if (props.campaign) {\n params.append('campaign', props.campaign);\n }\n\n return `${protocol}//${host}?${params.toString()}`;\n};\n","import { $PageLevelTraffic } from 'shared/atoms';\nimport { buildSchema, DeepLinkBuildingProps } from './schema';\nimport { $ABTest, $UserAgent, $RootTraffic } from '@lemon8/web-app-shared/atom';\nimport { $EnablePintrk } from '~/models/enable-pintrk';\nimport { $LibraOptimizeOnelinkActive } from '~/utils/libra';\n\nexport interface ActiveProps {\n pid?: string;\n schemaOption: DeepLinkBuildingProps;\n ampExtra: Record;\n}\n\nconst modifyURLForSEM = (onelink: URL): void => {\n const href = new URL(location.href);\n\n if (href.searchParams.get('ad_platform_id') !== 'googleadwords_int_lead') {\n return;\n }\n\n onelink.searchParams.set('pid', 'google_sem');\n onelink.searchParams.set('af_prt', 'wezonet');\n\n const afParameters = ['af_c_id', 'af_adset_id', 'af_ad_id', 'af_keywords', 'af_channel', 'placement', 'target'];\n\n afParameters.forEach((parameter) => {\n const value = href.searchParams.get(parameter);\n if (value) {\n onelink.searchParams.set(parameter, value);\n }\n });\n};\n\nconst modifyURLForPinterest = (onelink: URL): void => {\n const href = new URL(location.href);\n\n const afParameters = [\n 'pid',\n 'af_siteid',\n 'c',\n 'af_adset',\n 'af_adset_id',\n 'af_ad',\n 'af_ad_id',\n 'af_c_id',\n 'af_click_lookback',\n 'clickid',\n 'sha1_idfa',\n 'tracking',\n 'appid',\n 'timestamp',\n 'af_prt',\n 'af_ios_store_cpp',\n ];\n\n afParameters.forEach((parameter) => {\n const value = href.searchParams.get(parameter);\n if (value) {\n onelink.searchParams.set(parameter, value);\n }\n });\n\n onelink.host = 'app.appsflyer.com';\n onelink.pathname = '/id1498607143';\n};\n\nexport const generateOneLink = (props: ActiveProps): string => {\n const { schemaOption, ampExtra, pid: overridePid } = props;\n const store = window.store;\n const { seoPageId } = store.get($PageLevelTraffic);\n const { trafficPid } = store.get($RootTraffic);\n const { versions } = store.get($ABTest);\n const { isiOS, isMacOS } = store.get($UserAgent);\n const enablePintrk = store.get($EnablePintrk);\n\n const pid = overridePid || trafficPid;\n\n const schema = buildSchema({\n ...schemaOption,\n pid,\n });\n\n const onelink = new URL('https://lemon8.onelink.me/FMQw');\n onelink.searchParams.set('pid', pid);\n onelink.searchParams.set('af_force_dp', 'false');\n onelink.searchParams.set('af_dp', schema);\n onelink.searchParams.set('retargeting', 'true');\n onelink.searchParams.set('ab_version', versions);\n onelink.searchParams.set(\n 'af_web_dp',\n isiOS || isMacOS\n ? 'https://itunes.apple.com/app/apple-store/id1498607143?pt=1613620&ct=interstitialdownload&mt=8'\n : 'https://play.google.com/store/apps/details?id=com.bd.nproject',\n );\n onelink.searchParams.set(\n 'amp_extra',\n JSON.stringify({\n seo_page_id: seoPageId,\n traffic_type: pid,\n ...ampExtra,\n }),\n );\n\n if (props.ampExtra.source_group_id) {\n onelink.searchParams.set('af_ad', `?${props.ampExtra.source_group_id}`);\n }\n\n modifyURLForSEM(onelink);\n if (enablePintrk) {\n modifyURLForPinterest(onelink);\n }\n\n return onelink.toString();\n};\n\nexport const active = (props: ActiveProps): void => {\n const onelink = generateOneLink(props);\n\n const optimizeOnelinkActive = window.store.get($LibraOptimizeOnelinkActive);\n const enablePintrk = window.store.get($EnablePintrk);\n\n if (optimizeOnelinkActive) {\n requestAnimationFrame(() => {\n setTimeout(() => {\n if (enablePintrk && 'pintrk' in window) {\n window.pintrk('track', 'lead', {\n event_id: 'eventId0001',\n lead_type: 'Newsletter',\n });\n }\n\n window.open(onelink);\n }, 0);\n });\n } else {\n if (enablePintrk && 'pintrk' in window) {\n window.pintrk('track', 'lead', {\n event_id: 'eventId0001',\n lead_type: 'Newsletter',\n });\n }\n\n window.open(onelink);\n }\n};\n","import { useCallback } from 'react';\nimport { active, ActiveProps } from './index';\nimport { $Locale, $RootTraffic } from '@lemon8/web-app-shared/atom';\nimport { useAtomValue } from 'jotai';\nimport { $PageLevelTraffic } from 'shared/atoms';\nimport { EPageType, PageLevelTrafficUtil } from 'shared/models';\n\ninterface UsePageActiveProps {\n /** 是否是banner,用于区分discover页不同的pid */\n isBanner?: boolean;\n}\n\nexport type UsePageActiveCallbackProps = Omit;\n\nexport const usePageActive = (props: UsePageActiveProps = {}) => {\n const { isBanner = false } = props;\n const { region } = useAtomValue($Locale);\n\n const { trafficPid } = useAtomValue($RootTraffic);\n const traffic = useAtomValue($PageLevelTraffic);\n const { pageType, currentPid } = traffic;\n const pageId = PageLevelTrafficUtil.getPageIdFromTraffic(traffic);\n\n let pid = trafficPid;\n if (pageType === EPageType.discover) {\n pid = isBanner ? 'website_seo_discover_banner' : 'website_seo_discover';\n }\n\n if (traffic.pageType === EPageType.article || traffic.pageType === EPageType.video) {\n pid = traffic.contentByTranslate === 1 ? `website_seo_translate_${region}` : pid;\n }\n\n if (currentPid) {\n pid = currentPid;\n }\n\n return useCallback(\n (props: UsePageActiveCallbackProps) => {\n const { schemaOption, ampExtra } = props;\n\n const oneLinkAmpExtra: Record = {\n traffic_type: pid,\n // current page info, not enter page\n enter_page_type: pageType,\n // current page info, not enter page\n enter_page_id: pageId,\n // related-to campaign.gid, for new user acceptance\n ...ampExtra,\n };\n\n // append source_group_id\n // 1. activating target page is article or video\n // 2. activating source page is article or video\n if (schemaOption.pageType === 'article' || schemaOption.pageType === 'video') {\n oneLinkAmpExtra.source_group_id = schemaOption.groupId;\n } else if (traffic.pageType === 'article' || traffic.pageType === 'video') {\n oneLinkAmpExtra.source_group_id = traffic.groupId;\n }\n\n active({\n pid,\n schemaOption,\n ampExtra: oneLinkAmpExtra,\n });\n },\n [pid, pageType, pageId],\n );\n};\n","export const enum ClickPositionPrefix {\n category = 'category_',\n none = '',\n}\n\nexport const enum ClickPosition {\n pwa_notification_banner = 'pwa_notification_banner',\n intercept_banner = 'intercept_banner',\n first_landing_dialog = 'first_landing_dialog',\n side_bar_homepage = 'side_bar_homepage',\n side_bar_pp = 'side_bar_pp',\n side_bar_tos = 'side_bar_tos',\n side_bar_cookie = 'side_bar_cookie',\n side_bar_avmsd = 'side_bar_avmsd',\n side_bar_download = 'side_bar_download',\n side_bar_category = 'side_bar_category',\n side_bar_email = 'side_bar_email',\n top_bar_logo = 'top_bar_logo',\n top_bar_side = 'top_bar_side',\n top_bar_share = 'top_bar_share',\n top_bar_search = 'top_bar_search',\n top_bar_download = 'top_bar_download',\n top_search_bar = 'top_search_bar',\n main_category = 'main_category',\n main_author = 'main_author',\n main_author_follow_btn = 'main_author_follow_btn',\n main_hashtag = 'main_hashtag',\n main_poi = 'main_poi',\n main_content_poi = 'main_content_poi',\n main_content_mentioned_user = 'main_content_mentioned_user',\n main_sar = 'main_sar',\n main_inner_link = 'main_inner_link',\n main_content_read_more = 'main_content_read_more',\n main_content_read_more_modal = 'main_content_read_more_modal',\n main_content_unfold_cta_btn = 'main_content_unfold_cta_btn',\n main_comment_send = 'main_comment_send',\n main_comment_icon = 'main_comment_icon',\n main_share_icon = 'main_share_icon',\n main_like_icon = 'main_like_icon',\n main_favorite_icon = 'main_favorite_icon',\n main_see_more_btn = 'main_see_more_btn',\n main_read_more = 'main_read_more',\n comment_author = 'comment_author',\n comment_image = 'comment_image',\n comment_like = 'comment_like',\n comment_reply = 'comment_reply',\n comment = 'comment',\n comment_mentioned_user = 'comment_mentioned_user',\n comment_see_more = 'comment_see_more',\n comment_reply_see_more = 'comment_reply_see_more',\n activity_banner = 'activity_banner',\n related_post = 'related_post',\n related_post_carousel = 'related_post_carousel',\n related_dialog = 'related_dialog',\n related_hashtag = 'related_hashtag',\n related_hashtag_with_article_card = 'related_hashtag_with_article_card',\n related_hashtag_article_card = 'related_hashtag_article_card',\n related_phone = 'related_phone',\n related_address = 'related_address',\n related_user = 'related_user',\n user_fans = 'user_fans',\n user_following = 'user_following',\n user_likes = 'user_likes',\n share_panel_icon = 'share_panel_icon',\n unknown = 'unknown',\n bottom_button = 'bottom_button',\n original_post_banner = 'original_post_banner',\n main_gallery_slide = 'main_gallery_slide',\n main_gallery_slide_modal = 'main_gallery_slide_modal',\n main_video_see_more = 'main_video_see_more',\n main_video_see_more_modal = 'main_video_see_more_modal',\n main_video_pause_auto = 'main_video_pause_auto',\n main_video_replay = 'main_video_replay',\n main_video_replay_modal = 'main_video_replay_modal',\n main_video_pause_manual = 'main_video_pause_manual',\n main_video_pause_manual_modal = 'main_video_pause_manual_modal',\n main_video_download_banner = 'main_video_download_banner',\n main_video_play = 'main_video_play',\n main_video_play_modal = 'main_video_play_modal',\n see_more_button = 'see_more_button',\n view_more_button = 'view_more_button',\n kep_breadcrumbs = 'kep_breadcrumbs',\n main_related_post = 'main_related_post',\n gallery_img = 'gallery_img',\n gallery_img_open = 'gallery_img_open',\n gallery_img_open_modal = 'gallery_img_open_modal',\n gallery_img_mask_open_btn = 'gallery_img_mask_open_btn',\n gallery_img_mask_close_btn = 'gallery_img_mask_close_btn',\n co_creator = 'co_creator',\n kep_classify_hot_keyword = 'kep_classify_hot_keyword',\n // pc reflow qrcode\n scan_code = 'scan_code',\n search_sug_item = 'search_sug_item',\n\n // the following string is concat by ClickPositionPrefix + ClickPosition\n // Please ensure the correctness of the value yourself\n\n category_related_post = 'category_related_post',\n category_view_more = 'category_view_more_button',\n category_see_more = 'category_see_more_button',\n related_search = 'related_search',\n bottom_sar_search = 'bottom_sar_search',\n}\n","import { $UserAgent } from '@lemon8/web-app-shared/atom';\nimport { atom } from 'jotai';\n\nexport const $IsMobileUser = atom((get) => {\n const { isBot, isMobile } = get($UserAgent);\n\n return !isBot && isMobile;\n});\n","import { $ABTest } from '@lemon8/web-app-shared/atom';\nimport { $IsMobileUser } from '~/utils/is-mobile-user';\nimport { Atom, atom } from 'jotai';\nimport _get from 'lodash/get';\n\n/**\n * 0: control group\n * 1: use article carousel\n * 2: opt article interception\n */\nexport const $SEOReflowV42: Atom = atom((get) => {\n const { parameters } = get($ABTest);\n if (__BUILD_TYPE__ === 'local_dev') {\n return 0;\n }\n return _get(parameters, ['seo_web', 'lemon8.seo_cta_v42'], 0);\n});\n\nexport const $SEOReflowV42ArticleCarousel: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V42Config = get($SEOReflowV42);\n return isMobileUser && V42Config === 1;\n});\n\nexport const $SEOReflowV42InterceptOpt: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V42Config = get($SEOReflowV42);\n return isMobileUser && V42Config === 2;\n});\n\n/**\n * 0: control group\n * Article:\n * 1 means allow content unfolded and display anchors while being folded\n * 2 means disallow content unfolded and display anchors while being folded\n * 3 means allow content unfolded and hide anchors while being folded\n * Video:\n * 1 means display with fixed download banner\n * 2 means play video manually\n * 3 means 1 + 2\n */\nexport const $SEOReflowV4: Atom = atom((get) => {\n const { parameters } = get($ABTest);\n if (__BUILD_TYPE__ === 'local_dev') {\n return 2;\n }\n return _get(parameters, ['seo_web', 'lemon8.seo_reflow_v4'], 2);\n});\n\nexport const $HitSEOReflowV4: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V4Config = get($SEOReflowV4);\n return isMobileUser && V4Config !== 0;\n});\n\n/**\n * Article: 1 or 3 means folded content can be expanded after click\n * Video: 1 or 3 means display with fixed download banner\n */\nexport const $SEOReflowV4AllowExpand: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V4Config = get($SEOReflowV4);\n return isMobileUser && (V4Config === 1 || V4Config === 3);\n});\n\n/**\n * Article: 2 or 3 has no common features, thus this combination means nothing\n * Video: 2 or 3 means video should be played manually\n */\nexport const $SEOReflowV4ManualPlay: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V4Config = get($SEOReflowV4);\n return isMobileUser && (V4Config === 2 || V4Config === 3);\n});\n\n// hit 1st test group\nexport const $SEOReflowV4AllowExpandFoldWithAnchor: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V4Config = get($SEOReflowV4);\n return isMobileUser && V4Config === 1;\n});\n\n// hit 2nd test group\nexport const $SEOReflowV4NeverExpandFoldWithAnchor: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V4Config = get($SEOReflowV4);\n return isMobileUser && V4Config === 2;\n});\n\n// hit 3rd test group\nexport const $SEOReflowV4AllowExpandFoldWithoutAnchor: Atom = atom((get) => {\n const isMobileUser = get($IsMobileUser);\n const V4Config = get($SEOReflowV4);\n return isMobileUser && V4Config === 3;\n});\n","import { $ABTest } from '@lemon8/web-app-shared/atom';\nimport { atom } from 'jotai';\nimport _get from 'lodash/get';\n\nexport const $LibraPreconnectOnelinkHost = atom((get) => {\n const { parameters } = get($ABTest);\n\n if (__BUILD_TYPE__ === 'local_dev') {\n return true;\n }\n\n return Boolean(_get(parameters, 'seo_web.preconnect_onelink_host', false));\n});\n\nexport const $LibraOptimizeOnelinkActive = atom((get) => {\n const { parameters } = get($ABTest);\n\n if (__BUILD_TYPE__ === 'local_dev') {\n return true;\n }\n\n return Boolean(_get(parameters, 'seo_web.optimize_onelink_active', false));\n});\n","import { $ABTest } from '@lemon8/web-app-shared/atom';\nimport { Atom, atom } from 'jotai';\nimport _get from 'lodash/get';\n\n/**\n * 0: control group\n * 1: post comments expand to 20\n */\nexport const $PostCommentCountExp: Atom = atom((get) => {\n const { parameters } = get($ABTest);\n if (__BUILD_TYPE__ === 'local_dev') {\n return 1;\n }\n return _get(parameters, ['seo_web', 'lemon8.post_comment_count_expand'], 0);\n});\n\nexport const $HitPostCommentCountExp: Atom = atom((get) => {\n const kepExpConfig = get($PostCommentCountExp);\n return kepExpConfig === 1;\n});\n","export enum ModuleType {\n related_article = 'related_article',\n category_related_post = 'category_related_post',\n related_hashtag = 'related_hashtag',\n related_topic = 'related_topic',\n related_user = 'related_user',\n kep_breadcrumbs = 'kep_breadcrumbs',\n author_related_article = 'author_related_article',\n hashtag_related_article = 'hashtag_related_article',\n activity_banner = 'activity_banner',\n comment = 'comment',\n main_sar = 'main_sar',\n main_content = 'main_content',\n main_related_post = 'main_related_post',\n gallery_img_mask = 'gallery_img_mask',\n user_homepage_info = 'user_homepage_info',\n co_creator = 'co_creator',\n // pc reflow qrcode\n scan_code = 'scan_code',\n related_search = 'related_search',\n bottom_sar_search = 'bottom_sar_search',\n}\n","import { DependencyList, SyntheticEvent, useCallback, useRef } from 'react';\nimport { ClickPosition } from './click-position';\nimport { $RootTraffic, $UserAgent } from '@lemon8/web-app-shared/atom';\nimport { useAtomValue } from 'jotai';\nimport { $PageLevelTraffic } from 'shared/atoms';\nimport { EPageType, PageLevelTrafficUtil } from 'shared/models';\n\ninterface ReflowClickConfig {\n /**\n * 默认行为\n */\n defaultBehavior?: (event?: SyntheticEvent) => void;\n /**\n * 触发弹窗行为\n */\n modalBehavior?: (event?: SyntheticEvent) => void;\n /**\n * 强制导流时的行为\n */\n reflowBehavior?: (event?: SyntheticEvent) => void;\n /**\n * 最终都会走到的一个方法\n */\n finallyBehavior?: (event?: SyntheticEvent) => void;\n /**\n * 点击事件上报埋点\n */\n clickEvent?: (event?: SyntheticEvent, bundle?: Record) => Record;\n}\n\n/**\n * 封装强制导流功能的点击事件\n */\nexport default function useReflowClick(config: ReflowClickConfig, deps: DependencyList) {\n const { isMobile, isBot, isInApp } = useAtomValue($UserAgent);\n const { trafficPid: trafficType } = useAtomValue($RootTraffic); // ssr traffic data\n const traffic = useAtomValue($PageLevelTraffic); // csr traffic data\n const { pageType } = traffic;\n const pageId = PageLevelTrafficUtil.getPageIdFromTraffic(traffic);\n\n const isRealUser = !isBot && isMobile && !isInApp;\n\n // TODO 这个逻辑discover有没有必要?\n const shouldReflow = isRealUser || (isMobile && pageType === EPageType.discover);\n\n const notReflow = useRef(false);\n\n return useCallback(\n (event?: SyntheticEvent) => {\n const { defaultBehavior, modalBehavior, reflowBehavior, finallyBehavior, clickEvent } = config;\n\n let isCTA = 1;\n let forceReflow = false;\n if (clickEvent) {\n const eventParams = clickEvent(event);\n\n const { current_position = '', click_result = '' } = eventParams;\n // 避免discover页弹窗not now也reflow\n if (current_position === ClickPosition.first_landing_dialog && click_result === 'cancel') {\n notReflow.current = true;\n isCTA = 0;\n }\n\n if (current_position === ClickPosition.comment_image) {\n forceReflow = true;\n }\n\n window.Tea('wap_click', {\n ...eventParams,\n is_cta: isCTA,\n });\n }\n\n if (isRealUser && modalBehavior) {\n event?.preventDefault();\n event?.stopPropagation();\n modalBehavior(event);\n } else if ((shouldReflow || forceReflow) && !notReflow.current && reflowBehavior) {\n event?.preventDefault();\n event?.stopPropagation();\n reflowBehavior(event);\n } else {\n defaultBehavior?.(event);\n }\n\n finallyBehavior?.(event);\n },\n [config, isMobile, shouldReflow, pageType, trafficType, pageId, notReflow, ...deps],\n );\n}\n","import { RefObject, useRef, useEffect, useState } from 'react';\nimport ViewObserver, { DEFAULT_OPTIONS } from '~/components/view-tracker/view-observer';\n\ninterface UseViewTrackingProps {\n ref?: RefObject;\n onView: () => void;\n}\n\nexport const useViewTracking = (\n props: UseViewTrackingProps,\n deps: unknown[] = [],\n): RefObject => {\n const { onView, ref: inputRef } = props;\n const ref = inputRef || useRef(null);\n const [tracked, setTracked] = useState(false);\n\n useEffect(() => {\n const element = ref.current;\n if (!element || tracked) {\n return;\n }\n\n const observer = ViewObserver.get(DEFAULT_OPTIONS);\n observer.observe(element, (visible: boolean) => {\n if (visible) {\n onView();\n setTracked(true);\n observer.unobserve(element);\n }\n });\n\n return () => {\n observer.unobserve(element);\n };\n }, [ref, tracked, onView, ...deps]);\n\n return ref;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isEuropeRegion = exports.EURO_COUNTRY_SET = exports.EURO_COUNTRY_LIST = void 0;\nexports.EURO_COUNTRY_LIST = [\n 'at',\n 'be',\n 'bg',\n 'hr',\n 'ch',\n 'cy',\n 'cz',\n 'de',\n 'dk',\n 'ee',\n 'el',\n 'fi',\n 'fr',\n 'gb',\n 'gr',\n 'hu',\n 'ie',\n 'it',\n 'lv',\n 'lt',\n 'lu',\n 'mt',\n 'nl',\n 'pl',\n 'pt',\n 'ro',\n 'sk',\n 'si',\n 'es',\n 'se',\n 'no',\n 'is',\n 'li',\n];\nexports.EURO_COUNTRY_SET = new Set(exports.EURO_COUNTRY_LIST);\nconst isEuropeRegion = (region) => exports.EURO_COUNTRY_SET.has(region);\nexports.isEuropeRegion = isEuropeRegion;\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(\"./region\"), exports);\n__exportStar(require(\"./language\"), exports);\n__exportStar(require(\"./europe\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RegionHrefLangMap = exports.RegionFallbackLanguageMap = exports.SupportedLanguageMetas = exports.SupportedLanguages = exports.LanguageDisplayNameMap = exports.Language = void 0;\nconst region_1 = require(\"./region\");\nvar Language;\n(function (Language) {\n Language[\"en\"] = \"en\";\n Language[\"id\"] = \"id\";\n Language[\"ja\"] = \"ja\";\n Language[\"ms\"] = \"ms\";\n Language[\"th\"] = \"th\";\n Language[\"vi\"] = \"vi\";\n Language[\"fil\"] = \"fil\";\n})(Language = exports.Language || (exports.Language = {}));\nexports.LanguageDisplayNameMap = {\n en: 'English',\n id: 'Bahasa Indonesia',\n ja: '日本語',\n ms: 'Bahasa Melayu',\n th: 'ไทย',\n vi: 'Tiếng Việt',\n fil: 'Pilipino',\n};\nexports.SupportedLanguages = [\n Language.en,\n Language.id,\n Language.ja,\n Language.ms,\n Language.th,\n Language.vi,\n];\nexports.SupportedLanguageMetas = exports.SupportedLanguages.map((language) => ({\n language,\n displayName: exports.LanguageDisplayNameMap[language],\n})).sort((l, r) => (l.displayName > r.displayName ? 1 : -1));\nexports.RegionFallbackLanguageMap = {\n [region_1.Region.jp]: Language.ja,\n [region_1.Region.th]: Language.th,\n [region_1.Region.my]: Language.ms,\n [region_1.Region.id]: Language.id,\n [region_1.Region.vn]: Language.vi,\n [region_1.Region.us]: Language.en,\n [region_1.Region.gb]: Language.en,\n [region_1.Region.sg]: Language.en,\n [region_1.Region.ph]: Language.en,\n};\nexports.RegionHrefLangMap = {\n [region_1.Region.jp]: 'ja-jp',\n [region_1.Region.th]: 'th-th',\n [region_1.Region.my]: 'ms-my',\n [region_1.Region.id]: 'id-id',\n [region_1.Region.vn]: 'vi-vn',\n [region_1.Region.us]: 'en-us',\n [region_1.Region.gb]: 'en-gb',\n [region_1.Region.sg]: 'en-sg',\n [region_1.Region.ph]: 'en-ph',\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getRegionIDC = exports.IDCRegion = exports.VGeo = exports.RegionDisplayMap = exports.Region = void 0;\n/**\n * ISO 639-1 Language Code\n *\n * lower case\n */\nvar Region;\n(function (Region) {\n Region[\"jp\"] = \"jp\";\n Region[\"th\"] = \"th\";\n Region[\"my\"] = \"my\";\n Region[\"id\"] = \"id\";\n Region[\"ph\"] = \"ph\";\n Region[\"vn\"] = \"vn\";\n Region[\"us\"] = \"us\";\n Region[\"gb\"] = \"gb\";\n Region[\"sg\"] = \"sg\";\n})(Region = exports.Region || (exports.Region = {}));\nexports.RegionDisplayMap = {\n [Region.jp]: '日本',\n [Region.th]: 'ไทย',\n [Region.my]: 'Malaysia',\n [Region.id]: 'Indonesia',\n [Region.vn]: 'Việt Nam',\n [Region.us]: 'US',\n [Region.gb]: 'UK',\n [Region.sg]: 'Singapore',\n [Region.ph]: 'Philippines',\n};\nvar VGeo;\n(function (VGeo) {\n VGeo[\"US\"] = \"US\";\n VGeo[\"ROW\"] = \"ROW\";\n})(VGeo = exports.VGeo || (exports.VGeo = {}));\n/**\n * @deprecated not compatible with TTP\n */\nvar IDCRegion;\n(function (IDCRegion) {\n IDCRegion[\"VA\"] = \"va\";\n IDCRegion[\"SG\"] = \"sg\";\n})(IDCRegion = exports.IDCRegion || (exports.IDCRegion = {}));\n/**\n * @deprecated not compatible with TTP\n */\nconst getRegionIDC = (region) => {\n return [Region.jp, Region.us, Region.gb].includes(region) ? IDCRegion.VA : IDCRegion.SG;\n};\nexports.getRegionIDC = getRegionIDC;\n","\"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-script\"), 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.LemonRemixScripts = void 0;\nconst jsx_runtime_1 = require(\"react/jsx-runtime\");\nconst react_1 = require(\"@remix-run/react\");\nconst react_2 = require(\"react\");\nconst react_router_dom_1 = require(\"react-router-dom\");\nconst jotai_1 = require(\"jotai\");\nconst atom_1 = require(\"../../atom\");\nfunction dedupe(array) {\n return [...new Set(array)];\n}\nconst StrictCSPScripts = () => {\n const { manifest, serverHandoffString } = (0, react_2.useContext)(react_1.UNSAFE_RemixContext);\n const { router } = (0, react_2.useContext)(react_router_dom_1.UNSAFE_DataRouterContext);\n const { matches } = (0, react_2.useContext)(react_router_dom_1.UNSAFE_DataRouterStateContext);\n const navigation = (0, react_1.useNavigation)();\n const [isHydrated, setIsHydrated] = (0, react_2.useState)(false);\n const cspScripts = (0, jotai_1.useAtomValue)(atom_1.$CSPScripts);\n (0, react_2.useEffect)(() => {\n setIsHydrated(true);\n }, []);\n const initialScripts = (0, react_2.useMemo)(() => {\n return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(\"script\", { id: \"remix-server-handoff\", type: \"application/json\", suppressHydrationWarning: true, dangerouslySetInnerHTML: { __html: serverHandoffString || '\"{}\"' } }), (0, jsx_runtime_1.jsx)(\"script\", { id: \"remix-route-modules\", type: \"application/json\", dangerouslySetInnerHTML: {\n __html: JSON.stringify({\n manifest: manifest.url,\n modules: matches.map((match) => [match.route.id, manifest.routes[match.route.id].module]),\n entry: manifest.entry.module,\n }) || '\"{}\"',\n } }), (0, jsx_runtime_1.jsx)(\"script\", { src: cspScripts['remix-server-handoff'] }), (0, jsx_runtime_1.jsx)(\"script\", { type: \"module\", async: true, src: cspScripts['remix-route-modules'] })] }));\n }, []);\n const nextMatches = (0, react_2.useMemo)(() => {\n if (navigation.location) {\n const matches = (0, react_router_dom_1.matchRoutes)(router.routes, navigation.location);\n if (!matches) {\n throw new Error(`No routes match path \"${navigation.location.pathname}\"`);\n }\n return matches;\n }\n return [];\n }, [navigation.location, router.routes]);\n const routePreloads = matches\n .concat(nextMatches)\n .map((match) => {\n const route = manifest.routes[match.route.id];\n return (route.imports || []).concat([route.module]);\n })\n .flat(1);\n const preloads = isHydrated ? [] : manifest.entry.imports.concat(routePreloads);\n return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(\"link\", { rel: \"modulepreload\", href: manifest.entry.module }), dedupe(preloads).map((path) => ((0, jsx_runtime_1.jsx)(\"link\", { rel: \"modulepreload\", href: path }, path))), initialScripts] }));\n};\nconst LemonRemixScripts = () => {\n const { disableInlineScripts } = (0, jotai_1.useAtomValue)(atom_1.$RenderConfig);\n if (disableInlineScripts) {\n return (0, jsx_runtime_1.jsx)(StrictCSPScripts, {});\n }\n return (0, jsx_runtime_1.jsx)(react_1.Scripts, {});\n};\nexports.LemonRemixScripts = LemonRemixScripts;\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","\"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(\"./num-formatter\"), exports);\n__exportStar(require(\"./time-ago-formatter\"), exports);\n__exportStar(require(\"./time-formatter\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.formatNumByRegion = exports.formatNum = void 0;\nconst i18n_1 = require(\"../../i18n\");\nconst NUM_INTERVAL_MAP = {\n w: [i18n_1.Region.jp],\n k: [i18n_1.Region.id, i18n_1.Region.my, i18n_1.Region.ph, i18n_1.Region.sg, i18n_1.Region.th, i18n_1.Region.vn, i18n_1.Region.gb, i18n_1.Region.us],\n};\nfunction formatNum(num, _config = {}) {\n let val = `${num}`;\n const config = {\n decimal: 1,\n units: ['万', '億'],\n needDiv: true,\n ..._config,\n };\n const { decimal } = config;\n if (config.type === 'KMB') {\n if (num >= 1e10) {\n val = `${(num / 1e9).toFixed(0)}B`;\n }\n else if (num >= 1e9) {\n val = `${(num / 1e9).toFixed(decimal).replace(/\\.0*$/, '')}B`;\n }\n else if (num >= 1e7) {\n val = `${(num / 1e6).toFixed(0)}M`;\n }\n else if (num >= 1e6) {\n val = `${(num / 1e6).toFixed(decimal).replace(/\\.0*$/, '')}M`;\n }\n else if (num >= 1e4) {\n val = `${(num / 1e3).toFixed(0)}K`;\n }\n else if (num >= 1e3) {\n val = `${(num / 1e3).toFixed(decimal).replace(/\\.0*$/, '')}K`;\n }\n else {\n val = `${num}`;\n }\n }\n else if (config.type === 'KM') {\n if (num >= 10e6) {\n const unitDigit = (num / 1e6).toString().split('.')[0];\n const oneDecimal = ((num - Number(unitDigit) * 1e6) / 1e5).toString().split('.')[0];\n if (Number(oneDecimal) >= 1) {\n val = `${String(unitDigit)}.${String(oneDecimal)}${config.units[0]}`;\n }\n else {\n val = `${String(unitDigit)}${config.units[1]}`;\n }\n }\n else if (num >= 1e4) {\n const unitDigit = (num / 1e3).toString().split('.')[0];\n const oneDecimal = ((num - Number(unitDigit) * 1e3) / 1e2).toString().split('.')[0];\n if (Number(oneDecimal) >= 1) {\n val = `${String(unitDigit)}.${String(oneDecimal)}${config.units[0]}`;\n }\n else {\n val = `${String(unitDigit)}${config.units[0]}`;\n }\n }\n else {\n val = `${num}`;\n }\n }\n else if (config.type === 'WY') {\n if (num >= 1e10) {\n val = ~~(num / 1e8) + config.units[1];\n }\n else if (num >= 1e8) {\n val = (num / 1e8).toFixed(decimal).replace(/\\.0*$/, '') + config.units[1];\n }\n else if (num >= 1e6) {\n val = ~~(num / 1e4) + config.units[0];\n }\n else if (num >= 1e4) {\n val = (num / 1e4).toFixed(decimal).replace(/\\.0*$/, '') + config.units[0];\n }\n else {\n val = `${num}`;\n }\n }\n else if (config.type === 'W') {\n if (num >= 1e4) {\n const unitDigit = (num / 1e4).toString().split('.')[0];\n const oneDecimal = ((num - Number(unitDigit) * 1e4) / 1e3).toString().split('.')[0];\n if (Number(oneDecimal) >= 1) {\n val = `${String(unitDigit)}.${String(oneDecimal)}${config.units[0]}`;\n }\n else {\n val = `${String(unitDigit)}${config.units[0]}`;\n }\n }\n else {\n val = `${num}`;\n }\n }\n else if (config.upperLimit && num >= config.upperLimit) {\n val = config.upperText;\n }\n if (config.needDiv) {\n val = val.replace(/\\d+/, function (s) {\n return s.replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n });\n }\n if (config.tmpl) {\n return config.tmpl.replace('%s', val);\n }\n return val;\n}\nexports.formatNum = formatNum;\nfunction formatNumByRegion(num, region, t) {\n if (NUM_INTERVAL_MAP.w.includes(region)) {\n const type = 'W';\n const units = [t('common_ten_thousand')];\n return formatNum(num, { type, units, needDiv: false });\n }\n if (NUM_INTERVAL_MAP.k.includes(region)) {\n const type = 'KM';\n const units = [t('common_thousand'), t('common_million')];\n return formatNum(num, { type, units, needDiv: false });\n }\n return '';\n}\nexports.formatNumByRegion = formatNumByRegion;\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.formatTimeAgo = void 0;\nconst dayjs_1 = __importDefault(require(\"dayjs\"));\nconst ONE_SECOND = 1000;\nconst ONE_MINUTE = 60 * ONE_SECOND;\nconst ONE_HOUR = 60 * ONE_MINUTE;\nconst ONE_DAY = 24 * ONE_HOUR;\nconst ONE_WEEK = 7 * ONE_DAY;\nconst EIGHT_DAY = 8 * ONE_DAY;\n/**\n * time: seconds\n */\nconst formatTimeAgo = (time, t) => {\n const now = Date.now();\n const after = now - time * 1000;\n if (after < ONE_MINUTE) {\n const seconds = Math.floor(after / ONE_SECOND);\n return t('seconds_ago_plural', { num: seconds }).replace('%d', `${seconds}`);\n }\n if (after < ONE_HOUR) {\n const minutes = Math.floor(after / ONE_MINUTE);\n return t('minutes_ago_plural', { num: minutes }).replace('%d', `${minutes}`);\n }\n if (after < ONE_DAY) {\n const hours = Math.floor(after / ONE_HOUR);\n return t('hours_ago_plural', { num: hours }).replace('%d', `${hours}`);\n }\n if (after < ONE_WEEK) {\n const days = Math.floor(after / ONE_DAY);\n return t('days_ago_plural', { num: days }).replace('%d', `${days}`);\n }\n if (after < EIGHT_DAY) {\n const weeks = Math.floor(after / ONE_WEEK);\n return t('weeks_ago_plural', { num: weeks }).replace('%d', `${weeks}`);\n }\n const timeDayjs = (0, dayjs_1.default)(time * 1000);\n if ((0, dayjs_1.default)(now).year() === timeDayjs.year()) {\n return timeDayjs.format('M/D');\n }\n return timeDayjs.format('YYYY/M/D');\n};\nexports.formatTimeAgo = formatTimeAgo;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.dateToLocalISO = void 0;\nconst dateToLocalISO = function (timeStamp, timeZone) {\n // off为当地时区相对UTC的偏移量,日本为9,中国为8\n const off = -timeZone * 60;\n const absoff = Math.abs(off);\n return `${new Date(timeStamp * 1000 - off * 60 * 1000).toISOString().substr(0, 23) +\n (off > 0 ? '-' : '+') +\n (absoff / 60).toFixed(0).padStart(2, '0')}:${(absoff % 60).toString().padStart(2, '0')}`;\n};\nexports.dateToLocalISO = dateToLocalISO;\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(\"./unreachable\"), exports);\n__exportStar(require(\"./no-operation\"), exports);\n__exportStar(require(\"./format\"), exports);\n__exportStar(require(\"./xss\"), exports);\n__exportStar(require(\"./view-observer\"), exports);\n__exportStar(require(\"./pending-queue\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoOperation = void 0;\nconst NoOperation = () => void 0;\nexports.NoOperation = NoOperation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PendingQueue = void 0;\nclass PendingQueue {\n constructor() {\n this._tasks = [];\n this._doInterval = () => {\n if (this._tasks.length) {\n this._tasks.forEach((task) => task());\n this._tasks = [];\n }\n };\n setInterval(this._doInterval, 500);\n }\n push(task) {\n this._tasks.push(task);\n }\n}\nexports.PendingQueue = PendingQueue;\nPendingQueue.instance = new PendingQueue();\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Unreachable = void 0;\nconst Unreachable = (reason = 'unreachable code here') => {\n throw new Error(reason);\n};\nexports.Unreachable = Unreachable;\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(\"./observer\"), exports);\n__exportStar(require(\"./preset\"), exports);\n__exportStar(require(\"./use-view-observer\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ViewObserver = void 0;\nclass ViewObserver {\n constructor(options) {\n this.observe = (element, callback) => {\n this.elements.set(element, {\n callback,\n visible: false,\n entry: element,\n });\n this.observer.observe(element);\n };\n this.unobserve = (element) => {\n if (!this.elements.get(element)) {\n return;\n }\n this.observer.unobserve(element);\n this.elements.delete(element);\n };\n /**\n * callback for Intersection Observer\n *\n * Loop through all the observed elements and check if visible\n *\n * @param {Array} [entries] array of [IntersectionObserverEntry],\n */\n this._watchElements = (entries = []) => {\n /**\n * If rootBounds does not exist, it will default to the height and width of the viewport\n */\n const containerHeight = window.innerHeight || document.documentElement.clientHeight;\n entries\n .filter((entry) => entry.isIntersecting)\n .forEach((entry) => {\n const node = entry.target;\n const element = this.elements.get(node);\n const bounds = entry.boundingClientRect || node.getBoundingClientRect();\n const elementHeight = bounds.height;\n const isVisible = entry.intersectionRatio >= this.options.targetVisibleIntersectionThreshold ||\n (entry.intersectionRatio * elementHeight) / containerHeight >=\n this.options.containerVisibleIntersectionThreshold;\n // Element is still visible since last check\n if (isVisible && element && element.timeoutSet) {\n return;\n }\n // If the element is visible\n if (isVisible && element) {\n // Set the visibility state to true but wait until the timeout finishes\n // to fire the event\n element.timeoutSet = true;\n // Start timer\n this.timeouts.set(node, setTimeout(() => {\n // Fire the event\n this._onVisibilityChange(node, true);\n }, this.options.minTimeVisible));\n }\n else {\n const timeout = this.timeouts.get(node);\n // Fire event\n this._onVisibilityChange(node, false);\n // Element is no longer visible, delete timeout\n clearTimeout(timeout);\n this.timeouts.delete(node);\n if (element) {\n element.timeoutSet = false;\n }\n }\n });\n };\n /**\n * callback for orientationchange or other event which may cause element visible change\n *\n * Fire onChange event listeners for all visible elements\n */\n this._reportVisibilityStates = () => {\n this.elements.forEach(({ visible }, element) => {\n if (visible) {\n this._onVisibilityChange(element, visible);\n }\n });\n };\n this.options = options;\n this.elements = new Map();\n this.timeouts = new Map();\n this.observer = new IntersectionObserver(this._watchElements, {\n root: this.options.root,\n rootMargin: this.options.rootMargin,\n threshold: this.options.threshold,\n });\n this._addEventListeners();\n }\n destroy() {\n this.elements.clear();\n this.timeouts.clear();\n if (typeof this.observer.disconnect === 'function') {\n this.observer.disconnect();\n }\n this._removeEventListeners();\n }\n /**\n * Handle DOM element visibility state change\n * @param {Element} element - the DOM node\n * @param {Boolean} visible - the visibility state of the entry\n */\n _onVisibilityChange(element, visible) {\n const entry = this.elements.get(element);\n if (!entry) {\n return;\n }\n // Set the new visibility state\n entry.visible = visible;\n const { callback } = entry;\n callback(visible);\n }\n _addEventListeners() {\n window.addEventListener('focus', this._reportVisibilityStates);\n window.addEventListener('orientationchange', this._reportVisibilityStates);\n }\n _removeEventListeners() {\n window.removeEventListener('focus', this._reportVisibilityStates);\n window.removeEventListener('orientationchange', this._reportVisibilityStates);\n }\n}\nexports.ViewObserver = ViewObserver;\nViewObserver.Factory = {\n instances: new Map(),\n get: (options) => {\n const { scene } = options;\n let instance = ViewObserver.Factory.instances.get(scene);\n if (!instance) {\n instance = new ViewObserver(options);\n ViewObserver.Factory.instances.set(scene, instance);\n }\n return instance;\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ViewObserverPreset = exports.buildThreshold = void 0;\n/**\n * Build an array of threshold values ranging from 0 to 1\n * @param {Number} steps - number of steps between 0 and 1.0\n * @returns {Number[]} returns array of floats\n */\nconst buildThreshold = (steps = 1) => {\n const threshold = Array.from({ length: steps }, (_x, i) => i / steps);\n // Returns an array like [0, ...n, 1]\n return [...threshold, 1];\n};\nexports.buildThreshold = buildThreshold;\nexports.ViewObserverPreset = {\n default: {\n scene: 'default',\n root: null,\n rootMargin: '',\n threshold: (0, exports.buildThreshold)(10),\n targetVisibleIntersectionThreshold: 0.8,\n containerVisibleIntersectionThreshold: 0.5,\n minTimeVisible: 250,\n },\n 'viewport-asap': {\n scene: 'viewport-asap',\n root: null,\n rootMargin: '',\n threshold: (0, exports.buildThreshold)(1),\n targetVisibleIntersectionThreshold: 0,\n containerVisibleIntersectionThreshold: 0,\n minTimeVisible: 0,\n },\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useViewObserver = void 0;\nconst react_1 = require(\"react\");\nconst observer_1 = require(\"./observer\");\nconst preset_1 = require(\"./preset\");\nconst useViewObserver = (props, deps = []) => {\n const { onView, ref: inputRef, options } = props;\n const ref = inputRef || (0, react_1.useRef)(null);\n const [tracked, setTracked] = (0, react_1.useState)(false);\n (0, react_1.useEffect)(() => {\n const element = ref.current;\n if (!element || tracked) {\n return;\n }\n const observer = observer_1.ViewObserver.Factory.get(options || preset_1.ViewObserverPreset.default);\n observer.observe(element, (visible) => {\n if (visible) {\n onView();\n setTracked(true);\n observer.unobserve(element);\n }\n });\n return () => {\n observer.unobserve(element);\n };\n }, [ref, tracked, onView, ...deps]);\n return ref;\n};\nexports.useViewObserver = useViewObserver;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.buildInnerHtml = exports.filterXSS = void 0;\nconst filter_xss_1 = require(\"@ies/filter-xss\");\nconst filterXSS = (html) => (0, filter_xss_1._filterXSS)(html);\nexports.filterXSS = filterXSS;\nconst buildInnerHtml = (html) => {\n return {\n __html: (0, exports.filterXSS)(html),\n };\n};\nexports.buildInnerHtml = buildInnerHtml;\n"],"sourceRoot":""}