{"version":3,"sources":["modules/history.ts","modules/helpers.ts","types/common.ts","types/state.ts","slices/storeSlice.ts","pages/layout/layoutPage.tsx","pages/layout/index.ts","modules/hooks.ts","containers/Loading.tsx","store/globalValues.ts","containers/SearchDataChart.tsx","containers/SearchBar.tsx","containers/DSEClogo.tsx","containers/Part1DataChart.tsx","containers/Part1.tsx","containers/Part2.tsx","containers/Part3.tsx","containers/Part4.tsx","containers/Part5.tsx","containers/Part6.tsx","containers/DSI.tsx","pages/home/homePage.tsx","pages/home/index.ts","App.tsx","serviceWorker.js","literals/index.ts","reducers/app.ts","reducers/user.ts","reducers/index.ts","slices/dataSlice.ts","slices/index.ts","modules/apiCall.ts","sagas/api.ts","sagas/index.ts","store/middleware.ts","store/index.ts","index.js","scss/layout.module.scss"],"names":["history","createBrowserHistory","location","_objectSpread","state","listen","go","goBack","push","replace","createReducer","actionsMap","defaultState","arguments","length","undefined","action","produce","draft","fn","type","concat","layout","xsMax","sm","smMax","md","mdMax","lg","lgMax","xl","xlMax","xxl","Lang","Status","initialState","generalInfo","searchNameInfo","isLoading","lang","langMap","_","reduce","Object","values","pre","cur","zhMO","zhCN","ptPT","enUS","newsDialogParam","isOpen","title","content","date","size","isMobile","storeSlice","createSlice","name","reducers","setIsLoading","payload","setLang","getNameStatisticGeneralInfo","setNameStatisticGeneralInfo","top10NamesByYearInfo","top10NamesByYear","top10NameWordsByYearInfo","top10NameWordsByYear","top5NewBornNameWordsByYearInfo","top5NewBornNameWordsByYear","getSearchNameInfo","setSearchNameInfo","getTop10NamesByYearInfo","setTop10NamesByYearInfo","getTop10NameWordsByYearInfo","setTop10NameWordsByYearInfo","getTop5NewBornNameWordsByYearInfo","setTop5NewBornNameWordsByYearInfo","setNewsDialogParam","setSize","isMobileParam","indexOf","isTabletParam","isTablet","_storeSlice$actions","actions","storePersistConfig","key","storage","whitelist","persistedReducer","persistReducer","reducer","LayoutPage","layoutPage","_ref","children","dispatch","_objectWithoutProperties","_excluded","useDispatch","sizeStore","useSelector","useSize","document","querySelector","useEffect","width","currentSize","parseInt","_jsx","_Fragment","className","useShallowEqualSelector","selector","shallowEqual","LoadingContainer","styled","div","_templateObject","_taggedTemplateLiteral","Loading","props","_jsxs","globalValues","maxYear","minYear","Container","Container0","_templateObject2","theme","css","_templateObject3","_templateObject4","_templateObject5","_templateObject6","_templateObject7","_templateObject8","_templateObject9","_templateObject10","_templateObject11","_templateObject12","_templateObject13","_templateObject14","_templateObject15","_templateObject16","_templateObject17","_templateObject18","_templateObject19","_templateObject20","_templateObject21","_templateObject22","_templateObject23","process","_templateObject24","_templateObject25","_templateObject26","_templateObject27","_templateObject28","Container1","_templateObject29","Bar","_templateObject30","TextLayer","_templateObject31","Container4","_templateObject32","NameText","_templateObject33","ShowTimeText","_templateObject34","RankText","_templateObject35","NumberText","_templateObject36","isText","TooltipContainer","_templateObject37","TooltipText","_templateObject38","TooltipNumber","_templateObject39","SearchDataChart","_useState","useState","_useState2","_slicedToArray","setName","_useState3","_useState4","count","setCount","_useState5","_useState6","rank","setRank","_useState7","_useState8","chartYear","setChartYear","_useState9","_useState10","chartYearTotal","setChartYearTotal","_useState11","_useState12","chartYearRank","setChartYearRank","_useState13","_useState14","setType","_useState15","_useState16","scaleRate","setScaleRate","nameArray","countArray","rankArray","chartYearArray","chartYearTotalArray","chartYearRankArray","typeArray","familyName","map","m","nameWord","word","setTimeout","targets","i","target","firstElementChild","id","classList","add","remove","setAttribute","lastChild","style","opacity","ShowDetailAuto","getElementsByClassName","reset","ShowDetail","e","currentTarget","parentNode","height","status","getAttribute","sequence","parentElement","addEventListener","scroll","top","behavior","options","year","total","isFamilyName","grid","containLabel","bottom","left","right","xAxis","nameLocation","nameTextStyle","fontSize","padding","data","triggerEvent","axisLine","lineStyle","color","axisTick","alignWithLabel","inside","axisLabel","show","interval","index","textStyle","yAxis","min","value","Math","floor","max","ceil","splitNumber","splitLine","tooltip","trigger","axisPointer","label","cap","crossStyle","backgroundColor","borderColor","borderWidth","borderRadius","formatter","params","ReactDOMServer","renderToStaticMarkup","axisValue","dataIndex","series","symbol","symbolSize","normal","itemStyle","emphasis","GenBar","result","sequenceNumber","_loop","showChart","showChartByCount","showChartByCountText","j","p","c","isNaN","ReturnChart","chartDiv","ReactECharts","option","onClick","GreenSearchBarContainer","GreenSearchBar","InputNameDiv","FamilyGivenNameDiv","SearchBarInputBox","input","SelectPeriodDiv","SearchBarYearSelecter","select","YearSelecterContainer","FBbuttonContainer","SearchIcon","CloseClick","ChartContainer","Mask","ResultYearSelector","_templateObject40","_templateObject41","_templateObject42","ChartTopBar","_templateObject43","_templateObject44","_templateObject45","SearchBar","Min","Max","search","window","_qs$parse","require","parse","FamilyName","GivenName","Year","DisplayClassName","setDisplayClassName","setFamilyName","setYear","isChinese","pattern","RegExp","pattern0","pattern2","_toConsumableArray","test","Options","Result","disabled","hidden","YearChangeOptions","Toast","Swal","mixin","toast","showCloseButton","position","showConfirmButton","timer","timerProgressBar","didOpen","clickConfirm","customAlert","text","fire","icon","open","_document$getElementB","_document$getElementB3","alert","getElementById","focus","_document$getElementB4","_document$getElementB5","_document$getElementB6","_document$getElementB2","close","onkeydown","origin","URL","encodeURI_url","encodeURIComponent","FBshareButton","href","src","SectionContainer","onscroll","documentElement","scrollTop","body","onChange","placeholder","required","targetValue","random","memo","DsecLogoOuterDiv","DsecLogo","a","DSEClogo","HiddenDiv","HiddenDivName","HiddenDivInfo","HiddenDivText","HiddenDivShowTimes","HiddenDivNumber","HiddenDivRank","Top1to3","Top3to10","Rank","RankContainer","Part1DataChart","setOptions","lastNameArray","topFamilyName","valueIntArray","percentageArray","percent","toFixed","fontFamily","legend","transitionDuration","inverse","margin","fontWeight","String","rich","SmallSize","verticalAlign","barWidth","offset","symbolRepeat","symbolMargin","barCategoryGap","FlexContainer","Part1BackGround","NameStatisticsInfo","Top10LastName","Top10LastNameP","MostCommonNameAndWord","MostCommonName","MostCommonNameP","MostCommonWord","MostCommonWordP","PersonIconDiv","PersonIconDiv2","MostCommonPersonTop1Icon","MostCommonPersonIcon","CommonName","CommonNameRank","Bubble","BubbleDiv","Bubble1","Bubble2","Bubble3","Bubble4","Bubble5","_templateObject46","NameStatisticsBabyInfo","_templateObject47","BabyBigLogoOuter","_templateObject48","BabyBigLogo","_templateObject49","_templateObject50","_templateObject51","NewBornBabyP","_templateObject52","BabyMostCommonNameDiv","_templateObject53","BabyMostCommonNameP","_templateObject54","_templateObject55","BabyIconLayer1","_templateObject56","BabyIconLayer2","_templateObject57","YellowBabyIcon","_templateObject58","_templateObject59","GreenBabyIcon","_templateObject60","_templateObject61","YellowBabyName","_templateObject62","_templateObject63","_templateObject64","_templateObject65","_templateObject66","Part1","topName_Names","setTopName_Names","topName_Counts","setTopName_Counts","topNameWord_Words","setTopNameWord_Words","topNameWord_Counts","setTopNameWord_Counts","topNewBornNameWord_Words","setTopNewBornNameWord_Words","topNewBornNameWord_Counts","setTopNewBornNameWord_Counts","changePosition","childrenPosition","hiddenDiv","clientX","changePositionB","x","y","GenHiddenDiv","Word","Count","LoopMostCommonName","ResultPartA","ResultPartB","onMouseOver","LoopMostCommonNameContainer","_templateObject67","_templateObject68","_templateObject69","LoopBabyIcon","LoopBubble","topName","topNameWord","topNewBornNameWord","BubbleContainer1","BubbleContainer2","Bubble01","styledComponentId","Bubble02","Bubble03","Bubble04","Bubble05","AddAnimeion","Subtitle","Part2BackGround","SurnamesBgDivMargin","SurnamesDialog","SurnamesDialogTriangle","SurnamesDialogSmileFace","SurnamesDialogLeftDiv","SurnamesDialogRightDiv","SurnamesDialogQuestionMark","SurnamesDialogDoYouKnow","SurnamesDialogSpanRed","span","SurnamesDialogSpanGreenWord","SurnamesDialogSpanGreenNumber","SurnamesRankDiv","SurnamesRankTop10","SurnamesRankTop10YellowCirle","SurnamesRankTop10GreenCirle","SurnamesRankTop10YellowCirleSurnameText","SurnamesRankTop10YellowCirleRankNumber","SurnamesRankTop10GreenCirleSurnameText","SurnamesRankTop10GreenCirleRankNumber","SurnamesRankLayer","SurnamesRank11to23","SurnamesRank11to23Text","SurnamesRank11to23Number","SurnamesRank1to100","BGSquare","BGTriangle","BGTopLayer","ContentContainer","_templateObject70","Content","_templateObject71","_templateObject72","_templateObject73","Number","_templateObject74","_templateObject75","_templateObject76","_templateObject77","Ranking","_templateObject78","_templateObject79","_templateObject80","Layer","_templateObject81","FamilyNameRankdiv","_templateObject82","_templateObject83","_templateObject84","RankButton","_templateObject85","Part2","top20FamilyName_Names","setTop20FamilyName_Names","Array","from","top20FamilyName_Counts","setTop20FamilyName_Counts","formatPrice","price","LoopSurnamesRank1to10","ResultPartC","SurnamesRanKtop100","Ranking100","RankingTemp","LoopSurnamesRank11to20","top20FamilyName","Column","Part3BackGround","ShareToFriends","ShareIcon","ShareFriendName","BigYellowPerson","BigGreenPerson","PersonContainer","YearSelecterText","ChartBG","TableContent","Part3","_props","MIN","MAX","YearSelecter","setValue","firstUpdate","useRef","useMemo","current","YearSilder","StepPerMove","move","setMove","setYearNeedtoGet","getData","step","onInput","event","onMouseUp","onKeyUp","formatNumber","LoopName","top10NameByYear_Names","setTop10NameByYear_Names","fill","top10NameByYear_Counts","setTop10NameByYear_Counts","friendName","setFriendName","setFriendNameAndSerach","inputName","SerachName","ShareFriendNameEnter","stopPropagation","_useState17","_useState18","displayValue","SetDisplayValue","changeYear","_loop2","_i","onKeyDown","Part4BackGround","Part4","Part4DataChart","setLastNameArray","setValueIntArray","Symbol","align","hoverAnimation","symbolOffset","Part5BackGround","Part5Dialog","Part5DialogLeftDiv","Part5DialogRightDiv","Part5YellowBottle","Part5BottleNumber","Part5GreenBottle","Part5DialogTriangle","Part5DialogSmileFace","Part5","Dialog","top1999NewBornNameWord_Words","setTop1999NewBornNameWord_Words","top1999NewBornNameWord","LoopPart5NameWord","top5NewBornNameWordsByYear_Names","setTop5NewBornNameWordsByYear_Names","top5NewBornNameWordsByYear_Counts","setTop5NewBornNameWordsByYear_Counts","slice","LayerColumn","Part6BackGround","Part6Div","Part6Top1Number","Part6Top1Name","Part6GreenBar","Part6Separate","Part6G1990","Part6G2000","Part6G2010","Part6Year","Part6Name","Part6Nunmber","Part6RankYellow","Part6RankGray","Part6","top5Gen90Name_Names","setTop5Gen90Name_Names","top5Gen90Name_Counts","setTop5Gen90Name_Counts","top5Gen00Name_Names","setTop5Gen00Name_Names","top5Gen00Name_Counts","setTop5Gen00Name_Counts","top5Gen10Name_Names","setTop5Gen10Name_Names","top5Gen10Name_Counts","setTop5Gen10Name_Counts","Part6TableSignleLayer","Name","Part6Table","Gen90","Gen00","Gen10","top5Gen90Name","top5Gen00Name","top5Gen10Name","Provider","Link","DSI","rel","TitleIcon","Outline","HomePage","homePage","Background","BackgroundMask","main","Appication","intl","useIntl","isPTEN","Router","ThemeProvider","Helmet","htmlAttributes","encodeSpecialCharacters","defaultTitle","formatMessage","titleTemplate","titleAttributes","itemprop","Switch","Route","path","IntlWrapper","locale","setLocale","queryString","urlParams","URLSearchParams","paramLang","get","useUpdateEffect","fetchData","_asyncToGenerator","_regeneratorRuntime","mark","_callee","resp","wrap","_context","prev","next","fetch","sent","json","stop","apply","catch","console","error","IntlProvider","messages","defaultLocale","Boolean","hostname","match","ActionTypes","keyMirror","GITHUB_GET_REPOS_REQUEST","GITHUB_GET_REPOS_SUCCESS","GITHUB_GET_REPOS_FAILURE","HIDE_ALERT","SHOW_ALERT","USER_LOGIN_REQUEST","USER_LOGIN_SUCCESS","USER_LOGIN_FAILURE","USER_LOGOUT_REQUEST","USER_LOGOUT_SUCCESS","USER_LOGOUT_FAILURE","appState","alerts","app","_createReducer","_defineProperty","REHYDRATE","filter","d","_ref2","userState","isAuthenticated","IDLE","user","RUNNING","READY","newsList","questionsList","infoGraphics","imgPath","posters","videoLink","number","isMO","isPT","isCN","introLinkId","onlineLinkId","fillLinkId","identifyLinkId","MO_linkArray","PT_linkArray","CN_linkArray","EN_linkArray","dataSlice","setNewsList","getQuestionsList","setQuestionsList","_dataSlice$actions","axiosCall","url","method","axios","then","response","config","headers","message","Promise","reject","getNameStatisticGeneralInfoFunc","_marked2","root","GetNameStatisticGeneralInfoLink","SearchNameLink","GetTop10NamesByYearInfoLink","GetTop10NameWordsByYearInfoLink","GetTop5NewBornNameWordsByYearInfoLink","_yield$call","put","call","t0","log","_marked","getSearchNameFunc","_yield$call2","_context2","getTop10NamesByYearInfoFunc","_ref3","_callee2","_yield$call3","_context3","getTop10NameWordsByYearInfoFunc","_ref5","_callee3","_yield$call4","_context4","getTop5NewBornNameWordsByYearInfoFunc","_ref7","_callee4","_yield$call5","_context5","_context6","all","takeLatest","fork","api","sagaMiddleware","createSagaMiddleware","middleware","rootReducer","persistCombineReducers","stateReconciler","autoMergeLevel2","timeout","slices","store","configureStore","getDefaultMiddleware","serializableCheck","run","rootSaga","_configStore","persistor","persistStore","configStore","ReactDOM","render","PersistGate","loading","HelmetProvider","App","navigator","serviceWorker","ready","registration","unregister","module","exports"],"mappings":"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","file":"static/js/main.e845e49f.chunk.js","sourcesContent":["// eslint-disable-next-line import/no-self-import\nimport { createBrowserHistory } from 'history';\n\nconst history = createBrowserHistory();\n\nhistory.location = {\n ...history.location,\n state: {},\n};\n\n/* istanbul ignore next */\nhistory.listen(() => {\n history.location = {\n ...history.location,\n state: history.location.state || {},\n };\n});\n\nconst { go, goBack, push, replace } = history;\n\nexport { go, goBack, push, replace };\nexport default history;\n","import { now } from '@gilbarbara/helpers';\nimport produce from 'immer';\nimport { Reducer } from 'redux';\nimport layout from '../scss/layout.module.scss';\nimport _ from 'lodash';\n\nimport { ActionCreator, ActionsMapReducer, GenericFunction, StoreAction } from '../types';\nimport {LodashParseInt} from \"lodash/fp\";\n\n/**\n * Create an action\n */\nexport function createAction(\n type: string,\n payloadCreator: T,\n): ActionCreator, ReturnType> {\n if (!payloadCreator) {\n throw new TypeError('Expected a function');\n }\n\n return (...args: any[]) => ({\n type,\n payload: payloadCreator(...args),\n });\n}\n\n/**\n * Create a reducer\n */\nexport function createReducer(\n actionsMap: ActionsMapReducer,\n defaultState: State,\n): Reducer {\n return (state = defaultState, action: StoreAction) =>\n produce(state, (draft: State) => {\n const fn = actionsMap[action.type];\n\n if (fn) {\n return fn(draft, action);\n }\n\n return draft;\n });\n}\n\n/**\n * Check if cache is valid\n */\nexport function hasValidCache(lastUpdated: number, max = 10): boolean {\n if (!navigator.onLine) {\n return true;\n }\n\n return lastUpdated + max * 60 > now();\n}\n\nexport const mediaSize = {\n xs: `(max-width: ${layout.xsMax})`,\n sm: `(min-width: ${layout.sm}) and (max-width: ${layout.smMax})`,\n md: `(min-width: ${layout.md}) and (max-width: ${layout.mdMax})`,\n lg: `(min-width: ${layout.lg}) and (max-width: ${layout.lgMax})`,\n xl: `(min-width: ${layout.xl}) and (max-width: ${layout.xlMax})`,\n xxl: `(min-width: ${layout.xxl})`\n};\n\nexport const getSize = (width: number) => {\n if(width < _.parseInt(layout.xsMax)){\n return 'xs'\n }else if(width >= _.parseInt(layout.sm) && width < _.parseInt(layout.smMax)){\n return 'sm'\n }else if(width >= _.parseInt(layout.md) && width < _.parseInt(layout.mdMax)){\n return 'md'\n }else if(width >= _.parseInt(layout.lg) && width < _.parseInt(layout.lgMax)){\n return 'lg'\n }else if(width >= _.parseInt(layout.xl) && width < _.parseInt(layout.xlMax)){\n return 'xl'\n }else{\n return 'xxl'\n }\n};\n\nexport const isMobile = (size: string) => {\n return ['xs', 'sm'].indexOf(size) > -1\n};\nexport const isTablet = (size: string) => {\n return ['md', 'lg'].indexOf(size) > -1\n};\n\nexport const navMapFactory = (lang: any, intl: any) => {\n return [\n // {\n // id: \"news\",\n // name: intl.formatMessage({ id: \"news\" }),\n // link: `${process.env.PUBLIC_URL}/News?lang=${lang}`\n // },\n {\n id: \"AboutIDRF\",\n name: intl.formatMessage({ id: \"AboutIDRF\" }),\n link: `${process.env.PUBLIC_URL}/About?lang=${lang}`,\n children: [\n {\n id: \"ObjectiveOfIDRF\",\n name: intl.formatMessage({ id: \"ObjectiveOfIDRF\" }),\n link: `${process.env.PUBLIC_URL}/About?lang=${lang}#Objective`\n },\n {\n id: \"SurveyTarget\",\n name: intl.formatMessage({ id: \"SurveyTarget\" }),\n link: `${process.env.PUBLIC_URL}/About?lang=${lang}#Target`\n },\n {\n id: \"DataCollectionPeriod\",\n name: intl.formatMessage({ id: \"DataCollectionPeriod\" }),\n link: `${process.env.PUBLIC_URL}/About?lang=${lang}#DataCollectionPeriod`\n },\n {\n id: \"DataCollectionTypesAndMeans\",\n name: intl.formatMessage({ id: \"DataCollectionTypesAndMeans\" }),\n link: `${process.env.PUBLIC_URL}/About?lang=${lang}#DataCollectionTypesAndMeans`\n },\n {\n id: \"Legislation\",\n name: intl.formatMessage({ id: \"Legislation\" }),\n link: `${process.env.PUBLIC_URL}/About?lang=${lang}#Legislation`\n }\n ]\n },\n {\n id: \"NotesForHouseholds\",\n name: intl.formatMessage({ id: \"NotesForHouseholds\" }),\n link: `${process.env.PUBLIC_URL}/Respondent?lang=${lang}`,\n children: [\n {\n id: \"InterviewProcedure\",\n name: intl.formatMessage({ id: \"InterviewProcedure\" }),\n link: `${process.env.PUBLIC_URL}/Respondent?lang=${lang}#InterviewProcedure`\n },\n {\n id: \"OnlineCompletion\",\n name: intl.formatMessage({ id: \"OnlineCompletion\" }),\n link: `${process.env.PUBLIC_URL}/Respondent?lang=${lang}#OnlineCompletion`\n },\n {\n id: \"MakeAnAppointment\",\n name: intl.formatMessage({ id: \"MakeAnAppointment\" }),\n link: `${process.env.PUBLIC_URL}/Respondent?lang=${lang}#MakeAnAppointment`\n },\n {\n id: \"IdentifyAnEnumerator\",\n name: intl.formatMessage({ id: \"IdentifyAnEnumerator\" }),\n link: `${process.env.PUBLIC_URL}/Respondent?lang=${lang}#IdentifyAnEnumerator`\n },\n {\n id: \"CooperateReward\",\n name: intl.formatMessage({ id: \"CooperateReward\" }),\n link: `${process.env.PUBLIC_URL}/Respondent?lang=${lang}#LuckyDraw`\n },\n {\n id: \"QandA\",\n name: intl.formatMessage({ id: \"QandA\" }),\n link: `${process.env.PUBLIC_URL}/Respondent?lang=${lang}#FAQ`\n },\n ]\n },\n {\n id: \"Media\",\n name: intl.formatMessage({ id: \"Media\" }),\n link: `${process.env.PUBLIC_URL}/Media?lang=${lang}`,\n children: [\n {\n id: \"InfoGraphics\",\n name: intl.formatMessage({ id: \"InfoGraphics\" }),\n link: `${process.env.PUBLIC_URL}/Media?lang=${lang}#InfoGraphic`\n },\n {\n id: \"Videos\",\n name: intl.formatMessage({ id: \"Videos\" }),\n link: `${process.env.PUBLIC_URL}/Media?lang=${lang}#Video`\n },\n {\n id: \"Posters\",\n name: intl.formatMessage({ id: \"Posters\" }),\n link: `${process.env.PUBLIC_URL}/Media?lang=${lang}#Poster`\n },\n {\n id: \"Radio\",\n name: intl.formatMessage({ id: \"Radio\" }),\n link: `${process.env.PUBLIC_URL}/Media?lang=${lang}#Radio`\n }\n ]\n },\n {\n id: \"ContactUs\",\n name: intl.formatMessage({ id: \"ContactUs\" }),\n link: `${process.env.PUBLIC_URL}/Contact?lang=${lang}`\n }\n ]\n};\n","import React from 'react';\nimport {Status} from './state';\n\nexport interface ActionCreator

{\n (...args: P): StoreAction;\n}\n\nexport interface ActionsMapReducer {\n [type: string]: (draft: State, action: StoreAction) => any;\n}\n\nexport type AlertPosition = 'top-left' | 'top-right' | 'bottom-left' | 'bottom-right';\n\nexport interface AsyncFlow {\n message: string;\n status: Status;\n}\n\nexport type GenericFunction = (...args: any[]) => T;\n\nexport type Icons =\n | 'bell-o'\n | 'bell'\n | 'bolt'\n | 'check-circle-o'\n | 'check-circle'\n | 'check'\n | 'dot-circle-o'\n | 'exclamation-circle'\n | 'question-circle-o'\n | 'question-circle'\n | 'sign-in'\n | 'sign-out'\n | 'times-circle-o'\n | 'times-circle'\n | 'times';\n\nexport type PlainObject = Record;\n\nexport interface RouteProps {\n component: React.ComponentType;\n exact?: boolean;\n isAuthenticated: boolean;\n path: string;\n to?: string;\n}\n\nexport interface StoreAction {\n error?: boolean;\n meta?: PlainObject;\n payload?: T;\n type: string;\n}\n\nexport interface ShowAlertOptions {\n icon?: Icons;\n id?: string;\n position?: AlertPosition;\n timeout?: number;\n variant?: string;\n}\n\nexport type Transitions = 'fade' | 'slideDown' | 'slideLeft' | 'slideRight' | 'slideUp';\n\nexport enum Lang {\n zhMO= 'zh-MO',\n zhCN= 'zh-CN',\n ptPT= 'pt-PT',\n enUS= 'en-US'\n}\n\n","import { Dispatch } from 'redux';\nimport { Variants } from 'styled-minimal/lib/types';\nimport { ValueOf } from 'type-fest';\n\nimport { AlertPosition, Icons } from './common';\n\nexport interface AlertData {\n icon: Icons;\n id: string;\n message: string;\n position: AlertPosition;\n timeout: number;\n variant: Variants;\n}\n\nexport interface Topic {\n cached: boolean;\n data: Array>;\n message: string;\n status: ValueOf;\n updatedAt: number;\n}\n\nexport interface GitHubState {\n query: string;\n topics: Record;\n}\n\nexport interface WithDispatch {\n dispatch: Dispatch;\n}\n\nexport interface AppState {\n alerts: AlertData[];\n}\n\nexport interface UserState {\n isAuthenticated: boolean;\n status: ValueOf;\n}\n\nexport interface StoreState {\n app: AppState;\n user: UserState;\n}\n\nexport enum Status {\n ERROR= 'error',\n IDLE= 'idle',\n READY= 'ready',\n RUNNING= 'running',\n SUCCESS= 'success'\n}\n","import {createSlice, PayloadAction} from '@reduxjs/toolkit';\nimport { Lang } from '../types';\nimport _ from 'lodash';\nimport reducers from \"../reducers\";\nimport {persistCombineReducers} from \"redux-persist\";\nimport slices from \"./index\";\nimport { isMobile, isTablet } from \"../modules/helpers\";\nimport storage from \"redux-persist/lib/storage\";\nimport { persistReducer } from 'redux-persist';\n\ninterface InitialStateType {\n generalInfo: any,\n searchNameInfo: any,\n top10NamesByYearInfo: any,\n top10NameWordsByYearInfo: any,\n top5NewBornNameWordsByYearInfo: any,\n isLoading: boolean,\n lang: Lang | null,\n langMap: any,\n newsDialogParam: any,\n size: string,\n isMobile: boolean,\n isTablet: boolean,\n}\nconst initialState = {\n generalInfo: null,\n searchNameInfo: null,\n isLoading: false,\n lang: null,\n langMap: _.reduce(Object.values(Lang), (pre: any, cur: string) => {\n switch (cur) {\n case Lang.zhMO:\n pre[cur] = '繁';\n break;\n case Lang.zhCN:\n pre[cur] = '简';\n break;\n case Lang.ptPT:\n pre[cur] = 'PT';\n break;\n case Lang.enUS:\n pre[cur] = 'EN';\n break;\n default:\n pre[cur] = cur;\n }\n return pre;\n }, {}),\n newsDialogParam: {\n isOpen: false,\n title: '',\n content: '',\n date: ''\n },\n size: '',\n isMobile: true\n} as InitialStateType;\n\nexport const storeSlice = createSlice({\n name: 'storeSlice',\n initialState: initialState,\n reducers: {\n setIsLoading: (state, action: PayloadAction) => {\n let isLoading = action.payload;\n state.isLoading = isLoading;\n },\n setLang: (state, action: PayloadAction) => {\n let lang = action.payload;\n state.lang = lang;\n },\n getNameStatisticGeneralInfo: (state) => {\n },\n setNameStatisticGeneralInfo: (state, action: PayloadAction) => {\n let generalInfo = action.payload;\n state.generalInfo = generalInfo;\n state.top10NamesByYearInfo = { top10NamesByYear: generalInfo.top10NamesByYear };\n state.top10NameWordsByYearInfo = { top10NameWordsByYear: generalInfo.top10NameWordsByYear };\n state.top5NewBornNameWordsByYearInfo = { top5NewBornNameWordsByYear: generalInfo.top5NewBornNameWordsByYear };\n },\n getSearchNameInfo: (state, action: PayloadAction) => {\n },\n setSearchNameInfo: (state, action: PayloadAction) => {\n let searchNameInfo = action.payload;\n state.searchNameInfo = searchNameInfo;\n },\n getTop10NamesByYearInfo: (state, action: PayloadAction) => {\n },\n setTop10NamesByYearInfo: (state, action: PayloadAction) => {\n let top10NamesByYearInfo = action.payload;\n state.top10NamesByYearInfo = top10NamesByYearInfo;\n },\n getTop10NameWordsByYearInfo: (state, action: PayloadAction) => {\n },\n setTop10NameWordsByYearInfo: (state, action: PayloadAction) => {\n let top10NameWordsByYearInfo = action.payload;\n state.top10NameWordsByYearInfo = top10NameWordsByYearInfo;\n },\n getTop5NewBornNameWordsByYearInfo: (state, action: PayloadAction) => {\n },\n setTop5NewBornNameWordsByYearInfo: (state, action: PayloadAction) => {\n let top5NewBornNameWordsByYearInfo = action.payload;\n state.top5NewBornNameWordsByYearInfo = top5NewBornNameWordsByYearInfo;\n },\n setNewsDialogParam: (state, action: PayloadAction) => {\n let newsDialogParam = action.payload;\n state.newsDialogParam = newsDialogParam;\n },\n setSize: (state, action: PayloadAction) => {\n let size = action.payload;\n let isMobileParam = isMobile(size);\n let isTabletParam = isTablet(size);\n state.size = size;\n state.isMobile = isMobileParam;\n state.isTablet = isTabletParam;\n },\n },\n});\n\nexport const {\n setIsLoading,\n setLang,\n getNameStatisticGeneralInfo,\n setNameStatisticGeneralInfo,\n getSearchNameInfo,\n setSearchNameInfo,\n getTop10NamesByYearInfo,\n setTop10NamesByYearInfo,\n getTop10NameWordsByYearInfo,\n setTop10NameWordsByYearInfo,\n getTop5NewBornNameWordsByYearInfo,\n setTop5NewBornNameWordsByYearInfo,\n setSize\n} = storeSlice.actions\n\n\nconst storePersistConfig = {\n key: 'store',\n storage,\n whitelist: []\n}\n\nconst persistedReducer = persistReducer(storePersistConfig, storeSlice.reducer);\n\nexport default persistedReducer\n","import React, { ReactNode, useEffect } from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { useSize } from \"ahooks\";\nimport \"./layoutPage.scss\";\nimport styled from \"styled-components\";\nimport { Layout } from \"antd\";\nimport { getSize } from \"../../modules/helpers\";\nimport { RootState, AppDispatch } from \"../../store\";\nimport { setSize } from \"../../slices/storeSlice\";\nimport {BasicTarget} from \"ahooks/lib/utils/domTarget\";\n\ninterface Props {\n children?: ReactNode;\n}\n\nfunction LayoutPage({ children, ...props }: Props) {\n const dispatch: AppDispatch = useDispatch();\n const lang: any = useSelector((state: RootState) => state.storeSlice.lang);\n const sizeStore: any = useSelector(\n (state: RootState) => state.storeSlice.size\n );\n\n const size = useSize(document.querySelector(\"body\") as BasicTarget);\n\n useEffect(() => {\n }, []);\n\n useEffect(() => {\n if (size && size.width) {\n let currentSize = getSize(size.width);\n if (sizeStore !== currentSize) {\n dispatch(setSize(currentSize));\n }\n }\n }, [size, sizeStore]);\n\n return (\n <>\n

\n \n );\n}\n\nexport default LayoutPage;\n","import layoutPage from './layoutPage';\n\nexport default layoutPage;\n","/* eslint-disable import/prefer-default-export */\nimport { shallowEqual, useSelector } from 'react-redux';\n\nimport { StoreState } from '../types';\n\nexport function useShallowEqualSelector(selector: (state: StoreState) => TReturn) {\n return useSelector(selector, shallowEqual);\n}\n","import styled , { css } from \"styled-components\";\n\n//region style\n//transform: translate(-50%, -50%);\nconst LoadingContainer = styled.div`\n body {\n background-color: #3f51b5;\n }\n\n .spinner {\n position: absolute;\n top: 50%;\n left: 50%;\n z-index: 1;\n height: 40px;\n width: 40px;\n transform: translate(-50%, -50%);\n }\n\n [class^=\"ball-\"] {\n position: absolute;\n display: block;\n left: 30px;\n width: 12px;\n height: 12px;\n border-radius: 6px;\n transition: all 1s;\n animation: circleRotate 4s both infinite;\n transform-origin: 0 250% 0;\n }\n\n @keyframes circleRotate {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(900deg);\n }\n }\n\n .ball-1 {\n z-index: -1;\n background-color: #2196f3;\n animation-timing-function: cubic-bezier(0.5, 0.3, 0.9, 0.9);\n }\n\n .ball-2 {\n z-index: -2;\n background-color: #03a9f4;\n animation-timing-function: cubic-bezier(0.5, 0.6, 0.9, 0.9);\n }\n\n .ball-3 {\n z-index: -3;\n background-color: #00bcd4;\n animation-timing-function: cubic-bezier(0.5, 0.9, 0.9, 0.9);\n }\n\n .ball-4 {\n z-index: -4;\n background-color: #009688;\n animation-timing-function: cubic-bezier(0.5, 1.2, 0.9, 0.9);\n }\n\n .ball-5 {\n z-index: -5;\n background-color: #4caf50;\n animation-timing-function: cubic-bezier(0.5, 1.5, 0.9, 0.9);\n }\n\n .ball-6 {\n z-index: -6;\n background-color: #8bc34a;\n animation-timing-function: cubic-bezier(0.5, 1.8, 0.9, 0.9);\n }\n\n .ball-7 {\n z-index: -7;\n background-color: #cddc39;\n animation-timing-function: cubic-bezier(0.5, 2.1, 0.9, 0.9);\n }\n\n .ball-8 {\n z-index: -8;\n background-color: #ffeb3b;\n animation-timing-function: cubic-bezier(0.5, 2.4, 0.9, 0.9);\n }\n`\n//endregion\n\nfunction Loading(props: any) {\n\n return (\n \n
\n \n \n \n \n \n \n \n \n
\n
\n );\n}\n\nexport default Loading;\n","const globalValues = ({\n maxYear: 2024 ,\n minYear: 1990\n})\n\nexport default globalValues;\n\n","import React, { useEffect, useState } from \"react\";\nimport { useShallowEqualSelector } from \"../modules/hooks\"\nimport { RootState } from \"../store\";\nimport styled, { css, StyledComponent } from \"styled-components\";\nimport { useSelector } from \"react-redux\";\nimport Loading from \"./Loading\";\nimport ReactECharts from 'echarts-for-react';\nimport ReactDOMServer from \"react-dom/server\";\nimport _ from 'lodash';\nimport globalValues from \"../store/globalValues\";\n\n//region style\nconst Container = styled.div`\n`;\n\nconst RowContainer = styled.div`\n color: white;\n overflow:auto;\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-bottom: 20px;\n height: 55vh;\n overflow-x: hidden;\n `;\n }\n else {\n return css`\n height: 580px;\n padding-left:30px;\n `;\n }\n }}\n`;\n\nconst Row = styled.div`\n display:flex;\n align-items: center;\n \n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 6px 0 20px 0;\n `;\n }\n else {\n return css`\n padding: 18px 0;\n `;\n }\n }}\n`;\n\nconst NameContainer = styled.div`\n font-family: -apple-system,BlinkMacSystemFont,\"Microsoft JhengHei\",\"Microsoft JhengHei UI\",\"Microsoft YaHei\",\"細明體_HKSCS\",\"Kai_MSCS\",\"Ming_MSCS\",\"Ming-MSCS-DSI\";\n font-weight: bold;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size:40px;\n `;\n }\n else {\n return css`\n font-size:50px;\n width: 330px;\n `;\n }\n }}\n`;\n\nconst Show = styled.div`\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n //width: 120px;\n return css`\n width: 44vw;\n `;\n }\n else {\n return css`\n width: 190px;\n `;\n }\n }}\n`;\n\nconst Text = styled.div`\n color:#106b64;\n font-weight: bold;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size:20px;\n margin-bottom:6px;\n `;\n }\n else {\n return css`\n font-size:16px;\n margin-bottom:10px;\n `;\n }\n }}\n\n`;\n//color: rgb(27,150,157);\n\nconst Number = styled.div`\n \n color: white;\n font-weight: bold;\n -webkit-transform: scale(1.15,1);\n -ms-transform: scale(1.15,1);\n transform: scale(1.15,1);\n padding-left: 12px;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size:36px;\n `;\n }\n else {\n return css`\n font-size:42px;\n `;\n }\n }}\n\n`;\n\nconst Rank = styled.div`\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n //width: 100px;\n return css`\n width: 32vw;\n `;\n }\n else {\n return css`\n width: 150px;\n `;\n }\n }}\n`;\n\nconst BigYellowPerson = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n background-image: url(\"${process.env.PUBLIC_URL}/images/03-yellow-person.png\");\n background-size: cover;\n color: rgb(28,149,158);\n font-weight: bold;\n width: 180px;\n height: 216px;\n`;\n\nconst HeightSpace = styled.div`\n height: 40px;\n`;\n\nconst HeadBox = styled.div`\n display:flex;\n justify-content: center;\n align-items: center;\n height: 128px;\n width: 128px;\n`;\n\n//////////////////////////////////\nconst Container0 = styled.div`\n display:flex;\n align-items: flex-start;\n height: auto;\n //max-height: 640px;\n //overflow: auto;\n color: #fafafa;\n\n .lastbar {\n height: 104px;\n }\n .color1 {\n background: rgb(253,200,0);\n color: rgb(4,106,92);\n\t}\n\t.color2 {\n\t\tbackground: rgb(27,150,158);\n\t}\n\t.color3 {\n\t\tbackground: rgb(122,185,174);\n\t}\n .color4 {\n\t\tbackground: rgb(46,167,224);\n\t}\n .color5 {\n background: rgb(173,207,255);\n\t}\n .color6 {\n\t\tbackground: rgb(205,193,253);\n\t}\n .color7 {\n\t\tbackground: rgb(251,115,155);\n\t}\n .barOpen, .barOpenLast {\n height: auto;\n .text-layer{\n margin-bottom: 10px !important;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n //width: 100px;\n return css`\n margin-bottom: 0 !important;\n `;\n }\n }}\n }\n .chart{\n height: fit-content;\n .echarts-for-react{\n margin-bottom: 40px;\n }\n }\n }\n .barClose {\n height: auto;\n } \n .barOpenLast {\n margin-bottom: 10px;\n .chart{\n height: fit-content;\n .echarts-for-react{\n margin-bottom: 10px;\n }\n }\n }\n .barCloseLast {\n height: auto;\n margin-bottom: 10px;\n }\n .maxHeight {\n height: 1200px;\n }\n \n .chart {\n overflow: hidden;\n margin-top: 20px;\n transition: opacity .4s ease-in;\n opacity: 0;\n height: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight:bold;\n font-size:42px;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n //width: 100px;\n return css`\n margin-top: 0;\n `;\n }\n }}\n }\n .noDataText{\n //transform: translateY(-30px);\n margin-bottom: 50px;\n min-height: 200px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n`;\n\nconst Container1 = styled.div`\n display:flex;\n flex-direction: column;\n padding-top: 20px;\n width:100%;\n align-items: center;\n`;\n\nconst Bar = styled.div`\n max-width: 900px;\n width: 100%;\n\tborder-radius: 40px 40px 0 0;\n\tbox-shadow: 0 -5px 40px rgba(0, 0, 0, 0.3);\n transition: height 0.5s ease 0s;\n cursor: pointer;\n margin: 0;\n margin-bottom: -36px;\n`;\n\nconst TextLayer = styled.div`\n display:flex;\n align-items: center;\n padding-top: 24px;\n font-weight:bold;\n margin-bottom: 50px;\n`;\n\nconst Container4 = styled.div`\n display:flex;\n align-items:center;\n`;\n\nconst NameText = styled.div`\n font-size: 60px;\n padding-left:64px;\n width: 240px;\n font-family: -apple-system,BlinkMacSystemFont,\"Microsoft JhengHei\",\"Microsoft JhengHei UI\",\"Microsoft YaHei\",\"細明體_HKSCS\",\"Kai_MSCS\",\"Ming_MSCS\",\"Ming-MSCS-DSI\";\n`;\n\nconst ShowTimeText = styled.div`\n font-size: 20px;\n padding-left:64px;\n width:230px;\n padding-top: 4px;\n text-align: right;\n`;\n\nconst RankText = styled.div`\n font-size: 20px;\n padding-left:64px;\n padding-top: 4px;\n text-align: right;\n`;\n\nconst NumberText = styled.div<{ isText?: boolean; }>`\n width:130px;\n font-size: ${props => props.isText ? \"20px\" : \"40px\"};\n text-align: left;\n padding-top: ${props => props.isText ? \"4px\" : \"0px\"};\n padding-left: 30px;\n`;\n\n\nconst TooltipContainer = styled.div`\n display:flex;\n`;\n\nconst TooltipText = styled.div`\n display:flex;\n flex-direction: column;\n`;\n\nconst TooltipNumber = styled.div`\n display:flex;\n flex-direction: column;\n padding-left:10px;\n text-align: right;\n`;\n// 3=36px 4=30px 5=24px 6=20px 7=17px\n\nconst SearchDataChart: React.FC = (props: any) => {\n const searchNameInfo: any = useShallowEqualSelector((state: RootState) => state.storeSlice.searchNameInfo);\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const [name, setName] = useState(['']);\n const [count, setCount] = useState(['']);\n const [rank, setRank] = useState(['']);\n const [chartYear, setChartYear] = useState(['']);\n const [chartYearTotal, setChartYearTotal] = useState([[]]);\n const [chartYearRank, setChartYearRank] = useState(['']);\n const [type, setType] = useState(['']); //1單字 , 2姓 , 3名字\n const maxYear = globalValues.maxYear;\n const minYear = globalValues.minYear;\n\n const [scaleRate,setScaleRate] = useState(isMobile?0.8:1);\n useEffect(() => {\n setScaleRate(isMobile?0.6:1)\n }, [isMobile])\n\n const ShowDetailAuto = (targets: any) => {\n for (let i = 0; i < targets.length; i++) {\n let target = targets[i].firstElementChild;\n if(!target){\n continue;\n }\n if (target?.id != 'lastBar') {\n target?.classList.add(\"barOpen\");\n target?.classList.remove(\"barClose\");\n target?.setAttribute(\"data-status\", \"on\");\n target.lastChild.style.opacity = 1;\n }\n else {\n target?.classList.add(\"barOpenLast\");\n target?.classList.remove(\"barCloseLast\");\n target?.setAttribute(\"data-status\", \"on\");\n target.lastChild.style.opacity = 1;\n }\n }\n }\n\n useEffect(() => {\n if (searchNameInfo) {\n\n let nameArray: any[] = [];\n let countArray: any[] = [];\n let rankArray: any[] = [];\n let chartYearArray: any[] = [];\n let chartYearTotalArray: any[] = [];\n let chartYearRankArray: any[] = [];\n let typeArray: any[] = [];\n\n //searchNameInfo.name.map((m: any) => nameArray.push(m.name));\n searchNameInfo.familyName.map((m: any) => nameArray.push(m.name));\n searchNameInfo.nameWord.map((m: any) => nameArray.push(m.word));\n //setNameLength(searchNameInfo.nameWord.length);\n\n //searchNameInfo.name.map((m: any) => countArray.push(m.count));\n searchNameInfo.familyName.map((m: any) => countArray.push(m.count));\n searchNameInfo.nameWord.map((m: any) => countArray.push(m.count));\n\n //searchNameInfo.name.map((m: any) => rankArray.push(m.rank));\n searchNameInfo.familyName.map((m: any) => rankArray.push(m.rank));\n searchNameInfo.nameWord.map((m: any) => rankArray.push(m.rank));\n\n //searchNameInfo.name.map((m: any) => typeArray.push(3));\n searchNameInfo.familyName.map((m: any) => typeArray.push(2));\n searchNameInfo.nameWord.map((m: any) => typeArray.push(1));\n\n searchNameInfo.familyName.map((m: any) => chartYearArray.push(m.chartYear));\n searchNameInfo.nameWord.map((m: any) => chartYearArray.push(m.chartYear));\n\n searchNameInfo.familyName.map((m: any) => chartYearTotalArray.push(m.chartYearTotal));\n searchNameInfo.nameWord.map((m: any) => chartYearTotalArray.push(m.chartYearTotal));\n\n searchNameInfo.familyName.map((m: any) => chartYearRankArray.push(m.chartYearRank));\n searchNameInfo.nameWord.map((m: any) => chartYearRankArray.push(m.chartYearRank));\n\n\n setName(nameArray);\n setCount(countArray);\n setRank(rankArray);\n setType(typeArray);\n setChartYear(chartYearArray);\n setChartYearTotal(chartYearTotalArray);\n setChartYearRank(chartYearRankArray);\n\n setTimeout(() => {\n ShowDetailAuto(document.getElementsByClassName('barContainer'));\n }, 50);\n\n }\n }, [searchNameInfo]);\n\n useEffect(() => {\n setName([]);\n setCount([]);\n setRank([]);\n setType([]);\n setChartYear([]);\n setChartYearTotal([]);\n setChartYearRank([]);\n }, [props.reset]);\n\n const barHeightCover = 36*scaleRate;\n const lastBarHeight = 104*scaleRate;\n const otherBarHeight = lastBarHeight + barHeightCover;\n const chartHeight = 400*scaleRate;\n\n const ShowDetail = (e: any) => {\n e.currentTarget.parentNode.style.height = 'auto';\n const status = e.currentTarget.getAttribute(\"data-status\");\n const sequence = e.currentTarget.getAttribute(\"data-sequence\");\n var div = e.currentTarget.parentNode.parentNode.parentNode.parentNode;\n for (let i = 0; i < e.currentTarget.parentElement.children.length; i++) {\n e.currentTarget.parentElement.children[i].lastChild.style.opacity = 0;\n // e.currentTarget.parentElement.children[i].lastChild.style.display=\"none\";\n e.currentTarget.parentElement.children[i].setAttribute(\"data-status\", \"off\");\n if (i != e.currentTarget.parentElement.children.length - 1) {\n e.currentTarget.parentElement.children[i].classList.remove(\"barOpen\");\n e.currentTarget.parentElement.children[i].classList.add(\"barClose\");\n }\n else {\n e.currentTarget.parentElement.children[i].classList.remove(\"barOpenLast\");\n e.currentTarget.parentElement.children[i].classList.add(\"barCloseLast\");\n }\n }\n\n\n if (e.currentTarget.id != 'lastBar') {\n if (status == 'off') {\n // e.currentTarget.parentNode.style.height=(14+lastBarHeight*e.currentTarget.parentElement.children.length+chartHeight)+'px';\n e.currentTarget.classList.add(\"barOpen\");\n e.currentTarget.classList.remove(\"barClose\");\n e.currentTarget.setAttribute(\"data-status\", \"on\");\n e.currentTarget.lastChild.style.opacity = 1;\n // e.currentTarget.lastChild.style.display=\"unset\";\n if (sequence != 1) {\n e.currentTarget.addEventListener(\"animationend\",\n div.scroll({\n top: (sequence - 1) * 98 + 34,\n behavior: 'smooth'\n })\n )\n }\n else {\n e.currentTarget.addEventListener(\"animationend\",\n div.scroll({\n top: 0,\n behavior: 'smooth'\n })\n )\n }\n }\n else {\n e.currentTarget.classList.add(\"barClose\");\n e.currentTarget.classList.remove(\"barOpen\");\n e.currentTarget.setAttribute(\"data-status\", \"off\");\n e.currentTarget.lastChild.style.opacity = 0;\n // e.currentTarget.lastChild.style.display=\"none\";\n }\n }\n else {\n if (status == 'off') {\n // e.currentTarget.parentNode.style.height=(14+lastBarHeight*e.currentTarget.parentElement.children.length+chartHeight)+'px';\n e.currentTarget.classList.add(\"barOpenLast\");\n e.currentTarget.classList.remove(\"barCloseLast\");\n e.currentTarget.setAttribute(\"data-status\", \"on\");\n e.currentTarget.lastChild.style.opacity = 1;\n // e.currentTarget.lastChild.style.display=\"unset\";\n if (sequence != 1) {\n e.currentTarget.addEventListener(\"animationend\",\n div.scroll({\n top: (sequence - 1) * 98 + 30,\n behavior: 'smooth'\n })\n )\n }\n else {\n e.currentTarget.addEventListener(\"animationend\",\n div.scroll({\n top: 0,\n behavior: 'smooth'\n })\n )\n }\n }\n else {\n e.currentTarget.classList.add(\"barCloseLast\");\n e.currentTarget.classList.remove(\"barOpenLast\");\n e.currentTarget.setAttribute(\"data-status\", \"off\");\n e.currentTarget.lastChild.style.opacity = 0;\n // e.currentTarget.lastChild.style.display=\"none\";\n }\n }\n }\n\n const options = (year: any, total: any, rank: any, isFamilyName: any) => {\n return {\n grid: {\n containLabel: true,\n top: 50,\n bottom: 40,\n left: 70*scaleRate,\n right:40*scaleRate,\n },\n xAxis: {\n name: '年份',\n nameLocation: 'center',\n nameTextStyle: {\n fontSize: 16*scaleRate,\n padding: [24*scaleRate, 36*scaleRate, 0, 0]\n },\n type: 'category',\n data: year,\n triggerEvent: false,\n axisLine: {\n lineStyle: {\n color: '#FFFFFF',\n width: 4*scaleRate,\n }\n },\n axisTick: {\n alignWithLabel: true,\n inside: true,\n length: 10*scaleRate,\n lineStyle: {\n width: 4*scaleRate,\n }\n },\n axisLabel: {\n show: true,\n interval: (index: number) => {\n if (index % 5 == 0) {\n return true\n }\n else if (index == (maxYear - minYear)) {\n return true\n }\n },\n textStyle: {\n fontSize: 17*scaleRate\n },\n padding: [6*scaleRate, 0, 0, 0]\n },\n },\n yAxis: {\n name: '出現次數',\n nameTextStyle: {\n fontSize: 16*scaleRate,\n padding: [0, 44*scaleRate, 10*scaleRate, 0]\n },\n type: 'value',\n min: function (value: any) { return Math.floor(value.min / 10) * 10 },\n max: function (value: any) { return Math.ceil(value.max / 10) * 10 },\n splitNumber: 4,\n splitLine: {\n show: false\n },\n axisLine: {\n show: true,\n lineStyle: {\n color: '#FFFFFF',\n width: 4*scaleRate,\n }\n },\n axisLabel: {\n show: true,\n textStyle: {\n fontSize: 18*scaleRate\n },\n padding: [0, 20*scaleRate, 0, 0]\n }\n },\n tooltip: {\n trigger: 'axis',\n axisPointer: {\n type: \"cross\",\n label: {\n show: false\n },\n lineStyle: {\n width: 2*scaleRate,\n type: [4, 3],\n cap: 'butt',\n color: \"#000000\"\n },\n crossStyle: {\n color: '#000',\n width: 2*scaleRate,\n type: [4, 3],\n cap: 'butt',\n }\n },\n backgroundColor: 'rgb(4,106,92)',\n borderColor: 'rgb(62,146,133)',\n borderWidth: 1,\n borderRadius: 0,\n textStyle: {\n color: \"#FFFFFF\",\n },\n formatter: function (params: any) {\n const htmlString = ReactDOMServer.renderToStaticMarkup(\n
\n
{params[0].axisValue}年
\n \n \n
{isFamilyName ? '姓氏出現次數' : '名字單字出現次數'} :
\n
排名 :
\n
\n \n
{params[0].value}
\n
{rank[params[0].dataIndex]}
\n
\n
\n
\n );\n return htmlString\n }\n },\n series: [\n {\n data: total,\n type: 'line',\n symbol: 'circle',\n symbolSize: 1,\n lineStyle: {\n normal: {\n width: 4*scaleRate,\n color: '#FFF'\n }\n },\n itemStyle: {\n normal: {\n color: '#FFF',//拐点颜色\n borderColor: isFamilyName ? 'rgb(4,106,92)' : 'rgb(253,200,0)',//拐点边框颜色\n borderWidth: 0//拐点边框大小\n },\n emphasis: {\n color: isFamilyName ? 'rgb(4,106,92)' : 'rgb(253,200,0)',//hover拐点颜色定义\n borderColor: isFamilyName ? 'rgb(4,106,92)' : 'rgb(253,200,0)',//拐点边框颜色\n borderWidth: 12*scaleRate//拐点边框大小\n }\n },\n }\n ]\n }\n }\n\n const GenBar = () => {\n\n let result = [];\n let sequenceNumber = 0;\n\n for (let i = 1; i <= name.length; i++) {\n let showChart = false;\n let showChartByCount = true;\n let showChartByCountText = \"\";\n\n for (let j = 0; j < chartYearTotal[i - 1].length; j++) {\n let itemTotal = chartYearTotal[i - 1][j]\n if (itemTotal != 0) {\n showChart = true;\n break;\n }\n }\n\n if(!_.reduce(chartYearTotal[i - 1], (p: any, c: any) => {\n return !isNaN(parseInt(c)) && parseInt(c) !== 0 ? true : p\n }, false)){\n showChartByCount = false;\n }\n\n if(!showChartByCount){\n showChartByCountText = _.reduce(chartYearTotal[i - 1], (p: any, c: any) => isNaN(parseInt(c)) ? c : p, \"\");\n }\n\n const ReturnChart = (props: any) => {\n let chartDiv = [];\n\n if (showChart && showChartByCount) {\n chartDiv.push(\n
\n \n
\n )\n }\n else {\n chartDiv.push(\n
\n
{!showChart ? \"沒有出現次數\" : !showChartByCount ? showChartByCountText : \"\"}
\n
\n )\n }\n return (\n <>\n {chartDiv}\n \n )\n }\n\n if (name[i - 1].length > 0) {\n if (type[i - 1] == '2' && i != name.length) {\n sequenceNumber++;\n result.push(\n \n \n {name[i - 1]}\n \n 姓氏出現次數\n {count[i - 1]}\n \n \n 排名\n {rank[i - 1]}\n \n \n \n \n )\n }\n else if (type[i - 1] == '2' && i == name.length) {\n sequenceNumber++;\n result.push(\n \n \n {name[i - 1]}\n \n 姓氏出現次數\n {count[i - 1]}\n \n \n 排名\n {rank[i - 1]}\n \n \n \n \n )\n }\n else if (i != name.length) {\n sequenceNumber++;\n result.push(\n \n \n {name[i - 1]}\n \n 名字單字出現次數\n {count[i - 1]}\n \n \n 排名\n {rank[i - 1]}\n \n \n \n \n )\n }\n else {\n sequenceNumber++;\n result.push(\n \n \n {name[i - 1]}\n \n 名字單字出現次數\n {count[i - 1]}\n \n \n 排名\n {rank[i - 1]}\n \n \n \n \n )\n }\n }\n }\n\n return (\n \n \n {result}\n \n \n )\n\n }\n\n return (\n \n {\n searchNameInfo &&\n \n }\n {\n !searchNameInfo &&\n \n }\n {\n searchNameInfo && props.children\n }\n \n );\n\n};\n\nexport default SearchDataChart;\n","import React, { memo,useEffect, useState } from \"react\";\nimport styled , { css } from \"styled-components\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState, AppDispatch } from \"../store\";\nimport SearchDataChart from \"./SearchDataChart\";\nimport { getSearchNameInfo, setSearchNameInfo } from '../slices/storeSlice';\nimport Swal from 'sweetalert2'\nimport globalValues from \"../store/globalValues\";\n\n//region style\nconst Container = styled.div`\n z-index: 999;\n top: 0;\n position: fixed;\n background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 80%, rgba(255,255,255,0) 100%);\n width: 100%;\n padding-bottom: 5px;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-top: 0;\n position: relative;\n width: 95%;\n `;\n }\n else\n {\n return css`\n padding-top: 30px;\n `;\n }\n }}\n`;\n\nconst GreenSearchBarContainer = styled.div`\n padding: 10px;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n border-radius: 20px;\n padding: 15px 10px;\n background-color: #0e8066;\n p {\n font-size: 20px;\n padding: 12px 5%;\n color: white;\n display: block;\n margin: 0 0 10px 0;\n }\n `;\n }\n }}\n`\n\nconst GreenSearchBar = styled.div`\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n `;\n }\n else\n {\n return css`\n height: 120px;\n border-radius: 60px;\n box-shadow: 0 30px 40px white;\n background-color: #0e8066;\n p {\n color: white;\n display: block;\n margin: 0 0 10px 0;\n }\n `;\n }\n }}\n width: 100%;\n \n display: flex;\n font-size: 18px;\n line-height: initial;\n \n`;\n\nconst InputNameDiv = styled.div`\n padding-left: 5%;\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst FamilyGivenNameDiv = styled.div`\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n display:flex;\n flex-direction: column;\n `;\n }\n }}\n\n`;\n\nconst SearchBarInputBox = styled.input`\n height: 48px;\n font-family: -apple-system,BlinkMacSystemFont,\"Microsoft JhengHei\",\"Microsoft JhengHei UI\",\"Microsoft YaHei\",\"細明體_HKSCS\",\"Kai_MSCS\",\"Ming_MSCS\",\"Ming-MSCS-DSI\";\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 88%;\n margin-bottom: 10px;\n `;\n }\n else {\n return css`\n width: 45%;\n `;\n }\n }}\n\n\n border-radius: 10px;\n border: none;\n padding-left: 28px;\n font-size: 16px;\n font-weight: bold;\n margin-right: 14px;\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 10px;\n }\n`;\n\nconst SelectPeriodDiv = styled.div`\n padding-right: 5%;\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n justify-content: center;\n`;\n\nconst SearchBarYearSelecter = styled.select`\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 88%;\n `;\n }\n else {\n return css`\n width: 100%;\n `;\n }\n }}\n height: 48px;\n border-radius: 10px;\n border: none;\n font-size: 18px;\n font-weight: bold;\n padding-left: 32px;\n background: url(\"${process.env.PUBLIC_URL}/images/arrow.png\") no-repeat scroll right center white;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 10px;\n }\n`;\n\nconst YearSelecterContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst FBbuttonContainer = styled.div`\n align-self: center;\n margin-left: auto;\n margin-right: 30px;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-right: 20px;\n `;\n }\n else {\n return css`\n transform: scale(1.2,1.2);\n `;\n }\n }}\n`;\n\nconst SearchIcon = styled.div`\n flex: 0 0 auto;\n background-image: url(\"${process.env.PUBLIC_URL}/images/00-spotlight.png\");\n width: 90px;\n height: 90px;\n background-size: cover;\n cursor: pointer;\n margin: auto 20px auto auto;\n`;\n//#cae7e2\n//background-color: #2ab193;\n//\nconst ChartBG = styled.div`\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n `;\n }\n else {\n return css`\n width: 820px;\n `;\n }\n }}\n`;\n\nconst BGTopLayer = styled.div`\n display: flex;\n width: 100%;\n`;\n\nconst BGTriangle = styled.div`\n background-color: #2ab193;\n width: 90px;\n height: 90px;\n -webkit-clip-path: polygon(0 0, 0% 100%, 100% 100%);\n clip-path: polygon(0 0, 0% 100%, 100% 100%);\n transform: translateY(1px);\n`;\n\nconst BGSquare = styled.div`\n display: flex;\n align-items: center;\n background-color: #2ab193;\n height: 90px;\n flex: 1;\n\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-left:20px;\n `;\n }\n else {\n return css`\n padding-left:40px;\n padding-top:10px;\n `;\n }\n }}\n`;\n\nconst TableContent = styled.div`\n background-color: #2ab193;\n padding:0 30px 30px 30px;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n\n `;\n }\n else {\n return css`\n width: 820px;\n height: 640px;\n `;\n }\n }}\n`;\n\nconst CloseClick = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/popUp-close.png\");\n width: 20px;\n height: 20px;\n background-size: cover;\n cursor: pointer;\n align-self:center;\n`;\n\nconst ChartContainer = styled.div`\n z-index: 999;\n //position: absolute;\n transition: 0.3s all ease-in-out;\n //left: 50%;\n //transform: translateX(-50%);\n background-color: white;\n box-shadow: 0 -5px 40px rgba(0, 0, 0, 0.3);\n flex:1;\n overflow: auto;\n border-radius: 5px;\n overscroll-behavior: contain;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n top:5%;\n min-width:300px;\n min-height:300px;\n width: calc(100% - 40px);\n margin-left:20px;\n margin-right:20px;\n `;\n }\n else {\n return css`\n top:5vh;\n max-width:980px;\n min-height:300px;\n max-height: 90%;\n `;\n }\n }}\n`;\n\nconst Mask = styled.div`\n background-color: rgba(255, 255, 255, 0.5);\n overflow: hidden;\n position: absolute;\n left: 0px;\n top: 0px;\n z-index: 998;\n display: block;\n width: 100%;\n height: 100%;\n backdrop-filter: blur(6px);\n transition: 0.3s all ease-in-out;\n`;\n\nconst ResultYearSelector = styled.select`\nappearance:none;\n-moz-appearance:none;\n-webkit-appearance:none;\nselect::-ms-expand { display: none; };\n border: none;\n color: white;\n background-color: rgb(4,106,92);\n background:url(\"${process.env.PUBLIC_URL}/images/arrow2.png\") 90% 50% no-repeat scroll rgb(4,106,92);\n \n height: 40px;\n border-radius: 30px;\n font-size:30px;\n padding: 1px 0 0 25px;\n display: flex;\n text-align: left;\n \n flex:1;\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 30px;\n }\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n max-width:180px;\n width: 120px;\n margin-right: 10px;\n `;\n }\n else {\n return css`\n width: 180px;\n max-width:180px;\n `;\n }\n }}\n`;\n\nconst ChartTopBar = styled.div`\n display: flex;\n height:40px;\n margin-top:35px;\n padding:0px 50px 0 50px;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 0 20px 0px 20px;\n `;\n }\n else {\n return css`\n \n `;\n }\n }}\n`;\n//endregion\n\nfunction SearchBar(props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n\n const dispatch: AppDispatch = useDispatch();\n const Min = globalValues.minYear;\n const Max = globalValues.maxYear;\n\n const search = window.location.search\n const qs = require('qs');\n const { FamilyName, GivenName, Year } = qs.parse(search.replace(/^\\?/, ''));\n const [DisplayClassName, setDisplayClassName] = useState(\"Off\");\n const [familyName, setFamilyName] = useState(FamilyName || '');\n const [name, setName] = useState(GivenName || '');\n const [year, setYear] = useState(Year || '');\n\n\n function isChinese(input: string) {\n const pattern = new RegExp(\"[\\u4E00-\\u9FFF]\");\n const pattern0 = new RegExp(\"[\\u3000-\\u4DFF]\");\n const pattern2 = new RegExp(\"[\\uE007-\\uF6E0]\");\n\n let i = 0;\n let result = false;\n while (i < [...input].length) {\n if (pattern.test([...input][i])){\n i++\n }\n else if (pattern0.test([...input][i])){\n i++\n }\n else if (pattern2.test([...input][i])){\n i++\n }\n else\n return result\n }\n result = true\n return result\n\n //if(pattern.test(input))\n // return true //中文\n //return false //不是中文\n }\n\n const Options = () => {\n let Result = [];\n Result.push(\n \n );\n for (let i = Max; i >= Min; i--) {\n Result.push(\n \n );\n }\n return (\n <>\n {Result}\n \n );\n }\n\n const YearChangeOptions = () => {\n let Result = [];\n\n for (let i = Max; i >= Min; i--) {\n Result.push(\n \n );\n }\n return (\n <>\n {Result}\n \n );\n }\n\n const Toast = Swal.mixin({\n toast: false,\n showCloseButton: true,\n target:'root',\n position: 'center',\n showConfirmButton: false,\n timer: 2000,\n timerProgressBar: true,\n didOpen: (toast) => {\n toast.addEventListener('mousedown', Swal.clickConfirm)\n }\n })\n\n\n function customAlert(text: string) {\n Toast.fire({\n icon: 'warning',\n title: text\n })\n }\n\n const open = () => {\n if (!isChinese(familyName)) {\n\n if (isMobile || isTablet){\n alert(\"請輸入中文姓氏\")\n }\n else{\n customAlert(\"請輸入中文姓氏\")\n }\n document.getElementById(\"FamilyName\")?.focus();\n\n }\n else if (!isChinese(name)) {\n\n if (isMobile || isTablet){\n alert(\"請輸入中文名字\")\n }\n else{\n customAlert(\"請輸入中文名字\")\n }\n\n document.getElementById(\"GivenName\")?.focus();\n }\n else if (familyName.length + name.length===0) {\n if (isMobile || isTablet){\n alert(\"請輸入姓氏或名字\")\n }\n else{\n customAlert(\"請輸入姓氏或名字\")\n }\n document.getElementById(\"FamilyName\")?.focus();\n }\n else if (year === '') {\n if (isMobile || isTablet){\n alert(\"請選擇時期\")\n }\n else{\n customAlert(\"請選擇時期\")\n }\n document.getElementById(\"YearSelecter1\")?.focus();\n }\n else if (parseInt(year) > Max || parseInt(year) < Min) {\n if (isMobile || isTablet){\n alert(\"請選擇正確時期\")\n }\n else{\n customAlert(\"請選擇正確時期\")\n }\n document.getElementById(\"YearSelecter1\")?.focus();\n }\n else if (familyName.length + name.length > 9 || familyName.length > 5 || name.length > 6) {\n if (isMobile || isTablet){\n alert(\"請檢查姓名及名字長度\")\n }\n else{\n customAlert(\"請檢查姓名及名字長度\")\n }\n document.getElementById(\"FamilyName\")?.focus();\n }\n else {\n dispatch(getSearchNameInfo({ year: year, familyName: familyName, name: name }));\n setDisplayClassName(\"On\");\n }\n };\n\n const close = () => {\n setDisplayClassName(\"Off\");\n dispatch(setSearchNameInfo(null));\n };\n\n const changeYear = (targetValue: any) => {\n setYear(targetValue);\n dispatch(getSearchNameInfo({ year: targetValue, familyName: familyName, name: name }));\n };\n\n\n window.onkeydown = function (e) {\n if (e.key == \"Enter\") {\n open()\n }\n }\n\n let origin=window.location.origin;\n let URL =\"\";\n if(familyName!=\"\"&&name!=\"\"){\n URL= origin+\"/\" + process.env.PUBLIC_URL + \"?FamilyName=\" + familyName + \"&GivenName=\" + name + \"&Year=\" + year\n }\n else if(familyName===\"\"){\n URL= origin+\"/\" + process.env.PUBLIC_URL + \"?GivenName=\" + name + \"&Year=\" + year\n }\n else if(name===\"\"){\n URL= origin+\"/\" + process.env.PUBLIC_URL + \"?FamilyName=\" + familyName + \"&Year=\" + year\n }\n\n let encodeURI_url = encodeURIComponent(URL)\n\n const FBshareButton = () => {\n return (\n
\n \n \n )\n }\n\n const SearchInput=()=>{\n\n if (isMobile || isTablet)\n {\n return (\n \n
\n

請輸入你想統計的名字及年份

\n \n \n \n setFamilyName(e.target.value)}\n name=\"LastName\"\n type=\"text\"\n placeholder=\"姓\"\n required\n />\n setName(e.target.value)}\n name=\"FirstName\"\n type=\"text\"\n placeholder=\"名\"\n required\n />\n setYear(parseInt(e.target.value))}\n required\n >\n \n \n \n \n \n \n
\n
\n )\n }\n else\n {\n return(\n \n \n

請輸入你想統計的名字

\n \n setFamilyName(e.target.value)}\n name=\"LastName\"\n type=\"text\"\n placeholder=\"姓\"\n\n />\n setName(e.target.value)}\n name=\"FirstName\"\n type=\"text\"\n placeholder=\"名\"\n\n />\n \n
\n\n \n

選擇年份

\n \n setYear(parseInt(e.target.value))}\n required\n >\n \n \n \n
\n\n \n
\n )\n }\n\n }\n\n useEffect(() => {\n if ((Year != null)&&(familyName.length+name.length>0)) {\n open();\n }\n }, []);\n\n const SectionContainer = document.getElementById('fb-root') as HTMLDivElement;\n window.onscroll = function () {\n let top = document.documentElement.scrollTop || document.body.scrollTop;\n if (isMobile || isTablet) {\n if(top>=150){\n SectionContainer.classList.remove(\"On\");\n SectionContainer.classList.add(\"Off\");\n }\n else{\n SectionContainer.classList.remove(\"Off\");\n SectionContainer.classList.add(\"On\");\n }\n }\n }\n\n return (\n \n {SearchInput()}\n
\n \n \n changeYear(parseInt(e.target.value))}>\n \n \n \n \n \n \n \n \n \n \n
\n
\n );\n}\n\nexport default memo(SearchBar);\n","import styled , { css } from \"styled-components\";\n\n//region style\n//transform: translate(-50%, -50%);\nconst DsecLogoOuterDiv = styled.div` \n\n${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:0;\n `;\n }\n else\n {\n return css`\n margin-top:160px;\n `;\n }\n}}\n\n width: 100%;\n display: flex;\n padding: 0 2%;\n`;\n\nconst DsecLogo = styled.a`\n background-image: url(\"${process.env.PUBLIC_URL}/images/dsecLogo.png\");\n width: 150px;\n height: 58px;\n background-size: cover;\n cursor: pointer;\n margin-left: auto;\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-bottom: 20px;\n margin-top: 0;\n `;\n }\n else\n {\n return css`\n margin-bottom: 12px;\n margin-top: 40px;\n `;\n }\n }}\n`;\n\n//endregion\n\nfunction DSEClogo(props: any) {\n\n return (\n \n \n \n );\n}\n\nexport default DSEClogo;\n","import React, {useEffect, useState} from 'react';\nimport { useSelector } from \"react-redux\";\nimport ReactECharts from 'echarts-for-react';\nimport styled , { css } from \"styled-components\";\nimport { RootState } from \"../store\";\nimport { useShallowEqualSelector } from \"../modules/hooks\"\nimport ReactDOMServer from 'react-dom/server';\n\nconst HiddenDiv = styled.div`\nposition: absolute;\ntop: -20px;\nbackground-color: black;\ncolor: white;\nheight: 180px;\nwidth: 170px;\nopacity: 0.8;\n`;\n\nconst HiddenDivName = styled.div`\n display: flex;\n line-height: normal;\n font-size: 18px;\n margin: 16px 0 10px 16px;\n `;\n\nconst HiddenDivInfo = styled.div`\n display: flex;\n padding: 0 16px;\n font-family: Arial,Helvetica Neue,Helvetica,sans-serif;\n `;\n\nconst HiddenDivText = styled.div`\n line-height: normal;\n font-size: 14px;\n opacity: 0.9;\n `;\n\nconst HiddenDivShowTimes = styled.div`\n width:100px;\n text-align:start;\n `;\n\nconst HiddenDivNumber = styled.div`\n text-align: start;\n line-height: normal;\n font-size: 30px;\n font-weight: bold;\n letter-spacing: 3px;\n margin-top: 4px;\n `;\n\nconst HiddenDivRank = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n \n padding-left: 5px;\n border-left: 1px dashed white;\n `;\n\n\nconst Top1to3 = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/04-yellow-frag.png\");\n background-size: cover;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: bold;\n line-height: 0;\n color: white;\n width: 18px;\n height: 22px;\n font-size: 15px;\n`;\n\nconst Top3to10 = styled.div`\n background-color: #c6c8c5;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n line-height: 0;\n width: 20px;\n height: 20px;\n font-size: 11px;\n`;\n\nconst Rank= styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 40px;\n`;\n\nconst RankContainer = styled.div`\n${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-right: 0;\n `;\n }\n else\n {\n return css`\n padding-right:10px;\n `;\n }\n }}\n \n`;\n\nconst Container = styled.div`\n display: flex;\n`;\n\nconst Part1DataChart : React.FC = () => {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const generalInfo: any = useShallowEqualSelector((state: RootState) => state.storeSlice.generalInfo);\n const Symbol = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAA4CAYAAACxDdW4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAATsSURBVHhe7ZpNaBtHFMfnza7ilEJl3xwcGkN9KRSq3HooqXtOob4VSiEm7aHBDcgH22pxQCUmUaxDBK5pDwl1jz2UGnouTUJ7rm+l0BQHYvBNVi8O0Wqn742e3FrS7o72Q5uF/YGY91ZIs/vfN29m5y2ICMx8sf0BSPccu8K2nR/3q8tP2E2NZr0yL4VbEq6c1Aeke+QKuTe1Unug/REZWaTz61tlAbCmlJjmQ/04INRvKNiVcQrWvF2ZlbaoCqUW0C12jw7Qws+O24HG1Oe1/e6hYIxFoqjBO/IN/qR7d4JRKNajpxvX59lPjFZ9tYy9VdH0EqefFggov7Ja22HfFyORZm5s38M7dBXNEMNTHRVsp5RUVLXqlR08tyvsjgbAd8WV2iJ7nkhuPTm3vnUbT+JjNEPmL5hsO4U/2ImV1uZaI7RABP62dadCEeiL74VPV79+23I6j9AMKdD/gb2DjaWL7ERGJ2elfmE3Ei7Au35J3TeSLMf5CZsYBCJUSSf9mJBKGOUTE0BhwvfBUySdqM2TtBk4K7IViX/urOIMpi6wGxmcYN6hyGR3AO9IkqLCVmzQsoGGMLuhUVLSNB8rOHQ9/9NnuKk32IgVq+MGziZB4J0vsRkbSoDnf/rlJJvbWAHlzrEZGozIN9mMDRpybA7gm7iTAO/YeTYzw9hFAhAvs5kZxi4SjpU/2coMfiI53MaKAvkXm5nBT6REnrU6loxtETguPEXCbP8VmzGijg6r135lJzN4ivR043qDLordWMDnmy/ZzBT+iduVn7IVGZzVDrvCZw9fkQ5uLX2PV3ef3Sgc21b7LbYzh38kIQc3lz6JKNRxwW6//iLsfYclUCSChMJEvozmqMuCx1kXiDASiaB8ghc8h88Vu+gGifWYRD3Y+Gwu6wIRI2+o6d1KepJX6pIS4lX8A4u/Qlccozi/Y7ubZJL22nIFUNMKxCye07RSp/fC8LsjPMFDUGIfvzvkw6cortWG/y+3gXAx4EM0X+oeCYRE+7tjW4tJro2ad8uT8vnZMl7JInZpuBEHT/DsdtwzzxpTy43AZU6gSLTlik/udTQjbJ3AXsF+vhD30NMRBYq2hE1LSf208PfV4sqmb9T7ijSzvo1DJ7YNLke48JFeVkSEosdyJh7Eta+EQfBQFZ4teEXVUJFmq3cvcBnIdGiZg8sJvawISXNzpSSFpMpG2OjxouUKd35qtb7H/gkDIiUqUI+QQiUoUI+W24FSfwl8YAmAAv2MTXICEUpd7VZjzNFDDPQOQlICEUXLVrvUF/uaUyLpaq0Qr3W9RAEh1bdsGyHbE9Uk9rb7oT6oL3Y1J8ONhxltiCVSABgGrqkemrxQEWe11hTMTxd7+ekkktrtAk2DYxOIwFnlEt0cdj0JqrAmAea+kz7/G24g3mNrnEC7c+YG20Oh944w4jzLPQnyPvVNhhaJk+hYo6gHCnCZzaFISSvpdJC2q6u6WiSQ7jVq04BK32wOBZ/FEn8JzAuluuV0LRI+ZCU+a/jh97ZJSkNN0+ubcxJMdNt0UCCHvnfQywlpoh+g2U528RiA5/sBtkhdJOGcxVV+TiC5SAbkIhmQi2RALpIBuUgG5CIZkItkQC6SAblIBuQiGZCLZEAukgG5SAbkIhmQi2SArrvNrG81tZcWIH8YVvamsjYIK9WXUZXolP8F8JWbdC/dD40AAAAASUVORK5CYII=';\n\n const [options, setOptions] = useState(null);\n\n useEffect(() => {\n if(generalInfo){\n const lastNameArray = generalInfo.topFamilyName.map((m: any) => m.name);\n const valueIntArray = generalInfo.topFamilyName.map((m: any) => m.count);\n const percentageArray = generalInfo.topFamilyName.map((m: any) => m.percent.toFixed(2)+'%');\n setOptions({\n textStyle: {\n fontFamily: 'Arial',\n },\n legend: {\n show: false\n },\n tooltip: {\n trigger: 'axis',\n transitionDuration :0.1,\n backgroundColor: \"rgba(255,255,255,0)\",\n borderColor :'#FFF',\n borderWidth:0,\n padding: 0,\n borderRadius:0,\n //textStyle: {\n // color: \"#FFF\",\n // fontSize : 16,\n //},\n axisPointer: {\n type: 'shadow'\n },\n //formatter: '{b} : {c}人',\n formatter: function (params: any) {\n const htmlString = ReactDOMServer.renderToStaticMarkup(\n \n {params[0].axisValue}\n \n \n 姓氏人數\n {params[0].value}\n 全澳佔比\n {percentageArray[params[0].dataIndex]}\n \n \n 排名\n {params[0].dataIndex + 1}\n \n \n \n );\n\n return htmlString\n //(\n // params[0].axisValue\n //+'
排名:'+ (params[0].dataIndex+1)\n // +'
姓氏人數:'+String(params[0].value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') +'人' \n //+'
全澳佔比:'+ percentageArray[params[0].dataIndex]\n //+\n // )\n },\n },\n grid: {\n containLabel: true,\n top:0,\n bottom:0,\n left: (isMobile || isTablet) ? 15 : 20 ,\n right:-60\n },\n yAxis: [\n {\n type: 'category',\n data: lastNameArray ,\n inverse: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n margin: (isMobile || isTablet) ? 15 : 30 ,//30, //20 \n fontSize: 22,\n fontWeight:'bold',\n color: '#106b64'\n },\n axisPointer: {\n label: {\n show: false,\n margin: 30\n }\n }\n }\n ,\n {\n type: 'category',\n data: valueIntArray,\n inverse: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n margin: 0,\n fontSize: 22,\n color: '#106b64',\n formatter: function (value: any) {\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') +'{SmallSize|人}'\n },\n rich: {\n SmallSize: {\n verticalAlign:'bottom',\n fontSize: 16\n }\n }\n },\n }\n ,\n {\n type: 'category',\n data: percentageArray,\n inverse: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n backgroundColor:'#106b64',\n padding: [4, 10, 4, 10],\n borderRadius:10,\n margin: (isMobile || isTablet) ? 90 : 100 ,\n fontSize: 15,\n color: '#FFF'\n }\n }\n ],\n xAxis: {\n type: 'value',\n splitLine: { show: false },\n axisLabel: { show: false },\n axisTick: { show: false },\n axisLine: { show: false }\n },\n series: [\n {\n name: '',\n type: 'pictorialBar',\n barWidth: (isMobile || isTablet) ? 35 : 40 ,\n label:{\n color: '#666666',\n show: false,\n position: 'right',\n offset: [10, 0],\n fontSize: 22,\n formatter: '{c}人',\n },\n symbol: Symbol,\n symbolRepeat: true,\n symbolMargin: (isMobile || isTablet) ? '5%' : '6%' ,\n symbolSize: ['65%', '50%'],\n barCategoryGap: 40,\n data: valueIntArray\n }\n ]\n });\n }\n }, [generalInfo]);\n\n return (\n <>\n {options && \n \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n \n \n }\n \n );\n}\n\nexport default Part1DataChart;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled, { css } from \"styled-components\";\nimport { RootState } from \"../store\";\nimport Part1DataChart from \"./Part1DataChart\";\nimport { useShallowEqualSelector } from \"../modules/hooks\"\nimport globalValues from \"../store/globalValues\";\n\n//region style\n\n\nconst Container = styled.div`\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n `;\n }\n else {\n return css`\n width: 100%;\n `;\n }\n }}\n\n`;\n\nconst FlexContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding-bottom:30px;\n`;\n\nconst Part1BackGround = styled.div`\n width: 100%;\n background: #cae7e2;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 16px 10px 16px 10px;\n border-radius: 10px;\n `;\n }\n else {\n return css`\n border-radius: 30px;\n height: 900px;\n `;\n }\n }}\n\n`;\n\nconst NameStatisticsInfo = styled.div`\n width: 1070px;\n height: 500px;\n display: flex;\n margin: 0 auto 65px auto;\n`;\n\nconst Top10LastName = styled.div`\n width: 660px;\n height: 500px;\n border-right: 1px solid darkgray;\n margin-top: 30px;\n padding-right:30px;\n`;\n\nconst Top10LastNameP = styled.p`\n font-size: 36px;\n font-weight: bold;\n color: #106b64;\n line-height: 0;\n\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-bottom: 40px;\n text-align: center;\n `;\n }\n else {\n return css`\n margin-bottom: 60px;\n `;\n }\n }}\n`;\n\nconst MostCommonNameAndWord = styled.div`\n margin: 30px 0px 30px 40px;\n text-align: center;\n `;\n\nconst MostCommonName = styled.div`\n`;\n\nconst MostCommonNameP = styled.p`\n font-size: 24px;\n font-weight: bold;\n color: #106b64;\n line-height: 14px;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top: 30px;\n margin-bottom: 30px;\n text-align: center;\n `;\n }\n\n }}\n`;\n\nconst MostCommonWord = styled.div`\n margin-left: 40px;\n`;\n\nconst MostCommonWordP = styled.p`\n font-size: 24px;\n font-weight: bold;\n color: #106b64;\n line-height: 14px;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top: 20px;\n margin-bottom: 30px;\n text-align: center;\n `;\n }\n\n }}\n\n`;\n\nconst PersonIconDiv = styled.div`\n display: flex;\n padding-bottom: 25px;\n`;\n\nconst PersonIconDiv2 = styled.div`\n display: flex;\n \n \n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n `;\n }\n else {\n return css`\n border-bottom: 1px solid darkgray;\n padding-bottom: 25px;\n `;\n }\n }}\n`;\n\nconst HiddenDiv = styled.div`\n\n${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n right: -50px;\n top: -125px;\n `;\n }\n else {\n return css`\n left: -50px;\n top: -125px;\n `;\n }\n }}\n\nposition: absolute;\n\n\nbackground-color: black;\ncolor: white;\nz-index: 2;\ntransition: visibility 0s, opacity 0.3s linear;\nopacity: 0;\nvisibility:hidden;\n`;\n\nconst MostCommonPersonTop1Icon = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/01-yellow-person.png\");\n width: 66px;\n height: 79px;\n background-size: 100%;\n background-repeat: no-repeat;\n margin: 0 4px;\n font-weight: bold;\n color: #1a979d;\n font-size: 15px;\n line-height: 14px;\n position: relative;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n text-align: center;\n margin: 0 0.5vw;\n `;\n }\n }}\n\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n `;\n\nconst MostCommonPersonIcon = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/01-green-person.png\");\n width: 66px;\n height: 79px;\n background-size: 100%;\n background-repeat: no-repeat;\n margin: 0 4px;\n font-weight: bold;\n color: white;\n font-size: 15px;\n line-height: 14px;\n position: relative;\n \n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n text-align: center;\n margin: 0 0.5vw;\n `;\n }\n }}\n\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n `;\n\nconst CommonName = styled.p`\n margin: 17px 0 22px 0;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin: 24% 0 28% 0;\n `;\n }\n }}\n `;\n\nconst CommonNameRank = styled.p`\n font-weight: normal;\n line-height: 28px;\n font-size: 22px;\n margin: 5px 0;\n `;\n\nconst HiddenDivName = styled.div`\n display: flex;\n line-height: normal;\n font-size: 18px;\n margin: 16px 0 10px 16px;\n `;\n\nconst HiddenDivInfo = styled.div`\n display: flex;\n padding: 0 16px;\n font-family: Arial,Helvetica Neue,Helvetica,sans-serif;\n `;\n\nconst HiddenDivText = styled.div`\n line-height: normal;\n font-size: 14px;\n opacity: 0.9;\n `;\n\nconst HiddenDivShowTimes = styled.div`\n width:100px;\n text-align:start;\n `;\n\nconst HiddenDivNumber = styled.div`\n text-align: start;\n line-height: normal;\n font-size: 30px;\n font-weight: bold;\n letter-spacing: 3px;\n margin-top: 4px;\n `;\n\nconst HiddenDivRank = styled.div`\n padding-left: 5px;\n border-left: 1px dashed white;\n `;\n\n const Bubble = styled.div`\n position: relative;\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n`;\n const BubbleDiv = styled.div`\n display: flex;\n padding-top: 50px;\n font-weight: bold;\n `;\n\nconst Bubble1 = styled.div`{\n width: 100px;\n height: 100px;\n border-radius: 50%;\n background-color: #0a7075;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n font-size: 42px;\n `;\n\nconst Bubble2 = styled.div`{\n width: 85px;\n height: 85px;\n border-radius: 50%;\n background-color: #1b969e;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n font-size: 37px; \n `;\n\n\nconst Bubble3 = styled.div`{\n width: 60px;\n height: 60px;\n border-radius: 50%;\n background-color: #13aab3;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n font-size: 28px;\n transform: translate(-63px, 143px);\n position: relative;\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n\n `;\n\nconst Bubble4 = styled.div`{\n width: 50px;\n height: 50px;\n border-radius: 50%;\n background-color: #2db9ca;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n font-size: 24px;\n position: relative;\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n \n `;\n\nconst Bubble5 = styled.div`{\n width: 35px;\n height: 35px;\n border-radius: 50%;\n background-color: #46becf;\n display: flex;\n justify-content: center;\n align-items: center;\n color: white;\n font-size: 17px;\n position: relative;\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n\n `;\n\nconst NameStatisticsBabyInfo = styled.div`{\n display:flex;\n justify-content: center;\n align-items: center;\n margin: 30px auto;\n width: 1060px;\n height: 292px;\n background: white;\n border-radius: 10px;\n display: flex;\n align-items: center;\n `;\n\nconst BabyBigLogoOuter = styled.div`{\n margin-right: 40px;\n`;\n\nconst BabyBigLogo = styled.div`{\n background: url(\"${process.env.PUBLIC_URL}/images/01-baby-lightColor.png\") no-repeat;\n\n background-size: cover;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n background-position: center center;\n background-size: 220px 346px;\n height: 346px;\n width: 100%;\n margin-top:10px;\n margin-bottom:30px;\n display: none;\n `;\n }\n else{\n return css`\n background-position-y: 60px;\n width: 220px;\n height: 346px;\n `;\n }\n }}\n\n `;\n\n const NewBornBabyP = styled.p`\n font-size: 36px;\n font-weight: bold;\n color: #106b64;\n line-height: 0;\n padding-top: 30px;\n text-align: center;\n`;\n\n\nconst BabyMostCommonNameDiv = styled.div`{\n height: 250px;\n text-align: center;\n margin-left: 30px;\n padding-right: 30px;\n `;\n\nconst BabyMostCommonNameP = styled.p`{\n font-size: 24px;\n font-weight: bold;\n color: #106b64;\n margin-block-start: 12px;\n margin-block-end: 18px;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n text-align: center;\n `;\n }\n \n }}\n `;\n\nconst BabyIconLayer1 = styled.div`{\n display: flex;\n padding-bottom: 12px;\n`;\n\nconst BabyIconLayer2 = styled.div`{\n display: flex;\n `;\n\nconst YellowBabyIcon = styled.div`{\n background-image: url(\"${process.env.PUBLIC_URL}/images/01-baby-yellow.png\");\n width: 60px;\n height: 94px;\n background-size: 100%;\n background-repeat: no-repeat;\n margin: 0 4px;\n font-weight: bold;\n color: #1a979d;\n font-size: 15px;\n line-height: 110px;\n position : relative;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n text-align: center;\n `;\n }\n }}\n\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n\n`;\n\nconst GreenBabyIcon = styled.div`{\n background-image: url(\"${process.env.PUBLIC_URL}/images/01-baby-green.png\");\n width: 60px;\n height: 94px;\n background-size: 100%;\n background-repeat: no-repeat;\n margin: 0 4px;\n font-weight: bold;\n color: white;\n font-size: 15px;\n line-height: 110px;\n position : relative;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n text-align: center;\n `;\n }\n }}\n\n &:hover > ${HiddenDiv} {\n visibility: visible;\n opacity: 0.8;\n height: 118px;\n width: 170px;\n }\n\n`;\n\nconst BabyMostCommonNameWordP = styled.p`{\n text-align: center;\n font-size: 24px;\n font-weight: bold;\n color: #106b64;\n margin-block-start: 12px;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top: 30px;\n `;\n }\n }}\n`;\n\nconst BabyMostCommonNameWordDiv = styled.div`{\n margin-left: 20px;\n height: 250px;\n `;\n\nconst YellowBabyName = styled.p`\n margin: 20px 0 0 0;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin: 12px 0 0 0;\n `;\n }\n }}\n `;\n\n//endregion\n\nfunction Part1(props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const generalInfo: any = useShallowEqualSelector((state: RootState) => state.storeSlice.generalInfo);\n const [topName_Names, setTopName_Names] = useState([]);\n const [topName_Counts, setTopName_Counts] = useState([]);\n\n const [topNameWord_Words, setTopNameWord_Words] = useState([]);\n const [topNameWord_Counts, setTopNameWord_Counts] = useState([]);\n\n //const [topNewBornName_Names, setTopNewBornName_Names] = useState([]);\n //const [topNewBornName_Counts, setTopNewBornName_Counts] = useState([]);\n\n const [topNewBornNameWord_Words, setTopNewBornNameWord_Words] = useState([]);\n const [topNewBornNameWord_Counts, setTopNewBornNameWord_Counts] = useState([]);\n\n function changePosition(e: React.MouseEvent, childrenPosition: any) {\n let hiddenDiv = e.currentTarget.children[childrenPosition] as HTMLDivElement;\n if (e.clientX <= 150) {\n hiddenDiv.style.left = \"50px\";\n }\n }\n\n function changePositionB(e: React.MouseEvent, childrenPosition: any,x: any,y: any) {\n let hiddenDiv = e.currentTarget.children[childrenPosition] as HTMLDivElement;\n if (e.clientX <= 150) {\n hiddenDiv.style.left = x+\"px\";\n hiddenDiv.style.top = y+\"px\";\n }\n else{\n hiddenDiv.style.left = x+\"px\";\n hiddenDiv.style.top = y+\"px\";\n }\n }\n\n\n const GenHiddenDiv = (props: any) => {\n\n const word = props.Word;\n const count = props.Count;\n const rank = props.Rank;\n\n return (\n \n {word}\n \n \n 出現次數\n {count}\n \n \n 排名\n {rank}\n \n \n \n );\n }\n\n const LoopMostCommonName = () => {\n let ResultPartA = [];\n let ResultPartB = [];\n\n for (let i = 0; i < 5; i++) {\n if (i === 0) {\n ResultPartA.push(\n changePosition(e, 2)}>\n {topName_Names[i]}\n {i + 1}\n \n \n )\n }\n else {\n ResultPartA.push(\n changePosition(e, 2)}>\n {topName_Names[i]}\n {i + 1}\n \n \n )\n }\n }\n\n for (let i = 5; i < 10; i++) {\n ResultPartB.push(\n changePosition(e, 2)}>\n {topName_Names[i]}\n {i + 1}\n \n \n )\n }\n\n let LoopMostCommonNameContainer = styled.div`\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n `;\n }\n else {\n return css`\n width: 100%;\n `;\n }\n }}\n `\n\n return (\n \n \n {ResultPartA}\n \n \n {ResultPartB}\n \n \n )\n }\n\n const LoopBabyIcon = () => {\n let ResultPartA = [];\n let ResultPartB = [];\n\n for (let i = 0; i < 5; i++) {\n\n if (i === 0) {\n ResultPartA.push(\n changePosition(e, 1)}>\n {topNewBornNameWord_Words[i]}\n \n \n )\n }\n else {\n ResultPartA.push(\n changePosition(e, 1)}>\n {topNewBornNameWord_Words[i]}\n \n \n )\n }\n }\n\n for (let i = 5; i < 10; i++) {\n ResultPartB.push(\n changePosition(e, 1)}>\n {topNewBornNameWord_Words[i]}\n \n \n )\n }\n\n return (\n \n \n {ResultPartA}\n \n \n {ResultPartB}\n \n \n )\n }\n\n const LoopBubble = (props: any) => {\n const word = props.Word;\n const count = props.Count;\n\n useEffect(() => {\n }, [props])\n\n return (\n \n changePositionB(e, 1 , 70 , -90)}>\n \n
{word[0]}
\n
\n \n
\n changePositionB(e, 1 , 50 , -138)}>\n \n
{word[1]}
\n
\n \n
\n changePositionB(e, 1 , -215 , -57)}>\n \n
{word[2]}
\n
\n \n
\n changePositionB(e, 1 , -220, -90)}>\n \n
{word[3]}
\n
\n \n
\n changePositionB(e, 1 , -215 , -75)}>\n \n
{word[4]}
\n
\n \n
\n\n
\n )\n\n }\n\n const AddAnimeion = () => {\n\n const Bubble01 = document.getElementsByClassName(Bubble1.styledComponentId)[0];\n const Bubble02 = document.getElementsByClassName(Bubble2.styledComponentId)[0];\n const Bubble03 = document.getElementsByClassName(Bubble3.styledComponentId)[0];\n const Bubble04 = document.getElementsByClassName(Bubble4.styledComponentId)[0];\n const Bubble05 = document.getElementsByClassName(Bubble5.styledComponentId)[0];\n Bubble01.classList.add(\"FlowAnimation1\");\n Bubble02.classList.add(\"FlowAnimation2\");\n Bubble03.classList.add(\"FlowAnimation3\");\n Bubble04.classList.add(\"FlowAnimation4\");\n Bubble05.classList.add(\"FlowAnimation5\");\n\n }\n\n useEffect(() => {\n if (generalInfo) {\n setTopName_Names(generalInfo.topName.map((m: any) => m.name));\n setTopName_Counts(generalInfo.topName.map((m: any) => m.count));\n setTopNameWord_Words(generalInfo.topNameWord.map((m: any) => m.name));\n setTopNameWord_Counts(generalInfo.topNameWord.map((m: any) => m.count));\n //setTopNewBornName_Names(generalInfo.topNewBornName.map((m: any) => m.name));\n //setTopNewBornName_Counts(generalInfo.topNewBornName.map((m: any) => m.count));\n setTopNewBornNameWord_Words(generalInfo.topNewBornNameWord.map((m: any) => m.name));\n setTopNewBornNameWord_Counts(generalInfo.topNewBornNameWord.map((m: any) => m.count));\n\n setTimeout(() => {\n const BubbleContainer1 = document.getElementById(\"BubbleContainer1\") as HTMLDivElement | null;\n const BubbleContainer2 = document.getElementById(\"BubbleContainer2\") as HTMLDivElement | null;\n BubbleContainer1?.classList.remove(\"HiddenBubbles\");\n BubbleContainer1?.classList.add(\"ShowBubbles\");\n BubbleContainer2?.classList.remove(\"HiddenBubbles\");\n BubbleContainer2?.classList.add(\"ShowBubbles\");\n AddAnimeion();\n }, 50);\n }\n }, [generalInfo]);\n\n\n if (isMobile || isTablet) {\n return (\n <>\n \n 澳門10大姓氏統計\n \n 全澳最常用名字\n \n \n \n 全澳最常用名字單字\n \n \n \n \n \n \n\n 新生嬰兒名字統計\n \n \n {globalValues.maxYear}年新生嬰兒最常見名字單字\n \n \n \n {/*20/23年新生嬰兒最常見名字單字*/}\n {/**/}\n {/* */}\n {/* */}\n {/* */}\n {/**/}\n \n\n \n )\n }\n else {\n return (\n \n \n\n \n 澳門10大姓氏統計\n \n \n\n \n 全澳最常用名字\n \n \n \n\n 全澳最常用名字單字\n \n \n \n\n \n\n \n \n\n \n \n \n\n \n {globalValues.maxYear}年新生嬰兒最常見名字單字\n \n \n\n \n \n )\n }\n}\n\nexport default Part1;\n","import React, { useEffect, useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport styled, { css } from \"styled-components\";\nimport { RootState } from \"../store\";\nimport { useShallowEqualSelector } from \"../modules/hooks\"\n\n//region style\nconst Subtitle = styled.p`\n text-align: center;\n \n font-weight: bold;\n color: #064645;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:45px;\n margin-bottom: 16px;\n font-size: 40px;\n `;\n }\n else {\n return css`\n margin-top: 150px;\n margin-bottom: 45px;\n font-size: 50px;\n `;\n }\n }}\n\n`;\n\nconst Part2BackGround = styled.div`\n width: 100%;\n border-radius: 30px;\n background: #cae7e2;\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 10px 10px 30px;\n `;\n }\n else {\n return css`\n height: 1100px;\n `;\n }\n }}\n`;\n\nconst SurnamesBgDivMargin = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n `;\n\nconst SurnamesDialog = styled.div`\n border-radius: 40px 40px 0 40px;\n background-color: white;\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 100%;\n flex-direction: column;\n padding-top: 80px;\n border-radius: 40px;\n `;\n }\n else {\n return css`\n margin-top: 80px;\n width: 846px;\n height: 350px;\n `;\n }\n }}\n `;\n\nconst SurnamesDialogTriangle = styled.div`\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 45px 0 0 45px;\n border-color: transparent transparent transparent #ffffff;\n position: absolute;\n bottom: 0;\n right: -45px;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n display: none;\n `;\n }\n }}\n `;\n\nconst SurnamesDialogSmileFace = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/02-dialog-smile.png\");\n border-radius: 0 40px 40px 0;\n width: 64px;\n height: 64px;\n background-size: cover;\n position: absolute;\n top: 0;\n right: 0;\n `;\n\nconst SurnamesDialogLeftDiv = styled.div`\n padding-right: 10px;\n text-align: center;\n color: #106b64;\n font-weight: bold;\n margin: auto 60px auto 60px;\n `;\n\nconst SurnamesDialogRightDiv = styled.div`\n\n display: flex;\n justify-content: center;\n flex-direction: column;\n color: #106b64;\n div:nth-child(2) {\n margin-top:30px;\n margin-bottom:15px;\n }\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 28px;\n padding: 30px 0;\n `;\n }\n else {\n return css`\n padding-left: 60px;\n margin-right: 10px;\n font-size: 35px;\n border-left: 2px dashed rgb(135,180,177);\n `;\n }\n }}\n\n `;\n\nconst SurnamesDialogQuestionMark = styled.div`\n font-size: 240px;\n \n line-height: 190px;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n\n `;\n }\n else {\n return css`\n font-family: Century Gothic,CenturyGothic,AppleGothic,sans-serif;\n `;\n }\n }}\n `;\n\nconst SurnamesDialogDoYouKnow = styled.div`\n font-size: 35px;\n line-height: normal;\n `;\n\nconst SurnamesDialogSpanRed = styled.span`\n font-weight: bold;\n color: #eb5848;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-left: 6px;\n `;\n }\n else {\n return css`\n padding-left: 16px;\n `;\n }\n }}\n `;\n\nconst SurnamesDialogSpanGreenWord = styled.span`\n font-weight: bold;\n color: #1b969e;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 70px;\n padding-right: 10px;\n `;\n }\n else {\n return css`\n font-size: 90px;\n padding-right: 20px;\n `;\n }\n }}\n\n `;\n\nconst SurnamesDialogSpanGreenNumber = styled.span`\n font-weight: bold;\n color: #1b969e;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 52px;\n padding-right: 5px;\n padding-left: 5px;\n `;\n }\n else {\n return css`\n font-size: 90px;\n padding-right: 20px;\n padding-left: 20px;\n `;\n }\n }}\n\n `;\n\nconst SurnamesRankDiv = styled.div`\n margin-top: 50px;\n display: flex;\n justify-content: center;\n align-items: center;\n font-family: Arial,Helvetica Neue,Helvetica,sans-serif;\n `;\n\nconst SurnamesRankTop10 = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n align-items: center;\n \n p {\n margin-block-start: 0;\n margin-block-end: 0;\n }\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 16px;\n margin-top:10px;\n `;\n }\n else {\n return css`\n font-size: 22px;\n `;\n }\n }}\n\n `;\n\nconst SurnamesRankTop10YellowCirle = styled.div`\n position: relative;\n border-radius: 50%;\n background-color: rgb(253,200,0);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n color: rgb(28,149,158);\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 90px;\n height: 90px;\n margin: 10px 6px;\n `;\n }\n else {\n return css`\n width: 175px;\n height: 175px;\n margin: 20px 24px;\n `;\n }\n }}\n\n `;\n\nconst SurnamesRankTop10GreenCirle = styled.div`\n position: relative;\n border-radius: 50%;\n background-color: rgb(16,107,102);\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n color: rgb(202,232,224);\n \n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 70px;\n height: 70px;\n margin: 10px 6px;\n `;\n }\n else {\n return css`\n width: 135px;\n height: 135px;\n margin: 20px 24px;\n `;\n }\n }}\n\n\n `;\n\nconst SurnamesRankTop10YellowCirleSurnameText = styled.p`\n font-size: 95px;\n font-weight: bold;\n \n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 52px;\n `;\n }\n else {\n return css`\n font-size: 95px;\n line-height:95px;\n `;\n }\n }}\n \n `;\n\nconst SurnamesRankTop10YellowCirleRankNumber = styled.p`\n position: absolute;\n top: 0;\n \n font-weight: bold;\n font-size: 36px;\n line-height: 30px;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 20px;\n left: -5px;\n `;\n }\n else {\n return css`\n font-size: 36px;\n left: 0;\n `;\n }\n }}\n `;\n\nconst SurnamesRankTop10GreenCirleSurnameText = styled.p`\n\n font-weight: bold;\n\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 32px;\n `;\n }\n else {\n return css`\n font-size: 64px;\n line-height: 64px;\n `;\n }\n }}\n\n\n `;\n\nconst SurnamesRankTop10GreenCirleRankNumber = styled.p`\n position: absolute;\n line-height: 28px;\n color: rgb(16,107,102);\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 18px;\n left: -10px;\n top: -8px;\n `;\n }\n else {\n return css`\n top: 0;\n left: -20px;\n font-size: 32px;\n `;\n }\n }}\n\n\n `;\n\nconst SurnamesRankLayer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n width: 100%;\n `;\n\nconst SurnamesRank11to23 = styled.div`\n font-weight: bold;\n color: black;\n font-size: 24px;\n display:flex;\n flex-direction: column;\n Span {\n font-size: 16px;\n }\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n `;\n }\n else {\n return css`\n margin-left: 40px;\n `;\n }\n }}\n `;\n\nconst SurnamesRank11to23Text = styled.div`\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding:8px 30px;\n `;\n }\n else {\n return css`\n padding:15px 18px;\n `;\n }\n }}\n `;\n\nconst SurnamesRank11to23Number = styled.div`\n width: 125px;\n text-align: end;\n padding-right: 15px;\n `;\n\nconst Mask = styled.div`\n background-color: rgba(255, 255, 255, 0.5);\n overflow: hidden;\n position: fixed;\n left: 0px;\n top: 0px;\n z-index: 1000;\n display: block;\n width: 100%;\n height: 100%;\n backdrop-filter: blur(6px);\n transition: 0.3s all ease-in-out;\n`;\n\nconst SurnamesRank1to100 = styled.div`\ndisplay: flex;\nalign-items: flex-end;\nflex-direction: column;\nz-index: 1001;\nposition: fixed;\ntransition: 0.3s all ease-in-out;\nleft: 50%;\ntransform: translateX(-50%);\nfont-weight: bold;\nfont-size: 24px;\n\n${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n top:5%;\n width: 95vw;\n `;\n }\n else {\n return css`\n top:5vh;\n width: 1100px;\n `;\n }\n}}\n`;\n\nconst CloseClick = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/popUp-close.png\");\n width: 20px;\n height: 20px;\n background-size: cover;\n cursor: pointer;\n transform: translate(-10px, 30px);\n`;\n\n\nconst BGSquare = styled.div`\n display: flex;\n background-color: #2ab193;\n height: 90px;\n flex: 1;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n align-items: center;\n padding-left: 10px;\n `;\n }\n }}\n\n`;\n\nconst BGTriangle = styled.div`\n background-color: #2ab193;\n width: 90px;\n height: 90px;\n -webkit-clip-path: polygon(0 0, 0 100%, 100% 100%);\n clip-path: polygon(0 0, 0 100% , 100% 100%);\n transform: translateY(1px);\n`;\n\nconst BGTopLayer = styled.div`\n display: flex;\n width: 100%;\n`;\n\nconst ContentContainer = styled.div`\n height:62vh;\n overflow: auto;\n width: 100%;\n`\n\nconst Content = styled.div`\n display: flex;\n flex-direction: column;\n background-color: #2ab193;\n width: 100%;\n min-height: 1px;\n color: white;\n padding-bottom: 30px;\n overflow: auto;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size:20px;\n overflow-x: hidden;\n align-item:center;\n padding-left:20px;\n `;\n }\n else {\n return css`\n justify-content: center;\n text-align: center;\n `;\n }\n }}\n`;\n\nconst Number = styled.div`\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width:40px;\n `;\n }\n else {\n return css`\n width:48px;\n `;\n }\n }}\n`;\n\nconst FamilyName = styled.div`\n width:50px;\n text-align: left;\n`;\n\nconst Ranking = styled.div`\ntext-align: center;\ncolor: white;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 32px;\n padding-left: 10px;\n `;\n }\n else {\n return css`\n font-size:42px;\n padding: 30px 0 0 60px;\n `;\n }\n }}\n\n`;\n\nconst Layer = styled.div`\ndisplay: flex;\njustify-content: center;\nalign-items: center;\n`;\n\nconst FamilyNameRankdiv = styled.div`\ndisplay: flex;\njustify-content: left;\nalign-items: center;\n min-height: 1px;\n\n${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width:86px;\n padding: 10px 0;\n line-height: normal;\n `;\n }\n else {\n return css`\n width:100px;\n padding: 10px 0;\n line-height: normal;\n `;\n }\n}}\n\n`;\n\nconst RankButton = styled.div`\n color:white;\n border-radius: 10px;\n line-height:40px;\n display: flex;\n justify-content: center;\n align-items: center;\n cursor: pointer;\n background-color: rgb(16,107,102);\n opacity: 0.9;\n :hover {\n opacity: 1;\n }\n`;\n\n\n//endregion\n\nfunction Part2(props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const generalInfo: any = useShallowEqualSelector((state: RootState) => state.storeSlice.generalInfo);\n const [top20FamilyName_Names, setTop20FamilyName_Names] = useState([]);\n const [top20FamilyName_Counts, setTop20FamilyName_Counts] = useState(Array.from({ length: 20 }, (_, i) => i + 1));\n const [DisplayClassName, setDisplayClassName] = useState(\"Off\");\n\n function formatPrice(price: any) {\n return String(price).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n const open=()=>{\n setDisplayClassName(\"On\");\n }\n\n const close = () => {\n setDisplayClassName(\"Off\");\n };\n\n const LoopSurnamesRank1to10 = () => {\n\n let ResultPartA = [];\n let ResultPartB = [];\n let ResultPartC = [];\n\n for (let i = 0; i < 3; i++) {\n ResultPartA.push(\n \n {i + 1}\n {top20FamilyName_Names[i]}\n

{formatPrice(top20FamilyName_Counts[i])}

\n
\n )\n }\n\n for (let i = 3; i < 7; i++) {\n ResultPartB.push(\n \n {i + 1}\n {top20FamilyName_Names[i]}\n

{formatPrice(top20FamilyName_Counts[i])}

\n
\n )\n }\n\n for (let i = 7; i < 10; i++) {\n ResultPartC.push(\n \n {i + 1}\n {top20FamilyName_Names[i]}\n

{formatPrice(top20FamilyName_Counts[i])}

\n
\n )\n }\n\n return (\n \n \n {ResultPartA}\n \n \n {ResultPartB}\n \n \n {ResultPartC}\n \n \n )\n }\n\n const SurnamesRanKtop100 = () => {\n let Ranking100 = [];\n let RankingTemp = [];\n\n if (isMobile || isTablet) {\n for (let i = 0; i < 100; i++) {\n RankingTemp.push(\n \n {i+1}.\n {top20FamilyName_Names[i]}\n \n )\n if((i+1)%4===0){\n Ranking100.push(\n \n {RankingTemp}\n \n )\n RankingTemp=[];\n }\n }\n }\n else\n {\n for (let i = 0; i < 100; i++) {\n RankingTemp.push(\n \n {i+1}.\n {top20FamilyName_Names[i]}\n \n )\n if((i+1)%10===0){\n Ranking100.push(\n \n {RankingTemp}\n \n )\n RankingTemp=[];\n }\n\n }\n }\n\n return (\n <>\n {Ranking100}\n \n )\n }\n\n const LoopSurnamesRank11to20 = () => {\n\n let Result = [];\n\n for (let i = 10; i < 20; i++) {\n Result.push(\n \n {i + 1}\n {top20FamilyName_Names[i]}\n {formatPrice(top20FamilyName_Counts[i])}\n \n )\n }\n\n return (\n <>\n \n {Result}\n 查看更多排名\n \n \n\n )\n }\n\n useEffect(() => {\n if (generalInfo) {\n setTop20FamilyName_Names(generalInfo.top20FamilyName.map((m: any) => m.name));\n setTop20FamilyName_Counts(generalInfo.top20FamilyName.map((m: any) => m.count));\n }\n\n }, [generalInfo]);\n //\n if (isMobile || isTablet) {\n return (\n <>\n 澳門百家姓\n \n \n \n \n \n ?\n 你知道嗎\n \n \n
澳門百家姓中,
\n
{top20FamilyName_Names[0]}澳門第一大姓
\n
共出現{formatPrice(top20FamilyName_Counts[0])}
\n
\n
\n \n \n \n \n \n \n 澳門百家姓排名\n \n \n \n \n \n \n \n \n \n \n
\n \n );\n }\n else {\n return (\n <>\n 澳門百家姓\n \n \n\n \n \n ?\n 你知道嗎\n \n \n
澳門百家姓中,
\n
{top20FamilyName_Names[0]}澳門第一大姓
\n
共出現{formatPrice(top20FamilyName_Counts[0])}
\n
\n \n \n
\n\n \n \n \n \n\n
\n \n \n \n \n 澳門百家姓排名\n \n \n \n \n \n \n \n \n
\n \n );\n }\n}\n\nexport default Part2;\n","import React, { useEffect, useMemo, useState, useRef } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState } from \"../store\";\nimport { getTop10NamesByYearInfo } from '../slices/storeSlice';\nimport SearchDataChart from \"./SearchDataChart\";\nimport { getSearchNameInfo, setSearchNameInfo } from '../slices/storeSlice';\nimport Swal from 'sweetalert2'\nimport _ from 'lodash'\nimport globalValues from \"../store/globalValues\";\n\n//region style\nconst Subtitle = styled.p`\n text-align: center;\n font-weight: bold;\n color: #064645;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:45px;\n margin-bottom: 16px;\n font-size: 40px;\n `;\n }\n else {\n return css`\n margin-top: 150px;\n margin-bottom: 45px;\n font-size: 50px;\n `;\n }\n }}\n\n`;\n\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: flex-end;\n width: 100%;\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-bottom: 30px;\n `;\n }\n else {\n return css`\n margin-bottom: 60px;\n `;\n }\n }}\n`;\n\nconst Column = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\n\nconst Layer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nconst Part3BackGround = styled.div`\n width: 100%;\n border-radius: 30px;\n background: #cae7e2;\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding:5%;\n `;\n }\n else {\n return css`\n height: 790px;\n `;\n }\n }}\n`;\n\nconst ShareToFriends = styled.div`\n display: flex;\n align-items: center;\n color: rgb(16,107,102);\n \n span {\n padding: 10px 5px;\n border-bottom: 1px solid rgb(16,107,102);\n margin: auto 5px;\n }\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n justify-content: center;\n font-size: 20px;\n padding: 20px 0;\n `;\n }\n else {\n return css`\n justify-content: end;\n padding: 70px 60px;\n font-size: 22px;\n `;\n }\n }\n}\n\n`;\n\nconst ShareIcon = styled.a`\n background-image: url(\"${process.env.PUBLIC_URL}/images/03-share-button.png\");\n width: 25px;\n height: 25px;\n background-size: cover;\n cursor: pointer;\n opacity: 0.9;\n :hover {\n opacity: 1;\n }\n`;\n\n\nconst ShareFriendName = styled.input`\n \n border-radius: 5px;\n font-family: -apple-system,BlinkMacSystemFont,\"Microsoft JhengHei\",\"Microsoft JhengHei UI\",\"Microsoft YaHei\",\"細明體_HKSCS\",\"Kai_MSCS\",\"Ming_MSCS\",\"Ming-MSCS-DSI\";\n border: none;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 60px;\n text-align:center;\n `;\n }\n else {\n return css`\n width: 48px;\n `;\n }\n }\n }\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 5px;\n }\n`;\n\n\nconst BigYellowPerson = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n background-image: url(\"${process.env.PUBLIC_URL}/images/03-yellow-person.png\");\n background-size: cover;\n font-size: 58px;\n color: rgb(28,149,158);\n font-weight: bold;\n cursor: pointer;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 180px;\n height: 216px;\n div:first-child {\n margin-top: 42px;\n font-size: 48px;\n }\n \n div:nth-child(2) {\n margin-top: 58px;\n }\n `;\n }\n else {\n return css`\n width: 258px;\n height: 310px;\n div:first-child {\n margin-top:65px;\n }\n \n div:nth-child(2) {\n margin-top:90px;\n }\n `;\n }\n }}\n`;\n\nconst BigGreenPerson = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n background-image: url(\"${process.env.PUBLIC_URL}/images/03-green-person.png\");\n background-size: 100%;\n background-repeat: no-repeat;\n font-size: 26px;\n color: white;\n font-weight: bold;\n cursor: pointer;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 60px;\n height: 79px;\n margin:0 4px;\n div:first-child {\n margin-top: 14px;\n font-size: 16px;\n }\n \n div:nth-child(2) {\n margin-top: 18px;\n font-size: 20px;\n }\n `;\n }\n else {\n return css`\n width: 108px;\n height: 130px;\n margin-right:12px;\n div:first-child {\n margin-top: 27px;\n }\n \n div:nth-child(2) {\n margin-top: 34px;\n font-size: 34px;\n }\n `;\n }\n }}\n\n\n`;\n\nconst PersonContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n font-size: 18px;\n color: rgb(101,177,165);\n div {\n margin-top:10px;\n }\n span {\n font-size: 14px;\n }\n`;\n\nconst YearSelecterContainer = styled.select`\n margin: 0 5% 16px 5%;\n width: 90%;\n height: 48px;\n border-radius: 10px;\n border: none;\n font-size: 18px;\n font-weight: bold;\n padding-left: 32px;\n background: url(\"${process.env.PUBLIC_URL}/images/arrow.png\") no-repeat scroll right center white;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 10px;\n }\n`;\n\nconst YearSelecterText = styled.p`\n color: #106b64;\n font-size: 28px;\n font-weight: bold;\n text-align: center;\n`;\n\n\n//endregion\n\n\n//region style\nconst SearchContainer = styled.div`\n z-index: 999;\n top: 0;\n position: fixed;\n background: linear-gradient(180deg, rgba(255,255,255,1) 0%, rgba(255,255,255,1) 80%, rgba(255,255,255,0) 100%);\n width: 100%;\n \n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-top: 0;\n position: relative;\n `;\n }\n else\n {\n return css`\n padding-top: 30px;\n `;\n }\n }}\n`;\n\nconst FBbuttonContainer = styled.div`\n transform: scale(1.2,1.2);\n display: flex;\n justify-content: center;\n align-items: center;\n &.top-bar-inner{\n margin-left: auto;\n margin-right: 30px;\n }\n`;\n\nconst ChartBG = styled.div`\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n display:flex;\n flex-direction: column;\n min-height:100%;\n `;\n }\n else {\n return css`\n width: 820px;\n height: 90%;\n `;\n }\n }}\n`;\n\nconst BGTopLayer = styled.div`\n display: flex;\n width: 100%;\n position:relative;\n`;\n\nconst BGTriangle = styled.div`\n //background-color: #2ab193;\n width: 90px;\n height: 90px;\n -webkit-clip-path: polygon(0 0, 0% 100%, 100% 100%);\n clip-path: polygon(0 0, 0% 100%, 100% 100%);\n`;\n\nconst BGSquare = styled.div`\n display: flex;\n align-items: center;\n //background-color: #2ab193;\n height: 90px;\n flex: 1;\n\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-left:20px;\n `;\n }\n else {\n return css`\n padding-left:40px;\n padding-top:10px;\n `;\n }\n }}\n`;\n\nconst TableContent = styled.div`\n //background-color: #2ab193;\n height: 100%;\n padding:0 30px 30px 30px;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 0 10px 30px 10px;\n flex:1;\n `;\n }\n else {\n return css`\n width: 820px;\n height: 640px;\n\n `;\n }\n }}\n`;\n\nconst LeftCornerYear = styled.div`\n width: 90px;\n height: 34px;\n background-color: rgb(15,92,72);\n border-radius: 17px;\n display:flex;\n justify-content: center;\n align-items: center;\n color: white;\n font-size:16px;\n`;\n\nconst CloseClick = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/popUp-close.png\");\n width: 20px;\n height: 20px;\n background-size: cover;\n cursor: pointer;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n position: absolute;\n right: 15px;\n top: 20px;\n `;\n }\n else {\n return css`\n `;\n }\n }}\n //position: absolute;\n //right: 15px;\n //top: 20px;\n //transform: translate3d(-30px, 30px , 1px);\n //float: right;\n \n`;\n\nconst ChartContainer = styled.div`\n z-index: 999;\n //position: fixed;\n transition: 0.3s all ease-in-out;\n //left: 50%;\n //transform: translateX(-50%);\n background-color: white;\n box-shadow: 0 -5px 40px rgba(0, 0, 0, 0.3);\n flex:1;\n overflow-y:auto;\n overflow-x:hidden;\n border-radius: 5px;\n overscroll-behavior: contain;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n //top:5%;\n //min-width:350px;\n min-height: 350px;\n `;\n }\n else {\n return css`\n //top:5vh;\n max-width:980px;\n min-height:300px;\n `;\n }\n }}\n`;\n\nconst Mask = styled.div`\n background-color: rgba(255, 255, 255, 0.5);\n overflow: hidden;\n position: fixed;\n left: 0px;\n top: 0px;\n z-index: 998;\n display: block;\n width: 100%;\n height: 100%;\n backdrop-filter: blur(6px);\n transition: 0.3s all ease-in-out;\n`;\n\nconst ResultYearSelector = styled.select`\nappearance:none;\n-moz-appearance:none;\n-webkit-appearance:none;\nselect::-ms-expand { display: none; };\n border: none;\n color: white;\n background-color: rgb(4,106,92);\n background:url(\"${process.env.PUBLIC_URL}/images/arrow2.png\") 90% 50% no-repeat scroll rgb(4,106,92);\n width: 180px;\n height: 40px;\n border-radius: 30px;\n font-size:30px;\n display: flex;\n text-align:center;\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 30px;\n }\n`;\n\nconst ChartTopBar = styled.div`\n display: flex;\n justify-content: space-between;\n height:80px;\n padding:35px 50px 0 50px;\n align-items: center;\n`;\n\n//endregion\n\n\nfunction Part3(_props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const dispatch = useDispatch();\n const MIN = globalValues.minYear;\n const MAX = globalValues.maxYear;\n let year = MAX;\n\n const YearSelecter = () => {\n const [value, setValue] = useState(MAX);\n const firstUpdate = useRef(true);\n\n useMemo(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n dispatch(getTop10NamesByYearInfo({ year: value }));\n year=value;\n }, [value])\n\n const Options = () => {\n let Result = [];\n for (let i = MAX; i >= MIN; i--) {\n Result.push(\n \n );\n }\n return (\n <>\n {Result}\n \n );\n }\n\n return (\n <>\n 請選擇年份\n setValue(parseInt(e.target.value))}>\n \n \n \n\n )\n\n }\n\n const YearSilder = () => {\n const [value, setValue] = useState(MAX);\n const StepPerMove = 945 / (MAX - MIN);\n const [move, setMove] = useState(0);\n const [yearNeedtoGet, setYearNeedtoGet] = useState(MAX);\n const firstUpdate = useRef(true);\n\n useEffect(() => {\n changePosition();\n }, [value]);\n\n const changePosition = () => {\n setMove(StepPerMove * (MAX - value));\n };\n\n const changeYear = (event: React.ChangeEvent) => {\n setValue(parseInt(event.target.value));\n };\n\n useMemo(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n dispatch(getTop10NamesByYearInfo({ year: value }));\n }, [value])\n\n const getData = () => {\n setYearNeedtoGet(value)\n year=value;\n }\n\n return (\n <>\n
{value}
\n
\n
\n \n
\n
\n
\n

