{"version":3,"names":["CardsOverview","this","recentlyFiltered","onUpdateFavourites","e","updateFavourited","detail","id","isFavourited","async","selectedFilterIds","selectedItems","selectedRating","ratingItems","pageNumber","cards","getCards","handleFavourited","handleScroll","hasInfiniteScroll","handleInfiniteScroll","window","innerHeight","scrollY","document","body","scrollHeight","isScrolled","length","totalItemCount","loadItemsOnScroll","componentWillLoad","amountOfItemsOnPage","urlParams","URLSearchParams","location","search","filterItemsParam","get","cardType","isLoggedIn","getFavourited","groupedFavourites","getFavourites","favouriteProjectKeys","flatMap","group","_a","collection","items","map","item","key","card","includes","push","filter","isLoading","isFiring","emit","apiParams","states","filterIds","rating","maxItems","orderByBoostValue","onlyActiveOrganizations","host","culture","withExternalProjects","withoutApplications","response","getCardsByType","setProps","returnedCards","setTimeout","data","totalPages","Math","ceil","render","paginationContent","h","Host","cardsOverviewType","withAccountPrompt","cardLabel","class","withHighlightedCards","noResultsBlockProps","highlightedHeading","resultsTitle","projectsText","organizations","resultsText","readMoreText","toBeDeterminedText","oneHourCallText","forText","url","recommendedProjectsPage","Pagination","loadPagination","currentPage","isLastPage","isFirstPage","onPageChange","preventDefault","changePageNumber","setPaginationItems","scrollTo","top","content","onClick","ProjectsOverviewFilter","chipsShadowList","ratingFilterList","preselectedFilterItems","filterItemsText","activeItemClass","activeStateClass","filterItems","getFilterItems","_b","filterProps","preselectedMainItems","updateSearchParams","_d","_c","toString","_f","_e","getSearchParam","split","Number","withHiddenSubitems","_g","componentDidLoad","filterByPreselectedFilterItems","isFiringHandler","event","resetFilters","emptyFilter","resetAllActiveStates","handleFilterSelectedItems","skillIds","getSkillsBySkillCluster","chipFilterItems","checkboxChange","target","isRatingFilter","resetChipsList","fillNecessarySelectedItems","deselectAllFilterElements","filterContainer","querySelectorAll","forEach","checked","chipsSub","classList","remove","intId","removeItem","el","getElementById","handleChipFilter","getChipFilterIds","toggleChipsFilter","handleFilterItemSelect","withChipsFilter","updateSearchParam","deleteSearchParam","filterBySelectedItems","fillSelectedItemsList","selectedId","fillList","targetList","filterSelectedChipElements","filterItemId","toggleActive","setInactiveChipContainerClasses","contains","parentElement","add","chipsTriggerContainer","querySelector","containsCheckedItems","setActiveChipContainerClasses","chipsFilterEl","noSkillClustersTextElement","chipFilterItemsContainer","toggleSubitems","nextElementSibling","toggle","toggleExtraSubitems","renderFilterItemContent","subItems","slice","groupTitle","toUpperCase","subItem","type","name","value","onChange","htmlFor","showMoreThemes","renderRatingFilter","ratingText","renderRatingFilterItems","ratingFilterItems","i","renderRatingFilterItem","renderAmountOfHeartIcons","orHigherText","totalAmount","heartIcons","primaryColor","secondaryColor","iconColor","renderResetFilterContent","visibleDesktop","resetFilterText","chipsFilterContent","ref","skillsText","skillClusterSelectText","sideBarScrollable","filterText","toggleSideBar","withSkillsFilter","withCausesFilter","_h","withLocationFilter","_j","withRegionFilter","_k","withRatingFilter","buttonClass","behavior","buttonText","_l","applyFilterText","SideBar","setIsOpen","isOpen","handleResize","innerWidth","sideBar","documentElement","fullScreenSideBar","removeSideBarClasses"],"sources":["./web-components/components/cards/cards-overview.tsx","./web-components/components/pagination/pagination.tsx","./web-components/components/filters/projects-overview-filter.tsx","./web-components/components/components/side-bar.tsx"],"sourcesContent":["import { Component, h, Host, Listen, Prop, State, Event, EventEmitter } from '@stencil/core';\r\nimport { Card } from '../../interfaces/cards/card';\r\nimport { CardType } from '../../interfaces/cards/card-type';\r\nimport { CollectionResponse } from '../../interfaces/api/collection-response';\r\nimport { getCardsByType } from '../../utils/utils';\r\nimport { CardsOverviewType } from '../../interfaces/cards/cards-overview-type';\r\nimport { getFavourites } from '../../services/components/favourite/favourite-api';\r\nimport { ProjectLabel } from '../../interfaces/entities/project/project-label';\r\nimport { StandardBlockProps } from '../../interfaces/components/standard-block-props';\r\n\r\n@Component({\r\n\ttag: 'dng-cards-overview',\r\n})\r\nexport class CardsOverview {\r\n\t@State() cards: Card[] = [];\r\n\t@State() isLoading: boolean = true;\r\n\t@State() selectedFilterIds: Array = null;\r\n\t@State() selectedRating: Array = null;\r\n\r\n\t// Generic props\r\n\t@Prop() readMoreText: string;\r\n\t@Prop() toBeDeterminedText: string;\r\n\t@Prop() oneHourCallText: string;\r\n\t@Prop() isLoggedIn: boolean = false;\r\n\r\n\t@Prop() amountOfItemsOnPage: number;\r\n\t@Prop() cardType: CardType;\r\n\t@Prop() hasInfiniteScroll: boolean;\r\n\t@Prop() isScrolled: boolean = false;\r\n\t@Prop() onlyActiveOrganizations: boolean = false;\r\n\t@Prop() orderByBoostValue: boolean = false;\r\n\t@Prop() pageNumber: number = 1;\r\n\t@Prop() states: string;\r\n\t@Prop() totalItemCount: number;\r\n\t@Prop() totalPages: number;\r\n\t@Prop() culture: string;\r\n\t@Prop() withAccountPrompt: boolean = false;\r\n\t@Prop() withHighlightedCards: boolean = false;\r\n\t@Prop() cardLabel: ProjectLabel;\r\n\t@Prop() highlightedHeading: string;\r\n\t@Prop() forText: string;\r\n\t@Prop() recommendedProjectsPage: string;\r\n\r\n\t@Prop() projectsText: string;\r\n\t@Prop() organizations: string;\r\n\t@Prop() resultsText: string;\r\n\r\n\t@Prop() url: string;\r\n\r\n\t@Prop() noResultsBlockProps: StandardBlockProps;\r\n\r\n\t@Prop() withExternalProjects: boolean = false;\r\n\t@Prop() withoutApplications: boolean;\r\n\r\n\t@State() favouriteProjectKeys: Array = [];\r\n\r\n\tprivate recentlyFiltered: boolean = false;\r\n\r\n\t@Event({ bubbles: true, composed: true })\r\n\tisFiring: EventEmitter;\r\n\r\n\t@Listen('update-favourites', { target: 'document' })\r\n\tonUpdateFavourites(e: CustomEvent) {\r\n\t\tthis.updateFavourited(e.detail.id, e.detail.isFavourited);\r\n\t}\r\n\r\n\t@Listen('filterBySelectedItems', { target: 'document' })\r\n\tasync onFilterItemsSelected(e: CustomEvent) {\r\n\t\tif (e.detail) {\r\n\t\t\tthis.selectedFilterIds = e.detail.selectedItems;\r\n\t\t\tthis.selectedRating = e.detail.ratingItems;\r\n\t\t\tif (e.detail.pageNumber) {\r\n\t\t\t\tthis.pageNumber = e.detail.pageNumber;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tthis.recentlyFiltered = true;\r\n\t\tthis.cards = await this.getCards();\r\n\r\n\t\tthis.handleFavourited();\r\n\t}\r\n\r\n\t@Listen('changePageNumber', { target: 'document' })\r\n\tasync onPageChanged(e: CustomEvent) {\r\n\t\tif (!this.recentlyFiltered) {\r\n\t\t\tif (e.detail) {\r\n\t\t\t\tthis.pageNumber = e.detail;\r\n\t\t\t}\r\n\t\t\tthis.cards = await this.getCards();\r\n\t\t}\r\n\t\tthis.recentlyFiltered = false;\r\n\t}\r\n\r\n\t@Listen('scroll', { target: 'window' })\r\n\thandleScroll() {\r\n\t\tif (this.hasInfiniteScroll) {\r\n\t\t\tthis.handleInfiniteScroll();\r\n\t\t}\r\n\t}\r\n\r\n\thandleInfiniteScroll() {\r\n\t\tif (\r\n\t\t\twindow.innerHeight + window.scrollY >= document.body.scrollHeight - 500 &&\r\n\t\t\t!this.isScrolled &&\r\n\t\t\tthis.cards.length < this.totalItemCount\r\n\t\t) {\r\n\t\t\tthis.loadItemsOnScroll();\r\n\t\t}\r\n\t}\r\n\r\n\tcomponentWillLoad() {\r\n\t\tif (this.hasInfiniteScroll) {\r\n\t\t\tthis.amountOfItemsOnPage = this.amountOfItemsOnPage > 0 ? this.amountOfItemsOnPage : 24;\r\n\t\t}\r\n\t}\r\n\r\n\tasync componentDidLoad() {\r\n\t\t// Check if filterBySelectedItems event has been fired\r\n\t\tif (!this.selectedFilterIds || !this.selectedRating || this.pageNumber !== 1) {\r\n\t\t\t// Check if there is a non-empty filterItems query string\r\n\t\t\tconst urlParams = new URLSearchParams(window.location.search);\r\n\t\t\tconst filterItemsParam = urlParams.get('filterItems');\r\n\t\t\tif (!filterItemsParam) {\r\n\t\t\t\t// If neither event fired nor non-empty filterItems query string\r\n\t\t\t\tif (this.cardType == CardType.Project && this.isLoggedIn) {\r\n\t\t\t\t\tawait this.getFavourited();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tthis.cards = await this.getCards();\r\n\t\t\t}\r\n\t\t\tthis.handleFavourited();\r\n\t\t}\r\n\r\n\t\tthis.handleScroll();\r\n\t}\r\n\r\n\tasync getFavourited() {\r\n\t\tconst groupedFavourites = await getFavourites();\r\n\t\tthis.favouriteProjectKeys = groupedFavourites.flatMap((group) =>\r\n\t\t\tgroup.collection?.items.map((item) => item.key)\r\n\t\t);\r\n\t}\r\n\r\n\thandleFavourited() {\r\n\t\tthis.cards = this.cards.map((card) => {\r\n\t\t\tcard.isFavourited = this.favouriteProjectKeys.includes(card.key);\r\n\t\t\treturn card;\r\n\t\t});\r\n\t}\r\n\r\n\tupdateFavourited(key: string, isFavourited: boolean) {\r\n\t\tif (isFavourited) {\r\n\t\t\tthis.favouriteProjectKeys.push(key);\r\n\t\t} else {\r\n\t\t\tthis.favouriteProjectKeys = this.favouriteProjectKeys.filter((item) => item !== key);\r\n\t\t}\r\n\t}\r\n\r\n\tasync getCards() {\r\n\t\tthis.isLoading = true;\r\n\t\tthis.isFiring.emit(true);\r\n\t\tconst apiParams = {\r\n\t\t\tstates: this.states,\r\n\t\t\tfilterIds: this.selectedFilterIds,\r\n\t\t\trating: this.selectedRating,\r\n\t\t\tmaxItems: this.amountOfItemsOnPage,\r\n\t\t\tpageNumber: this.pageNumber,\r\n\t\t\torderByBoostValue: this.orderByBoostValue,\r\n\t\t\tonlyActiveOrganizations: this.onlyActiveOrganizations,\r\n\t\t\thost: window.location.host,\r\n\t\t\tculture: this.culture,\r\n\t\t\twithExternalProjects: this.withExternalProjects,\r\n\t\t\twithoutApplications: this.withoutApplications,\r\n\t\t};\r\n\r\n\t\tlet response = await getCardsByType(this.cardType, apiParams);\r\n\r\n\t\tthis.setProps(response);\r\n\t\treturn response.items;\r\n\t}\r\n\r\n\tasync loadItemsOnScroll() {\r\n\t\tthis.isScrolled = true;\r\n\t\tthis.pageNumber++;\r\n\r\n\t\tlet returnedCards = await this.getCards();\r\n\t\tthis.cards = [...this.cards, ...returnedCards];\r\n\r\n\t\tthis.handleFavourited();\r\n\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.isScrolled = false;\r\n\t\t}, 2000);\r\n\t}\r\n\r\n\tsetProps(data: CollectionResponse) {\r\n\t\tthis.amountOfItemsOnPage = data.maxItems;\r\n\t\tthis.totalPages = Math.ceil(data.totalItemCount / data.maxItems);\r\n\t\tthis.totalItemCount = data.totalItemCount;\r\n\t\tthis.isLoading = false;\r\n\t\tthis.isFiring.emit(false);\r\n\t}\r\n\r\n\trender() {\r\n\t\tlet paginationContent = !this.hasInfiniteScroll && (\r\n\t\t\t\r\n\t\t);\r\n\t\treturn (\r\n\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t{paginationContent}\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n}\r\n","import { Component, h, Host, Prop, Event, EventEmitter, Watch } from '@stencil/core';\r\n\r\n@Component({\r\n\ttag: 'dng-pagination',\r\n})\r\nexport class Pagination {\r\n\t@Prop() currentPage: number = 1;\r\n\t@Prop() pageNumber: number;\r\n\t@Prop() totalPages: number = 1;\r\n\t@Prop() isFirstPage: boolean = true;\r\n\t@Prop() isLastPage: boolean = true;\r\n\r\n\t@Event({ bubbles: true, composed: true })\r\n\tchangePageNumber: EventEmitter;\r\n\r\n\t@Watch('totalPages')\r\n\tloadPagination() {\r\n\t\tthis.currentPage = 1;\r\n\t\tthis.totalPages = this.totalPages || 1;\r\n\t\tthis.isLastPage = this.totalPages > 1 ? false : true;\r\n\t\tthis.isFirstPage = true;\r\n\t}\r\n\r\n\tonPageChange(e: Event, pageNumber: number) {\r\n\t\te.preventDefault();\r\n\t\tthis.changePageNumber.emit(pageNumber);\r\n\t\tthis.setPaginationItems(pageNumber);\r\n\t\twindow.scrollTo({ top: 0 });\r\n\t}\r\n\r\n\tsetPaginationItems(pageNumber: number) {\r\n\t\tthis.currentPage = pageNumber;\r\n\t\tthis.isFirstPage = pageNumber == 1;\r\n\t\tthis.isLastPage = pageNumber == this.totalPages;\r\n\t}\r\n\r\n\trender() {\r\n\t\tlet content = '';\r\n\t\tcontent = (\r\n\t\t\t
\r\n\t\t\t\t
    \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tthis.onPageChange(e, this.currentPage - 1);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\t{this.currentPage} / {this.totalPages}\r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t
  • \r\n\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\tthis.onPageChange(e, this.currentPage + 1);\r\n\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t
  • \r\n\t\t\t\t
\r\n\t\t\t
\r\n\t\t);\r\n\t\treturn {content};\r\n\t}\r\n}\r\n","import { Component, h, Host, Prop, State, Event, EventEmitter, Listen } from '@stencil/core';\r\nimport { GroupedCollectionResponse } from '../../interfaces/api/grouped-collection-response';\r\nimport { Tag } from '../../interfaces/dataElement/tag';\r\nimport { FilterSelectedItems } from '../../interfaces/eventEmitters/filter-selected-items';\r\nimport { FilterProps } from '../../interfaces/filter/filter-props';\r\nimport { getSkillsBySkillCluster } from '../../services/data-types/skills/skills-api';\r\nimport { getFilterItems } from '../../services/shared/filter-api';\r\nimport { removeItem } from '../../utils/utils';\r\nimport { FilterType } from '../../interfaces/filter/filter-type';\r\nimport {\r\n\tupdateSearchParams,\r\n\tdeleteSearchParam,\r\n\tgetSearchParam,\r\n} from '../../utils/search-param-utils';\r\n\r\n@Component({\r\n\ttag: 'dng-projects-overview-filter',\r\n})\r\nexport class ProjectsOverviewFilter {\r\n\t@State() filterItems: GroupedCollectionResponse[];\r\n\t@State() isFiring: boolean;\r\n\t@State() chipFilterItems: Tag[] = [];\r\n\t@State() withHiddenSubitems: boolean;\r\n\r\n\t@Prop() filterProps: FilterProps;\r\n\t@Prop() isLoading: boolean;\r\n\t@Prop() sideBarScrollable: boolean;\r\n\r\n\tprivate filterContainer: HTMLElement;\r\n\tprivate noSkillClustersTextElement: HTMLElement;\r\n\r\n\tprivate chipsFilterEl: HTMLElement;\r\n\tprivate chipsShadowList: number[] = [];\r\n\tprivate chipsSub: HTMLElement;\r\n\tprivate chipFilterItemsContainer: HTMLElement;\r\n\tprivate ratingFilterList: number[] = [];\r\n\tprivate selectedItems: number[] = [];\r\n\tprivate preselectedFilterItems: number[] = [];\r\n\r\n\tprivate filterItemsText: string = 'filterItems';\r\n\tprivate activeItemClass: string = 'item--active';\r\n\tprivate activeStateClass: string = 'is-active';\r\n\r\n\tasync componentWillLoad() {\r\n\t\tthis.filterItems = await getFilterItems(FilterType.Project);\r\n\t\tthis.filterProps?.preselectedMainItems?.length > 0 &&\r\n\t\t\tupdateSearchParams({\r\n\t\t\t\t[this.filterItemsText]: this.filterProps?.preselectedMainItems?.toString(),\r\n\t\t\t});\r\n\r\n\t\tthis.preselectedFilterItems = getSearchParam(this.filterItemsText)?.split(',')?.map(Number);\r\n\t\tthis.withHiddenSubitems = this.preselectedFilterItems?.length <= 0;\r\n\t}\r\n\r\n\tcomponentDidLoad() {\r\n\t\tthis.preselectedFilterItems?.length > 0 && this.filterByPreselectedFilterItems();\r\n\t}\r\n\r\n\t@Event({ bubbles: true, composed: true })\r\n\tfilterBySelectedItems: EventEmitter;\r\n\r\n\t@Event({ bubbles: true, composed: true })\r\n\tgetChipFilterItems: EventEmitter;\r\n\r\n\t@Event({ bubbles: true, composed: true })\r\n\ttoggleSideBar: EventEmitter;\r\n\r\n\t@Event({ bubbles: true, composed: true })\r\n\tchangePageNumber: EventEmitter;\r\n\r\n\t@Listen('isFiring', { target: 'document' })\r\n\tisFiringHandler(event: CustomEvent) {\r\n\t\tthis.isFiring = event.detail;\r\n\t}\r\n\r\n\t@Listen('resetFilters', { target: 'document' })\r\n\tresetFilters() {\r\n\t\tthis.emptyFilter();\r\n\t\tthis.resetAllActiveStates();\r\n\t\tthis.handleFilterSelectedItems();\r\n\t}\r\n\r\n\tasync getChipFilterIds() {\r\n\t\tconst skillIds = await getSkillsBySkillCluster(this.selectedItems);\r\n\t\tthis.chipFilterItems = skillIds?.items;\r\n\t}\r\n\r\n\tcheckboxChange(target: HTMLFormElement, isRatingFilter: boolean = false) {\r\n\t\tthis.resetChipsList();\r\n\t\tthis.fillNecessarySelectedItems(target, isRatingFilter);\r\n\t}\r\n\r\n\temptyFilter() {\r\n\t\tthis.selectedItems = [];\r\n\t\tthis.ratingFilterList = [];\r\n\t}\r\n\r\n\tdeselectAllFilterElements() {\r\n\t\tthis.filterContainer\r\n\t\t\t.querySelectorAll('input[type=checkbox]:checked')\r\n\t\t\t?.forEach((item: HTMLFormElement) => (item.checked = false));\r\n\t\tthis.chipsSub\r\n\t\t\t?.querySelectorAll('.chip-filter__item')\r\n\t\t\t.forEach((item: HTMLElement) => item.classList.remove(this.activeItemClass));\r\n\t}\r\n\r\n\tfillNecessarySelectedItems(target: HTMLFormElement, isRatingFilter: boolean) {\r\n\t\tconst intId = +target.id;\r\n\t\tif (!isRatingFilter) {\r\n\t\t\tthis.resetChipsList();\r\n\t\t\ttarget.checked == true && !this.selectedItems?.includes(intId)\r\n\t\t\t\t? this.selectedItems.push(intId)\r\n\t\t\t\t: removeItem(this.selectedItems, intId);\r\n\t\t} else {\r\n\t\t\ttarget.checked == true && !this.ratingFilterList?.includes(intId)\r\n\t\t\t\t? this.ratingFilterList.push(intId)\r\n\t\t\t\t: removeItem(this.ratingFilterList, intId);\r\n\t\t}\r\n\t}\r\n\r\n\tfilterByPreselectedFilterItems() {\r\n\t\tthis.preselectedFilterItems?.forEach((id) => {\r\n\t\t\tconst el = document.getElementById(id.toString()) as HTMLFormElement;\r\n\t\t\tif (el) {\r\n\t\t\t\tel.checked = true;\r\n\t\t\t\tthis.checkboxChange(el);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tthis.handleChipFilter();\r\n\t\tthis.handleFilterSelectedItems();\r\n\t}\r\n\r\n\thandleChipFilter() {\r\n\t\tthis.chipFilterItems = [];\r\n\t\tthis.getChipFilterIds();\r\n\t\tthis.toggleChipsFilter();\r\n\t}\r\n\r\n\thandleFilterItemSelect(\r\n\t\tel: HTMLFormElement,\r\n\t\twithChipsFilter: boolean,\r\n\t\tisRatingFilter: boolean = false\r\n\t) {\r\n\t\tthis.checkboxChange(el, isRatingFilter);\r\n\t\tif (withChipsFilter) {\r\n\t\t\tthis.handleChipFilter();\r\n\t\t}\r\n\t\tthis.handleFilterSelectedItems();\r\n\t}\r\n\r\n\tupdateSearchParam() {\r\n\t\tif (this.selectedItems.length > 0) {\r\n\t\t\tupdateSearchParams({ [this.filterItemsText]: this.selectedItems.toString() });\r\n\t\t} else {\r\n\t\t\tdeleteSearchParam(this.filterItemsText);\r\n\t\t}\r\n\t}\r\n\r\n\thandleFilterSelectedItems() {\r\n\t\tthis.filterBySelectedItems.emit({\r\n\t\t\tselectedItems: this.selectedItems,\r\n\t\t\tratingItems: this.ratingFilterList,\r\n\t\t});\r\n\t\tthis.changePageNumber.emit(1);\r\n\t\tthis.updateSearchParam();\r\n\t}\r\n\r\n\tfillSelectedItemsList(selectedId: number) {\r\n\t\tthis.fillList(selectedId, this.chipsShadowList);\r\n\t\tthis.fillList(selectedId, this.selectedItems);\r\n\t}\r\n\r\n\tfillList(selectedId: number, targetList: number[]) {\r\n\t\tif (targetList.includes(selectedId)) {\r\n\t\t\tremoveItem(targetList, selectedId);\r\n\t\t} else {\r\n\t\t\ttargetList.push(selectedId);\r\n\t\t}\r\n\t}\r\n\r\n\tfilterSelectedChipElements(target: HTMLElement, filterItemId: number) {\r\n\t\tthis.toggleActive(target);\r\n\t\tthis.fillSelectedItemsList(filterItemId);\r\n\t\tthis.handleFilterSelectedItems();\r\n\t}\r\n\r\n\tresetAllActiveStates() {\r\n\t\tthis.deselectAllFilterElements();\r\n\t\tthis.setInactiveChipContainerClasses();\r\n\t}\r\n\r\n\tresetChipsList() {\r\n\t\tthis.selectedItems = this.selectedItems?.filter((el) => !this.chipsShadowList.includes(el));\r\n\t}\r\n\r\n\ttoggleActive(item: HTMLElement) {\r\n\t\twhile (!item.classList.contains('chip-filter__item')) {\r\n\t\t\titem = item.parentElement;\r\n\t\t}\r\n\t\tif (item.classList.contains(this.activeItemClass)) {\r\n\t\t\titem.classList.remove(this.activeItemClass);\r\n\t\t} else {\r\n\t\t\titem.classList.add(this.activeItemClass);\r\n\t\t}\r\n\t}\r\n\r\n\ttoggleChipsFilter() {\r\n\t\tconst chipsTriggerContainer = document.querySelector('.chips-trigger__container');\r\n\t\tconst containsCheckedItems =\r\n\t\t\tchipsTriggerContainer.querySelectorAll('input[type=checkbox]:checked').length > 0;\r\n\t\tif (containsCheckedItems) {\r\n\t\t\tthis.setActiveChipContainerClasses();\r\n\t\t} else {\r\n\t\t\tthis.setInactiveChipContainerClasses();\r\n\t\t}\r\n\t}\r\n\r\n\tsetActiveChipContainerClasses() {\r\n\t\tthis.chipsFilterEl?.querySelector('.dropdown__icon')?.classList.add(this.activeStateClass);\r\n\t\tthis.chipsFilterEl?.classList.add(this.activeStateClass);\r\n\t\tthis.noSkillClustersTextElement?.classList.add('hidden');\r\n\t\tthis.chipsSub?.classList.add(this.activeStateClass);\r\n\t\tthis.chipFilterItemsContainer?.classList.remove('hidden');\r\n\t}\r\n\r\n\tsetInactiveChipContainerClasses() {\r\n\t\tthis.chipsFilterEl?.querySelector('.dropdown__icon')?.classList.remove(this.activeStateClass);\r\n\t\tthis.chipsSub?.classList.remove(this.activeStateClass);\r\n\t\tthis.chipsFilterEl?.classList.remove(this.activeStateClass);\r\n\t\tthis.noSkillClustersTextElement?.classList.remove('hidden');\r\n\t\tthis.chipFilterItemsContainer?.classList.add('hidden');\r\n\t}\r\n\r\n\ttoggleSubitems(e: MouseEvent) {\r\n\t\tlet target = e.target as Element;\r\n\t\twhile (target && !target.classList.contains('filter__item-toggle')) {\r\n\t\t\ttarget = target.parentElement;\r\n\t\t}\r\n\t\ttarget?.nextElementSibling?.classList.toggle(this.activeStateClass);\r\n\t\ttarget?.querySelector('.dropdown__icon')?.classList.toggle(this.activeStateClass);\r\n\t}\r\n\r\n\ttoggleExtraSubitems() {\r\n\t\tthis.withHiddenSubitems = !this.withHiddenSubitems;\r\n\t}\r\n\r\n\trenderFilterItemContent(\r\n\t\titem: GroupedCollectionResponse,\r\n\t\twithChipsFilter: boolean = false,\r\n\t\twithHiddenSubitems: boolean = false\r\n\t) {\r\n\t\tconst subItems = !withHiddenSubitems\r\n\t\t\t? item.collection?.items\r\n\t\t\t: item.collection?.items?.slice(0, 5);\r\n\t\treturn (\r\n\t\t\t
    \r\n\t\t\t\t
  • \r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tthis.toggleSubitems(e);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\t{item.groupTitle?.toUpperCase()}\r\n\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t\t{subItems?.map((subItem: Tag) => (\r\n\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t\t\t\tthis.handleFilterItemSelect(e.target as HTMLFormElement, withChipsFilter)\r\n\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t/>\r\n\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t
  • \r\n\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t{withHiddenSubitems && (\r\n\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\tthis.toggleExtraSubitems();\r\n\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t{this.filterProps?.showMoreThemes}\r\n\t\t\t\t\t\t\t

    \r\n\t\t\t\t\t\t)}\r\n\t\t\t\t\t
\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\trenderRatingFilter() {\r\n\t\treturn (\r\n\t\t\t
\r\n\t\t\t\t {\r\n\t\t\t\t\t\tthis.toggleSubitems(e);\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\t{this.filterProps?.ratingText?.toUpperCase()}\r\n\t\t\t\t\t

\r\n\t\t\t\t\t\r\n\t\t\t\t
\r\n\t\t\t\t
    \r\n\t\t\t\t\t{this.renderRatingFilterItems()}\r\n\t\t\t\t
\r\n\t\t\t\r\n\t\t);\r\n\t}\r\n\r\n\trenderRatingFilterItems() {\r\n\t\tconst ratingFilterItems = [];\r\n\t\tfor (let i = 5; i > 0; i--) {\r\n\t\t\tratingFilterItems.push(this.renderRatingFilterItem(i));\r\n\t\t}\r\n\t\treturn ratingFilterItems;\r\n\t}\r\n\r\n\trenderRatingFilterItem(rating: number) {\r\n\t\treturn (\r\n\t\t\t
  • \r\n\t\t\t\t\r\n\t\t\t\t\t\tthis.handleFilterItemSelect(e.target as HTMLFormElement, false, true)\r\n\t\t\t\t\t}\r\n\t\t\t\t/>\r\n\t\t\t\t\r\n\t\t\t
  • \r\n\t\t);\r\n\t}\r\n\r\n\trenderAmountOfHeartIcons(rating: number, totalAmount: number) {\r\n\t\tconst heartIcons = [];\r\n\t\tconst primaryColor = 'filter--color-brand-secondary';\r\n\t\tconst secondaryColor = 'filter--color-background-primary';\r\n\t\tfor (let i = 0; i < totalAmount; i++) {\r\n\t\t\tconst iconColor = i < rating ? primaryColor : secondaryColor;\r\n\t\t\theartIcons.push(
    );\r\n\t\t}\r\n\t\treturn heartIcons;\r\n\t}\r\n\r\n\trenderResetFilterContent(visibleDesktop: boolean = true) {\r\n\t\treturn (\r\n\t\t\t this.resetFilters()}\r\n\t\t\t>\r\n\t\t\t\t{this.filterProps?.resetFilterText}\r\n\t\t\t

    \r\n\t\t);\r\n\t}\r\n\r\n\trender() {\r\n\t\tlet content: HTMLElement;\r\n\r\n\t\tconst chipsFilterContent = (\r\n\t\t\t
    (this.chipsFilterEl = el as HTMLElement)}>\r\n\t\t\t\t {\r\n\t\t\t\t\t\tthis.toggleSubitems(e);\r\n\t\t\t\t\t}}\r\n\t\t\t\t>\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t{this.filterProps?.skillsText?.toUpperCase()}\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\t (this.chipsSub = el as HTMLElement)}\r\n\t\t\t\t>\r\n\t\t\t\t\t (this.noSkillClustersTextElement = el as HTMLElement)}\r\n\t\t\t\t\t>\r\n\t\t\t\t\t\t{this.filterProps?.skillClusterSelectText}\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t
    \r\n\t\t\t\t\t\t (this.chipFilterItemsContainer = el as HTMLElement)}\r\n\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t{this.chipFilterItems?.map((item: Tag) => (\r\n\t\t\t\t\t\t\t\t {\r\n\t\t\t\t\t\t\t\t\t\tthis.filterSelectedChipElements(e.target as HTMLElement, item.key);\r\n\t\t\t\t\t\t\t\t\t}}\r\n\t\t\t\t\t\t\t\t>\r\n\t\t\t\t\t\t\t\t\t

    {item.value}

    \r\n\t\t\t\t\t\t\t\t
    \r\n\t\t\t\t\t\t\t))}\r\n\t\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\r\n\t\t);\r\n\r\n\t\tcontent = (\r\n\t\t\t (this.filterContainer = el as HTMLElement)}\r\n\t\t\t\tclass={this.sideBarScrollable && `sidebar__container--scrollable`}\r\n\t\t\t>\r\n\t\t\t\t
    \r\n\t\t\t\t\t

    \r\n\t\t\t\t\t\t{this.filterProps?.filterText}\r\n\t\t\t\t\t

    \r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tthis.toggleSideBar.emit(false);\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t{this.renderResetFilterContent()}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t{this.renderFilterItemContent(this.filterItems[0], true)}\r\n\t\t\t\t\t{this.filterProps?.withSkillsFilter && chipsFilterContent}\r\n\t\t\t\t\t{this.filterProps?.withCausesFilter &&\r\n\t\t\t\t\t\tthis.renderFilterItemContent(this.filterItems[1], false, this.withHiddenSubitems)}\r\n\t\t\t\t\t{this.filterProps?.withLocationFilter &&\r\n\t\t\t\t\t\tthis.renderFilterItemContent(this.filterItems[2], false)}\r\n\t\t\t\t\t{this.filterProps?.withRegionFilter && this.renderFilterItemContent(this.filterItems[3])}\r\n\t\t\t\t\t{this.filterProps?.withRatingFilter && this.renderRatingFilter()}\r\n\t\t\t\t
    \r\n\t\t\t\t
    \r\n\t\t\t\t\t {\r\n\t\t\t\t\t\t\tthis.toggleSideBar.emit(false);\r\n\t\t\t\t\t\t\twindow.scrollTo({ top: 0, behavior: 'smooth' });\r\n\t\t\t\t\t\t}}\r\n\t\t\t\t\t\tbuttonText={this.filterProps?.applyFilterText}\r\n\t\t\t\t\t/>\r\n\t\t\t\t\t{this.renderResetFilterContent(false)}\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t);\r\n\t\treturn {content};\r\n\t}\r\n}\r\n","import { Component, h, Host, Prop, Watch, Listen, State } from '@stencil/core';\r\nimport { FilterProps } from '../../interfaces/filter/filter-props';\r\n\r\n@Component({\r\n\ttag: 'dng-side-bar',\r\n})\r\nexport class SideBar {\r\n\t@Prop() filterProps: FilterProps;\r\n\r\n\t@Prop() fullScreenSideBar: boolean = false;\r\n\t@Prop() sideBarScrollable: boolean = false;\r\n\r\n\t@State() isOpen: boolean = false;\r\n\r\n\tprivate sideBar: HTMLElement;\r\n\r\n\t@Listen('toggleSideBar', { target: 'document' })\r\n\tsetIsOpen() {\r\n\t\tthis.isOpen = !this.isOpen;\r\n\t}\r\n\r\n\t@Listen('resize', { target: 'window' })\r\n\thandleResize() {\r\n\t\tif (window.innerWidth > 425) {\r\n\t\t\tthis.isOpen = false;\r\n\t\t}\r\n\t}\r\n\r\n\t@Watch('isOpen')\r\n\ttoggleSideBar() {\r\n\t\tif (this.isOpen) {\r\n\t\t\tthis.sideBar.classList.add('menu__sidebar--open');\r\n\t\t\tdocument.documentElement.classList.add('lightbox-is-open');\r\n\t\t\tif (this.fullScreenSideBar) {\r\n\t\t\t\tthis.sideBar.classList.add('sidebar--full-screen');\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\tthis.removeSideBarClasses();\r\n\t\t\tdocument.documentElement.classList.remove('lightbox-is-open');\r\n\t\t}\r\n\t}\r\n\r\n\tremoveSideBarClasses() {\r\n\t\tthis.sideBar.classList.remove('menu__sidebar--open', 'sidebar--full-screen');\r\n\t}\r\n\r\n\trender() {\r\n\t\tlet content: HTMLElement;\r\n\t\tcontent = (\r\n\t\t\t
    \r\n\t\t\t\t (this.sideBar = el as HTMLElement)}\r\n\t\t\t\t>\r\n\t\t\t\t\t\r\n\t\t\t\t
    \r\n\t\t\t\r\n\t\t);\r\n\t\treturn {content};\r\n\t}\r\n}\r\n"],"mappings":"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"}