{"version":3,"sources":["webpack://@lemon8/web-seo/./client/components/divisible-stack/index.tsx","webpack://@lemon8/web-seo/./client/components/not-found/index.tsx","webpack://@lemon8/web-seo/./client/models/current-page-module.ts","webpack://@lemon8/web-seo/./client/models/current-position-prefix.ts","webpack://@lemon8/web-seo/./client/utils/build-master-loader.ts","webpack://@lemon8/web-seo/./client/utils/format/num-formatter.ts","webpack://@lemon8/web-seo/./client/utils/remix-page.tsx","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/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":["DivisibleStack","props","children","divider","wrapper","content","Children","filter","Boolean","flatMap","child","index","jsx","className","concat","Fragment","ENotFoundType","NotFound","t","useTranslation","type","hint","useMemo","jsxs","$CurrentPageModule","atom","$CurrentPositionPrefix","buildMasterLoader","name","args","context","loaders","setRemixParams","params","NUM_INTERVAL_MAP","w","Region","k","formatNum","num","_config","arguments","length","undefined","val","config","_objectSpread","decimal","units","needDiv","toFixed","replace","unitDigit","toString","split","oneDecimal","Number","String","upperLimit","upperText","s","tmpl","formatNumByRegion","region","includes","useNumFormatter","useAtomValue","$Locale","useCallback","RemixPage","Component","constructor","Head","Body","HeadContent","state","useNavigation","canonicalUrl","$PageLevelTraffic","pathname","useLocation","routeLoading","a","URL","location","BodyContent","RootSkeleton","Content","for","contextFor","useOutletContext","page","Error","render","__createBinding","Object","create","o","m","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","defineProperty","__exportStar","exports","p","prototype","hasOwnProperty","call","value","require","i18n_1","jp","id","my","ph","sg","th","vn","gb","us","__importDefault","mod","dayjs_1","ONE_SECOND","ONE_MINUTE","ONE_HOUR","ONE_DAY","ONE_WEEK","EIGHT_DAY","formatTimeAgo","time","now","Date","after","seconds","Math","floor","minutes","hours","days","weeks","timeDayjs","default","year","format","dateToLocalISO","timeStamp","timeZone","off","absoff","abs","toISOString","substr","padStart","NoOperation","Unreachable","reason","ViewObserver","options","_this","observe","element","callback","elements","set","visible","entry","observer","unobserve","delete","_watchElements","entries","containerHeight","window","innerHeight","document","documentElement","clientHeight","isIntersecting","forEach","node","target","elementHeight","boundingClientRect","getBoundingClientRect","height","isVisible","intersectionRatio","targetVisibleIntersectionThreshold","containerVisibleIntersectionThreshold","timeoutSet","timeouts","setTimeout","_onVisibilityChange","minTimeVisible","timeout","clearTimeout","_reportVisibilityStates","_ref","Map","IntersectionObserver","root","rootMargin","threshold","_addEventListeners","destroy","clear","disconnect","_removeEventListeners","addEventListener","removeEventListener","Factory","instances","scene","instance","buildThreshold","steps","Array","from","_x","i","react_1","observer_1","preset_1","useViewObserver","deps","onView","ref","inputRef","useRef","tracked","setTracked","useState","useEffect","current","ViewObserverPreset","filter_xss_1","filterXSS","html","_filterXSS","buildInnerHtml","__html"],"mappings":"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","file":"289-a63d1ef3802acf4388e7.js","sourcesContent":["import { ReactNode, Children, ReactFragment, ReactElement } from 'react';\n\ninterface DivisibleStackProps {\n wrapper?: string;\n divider?: string;\n children: ReactNode;\n}\n\nexport const DivisibleStack = (props: DivisibleStackProps) => {\n const { children, divider, wrapper } = props;\n\n let content: ReturnType<(typeof Children)['toArray']> | ReactNode;\n\n if (divider) {\n content = Children.toArray(children)\n .filter(Boolean)\n .flatMap((child, index) => {\n if (index === 0) {\n return [child];\n }\n return [divider &&
, child];\n });\n } else {\n content = children;\n }\n\n if (wrapper) {\n return
{content}
;\n } else {\n return <>{content};\n }\n};\n","import { useTranslation } from 'react-i18next';\nimport { FC, useMemo } from 'react';\n\nimport './style.scss';\n\nexport enum ENotFoundType {\n NOT_FOUND,\n PRIVACY_ACCOUNT,\n}\n\ninterface INotFoundProps {\n /**\n * @default ENotFoundType.NOT_FOUND\n */\n type?: ENotFoundType;\n}\n\nexport const NotFound: FC = (props) => {\n const { t } = useTranslation();\n const { type = ENotFoundType.NOT_FOUND } = props;\n\n const hint = useMemo(() => {\n switch (type) {\n case ENotFoundType.PRIVACY_ACCOUNT:\n return t('privateAccount_web_description');\n case ENotFoundType.NOT_FOUND:\n default:\n return t('article_not_found');\n }\n }, [type]);\n\n return (\n
\n
\n
{hint}
\n
\n );\n};\n","import { atom } from 'jotai';\nimport { ModuleType } from '~/utils/module-type';\n\nexport const $CurrentPageModule = atom('' as ModuleType);\n","import { atom } from 'jotai';\nimport { ClickPositionPrefix } from '~/utils/click-position';\n\nexport const $CurrentPositionPrefix = atom('' as ClickPositionPrefix);\n","import { LoaderFunction } from '@remix-run/node';\n\nexport const buildMasterLoader = (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 { i18n } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport { useCallback } from 'react';\nimport { useAtomValue } from 'jotai';\nimport { $Locale } from '@lemon8/web-app-shared/atom';\nimport { Region } from '@lemon8/web-app-shared/i18n';\n\nconst NUM_INTERVAL_MAP = {\n w: [Region.jp],\n k: [Region.id, Region.my, Region.ph, Region.sg, Region.th, Region.vn, Region.gb, Region.us],\n};\n\nexport function formatNum(num: number, _config: any = {}): string {\n let val = `${num}`;\n const config = {\n decimal: 1,\n units: ['万', '億'],\n needDiv: true,\n ..._config,\n };\n const { decimal } = config;\n\n if (config.type === 'KMB') {\n if (num >= 1e10) {\n val = `${(num / 1e9).toFixed(0)}B`;\n } else if (num >= 1e9) {\n val = `${(num / 1e9).toFixed(decimal).replace(/\\.0*$/, '')}B`;\n } else if (num >= 1e7) {\n val = `${(num / 1e6).toFixed(0)}M`;\n } else if (num >= 1e6) {\n val = `${(num / 1e6).toFixed(decimal).replace(/\\.0*$/, '')}M`;\n } else if (num >= 1e4) {\n val = `${(num / 1e3).toFixed(0)}K`;\n } else if (num >= 1e3) {\n val = `${(num / 1e3).toFixed(decimal).replace(/\\.0*$/, '')}K`;\n } else {\n val = `${num}`;\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] as string}`;\n } else {\n val = `${String(unitDigit)}${config.units[1] as string}`;\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] as string}`;\n } else {\n val = `${String(unitDigit)}${config.units[0] as string}`;\n }\n } else {\n val = `${num}`;\n }\n } else if (config.type === 'WY') {\n if (num >= 1e10) {\n val = ~~(num / 1e8) + config.units[1];\n } else if (num >= 1e8) {\n val = (num / 1e8).toFixed(decimal).replace(/\\.0*$/, '') + config.units[1];\n } else if (num >= 1e6) {\n val = ~~(num / 1e4) + config.units[0];\n } else if (num >= 1e4) {\n val = (num / 1e4).toFixed(decimal).replace(/\\.0*$/, '') + config.units[0];\n } else {\n val = `${num}`;\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] as string}`;\n } else {\n val = `${String(unitDigit)}${config.units[0] as string}`;\n }\n } else {\n val = `${num}`;\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: string) {\n return s.replace(/(\\d)(?=(\\d{3})+$)/g, '$1,');\n });\n }\n\n if (config.tmpl) {\n return config.tmpl.replace('%s', val);\n }\n\n return val;\n}\n\nexport function formatNumByRegion(num: number, region: Region, t: i18n['t']): string {\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}\n\ntype NumFormatter = (num: number) => string;\n\nexport const useNumFormatter = (): NumFormatter => {\n const { region } = useAtomValue($Locale);\n const { t } = useTranslation();\n\n // TODO force cast\n return useCallback((num: number) => formatNumByRegion(num, region as any, t), []);\n};\n","import { Component, FC, useMemo } from 'react';\nimport { useLocation, useNavigation, useOutletContext } from '@remix-run/react';\nimport { useAtomValue } from 'jotai';\nimport { $PageLevelTraffic } from 'shared/atoms';\nimport { RootSkeleton } from '~/skeleton';\n\nexport abstract class RemixPage extends Component {\n /**\n * @deprecated\n */\n get page(): string {\n throw new Error('page name unspecified');\n }\n\n Head: FC = () => {\n return null;\n };\n\n Body: FC = () => {\n return null;\n };\n\n protected HeadContent: FC = () => {\n const { state } = useNavigation();\n const { canonicalUrl } = useAtomValue($PageLevelTraffic);\n const { pathname } = useLocation();\n\n const routeLoading = useMemo(() => {\n if (__BUILD_TARGET__ === 'server') {\n return false;\n }\n\n const a = new URL(canonicalUrl);\n return location.pathname !== a.pathname;\n }, [pathname, canonicalUrl]);\n\n if (state === 'loading' || routeLoading) {\n return (\n <>\n Lemon8 Loading\n \n );\n }\n const { Head } = this;\n\n return ;\n };\n\n protected BodyContent: FC = () => {\n const { state } = useNavigation();\n const { canonicalUrl } = useAtomValue($PageLevelTraffic);\n const { pathname } = useLocation();\n\n const routeLoading = useMemo(() => {\n if (__BUILD_TARGET__ === 'server') {\n return false;\n }\n\n const a = new URL(canonicalUrl);\n return location.pathname !== a.pathname;\n }, [pathname, canonicalUrl]);\n\n const { Body } = this;\n\n if (state === 'loading' || routeLoading) {\n return ;\n }\n\n return ;\n };\n\n protected Content: FC = () => {\n const { HeadContent, BodyContent } = this;\n const { for: contextFor } = useOutletContext<{\n for: 'head' | 'body';\n }>();\n\n if (contextFor === 'head') {\n return ;\n } else {\n return ;\n }\n };\n\n override render(): JSX.Element {\n const { Content } = this;\n\n return ;\n }\n}\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","\"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.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":""}