{MIN}

\n

{MAX}

\n
\n \n );\n };\n\n const YearChangeOptions = () => {\n let Result = [];\n\n for (let i = MAX; i >= MIN; i--) {\n Result.push(\n \n );\n }\n return (\n <>\n {Result}\n \n );\n }\n\n function formatNumber(Number: any) {\n return String(Number).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\n const LoopName = () => {\n const top10NamesByYearInfo: any = useSelector((state: RootState) => state.storeSlice.top10NamesByYearInfo);\n const [top10NameByYear_Names, setTop10NameByYear_Names] = useState([]);\n const [top10NameByYear_Counts, setTop10NameByYear_Counts] = useState(new Array(10).fill(0));\n const [friendName, setFriendName] = useState('');\n const [DisplayClassName, setDisplayClassName] = useState(\"Off\");\n\n useEffect(() => {\n if (top10NamesByYearInfo) {\n setTop10NameByYear_Names(top10NamesByYearInfo.top10NamesByYear.map((m: any) => m.name));\n setTop10NameByYear_Counts(top10NamesByYearInfo.top10NamesByYear.map((m: any) => m.count));\n setFriendName(top10NamesByYearInfo.top10NamesByYear[0].name);\n }\n }, [top10NamesByYearInfo]);\n\n let ResultPartA = [];\n let ResultPartB = [];\n let ResultPartC = [];\n\n function isChinese(input: string) {\n const pattern = new RegExp(\"[\\u4E00-\\u9FFF]\");\n const pattern0 = new RegExp(\"[\\u3000-\\u4DFF]\");\n const pattern2 = new RegExp(\"[\\uE007-\\uF6E0]\");\n\n let i = 0;\n let result = false;\n while (i < [...input].length) {\n if (pattern.test([...input][i])){\n i++\n }\n else if (pattern0.test([...input][i])){\n i++\n }\n else if (pattern2.test([...input][i])){\n i++\n }\n else\n return result\n }\n result = true\n return result\n\n //if(pattern.test(input))\n // return true //中文\n //return false //不是中文\n }\n const Toast = Swal.mixin({\n toast: false,\n showCloseButton: true,\n target:'root',\n position: 'center',\n showConfirmButton: false,\n timer: 2000,\n timerProgressBar: true,\n didOpen: (toast) => {\n toast.addEventListener('mousedown', Swal.clickConfirm)\n }\n })\n\n\n function customAlert(text: string) {\n Toast.fire({\n icon: 'warning',\n title: text\n })\n }\n\n const open = (name: string) => {\n if (!isChinese(name)) {\n if (isMobile || isTablet){\n alert(\"請輸入中文名字\")\n\n }\n else{\n customAlert(\"請輸入中文名字\")\n }\n document.getElementById(\"ShareName\")?.focus();\n }\n else if (name.length===0) {\n if (isMobile || isTablet){\n alert(\"請輸入名字\")\n }\n else{\n customAlert(\"請輸入名字\")\n }\n document.getElementById(\"ShareName\")?.focus();\n }\n else if (year > MAX || year < MIN) {\n if (isMobile || isTablet){\n alert(\"請選擇正確時期\")\n }\n else{\n customAlert(\"請選擇正確時期\")\n }\n }\n else if (name.length > 6) {\n if (isMobile || isTablet){\n alert(\"請檢查名字長度\")\n }\n else{\n customAlert(\"請檢查名字長度\")\n }\n document.getElementById(\"ShareName\")?.focus();\n }\n else {\n dispatch(getSearchNameInfo({ year: year, familyName: '', name: name }));\n setDisplayClassName('On');\n }\n };\n\n const setFriendNameAndSerach =(inputName: any) => {\n setFriendName(inputName);\n open(inputName);\n }\n\n const SerachName =() => {\n open(friendName);\n }\n\n const ShareFriendNameEnter = (event: any) => {\n if (event.key === \"Enter\") {\n event.stopPropagation();\n SerachName()\n }\n }\n\n const close = () => {\n setDisplayClassName('Off');\n dispatch(setSearchNameInfo(null));\n };\n\n const [displayValue, SetDisplayValue] = useState(MAX);\n\n const changeYear = (targetValue: any) => {\n SetDisplayValue(targetValue);\n year=targetValue;\n dispatch(getSearchNameInfo({ year: targetValue, familyName: \"\", name: friendName }));\n };\n\n\n const YearSelecter=()=>{\n return(\n changeYear(parseInt(e.target.value))}>\n \n \n )\n };\n\n let origin=window.location.origin;\n let encodeURI_url=\"\";\n let URL = origin+\"/\" + process.env.PUBLIC_URL + \"?GivenName=\" + friendName + \"&Year=\" + displayValue;\n encodeURI_url = encodeURIComponent(URL)\n\n const FBshareButton = () => {\n return (\n // \n \n \n \n )\n }\n\n ResultPartA.push(\n \n setFriendNameAndSerach(top10NameByYear_Names[0])} onMouseOver={() => setFriendName(top10NameByYear_Names[0])}>\n
{top10NameByYear_Names[0]}
\n
1
\n
\n
{formatNumber(top10NameByYear_Counts[0])}
\n
\n )\n\n for (let i = 1; i < 6; i++) {\n ResultPartB.push(\n \n setFriendNameAndSerach(top10NameByYear_Names[i])} onMouseOver={() => setFriendName(top10NameByYear_Names[i])}>\n
{top10NameByYear_Names[i]}
\n
{i + 1}
\n
\n
{formatNumber(top10NameByYear_Counts[i])}
\n
\n )\n }\n\n for (let i = 6; i < 10; i++) {\n ResultPartC.push(\n \n setFriendNameAndSerach(top10NameByYear_Names[i])} onMouseOver={() => setFriendName(top10NameByYear_Names[i])}>\n
{top10NameByYear_Names[i]}
\n
{i + 1}
\n
\n
{formatNumber(top10NameByYear_Counts[i])}
\n
\n )\n }\n\n //\n if (isMobile || isTablet) {\n return (\n <>\n \n {ResultPartA}\n \n \n
分享給你身邊叫 ShareFriendNameEnter(event)} type=\"text\" id='ShareName' value={friendName} onChange={e => setFriendName(e.target.value)}/>的朋友吧!
\n SerachName()}/>\n
\n \n \n \n {ResultPartB}\n \n \n {ResultPartC}\n \n \n \n {/**/}\n
\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n {/*
*/}\n \n );\n }\n else {\n return (\n <>\n \n
分享給你身邊叫 ShareFriendNameEnter(event)} type=\"text\" id='ShareName' value={friendName} onChange={e => setFriendName(e.target.value)}/>的朋友吧!
\n SerachName()}/>\n
\n \n \n {ResultPartA}\n \n \n \n {ResultPartB}\n \n \n {ResultPartC}\n \n \n \n {/**/}\n
\n \n \n changeYear(parseInt(e.target.value))}>\n \n \n \n \n \n \n \n \n \n \n
\n {/*
*/}\n \n );\n }\n }\n\n useEffect(() => {\n }, []);\n\n\n if (isMobile || isTablet) {\n return (\n <>\n 全澳最常用名字\n \n \n \n \n \n );\n\n }\n else {\n return (\n <>\n 全澳最常用名字\n \n \n \n \n \n );\n }\n\n}\n\nexport default Part3;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport ReactECharts from 'echarts-for-react';\nimport styled, { css } from \"styled-components\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState } from \"../store\";\nimport ReactDOMServer from 'react-dom/server';\nimport { getTop10NameWordsByYearInfo } from '../slices/storeSlice';\nimport globalValues from \"../store/globalValues\";\n\n//region style\nconst Subtitle = styled.p`\n text-align: center;\n font-weight: bold;\n color: #064645;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:45px;\n margin-bottom: 16px;\n font-size: 40px;\n `;\n }\n else {\n return css`\n margin-top: 150px;\n margin-bottom: 45px;\n font-size: 50px;\n `;\n }\n }}\n\n`;\n\nconst HiddenDiv = styled.div`\nposition: absolute;\ntop: -20px;\nbackground-color: black;\ncolor: white;\nheight: 118px;\nwidth: 170px;\nopacity: 0.8;\n`;\n\nconst HiddenDivName = styled.div`\n display: flex;\n line-height: normal;\n font-size: 18px;\n margin: 16px 0 10px 16px;\n `;\n\nconst HiddenDivInfo = styled.div`\n display: flex;\n padding: 0 16px;\n font-family: Arial,Helvetica Neue,Helvetica,sans-serif;\n `;\n\nconst HiddenDivText = styled.div`\n line-height: normal;\n font-size: 14px;\n opacity: 0.9;\n `;\n\nconst HiddenDivShowTimes = styled.div`\n width:100px;\n text-align:start;\n `;\n\nconst HiddenDivNumber = styled.div`\n text-align: start;\n line-height: normal;\n font-size: 30px;\n font-weight: bold;\n letter-spacing: 3px;\n margin-top: 4px;\n `;\n\nconst HiddenDivRank = styled.div`\n display: flex;\n justify-content: center;\n flex-direction: column;\n \n padding-left: 5px;\n border-left: 1px dashed white;\n `;\n\nconst Top1to3 = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/04-yellow-frag.png\");\n background-size: cover;\n display: flex;\n justify-content: center;\n align-items: center;\n font-weight: bold;\n line-height: 0;\n color: white;\n width: 22px;\n height: 26px;\n font-size: 18px;\n margin: 0 1px;\n`;\n\nconst Top3to10 = styled.div`\n background-color: #c6c8c5;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n line-height: 0;\n width: 24px;\n height: 24px;\n font-size: 15px;\n`;\n\nconst Rank = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n height: 48px;\n padding-bottom:8px;\n`;\n\nconst RankContainer = styled.div` \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-right:5%;\n `;\n }\n else {\n return css`\n padding-right:40px;\n `;\n }\n }}\n`;\n\nconst Container = styled.div`\n display: flex;\n`;\n\nconst ChartContainer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n padding-top:70px;\n padding-bottom:20px;\n`;\nconst Part4BackGround = styled.div`\n width: 100%;\n border-radius: 30px;\n background: #cae7e2;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding:5%;\n `;\n }\n else {\n return css`\n height: 770px;\n `;\n }\n }}\n`;\n\nconst YearSelecterContainer = styled.select`\n margin: 0 5% 16px 5%;\n width: 90%;\n height: 48px;\n border-radius: 10px;\n border: none;\n font-size: 18px;\n font-weight: bold;\n padding-left: 32px;\n background: url(\"${process.env.PUBLIC_URL}/images/arrow.png\") no-repeat scroll right center white;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 10px;\n }\n`;\n\nconst YearSelecterText = styled.p`\n color: #106b64;\n font-size: 28px;\n font-weight: bold;\n text-align: center;\n`;\n\n//endregion\n\nfunction Part4(props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const dispatch = useDispatch();\n const MIN = globalValues.minYear;\n const MAX = globalValues.maxYear;\n\n const YearSelecter = () => {\n const [value, setValue] = useState(MAX);\n const firstUpdate = useRef(true);\n\n useMemo(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n dispatch(getTop10NameWordsByYearInfo({ year: value }));\n }, [value])\n\n const Options = () => {\n let Result = [];\n for (let i = MAX; i >= MIN; i--) {\n Result.push(\n \n );\n }\n return (\n <>\n {Result}\n \n );\n }\n\n return (\n <>\n 請選擇年份\n setValue(parseInt(e.target.value))}>\n \n \n \n\n )\n\n }\n\n const YearSilder = () => {\n const StepPerMove = 945 / (MAX - MIN);\n\n const [move, setMove] = useState(0);\n const [value, setValue] = useState(MAX);\n const [yearNeedtoGet, setYearNeedtoGet] = useState(MAX);\n const firstUpdate = useRef(true);\n\n useEffect(() => {\n changePosition();\n }, [value]);\n\n const changePosition = () => {\n setMove(StepPerMove * (MAX - value));\n };\n\n const changeYear = (event: React.ChangeEvent) => {\n setValue(parseInt(event.target.value));\n };\n\n useMemo(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n dispatch(getTop10NameWordsByYearInfo({ year: value }));\n }, [value])\n\n const getData = () => {\n setYearNeedtoGet(value)\n }\n\n return (\n <>\n
{value}
\n
\n
\n \n
\n
\n
\n

