{"version":3,"sources":["webpack://@lemon8/webapp-seo/./src/components/divisible-stack/index.tsx","webpack://@lemon8/webapp-seo/./src/components/not-found/index.tsx","webpack://@lemon8/webapp-seo/./src/models/current-page-module.ts","webpack://@lemon8/webapp-seo/./src/models/current-position-prefix.ts","webpack://@lemon8/webapp-seo/./src/utils/format/num-formatter.ts","webpack://@lemon8/webapp-seo/./src/utils/remix-page.tsx","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/europe.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/index.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/language.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/i18n/region.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/index.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/num-formatter.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/time-ago-formatter.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/format/time-formatter.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/index.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/no-operation.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/unreachable.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/index.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/observer.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/preset.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/view-observer/use-view-observer.js","webpack://@lemon8/webapp-seo/../libs/lemon8-web-app-shared/dist/esm/util/xss/index.js","webpack://@lemon8/webapp-seo/../libs/lemon8-webapp-seo-shared/dist/esm/models/article.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","debugLabel","$CurrentPositionPrefix","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","Object","exports","value","Set","EURO_COUNTRY_LIST","isEuropeRegion","EURO_COUNTRY_SET","has","__createBinding","create","o","m","k2","desc","getOwnPropertyDescriptor","__esModule","writable","configurable","enumerable","get","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","jp","my","vn","us","gb","sg","ph","IDCRegion","getRegionIDC","VA","SG","i18n_1","__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","ArticleClass"],"mappings":"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","file":"220-189ee8729d265b6853a4.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 | 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 { i18n } from 'i18next';\nimport { useTranslation } from 'react-i18next';\nimport { useCallback } from 'react';\nimport { useAtomValue } from 'jotai';\nimport { $Locale } from '@lemon8/webapp-shared/model';\nimport { Region } from '@lemon8/webapp-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\";\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.RegionDisplayMap = exports.Region = void 0;\n/**\n * ISO 639-1 Language Code\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 IDCRegion;\n(function (IDCRegion) {\n IDCRegion[\"SG\"] = \"sg\";\n IDCRegion[\"VA\"] = \"va\";\n})(IDCRegion = exports.IDCRegion || (exports.IDCRegion = {}));\nconst getRegionIDC = (region) => {\n return [Region.jp, Region.us, Region.gb].includes(region) ? IDCRegion.VA : IDCRegion.SG;\n};\nexports.getRegionIDC = getRegionIDC;\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(\"../../util/view-observer/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","export var ArticleClass;\n(function (ArticleClass) {\n ArticleClass[\"GALLERY\"] = \"Gallery\";\n ArticleClass[\"VIDEO\"] = \"Video\";\n ArticleClass[\"ARTICLE\"] = \"Article\";\n})(ArticleClass || (ArticleClass = {}));\n//# sourceMappingURL=article.js.map"],"sourceRoot":""}