{"version":3,"file":"js/23729-592c48eaf6e78412bd35.js","mappings":"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","sources":["webpack:///./app/javascript/components/Articles/FeedbackAndShared/style.js","webpack:///./app/javascript/components/Articles/FeedbackAndShared/translations.js","webpack:///./app/javascript/components/Articles/FeedbackAndShared/index.jsx","webpack:///./app/javascript/components/GoogleAds/index.jsx","webpack:///./app/javascript/components/desktop/Breadcrumbs/index.jsx","webpack:///./app/javascript/components/shared/Item/CopyToClipBoard/index.jsx","webpack:///./app/javascript/components/desktop/shared/ShareButton/index.jsx","webpack:///./app/javascript/constants/locales/JobCategories/translations.js","webpack:///./app/javascript/context/intersectionObserverContext/index.jsx","webpack:///./app/javascript/templates/desktop/Homemaps/Content/style.js","webpack:///./app/javascript/templates/desktop/Homemaps/Content/index.jsx","webpack:///./app/javascript/packs/desktop/homemaps/contents/show.jsx"],"sourcesContent":["import styled from 'styled-components'\n\nexport const Wrapper = styled.div`\n display: flex;\n flex-direction: column;\n gap: 8px;\n align-items: center;\n`\n\nexport const FlexBox = styled.div`\n display: flex;\n gap: 16px;\n justify-content: center;\n align-items: center;\n`\n\nexport const Title = styled.div`\n color: ${props => props.theme.colors.textHeading};\n font-size: 20px;\n font-weight: 600;\n text-align: center;\n`\n\nexport const TextLight = styled.div`\n color: ${props => props.theme.colors.textPlaceholder};\n font-size: 14px;\n font-weight: 600;\n`\n\nexport const VerticalDivider = styled.div`\n width: 1px;\n height: 40px;\n background-color: ${props => props.theme.colors.zinc300};\n`\n","export default {\n en: {\n ArticleFeedbackAndShared: {\n title: 'Did you find this article helpful? Like it to encourage the author!',\n shared: 'Shared'\n }\n },\n\n th: {\n ArticleFeedbackAndShared: {\n title: 'บทความนี้เป็นประโยชน์ใช่ไหม ? มาà¸à¸”ไลà¸à¹Œà¹€à¸›à¹‡à¸™à¸à¸³à¸¥à¸±à¸‡à¹ƒà¸ˆà¹ƒà¸«à¹‰à¸œà¸¹à¹‰à¹€à¸‚ียนà¸à¸±à¸™ !',\n shared: 'à¹à¸Šà¸£à¹Œ'\n }\n }\n}\n","import * as Styled from './style'\nimport ShareButton from '../../desktop/shared/ShareButton'\nimport { Vote } from '../../../elements'\n\nimport translations from '../FeedbackAndShared/translations'\nimport { i18n, initializeI18n } from '../../../utilities/i18n'\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\nconst ArticleFeedbackAndShared = ({\n article,\n articleType = 'Job::Category'\n}) => {\n initializeI18n({ localeFiles: translations })\n\n const { id, title, upVoteCount = 0, downVoteCount = 0, myVote } = article || {}\n\n return (\n <Styled.Wrapper>\n <Styled.Title>{i18n.t('ArticleFeedbackAndShared.title')}</Styled.Title>\n <Styled.FlexBox>\n <Vote\n id={id}\n type={articleType}\n upVoteCount={upVoteCount}\n downVoteCount={downVoteCount}\n myVote={myVote}\n includingFeedback />\n\n <Styled.VerticalDivider />\n\n <Styled.TextLight>{i18n.t('ArticleFeedbackAndShared.shared')}</Styled.TextLight>\n <ShareButton titleName={title} />\n </Styled.FlexBox>\n </Styled.Wrapper>\n )\n}\n\nArticleFeedbackAndShared.propTypes = {\n article: PropTypes.shape({\n id: PropTypes.string.isRequired,\n title: PropTypes.string.isRequired,\n upVoteCount: PropTypes.number,\n downVoteCount: PropTypes.number,\n myVote: PropTypes.object\n }),\n articleType: PropTypes.string.isRequired\n}\n\nexport default ArticleFeedbackAndShared\n","import React, {useEffect} from 'react'\nimport PropTypes from 'prop-types'\n\nconst GoogleAds = ({adsSlot}) => {\n\n\n useEffect(() => {\n\n try {\n (window.adsbygoogle = window.adsbygoogle || []).push({})\n } catch (e) {\n console.error(e)\n }\n\n }, [])\n\n return (\n <div style={{marginTop: 16}}>\n <ins className=\"adsbygoogle\"\n style={{display: 'block'}}\n data-ad-client=\"ca-pub-4486865272593109\"\n data-ad-slot={adsSlot}\n data-ad-format=\"auto\"\n data-full-width-responsive=\"true\">\n </ins>\n </div>\n )\n}\n\nGoogleAds.propTypes = {\n adsSlot: PropTypes.string.isRequired,\n}\n\n\n\n\nexport default GoogleAds\n\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nimport classNames from 'classnames/bind'\nimport './Breadcrumbs.scss'\nconst cx = classNames.bind()\n\nexport default class Breadcrumbs extends Component {\n static propTypes = {\n breadcrumbs: PropTypes.arrayOf(\n PropTypes.shape({\n name: PropTypes.string.isRequired,\n url: PropTypes.string\n })\n )\n }\n\n renderBreadcrumbName (name) {\n return (\n <span property='name'>\n {name}\n </span>\n )\n }\n\n renderBreadcrumbItem (name, url) {\n if (!url) { return this.renderBreadcrumbName(name) }\n\n return (\n <a href={url}\n property='item'\n typeof='WebPage'>\n {this.renderBreadcrumbName(name)}\n </a>\n )\n }\n\n renderBreadcrumbsList (breadcrumbs) {\n return breadcrumbs.map((breadcrumb, index) => {\n const { name, url } = breadcrumb\n\n return (\n <li key={`breadcrumb_item_${index}`}\n className={cx('breadcrumb-item', { active: !url })}\n property='itemListElement'\n typeof='ListItem'>\n {this.renderBreadcrumbItem(name, url)}\n <meta property='position' content={index + 1} />\n </li>\n )\n })\n }\n\n render () {\n const { breadcrumbs } = this.props\n\n if (!breadcrumbs.length) { return null }\n\n return (\n <div className={cx('breadcrumbs-container')}>\n <ol className={cx('react-breadcrumbs', 'breadcrumb')}\n vocab='http://schema.org/'\n typeof='BreadcrumbList'>\n {this.renderBreadcrumbsList(breadcrumbs)}\n </ol>\n </div>\n )\n }\n}\n","import React, { Component } from 'react'\nimport { CopyToClipboard } from 'react-copy-to-clipboard'\n\nimport PropTypes from 'prop-types'\nimport Clipboard from 'images/shared/social/share/black/icon-share-20x20@2x.png'\n\nclass CopiedToClipboard extends Component {\n static propTypes = {\n containerClassName: PropTypes.string,\n trackingCategory: PropTypes.string,\n trackingLabel: PropTypes.string\n }\n\n constructor (props) {\n super(props)\n this.urlPath = window.location.href.split('?')\n\n this.state = {\n copiedToClipboard: false\n }\n }\n\n onClickCopiedToClipboard = (trackingCategory, trackingLabel) => {\n return () => {\n this.setState({ copiedToClipboard: true })\n\n setTimeout(() => {\n this.setState({ copiedToClipboard: false })\n }, 2000)\n }\n }\n\n render () {\n const {\n containerClassName,\n trackingCategory,\n trackingLabel\n } = this.props\n\n const url = `${this.urlPath}?utm_medium=social&utm_source=copyshare&utm_campaign=share.button`\n\n return (\n <div className={containerClassName}>\n <CopyToClipboard\n onCopy={this.onClickCopiedToClipboard(trackingCategory, trackingLabel)}\n text={url}>\n <img src={Clipboard} alt={Clipboard} />\n </CopyToClipboard>\n </div>\n )\n }\n}\n\nexport default CopiedToClipboard\n","import React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nimport '../Products/Conditions/Conditions.scss'\nimport './ShareButton.scss'\n\nimport CopiedToClipboard from 'components/shared/Item/CopyToClipBoard'\nimport facebookIcon from 'images/shared/social/facebook/black/icon-facebook-20x20@2x.png'\nimport twitterIcon from 'images/shared/social/twitter/black/icon-twitter-20x20@2x.png'\n\nclass SocialNetwok extends Component {\n static propTypes = {\n titleName: PropTypes.string.isRequired\n }\n\n constructor (props) {\n super(props)\n this.urlPath = window.location.href.split('?')[0]\n }\n\n generatePath = (utmSource) => {\n return `${this.urlPath}%3Futm_medium=social%26utm_source=${utmSource}%26utm_campaign=share.button`\n }\n\n onClickShareToFacebook = (titleName) => {\n const url = this.generatePath('facebook.com')\n const shareUrl = `https://www.facebook.com/sharer/sharer.php?u=${url}"e=${titleName}`\n\n return (event) => {\n event.preventDefault()\n\n window.open(\n shareUrl,\n 'share-facebook',\n 'toolbar=0,status=0,width=580,height=296'\n )\n }\n }\n\n onClickShareToTwitter = (titleName) => {\n const url = this.generatePath('twitter.com')\n const shareUrl = `https://twitter.com/share?url=${url}&text=${titleName}&hashtags=OneStockHome`\n\n return (event) => {\n event.preventDefault()\n\n window.open(\n shareUrl,\n 'share-twitter',\n 'toolbar=0,status=0,width=550,height=235'\n )\n }\n }\n\n render () {\n const { titleName } = this.props\n\n return (\n <div className='button-container clearfix'>\n <div className='float-left' role=\"button\" onClick={this.onClickShareToFacebook(titleName)} >\n <img src={facebookIcon}\n alt='Facebook Icon'\n className='icon-share' />\n </div>\n <div className='float-left' role=\"button\" onClick={this.onClickShareToTwitter(titleName)} >\n <img src={twitterIcon}\n alt='Twitter Icon'\n className='icon-share' />\n </div>\n <div className='float-left' role=\"button\">\n <CopiedToClipboard containerClassName={'copy-to-clipboard'} />\n </div>\n </div>\n )\n }\n}\n\nexport default SocialNetwok\n","export default {\n en: {\n JobCategory: {\n title: 'Articles',\n constructionWork: 'Articles',\n productSuggestions: {\n baht: 'Baht',\n header: 'Product Related',\n moreDetail: 'More detail',\n specialPrice: 'Special Price',\n start: 'Start'\n },\n allArticles: 'All Articles',\n publishedAt: 'Published at ',\n writeBy: 'By',\n filter: 'Filter',\n back: 'Back',\n moreDetail: 'more details',\n homeMaps: 'Articles',\n search: 'Search',\n resultSummary: '%{totalCount} results for \"%{query}\"',\n searching: 'Searching \"%{query}\"',\n noResult: 'No result',\n homePage: 'Home Page',\n seeAll: 'See All',\n homemapsTitle: 'à¹à¸«à¸¥à¹ˆà¸‡à¸£à¸§à¸¡à¹€à¸£à¸·à¹ˆà¸à¸‡à¸£à¸²à¸§à¹€à¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸§à¸±à¸ªà¸”ุà¸à¹ˆà¸à¸ªà¸£à¹‰à¸²à¸‡à¹ƒà¸«à¹‰à¸–ูà¸à¸à¸±à¸šà¸‡à¸²à¸™à¸à¹ˆà¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸¢à¹ˆà¸²à¸‡à¹€à¸Šà¸´à¸‡à¸¥à¸¶à¸ เปิดเคล็ดลับขà¸à¸‡à¸§à¸‡à¸à¸²à¸£à¸à¹ˆà¸à¸ªà¸£à¹‰à¸²à¸‡à¹ƒà¸«à¹‰à¸—ุà¸à¸„นรู้à¸à¸¢à¹ˆà¸²à¸‡à¸•à¸£à¸‡à¹„ปตรงมา',\n searchResult: 'Search Result',\n searchArticle: 'Search Article'\n },\n JobCategoryComments: {\n comments: 'Comments',\n writeComment: 'Write a comment',\n writtenBy: 'Written by',\n at: 'at',\n noComments: 'There are no comments for this content yet.',\n loginToComment: 'Login to comments',\n commentBody: 'Review',\n cancel: 'Cancel'\n }\n },\n\n th: {\n JobCategory: {\n title: 'บทความ',\n constructionWork: 'บทความ',\n \n publishedAt: 'เผยà¹à¸žà¸£à¹ˆà¹€à¸¡à¸·à¹ˆà¸ ',\n productSuggestions: {\n baht: 'บาท',\n header: 'สินค้าที่เà¸à¸µà¹ˆà¸¢à¸§à¸‚้à¸à¸‡',\n moreDetail: 'ดูรายละเà¸à¸µà¸¢à¸”',\n specialPrice: 'ราคาพิเศษ',\n start: 'เริ่มต้น'\n },\n writeBy: 'โดย',\n filter: 'ตัวà¸à¸£à¸à¸‡',\n back: 'ย้à¸à¸™à¸à¸¥à¸±à¸š',\n moreDetail: 'ดูเพิ่มเติม',\n homeMaps: 'HomeMaps',\n search: 'ค้นหาบทความที่คุณสนใจ...',\n resultSummary: 'พบ %{totalCount} รายà¸à¸²à¸£ จาà¸à¸œà¸¥à¸à¸²à¸£à¸„้นหา \"%{query}\"',\n searching: 'ค้นหา \"%{query}\"',\n noResult: 'ไม่พบเนื้à¸à¸«à¸²à¸—ี่ตรงà¸à¸±à¸šà¸„วามต้à¸à¸‡à¸à¸²à¸£à¸‚à¸à¸‡à¸„ุณ',\n homePage: 'หน้าหลัà¸',\n seeAll: 'ดูทั้งหมด',\n homemapsTitle: 'à¹à¸«à¸¥à¹ˆà¸‡à¸£à¸§à¸¡à¹€à¸£à¸·à¹ˆà¸à¸‡à¸£à¸²à¸§à¹€à¸à¸µà¹ˆà¸¢à¸§à¸à¸±à¸šà¸à¸²à¸£à¹ƒà¸Šà¹‰à¸§à¸±à¸ªà¸”ุà¸à¹ˆà¸à¸ªà¸£à¹‰à¸²à¸‡à¹ƒà¸«à¹‰à¸–ูà¸à¸à¸±à¸šà¸‡à¸²à¸™à¸à¹ˆà¸à¸ªà¸£à¹‰à¸²à¸‡à¸à¸¢à¹ˆà¸²à¸‡à¹€à¸Šà¸´à¸‡à¸¥à¸¶à¸ เปิดเคล็ดลับขà¸à¸‡à¸§à¸‡à¸à¸²à¸£à¸à¹ˆà¸à¸ªà¸£à¹‰à¸²à¸‡à¹ƒà¸«à¹‰à¸—ุà¸à¸„นรู้à¸à¸¢à¹ˆà¸²à¸‡à¸•à¸£à¸‡à¹„ปตรงมา',\n comments: 'ความคิดเห็น',\n writeComment: 'à¹à¸ªà¸”งความคิดเห็น',\n allArticles: 'บทความทั้งหมด',\n searchResult: 'ผลà¸à¸²à¸£à¸„้นหาสำหรับ',\n searchArticle: 'ค้นหาบทความที่สนใจ'\n },\n JobCategoryComments: {\n comments: 'ความคิดเห็น',\n writeComment: 'à¹à¸ªà¸”งความคิดเห็น',\n writtenBy: 'เขียนโดย',\n at: 'เมื่à¸',\n noComments: 'ยังไม่มีความคิดเห็น',\n loginToComment: 'เข้าสู่ระบบเพื่à¸à¹à¸ªà¸”งความคิดเห็น',\n commentBody: 'เนื้à¸à¸«à¸²à¸‚à¸à¸‡à¸à¸²à¸£à¹à¸ªà¸”งความเห็น',\n cancel: 'ยà¸à¹€à¸¥à¸´à¸'\n }\n }\n}\n","import React, { createContext, useContext, useEffect, useMemo, useState } from 'react'\nimport PropTypes from 'prop-types'\n\nimport { useInView } from 'react-intersection-observer'\n\nconst IntersectionObserverContext = createContext({\n initialize: () => {},\n sectionRefs: {},\n onChangeInView: () => {}\n})\n\nexport const useIntersectionObserverContext = () => {\n return useContext(IntersectionObserverContext)\n}\n\nconst DEFAULT_VIEW_PORT_RESPONSE = {\n ref: () => {},\n onTerminate: () => {}\n}\n\nexport const useViewPortContext = ({\n name,\n skip = false\n}) => {\n if (skip) return DEFAULT_VIEW_PORT_RESPONSE\n\n const { inViewState } = useIntersectionObserverContext()\n const context = useInViewContext({\n ...inViewState,\n skip: skip,\n onChange: (inView, entry) => {\n inViewState?.onChange(name, inView, entry)\n }\n })\n\n return {\n ...context,\n onTerminate: () => {\n inViewState?.onTerminate(name)\n }\n }\n}\n\nexport const IntersectionObserverContextProvider = ({\n children,\n defaultActive,\n offset = 0,\n extraOffset = 0,\n sections\n}) => {\n const [inViewRefs, setInViewRefs] = useState({})\n const [active, setActiveInView] = useState(defaultActive)\n\n const keys = useMemo(() => sections.map(section => section.key), [sections])\n\n useEffect(() => {\n const current = keys.find(key => inViewRefs[key]?.inView)\n\n setActiveInView(current)\n }, [inViewRefs])\n\n const onChangeInView = (key, inView, entry) => {\n setInViewRefs(prev => ({\n ...prev,\n [key]: { inView, entry, disabled: false }\n }))\n }\n\n const onTerminateInView = (key) => {\n setInViewRefs(prev => ({\n ...prev,\n [key]: { inView: false, entry: undefined, disabled: true }\n }))\n }\n\n const onScrollToViewPort = (key, offset) => {\n const { entry } = inViewRefs[key] || {}\n\n if (entry) {\n const section = sections.find(section => section.key === key)\n let position = section?.positionY\n\n if (position === undefined) {\n const { top } = entry.target.getBoundingClientRect()\n // window.pageYOffset is deprecated\n const pageYOffset = document.documentElement.scrollTop\n position = top + pageYOffset - offset - extraOffset\n }\n\n window.scrollTo({ top: position + 1, behavior: 'smooth' })\n }\n }\n\n const getHTMLType = key => {\n if (inViewRefs[key]?.disabled) return 'disabled'\n\n return active === key ? 'active' : ''\n }\n\n return (\n <IntersectionObserverContext.Provider value={{\n active,\n getHTMLType,\n inViewRefs,\n inViewState: {\n offset,\n extraOffset,\n onChange: onChangeInView,\n onTerminate: onTerminateInView\n },\n onScrollToViewPort\n }}>\n {children}\n </IntersectionObserverContext.Provider>\n )\n}\n\nIntersectionObserverContextProvider.propTypes = {\n children: PropTypes.node.isRequired,\n defaultActive: PropTypes.string.isRequired,\n offset: PropTypes.number,\n extraOffset: PropTypes.number,\n sections: PropTypes.arrayOf(PropTypes.shape({\n key: PropTypes.string.isRequired,\n positionY: PropTypes.number\n })).isRequired\n}\n\nexport const useInViewContext = ({\n extraOffset = 0,\n offset: inputOffset = 0,\n onChange = () => {},\n skip = false\n} = {}) => {\n let MAIN_NAVBAR_HEIGHT = 0\n if (document.getElementById('navbar')) {\n MAIN_NAVBAR_HEIGHT = document.getElementById('navbar').offsetHeight\n }\n\n const offset = useMemo(() => {\n return (inputOffset || MAIN_NAVBAR_HEIGHT) + extraOffset\n }, [inputOffset, extraOffset, MAIN_NAVBAR_HEIGHT])\n\n const { ref, inView, entry } = useInView({\n skip: skip,\n rootMargin: `-${offset}px 100% 0px 100%`,\n onChange: onChange\n })\n\n return {\n ref,\n inView,\n entry,\n offset\n }\n}\n","import { styled } from 'styled-components'\n\nexport const BGWhite = styled.div`\n background-color: white;\n`\n\nexport const ContentContainer = styled.div`\n padding: 24px 0px;\n display: flex;\n flex-direction: column;\n gap: 16px;\n`\n\nexport const HeaderSection = styled.div`\n display: flex;\n flex-direction: column;\n align-items: center;\n gap: 16px;\n margin: 0 auto;\n`\n\nexport const ArticleImageContainer = styled.div`\n width: ${props => props.theme.screen.desktop};\n aspect-ratio: 1200 / 630;\n background: linear-gradient(0deg, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.25) 100%), #E4E4E7;\n margin: 0 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n > img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n`\n\nexport const SectionContainer = styled.div`\n width: ${props => props.theme.screen.desktop};\n margin: 0 auto;\n &:empty {\n display: none;\n }\n`\n\nexport const ArticleSection = styled.div`\n display: grid;\n grid-template-columns: 261px 710px 261px;\n gap: 32px;\n`\n\nexport const ArticleTitle = styled.h1`\n margin: 0;\n font-size: 48px;\n font-weight: 400;\n text-align: center;\n cursor: pointer;\n`\n\nexport const RightSection = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`\n\nexport const ProductCategoryListContainer = styled.div`\n display: flex;\n flex-direction: column;\n gap: 16px;\n`\n\nexport const AlignLeft = styled.div`\n align-self: flex-start;\n`\n\nexport const ArticleContainer = styled.div`\n grid-column: span ${({ $col }) => $col || 1};\n`\n\nexport const Divider = styled.div`\n width: 100%;\n height: 1px;\n background-color: ${({ theme }) => theme.colors.zinc100};\n`\n","import * as Styled from './style'\n// import Styled from '../homemaps.style'\nimport Breadcrumbs from '../../../../components/desktop/Breadcrumbs'\nimport Description, { DescriptionAuthor, DescriptionTableOfContents } from '../../../../components/Description'\nimport ShareButton from '../../../../components/desktop/shared/ShareButton'\nimport ProductCategoryChildrenList from '../../../../components/ProductCategory/ChildrenList/desktop'\nimport ArticleFeedbackAndShared from '../../../../components/Articles/FeedbackAndShared'\nimport { Badge } from '../../../../elements'\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { gql, useQuery} from '@apollo/client'\n\nimport { i18n } from 'utilities/i18n'\nimport GoogleAds from 'components/GoogleAds'\n\nconst JOB_CATEGORIES_QUERY = gql`\n query jobCategory($id: ID!) {\n jobCategory(id: $id) {\n id\n slug\n contentTypeLabel\n title\n body\n homemapsImageUrl {\n articleImageUrl: extraLarge\n }\n author {\n id\n name\n }\n productCategories {\n id\n }\n tableOfContents\n upVoteCount\n downVoteCount\n myVote {\n id\n voteType\n }\n updatedDate {\n display\n }\n }\n }\n`\n\n\nconst HomemapsContentTemplate = ({\n jobCategoryId\n}) => {\n const { data, loading, error } = useQuery(JOB_CATEGORIES_QUERY, {\n variables: { id: jobCategoryId }\n })\n\n if (loading) return null\n if (error) return console.error(error)\n\n const {\n body,\n title,\n homemapsImageUrl,\n contentTypeLabel,\n updatedDate,\n tableOfContents,\n author,\n productCategories\n } = data?.jobCategory || {}\n const { articleImageUrl } = homemapsImageUrl || {}\n const parsedTableOfContents = tableOfContents ? JSON.parse(tableOfContents) : null\n const hasToc = parsedTableOfContents && parsedTableOfContents.length > 0\n\n const breadcrumbs = [\n {\n name: i18n.t('JobCategory.homePage'),\n url: `/${i18n.locale}`\n }, {\n name: i18n.t('JobCategory.constructionWork'),\n url: `/${i18n.locale}/articles`\n }, {\n name: title,\n url: null\n }\n ]\n\n return (\n <Styled.BGWhite>\n <Styled.ContentContainer>\n <Styled.SectionContainer>\n <Styled.HeaderSection>\n <Styled.AlignLeft>\n <Breadcrumbs breadcrumbs={breadcrumbs} />\n </Styled.AlignLeft>\n <Badge htmlType='default' size='default'>\n {contentTypeLabel}\n </Badge>\n <Styled.ArticleTitle>\n {title}\n </Styled.ArticleTitle>\n { !!articleImageUrl &&\n <Styled.ArticleImageContainer>\n <img src={articleImageUrl} alt={title} width='100%' height='100%' />\n </Styled.ArticleImageContainer>\n }\n </Styled.HeaderSection>\n </Styled.SectionContainer>\n <Styled.SectionContainer>\n <Styled.ArticleSection>\n { hasToc\n ? <DescriptionTableOfContents tableOfContents={parsedTableOfContents} />\n : null\n }\n <Styled.ArticleContainer $col={hasToc ? 1 : 2}>\n <Description description={{ body }} />\n </Styled.ArticleContainer>\n <Styled.RightSection>\n <DescriptionAuthor author={author} date={updatedDate} />\n <ShareButton titleName={title} />\n <GoogleAds adsSlot={'6788948862'} />\n </Styled.RightSection>\n </Styled.ArticleSection>\n </Styled.SectionContainer>\n <Styled.Divider />\n <Styled.SectionContainer>\n <ArticleFeedbackAndShared article={data?.jobCategory} />\n </Styled.SectionContainer>\n <Styled.SectionContainer>\n <Styled.ProductCategoryListContainer>\n {productCategories && productCategories.length > 0 && (\n productCategories.map((productCategory) => (\n <ProductCategoryChildrenList\n key={productCategory.id}\n includeSelfLink={true}\n slug={productCategory.id}\n />\n ))\n )}\n </Styled.ProductCategoryListContainer>\n </Styled.SectionContainer>\n </Styled.ContentContainer>\n </Styled.BGWhite>\n )\n}\n\nHomemapsContentTemplate.propTypes = {\n jobCategoryId: PropTypes.string.isRequired\n}\n\nexport default HomemapsContentTemplate\n","import HomemapsContentTemplate from '../../../../templates/desktop/Homemaps/Content'\n\nimport translations from '../../../../constants/locales/JobCategories/translations'\n\nimport { initializeI18n } from '../../../../utilities/i18n'\nimport { renderRoot } from '../../../../utilities/render'\n\nconst _renderHomemapContent = () => {\n initializeI18n({ localeFiles: translations })\n\n const root = document.getElementById('homemap_content_page')\n const rootData = (root && root.dataset) || {}\n\n renderRoot(root, [{ component: HomemapsContentTemplate, params: { jobCategoryId: rootData.homemapId } }])\n}\n\nconst HomemapContent = () => {\n _renderHomemapContent()\n}\n\nexport default HomemapContent\n"],"names":["Wrapper","styled","div","_templateObject","_taggedTemplateLiteral","FlexBox","_templateObject2","Title","_templateObject3","props","theme","colors","textHeading","TextLight","_templateObject4","textPlaceholder","VerticalDivider","_templateObject5","zinc300","en","ArticleFeedbackAndShared","title","shared","th","_ref","article","_ref$articleType","articleType","initializeI18n","localeFiles","translations","_ref2","id","_ref2$upVoteCount","upVoteCount","_ref2$downVoteCount","downVoteCount","myVote","React","Styled","i18n","t","Vote","type","includingFeedback","ShareButton","titleName","adsSlot","useEffect","window","adsbygoogle","push","e","console","error","style","marginTop","className","display","cx","classNames","Breadcrumbs","_Component","_inherits","_super","_createSuper","_classCallCheck","apply","arguments","key","value","name","property","url","href","typeof","this","renderBreadcrumbName","breadcrumbs","_this","map","breadcrumb","index","concat","active","renderBreadcrumbItem","content","length","vocab","renderBreadcrumbsList","Component","CopiedToClipboard","call","_assertThisInitialized","trackingCategory","trackingLabel","setState","copiedToClipboard","setTimeout","urlPath","location","split","state","_this$props","containerClassName","CopyToClipboard","onCopy","onClickCopiedToClipboard","text","src","Clipboard","alt","SocialNetwok","_defineProperty","utmSource","generatePath","shareUrl","event","preventDefault","open","role","onClick","onClickShareToFacebook","facebookIcon","onClickShareToTwitter","twitterIcon","JobCategory","constructionWork","productSuggestions","baht","header","moreDetail","specialPrice","start","allArticles","publishedAt","writeBy","filter","back","homeMaps","search","resultSummary","searching","noResult","homePage","seeAll","homemapsTitle","searchResult","searchArticle","JobCategoryComments","comments","writeComment","writtenBy","at","noComments","loginToComment","commentBody","cancel","IntersectionObserverContext","createContext","initialize","sectionRefs","onChangeInView","useIntersectionObserverContext","useContext","DEFAULT_VIEW_PORT_RESPONSE","ref","onTerminate","useViewPortContext","_ref$skip","skip","inViewState","context","useInViewContext","_objectSpread","onChange","inView","entry","IntersectionObserverContextProvider","children","defaultActive","_ref2$offset","offset","_ref2$extraOffset","extraOffset","sections","_useState2","_slicedToArray","useState","inViewRefs","setInViewRefs","_useState4","setActiveInView","keys","useMemo","section","current","find","_inViewRefs$key","Provider","getHTMLType","_inViewRefs$key2","disabled","prev","undefined","onScrollToViewPort","position","positionY","target","getBoundingClientRect","top","document","documentElement","scrollTop","scrollTo","behavior","_ref4","_ref4$extraOffset","_ref4$offset","inputOffset","_ref4$onChange","_ref4$skip","MAIN_NAVBAR_HEIGHT","getElementById","offsetHeight","_useInView","useInView","rootMargin","BGWhite","ContentContainer","HeaderSection","ArticleImageContainer","screen","desktop","SectionContainer","ArticleSection","_templateObject6","ArticleTitle","h1","_templateObject7","RightSection","_templateObject8","ProductCategoryListContainer","_templateObject9","AlignLeft","_templateObject10","ArticleContainer","_templateObject11","$col","Divider","_templateObject12","zinc100","JOB_CATEGORIES_QUERY","gql","jobCategoryId","_useQuery","useQuery","variables","data","loading","jobCategory","body","homemapsImageUrl","contentTypeLabel","updatedDate","tableOfContents","author","productCategories","articleImageUrl","parsedTableOfContents","JSON","parse","hasToc","locale","Badge","htmlType","size","width","height","DescriptionTableOfContents","Description","description","DescriptionAuthor","date","GoogleAds","productCategory","ProductCategoryChildrenList","includeSelfLink","slug","root","rootData","dataset","renderRoot","component","HomemapsContentTemplate","params","homemapId","_renderHomemapContent"],"sourceRoot":""}