{MIN}

\n

{MAX}

\n
\n \n );\n };\n\n\n const Part4DataChart: React.FC = () => {\n const [lastNameArray, setLastNameArray] = useState([]);\n const [valueIntArray, setValueIntArray] = useState([]);\n const Symbol = 'image://data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEkAAAA4CAYAAACxDdW4AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAATsSURBVHhe7ZpNaBtHFMfnza7ilEJl3xwcGkN9KRSq3HooqXtOob4VSiEm7aHBDcgH22pxQCUmUaxDBK5pDwl1jz2UGnouTUJ7rm+l0BQHYvBNVi8O0Wqn742e3FrS7o72Q5uF/YGY91ZIs/vfN29m5y2ICMx8sf0BSPccu8K2nR/3q8tP2E2NZr0yL4VbEq6c1Aeke+QKuTe1Unug/REZWaTz61tlAbCmlJjmQ/04INRvKNiVcQrWvF2ZlbaoCqUW0C12jw7Qws+O24HG1Oe1/e6hYIxFoqjBO/IN/qR7d4JRKNajpxvX59lPjFZ9tYy9VdH0EqefFggov7Ja22HfFyORZm5s38M7dBXNEMNTHRVsp5RUVLXqlR08tyvsjgbAd8WV2iJ7nkhuPTm3vnUbT+JjNEPmL5hsO4U/2ImV1uZaI7RABP62dadCEeiL74VPV79+23I6j9AMKdD/gb2DjaWL7ERGJ2elfmE3Ei7Au35J3TeSLMf5CZsYBCJUSSf9mJBKGOUTE0BhwvfBUySdqM2TtBk4K7IViX/urOIMpi6wGxmcYN6hyGR3AO9IkqLCVmzQsoGGMLuhUVLSNB8rOHQ9/9NnuKk32IgVq+MGziZB4J0vsRkbSoDnf/rlJJvbWAHlzrEZGozIN9mMDRpybA7gm7iTAO/YeTYzw9hFAhAvs5kZxi4SjpU/2coMfiI53MaKAvkXm5nBT6REnrU6loxtETguPEXCbP8VmzGijg6r135lJzN4ivR043qDLordWMDnmy/ZzBT+iduVn7IVGZzVDrvCZw9fkQ5uLX2PV3ef3Sgc21b7LbYzh38kIQc3lz6JKNRxwW6//iLsfYclUCSChMJEvozmqMuCx1kXiDASiaB8ghc8h88Vu+gGifWYRD3Y+Gwu6wIRI2+o6d1KepJX6pIS4lX8A4u/Qlccozi/Y7ubZJL22nIFUNMKxCye07RSp/fC8LsjPMFDUGIfvzvkw6cortWG/y+3gXAx4EM0X+oeCYRE+7tjW4tJro2ad8uT8vnZMl7JInZpuBEHT/DsdtwzzxpTy43AZU6gSLTlik/udTQjbJ3AXsF+vhD30NMRBYq2hE1LSf208PfV4sqmb9T7ijSzvo1DJ7YNLke48JFeVkSEosdyJh7Eta+EQfBQFZ4teEXVUJFmq3cvcBnIdGiZg8sJvawISXNzpSSFpMpG2OjxouUKd35qtb7H/gkDIiUqUI+QQiUoUI+W24FSfwl8YAmAAv2MTXICEUpd7VZjzNFDDPQOQlICEUXLVrvUF/uaUyLpaq0Qr3W9RAEh1bdsGyHbE9Uk9rb7oT6oL3Y1J8ONhxltiCVSABgGrqkemrxQEWe11hTMTxd7+ekkktrtAk2DYxOIwFnlEt0cdj0JqrAmAea+kz7/G24g3mNrnEC7c+YG20Oh944w4jzLPQnyPvVNhhaJk+hYo6gHCnCZzaFISSvpdJC2q6u6WiSQ7jVq04BK32wOBZ/FEn8JzAuluuV0LRI+ZCU+a/jh97ZJSkNN0+ubcxJMdNt0UCCHvnfQywlpoh+g2U528RiA5/sBtkhdJOGcxVV+TiC5SAbkIhmQi2RALpIBuUgG5CIZkItkQC6SAblIBuQiGZCLZEAukgG5SAbkIhmQi2SArrvNrG81tZcWIH8YVvamsjYIK9WXUZXolP8F8JWbdC/dD40AAAAASUVORK5CYII=';\n let options;\n if (isMobile || isTablet) {\n options = {\n textStyle: {\n fontFamily: 'Arial',\n },\n legend: {\n show: false\n },\n tooltip: {\n trigger: 'axis',\n transitionDuration :0.1,\n backgroundColor: \"rgba(255,255,255,0)\",\n borderColor :'#FFF',\n borderWidth:0,\n padding: 0,\n borderRadius:0,\n axisPointer: {\n type: 'shadow'\n },\n textStyle: {\n color: \"#FFF\",\n fontSize: 20\n },\n formatter: function (params: any) {\n const htmlString = ReactDOMServer.renderToStaticMarkup(\n \n {params[0].axisValue}\n \n \n 出現次數\n {params[0].value}\n \n \n 排名\n {params[0].dataIndex + 1}\n \n \n \n );\n\n return htmlString\n },\n },\n grid: {\n containLabel: true,\n top: 0,\n bottom: 0,\n left: 0,\n right: -75\n },\n yAxis: [\n {\n type: 'category',\n data: lastNameArray,\n inverse: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n margin: 15,\n fontSize: 22,\n fontWeight: 'bold',\n color: 'black'\n }\n }\n ,\n {\n type: 'category',\n data: valueIntArray,\n inverse: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n align: 'right',\n margin: 100,\n fontSize: 20,\n color: 'black',\n fontWeight: 'bold',\n formatter: function (value: any) {\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + '{SmallSize|人}'\n },\n rich: {\n SmallSize: {\n fontWeight: 'bold',\n verticalAlign: 'bottom',\n fontSize: 16\n }\n }\n },\n }\n ],\n xAxis: {\n type: 'value',\n splitLine: { show: false },\n axisLabel: { show: false },\n axisTick: { show: false },\n axisLine: { show: false }\n },\n series: [\n {\n hoverAnimation: false,\n type: 'pictorialBar',\n data: valueIntArray,\n barWidth: '30',\n symbol: Symbol,\n symbolRepeat: true,\n symbolMargin: '3',\n symbolSize: ['90%', '70%'],\n\n }\n ]\n };\n }\n else{\n options = {\n textStyle: {\n fontFamily: 'Arial',\n },\n legend: {\n show: false\n },\n tooltip: {\n trigger: 'axis',\n transitionDuration :0.1,\n backgroundColor: \"rgba(255,255,255,0)\",\n borderColor :'#FFF',\n borderWidth:0,\n padding: 0,\n borderRadius:0,\n axisPointer: {\n type: 'shadow'\n },\n textStyle: {\n color: \"#FFF\",\n fontSize: 20\n },\n formatter: function (params: any) {\n const htmlString = ReactDOMServer.renderToStaticMarkup(\n \n {params[0].axisValue}\n \n \n 出現次數\n {params[0].value}\n \n \n 排名\n {params[0].dataIndex + 1}\n \n \n \n );\n\n return htmlString\n },\n },\n grid: {\n containLabel: true,\n top: 0,\n bottom: 0,\n left: 0,\n right: -100\n },\n yAxis: [\n {\n type: 'category',\n data: lastNameArray,\n inverse: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n margin: 40,\n fontSize: 28,\n fontWeight: 'bold',\n color: 'black'\n }\n }\n ,\n {\n type: 'category',\n data: valueIntArray,\n inverse: true,\n axisLine: { show: false },\n axisTick: { show: false },\n axisLabel: {\n align: 'right',\n margin: 180,\n fontSize: 28,\n color: 'black',\n fontWeight: 'bold',\n formatter: function (value: any) {\n return String(value).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',') + '{SmallSize|人}'\n },\n rich: {\n SmallSize: {\n fontWeight: 'bold',\n verticalAlign: 'bottom',\n fontSize: 18\n }\n }\n },\n }\n ],\n xAxis: {\n type: 'value',\n splitLine: { show: false },\n axisLabel: { show: false },\n axisTick: { show: false },\n axisLine: { show: false }\n },\n series: [\n {\n hoverAnimation: false,\n type: 'pictorialBar',\n data: valueIntArray,\n barWidth: '40',\n symbol: Symbol,\n symbolRepeat: true,\n symbolMargin: '6%',\n symbolSize: ['90%', '70%'],\n symbolOffset: [0, '-8%']\n }\n ]\n };\n }\n const top10NameWordsByYearInfo: any = useSelector((state: RootState) => state.storeSlice.top10NameWordsByYearInfo);\n\n useEffect(() => {\n if (top10NameWordsByYearInfo) {\n setLastNameArray(top10NameWordsByYearInfo.top10NameWordsByYear.map((m: any) => m.name));\n setValueIntArray(top10NameWordsByYearInfo.top10NameWordsByYear.map((m: any) => m.count));\n }\n }, [top10NameWordsByYearInfo]);\n\n if (isMobile || isTablet) {\n return (\n \n \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n \n \n \n )\n }\n else{\n return (\n \n \n 1\n 2\n 3\n 4\n 5\n 6\n 7\n 8\n 9\n 10\n \n \n \n )\n }\n }\n\n useEffect(() => {\n }, []);\n //\n\n if (isMobile || isTablet) {\n return (\n <>\n 全澳最常用名字單字\n \n \n \n \n \n\n );\n }\n else{\n return (\n <>\n 全澳最常用名字單字\n \n \n \n \n \n \n \n );\n }\n}\n\nexport default Part4;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { RootState, AppDispatch } from \"../store\";\nimport { getTop5NewBornNameWordsByYearInfo } from '../slices/storeSlice';\nimport { useShallowEqualSelector } from \"../modules/hooks\"\nimport globalValues from \"../store/globalValues\";\n\n//region style\nconst Subtitle = styled.p`\n text-align: center;\n font-weight: bold;\n color: #064645;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:45px;\n margin-bottom: 16px;\n font-size: 40px;\n `;\n }\n else {\n return css`\n margin-top: 150px;\n margin-bottom: 45px;\n font-size: 50px;\n `;\n }\n }}\n\n`;\nconst Container = styled.div`\n display: flex;\n justify-content: center;\n align-items: flex-end;\n margin-top: 60px;\n margin-bottom: 55px;\n`;\n\nconst Column = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n`;\n\nconst Part5BackGround = styled.div`\n width: 100%;\n border-radius: 30px;\n background: #cae7e2;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 10px;\n `;\n }\n else {\n return css`\n height: 970px;\n `;\n }\n }}\n \n`;\n\nconst Part5Dialog = styled.div`\n \n border-radius: 40px 40px 0 40px;\n background-color: white;\n position: relative;\n display: flex;\n color: #106b64;\n \n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n flex-direction: column;\n width: 100%;\n border-radius: 40px;\n font-size: 22px;\n span{\n font-size: 40px;\n font-weight: bold;\n color: #1b969e;\n }\n `;\n }\n else {\n return css`\n margin-top: 85px;\n width: 900px;\n height: 248px;\n justify-content: center;\n align-items: center;\n font-size: 30px;\n span{\n font-size: 50px;\n font-weight: bold;\n color: #1b969e;\n }\n `;\n }\n }}\n\n `;\n\nconst Part5DialogLeftDiv = styled.div`\n\n${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-top:30px;\n margin:10px 15px;\n div {\n margin-bottom: 10px;\n }\n `;\n }\n else {\n return css`\n display: flex;\n flex-direction: column;\n padding-right: 50px;\n div{\n margin-bottom:24px;\n }\n `;\n }\n}}\n\n\n\n\n\n `;\n\nconst Part5DialogRightDiv = styled.div`\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin:15px;\n border-top: 2px dashed rgb(135,180,177);\n padding:20px 0 10px 0;\n div {\n margin-bottom: 10px;\n }\n `;\n \n }\n else {\n return css`\n padding-left: 55px;\n display: flex;\n justify-content: center;\n flex-direction: column;\n border-left: 2px dashed rgb(135,180,177);\n \n div {\n margin-bottom: 24px;\n }\n \n `;\n }\n }}\n \n\n `;\n\nconst Part5YellowBottle = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/05-yellow-bottle.png\");\n background-size: cover;\n \n color: rgb(28,149,158);\n font-weight: bold;\n margin: 0 42px;\n position: relative;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 140px;\n height: 240px;\n font-size: 40px;\n\n div:first-child {\n margin-top: 12px;\n margin-left: 2px;\n }\n \n div:nth-child(2) {\n margin-left: 76px;\n margin-top: 98px;\n }\n\n `;\n }\n else {\n return css`\n width: 159px;\n height: 274px;\n font-size: 44px;\n\n div:first-child {\n margin-top: 12px;\n margin-left: 4px;\n }\n \n div:nth-child(2) {\n margin-left: 80px;\n margin-top: 120px;\n }\n\n `;\n }\n }}\n\n\n `;\n\nconst Part5BottleNumber = styled.div`\n margin-top: 10px;\n color: rgb(101,177,165);\n font-size: 18px;\n\n span {\n font-size: 14px;\n }\n\n `;\n\nconst Part5GreenBottle = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/05-green-bottle.png\");\n background-size: cover;\n font-size: 38px;\n color: rgb(45,119,106);\n font-weight: bold;\n margin: 0 8px;\n position: relative;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 72px;\n height: 123px;\n\n div:first-child {\n margin-top: 4px;\n font-size: 22px;\n }\n\n div:nth-child(2) {\n margin-left: 32px;\n margin-top: 48px;\n color: white;\n font-size: 32px;\n }\n\n `;\n }\n else {\n return css`\n width: 124px;\n height: 212px;\n\n div:first-child {\n margin-top: 10px;\n margin-left: 2px; \n font-size: 30px;\n }\n\n div:nth-child(2) {\n margin-left: 58px;\n margin-top: 86px;\n color: white;\n }\n\n `;\n }\n }}\n\n `;\n\nconst Part5DialogTriangle = styled.div`\n width: 0;\n height: 0;\n border-style: solid;\n border-width: 45px 0 0 45px;\n border-color: transparent transparent transparent #ffffff;\n position: absolute;\n bottom: 0;\n right: -45px;\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n display: none;\n `\n }\n }}\n`;\n\nconst Part5DialogSmileFace = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/02-dialog-smile.png\");\n border-radius: 0 40px 40px 0;\n width: 64px;\n height: 64px;\n background-size: cover;\n position: absolute;\n top: 0;\n right: 0;\n`;\n\nconst YearSelecterContainer = styled.select`\n margin: 0 5% 16px 5%;\n width: 90%;\n height: 48px;\n border-radius: 10px;\n border: none;\n font-size: 18px;\n font-weight: bold;\n padding-left: 32px;\n background: url(\"${process.env.PUBLIC_URL}/images/arrow.png\") no-repeat scroll right center white;\n appearance: none;\n -moz-appearance: none;\n -webkit-appearance: none;\n :focus-visible {\n outline: 2px dashed #cae7e2;\n border-radius: 10px;\n }\n`;\n\nconst YearSelecterText = styled.p`\n color: #106b64;\n font-size: 28px;\n font-weight: bold;\n text-align: center;\n`;\n\n//endregion\n\nfunction Part5(props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const dispatch = useDispatch();\n const MIN = globalValues.minYear;\n const MAX = globalValues.maxYear;\n\n const YearSelecter = () => {\n const [value, setValue] = useState(MAX);\n const firstUpdate = useRef(true);\n\n useMemo(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n dispatch(getTop5NewBornNameWordsByYearInfo({ year: value }));\n }, [value])\n\n const Options = () => {\n let Result = [];\n for (let i = MAX; i >= MIN; i--) {\n Result.push(\n \n );\n }\n return (\n <>\n {Result}\n \n );\n }\n\n return (\n <>\n 請選擇年份\n setValue(parseInt(e.target.value))}>\n \n \n \n\n )\n\n }\n\n const YearSilder = () => {\n const StepPerMove = 945 / (MAX - MIN);\n const [move, setMove] = useState(0);\n const [value, setValue] = useState(MAX);\n const [yearNeedtoGet, setYearNeedtoGet] = useState(MAX);\n const firstUpdate = useRef(true);\n\n useEffect(() => {\n changePosition();\n }, [value]);\n\n const changePosition = () => {\n setMove(StepPerMove * (MAX - value));\n };\n\n const changeYear = (event: React.ChangeEvent) => {\n setValue(parseInt(event.target.value));\n };\n\n useMemo(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n\n dispatch(getTop5NewBornNameWordsByYearInfo({ year: value }));\n }, [value])\n\n const getData = () => {\n setYearNeedtoGet(value)\n }\n\n return (\n <>\n
{value}
\n
\n
\n \n
\n
\n
\n

{MIN}

\n

{MAX}

\n
\n \n );\n };\n\n const Dialog =()=>{\n const generalInfo: any = useShallowEqualSelector((state: RootState) => state.storeSlice.generalInfo);\n const [topNewBornNameWord_Words, setTopNewBornNameWord_Words] = useState([]);\n const [top1999NewBornNameWord_Words, setTop1999NewBornNameWord_Words] = useState([]);\n\n useEffect(() => {\n if (generalInfo) {\n setTopNewBornNameWord_Words(generalInfo.topNewBornNameWord.map((m: any) => m.name));\n setTop1999NewBornNameWord_Words(generalInfo.top1999NewBornNameWord.map((m: any) => m.name));\n }\n }, [generalInfo]);\n\n if (isMobile || isTablet) {\n return (\n \n \n
{globalValues.maxYear}年
\n
新生嬰兒最常用名字單字是
\n {topNewBornNameWord_Words[0]}、{topNewBornNameWord_Words[1]}、{topNewBornNameWord_Words[2]}...\n
\n \n
1999年
\n
則是
\n {top1999NewBornNameWord_Words[0]}、{top1999NewBornNameWord_Words[1]}、{top1999NewBornNameWord_Words[2]}...\n
\n \n \n
\n )\n }\n else{\n return (\n \n \n
{globalValues.maxYear}年
\n
新生嬰兒最常用名字單字是
\n {topNewBornNameWord_Words[0]}、{topNewBornNameWord_Words[1]}、{topNewBornNameWord_Words[2]}...\n
\n \n
1999年
\n
則是
\n {top1999NewBornNameWord_Words[0]}、{top1999NewBornNameWord_Words[1]}、{top1999NewBornNameWord_Words[2]}...\n
\n \n \n
\n )\n }\n }\n\n function formatNumber(Number: any) {\n return String(Number).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n const LoopPart5NameWord =()=> {\n let Result = [];\n const [top5NewBornNameWordsByYear_Names, setTop5NewBornNameWordsByYear_Names] = useState([]);\n const [top5NewBornNameWordsByYear_Counts, setTop5NewBornNameWordsByYear_Counts] = useState(new Array(10).fill(0));\n const top5NewBornNameWordsByYearInfo: any = useSelector((state: RootState) => state.storeSlice.top5NewBornNameWordsByYearInfo);\n\n for (let i = 0; i < 5; i++) {\n if(i===0){\n Result.push(\n \n \n
{i+1}
\n
{top5NewBornNameWordsByYear_Names[i]}
\n
\n {formatNumber(top5NewBornNameWordsByYear_Counts[i])}\n
\n )\n }\n else{\n Result.push(\n \n \n
{i+1}
\n
{top5NewBornNameWordsByYear_Names[i]}
\n
\n {formatNumber(top5NewBornNameWordsByYear_Counts[i])}\n
\n )\n }\n }\n\n useEffect(() => {\n if (top5NewBornNameWordsByYearInfo) {\n setTop5NewBornNameWordsByYear_Names(top5NewBornNameWordsByYearInfo.top5NewBornNameWordsByYear.map((m: any) => m.name));\n setTop5NewBornNameWordsByYear_Counts(top5NewBornNameWordsByYearInfo.top5NewBornNameWordsByYear.map((m: any) => m.count));\n }\n }, [top5NewBornNameWordsByYearInfo]);\n\n\n if (isMobile || isTablet) {\n return (\n <>\n \n {Result[0]}\n \n {Result.slice(1)}\n \n \n \n )\n }\n else{\n return (\n \n {Result}\n \n )\n }\n }\n\n if (isMobile || isTablet) {\n return (\n <>\n 新生嬰兒
最常用名字單字
\n \n \n \n \n \n \n \n \n )\n }\n else {\n return (\n <>\n 新生嬰兒最常用名字單字\n \n \n \n \n \n \n \n \n )\n }\n}\n\nexport default Part5;\n","import React, { useEffect , useState } from \"react\";\nimport styled, { css } from \"styled-components\";\nimport { RootState } from \"../store\";\nimport { useShallowEqualSelector } from \"../modules/hooks\"\nimport { useDispatch, useSelector } from \"react-redux\";\n\n//region style\nconst Subtitle = styled.p`\n text-align: center;\n font-weight: bold;\n color: #064645;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:45px;\n margin-bottom: 16px;\n font-size: 40px;\n `;\n }\n else {\n return css`\n margin-top: 150px;\n margin-bottom: 45px;\n font-size: 50px;\n `;\n }\n }}\n\n`;\n\nconst Layer = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n margin: 5px 0;\n`;\n\nconst LayerColumn = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n margin: 5px 0;\n`;\n\n\nconst Part6BackGround = styled.div`\n width: 100%;\n border-radius: 30px;\n background: #cae7e2;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n `;\n }\n else {\n return css`\n height: 880px;\n margin-bottom: 30px;\n `;\n }\n }}\n\n`;\n\nconst Part6Div = styled.div`\n font-size: 31px;\n color: rgb(45,119,106);\n\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 12% 5% 0 5%;\n `;\n }\n else {\n return css`\n padding: 70px 75px 60px 75px;\n `;\n }\n }}\n\n`;\n\nconst Part6Top1Number = styled.div`\n font-size: 60px;\n color: rgb(27,150,157);\n font-weight: bold;\n letter-spacing: 3px;\n padding-left: 23px;\n padding-right: 18px;\n transform: scale(1.15,1);\n display: inline-block;\n `;\n\nconst Part6Top1Name = styled.div`\n font-size: 57px;\n color: rgb(27,150,157);\n font-weight: bold;\n\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top: 30px;\n margin-bottom: 12px;\n `;\n }\n else {\n return css`\n margin-top: 38px;\n margin-bottom: 24px;\n `;\n }\n }}\n `;\n\nconst Part6GreenBar = styled.div`\n height: 82px;\n border-radius: 41px;\n color: white;Part6_G1990\n font-weight: bold;\n background-color: rgb(16,107,102);\n display: flex;\n justify-content: center;\n align-items: center;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:20px;\n font-size: 32px;\n text-align: center;\n padding:0 30px;\n `;\n }\n else {\n return css`\n margin-top:55px;\n margin-bottom:35px;\n font-size: 38px;\n padding:0 40px;\n `;\n }\n }}\n\n `;\n\nconst Part6Separate = styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/06-separate.png\");\n width: 4px;\n height: 25px;\n background-size: cover;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top: 12px;\n `;\n }\n else {\n return css`\n margin-top: 22px;\n `;\n }\n }}\n `;\n\nconst Part6G1990 = styled.div`\n\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-top: 20px;\n padding-bottom: 20px;\n `;\n }\n else {\n return css`\n padding-top: 25px;\n margin-right: 50px;\n `;\n }\n }}\n\n `;\n \nconst Part6G2000 = styled.div`\n \n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n \n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n border-top: 2px dashed rgb(135,180,177);\n border-bottom: 2px dashed rgb(135,180,177);\n padding-top: 20px;\n padding-bottom: 20px;\n `;\n }\n else {\n return css`\n padding: 25px 50px 8px 50px;\n border-left: 2px dashed rgb(135,180,177);\n border-right: 2px dashed rgb(135,180,177);\n `;\n }\n }}\n \n `;\n\nconst Part6G2010 = styled.div`\n display: flex;\n justify-content: center;\n align-items: center;\n flex-direction: column;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding-top: 20px;\n padding-bottom: 20px;\n `;\n }\n else {\n return css`\n padding-top: 25px;\n margin-left: 50px;\n `;\n }\n }}\n\n `;\n\nconst Part6Year = styled.div`\n font-weight: bold;\n letter-spacing: 1px;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-bottom: 20px;\n `;\n }\n else {\n return css`\n margin-bottom: 40px;\n `;\n }\n }}\n\n `;\n\nconst Part6Name = styled.div`\n padding-left: 26px;\n `;\n\nconst Part6Nunmber = styled.div`\n letter-spacing: 1px;\n width: 115px;\n text-align: right;\n\n span{\n font-size: 20px;\n }\n\n `;\n\nconst Part6RankYellow = styled.div`\n height: 25px;\n width: 25px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 16px;\n color: black;\n background-color: rgb(253,200,0);\n `;\n\n const Part6RankGray = styled.div`\n height: 25px;\n width: 25px;\n border-radius: 50%;\n display: flex;\n justify-content: center;\n align-items: center;\n font-size: 16px;\n color: black;\n background-color: rgb(197,199,198);\n `;\n//endregion\n\nfunction Part6(_props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const generalInfo: any = useShallowEqualSelector((state: RootState) => state.storeSlice.generalInfo);\n const [top5Gen90Name_Names, setTop5Gen90Name_Names] = useState([]);\n const [top5Gen90Name_Counts, setTop5Gen90Name_Counts] = useState(new Array(10).fill(0));\n const [top5Gen00Name_Names, setTop5Gen00Name_Names] = useState([]);\n const [top5Gen00Name_Counts, setTop5Gen00Name_Counts] = useState(new Array(10).fill(0));\n const [top5Gen10Name_Names, setTop5Gen10Name_Names] = useState([]);\n const [top5Gen10Name_Counts, setTop5Gen10Name_Counts] = useState(new Array(10).fill(0));\n\n\n function formatNumber(Number: any) {\n return String(Number).replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n }\n\nfunction Part6TableSignleLayer(Rank:any , Name: any , Number: any ) {\n\n let result=[];\n if(Rank<3){\n result.push(\n \n {Rank}\n {Name}\n {formatNumber(Number)}\n \n );\n }\n else{\n result.push(\n \n {Rank}\n {Name}\n {formatNumber(Number)}\n \n );\n }\n\n return result;\n\n}\n\nconst Part6Table = () =>{\n\n let Gen90 = [];\n let Gen00 = [];\n let Gen10 = [];\n\n for (let i = 0; i < 5; i++) {\n Gen90.push(\n Part6TableSignleLayer(i+1,top5Gen90Name_Names[i],top5Gen90Name_Counts[i])\n );\n Gen00.push(\n Part6TableSignleLayer(i+1,top5Gen00Name_Names[i],top5Gen00Name_Counts[i])\n );\n Gen10.push(\n Part6TableSignleLayer(i+1,top5Gen10Name_Names[i],top5Gen10Name_Counts[i])\n );\n }\n\n if (isMobile || isTablet) {\n return (\n \n \n 1990 – 1999\n {Gen90}\n \n \n 2000 – 2009\n {Gen00}\n \n \n 2010 – 2019\n {Gen10}\n \n \n )\n }\n else{\n return (\n \n \n 1990 – 1999\n {Gen90}\n \n \n 2000 – 2009\n {Gen00}\n \n \n 2010 – 2019\n {Gen10}\n \n \n )\n }\n}\n\n useEffect(() => {\n if (generalInfo) {\n setTop5Gen90Name_Names(generalInfo.top5Gen90Name.map((m: any) => m.name));\n setTop5Gen90Name_Counts(generalInfo.top5Gen90Name.map((m: any) => m.count));\n setTop5Gen00Name_Names(generalInfo.top5Gen00Name.map((m: any) => m.name));\n setTop5Gen00Name_Counts(generalInfo.top5Gen00Name.map((m: any) => m.count));\n setTop5Gen10Name_Names(generalInfo.top5Gen10Name.map((m: any) => m.name));\n setTop5Gen10Name_Counts(generalInfo.top5Gen10Name.map((m: any) => m.count));\n }\n }, [generalInfo]);\n\n\n if (isMobile || isTablet) {\n return (\n <>\n 不同年代
最常用的名字
\n \n \n
10後最常用的名字是...
\n {top5Gen10Name_Names[0]}\n
共有{formatNumber(top5Gen10Name_Counts[0])}
\n \n 你的年代
最常用的名字是...
\n \n
\n
\n \n )\n }\n else{\n return (\n <>\n 不同年代最常用的名字\n \n \n
10後最常用的名字是...
\n {top5Gen10Name_Names[0]}\n
共有{formatNumber(top5Gen10Name_Counts[0])}
\n \n 你的年代最常用的名字是...\n \n
\n
\n \n )\n }\n}\n\nexport default Part6;\n","import { useSelector } from \"react-redux\";\nimport styled, { css } from \"styled-components\";\nimport { RootState } from \"../store\";\n\n//region style\nconst Container = styled.div`\n width: 100%;\n\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n margin-top:20px;\n `;\n }\n\n }}\n\n`;\n\nconst Provider = styled.p`\n color: #5d5d5d;\n font-weight: bold;\n margin-block-start: 0;\n margin-block-end: 0;\n line-height:30px;\n text-align:right;\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n font-size: 18px;\n `;\n }\n else {\n return css`\n font-size: 22px;\n `;\n }\n }}\n`;\n\nconst Link = styled.a`\n color: #9cc064;\n background-color: transparent;\n text-decoration: none;\n padding-right: 15px;\n`;\n\n//endregion\n\nfunction DSI(props: any) {\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n\n const UpdateYear = 2025;\n const UpdateMonth = 2;\n\n if (isMobile || isTablet) {\n return (\n \n \n 資料來源:身份證明局\n
\n 註:數據為1990年以來的累計數字\n
\n (更新於{UpdateYear}年{UpdateMonth}月)\n
\n
\n )\n }\n else{\n return (\n \n \n 資料來源:身份證明局\n
\n 註:數據為1990年以來的累計數字(更新於{UpdateYear}年{UpdateMonth}月)\n
\n
\n )\n }\n\n}\n\nexport default DSI;\n","import React, { memo, useEffect , useState} from \"react\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport \"./homePage.scss\";\nimport { RightOutlined } from \"@ant-design/icons\";\nimport styled , { css } from \"styled-components\";\nimport { FormattedMessage } from \"react-intl\";\nimport { getNameStatisticGeneralInfo } from \"../../slices/storeSlice\";\nimport { Lang } from \"../../types/common\";\nimport SearchBar from \"../../containers/SearchBar\";\nimport DSEClogo from \"../../containers/DSEClogo\";\nimport Loading from \"../../containers/Loading\";\nimport Part1 from \"../../containers/Part1\";\nimport Part2 from \"../../containers/Part2\";\nimport Part3 from \"../../containers/Part3\";\nimport Part4 from \"../../containers/Part4\";\nimport Part5 from \"../../containers/Part5\";\nimport Part6 from \"../../containers/Part6\";\nimport DSI from \"../../containers/DSI\";\nimport { RootState, AppDispatch } from \"../../store\";\nimport { useShallowEqualSelector } from \"../../modules/hooks\";\n\n\n//region style\nconst TitleIcon = styled.a`\n background-image: url(\"${process.env.PUBLIC_URL}/images/title.png\");\n background-size: cover;\n cursor: pointer;\n\n ${(props) => {\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n width: 320px;\n height: 82px;\n `;\n }\n else\n {\n return css`\n width: 410px;\n height: 105px;\n `;\n }\n }}\n`;\n\nconst Outline = styled.p`\n font-size: 22px;\n text-align: center;\n font-weight: bold;\n color: #106b64;\n margin-top: 50px;\n margin-bottom: 50px;\n span {\n font-size: 35px;\n }\n ${(props) => {\n\n if (props.theme.isMobile || props.theme.isTablet) {\n return css`\n padding: 0 40px;\n `;\n }\n }}\n`;\n\nconst Subtitle = styled.p`\n text-align: center;\n font-size: 40px;\n font-weight: bold;\n color: #064645;\n margin-top: 150px;\n margin-bottom: 45px;\n`;\n\nconst LoadingContainer = styled.div`\n position: relative;\n min-height: 200px;\n`\n//endregion\n/*\n*/\nfunction HomePage() {\n const generalInfo: any = useShallowEqualSelector((state: RootState) => state.storeSlice.generalInfo);\n return (\n <>\n \n \n \n {\n !generalInfo && \n \n \n }\n {\n generalInfo && <>\n 澳門百家姓、熱門新生嬰兒名字、最常用名字人數···\n \n \n \n \n \n \n \n \n }\n \n );\n}\n\nexport default memo(HomePage);\n","import homePage from './homePage';\n\nexport default homePage;\n","import React, {useEffect, useState} from 'react';\nimport {Helmet} from 'react-helmet-async';\nimport styled, {ThemeProvider} from 'styled-components';\nimport {Router, Route, Switch} from 'react-router-dom';\nimport { useSelector, useDispatch } from \"react-redux\";\nimport theme from './modules/theme';\nimport history from './modules/history';\nimport LayoutPage from './pages/layout';\nimport HomePage from './pages/home';\nimport 'antd/dist/antd.css';\nimport 'swiper/swiper.scss'; // core Swiper\nimport 'swiper/modules/navigation/navigation.scss'; // Navigation module\nimport 'swiper/modules/pagination/pagination.scss'; // Pagination module\nimport './scss/main.scss';\nimport './App.scss';\nimport './scss/CustomBox.scss';\nimport 'sweetalert2/dist/sweetalert2.min.css';\nimport 'react-awesome-lightbox/build/style.css';\nimport { Lang } from './types';\nimport {useUpdateEffect} from \"ahooks\";\nimport { getNameStatisticGeneralInfo, setLang } from \"./slices/storeSlice\";\nimport {IntlProvider, useIntl} from 'react-intl';\nimport {RootState, AppDispatch} from \"./store\";\n\n\n\nconst Background= styled.div`\n background-image: url(\"${process.env.PUBLIC_URL}/images/bg.png\");\n background-repeat: repeat;\n`;\nconst BackgroundMask= styled.div`\n width:100% ;\n height: 100%;\n\tbackground-image: linear-gradient(to bottom, rgba(255, 255, 255, 1) , transparent 100%);\n position:absolute;\n top:0;\n left:0;\n z-index:1;\n`;\n\nconst Main = styled.main`\n height: 100%;\n`;\n\n\n\n\nfunction IntlWrapper(){\n const dispatch: AppDispatch = useDispatch()\n const [locale, setLocale] = useState(undefined)\n const lang: any = useSelector((state: RootState) => state.storeSlice.lang);\n\n useEffect(() => {\n const queryString = window.location.search;\n const urlParams = new URLSearchParams(queryString);\n let paramLang : Lang = (urlParams.get('lang') ? urlParams.get('lang') : 'zh-MO') as Lang;\n dispatch(setLang(paramLang));\n dispatch(getNameStatisticGeneralInfo());\n },[]);\n\n useUpdateEffect(() => {\n const fetchData = async() => {\n const resp = await fetch(`${process.env.PUBLIC_URL}/lang/${lang}.json`)\n const data = await resp.json()\n setLocale(data)\n };\n fetchData().catch(console.error);\n },[lang])\n\n return (\n <>\n {locale ? \n {lang && }\n :
\n }\n \n );\n}\n\nfunction Appication() {\n const intl = useIntl();\n const isMobile: any = useSelector((state: RootState) => state.storeSlice.isMobile);\n const isTablet: any = useSelector((state: RootState) => state.storeSlice.isTablet);\n const lang: any = useSelector((state: RootState) => state.storeSlice.lang);\n\n const theme = {\n isMobile: isMobile,\n isTablet: isTablet,\n isPTEN: (lang==Lang.enUS||lang==Lang.ptPT)? true : false,\n lang: lang\n };\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n}\n\nexport default IntlWrapper;\n\n{/**/\n}\n{/**/\n}\n{/**/\n}\n{/**/\n}\n{/**/\n}\n{/**/\n}\n","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import {keyMirror} from '@gilbarbara/helpers';\n\nexport const ActionTypes = keyMirror({\n GITHUB_GET_REPOS_REQUEST: undefined,\n GITHUB_GET_REPOS_SUCCESS: undefined,\n GITHUB_GET_REPOS_FAILURE: undefined,\n HIDE_ALERT: undefined,\n SHOW_ALERT: undefined,\n USER_LOGIN_REQUEST: undefined,\n USER_LOGIN_SUCCESS: undefined,\n USER_LOGIN_FAILURE: undefined,\n USER_LOGOUT_REQUEST: undefined,\n USER_LOGOUT_SUCCESS: undefined,\n USER_LOGOUT_FAILURE: undefined,\n});\n","import { REHYDRATE } from 'redux-persist';\nimport { createReducer } from '../modules/helpers';\nimport { ActionTypes } from '../literals';\nimport { AppState } from '../types';\n\nexport const appState: AppState = {\n alerts: [],\n};\n\nexport default {\n app: createReducer(\n {\n [REHYDRATE]: draft => {\n draft.alerts = [];\n },\n [ActionTypes.HIDE_ALERT]: (draft, { payload: { id } }) => {\n draft.alerts = draft.alerts.filter(d => d.id !== id);\n },\n [ActionTypes.SHOW_ALERT]: (draft, { payload }) => {\n draft.alerts.push(payload);\n },\n },\n appState,\n ),\n};\n","import { createReducer } from '../modules/helpers';\nimport { ActionTypes } from '../literals';\nimport { UserState, Status } from '../types';\n\nexport const userState = {\n isAuthenticated: false,\n status: Status.IDLE,\n};\n\nexport default {\n user: createReducer(\n {\n [ActionTypes.USER_LOGIN_REQUEST]: draft => {\n draft.status = Status.RUNNING;\n },\n [ActionTypes.USER_LOGIN_SUCCESS]: draft => {\n draft.isAuthenticated = true;\n draft.status = Status.READY;\n },\n [ActionTypes.USER_LOGOUT_REQUEST]: draft => {\n draft.status = Status.RUNNING;\n },\n [ActionTypes.USER_LOGOUT_SUCCESS]: draft => {\n draft.isAuthenticated = false;\n draft.status = Status.IDLE;\n },\n },\n userState,\n ),\n};\n","import app, { appState } from './app';\nimport user, { userState } from './user';\n\nexport const initialState = {\n app: appState,\n user: userState,\n};\n\nexport default {\n ...app,\n ...user,\n};\n","import {createSlice, PayloadAction} from '@reduxjs/toolkit';\nimport { Lang } from '../types';\nimport _ from 'lodash';\nimport reducers from \"../reducers\";\nimport {persistCombineReducers} from \"redux-persist\";\nimport slices from \"./index\";\nimport storage from \"redux-persist/lib/storage\";\nimport { persistReducer } from 'redux-persist';\n\ninterface InitialStateType {\n newsList: Array,\n questionsList: Array,\n infoGraphics: Array,\n posters: Array,\n}\n\nconst initialState = {\n newsList: [],\n questionsList: [],\n infoGraphics: [\n {\n id: 1,\n imgPath: `${process.env.PUBLIC_URL}/images/infographic/infographic1_{lang}.jpg`,\n },{\n id: 2,\n imgPath: `${process.env.PUBLIC_URL}/images/infographic/infographic2_{lang}.jpg`,\n },{\n id: 3,\n imgPath: `${process.env.PUBLIC_URL}/images/infographic/infographic3_{lang}.jpg`,\n },{\n id: 4,\n imgPath: `${process.env.PUBLIC_URL}/images/infographic/infographic4_{lang}.jpg`,\n },{\n id: 5,\n imgPath: `${process.env.PUBLIC_URL}/images/infographic/infographic5_{lang}.jpg`,\n },{\n id: 6,\n imgPath: `${process.env.PUBLIC_URL}/images/infographic/infographic6_{lang}.jpg`,\n }],\n posters: [\n {\n id: 1,\n imgPath: `${process.env.PUBLIC_URL}/images/posters/1_{lang}.jpg`,\n },{\n id: 2,\n imgPath: `${process.env.PUBLIC_URL}/images/posters/2_{lang}.jpg`,\n },{\n id: 3,\n imgPath: `${process.env.PUBLIC_URL}/images/posters/3_{lang}.jpg`,\n }\n ],\n videoLink: (number: any, lang: string) =>{\n const isMO: any = lang==Lang.zhMO ? true : false;\n const isPT: any = lang==Lang.ptPT ? true : false;\n const isCN: any = lang==Lang.zhCN ? true : false;\n const introLinkId = 'tkJowpG7d48';\n const onlineLinkId = 'Nkkhq0pnFL0';\n const fillLinkId = 'Sq1H7ZCJcFY';\n const identifyLinkId = 'L27kKOwGWDM';\n const MO_linkArray = [\n `https://www.youtube.com/embed/${introLinkId}?loop=1&playlist=${introLinkId}`,\n `https://www.youtube.com/embed/${onlineLinkId}?loop=1&playlist=${onlineLinkId}`,\n `https://www.youtube.com/embed/${fillLinkId}?loop=1&playlist=${fillLinkId}`,\n `https://www.youtube.com/embed/${identifyLinkId}?loop=1&playlist=${identifyLinkId}`];\n const PT_linkArray = [\n `https://www.youtube.com/embed/${introLinkId}?loop=1&playlist=${introLinkId}`,\n `https://www.youtube.com/embed/${onlineLinkId}?loop=1&playlist=${onlineLinkId}`,\n `https://www.youtube.com/embed/${fillLinkId}?loop=1&playlist=${fillLinkId}`,\n `https://www.youtube.com/embed/${identifyLinkId}?loop=1&playlist=${identifyLinkId}`];\n const CN_linkArray = [\n `https://www.youtube.com/embed/${introLinkId}?cc_load_policy=1&loop=1&playlist=${introLinkId}&cc_lang_pref=zh-Hans`,\n `https://www.youtube.com/embed/${onlineLinkId}?cc_load_policy=1&loop=1&playlist=${onlineLinkId}&cc_lang_pref=zh-Hans`,\n `https://www.youtube.com/embed/${fillLinkId}?cc_load_policy=1&loop=1&playlist=${fillLinkId}&cc_lang_pref=zh-Hans`,\n `https://www.youtube.com/embed/${identifyLinkId}?cc_load_policy=1&loop=1&playlist=${identifyLinkId}&cc_lang_pref=zh-Hans`];\n const EN_linkArray = [\n `https://www.youtube.com/embed/${introLinkId}?cc_load_policy=1&loop=1&playlist=${introLinkId}&cc_lang_pref=en`,\n `https://www.youtube.com/embed/${onlineLinkId}?cc_load_policy=1&loop=1&playlist=${onlineLinkId}&cc_lang_pref=en`,\n `https://www.youtube.com/embed/${fillLinkId}?cc_load_policy=1&loop=1&playlist=${fillLinkId}&cc_lang_pref=en`,\n `https://www.youtube.com/embed/${identifyLinkId}?cc_load_policy=1&loop=1&playlist=${identifyLinkId}&cc_lang_pref=en`];\n\n if(isMO){\n return MO_linkArray[number];\n }\n else if(isPT){\n return PT_linkArray[number];\n }\n else if(isCN){\n return CN_linkArray[number];\n }\n else {\n return EN_linkArray[number];\n }\n }\n} as InitialStateType;\n\nexport const dataSlice = createSlice({\n name: 'dataSlice',\n initialState: initialState,\n reducers: {\n setNewsList: (state, {payload}) => {\n state.newsList = payload;\n },\n getQuestionsList: (state) => {\n },\n setQuestionsList: (state, {payload}) => {\n state.questionsList = payload;\n },\n },\n});\n\nexport const {\n setNewsList,\n getQuestionsList,\n setQuestionsList,\n} = dataSlice.actions\n\nexport default dataSlice.reducer\n","import {combineReducers} from 'redux';\nimport storeSlice from './storeSlice';\nimport dataSlice from './dataSlice';\n\nexport default {\n storeSlice: storeSlice,\n dataSlice: dataSlice,\n};\n","import axios, { Method } from 'axios'\n\nexport const axiosCall = function (url: string, method: Method, data: any = null) {\n const onSuccess = function (response: any) {\n return response.data;\n }\n const onError = function (error: any) {\n console.error('Request Failed:', error.config);\n\n if (error.response) {\n console.error('Status:', error.response.status);\n console.error('Data:', error.response.data);\n console.error('Headers:', error.response.headers);\n\n } else {\n console.error('Error Message:', error.message);\n }\n\n return Promise.reject(error.response || error.message);\n }\n\n return axios({\n method: method,\n url: url,\n data: data\n }).then(onSuccess)\n .catch(onError);\n}\n","import _ from 'lodash'\nimport { all, call, put, select, takeLatest } from 'redux-saga/effects';\nimport { axiosCall } from '../modules/apiCall';\nimport { StoreAction, Lang } from '../types';\n\nimport {\n setIsLoading,\n getNameStatisticGeneralInfo,\n setNameStatisticGeneralInfo,\n getSearchNameInfo,\n setSearchNameInfo,\n getTop10NamesByYearInfo,\n setTop10NamesByYearInfo,\n getTop10NameWordsByYearInfo,\n setTop10NameWordsByYearInfo,\n getTop5NewBornNameWordsByYearInfo,\n setTop5NewBornNameWordsByYearInfo\n} from '../slices/storeSlice';\n\nlet GetNameStatisticGeneralInfoLink = '';\nlet SearchNameLink = '';\nlet GetTop10NamesByYearInfoLink = '';\nlet GetTop10NameWordsByYearInfoLink = '';\nlet GetTop5NewBornNameWordsByYearInfoLink='';\n\nif (process.env.NODE_ENV == 'production') {\n GetNameStatisticGeneralInfoLink = `https://www.dsec.gov.mo/${process.env.PUBLIC_URL}/GetNameStatisticGeneralInfoJSON`;\n SearchNameLink = `https://www.dsec.gov.mo/${process.env.PUBLIC_URL}/SearchName`;\n GetTop10NamesByYearInfoLink = `https://www.dsec.gov.mo/${process.env.PUBLIC_URL}/GetTop10NamesByYear`;\n GetTop10NameWordsByYearInfoLink =`https://www.dsec.gov.mo/${process.env.PUBLIC_URL}/GetTop10NameWordsByYear`;\n GetTop5NewBornNameWordsByYearInfoLink=`https://www.dsec.gov.mo/${process.env.PUBLIC_URL}/GetTop5NewBornNameWordsByYear`;\n}else{\n let devUrl = \"http://10.207.0.99:3400\";\n // let devUrl = \"https://www.dsec.gov.mo\";\n let domain = 'NameStatistic'\n GetNameStatisticGeneralInfoLink = `${devUrl}/${domain}/GetNameStatisticGeneralInfoJSON`;\n SearchNameLink = `${devUrl}/${domain}/SearchName`;\n GetTop10NamesByYearInfoLink = `${devUrl}/${domain}/GetTop10NamesByYear`;\n GetTop10NameWordsByYearInfoLink =`${devUrl}/${domain}/GetTop10NameWordsByYear`;\n GetTop5NewBornNameWordsByYearInfoLink=`${devUrl}/${domain}/GetTop5NewBornNameWordsByYear`;\n}\n\nexport function* getNameStatisticGeneralInfoFunc() {\n let url = GetNameStatisticGeneralInfoLink;\n\n try {\n yield put(setIsLoading(true));\n let value: any;\n ({ value } = yield call(\n axiosCall,\n url,\n 'GET'\n ));\n\n yield put(setIsLoading(false));\n yield put(setNameStatisticGeneralInfo(value));\n } catch (err) {\n console.log(err);\n }\n};\n\nexport function* getSearchNameFunc({ payload }: StoreAction) {\n const { year, familyName, name } = payload!;\n\n let url = SearchNameLink;\n\n try {\n yield put(setSearchNameInfo(null));\n yield put(setIsLoading(true));\n let value: any;\n ({ value } = yield call(\n axiosCall,\n url,\n 'POST',\n { year: year, familyName: familyName||\"\", name: name||\"\" }\n ));\n\n yield put(setIsLoading(false));\n yield put(setSearchNameInfo(value));\n } catch (err) {\n console.log(err);\n }\n};\n\nexport function* getTop10NamesByYearInfoFunc({ payload }: StoreAction) {\n const {year} = payload!;\n\n let url = GetTop10NamesByYearInfoLink;\n\n try {\n yield put(setIsLoading(true));\n let value: any;\n ({ value } = yield call(\n axiosCall,\n url,\n 'POST',\n { year: year}\n ));\n\n yield put(setIsLoading(false));\n yield put(setTop10NamesByYearInfo(value));\n } catch (err) {\n console.log(err);\n }\n};\n\nexport function* getTop10NameWordsByYearInfoFunc({ payload }: StoreAction) {\n const {year} = payload!;\n\n let url = GetTop10NameWordsByYearInfoLink;\n\n try {\n yield put(setIsLoading(true));\n let value: any;\n ({ value } = yield call(\n axiosCall,\n url,\n 'POST',\n { year: year}\n ));\n\n yield put(setIsLoading(false));\n yield put(setTop10NameWordsByYearInfo(value));\n } catch (err) {\n console.log(err);\n }\n};\n\nexport function* getTop5NewBornNameWordsByYearInfoFunc({ payload }: StoreAction) {\n const {year} = payload!;\n\n let url = GetTop5NewBornNameWordsByYearInfoLink;\n\n try {\n yield put(setIsLoading(true));\n let value: any;\n ({ value } = yield call(\n axiosCall,\n url,\n 'POST',\n { year: year}\n ));\n\n yield put(setIsLoading(false));\n yield put(setTop5NewBornNameWordsByYearInfo(value));\n } catch (err) {\n console.log(err);\n }\n};\n\n/**\n * Indicator Sagas\n */\nexport default function* root() {\n yield all([takeLatest(getNameStatisticGeneralInfo.type, getNameStatisticGeneralInfoFunc)]);\n yield all([takeLatest(getSearchNameInfo.type, getSearchNameFunc)]);\n yield all([takeLatest(getTop10NamesByYearInfo.type, getTop10NamesByYearInfoFunc)]);\n yield all([takeLatest(getTop10NameWordsByYearInfo.type, getTop10NameWordsByYearInfoFunc)]);\n yield all([takeLatest(getTop5NewBornNameWordsByYearInfo.type, getTop5NewBornNameWordsByYearInfoFunc)]);\n}\n\n","import { all, fork } from 'redux-saga/effects';\n\nimport api from './api';\n\nexport default function* root() {\n yield all([fork(api)]);\n}\n","import createSagaMiddleware from 'redux-saga';\n\nexport const sagaMiddleware = createSagaMiddleware();\n\nconst middleware = [sagaMiddleware];\n\n/* istanbul ignore next */\n// if (process.env.NODE_ENV === 'development') {\n// const { createLogger } = require('redux-logger');\n// const invariant = require('redux-immutable-state-invariant').default;\n\n// middleware.push(invariant());\n// middleware.push(createLogger({ collapsed: true }));\n// }\n\nexport default middleware;\n","import { configureStore } from '@reduxjs/toolkit'\nimport { applyMiddleware,Middleware, Store } from 'redux';\nimport { persistCombineReducers, persistStore } from 'redux-persist';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport storage from 'redux-persist/lib/storage';\n\nimport reducers from '../reducers';\nimport slices from '../slices';\nimport rootSaga from '../sagas';\n\nimport { StoreState } from '../types';\n\nimport middleware, { sagaMiddleware } from './middleware';\n\nconst rootReducer = persistCombineReducers(\n {\n key: 'root',\n stateReconciler: autoMergeLevel2,\n storage,\n whitelist: [],\n timeout: 0,\n },\n {...reducers, ...slices}\n);\n\nconst store: Store = configureStore({\n reducer: rootReducer,\n middleware: (getDefaultMiddleware: any) => getDefaultMiddleware({\n serializableCheck: false\n }).concat(middleware)\n});\n\nsagaMiddleware.run(rootSaga);\n\n/* istanbul ignore next */\nexport const configStore = (initialState: any = {}, additionalMiddleware: Middleware[] = []) => {\n return {\n persistor: persistStore(store),\n store,\n }\n};\n\nexport type RootState = ReturnType\nexport type AppDispatch = typeof store.dispatch\n\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport {HelmetProvider} from 'react-helmet-async';\nimport {PersistGate} from 'redux-persist/lib/integration/react';\nimport './index.css';\nimport App from './App';\nimport * as serviceWorker from './serviceWorker';\nimport {configStore} from './store'\nimport {Provider} from 'react-redux'\n\n\nconst {store, persistor} = configStore();\n\n\n //disable console output on production\n //console.log = () => {}\n //console.error = () => {}\n //console.debug = () => {}\n //console.warn = () => {}\n\nReactDOM.render(\n \n \n \n \n \n \n ,\n document.getElementById('root')\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"xs\":\"100%\",\"xsMax\":\"575px\",\"sm\":\"576px\",\"smMax\":\"767px\",\"md\":\"768px\",\"mdMax\":\"991px\",\"lg\":\"992px\",\"lgMax\":\"1199px\",\"xl\":\"1200px\",\"xlMax\":\"1599px\",\"xxl\":\"1600px\"};"],"sourceRoot":""}