{"version":3,"file":"js/indigenous-cinema-director-list-page.min.js","mappings":"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","sources":["webpack:///./src/js/sections/indigenous-cinema/_indigenous-cinema-header.ts","webpack:///./src/js/wc/indigenous-cinema/NFBIndigenousCinemaDirectorFilter.ts","webpack:///./src/js/wc/indigenous-cinema/NFBIndigenousCinemaDirectorList.ts","webpack:///./src/sass/wc/NFBAlphaFilter.sass","webpack:///./src/js/wc/NFBAlphabetFilter.ts","webpack:///./src/sass/sections/indigenous-cinema/_reset.sass"],"sourcesContent":["import HorizontalNavManager from '@web-nfb/frontend-static/design-system/script/elements/HorizontalNavManager'\n\ndocument.addEventListener('DOMContentLoaded', () => {\n  const horizontalNav = new HorizontalNavManager()\n  horizontalNav.init()\n})\n","/* ==========================================================================\n  NFBIndigenousCinemaDirectorSelectFilter Web Component\n  ========================================================================== */\n\nimport { LitElement } from 'lit'\nimport { html } from 'lit/static-html.js'\nimport { customElement, property, state } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nimport { store } from '@src/js/redux/store'\nimport { fetchNationList, NationInfo } from '@src/js/redux/nationsReducer'\n\n// @ts-expect-error Lit Sass import\nimport style from '@web-nfb/frontend-static/design-system/sass/elements/select.sass?lit'\n// @ts-expect-error Lit Sass import\nimport filterStyle from '@web-nfb/frontend-static/design-system/sass/elements/filters.sass?lit'\n\n@customElement('nfb-indigenous-cinema-director-filter')\nexport default class NFBIndigenousCinemaDirectorFilter extends LitElement {\n  @property({ type: String, attribute: 'selected-value' })\n  selectedValue = ''\n\n  @state()\n  list: NationInfo[] | null\n\n  static styles = [style, filterStyle]\n\n  getClasses (): Record<string, boolean> {\n    return {\n      'nfb-form': true,\n      'nfb-filters': true,\n      'nfb-form--dark': true,\n      'nfb-filters--dark': true\n    }\n  }\n\n  async connectedCallback () {\n    super.connectedCallback()\n\n    if (store.getState().nations.status === undefined) {\n      await store.dispatch(fetchNationList())\n      this.list = store.getState().nations.list\n    }\n  }\n\n  render () {\n    if (this.list && this.list.length > 0) {\n      return html`\n        <div class=\"${classMap(this.getClasses())}\">\n          <nfb-select-legacy\n            input-id=\"indigenousCinemaDirectorFilter\"\n            list-id=\"indigenous cinema nation list\"\n            option-list=\"${JSON.stringify(this.list)}\"\n            is-compact=\"true\"\n            is-dark=\"true\"\n            selected-value=\"${this.selectedValue}\"\n          >\n          </nfb-select-legacy>\n        </div>`\n    }\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'nfb-indigenous-cinema-director-filter': NFBIndigenousCinemaDirectorFilter\n  }\n}\n","/* ==========================================================================\n  NFBIndigenousCinemaDirectorList Web Component\n  ========================================================================== */\n\nimport { LitElement, nothing, PropertyValues } from 'lit'\nimport { html } from 'lit/static-html.js'\nimport { customElement, property, state } from 'lit/decorators.js'\n\nimport { store } from '@src/js/redux/store'\nimport { WorkDirector } from '@src/js/redux/worksReducer'\nimport { fetchDirectorList, fetchDirectorCountByLetterList } from '@src/js/redux/directorsReducer'\nimport normanPaths from '@src/js/helpers/paths'\nimport { setSelectedLetter } from '@src/js/redux/indigenousCinemaReducer'\nimport NFBSelectLegacy from '@web-nfb/frontend-static/design-system/wc/filters/NFBSelectLegacy'\nimport { ERROR_MESSAGE, GTM_EVENTS } from '@src/js/constants'\n\n// @ts-expect-error Lit Sass import\nimport listingStyles from '@web-nfb/frontend-static/design-system/sass/elements/listing.sass?lit'\n// @ts-expect-error Lit Sass import\nimport pageStyles from '@web-nfb/frontend-static/design-system/sass/elements/page.sass?lit'\n// @ts-expect-error Lit Sass import\nimport resetStyles from '@src/sass/sections/indigenous-cinema/_reset.sass?lit'\n\nconst DEFAULT_NATION_DETAIL_PARAM = '*'\n\n@customElement('nfb-indigenous-cinema-director-list')\nexport default class NFBIndigenousCinemaDirectorList extends LitElement {\n  @property({ type: String, attribute: 'name' })\n  name = ''\n\n  @property({ type: String, attribute: 'list-id' })\n  listId = ''\n\n  @property({ type: String, attribute: 'nation-detail' })\n  nationDetail = DEFAULT_NATION_DETAIL_PARAM\n\n  @property({ type: String, attribute: 'selected-letter' })\n  selectedLetter = ''\n\n  @state()\n  directorList: WorkDirector[] | null = null\n\n  @state()\n  alphaFilterList: object | null\n\n  @state()\n  title: string = ''\n\n  @state()\n  _isLoaded: boolean = false\n\n  @state()\n  errorMessage: string | null = null\n\n  static styles = [listingStyles, pageStyles, resetStyles]\n\n  constructor () {\n    super()\n    this.onStateChanged = this.onStateChanged.bind(this)\n    store.subscribe(this.onStateChanged)\n  }\n\n  async firstUpdated () {\n    document.addEventListener('nfbselect:valuehaschanged', (event) => {\n      event.preventDefault()\n\n      const nfbSelectElement = document.querySelector('nfb-indigenous-cinema-director-filter')?.shadowRoot?.querySelector('nfb-select-legacy') as NFBSelectLegacy\n\n      this.title = nfbSelectElement.getSelectedOptionName()\n      this.nationDetail = nfbSelectElement?.getSelectedOptionValue()\n\n      this.updateURL()\n\n      this._isLoaded = true\n    })\n\n    await store.dispatch(fetchDirectorCountByLetterList({ subset: 'nfb/indigenous-films', indigenous_nation: DEFAULT_NATION_DETAIL_PARAM }))\n    this.alphaFilterList = store.getState().directors.letterList\n  }\n\n  onStateChanged () {\n    if (!this.selectedLetter) {\n      this.selectedLetter = store.getState().indigenousCinema.selectedLetter ?? ''\n    }\n  }\n\n  async updated (_changedProperties: PropertyValues) {\n    if (_changedProperties.has('selectedLetter') && this.selectedLetter) {\n      this._isLoaded = false\n      await store.dispatch(fetchDirectorList({ subset: 'nfb/indigenous-films', size: 999, indigenous_nation: DEFAULT_NATION_DETAIL_PARAM, first_letter: this.selectedLetter }))\n      this.directorList = store.getState().directors.list\n      this.updateURL()\n      this._isLoaded = true\n      this.sendGTMPageViewSpa()\n    }\n\n    if (_changedProperties.has('nationDetail') && this.nationDetail) {\n      if (this.nationDetail !== 'all_nations') {\n        const nationDetailParam = this.nationDetail\n        this.selectedLetter = ''\n        store.dispatch(setSelectedLetter(this.selectedLetter))\n        await store.dispatch(fetchDirectorList({ subset: 'nfb/indigenous-films', size: 999, indigenous_nation: nationDetailParam, first_letter: this.selectedLetter }))\n        this.directorList = store.getState().directors.list\n        this.sendGTMPageViewSpa()\n      }\n    }\n\n    this.errorMessage = store.getState().directors.apiError\n  }\n\n  sendGTMPageViewSpa = () => {\n    window.dataLayer.push({\n      event: GTM_EVENTS.PAGE_VIEW_SPA,\n      nfb_filter_type: 'indigenousNation',\n      nfb_filter_name: `${this.nationDetail}${this.selectedLetter ? `-${this.selectedLetter}` : ''}`,\n      nfb_sortby_name: 'n/a'\n    })\n  }\n\n  updateURL = (): void => {\n    const searchParams = new URLSearchParams(window.location.search)\n    searchParams.set('indigenous_nation', this.nationDetail)\n    if (this.nationDetail === 'all_nations') {\n      if (!this.selectedLetter) {\n        this.selectedLetter = 'a'\n        store.dispatch(setSelectedLetter(this.selectedLetter))\n      }\n      searchParams.set('first_letter', this.selectedLetter)\n    } else {\n      searchParams.delete('first_letter')\n    }\n    window.history.replaceState(null, '', `?${searchParams.toString()}`)\n  }\n\n  onAlphaFilterClick = (event: Event) => {\n    this.selectedLetter = (event.composedPath()[0] as HTMLElement).dataset.value ?? ''\n    store.dispatch(setSelectedLetter(this.selectedLetter))\n  }\n\n  render () {\n    if (this.errorMessage) {\n      return html`\n       <div class=\"nfb-indigenous-cinema\" data-cy=\"error-message\">\n        ${this.errorMessage}\n       </div>\n      `\n    }\n\n    if (!this._isLoaded) {\n      return html`\n      <div class=\"nfb-indigenous-cinema\">\n        <nfb-spinner\n          is-loading=\"true\"\n          is-dark=\"true\"\n        ></nfb-spinner>\n      </div>`\n    }\n\n    return html`\n      <div class=\"nfb-indigenous-cinema\">\n    ${this.selectedLetter\n    ? html`\n        <nfb-alpha-filter\n          selected-letter=\"${this.selectedLetter}\"\n          is-dark=\"true\"\n          list=\"${JSON.stringify(this.alphaFilterList)}\"\n          .onClick=${this.onAlphaFilterClick}\n        >\n        </nfb-alpha-filter>`\n    : nothing}\n        <div class=\"nfb-page__title\">\n        <h1 class=\"${this.selectedLetter ? 'nfb-page__title--uppercase' : nothing}\">${this.selectedLetter || this.title}<span> (${this.directorList?.length})</span></h1>\n        </div>\n          ${this.directorList?.length === 0 ? html`<span data-cy=\"no-result-error\">${ERROR_MESSAGE.NO_RESULT}</span>` : nothing}\n        <div class=\"nfb-listing nfb-listing--dark\">\n          <ul>\n    ${this.directorList?.map((item) => {\n    return html`\n              <li>\n                <a\n                  title=\"${item.last_name}, ${item.first_name}\"\n                  href=\"${normanPaths.directors.replace('{slug}', item.slug)}\"\n                >\n                  ${item.last_name}, ${item.first_name}\n                </a>\n              </li>`\n  })}\n          </ul>\n        </div>\n      </div>`\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'nfb-indigenous-cinema-director-list': NFBIndigenousCinemaDirectorList\n  }\n}\n","import {css} from 'lit';\nexport const styles = css`.nfb-alpha-filter {\n  --nfb-alpha-filter-hover-color: #1C7A3E;\n  --nfb-alpha-filter-text-color: #000000;\n  --nfb-alpha-filter-disabled-color: #B3B2B6;\n  font-family: \"Public Sans\", Georgia, serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n  font-style: normal;\n  font-weight: normal;\n  font-size: 1rem;\n  line-height: 1.5rem;\n  color: #000;\n  text-align: center;\n}\n\n.nfb-alpha-filter ul {\n  list-style-type: none;\n  padding: 0;\n  margin: 0;\n}\n\n.nfb-alpha-filter li {\n  display: inline-block;\n  list-style-type: none;\n}\n\n.nfb-alpha-filter__letter {\n  text-transform: uppercase;\n  display: inline-block;\n  margin: 0;\n  cursor: pointer;\n  text-decoration: none;\n  outline: none;\n  padding-left: 0.25rem;\n  padding-right: 0.25rem;\n  color: var(--nfb-alpha-filter-text-color);\n}\n\n.nfb-alpha-filter__letter:hover {\n  color: var(--nfb-alpha-filter-hover-color);\n  text-decoration: underline;\n}\n\n.nfb-alpha-filter__letter:focus-visible {\n  color: var(--nfb-alpha-filter-hover-color);\n}\n\n.nfb-alpha-filter__letter--selected, .nfb-alpha-filter__letter:focus-visible {\n  text-decoration: underline;\n  text-decoration-thickness: 3px;\n}\n\n.nfb-alpha-filter__letter--disabled {\n  pointer-events: none;\n  cursor: not-allowed;\n  text-decoration: none;\n  color: var(--nfb-alpha-filter-disabled-color);\n}\n\n.nfb-alpha-filter.nfb-alpha-filter--dark {\n  --nfb-alpha-filter-hover-color: #05EE80;\n  --nfb-alpha-filter-text-color: #FFFFFF;\n  --nfb-alpha-filter-disabled-color: #626065;\n}`;\nexport default styles;\n","/* ==========================================================================\n  NFBAlphaFilter Web Component\n  ========================================================================== */\n\nimport { LitElement, nothing } from 'lit'\nimport { html } from 'lit/static-html.js'\nimport { customElement, property } from 'lit/decorators.js'\nimport { classMap } from 'lit/directives/class-map.js'\n\nimport { stringToBooleanConverter } from '@web-nfb/frontend-static/design-system/wc/_utils'\n\n// @ts-expect-error Lit Sass import\nimport style from '@src/sass/wc/NFBAlphaFilter.sass?lit'\n\ninterface AlphaObject {\n  [key: string]: string | undefined\n}\n\n@customElement('nfb-alpha-filter')\nexport default class NFBAlphaFilter extends LitElement {\n  @property({ converter: stringToBooleanConverter, attribute: 'is-dark' })\n  isDark = false\n\n  @property({ type: String, attribute: 'selected-letter' })\n  selectedLetter = ''\n\n  @property({ converter: stringToBooleanConverter, attribute: 'include-number' })\n  includeNumber = false\n\n  @property({ type: Object, attribute: 'list' })\n  list: AlphaObject\n\n  @property()\n  onClick: (e: Event) => void = () => {}\n\n  static styles = [style]\n\n  _alphabet: string[] = 'abcdefghijklmnopqrstuvwxyz'.split('')\n\n  connectedCallback (): void {\n    super.connectedCallback()\n    if (this.includeNumber) {\n      this._alphabet = '#abcdefghijklmnopqrstuvwxyz'.split('')\n    }\n  }\n\n  getClasses (): Record<string, boolean> {\n    return {\n      'nfb-alpha-filter': true,\n      'nfb-alpha-filter--dark': this.isDark\n    }\n  }\n\n  getLetterClasses (letter: string): Record<string, boolean> {\n    return {\n      'nfb-alpha-filter__letter': true,\n      'nfb-alpha-filter__letter--selected': letter === this.selectedLetter,\n      'nfb-alpha-filter__letter--disabled': this.isLetterDisabled(letter)\n    }\n  }\n\n  isLetterDisabled (letter: string): boolean {\n    // If list is not defined, all letters should be active\n    if (!this.list) {\n      return false\n    }\n\n    return this.list[letter] === undefined\n  }\n\n  onKeydown (e: KeyboardEvent): void {\n    // Mimic onClick for Enter and Space event\n    const key: string = e.key\n\n    switch (key) {\n    case 'Enter':\n    case ' ':\n      this.onClick(e)\n      break\n    }\n  }\n\n  render () {\n    return html`\n      <div class=\"${classMap(this.getClasses())}\">\n        <ul>\n          ${this._alphabet.map((letter) => html`\n            <li>\n              <span\n                class=\"${classMap(this.getLetterClasses(letter))}\"\n                tabindex=\"${this.isLetterDisabled(letter) ? nothing : '0'}\"\n                @click=${this.onClick}\n                @keydown=\"${this.onKeydown}\"\n                data-value=\"${letter}\"\n              >\n                ${letter}\n              </span>\n            </li>\n          `)}\n        </ul>\n      </div>`\n  }\n}\n\ndeclare global {\n  interface HTMLElementTagNameMap {\n    'nfb-alpha-filter': NFBAlphaFilter\n  }\n}\n","import {css} from 'lit';\nexport const styles = css`.nfb-indigenous-cinema {\n  min-height: 200px;\n}\n\nul {\n  padding-left: 0;\n}\n\na {\n  text-decoration: none;\n}\n\na:focus-visible {\n  outline: none;\n  text-decoration: underline;\n  color: var(--nfb-listing-link-hover) !important;\n}\n\n.nfb-listing {\n  color: var(--nfb-listing-color) !important;\n}\n\n.nfb-page__title--uppercase {\n  text-transform: uppercase;\n}`;\nexport default styles;\n"],"names":["NFBIndigenousCinemaDirectorFilter","store","DEFAULT_NATION_DETAIL_PARAM","NFBIndigenousCinemaDirectorList","searchParams","event","nfbSelectElement","_changedProperties","nationDetailParam","item","NFBAlphaFilter","letter","e"],"sourceRoot":""}