{"version":3,"sources":["webpack:///./src/components/SectionList/SectionList.tsx","webpack:///./src/components/SearchResults/SearchResults.tsx","webpack:///./src/components/SectionNavigation/SectionNavigation.tsx","webpack:///./src/components/ImageElement/ImageElement.tsx"],"names":["react__WEBPACK_IMPORTED_MODULE_0__","__webpack_require__","react__WEBPACK_IMPORTED_MODULE_0___default","n","react_redux__WEBPACK_IMPORTED_MODULE_1__","components_Card_Card__WEBPACK_IMPORTED_MODULE_2__","antd_mobile__WEBPACK_IMPORTED_MODULE_3__","selectors_articleSelectors__WEBPACK_IMPORTED_MODULE_4__","components_Skeleton_Skeleton__WEBPACK_IMPORTED_MODULE_5__","actions_EditionActions__WEBPACK_IMPORTED_MODULE_6__","__webpack_exports__","Object","state","ownProps","activeEdition","activeSection","sections","editions","sectionId","fetching","loaded","edition","articles","packages","map","packageId","flat","articleData","loadSectionContent","[object Object]","this","dataSource","DataSource","rowHasChanged","console","log","props","prevProps","articleId","history","pushState","location","href","isSectionLoaded","undefined","a","createElement","className","cloneWithRows","pageSize","renderRow","Fragment","assign","handleClick","handleCardClick","id","key","libs_utils__WEBPACK_IMPORTED_MODULE_1__","tiny_relative_date__WEBPACK_IMPORTED_MODULE_2__","store_storeConfig__WEBPACK_IMPORTED_MODULE_4__","fetchingArticles","searchResults","selectArticle","selectSection","articleIds","getState","articleResults","filter","article","slice","result","onClick","onKeyDown","text","title","snippet","datePublished","dateTime","d","SectionNavigation","data_sections__WEBPACK_IMPORTED_MODULE_2__","menuType","selectedId","sectionList","s","section","values","parent","getChildSections","ImageElement","components_Skeleton_Skeleton__WEBPACK_IMPORTED_MODULE_2__","super","imgRef","config","rootMargin","threshold","handleLoad","setState","hasLoaded","handleError","err","src","currentTarget","warn","hasError","altText","caption","isFullWidth","height","alt","onError","onLoad","ref","sizes","srcSet"],"mappings":"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","file":"main~4faec1a7.bundle.js","sourcesContent":["import React, { PureComponent } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Card } from \"components/Card/Card\";\nimport { ListView, WhiteSpace } from \"antd-mobile\";\nimport { ArticleType } from \"reducers/articleReducer\";\nimport { StateInterface } from \"reducers/rootReducer\";\nimport { selectArticles } from \"selectors/articleSelectors\";\nimport { Skeleton } from \"components/Skeleton/Skeleton\";\nimport {\n  loadSectionContent,\n  EditionSectionInterface\n} from \"actions/EditionActions\";\nimport \"./SectionList.css\";\n\ninterface DispatchProps {\n  loadSectionContent: typeof loadSectionContent;\n}\n\ninterface PropsInterface extends MapStatePropsInterface, DispatchProps {\n  activeEdition: string;\n  activeSection: string;\n}\n\nclass SectionList extends PureComponent<PropsInterface> {\n  public componentDidMount(): void {\n    const {\n      loaded,\n      activeEdition,\n      loadSectionContent,\n      activeSection\n    } = this.props;\n\n    if (loaded === false && activeSection) {\n      loadSectionContent(activeSection, activeEdition);\n    }\n  }\n\n  public componentDidUpdate(prevProps: PropsInterface): void {\n    const {\n      activeSection,\n      loaded,\n      activeEdition,\n      loadSectionContent,\n      fetching\n    } = this.props;\n\n    if (\n      activeSection &&\n      activeSection !== prevProps.activeSection &&\n      loaded === false &&\n      fetching === false\n    ) {\n      loadSectionContent(activeSection, activeEdition);\n    }\n  }\n\n  private dataSource = new ListView.DataSource({\n    rowHasChanged: (): void => console.log(\"rowHasChanged\")\n  });\n\n  public handleCardClick(articleId: string): void {\n    history.pushState(null, \"\", `${location.href}/${articleId}`);\n  }\n\n  public render(): JSX.Element {\n    const { articleData, loaded: isSectionLoaded, activeSection } = this.props;\n\n    if (activeSection === undefined) {\n      return (\n        <div className=\"section_list__error\">\n          Uh oh! Section ID is missing. Maybe sections did not load?\n        </div>\n      );\n    }\n\n    if (isSectionLoaded === false) {\n      return (\n        <div className=\"section_list__loading\">\n          <p className=\"section_list_loading_text\">Fetching section data...</p>\n          <Skeleton />\n        </div>\n      );\n    }\n\n    return (\n      <ListView\n        className=\"section_list\"\n        dataSource={this.dataSource.cloneWithRows(articleData)}\n        pageSize={4}\n        renderRow={(props): JSX.Element => {\n          return (\n            <>\n              <Card\n                {...props}\n                handleClick={(): void => this.handleCardClick(props.id)}\n                key={props.id}\n              />\n              <WhiteSpace />\n            </>\n          );\n        }}\n      />\n    );\n  }\n}\n\ninterface MapStatePropsInterface\n  extends Pick<EditionSectionInterface, \"loaded\" | \"fetching\"> {\n  articleData: ArticleType[];\n}\n\nfunction mapStateToProps(\n  state: StateInterface,\n  ownProps: PropsInterface\n): MapStatePropsInterface {\n  const DEFAULT_SECTION = \"news-lv0\";\n  const { activeEdition, activeSection } = ownProps;\n  const { sections } = state.editions[activeEdition];\n\n  const sectionId = activeSection ? activeSection : DEFAULT_SECTION;\n  const { fetching = false, loaded = false } = sections[sectionId] || {};\n\n  const edition = state.editions[activeEdition];\n\n  const packages =\n    (edition &&\n      activeSection &&\n      edition.sections[activeSection] &&\n      edition.sections[activeSection].packages) ||\n    [];\n\n  const articles = packages\n    .map((packageId): string[] => edition.packages[packageId].articles)\n    .flat();\n\n  const articleData = selectArticles(articles, state.articles);\n\n  return {\n    loaded,\n    fetching,\n    articleData\n  };\n}\n\nexport default connect(\n  mapStateToProps,\n  { loadSectionContent }\n)(SectionList);\n","import React from \"react\";\nimport { handleEnterKeyPress } from \"libs/utils\";\n// @ts-ignore\nimport relativeDate from \"tiny-relative-date\";\nimport \"./SearchResults.css\";\nimport { ArticleType } from \"reducers/articleReducer\";\nimport { store } from \"store/storeConfig\";\n\ninterface PropsInterface {\n  articleIds: string[];\n  searchResults: { id: string; text: string }[];\n  fetchingArticles: boolean;\n  selectArticle: (id: string) => void;\n  selectSection: (id: string) => void;\n}\n\nfunction SearchResult(props: PropsInterface): JSX.Element {\n  const {\n    fetchingArticles,\n    searchResults,\n    selectArticle,\n    selectSection,\n    articleIds\n  } = props;\n\n  const { articles } = store.getState();\n  const articleResults = articleIds\n    .map((id): ArticleType => articles[id])\n    .filter((article): boolean => article !== undefined);\n\n  return (\n    <div className=\"sidebar__search-results\">\n      <section className=\"sidebar__result-block sidebar__result-block--sections\">\n        <h2 className=\"sidebar__list-heading\">Sections</h2>\n        <ul className=\"sidebar__result-list sidebar__result-list--sections\">\n          {searchResults.slice(0, 12).map(\n            (result): JSX.Element => {\n              return (\n                <li\n                  className=\"sidebar__search-result-item\"\n                  key={`result_${result.id}`}\n                >\n                  <button\n                    className=\"sidebar__search-result-btn\"\n                    onClick={(): void => {\n                      selectSection(result.id);\n                    }}\n                    onKeyDown={handleEnterKeyPress((): void => {\n                      selectSection(result.id);\n                    })}\n                  >\n                    {result.text}\n                  </button>\n                </li>\n              );\n            }\n          )}\n        </ul>\n      </section>\n\n      <section className=\"sidebar__result-block sidebar__result-block--articles\">\n        <h2 className=\"sidebar__list-heading\">Articles</h2>\n\n        {fetchingArticles ? (\n          <p className=\"sidebar__article_fetching\">Loading results...</p>\n        ) : (\n          <ul className=\"sidebar__result-list sidebar__result-list--articles\">\n            {articleResults.map(\n              (article): JSX.Element => {\n                return (\n                  <li className=\"sidebar__article_item\" key={article.id}>\n                    <button\n                      className=\"sidebar__article_link sidebar__search-result-btn\"\n                      onClick={(): void => {\n                        selectArticle(article.id);\n                      }}\n                    >\n                      <p className=\"sidebar__article_title\">{article.title}</p>\n\n                      <p className=\"sidebar__article_description\">\n                        {article.snippet}\n                      </p>\n                      {article.datePublished && (\n                        <time\n                          className=\"sidebar__article_date\"\n                          dateTime={article.datePublished}\n                        >\n                          {relativeDate(article.datePublished)}\n                        </time>\n                      )}\n                    </button>\n                  </li>\n                );\n              }\n            )}\n          </ul>\n        )}\n      </section>\n    </div>\n  );\n}\n\nexport default SearchResult;\n","import React from \"react\";\nimport { handleEnterKeyPress } from \"libs/utils\";\nimport { SectionInterface, MiniSectionInterface } from \"data/sections\";\nimport { SECTIONS } from \"data/sections\";\n\nfunction getChildSections(id: string): SectionInterface[] {\n  return Object.values(SECTIONS).filter(\n    (section): boolean => section.parent === id\n  );\n}\n\ninterface PropsInterface {\n  sections: MiniSectionInterface[];\n  selectSection: (id: string) => void;\n  menuType: string | undefined;\n  selectedId: string | undefined;\n}\n\nexport function SectionNavigation(props: PropsInterface): JSX.Element {\n  const { sections, selectSection, menuType = \"\", selectedId } = props;\n\n  const sectionList = sections\n    .filter((s): boolean => s.id !== \"top-stories\")\n    .map(\n      (section): JSX.Element => {\n        return (\n          <li\n            className={`sidebar--cluster ${\n              selectedId === section.id ? \"sidebar--cluster__selected\" : \"\"\n            }`}\n            key={section.id}\n          >\n            <button\n              className=\"sidebar--nav-btn sidebar--cluster-btn\"\n              onClick={(): void => {\n                selectSection(section.id);\n              }}\n              onKeyDown={handleEnterKeyPress((): void => {})}\n            >\n              {section.text}\n            </button>\n            <ul className=\"sidebar--section\">\n              {getChildSections(section.id).map(\n                (s): JSX.Element => {\n                  return (\n                    <li className=\"sidebar--section-item\" key={s.id}>\n                      <button\n                        className=\"sidebar--nav-btn sidebar--section-btn\"\n                        onClick={(): void => {\n                          selectSection(s.id);\n                        }}\n                        onKeyDown={handleEnterKeyPress((): void => {\n                          selectSection(s.id);\n                        })}\n                      >\n                        {s.text}\n                      </button>\n                    </li>\n                  );\n                }\n              )}\n            </ul>\n          </li>\n        );\n      }\n    );\n\n  return (\n    <ul className={`sidebar--nav sidebar--nav__${menuType}`}>{sectionList}</ul>\n  );\n}\n","import React, {\n  PureComponent,\n  createRef,\n  RefObject,\n  SyntheticEvent\n} from \"react\";\nimport { cleanPunctuation } from \"libs/utils\";\nimport { Skeleton } from \"components/Skeleton/Skeleton\";\n\nimport \"./ImageElement.css\";\n\ninterface ImageElementPropsInterface {\n  src: string;\n  isFullWidth?: boolean;\n  caption?: string;\n  altText?: string;\n}\n\ninterface ImageElementStateInterface {\n  hasLoaded: boolean;\n  hasError: boolean;\n}\n\nexport class ImageElement extends PureComponent<\n  ImageElementPropsInterface,\n  ImageElementStateInterface\n> {\n  public constructor(props: ImageElementPropsInterface) {\n    super(props);\n    this.state = {\n      hasLoaded: false,\n      hasError: false\n    };\n  }\n\n  private imgRef: RefObject<HTMLImageElement> = createRef();\n\n  private config = {\n    rootMargin: \"0px 0px 50px 0px\",\n    threshold: 0\n  };\n\n  private handleLoad = (): void => {\n    this.setState({ hasLoaded: true });\n  };\n\n  private handleError = (\n    err: SyntheticEvent<HTMLImageElement, Event>\n  ): void => {\n    const { src } = err.currentTarget;\n    console.warn(`Error loading image ${src}`);\n    this.setState({ hasError: true });\n  };\n\n  public render(): JSX.Element {\n    const { hasLoaded } = this.state;\n    const {\n      src,\n      altText = \"Missing alt text\",\n      caption,\n      isFullWidth\n    } = this.props;\n\n    return (\n      <figure\n        className={`image_element__wrapper ${\n          hasLoaded ? \"\" : \"image_element--loading\"\n        }`}\n      >\n        {hasLoaded === false && <Skeleton height=\"200px\" />}\n\n        <img\n          alt={altText}\n          className={`image_element__image ${\n            isFullWidth ? \"image_element__image--full_width\" : \"\"\n          }`}\n          onError={this.handleError}\n          onLoad={this.handleLoad}\n          ref={this.imgRef}\n          sizes=\"(min-width: 1008px) 620px, (min-width: 730px) 700px, (min-width: 480px) 450px, 100vw\"\n          src={`${src}?imwidth=450`}\n          srcSet={`${src}?imwidth=450 450w,\n            ${src}?imwidth=620 620w,\n            ${src}?imwidth=700 700w,\n            ${src}?imwidth=900 900w,\n            ${src}?imwidth=1240 1240w,\n            ${src}?imwidth=1400 1400w`}\n        />\n\n        {caption && (\n          <figcaption className=\"image_element__caption\">\n            {cleanPunctuation(caption)}\n          </figcaption>\n        )}\n      </figure>\n    );\n  }\n}\n"],"sourceRoot":""}