@zengenti/contensis-react-base 4.0.0-beta.2 → 4.0.0-beta.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +7 -0
- package/README.md +24 -478
- package/cjs/{App-b56aca04.js → App-C_1U2j24.js} +218 -236
- package/cjs/App-C_1U2j24.js.map +1 -0
- package/cjs/{ChangePassword.container-ae35785e.js → ChangePassword.container-H4i1yRi6.js} +240 -315
- package/cjs/ChangePassword.container-H4i1yRi6.js.map +1 -0
- package/cjs/{ContensisDeliveryApi-4fcf049d.js → ContensisDeliveryApi-lcZ45Kxx.js} +125 -118
- package/cjs/ContensisDeliveryApi-lcZ45Kxx.js.map +1 -0
- package/cjs/{CookieConstants-000427db.js → CookieConstants-DfPiWCRZ.js} +3 -1
- package/cjs/CookieConstants-DfPiWCRZ.js.map +1 -0
- package/cjs/CookieHelper.class-Det3qfdU.js +462 -0
- package/cjs/CookieHelper.class-Det3qfdU.js.map +1 -0
- package/cjs/{RouteLoader-c06dccd5.js → RouteLoader-CAkG-Y5y.js} +62 -74
- package/cjs/RouteLoader-CAkG-Y5y.js.map +1 -0
- package/cjs/SSRContext-ciyKagks.js +71 -0
- package/cjs/SSRContext-ciyKagks.js.map +1 -0
- package/cjs/ToJs-BsWqWjdm.js +23 -0
- package/cjs/ToJs-BsWqWjdm.js.map +1 -0
- package/cjs/VersionInfo-D0mF1vkY.js +204 -0
- package/cjs/VersionInfo-D0mF1vkY.js.map +1 -0
- package/cjs/{_commonjsHelpers-b3309d7b.js → _commonjsHelpers-BJu3ubxk.js} +1 -1
- package/cjs/_commonjsHelpers-BJu3ubxk.js.map +1 -0
- package/cjs/client.js +47 -71
- package/cjs/client.js.map +1 -1
- package/cjs/contensis-react-base.js +645 -3303
- package/cjs/contensis-react-base.js.map +1 -1
- package/cjs/{fromJSLeaveImmer-e74c673c.js → fromJSLeaveImmer-Blvlk4t2.js} +3 -7
- package/{esm/fromJSLeaveImmer-0114ffcf.js.map → cjs/fromJSLeaveImmer-Blvlk4t2.js.map} +1 -1
- package/cjs/{ToJs-a8d8f3f0.js → matchGroups-CNt2aNoC.js} +22 -96
- package/cjs/matchGroups-CNt2aNoC.js.map +1 -0
- package/cjs/redux.js +20 -20
- package/cjs/redux.js.map +1 -1
- package/cjs/routing.js +19 -7
- package/cjs/routing.js.map +1 -1
- package/cjs/sagas-CMBI1syl.js +5835 -0
- package/cjs/sagas-CMBI1syl.js.map +1 -0
- package/cjs/search.js +119 -321
- package/cjs/search.js.map +1 -1
- package/cjs/selectors-Bp_TrwG5.js +468 -0
- package/cjs/selectors-Bp_TrwG5.js.map +1 -0
- package/cjs/{version-34d91f68.js → store-CO5xslDu.js} +44 -114
- package/cjs/store-CO5xslDu.js.map +1 -0
- package/cjs/user.js +28 -33
- package/cjs/user.js.map +1 -1
- package/cjs/util-CTvFvplw.js +148 -0
- package/cjs/util-CTvFvplw.js.map +1 -0
- package/cjs/util.js +87 -215
- package/cjs/util.js.map +1 -1
- package/cjs/version-BolvQdgT.js +20 -0
- package/cjs/version-BolvQdgT.js.map +1 -0
- package/cjs/{version-a410c88e.js → version-DabwEeLw.js} +19 -22
- package/{esm/version-9f29becb.js.map → cjs/version-DabwEeLw.js.map} +1 -1
- package/esm/{App-83107d7e.js → App-DdEKwCTJ.js} +178 -196
- package/esm/App-DdEKwCTJ.js.map +1 -0
- package/esm/{ChangePassword.container-76fd5e9b.js → ChangePassword.container-BzycNMRX.js} +193 -250
- package/esm/ChangePassword.container-BzycNMRX.js.map +1 -0
- package/esm/{ContensisDeliveryApi-fe57a037.js → ContensisDeliveryApi-BgfEEyIk.js} +124 -119
- package/esm/ContensisDeliveryApi-BgfEEyIk.js.map +1 -0
- package/esm/{CookieConstants-3d3b6531.js → CookieConstants-DEmbwzYr.js} +3 -2
- package/esm/CookieConstants-DEmbwzYr.js.map +1 -0
- package/esm/CookieHelper.class-C6rTRl_1.js +459 -0
- package/esm/CookieHelper.class-C6rTRl_1.js.map +1 -0
- package/esm/{RouteLoader-29fd689a.js → RouteLoader-Bk6e6UV-.js} +46 -58
- package/esm/RouteLoader-Bk6e6UV-.js.map +1 -0
- package/esm/SSRContext-CXRqYy6B.js +63 -0
- package/esm/SSRContext-CXRqYy6B.js.map +1 -0
- package/esm/ToJs-BnRRHk6f.js +17 -0
- package/esm/ToJs-BnRRHk6f.js.map +1 -0
- package/esm/VersionInfo-j6NR0QJR.js +193 -0
- package/esm/VersionInfo-j6NR0QJR.js.map +1 -0
- package/esm/{_commonjsHelpers-1789f0cf.js → _commonjsHelpers-BFTU3MAI.js} +1 -1
- package/esm/_commonjsHelpers-BFTU3MAI.js.map +1 -0
- package/esm/client.js +39 -62
- package/esm/client.js.map +1 -1
- package/esm/contensis-react-base.js +616 -3272
- package/esm/contensis-react-base.js.map +1 -1
- package/esm/{fromJSLeaveImmer-0114ffcf.js → fromJSLeaveImmer-C_YACmOf.js} +2 -6
- package/{cjs/fromJSLeaveImmer-e74c673c.js.map → esm/fromJSLeaveImmer-C_YACmOf.js.map} +1 -1
- package/esm/{ToJs-df57f31d.js → matchGroups-Bq8QnqFx.js} +23 -91
- package/esm/matchGroups-Bq8QnqFx.js.map +1 -0
- package/esm/redux.js +11 -9
- package/esm/redux.js.map +1 -1
- package/esm/routing.js +18 -5
- package/esm/routing.js.map +1 -1
- package/esm/sagas-BFQ4tBq_.js +5743 -0
- package/esm/sagas-BFQ4tBq_.js.map +1 -0
- package/esm/search.js +124 -323
- package/esm/search.js.map +1 -1
- package/esm/selectors-CNC7sDxg.js +404 -0
- package/esm/selectors-CNC7sDxg.js.map +1 -0
- package/esm/{version-3d9911e2.js → store-CtDx5MLq.js} +38 -85
- package/esm/store-CtDx5MLq.js.map +1 -0
- package/esm/user.js +10 -13
- package/esm/user.js.map +1 -1
- package/esm/util-BC8LWRKL.js +136 -0
- package/esm/util-BC8LWRKL.js.map +1 -0
- package/esm/util.js +69 -201
- package/esm/util.js.map +1 -1
- package/esm/version-CaL4czqJ.js +15 -0
- package/esm/version-CaL4czqJ.js.map +1 -0
- package/esm/{version-9f29becb.js → version-CfABeHJA.js} +6 -9
- package/{cjs/version-a410c88e.js.map → esm/version-CfABeHJA.js.map} +1 -1
- package/models/app/App.d.ts +1 -1
- package/models/app/pages/VersionInfo/components/VersionInfo.d.ts +4 -1
- package/models/app/pages/VersionInfo/components/VersionInfo.styled.d.ts +1 -1
- package/models/client/client.d.ts +1 -1
- package/models/index.d.ts +1 -2
- package/models/models/AppRouteProps.d.ts +11 -0
- package/models/{redux/appstate.d.ts → models/AppState.d.ts} +3 -3
- package/models/models/ContentTypeMapping.d.ts +89 -0
- package/models/models/EntryMapper.d.ts +3 -0
- package/models/models/GetRouteActionArgs.d.ts +15 -0
- package/models/models/MatchedRoute.d.ts +8 -0
- package/models/models/ReduxInjector.d.ts +5 -0
- package/models/models/RequireLogin.d.ts +6 -0
- package/models/models/RouteComponent.d.ts +3 -0
- package/models/models/RouteComponentProps.d.ts +9 -0
- package/models/models/RouteLoaderProps.d.ts +9 -0
- package/models/models/RouteNode.d.ts +5 -0
- package/models/models/SSRContext.d.ts +32 -0
- package/models/models/StaticRoute.d.ts +61 -0
- package/models/models/WithEvents.d.ts +58 -0
- package/models/models/config/AppConfig.d.ts +13 -0
- package/models/{config.d.ts → models/config/ServerConfig.d.ts} +4 -12
- package/models/models/config/StateType.d.ts +2 -0
- package/models/models/config/index.d.ts +3 -0
- package/models/models/index.d.ts +16 -0
- package/models/redux/actions/index.d.ts +2 -2
- package/models/redux/sagas/navigation.d.ts +1 -3
- package/models/redux/selectors/index.d.ts +2 -2
- package/models/redux/store/injectors.d.ts +16 -4
- package/models/redux/store/store.d.ts +10 -4
- package/models/redux/types/index.d.ts +2 -2
- package/models/redux/types/navigation.d.ts +3 -3
- package/models/redux/types/version.d.ts +2 -2
- package/models/redux/util.d.ts +1 -1
- package/models/routing/components/Redirect.d.ts +1 -1
- package/models/routing/components/RouteLoader.d.ts +3 -3
- package/models/routing/components/StaticRouteLoader.d.ts +1 -1
- package/models/routing/components/Status.d.ts +1 -1
- package/models/routing/httpContext.d.ts +0 -1
- package/models/routing/index.d.ts +1 -0
- package/models/routing/redux/actions.d.ts +3 -4
- package/models/routing/redux/selectors.d.ts +44 -4
- package/models/routing/redux/types.d.ts +11 -11
- package/models/routing/util/expressions.d.ts +1 -1
- package/models/routing/util/find-contenttype-mapping.d.ts +1 -1
- package/models/routing/util/queries.d.ts +2 -2
- package/models/search/containers/withListing.d.ts +4 -1
- package/models/search/containers/withSearch.d.ts +4 -1
- package/models/search/models/Queries.d.ts +6 -6
- package/models/search/models/Search.d.ts +13 -4
- package/models/search/models/SearchActions.d.ts +29 -12
- package/models/search/models/SearchProps.d.ts +4 -10
- package/models/search/models/SearchState.d.ts +8 -2
- package/models/search/redux/getIn.d.ts +2 -2
- package/models/search/redux/reducers.d.ts +5 -261
- package/models/search/redux/sagas.d.ts +13 -14
- package/models/search/redux/schema.d.ts +2 -2
- package/models/search/redux/selectors.d.ts +10 -10
- package/models/search/redux/util.d.ts +9 -1
- package/models/search/search/ContensisDeliveryApi.d.ts +6 -26
- package/models/search/search/expressions.d.ts +3 -3
- package/models/search/search/util.d.ts +25 -8
- package/models/search/transformations/searchresult-to-state.mapper.d.ts +1 -2
- package/models/server/features/caching/cacheDuration.schema.d.ts +1 -0
- package/models/server/features/linkdepth-api/search.d.ts +2 -2
- package/models/server/features/response-handler/render-stream.d.ts +25 -0
- package/models/server/features/static-assets/index.d.ts +3 -3
- package/models/server/internalServer.d.ts +2 -3
- package/models/server/util/bundles.d.ts +10 -10
- package/models/server/util/headers.d.ts +1 -1
- package/models/server/util/html.d.ts +23 -0
- package/models/server/util/jsx.d.ts +42 -0
- package/models/server/webApp.d.ts +1 -1
- package/models/user/components/Login.d.ts +1 -1
- package/models/user/components/LoginForm.d.ts +6 -6
- package/models/user/components/LogoutForm.d.ts +4 -4
- package/models/user/components.styled/Login.styled.d.ts +1 -1
- package/models/user/components.styled/LoginForm.styled.d.ts +1 -1
- package/models/user/hocs/withLogin.d.ts +4 -4
- package/models/user/hocs/withRegistration.d.ts +6 -3
- package/models/user/hooks/useLogin.d.ts +4 -4
- package/models/user/redux/actions.d.ts +7 -6
- package/models/user/redux/sagas/index.d.ts +1 -1
- package/models/user/redux/sagas/login.d.ts +5 -17
- package/models/user/redux/selectors.d.ts +1 -2
- package/models/user/redux/types.d.ts +21 -21
- package/models/user/state.d.ts +12 -0
- package/models/user/transformations/mapClientCredentials.d.ts +3 -1
- package/models/user/util/ContensisManagementApi.d.ts +10 -9
- package/models/user/util/CookieConstants.d.ts +1 -0
- package/models/user/util/CookieHelper.class.d.ts +8 -4
- package/models/user/util/LoginHelper.class.d.ts +25 -37
- package/models/user/util/OidcUserManager.d.ts +1 -1
- package/models/user/util/matchGroups.d.ts +1 -1
- package/models/util/CachedDeliveryApi.d.ts +19 -12
- package/models/util/ContensisDeliveryApi.d.ts +11 -9
- package/models/util/NoSSR.d.ts +6 -0
- package/models/util/SSRContext.d.ts +24 -0
- package/models/util/donotuse_useHistory.d.ts +6 -0
- package/models/util/index.d.ts +5 -1
- package/models/util/json-mapper.d.ts +4 -5
- package/models/util/useIsClient.d.ts +6 -0
- package/package.json +75 -97
- package/cjs/App-b56aca04.js.map +0 -1
- package/cjs/ChangePassword.container-ae35785e.js.map +0 -1
- package/cjs/ContensisDeliveryApi-4fcf049d.js.map +0 -1
- package/cjs/CookieConstants-000427db.js.map +0 -1
- package/cjs/RouteLoader-c06dccd5.js.map +0 -1
- package/cjs/ToJs-a8d8f3f0.js.map +0 -1
- package/cjs/_commonjsHelpers-b3309d7b.js.map +0 -1
- package/cjs/forms.js +0 -5998
- package/cjs/forms.js.map +0 -1
- package/cjs/reducers-73a03ef4.js +0 -257
- package/cjs/reducers-73a03ef4.js.map +0 -1
- package/cjs/sagas-570f23ba.js +0 -2175
- package/cjs/sagas-570f23ba.js.map +0 -1
- package/cjs/selectors-14caa813.js +0 -228
- package/cjs/selectors-14caa813.js.map +0 -1
- package/cjs/urls-6fcaf4c6.js +0 -25
- package/cjs/urls-6fcaf4c6.js.map +0 -1
- package/cjs/version-34d91f68.js.map +0 -1
- package/esm/App-83107d7e.js.map +0 -1
- package/esm/ChangePassword.container-76fd5e9b.js.map +0 -1
- package/esm/ContensisDeliveryApi-fe57a037.js.map +0 -1
- package/esm/CookieConstants-3d3b6531.js.map +0 -1
- package/esm/RouteLoader-29fd689a.js.map +0 -1
- package/esm/ToJs-df57f31d.js.map +0 -1
- package/esm/_commonjsHelpers-1789f0cf.js.map +0 -1
- package/esm/forms.js +0 -5984
- package/esm/forms.js.map +0 -1
- package/esm/reducers-aa8cef1e.js +0 -234
- package/esm/reducers-aa8cef1e.js.map +0 -1
- package/esm/sagas-07e82e18.js +0 -2083
- package/esm/sagas-07e82e18.js.map +0 -1
- package/esm/selectors-691caf02.js +0 -186
- package/esm/selectors-691caf02.js.map +0 -1
- package/esm/urls-eac9a747.js +0 -22
- package/esm/urls-eac9a747.js.map +0 -1
- package/esm/version-3d9911e2.js.map +0 -1
- package/models/forms/index.d.ts +0 -1
- package/models/routing/routes.d.ts +0 -133
- package/models/search/search/ToJs.d.ts +0 -4
package/cjs/search.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"search.js","sources":["../node_modules/zengenti-search-package/src/app/zengenti-search-package/search/ToJs.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/containers/withSearch.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/containers/withListing.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/transformations/index.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/hooks/useFacets.hook.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/hooks/useListing.hook.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/hooks/useMinilist.hook.tsx","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/schema.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/redux/reducers.ts","../node_modules/zengenti-search-package/src/app/zengenti-search-package/index.ts"],"sourcesContent":["/* eslint-disable import/default */\n/* eslint-disable react/display-name */\n/* eslint-disable @typescript-eslint/naming-convention */\nimport React from 'react';\n\nexport const toJS =\n <Props extends { [key: string]: any }>(\n WrappedComponent: React.ComponentType<Props>\n ): React.ComponentType<Props> =>\n (wrappedComponentProps: Props) => {\n const KEY = 0;\n const VALUE = 1;\n\n const propsJS = Object.entries(wrappedComponentProps).reduce<Props>(\n (newProps: any, wrappedComponentProp) => {\n const propKey = wrappedComponentProp[KEY];\n const propValue = wrappedComponentProp[VALUE];\n newProps[propKey] =\n propValue && typeof propValue === 'object' && 'toJS' in propValue\n ? propValue.toJS()\n : propValue;\n return newProps as Props;\n },\n {} as Props\n );\n\n return <WrappedComponent {...propsJS} />;\n };\n","// eslint-disable-next-line import/default\nimport React from 'react';\nimport { connect } from 'react-redux';\n\nimport { toJS } from '../search/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport {\n getCurrentFacet,\n getCurrentTab,\n getFacet,\n getFacetTitles,\n getFacetsTotalCount,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSearchTotalCount,\n getSelectedFilters,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { SearchProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\n\nconst withSearch =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(\n SearchComponent: React.ComponentType<Props>\n ) => {\n const Wrapper: React.FC<Props & SearchProps<any>> = props => {\n return <SearchComponent {...props} />;\n };\n\n Wrapper.displayName = `withSearch(${\n SearchComponent.displayName || SearchComponent.name\n })`;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentFacet: getCurrentFacet(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n facetTitles: getFacetTitles(state),\n featuredResults: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n pageIsLoading: getPageIsLoading(state),\n results: getResults(state),\n resultsInfo: mappers?.resultsInfo && mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n const connector = connect(mapStateToProps, mapDispatchToProps);\n\n return connector(toJS(Wrapper) as any);\n };\n\nexport default withSearch;\n","/* eslint-disable @typescript-eslint/naming-convention */\n// eslint-disable-next-line import/default\nimport React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '../search/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport { selectListing } from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { AppState } from '../models/SearchState';\nimport { ListingProps } from '../models/SearchProps';\n\nconst withListing =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(ListingComponent: React.FC<Props>) => {\n const Wrapper: React.FC<Props & ListingProps<any>> = props => {\n return <ListingComponent {...props} />;\n };\n\n Wrapper.displayName = `withListing(${\n ListingComponent.displayName || ListingComponent.name\n })`;\n\n const {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSelectedFilters,\n } = selectListing;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentListing: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n listing: getListing(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n results: getResults(state),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper) as any);\n };\n\nexport default withListing;\n","import { Mappers } from '../models/Search';\nimport mapStateToSearchUri from './state-to-searchuri';\n\nexport default {\n results: entries => entries,\n navigate: mapStateToSearchUri,\n} as Mappers;\n","import { useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport defaultMappers from '../transformations';\nimport { Context } from '../models/Enums';\nimport { SearchProps, UseFacetsProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\nimport {\n getPaging,\n getResults,\n getSelectedFilters,\n selectFacets,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nconst {\n getCurrent,\n getCurrentTab,\n getFacet,\n getFacetsTotalCount,\n getFacetTitles,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getQueryParameter,\n getRenderableFilters,\n getSearchTerm,\n getSearchTotalCount,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} = selectFacets;\n\nconst makeSelectFacetsProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, mappers: Mappers) => mappers,\n (state: AppState, mappers: Mappers) => ({\n currentFacet: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facetTitles: getFacetTitles(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n pageIsLoading: getPageIsLoading(state),\n paging: getPaging(state, '', Context.facets, 'js'),\n results: getResults(state, '', Context.facets, 'js'),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state, '', Context.facets, 'js'),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n })\n );\n\nconst useFacets = <SearchResults extends Record<string, any>>(\n { mappers }: UseFacetsProps = {\n id: '',\n }\n) => {\n const dispatch = useDispatch();\n\n const m = mappers || defaultMappers;\n\n const selectListingProps = useMemo(makeSelectFacetsProps, [m]);\n\n const dispatchProps = {\n clearFilters: (filterKey?: string) =>\n dispatch(withMappers(clearFilters(filterKey), m)),\n updateCurrentFacet: (facet: string) =>\n dispatch(withMappers(updateCurrentFacet(facet), m)),\n updateCurrentTab: (id: number) => withMappers(updateCurrentTab(id), m),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),\n updateSearchTerm: (term: string) =>\n dispatch(withMappers(updateSearchTerm(term), m)),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n dispatch(\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n m\n )\n ),\n updateSortOrder: (orderBy: string) =>\n dispatch(withMappers(updateSortOrder(orderBy), m)),\n };\n\n const {\n currentFacet,\n currentPageIndex,\n currentTabIndex,\n facet,\n facets,\n facetsTotalCount,\n facetTitles,\n featured,\n filters,\n isLoading,\n paging,\n pageIsLoading,\n results,\n resultsInfo,\n searchTerm,\n searchTotalCount,\n selectedFilters,\n sortOrder,\n tabsAndFacets,\n totalCount,\n } = useSelector((state: AppState) => selectListingProps(state, m));\n\n return {\n currentFacet,\n currentPageIndex,\n currentTabIndex,\n facet,\n facets,\n facetsTotalCount,\n facetTitles,\n featured,\n filters,\n isLoading,\n paging,\n pageIsLoading,\n results,\n resultsInfo,\n searchTerm,\n searchTotalCount,\n selectedFilters,\n sortOrder,\n tabsAndFacets,\n totalCount,\n ...dispatchProps,\n } as SearchProps<SearchResults>;\n};\n\nexport default useFacets;\n","import { useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport defaultMappers from '../transformations';\nimport { Context } from '../models/Enums';\nimport { ListingProps, UseListingProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\nimport {\n getPaging,\n getResults,\n getSelectedFilters,\n selectListing,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nconst {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPageIsLoading,\n getQueryParameter,\n getRenderableFilters,\n getSearchTerm,\n} = selectListing;\n\nconst makeSelectListingProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, mappers: Mappers) => mappers,\n (state: AppState, mappers: Mappers) => ({\n currentListing: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n listing: getListing(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n pageIsLoading: getPageIsLoading(state),\n paging: getPaging(state, '', Context.listings, 'js'),\n results: getResults(state, '', Context.listings, 'js'),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state, '', Context.listings, 'js'),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n })\n );\n\nconst useListing = <SearchResults extends Record<string, any>>(\n { mappers }: UseListingProps = {\n id: '',\n }\n) => {\n const dispatch = useDispatch();\n\n const m = mappers || defaultMappers;\n\n const selectListingProps = useMemo(makeSelectListingProps, [m]);\n\n const dispatchProps = {\n clearFilters: (filterKey?: string) =>\n dispatch(withMappers(clearFilters(filterKey), m)),\n updateCurrentFacet: (facet: string) =>\n dispatch(withMappers(updateCurrentFacet(facet), m)),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageIndex(pageIndex, scrollToElement), m)),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n dispatch(withMappers(updatePageSize(pageSize, scrollToElement), m)),\n updateSearchTerm: (term: string) =>\n dispatch(withMappers(updateSearchTerm(term), m)),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n dispatch(\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n m\n )\n ),\n updateSortOrder: (orderBy: string) =>\n dispatch(withMappers(updateSortOrder(orderBy), m)),\n };\n\n const {\n currentListing,\n currentPageIndex,\n featured,\n filters,\n isLoading,\n listing,\n paging,\n pageIsLoading,\n results,\n resultsInfo,\n searchTerm,\n selectedFilters,\n sortOrder,\n } = useSelector((state: AppState) => selectListingProps(state, m));\n\n return {\n currentListing,\n currentPageIndex,\n featured,\n filters,\n isLoading,\n listing,\n pageIsLoading,\n paging,\n results,\n resultsInfo,\n searchTerm,\n selectedFilters,\n sortOrder,\n title: listing.title,\n ...dispatchProps,\n } as ListingProps<SearchResults>;\n};\n\nexport default useListing;\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { Context } from '../models/Enums';\nimport { MinilistProps, UseMinilistProps } from '../models/SearchProps';\nimport { AppState, Facet, Filters } from '../models/SearchState';\n\nimport { triggerSearch } from '../redux/actions';\nimport {\n getResults,\n getIsLoading,\n getFacet,\n getPaging,\n getSearchTerm,\n getFilters,\n} from '../redux/selectors';\n\nconst makeSelectMinilistProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, id: string) => id,\n (state: AppState, id: string) =>\n id\n ? {\n facet: getFacet(state, id, Context.minilist, 'js'),\n filters: getFilters(state, id, Context.minilist, 'js'),\n isLoading: getIsLoading(state, Context.minilist, id),\n pagingInfo: getPaging(state, id, Context.minilist, 'js'),\n results: getResults(state, id, Context.minilist, 'js'),\n searchTerm: getSearchTerm(state),\n }\n : null\n );\n\nconst useMinilist = <SearchResults extends Record<string, any>>(\n {\n id,\n config,\n excludeIds,\n mapper,\n mappers,\n params,\n defaultLang,\n debug,\n }: UseMinilistProps = { id: '' }\n) => {\n const dispatch = useDispatch();\n\n const selectMinilistProps = useMemo(makeSelectMinilistProps, [id]);\n\n const { facet, filters, isLoading, pagingInfo, results, searchTerm } =\n useSelector((state: AppState) => selectMinilistProps(state, id)) || {\n facet: {} as Facet,\n filters: {} as Filters,\n isLoading: false,\n pagingInfo: {} as Facet['pagingInfo'],\n results: [] as SearchResults[],\n searchTerm: '',\n };\n // useSelector((state: AppState) => ({\n // facet: getFacet(state, id, Context.minilist).toJS(),\n // filters: getFilters(state, id, Context.minilist).toJS(),\n // isLoading: getIsLoading(state, Context.minilist, id),\n // pagingInfo: getPaging(state, id, Context.minilist).toJS(),\n // results: getResults(state, id, Context.minilist).toJS(),\n // searchTerm: getSearchTerm(state),\n // }));\n\n useEffect(() => {\n if (id && (mapper || mappers?.results)) {\n dispatch(\n triggerSearch({\n config,\n context: Context.minilist,\n defaultLang,\n facet: id,\n mapper,\n mappers,\n params,\n excludeIds,\n debug,\n })\n );\n }\n }, [dispatch, excludeIds, id, defaultLang, params]);\n\n return {\n filters,\n isLoading,\n paging: pagingInfo,\n results,\n searchTerm,\n title: facet.title,\n } as MinilistProps<SearchResults>;\n};\n\nexport default useMinilist;\n","import { CustomWhereClause } from '../models/Search';\nimport { Filter, FilterItem, SearchState } from '../models/SearchState';\n\nexport const entries = {\n isLoading: false,\n isError: false,\n items: [],\n};\n\nexport const pagingInfo = {\n isLoading: false,\n pageCount: 0,\n pageIndex: 0,\n pageSize: 0,\n pagesLoaded: [],\n prevPageIndex: 0,\n totalCount: 0,\n};\n\nexport const searchFacet = {\n title: null,\n featuredEntries: entries,\n featuredResults: [],\n entries,\n results: [],\n queryParams: {},\n filters: {},\n queryDuration: 0,\n pagingInfo,\n projectId: '',\n};\n\nexport const searchTab = {\n currentFacet: undefined,\n facets: {},\n id: 0,\n label: undefined,\n totalCount: '',\n};\n\nexport const filtering = {\n isLoading: false,\n isError: false,\n isGrouped: false,\n title: undefined,\n contentTypeId: undefined,\n customWhere: [],\n fieldId: undefined,\n items: [],\n} as Omit<Filter, 'customWhere' | 'items'> & {\n customWhere?: CustomWhereClause[];\n items?: FilterItem[];\n};\n\nexport const filterItem = {\n key: '',\n type: undefined,\n title: undefined,\n path: undefined,\n isSelected: false,\n} as FilterItem;\n\nconst config = {\n isLoaded: false,\n isError: false,\n};\n\nconst searchState: SearchState = {\n context: 'facets',\n currentFacet: '',\n currentListing: '',\n facets: {},\n listings: {},\n minilist: {},\n term: '',\n tabs: [],\n config,\n};\n\nexport const initialState = searchState;\n","import { Draft, produce } from 'immer';\nimport equals from 'deep-equal';\nimport merge from 'deepmerge';\n\nimport {\n entries,\n filterItem,\n pagingInfo,\n searchFacet,\n initialState,\n} from './schema';\nimport {\n APPLY_CONFIG,\n CLEAR_FILTERS,\n EXECUTE_SEARCH,\n EXECUTE_SEARCH_ERROR,\n LOAD_FILTERS,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n SET_ROUTE_FILTERS,\n SET_SEARCH_FILTERS,\n SET_SEARCH_ENTRIES,\n UPDATE_SEARCH_TERM,\n UPDATE_SELECTED_FILTERS,\n UPDATE_SORT_ORDER,\n UPDATE_PAGE_INDEX,\n UPDATE_PAGE_SIZE,\n} from './types';\nimport { toArray } from '../search/util';\nimport {\n ConfigTypes,\n SearchFacet,\n Listing,\n SearchConfig,\n} from '../models/Search';\nimport { Context } from '../models/Enums';\nimport {\n Facet,\n Facets,\n SearchState,\n Filter,\n Filters,\n FilterItem,\n} from '../models/SearchState';\n\nconst addConfigToState = (state: SearchState, action: any) => {\n const { context, facet, config } = action as {\n context: keyof typeof Context;\n facet: string;\n config: any;\n };\n // Adding or changing the config of a single facet, listing or minilist\n if (context && facet && config) {\n state[context][facet] = { ...searchFacet, ...config };\n } else if (config) {\n // Changing the entire search config\n state = { ...config, config: initialState.config };\n }\n return state;\n};\n\nconst generateSearchFacets = (context: Context, config: SearchConfig) => {\n const facets = {} as Facets;\n if (config) {\n const thisConfig: ConfigTypes = config[context] || {};\n if (Object.keys(thisConfig).length > 0) {\n Object.entries(thisConfig).map(\n ([facetName, facet]: [string, SearchFacet | Listing]) => {\n const newFacet = merge(searchFacet, facet);\n if (!('isDisabled' in facet) || facet.isDisabled !== true)\n facets[facetName] = newFacet;\n }\n );\n }\n }\n return facets;\n};\n\nconst generateFiltersState = (\n {\n facet,\n params,\n context,\n isCurrentFacet,\n }: {\n facet: string;\n params: { [k: string]: string };\n context: keyof typeof Context;\n isCurrentFacet: boolean;\n },\n state: SearchState\n) => {\n // Remove filters we know about from params\n const filterParams = {\n ...params,\n facet: undefined,\n orderBy: undefined,\n pageIndex: undefined,\n term: undefined,\n } as { [k: string]: string | undefined };\n\n // Get any existing filters and normalise the items[]\n // so we can start off with isSelected is false\n let filters: [string, Filter][] = Object.entries(\n (state[context][facet].filters || []) as Filters\n ).map(([key, filter]: [string, Filter]) => {\n if (isCurrentFacet || filter.isGrouped) {\n return [\n key,\n {\n ...filter,\n items: filter.items?.map(item => ({ ...item, isSelected: false })),\n } as Filter,\n ];\n }\n return [key, filter];\n });\n\n const addFilterItem = (\n filters: [string, Filter][],\n paramKey: string,\n paramValue: string\n ) =>\n // Iterate through all filters within the facet,\n // if the paramKey matches the filter key\n // get the existing items list, and see if that filter\n // already exists, if so set isSelected to true,\n // if not create a new filterItem, setting the key only\n // so we can match this key later on when we load the filters\n filters.map<[string, Filter]>(([key, filter]) => {\n if (paramKey !== key || (!isCurrentFacet && !filter.isGrouped)) {\n return [key, filter];\n } else {\n const items = (filter.items || []) as FilterItem[];\n const itemIndex = items.findIndex(item => item?.key === paramValue);\n if (items.length > 0 && itemIndex !== -1) {\n items[itemIndex].isSelected = true;\n } else {\n items.push({\n ...filterItem,\n key: paramValue,\n isSelected: true,\n });\n }\n\n return [\n key,\n {\n ...filter,\n items,\n } as Filter,\n ];\n }\n });\n\n // For each value found in filterParams\n // we are looking to split that value into multiple by any comma\n // and then either set isSelected for an existing filterItem\n // or push an item to the filters.{ key }.items[] array\n // giving it only the key (entry guid) that can be taken to filter\n // the search results during SSR without needing to fetch the filters first\n Object.entries(filterParams).map(([paramName = '', paramValue]) => {\n if (typeof paramValue === 'string')\n return paramValue\n .split(',')\n .map(pVal => (filters = addFilterItem(filters, paramName, pVal)));\n if (typeof paramValue === 'boolean')\n filters = addFilterItem(filters, paramName, paramValue);\n });\n\n return Object.fromEntries(filters) as Filters;\n};\n\nconst resetFacets = (state: SearchState, context: keyof typeof Context) =>\n Object.fromEntries(\n Object.entries(state[context] as Facets).map(([k, v]) => [k, resetFacet(v)])\n ) as Facets;\n\nconst resetFacet = (facet: Facet) => {\n facet.pagingInfo.pagesLoaded = [];\n facet.pagingInfo.pageIndex = 0;\n facet.queryDuration = 0;\n return facet;\n};\n\nexport default (config: SearchConfig) => {\n // Add facets from SearchConfig to initialState\n const initState: SearchState = {\n ...initialState,\n tabs: config.tabs as any,\n facets: generateSearchFacets(Context.facets, config),\n listings: generateSearchFacets(Context.listings, config),\n minilist: generateSearchFacets(Context.minilist, config),\n };\n\n return produce(\n (\n state: Draft<SearchState> = initState,\n action: {\n [key: string]: any;\n context: keyof typeof Context;\n facet: string;\n params: { [key: string]: string };\n }\n ) => {\n const context = state.context as keyof typeof Context;\n const current =\n context !== 'listings' ? state.currentFacet : state.currentListing;\n\n switch (action.type) {\n case APPLY_CONFIG: {\n state = addConfigToState(state, action);\n return state;\n }\n case CLEAR_FILTERS: {\n const currentFilters = state[context][current].filters as Filters;\n\n state[context][current].filters = Object.fromEntries(\n Object.entries(currentFilters).map(([filterKey, filter]) => {\n if (\n typeof action.filterKey === 'undefined' ||\n action.filterKey === filterKey\n ) {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n }\n\n return [filterKey, filter];\n })\n );\n state[context][current].queryDuration = 0;\n state[context][current].pagingInfo.pagesLoaded = [];\n\n return;\n }\n case EXECUTE_SEARCH: {\n state[action.context][action.facet].entries = {\n ...(state[action.context][action.facet].entries || entries),\n isLoading: true,\n };\n return;\n }\n case EXECUTE_SEARCH_ERROR: {\n state[action.context][action.facet].entries = {\n ...entries,\n isError: true,\n error: action.error,\n };\n return;\n }\n case LOAD_FILTERS: {\n const { facetKey, filtersToLoad } = action;\n const filters = state[action.context][facetKey].filters as Filters;\n\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return { ...filter, isLoading: true } as Filter;\n return filter;\n });\n\n state[action.context][facetKey].filters = Object.fromEntries(\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return [filterKey, { ...filter, isLoading: true }];\n return [filterKey, filter];\n })\n );\n\n return;\n }\n case LOAD_FILTERS_ERROR:\n case LOAD_FILTERS_COMPLETE: {\n const { facetKey, filterKey, nextFilter } = action;\n const filter = state[action.context][facetKey].filters[\n filterKey\n ] as Filter;\n\n if (\n !(nextFilter.items && nextFilter.items.length > 0) &&\n (filter.items || []).length >= nextFilter.items.length\n ) {\n // Preserve items already in state\n state[action.context][facetKey].filters[filterKey] = {\n ...filter,\n isLoading: false,\n isError: nextFilter.isError,\n };\n return;\n }\n\n state[action.context][facetKey].filters[filterKey] = merge(\n filter,\n nextFilter,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n return;\n }\n case SET_ROUTE_FILTERS: {\n const { facet, params, context } = action;\n const { term = '', pageIndex, pageSize, orderBy } = params;\n\n const stateTerm = state.term;\n const tabId = state[context][facet].tabId || 0;\n\n // Reset the facet if the search term has changed, or if the any of\n // the filters have changed\n const resetAllFacets = stateTerm && term !== stateTerm;\n let resetCurrentFacet = false;\n\n // Add filter values in params to the matched filters in state for the current facet\n // causing unfetched filter items to be generated with isSelected: true\n // or existing filter items to be tagged with isSelected: true\n const nextFacets = Object.fromEntries(\n Object.entries(state[context] as Facets).map(\n ([facetName = '', stateFacet]) => {\n const isCurrentFacet = facetName === facet;\n const nextFilters = generateFiltersState(\n {\n facet: facetName,\n params,\n context,\n isCurrentFacet,\n },\n state\n );\n\n resetCurrentFacet =\n state.config.isLoaded === true &&\n !equals(nextFilters, stateFacet.filters);\n\n stateFacet = resetCurrentFacet\n ? resetFacet(stateFacet)\n : stateFacet;\n stateFacet.filters = nextFilters;\n stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];\n return [facetName, stateFacet];\n }\n )\n );\n\n state.context = context;\n state[context] = nextFacets;\n state[\n action.context === Context.facets\n ? 'currentFacet'\n : 'currentListing'\n ] = facet;\n state.term = term;\n state.tabs[tabId].currentFacet = facet;\n state[context][facet].pagingInfo = {\n ...(state[context][facet].pagingInfo || pagingInfo),\n pageIndex:\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo?.pageIndex || 0\n : 0),\n pageSize:\n Number(pageSize) || state[context][facet].queryParams.pageSize,\n };\n state.config.isLoaded = true;\n state.config.ssr = typeof window === 'undefined';\n\n if (resetAllFacets) state[context] = resetFacets(state, context);\n\n return;\n }\n case SET_SEARCH_ENTRIES: {\n const thisContext = action.context || context;\n const currentFacet = state[thisContext][action.facet];\n state[thisContext][action.facet] = merge(\n currentFacet,\n action.nextFacet,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n return;\n }\n case SET_SEARCH_FILTERS: {\n // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS\n // for example in a minilist scenario where the route filters\n // are used for the primary page / listing navigation\n\n // Add filter values in params to the matched filters in state\n // causing unfetched filter items to be generated with isSelected: true\n const filters = generateFiltersState(\n { ...action, isCurrentFacet: true },\n state\n );\n\n const term = action?.params?.term;\n const useSearchTerm =\n state[action.context || Context.minilist][action.facet].queryParams\n .useSearchTerm || false;\n state[action.context || Context.minilist][action.facet].filters =\n filters;\n state[action.context || Context.minilist][\n action.facet\n ].queryParams.excludeIds = action.excludeIds;\n state.term = useSearchTerm ? term : state.term;\n state.config.ssr = typeof window === 'undefined';\n\n return;\n }\n case UPDATE_PAGE_INDEX: {\n const { pageIndex } = action;\n const internalPaging =\n state[context][current].queryParams.internalPaging || false;\n\n const currentPageIndex =\n state[context][current].pagingInfo.pageIndex || 0;\n\n state[context][current].pagingInfo.pageIndex = Number(pageIndex) || 0;\n state[context][current].pagingInfo.prevPageIndex = currentPageIndex;\n state[context][current].pagingInfo.isLoading = true;\n\n if (internalPaging) return;\n\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_PAGE_SIZE: {\n const { pageSize } = action;\n\n state[context][current].pagingInfo.pageSize = pageSize;\n state[context][current].pagingInfo.pageIndex = 0;\n state[context][current].pagingInfo.isLoading = true;\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_SEARCH_TERM: {\n state.term = action.term;\n state[context] = resetFacets(state, context);\n\n return;\n }\n case UPDATE_SELECTED_FILTERS: {\n const { filter, key, isUnknownItem } = action;\n\n const isSingleSelect =\n state[context][current].filters[filter].isSingleSelect || false;\n const isGrouped =\n state[context][current].filters[filter].isGrouped || false;\n\n const currentItems = state[context][current].filters[filter].items;\n if (isGrouped) state[context] = resetFacets(state, context);\n state[context][current] = resetFacet(state[context][current]);\n\n if (\n isUnknownItem &&\n currentItems?.findIndex(item => item?.key === key) === -1\n ) {\n currentItems?.push({\n key,\n isSelected: false,\n });\n }\n state[context][current].filters[filter].items = currentItems?.map(\n item => {\n if (item.key === key) {\n return { ...item, isSelected: !item.isSelected };\n }\n if (isSingleSelect) return { ...item, isSelected: false };\n return item;\n }\n );\n\n return;\n }\n case UPDATE_SORT_ORDER: {\n const { orderBy, facet } = action;\n state[context] = resetFacets(state, context);\n const currentFacet = facet || current;\n state[context][currentFacet].queryParams.dynamicOrderBy = orderBy\n ? toArray(orderBy) || []\n : [];\n\n return;\n }\n default:\n return;\n }\n },\n initState\n );\n};\n","export const Context = {\n facets: 'facets',\n listings: 'listings',\n minilist: 'minilist',\n};\nexport * from './models';\n\nexport { default as withSearch } from './containers/withSearch';\nexport { default as withListing } from './containers/withListing';\n\nexport { default as useFacets } from './hooks/useFacets.hook';\nexport { default as useListing } from './hooks/useListing.hook';\nexport { default as useMinilist } from './hooks/useMinilist.hook';\n\nexport * as actions from './redux/actions';\nexport {\n doSearch,\n setRouteFilters,\n searchSagas as sagas,\n triggerListingSsr,\n triggerMinilistSsr,\n triggerSearchSsr,\n} from './redux/sagas';\nexport { default as reducer } from './redux/reducers';\nexport * as schema from './redux/schema';\nexport * as selectors from './redux/selectors';\nexport * as types from './redux/types';\n\nexport * as expressions from './search/expressions';\nexport * as queries from './search/queries';\nexport { routeParams } from './search/util';\n"],"names":["toJS","WrappedComponent","wrappedComponentProps","KEY","VALUE","propsJS","Object","entries","reduce","newProps","wrappedComponentProp","propKey","propValue","React","withSearch","mappers","SearchComponent","Wrapper","props","displayName","name","mapStateToProps","state","currentFacet","getCurrentFacet","currentPageIndex","getPageIndex","currentTabIndex","getCurrentTab","facet","getFacet","facets","getTabFacets","facetsTotalCount","getFacetsTotalCount","facetTitles","getFacetTitles","featuredResults","getFeaturedResults","filters","getRenderableFilters","isLoading","getIsLoading","paging","getPaging","pageIsLoading","getPageIsLoading","results","getResults","resultsInfo","searchTerm","getSearchTerm","searchTotalCount","getSearchTotalCount","selectedFilters","getSelectedFilters","sortOrder","getQueryParameter","tabsAndFacets","getTabsAndFacets","totalCount","getTotalCount","mapDispatchToProps","clearFilters","filterKey","withMappers","updateCurrentFacet","updateCurrentTab","id","updatePageIndex","pageIndex","scrollToElement","updatePageSize","pageSize","updateSearchTerm","term","updateSelectedFilters","filter","key","isUnknownItem","updateSortOrder","orderBy","connector","connect","withListing","ListingComponent","getCurrent","getListing","selectListing","currentListing","listing","featured","navigate","mapStateToSearchUri","selectFacets","makeSelectFacetsProps","createSelector","_","Context","useFacets","dispatch","useDispatch","m","defaultMappers","selectListingProps","useMemo","dispatchProps","useSelector","makeSelectListingProps","listings","useListing","title","makeSelectMinilistProps","minilist","getFilters","pagingInfo","useMinilist","config","excludeIds","mapper","params","defaultLang","debug","selectMinilistProps","useEffect","triggerSearch","context","isError","items","pageCount","pagesLoaded","prevPageIndex","searchFacet","featuredEntries","queryParams","queryDuration","projectId","searchTab","undefined","label","filtering","isGrouped","contentTypeId","customWhere","fieldId","filterItem","type","path","isSelected","isLoaded","searchState","tabs","initialState","addConfigToState","action","generateSearchFacets","thisConfig","keys","length","map","facetName","newFacet","merge","isDisabled","generateFiltersState","isCurrentFacet","filterParams","item","addFilterItem","paramKey","paramValue","itemIndex","findIndex","push","paramName","split","pVal","fromEntries","resetFacets","k","v","resetFacet","initState","produce","current","APPLY_CONFIG","CLEAR_FILTERS","currentFilters","filterItems","EXECUTE_SEARCH","EXECUTE_SEARCH_ERROR","error","LOAD_FILTERS","facetKey","filtersToLoad","find","f","LOAD_FILTERS_ERROR","LOAD_FILTERS_COMPLETE","nextFilter","arrayMerge","source","inbound","SET_ROUTE_FILTERS","stateTerm","tabId","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","dynamicOrderBy","toArray","Number","loadMorePaging","ssr","window","SET_SEARCH_ENTRIES","thisContext","nextFacet","SET_SEARCH_FILTERS","useSearchTerm","UPDATE_PAGE_INDEX","internalPaging","UPDATE_PAGE_SIZE","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","isSingleSelect","currentItems","UPDATE_SORT_ORDER"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAKO,MAAMA,IAAI,GAEbC,gBADF,IAGCC,qBAAD,IAAkC;EAChC,MAAMC,GAAG,GAAG,CAAZ,CAAA;EACA,MAAMC,KAAK,GAAG,CAAd,CAAA;AAEA,EAAA,MAAMC,OAAO,GAAGC,MAAM,CAACC,OAAP,CAAeL,qBAAf,CAAsCM,CAAAA,MAAtC,CACd,CAACC,QAAD,EAAgBC,oBAAhB,KAAyC;AACvC,IAAA,MAAMC,OAAO,GAAGD,oBAAoB,CAACP,GAAD,CAApC,CAAA;AACA,IAAA,MAAMS,SAAS,GAAGF,oBAAoB,CAACN,KAAD,CAAtC,CAAA;AACAK,IAAAA,QAAQ,CAACE,OAAD,CAAR,GACEC,SAAS,IAAI,OAAOA,SAAP,KAAqB,QAAlC,IAA8C,MAAA,IAAUA,SAAxD,GACIA,SAAS,CAACZ,IAAV,EADJ,GAEIY,SAHN,CAAA;AAIA,IAAA,OAAOH,QAAP,CAAA;GARY,EAUd,EAVc,CAAhB,CAAA;AAaA,EAAA,oBAAOI,yBAAC,CAAA,aAAA,CAAA,gBAAD,EAAsBR,OAAtB,CAAP,CAAA;AACD,CAtBI;;ACLP;;AAyCA,MAAMS,UAAU,GACbC,OAAD,IAEEC,eADF,IAEK;EACH,MAAMC,OAA2C,GAAGC,KAAK,IAAI;AAC3D,IAAA,oBAAOL,yBAAC,CAAA,aAAA,CAAA,eAAD,EAAqBK,KAArB,CAAP,CAAA;GADF,CAAA;;EAIAD,OAAO,CAACE,WAAR,GAAuB,CACrBH,WAAAA,EAAAA,eAAe,CAACG,WAAhB,IAA+BH,eAAe,CAACI,IAChD,CAFD,CAAA,CAAA,CAAA;;EAIA,MAAMC,eAAe,GAAIC,KAAD,IAAqB;IAC3C,OAAO;AACLC,MAAAA,YAAY,EAAEC,qBAAe,CAACF,KAAD,CADxB;AAELG,MAAAA,gBAAgB,EAAEC,kBAAY,CAACJ,KAAD,CAFzB;AAGLK,MAAAA,eAAe,EAAEC,mBAAa,CAACN,KAAD,CAHzB;AAILO,MAAAA,KAAK,EAAEC,cAAQ,CAACR,KAAD,CAJV;AAKLS,MAAAA,MAAM,EAAEC,kBAAY,CAACV,KAAD,CALf;AAMLW,MAAAA,gBAAgB,EAAEC,yBAAmB,CAACZ,KAAD,CANhC;AAOLa,MAAAA,WAAW,EAAEC,oBAAc,CAACd,KAAD,CAPtB;AAQLe,MAAAA,eAAe,EAAEC,wBAAkB,CAAChB,KAAD,CAR9B;AASLiB,MAAAA,OAAO,EAAEC,0BAAoB,CAAClB,KAAD,CATxB;AAULmB,MAAAA,SAAS,EAAEC,kBAAY,CAACpB,KAAD,CAVlB;AAWLqB,MAAAA,MAAM,EAAEC,eAAS,CAACtB,KAAD,CAXZ;AAYLuB,MAAAA,aAAa,EAAEC,sBAAgB,CAACxB,KAAD,CAZ1B;AAaLyB,MAAAA,OAAO,EAAEC,gBAAU,CAAC1B,KAAD,CAbd;AAcL2B,MAAAA,WAAW,EAAE,CAAAlC,OAAO,KAAP,IAAA,IAAAA,OAAO,KAAP,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,OAAO,CAAEkC,WAAT,KAAwBlC,OAAO,CAACkC,WAAR,CAAoB3B,KAApB,CAdhC;AAeL4B,MAAAA,UAAU,EAAEC,mBAAa,CAAC7B,KAAD,CAfpB;AAgBL8B,MAAAA,gBAAgB,EAAEC,yBAAmB,CAAC/B,KAAD,CAhBhC;AAiBLgC,MAAAA,eAAe,EAAEC,wBAAkB,CAACjC,KAAD,CAjB9B;MAkBLkC,SAAS,EAAEC,uBAAiB,CAAC;AAAEnC,QAAAA,KAAAA;AAAF,OAAD,EAAY,gBAAZ,EAA8B,EAA9B,CAlBvB;AAmBLoC,MAAAA,aAAa,EAAEC,sBAAgB,CAACrC,KAAD,CAnB1B;MAoBLsC,UAAU,EAAEC,mBAAa,CAACvC,KAAD,CAAA;KApB3B,CAAA;GADF,CAAA;;AAyBA,EAAA,MAAMwC,kBAAkB,GAAG;IACzBC,YAAY,EAAGC,SAAD,IACZC,iBAAW,CAACF,kBAAY,CAACC,SAAD,CAAb,EAA0BjD,OAA1B,CAFY;IAGzBmD,kBAAkB,EAAGrC,KAAD,IAClBoC,iBAAW,CAACC,wBAAkB,CAACrC,KAAD,CAAnB,EAA4Bd,OAA5B,CAJY;IAKzBoD,gBAAgB,EAAGC,EAAD,IAChBH,iBAAW,CAACE,sBAAgB,CAACC,EAAD,CAAjB,EAAuBrD,OAAvB,CANY;AAOzBsD,IAAAA,eAAe,EAAE,CAACC,SAAD,EAAoBC,eAApB,KACfN,iBAAW,CAACI,qBAAe,CAACC,SAAD,EAAYC,eAAZ,CAAhB,EAA8CxD,OAA9C,CARY;AASzByD,IAAAA,cAAc,EAAE,CAACC,QAAD,EAAmBF,eAAnB,KACdN,iBAAW,CAACO,oBAAc,CAACC,QAAD,EAAWF,eAAX,CAAf,EAA4CxD,OAA5C,CAVY;IAWzB2D,gBAAgB,EAAGC,IAAD,IAChBV,iBAAW,CAACS,sBAAgB,CAACC,IAAD,CAAjB,EAAyB5D,OAAzB,CAZY;IAazB6D,qBAAqB,EAAE,CACrBC,MADqB,EAErBC,GAFqB,EAGrBC,aAAa,GAAG,KAHK,EAIrBR,eAJqB,KAMrBN,iBAAW,CACTW,2BAAqB,CAACC,MAAD,EAASC,GAAT,EAAcC,aAAd,EAA6BR,eAA7B,CADZ,EAETxD,OAFS,CAnBY;IAuBzBiE,eAAe,EAAGC,OAAD,IACfhB,iBAAW,CAACe,qBAAe,CAACC,OAAD,CAAhB,EAA2BlE,OAA3B,CAAA;GAxBf,CAAA;AA2BA,EAAA,MAAMmE,SAAS,GAAGC,kBAAO,CAAC9D,eAAD,EAAkByC,kBAAlB,CAAzB,CAAA;AAEA,EAAA,OAAOoB,SAAS,CAAClF,IAAI,CAACiB,OAAD,CAAL,CAAhB,CAAA;AACD;;AC7GH;;AAoBA,MAAMmE,WAAW,GACdrE,OAAD,IACoCsE,gBAApC,IAA0E;EACxE,MAAMpE,OAA4C,GAAGC,KAAK,IAAI;AAC5D,IAAA,oBAAOL,yBAAC,CAAA,aAAA,CAAA,gBAAD,EAAsBK,KAAtB,CAAP,CAAA;GADF,CAAA;;EAIAD,OAAO,CAACE,WAAR,GAAuB,CACrBkE,YAAAA,EAAAA,gBAAgB,CAAClE,WAAjB,IAAgCkE,gBAAgB,CAACjE,IAClD,CAFD,CAAA,CAAA,CAAA;EAIA,MAAM;IACJkE,UADI;IAEJhD,kBAFI;IAGJI,YAHI;IAIJ6C,UAJI;IAKJ7D,YALI;IAMJkB,SANI;IAOJa,iBAPI;IAQJjB,oBARI;IASJQ,UATI;IAUJG,aAVI;AAWJI,IAAAA,kBAAAA;AAXI,GAAA,GAYFiC,mBAZJ,CAAA;;EAcA,MAAMnE,eAAe,GAAIC,KAAD,IAAqB;IAC3C,OAAO;AACLmE,MAAAA,cAAc,EAAEH,UAAU,CAAChE,KAAD,CADrB;AAELG,MAAAA,gBAAgB,EAAEC,YAAY,CAACJ,KAAD,CAFzB;AAGLoE,MAAAA,OAAO,EAAEH,UAAU,CAACjE,KAAD,CAHd;AAILqE,MAAAA,QAAQ,EAAErD,kBAAkB,CAAChB,KAAD,CAJvB;AAKLiB,MAAAA,OAAO,EAAEC,oBAAoB,CAAClB,KAAD,CALxB;AAMLmB,MAAAA,SAAS,EAAEC,YAAY,CAACpB,KAAD,CANlB;AAOLqB,MAAAA,MAAM,EAAEC,SAAS,CAACtB,KAAD,CAPZ;AAQLyB,MAAAA,OAAO,EAAEC,UAAU,CAAC1B,KAAD,CARd;AASL2B,MAAAA,WAAW,EACTlC,OAAO,IACP,OAAOA,OAAO,CAACkC,WAAf,KAA+B,UAD/B,IAEAlC,OAAO,CAACkC,WAAR,CAAoB3B,KAApB,CAZG;AAaL4B,MAAAA,UAAU,EAAEC,aAAa,CAAC7B,KAAD,CAbpB;AAcLgC,MAAAA,eAAe,EAAEC,kBAAkB,CAACjC,KAAD,CAd9B;MAeLkC,SAAS,EAAEC,iBAAiB,CAAC;AAAEnC,QAAAA,KAAAA;OAAH,EAAY,gBAAZ,EAA8B,EAA9B,CAAA;KAf9B,CAAA;GADF,CAAA;;AAoBA,EAAA,MAAMwC,kBAAkB,GAAG;IACzBC,YAAY,EAAGC,SAAD,IACZC,iBAAW,CAACF,kBAAY,CAACC,SAAD,CAAb,EAA0BjD,OAA1B,CAFY;IAGzBmD,kBAAkB,EAAGrC,KAAD,IAClBoC,iBAAW,CAACC,wBAAkB,CAACrC,KAAD,CAAnB,EAA4Bd,OAA5B,CAJY;AAKzBsD,IAAAA,eAAe,EAAE,CAACC,SAAD,EAAoBC,eAApB,KACfN,iBAAW,CAACI,qBAAe,CAACC,SAAD,EAAYC,eAAZ,CAAhB,EAA8CxD,OAA9C,CANY;AAOzByD,IAAAA,cAAc,EAAE,CAACC,QAAD,EAAmBF,eAAnB,KACdN,iBAAW,CAACO,oBAAc,CAACC,QAAD,EAAWF,eAAX,CAAf,EAA4CxD,OAA5C,CARY;IASzB2D,gBAAgB,EAAGC,IAAD,IAChBV,iBAAW,CAACS,sBAAgB,CAACC,IAAD,CAAjB,EAAyB5D,OAAzB,CAVY;IAWzB6D,qBAAqB,EAAE,CACrBC,MADqB,EAErBC,GAFqB,EAGrBC,aAAa,GAAG,KAHK,EAIrBR,eAJqB,KAMrBN,iBAAW,CACTW,2BAAqB,CAACC,MAAD,EAASC,GAAT,EAAcC,aAAd,EAA6BR,eAA7B,CADZ,EAETxD,OAFS,CAjBY;IAqBzBiE,eAAe,EAAGC,OAAD,IACfhB,iBAAW,CAACe,qBAAe,CAACC,OAAD,CAAhB,EAA2BlE,OAA3B,CAAA;GAtBf,CAAA;EAyBA,OAAOoE,kBAAO,CAAC9D,eAAD,EAAkByC,kBAAlB,CAAP,CAA6C9D,IAAI,CAACiB,OAAD,CAAjD,CAAP,CAAA;AACD;;ACxFH,qBAAe;EACb8B,OAAO,EAAExC,OAAO,IAAIA,OADP;AAEbqF,EAAAA,QAAQ,EAAEC,yBAAAA;AAFG,CAAf;;ACsBA,MAAM;cACJP,YADI;EAEJ1D,aAFI;EAGJE,QAHI;EAIJI,mBAJI;EAKJE,cALI;sBAMJE,oBANI;gBAOJI,cAPI;gBAQJhB,cARI;oBASJoB,kBATI;qBAUJW,mBAVI;wBAWJjB,sBAXI;iBAYJW,eAZI;EAaJE,mBAbI;EAcJrB,YAdI;EAeJ2B,gBAfI;AAgBJE,EAAAA,aAAAA;AAhBI,CAAA,GAiBFiC,kBAjBJ,CAAA;;AAmBA,MAAMC,qBAAqB,GAAG,MAC5BC,uBAAc,CACX1E,KAAD,IAAqBA,KADT,EAEZ,CAAC2E,CAAD,EAASlF,OAAT,KAA8BA,OAFlB,EAGZ,CAACO,KAAD,EAAkBP,OAAlB,MAAwC;AACtCQ,EAAAA,YAAY,EAAE+D,YAAU,CAAChE,KAAD,CADc;AAEtCG,EAAAA,gBAAgB,EAAEC,cAAY,CAACJ,KAAD,CAFQ;AAGtCK,EAAAA,eAAe,EAAEC,aAAa,CAACN,KAAD,CAHQ;AAItCO,EAAAA,KAAK,EAAEC,QAAQ,CAACR,KAAD,CAJuB;AAKtCa,EAAAA,WAAW,EAAEC,cAAc,CAACd,KAAD,CALW;AAMtCS,EAAAA,MAAM,EAAEC,YAAY,CAACV,KAAD,CANkB;AAOtCW,EAAAA,gBAAgB,EAAEC,mBAAmB,CAACZ,KAAD,CAPC;AAQtCqE,EAAAA,QAAQ,EAAErD,oBAAkB,CAAChB,KAAD,CARU;AAStCiB,EAAAA,OAAO,EAAEC,sBAAoB,CAAClB,KAAD,CATS;AAUtCmB,EAAAA,SAAS,EAAEC,cAAY,CAACpB,KAAD,CAVe;AAWtCuB,EAAAA,aAAa,EAAEC,kBAAgB,CAACxB,KAAD,CAXO;AAYtCqB,EAAAA,MAAM,EAAEC,eAAS,CAACtB,KAAD,EAAQ,EAAR,EAAY4E,aAAO,CAACnE,MAApB,EAA4B,IAA5B,CAZqB;AAatCgB,EAAAA,OAAO,EAAEC,gBAAU,CAAC1B,KAAD,EAAQ,EAAR,EAAY4E,aAAO,CAACnE,MAApB,EAA4B,IAA5B,CAbmB;AActCkB,EAAAA,WAAW,EACTlC,OAAO,IACP,OAAOA,OAAO,CAACkC,WAAf,KAA+B,UAD/B,IAEAlC,OAAO,CAACkC,WAAR,CAAoB3B,KAApB,CAjBoC;AAkBtC4B,EAAAA,UAAU,EAAEC,eAAa,CAAC7B,KAAD,CAlBa;AAmBtC8B,EAAAA,gBAAgB,EAAEC,mBAAmB,CAAC/B,KAAD,CAnBC;AAoBtCgC,EAAAA,eAAe,EAAEC,wBAAkB,CAACjC,KAAD,EAAQ,EAAR,EAAY4E,aAAO,CAACnE,MAApB,EAA4B,IAA5B,CApBG;EAqBtCyB,SAAS,EAAEC,mBAAiB,CAAC;AAAEnC,IAAAA,KAAAA;AAAF,GAAD,EAAY,gBAAZ,EAA8B,EAA9B,CArBU;AAsBtCoC,EAAAA,aAAa,EAAEC,gBAAgB,CAACrC,KAAD,CAtBO;EAuBtCsC,UAAU,EAAEC,aAAa,CAACvC,KAAD,CAAA;AAvBa,CAAxC,CAHY,CADhB,CAAA;;AA+BM6E,MAAAA,SAAS,GAAG,CAChB;AAAEpF,EAAAA,OAAAA;AAAF,CAA8B,GAAA;AAC5BqD,EAAAA,EAAE,EAAE,EAAA;AADwB,CADd,KAIb;EACH,MAAMgC,QAAQ,GAAGC,sBAAW,EAA5B,CAAA;AAEA,EAAA,MAAMC,CAAC,GAAGvF,OAAO,IAAIwF,cAArB,CAAA;EAEA,MAAMC,kBAAkB,GAAGC,aAAO,CAACV,qBAAD,EAAwB,CAACO,CAAD,CAAxB,CAAlC,CAAA;AAEA,EAAA,MAAMI,aAAa,GAAG;AACpB3C,IAAAA,YAAY,EAAGC,SAAD,IACZoC,QAAQ,CAACnC,iBAAW,CAACF,kBAAY,CAACC,SAAD,CAAb,EAA0BsC,CAA1B,CAAZ,CAFU;AAGpBpC,IAAAA,kBAAkB,EAAGrC,KAAD,IAClBuE,QAAQ,CAACnC,iBAAW,CAACC,wBAAkB,CAACrC,KAAD,CAAnB,EAA4ByE,CAA5B,CAAZ,CAJU;IAKpBnC,gBAAgB,EAAGC,EAAD,IAAgBH,iBAAW,CAACE,sBAAgB,CAACC,EAAD,CAAjB,EAAuBkC,CAAvB,CALzB;AAMpBjC,IAAAA,eAAe,EAAE,CAACC,SAAD,EAAoBC,eAApB,KACf6B,QAAQ,CAACnC,iBAAW,CAACI,qBAAe,CAACC,SAAD,EAAYC,eAAZ,CAAhB,EAA8C+B,CAA9C,CAAZ,CAPU;AAQpB9B,IAAAA,cAAc,EAAE,CAACC,QAAD,EAAmBF,eAAnB,KACd6B,QAAQ,CAACnC,iBAAW,CAACO,oBAAc,CAACC,QAAD,EAAWF,eAAX,CAAf,EAA4C+B,CAA5C,CAAZ,CATU;AAUpB5B,IAAAA,gBAAgB,EAAGC,IAAD,IAChByB,QAAQ,CAACnC,iBAAW,CAACS,sBAAgB,CAACC,IAAD,CAAjB,EAAyB2B,CAAzB,CAAZ,CAXU;AAYpB1B,IAAAA,qBAAqB,EAAE,CACrBC,MADqB,EAErBC,GAFqB,EAGrBC,aAAa,GAAG,KAHK,EAIrBR,eAJqB,KAMrB6B,QAAQ,CACNnC,iBAAW,CACTW,2BAAqB,CAACC,MAAD,EAASC,GAAT,EAAcC,aAAd,EAA6BR,eAA7B,CADZ,EAET+B,CAFS,CADL,CAlBU;AAwBpBtB,IAAAA,eAAe,EAAGC,OAAD,IACfmB,QAAQ,CAACnC,iBAAW,CAACe,qBAAe,CAACC,OAAD,CAAhB,EAA2BqB,CAA3B,CAAZ,CAAA;GAzBZ,CAAA;EA4BA,MAAM;IACJ/E,YADI;IAEJE,gBAFI;IAGJE,eAHI;IAIJE,KAJI;IAKJE,MALI;IAMJE,gBANI;IAOJE,WAPI;IAQJwD,QARI;IASJpD,OATI;IAUJE,SAVI;IAWJE,MAXI;IAYJE,aAZI;IAaJE,OAbI;IAcJE,WAdI;IAeJC,UAfI;IAgBJE,gBAhBI;IAiBJE,eAjBI;IAkBJE,SAlBI;IAmBJE,aAnBI;AAoBJE,IAAAA,UAAAA;GACE+C,GAAAA,sBAAW,CAAErF,KAAD,IAAqBkF,kBAAkB,CAAClF,KAAD,EAAQgF,CAAR,CAAxC,CArBf,CAAA;EAuBA,OAAO;IACL/E,YADK;IAELE,gBAFK;IAGLE,eAHK;IAILE,KAJK;IAKLE,MALK;IAMLE,gBANK;IAOLE,WAPK;IAQLwD,QARK;IASLpD,OATK;IAULE,SAVK;IAWLE,MAXK;IAYLE,aAZK;IAaLE,OAbK;IAcLE,WAdK;IAeLC,UAfK;IAgBLE,gBAhBK;IAiBLE,eAjBK;IAkBLE,SAlBK;IAmBLE,aAnBK;IAoBLE,UApBK;IAqBL,GAAG8C,aAAAA;GArBL,CAAA;AAuBD;;ACxID,MAAM;EACJpB,UADI;EAEJhD,kBAFI;EAGJI,YAHI;EAIJ6C,UAJI;EAKJ7D,YALI;EAMJoB,gBANI;EAOJW,iBAPI;EAQJjB,oBARI;AASJW,EAAAA,aAAAA;AATI,CAAA,GAUFqC,mBAVJ,CAAA;;AAYA,MAAMoB,sBAAsB,GAAG,MAC7BZ,uBAAc,CACX1E,KAAD,IAAqBA,KADT,EAEZ,CAAC2E,CAAD,EAASlF,OAAT,KAA8BA,OAFlB,EAGZ,CAACO,KAAD,EAAkBP,OAAlB,MAAwC;AACtC0E,EAAAA,cAAc,EAAEH,UAAU,CAAChE,KAAD,CADY;AAEtCG,EAAAA,gBAAgB,EAAEC,YAAY,CAACJ,KAAD,CAFQ;AAGtCoE,EAAAA,OAAO,EAAEH,UAAU,CAACjE,KAAD,CAHmB;AAItCqE,EAAAA,QAAQ,EAAErD,kBAAkB,CAAChB,KAAD,CAJU;AAKtCiB,EAAAA,OAAO,EAAEC,oBAAoB,CAAClB,KAAD,CALS;AAMtCmB,EAAAA,SAAS,EAAEC,YAAY,CAACpB,KAAD,CANe;AAOtCuB,EAAAA,aAAa,EAAEC,gBAAgB,CAACxB,KAAD,CAPO;AAQtCqB,EAAAA,MAAM,EAAEC,eAAS,CAACtB,KAAD,EAAQ,EAAR,EAAY4E,aAAO,CAACW,QAApB,EAA8B,IAA9B,CARqB;AAStC9D,EAAAA,OAAO,EAAEC,gBAAU,CAAC1B,KAAD,EAAQ,EAAR,EAAY4E,aAAO,CAACW,QAApB,EAA8B,IAA9B,CATmB;AAUtC5D,EAAAA,WAAW,EACTlC,OAAO,IACP,OAAOA,OAAO,CAACkC,WAAf,KAA+B,UAD/B,IAEAlC,OAAO,CAACkC,WAAR,CAAoB3B,KAApB,CAboC;AActC4B,EAAAA,UAAU,EAAEC,aAAa,CAAC7B,KAAD,CAda;AAetCgC,EAAAA,eAAe,EAAEC,wBAAkB,CAACjC,KAAD,EAAQ,EAAR,EAAY4E,aAAO,CAACW,QAApB,EAA8B,IAA9B,CAfG;EAgBtCrD,SAAS,EAAEC,iBAAiB,CAAC;AAAEnC,IAAAA,KAAAA;GAAH,EAAY,gBAAZ,EAA8B,EAA9B,CAAA;AAhBU,CAAxC,CAHY,CADhB,CAAA;;AAwBMwF,MAAAA,UAAU,GAAG,CACjB;AAAE/F,EAAAA,OAAAA;AAAF,CAA+B,GAAA;AAC7BqD,EAAAA,EAAE,EAAE,EAAA;AADyB,CADd,KAId;EACH,MAAMgC,QAAQ,GAAGC,sBAAW,EAA5B,CAAA;AAEA,EAAA,MAAMC,CAAC,GAAGvF,OAAO,IAAIwF,cAArB,CAAA;EAEA,MAAMC,kBAAkB,GAAGC,aAAO,CAACG,sBAAD,EAAyB,CAACN,CAAD,CAAzB,CAAlC,CAAA;AAEA,EAAA,MAAMI,aAAa,GAAG;AACpB3C,IAAAA,YAAY,EAAGC,SAAD,IACZoC,QAAQ,CAACnC,iBAAW,CAACF,kBAAY,CAACC,SAAD,CAAb,EAA0BsC,CAA1B,CAAZ,CAFU;AAGpBpC,IAAAA,kBAAkB,EAAGrC,KAAD,IAClBuE,QAAQ,CAACnC,iBAAW,CAACC,wBAAkB,CAACrC,KAAD,CAAnB,EAA4ByE,CAA5B,CAAZ,CAJU;AAKpBjC,IAAAA,eAAe,EAAE,CAACC,SAAD,EAAoBC,eAApB,KACf6B,QAAQ,CAACnC,iBAAW,CAACI,qBAAe,CAACC,SAAD,EAAYC,eAAZ,CAAhB,EAA8C+B,CAA9C,CAAZ,CANU;AAOpB9B,IAAAA,cAAc,EAAE,CAACC,QAAD,EAAmBF,eAAnB,KACd6B,QAAQ,CAACnC,iBAAW,CAACO,oBAAc,CAACC,QAAD,EAAWF,eAAX,CAAf,EAA4C+B,CAA5C,CAAZ,CARU;AASpB5B,IAAAA,gBAAgB,EAAGC,IAAD,IAChByB,QAAQ,CAACnC,iBAAW,CAACS,sBAAgB,CAACC,IAAD,CAAjB,EAAyB2B,CAAzB,CAAZ,CAVU;AAWpB1B,IAAAA,qBAAqB,EAAE,CACrBC,MADqB,EAErBC,GAFqB,EAGrBC,aAAa,GAAG,KAHK,EAIrBR,eAJqB,KAMrB6B,QAAQ,CACNnC,iBAAW,CACTW,2BAAqB,CAACC,MAAD,EAASC,GAAT,EAAcC,aAAd,EAA6BR,eAA7B,CADZ,EAET+B,CAFS,CADL,CAjBU;AAuBpBtB,IAAAA,eAAe,EAAGC,OAAD,IACfmB,QAAQ,CAACnC,iBAAW,CAACe,qBAAe,CAACC,OAAD,CAAhB,EAA2BqB,CAA3B,CAAZ,CAAA;GAxBZ,CAAA;EA2BA,MAAM;IACJb,cADI;IAEJhE,gBAFI;IAGJkE,QAHI;IAIJpD,OAJI;IAKJE,SALI;IAMJiD,OANI;IAOJ/C,MAPI;IAQJE,aARI;IASJE,OATI;IAUJE,WAVI;IAWJC,UAXI;IAYJI,eAZI;AAaJE,IAAAA,SAAAA;GACEmD,GAAAA,sBAAW,CAAErF,KAAD,IAAqBkF,kBAAkB,CAAClF,KAAD,EAAQgF,CAAR,CAAxC,CAdf,CAAA;EAgBA,OAAO;IACLb,cADK;IAELhE,gBAFK;IAGLkE,QAHK;IAILpD,OAJK;IAKLE,SALK;IAMLiD,OANK;IAOL7C,aAPK;IAQLF,MARK;IASLI,OATK;IAULE,WAVK;IAWLC,UAXK;IAYLI,eAZK;IAaLE,SAbK;IAcLuD,KAAK,EAAErB,OAAO,CAACqB,KAdV;IAeL,GAAGL,aAAAA;GAfL,CAAA;AAiBD;;ACjHD,MAAMM,uBAAuB,GAAG,MAC9BhB,uBAAc,CACX1E,KAAD,IAAqBA,KADT,EAEZ,CAAC2E,CAAD,EAAS7B,EAAT,KAAwBA,EAFZ,EAGZ,CAAC9C,KAAD,EAAkB8C,EAAlB,KACEA,EAAE,GACE;AACEvC,EAAAA,KAAK,EAAEC,cAAQ,CAACR,KAAD,EAAQ8C,EAAR,EAAY8B,aAAO,CAACe,QAApB,EAA8B,IAA9B,CADjB;AAEE1E,EAAAA,OAAO,EAAE2E,gBAAU,CAAC5F,KAAD,EAAQ8C,EAAR,EAAY8B,aAAO,CAACe,QAApB,EAA8B,IAA9B,CAFrB;EAGExE,SAAS,EAAEC,kBAAY,CAACpB,KAAD,EAAQ4E,aAAO,CAACe,QAAhB,EAA0B7C,EAA1B,CAHzB;AAIE+C,EAAAA,UAAU,EAAEvE,eAAS,CAACtB,KAAD,EAAQ8C,EAAR,EAAY8B,aAAO,CAACe,QAApB,EAA8B,IAA9B,CAJvB;AAKElE,EAAAA,OAAO,EAAEC,gBAAU,CAAC1B,KAAD,EAAQ8C,EAAR,EAAY8B,aAAO,CAACe,QAApB,EAA8B,IAA9B,CALrB;EAME/D,UAAU,EAAEC,mBAAa,CAAC7B,KAAD,CAAA;AAN3B,CADF,GASE,IAbM,CADhB,CAAA;;AAiBM8F,MAAAA,WAAW,GAAG,CAClB;EACEhD,EADF;EAEEiD,MAFF;EAGEC,UAHF;EAIEC,MAJF;EAKExG,OALF;EAMEyG,MANF;EAOEC,WAPF;AAQEC,EAAAA,KAAAA;AARF,CASsB,GAAA;AAAEtD,EAAAA,EAAE,EAAE,EAAA;AAAN,CAVJ,KAWf;EACH,MAAMgC,QAAQ,GAAGC,sBAAW,EAA5B,CAAA;EAEA,MAAMsB,mBAAmB,GAAGlB,aAAO,CAACO,uBAAD,EAA0B,CAAC5C,EAAD,CAA1B,CAAnC,CAAA;EAEA,MAAM;IAAEvC,KAAF;IAASU,OAAT;IAAkBE,SAAlB;IAA6B0E,UAA7B;IAAyCpE,OAAzC;AAAkDG,IAAAA,UAAAA;GACtDyD,GAAAA,sBAAW,CAAErF,KAAD,IAAqBqG,mBAAmB,CAACrG,KAAD,EAAQ8C,EAAR,CAAzC,CAAX,IAAoE;AAClEvC,IAAAA,KAAK,EAAE,EAD2D;AAElEU,IAAAA,OAAO,EAAE,EAFyD;AAGlEE,IAAAA,SAAS,EAAE,KAHuD;AAIlE0E,IAAAA,UAAU,EAAE,EAJsD;AAKlEpE,IAAAA,OAAO,EAAE,EALyD;AAMlEG,IAAAA,UAAU,EAAE,EAAA;AANsD,GADtE,CALG;AAeH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA0E,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAIxD,EAAE,KAAKmD,MAAM,IAAIxG,OAAJ,KAAA,IAAA,IAAIA,OAAJ,KAAA,KAAA,CAAA,IAAIA,OAAO,CAAEgC,OAAxB,CAAN,EAAwC;MACtCqD,QAAQ,CACNyB,mBAAa,CAAC;QACZR,MADY;QAEZS,OAAO,EAAE5B,aAAO,CAACe,QAFL;QAGZQ,WAHY;AAIZ5F,QAAAA,KAAK,EAAEuC,EAJK;QAKZmD,MALY;QAMZxG,OANY;QAOZyG,MAPY;QAQZF,UARY;AASZI,QAAAA,KAAAA;AATY,OAAD,CADP,CAAR,CAAA;AAaD,KAAA;AACF,GAhBQ,EAgBN,CAACtB,QAAD,EAAWkB,UAAX,EAAuBlD,EAAvB,EAA2BqD,WAA3B,EAAwCD,MAAxC,CAhBM,CAAT,CAAA;EAkBA,OAAO;IACLjF,OADK;IAELE,SAFK;AAGLE,IAAAA,MAAM,EAAEwE,UAHH;IAILpE,OAJK;IAKLG,UALK;IAML6D,KAAK,EAAElF,KAAK,CAACkF,KAAAA;GANf,CAAA;AAQD;;AC5FM,MAAMxG,OAAO,GAAG;AACrBkC,EAAAA,SAAS,EAAE,KADU;AAErBsF,EAAAA,OAAO,EAAE,KAFY;AAGrBC,EAAAA,KAAK,EAAE,EAAA;AAHc,CAAhB,CAAA;AAMA,MAAMb,UAAU,GAAG;AACxB1E,EAAAA,SAAS,EAAE,KADa;AAExBwF,EAAAA,SAAS,EAAE,CAFa;AAGxB3D,EAAAA,SAAS,EAAE,CAHa;AAIxBG,EAAAA,QAAQ,EAAE,CAJc;AAKxByD,EAAAA,WAAW,EAAE,EALW;AAMxBC,EAAAA,aAAa,EAAE,CANS;AAOxBvE,EAAAA,UAAU,EAAE,CAAA;AAPY,CAAnB,CAAA;AAUA,MAAMwE,WAAW,GAAG;AACzBrB,EAAAA,KAAK,EAAE,IADkB;AAEzBsB,EAAAA,eAAe,EAAE9H,OAFQ;AAGzB8B,EAAAA,eAAe,EAAE,EAHQ;EAIzB9B,OAJyB;AAKzBwC,EAAAA,OAAO,EAAE,EALgB;AAMzBuF,EAAAA,WAAW,EAAE,EANY;AAOzB/F,EAAAA,OAAO,EAAE,EAPgB;AAQzBgG,EAAAA,aAAa,EAAE,CARU;EASzBpB,UATyB;AAUzBqB,EAAAA,SAAS,EAAE,EAAA;AAVc,CAApB,CAAA;AAaA,MAAMC,SAAS,GAAG;AACvBlH,EAAAA,YAAY,EAAEmH,SADS;AAEvB3G,EAAAA,MAAM,EAAE,EAFe;AAGvBqC,EAAAA,EAAE,EAAE,CAHmB;AAIvBuE,EAAAA,KAAK,EAAED,SAJgB;AAKvB9E,EAAAA,UAAU,EAAE,EAAA;AALW,CAAlB,CAAA;AAQA,MAAMgF,SAAS,GAAG;AACvBnG,EAAAA,SAAS,EAAE,KADY;AAEvBsF,EAAAA,OAAO,EAAE,KAFc;AAGvBc,EAAAA,SAAS,EAAE,KAHY;AAIvB9B,EAAAA,KAAK,EAAE2B,SAJgB;AAKvBI,EAAAA,aAAa,EAAEJ,SALQ;AAMvBK,EAAAA,WAAW,EAAE,EANU;AAOvBC,EAAAA,OAAO,EAAEN,SAPc;AAQvBV,EAAAA,KAAK,EAAE,EAAA;AARgB,CAAlB,CAAA;AAcA,MAAMiB,UAAU,GAAG;AACxBnE,EAAAA,GAAG,EAAE,EADmB;AAExBoE,EAAAA,IAAI,EAAER,SAFkB;AAGxB3B,EAAAA,KAAK,EAAE2B,SAHiB;AAIxBS,EAAAA,IAAI,EAAET,SAJkB;AAKxBU,EAAAA,UAAU,EAAE,KAAA;AALY,CAAnB,CAAA;AAQP,MAAM/B,MAAM,GAAG;AACbgC,EAAAA,QAAQ,EAAE,KADG;AAEbtB,EAAAA,OAAO,EAAE,KAAA;AAFI,CAAf,CAAA;AAKA,MAAMuB,WAAwB,GAAG;AAC/BxB,EAAAA,OAAO,EAAE,QADsB;AAE/BvG,EAAAA,YAAY,EAAE,EAFiB;AAG/BkE,EAAAA,cAAc,EAAE,EAHe;AAI/B1D,EAAAA,MAAM,EAAE,EAJuB;AAK/B8E,EAAAA,QAAQ,EAAE,EALqB;AAM/BI,EAAAA,QAAQ,EAAE,EANqB;AAO/BtC,EAAAA,IAAI,EAAE,EAPyB;AAQ/B4E,EAAAA,IAAI,EAAE,EARyB;AAS/BlC,EAAAA,MAAAA;AAT+B,CAAjC,CAAA;AAYO,MAAMmC,YAAY,GAAGF,WAArB;;;;;;;;;;;;;AClCP,MAAMG,gBAAgB,GAAG,CAACnI,KAAD,EAAqBoI,MAArB,KAAqC;EAC5D,MAAM;IAAE5B,OAAF;IAAWjG,KAAX;AAAkBwF,IAAAA,MAAAA;GAAWqC,GAAAA,MAAnC,CAD4D;;AAO5D,EAAA,IAAI5B,OAAO,IAAIjG,KAAX,IAAoBwF,MAAxB,EAAgC;IAC9B/F,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,CAAwB,GAAA,EAAE,GAAGuG,WAAL;MAAkB,GAAGf,MAAAA;KAA7C,CAAA;GADF,MAEO,IAAIA,MAAJ,EAAY;AACjB;IACA/F,KAAK,GAAG,EAAE,GAAG+F,MAAL;MAAaA,MAAM,EAAEmC,YAAY,CAACnC,MAAAA;KAA1C,CAAA;AACD,GAAA;;AACD,EAAA,OAAO/F,KAAP,CAAA;AACD,CAdD,CAAA;;AAgBA,MAAMqI,oBAAoB,GAAG,CAAC7B,OAAD,EAAmBT,MAAnB,KAA4C;EACvE,MAAMtF,MAAM,GAAG,EAAf,CAAA;;AACA,EAAA,IAAIsF,MAAJ,EAAY;AACV,IAAA,MAAMuC,UAAuB,GAAGvC,MAAM,CAACS,OAAD,CAAN,IAAmB,EAAnD,CAAA;;IACA,IAAIxH,MAAM,CAACuJ,IAAP,CAAYD,UAAZ,CAAwBE,CAAAA,MAAxB,GAAiC,CAArC,EAAwC;AACtCxJ,MAAAA,MAAM,CAACC,OAAP,CAAeqJ,UAAf,CAA2BG,CAAAA,GAA3B,CACE,CAAC,CAACC,SAAD,EAAYnI,KAAZ,CAAD,KAAyD;AACvD,QAAA,MAAMoI,QAAQ,GAAGC,yBAAK,CAAC9B,WAAD,EAAcvG,KAAd,CAAtB,CAAA;AACA,QAAA,IAAI,EAAE,YAAA,IAAgBA,KAAlB,CAAA,IAA4BA,KAAK,CAACsI,UAAN,KAAqB,IAArD,EACEpI,MAAM,CAACiI,SAAD,CAAN,GAAoBC,QAApB,CAAA;OAJN,CAAA,CAAA;AAOD,KAAA;AACF,GAAA;;AACD,EAAA,OAAOlI,MAAP,CAAA;AACD,CAfD,CAAA;;AAiBA,MAAMqI,oBAAoB,GAAG,CAC3B;EACEvI,KADF;EAEE2F,MAFF;EAGEM,OAHF;AAIEuC,EAAAA,cAAAA;AAJF,CAD2B,EAY3B/I,KAZ2B,KAaxB;AACH;AACA,EAAA,MAAMgJ,YAAY,GAAG,EACnB,GAAG9C,MADgB;AAEnB3F,IAAAA,KAAK,EAAE6G,SAFY;AAGnBzD,IAAAA,OAAO,EAAEyD,SAHU;AAInBpE,IAAAA,SAAS,EAAEoE,SAJQ;AAKnB/D,IAAAA,IAAI,EAAE+D,SAAAA;AALa,GAArB,CAFG;AAWH;;EACA,IAAInG,OAA2B,GAAGjC,MAAM,CAACC,OAAP,CAC/Be,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,EAAsBU,OAAtB,IAAiC,EADF,CAAA,CAEhCwH,GAFgC,CAE5B,CAAC,CAACjF,GAAD,EAAMD,MAAN,CAAD,KAAqC;AACzC,IAAA,IAAIwF,cAAc,IAAIxF,MAAM,CAACgE,SAA7B,EAAwC;AAAA,MAAA,IAAA,aAAA,CAAA;;AACtC,MAAA,OAAO,CACL/D,GADK,EAEL,EACE,GAAGD,MADL;AAEEmD,QAAAA,KAAK,EAAEnD,CAAAA,aAAAA,GAAAA,MAAM,CAACmD,KAAT,MAAE,IAAA,IAAA,aAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAc+B,GAAd,CAAkBQ,IAAI,KAAK,EAAE,GAAGA,IAAL;AAAWnB,UAAAA,UAAU,EAAE,KAAA;AAAvB,SAAL,CAAtB,CAAA;AAFT,OAFK,CAAP,CAAA;AAOD,KAAA;;AACD,IAAA,OAAO,CAACtE,GAAD,EAAMD,MAAN,CAAP,CAAA;AACD,GAbiC,CAAlC,CAAA;;EAeA,MAAM2F,aAAa,GAAG,CACpBjI,OADoB,EAEpBkI,QAFoB,EAGpBC,UAHoB;AAMpB;AACA;AACA;AACA;AACA;EACAnI,OAAO,CAACwH,GAAR,CAA8B,CAAC,CAACjF,GAAD,EAAMD,MAAN,CAAD,KAAmB;IAC/C,IAAI4F,QAAQ,KAAK3F,GAAb,IAAqB,CAACuF,cAAD,IAAmB,CAACxF,MAAM,CAACgE,SAApD,EAAgE;AAC9D,MAAA,OAAO,CAAC/D,GAAD,EAAMD,MAAN,CAAP,CAAA;AACD,KAFD,MAEO;AACL,MAAA,MAAMmD,KAAK,GAAInD,MAAM,CAACmD,KAAP,IAAgB,EAA/B,CAAA;MACA,MAAM2C,SAAS,GAAG3C,KAAK,CAAC4C,SAAN,CAAgBL,IAAI,IAAI,CAAAA,IAAI,SAAJ,IAAAA,IAAI,WAAJ,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEzF,GAAN,MAAc4F,UAAtC,CAAlB,CAAA;;MACA,IAAI1C,KAAK,CAAC8B,MAAN,GAAe,CAAf,IAAoBa,SAAS,KAAK,CAAC,CAAvC,EAA0C;AACxC3C,QAAAA,KAAK,CAAC2C,SAAD,CAAL,CAAiBvB,UAAjB,GAA8B,IAA9B,CAAA;AACD,OAFD,MAEO;AACLpB,QAAAA,KAAK,CAAC6C,IAAN,CAAW,EACT,GAAG5B,UADM;AAETnE,UAAAA,GAAG,EAAE4F,UAFI;AAGTtB,UAAAA,UAAU,EAAE,IAAA;SAHd,CAAA,CAAA;AAKD,OAAA;;AAED,MAAA,OAAO,CACLtE,GADK,EAEL,EACE,GAAGD,MADL;AAEEmD,QAAAA,KAAAA;AAFF,OAFK,CAAP,CAAA;AAOD,KAAA;GAvBH,CAXF,CA3BG;AAiEH;AACA;AACA;AACA;AACA;;;AACA1H,EAAAA,MAAM,CAACC,OAAP,CAAe+J,YAAf,EAA6BP,GAA7B,CAAiC,CAAC,CAACe,SAAS,GAAG,EAAb,EAAiBJ,UAAjB,CAAD,KAAkC;IACjE,IAAI,OAAOA,UAAP,KAAsB,QAA1B,EACE,OAAOA,UAAU,CACdK,KADI,CACE,GADF,CAEJhB,CAAAA,GAFI,CAEAiB,IAAI,IAAKzI,OAAO,GAAGiI,aAAa,CAACjI,OAAD,EAAUuI,SAAV,EAAqBE,IAArB,CAFhC,CAAP,CAAA;AAGF,IAAA,IAAI,OAAON,UAAP,KAAsB,SAA1B,EACEnI,OAAO,GAAGiI,aAAa,CAACjI,OAAD,EAAUuI,SAAV,EAAqBJ,UAArB,CAAvB,CAAA;GANJ,CAAA,CAAA;AASA,EAAA,OAAOpK,MAAM,CAAC2K,WAAP,CAAmB1I,OAAnB,CAAP,CAAA;AACD,CA7FD,CAAA;;AA+FA,MAAM2I,WAAW,GAAG,CAAC5J,KAAD,EAAqBwG,OAArB,KAClBxH,MAAM,CAAC2K,WAAP,CACE3K,MAAM,CAACC,OAAP,CAAee,KAAK,CAACwG,OAAD,CAApB,CAAyCiC,CAAAA,GAAzC,CAA6C,CAAC,CAACoB,CAAD,EAAIC,CAAJ,CAAD,KAAY,CAACD,CAAD,EAAIE,UAAU,CAACD,CAAD,CAAd,CAAzD,CADF,CADF,CAAA;;AAKA,MAAMC,UAAU,GAAIxJ,KAAD,IAAkB;AACnCA,EAAAA,KAAK,CAACsF,UAAN,CAAiBe,WAAjB,GAA+B,EAA/B,CAAA;AACArG,EAAAA,KAAK,CAACsF,UAAN,CAAiB7C,SAAjB,GAA6B,CAA7B,CAAA;EACAzC,KAAK,CAAC0G,aAAN,GAAsB,CAAtB,CAAA;AACA,EAAA,OAAO1G,KAAP,CAAA;AACD,CALD,CAAA;;AAOA,eAAA,CAAgBwF,MAAD,IAA0B;AACvC;AACA,EAAA,MAAMiE,SAAsB,GAAG,EAC7B,GAAG9B,YAD0B;IAE7BD,IAAI,EAAElC,MAAM,CAACkC,IAFgB;IAG7BxH,MAAM,EAAE4H,oBAAoB,CAACzD,aAAO,CAACnE,MAAT,EAAiBsF,MAAjB,CAHC;IAI7BR,QAAQ,EAAE8C,oBAAoB,CAACzD,aAAO,CAACW,QAAT,EAAmBQ,MAAnB,CAJD;AAK7BJ,IAAAA,QAAQ,EAAE0C,oBAAoB,CAACzD,aAAO,CAACe,QAAT,EAAmBI,MAAnB,CAAA;GALhC,CAAA;EAQA,OAAOkE,aAAO,CACZ,CACEjK,KAAyB,GAAGgK,SAD9B,EAEE5B,MAFF,KAQK;AACH,IAAA,MAAM5B,OAAO,GAAGxG,KAAK,CAACwG,OAAtB,CAAA;AACA,IAAA,MAAM0D,OAAO,GACX1D,OAAO,KAAK,UAAZ,GAAyBxG,KAAK,CAACC,YAA/B,GAA8CD,KAAK,CAACmE,cADtD,CAAA;;IAGA,QAAQiE,MAAM,CAACR,IAAf;AACE,MAAA,KAAKuC,kBAAL;AAAmB,QAAA;AACjBnK,UAAAA,KAAK,GAAGmI,gBAAgB,CAACnI,KAAD,EAAQoI,MAAR,CAAxB,CAAA;AACA,UAAA,OAAOpI,KAAP,CAAA;AACD,SAAA;;AACD,MAAA,KAAKoK,mBAAL;AAAoB,QAAA;UAClB,MAAMC,cAAc,GAAGrK,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAA,CAAwBjJ,OAA/C,CAAA;UAEAjB,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBjJ,CAAAA,OAAxB,GAAkCjC,MAAM,CAAC2K,WAAP,CAChC3K,MAAM,CAACC,OAAP,CAAeoL,cAAf,CAAA,CAA+B5B,GAA/B,CAAmC,CAAC,CAAC/F,SAAD,EAAYa,MAAZ,CAAD,KAAyB;AAC1D,YAAA,IACE,OAAO6E,MAAM,CAAC1F,SAAd,KAA4B,WAA5B,IACA0F,MAAM,CAAC1F,SAAP,KAAqBA,SAFvB,EAGE;AACA,cAAA,MAAM4H,WAAW,GAAI/G,MAAM,CAACmD,KAAP,IAAgB,EAArC,CAAA;cAEAnD,MAAM,CAACmD,KAAP,GAAe4D,WAAW,CAAC7B,GAAZ,CAAgBQ,IAAI,KAAK,EACtC,GAAGA,IADmC;AAEtCnB,gBAAAA,UAAU,EAAE,KAAA;AAF0B,eAAL,CAApB,CAAf,CAAA;AAID,aAAA;;AAED,YAAA,OAAO,CAACpF,SAAD,EAAYa,MAAZ,CAAP,CAAA;AACD,WAdD,CADgC,CAAlC,CAAA;UAiBAvD,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBjD,CAAAA,aAAxB,GAAwC,CAAxC,CAAA;UACAjH,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,EAAwBrE,UAAxB,CAAmCe,WAAnC,GAAiD,EAAjD,CAAA;AAEA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAK2D,oBAAL;AAAqB,QAAA;AACnBvK,UAAAA,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsB4B,MAAM,CAAC7H,KAA7B,CAAA,CAAoCtB,OAApC,GAA8C,EAC5C,IAAIe,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsB4B,MAAM,CAAC7H,KAA7B,CAAoCtB,CAAAA,OAApC,IAA+CA,OAAnD,CAD4C;AAE5CkC,YAAAA,SAAS,EAAE,IAAA;WAFb,CAAA;AAIA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAKqJ,0BAAL;AAA2B,QAAA;AACzBxK,UAAAA,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsB4B,MAAM,CAAC7H,KAA7B,CAAoCtB,CAAAA,OAApC,GAA8C,EAC5C,GAAGA,OADyC;AAE5CwH,YAAAA,OAAO,EAAE,IAFmC;YAG5CgE,KAAK,EAAErC,MAAM,CAACqC,KAAAA;WAHhB,CAAA;AAKA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAKC,kBAAL;AAAmB,QAAA;UACjB,MAAM;YAAEC,QAAF;AAAYC,YAAAA,aAAAA;AAAZ,WAAA,GAA8BxC,MAApC,CAAA;UACA,MAAMnH,OAAO,GAAGjB,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsBmE,QAAtB,CAAA,CAAgC1J,OAAhD,CAAA;AAEAjC,UAAAA,MAAM,CAACC,OAAP,CAAegC,OAAf,CAAwBwH,CAAAA,GAAxB,CAA4B,CAAC,CAAC/F,SAAD,EAAYa,MAAZ,CAAD,KAAyB;AACnD,YAAA,IAAIqH,aAAa,CAACC,IAAd,CAAoBC,CAAD,IAAeA,CAAC,KAAKpI,SAAxC,CAAJ,EACE,OAAO,EAAE,GAAGa,MAAL;AAAapC,cAAAA,SAAS,EAAE,IAAA;aAA/B,CAAA;AACF,YAAA,OAAOoC,MAAP,CAAA;WAHF,CAAA,CAAA;AAMAvD,UAAAA,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsBmE,QAAtB,CAAA,CAAgC1J,OAAhC,GAA0CjC,MAAM,CAAC2K,WAAP,CACxC3K,MAAM,CAACC,OAAP,CAAegC,OAAf,CAAA,CAAwBwH,GAAxB,CAA4B,CAAC,CAAC/F,SAAD,EAAYa,MAAZ,CAAD,KAAyB;AACnD,YAAA,IAAIqH,aAAa,CAACC,IAAd,CAAoBC,CAAD,IAAeA,CAAC,KAAKpI,SAAxC,CAAJ,EACE,OAAO,CAACA,SAAD,EAAY,EAAE,GAAGa,MAAL;AAAapC,cAAAA,SAAS,EAAE,IAAA;AAAxB,aAAZ,CAAP,CAAA;AACF,YAAA,OAAO,CAACuB,SAAD,EAAYa,MAAZ,CAAP,CAAA;AACD,WAJD,CADwC,CAA1C,CAAA;AAQA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAKwH,wBAAL,CAAA;AACA,MAAA,KAAKC,2BAAL;AAA4B,QAAA;UAC1B,MAAM;YAAEL,QAAF;YAAYjI,SAAZ;AAAuBuI,YAAAA,UAAAA;AAAvB,WAAA,GAAsC7C,MAA5C,CAAA;AACA,UAAA,MAAM7E,MAAM,GAAGvD,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsBmE,QAAtB,CAAA,CAAgC1J,OAAhC,CACbyB,SADa,CAAf,CAAA;;UAIA,IACE,EAAEuI,UAAU,CAACvE,KAAX,IAAoBuE,UAAU,CAACvE,KAAX,CAAiB8B,MAAjB,GAA0B,CAAhD,CAAA,IACA,CAACjF,MAAM,CAACmD,KAAP,IAAgB,EAAjB,EAAqB8B,MAArB,IAA+ByC,UAAU,CAACvE,KAAX,CAAiB8B,MAFlD,EAGE;AACA;AACAxI,YAAAA,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsBmE,QAAtB,CAAgC1J,CAAAA,OAAhC,CAAwCyB,SAAxC,CAAqD,GAAA,EACnD,GAAGa,MADgD;AAEnDpC,cAAAA,SAAS,EAAE,KAFwC;cAGnDsF,OAAO,EAAEwE,UAAU,CAACxE,OAAAA;aAHtB,CAAA;AAKA,YAAA,OAAA;AACD,WAAA;;AAEDzG,UAAAA,KAAK,CAACoI,MAAM,CAAC5B,OAAR,CAAL,CAAsBmE,QAAtB,CAAA,CAAgC1J,OAAhC,CAAwCyB,SAAxC,CAAqDkG,GAAAA,yBAAK,CACxDrF,MADwD,EAExD0H,UAFwD,EAGxD;AACEC,YAAAA,UAAU,EAAE,CAACC,MAAD,EAASC,OAAT,KAAqBA,OAAAA;AADnC,WAHwD,CAA1D,CAAA;AAQA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAKC,uBAAL;AAAwB,QAAA;AAAA,UAAA,IAAA,qBAAA,CAAA;;UACtB,MAAM;YAAE9K,KAAF;YAAS2F,MAAT;AAAiBM,YAAAA,OAAAA;AAAjB,WAAA,GAA6B4B,MAAnC,CAAA;UACA,MAAM;AAAE/E,YAAAA,IAAI,GAAG,EAAT;YAAaL,SAAb;YAAwBG,QAAxB;AAAkCQ,YAAAA,OAAAA;AAAlC,WAAA,GAA8CuC,MAApD,CAAA;AAEA,UAAA,MAAMoF,SAAS,GAAGtL,KAAK,CAACqD,IAAxB,CAAA;AACA,UAAA,MAAMkI,KAAK,GAAGvL,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,CAAsBgL,CAAAA,KAAtB,IAA+B,CAA7C,CALsB;AAQtB;;AACA,UAAA,MAAMC,cAAc,GAAGF,SAAS,IAAIjI,IAAI,KAAKiI,SAA7C,CAAA;AACA,UAAA,IAAIG,iBAAiB,GAAG,KAAxB,CAVsB;AAatB;AACA;;UACA,MAAMC,UAAU,GAAG1M,MAAM,CAAC2K,WAAP,CACjB3K,MAAM,CAACC,OAAP,CAAee,KAAK,CAACwG,OAAD,CAApB,CAAA,CAAyCiC,GAAzC,CACE,CAAC,CAACC,SAAS,GAAG,EAAb,EAAiBiD,UAAjB,CAAD,KAAkC;AAChC,YAAA,MAAM5C,cAAc,GAAGL,SAAS,KAAKnI,KAArC,CAAA;YACA,MAAMqL,WAAW,GAAG9C,oBAAoB,CACtC;AACEvI,cAAAA,KAAK,EAAEmI,SADT;cAEExC,MAFF;cAGEM,OAHF;AAIEuC,cAAAA,cAAAA;aALoC,EAOtC/I,KAPsC,CAAxC,CAAA;AAUAyL,YAAAA,iBAAiB,GACfzL,KAAK,CAAC+F,MAAN,CAAagC,QAAb,KAA0B,IAA1B,IACA,CAAC8D,0BAAM,CAACD,WAAD,EAAcD,UAAU,CAAC1K,OAAzB,CAFT,CAAA;YAIA0K,UAAU,GAAGF,iBAAiB,GAC1B1B,UAAU,CAAC4B,UAAD,CADgB,GAE1BA,UAFJ,CAAA;YAGAA,UAAU,CAAC1K,OAAX,GAAqB2K,WAArB,CAAA;YACAD,UAAU,CAAC3E,WAAX,CAAuB8E,cAAvB,GAAwCC,aAAO,CAACpI,OAAD,CAAP,IAAoB,EAA5D,CAAA;AACA,YAAA,OAAO,CAAC+E,SAAD,EAAYiD,UAAZ,CAAP,CAAA;AACD,WAvBH,CADiB,CAAnB,CAAA;UA4BA3L,KAAK,CAACwG,OAAN,GAAgBA,OAAhB,CAAA;AACAxG,UAAAA,KAAK,CAACwG,OAAD,CAAL,GAAiBkF,UAAjB,CAAA;AACA1L,UAAAA,KAAK,CACHoI,MAAM,CAAC5B,OAAP,KAAmB5B,aAAO,CAACnE,MAA3B,GACI,cADJ,GAEI,gBAHD,CAAL,GAIIF,KAJJ,CAAA;UAKAP,KAAK,CAACqD,IAAN,GAAaA,IAAb,CAAA;AACArD,UAAAA,KAAK,CAACiI,IAAN,CAAWsD,KAAX,CAAkBtL,CAAAA,YAAlB,GAAiCM,KAAjC,CAAA;UACAP,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,CAAsBsF,CAAAA,UAAtB,GAAmC,EACjC,IAAI7F,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,EAAsBsF,UAAtB,IAAoCA,UAAxC,CADiC;AAEjC7C,YAAAA,SAAS,EACPgJ,MAAM,CAAChJ,SAAD,CAAN,GAAoB,CAApB,KACChD,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,EAAsByG,WAAtB,CAAkCiF,cAAlC,GACG,CAAAjM,CAAAA,qBAAAA,GAAAA,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,CAAsBsF,CAAAA,UAAtB,gFAAkC7C,SAAlC,KAA+C,CADlD,GAEG,CAHJ,CAH+B;AAOjCG,YAAAA,QAAQ,EACN6I,MAAM,CAAC7I,QAAD,CAAN,IAAoBnD,KAAK,CAACwG,OAAD,CAAL,CAAejG,KAAf,CAAA,CAAsByG,WAAtB,CAAkC7D,QAAAA;WAR1D,CAAA;AAUAnD,UAAAA,KAAK,CAAC+F,MAAN,CAAagC,QAAb,GAAwB,IAAxB,CAAA;UACA/H,KAAK,CAAC+F,MAAN,CAAamG,GAAb,GAAmB,OAAOC,MAAP,KAAkB,WAArC,CAAA;AAEA,UAAA,IAAIX,cAAJ,EAAoBxL,KAAK,CAACwG,OAAD,CAAL,GAAiBoD,WAAW,CAAC5J,KAAD,EAAQwG,OAAR,CAA5B,CAAA;AAEpB,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAK4F,wBAAL;AAAyB,QAAA;AACvB,UAAA,MAAMC,WAAW,GAAGjE,MAAM,CAAC5B,OAAP,IAAkBA,OAAtC,CAAA;UACA,MAAMvG,YAAY,GAAGD,KAAK,CAACqM,WAAD,CAAL,CAAmBjE,MAAM,CAAC7H,KAA1B,CAArB,CAAA;AACAP,UAAAA,KAAK,CAACqM,WAAD,CAAL,CAAmBjE,MAAM,CAAC7H,KAA1B,CAAmCqI,GAAAA,yBAAK,CACtC3I,YADsC,EAEtCmI,MAAM,CAACkE,SAF+B,EAGtC;AACEpB,YAAAA,UAAU,EAAE,CAACC,MAAD,EAASC,OAAT,KAAqBA,OAAAA;AADnC,WAHsC,CAAxC,CAAA;AAOA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAKmB,wBAAL;AAAyB,QAAA;AAAA,UAAA,IAAA,cAAA,CAAA;;AACvB;AACA;AACA;AAEA;AACA;AACA,UAAA,MAAMtL,OAAO,GAAG6H,oBAAoB,CAClC,EAAE,GAAGV,MAAL;AAAaW,YAAAA,cAAc,EAAE,IAAA;WADK,EAElC/I,KAFkC,CAApC,CAAA;UAKA,MAAMqD,IAAI,GAAG+E,MAAH,KAAGA,IAAAA,IAAAA,MAAH,KAAGA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,CAAAA,cAAAA,GAAAA,MAAM,CAAElC,MAAX,MAAG,IAAA,IAAA,cAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgB7C,IAA7B,CAAA;UACA,MAAMmJ,aAAa,GACjBxM,KAAK,CAACoI,MAAM,CAAC5B,OAAP,IAAkB5B,aAAO,CAACe,QAA3B,CAAL,CAA0CyC,MAAM,CAAC7H,KAAjD,EAAwDyG,WAAxD,CACGwF,aADH,IACoB,KAFtB,CAAA;AAGAxM,UAAAA,KAAK,CAACoI,MAAM,CAAC5B,OAAP,IAAkB5B,aAAO,CAACe,QAA3B,CAAL,CAA0CyC,MAAM,CAAC7H,KAAjD,CAAwDU,CAAAA,OAAxD,GACEA,OADF,CAAA;UAEAjB,KAAK,CAACoI,MAAM,CAAC5B,OAAP,IAAkB5B,aAAO,CAACe,QAA3B,CAAL,CACEyC,MAAM,CAAC7H,KADT,EAEEyG,WAFF,CAEchB,UAFd,GAE2BoC,MAAM,CAACpC,UAFlC,CAAA;UAGAhG,KAAK,CAACqD,IAAN,GAAamJ,aAAa,GAAGnJ,IAAH,GAAUrD,KAAK,CAACqD,IAA1C,CAAA;UACArD,KAAK,CAAC+F,MAAN,CAAamG,GAAb,GAAmB,OAAOC,MAAP,KAAkB,WAArC,CAAA;AAEA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAKM,uBAAL;AAAwB,QAAA;UACtB,MAAM;AAAEzJ,YAAAA,SAAAA;AAAF,WAAA,GAAgBoF,MAAtB,CAAA;AACA,UAAA,MAAMsE,cAAc,GAClB1M,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBlD,CAAAA,WAAxB,CAAoC0F,cAApC,IAAsD,KADxD,CAAA;AAGA,UAAA,MAAMvM,gBAAgB,GACpBH,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBrE,CAAAA,UAAxB,CAAmC7C,SAAnC,IAAgD,CADlD,CAAA;AAGAhD,UAAAA,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBrE,CAAAA,UAAxB,CAAmC7C,SAAnC,GAA+CgJ,MAAM,CAAChJ,SAAD,CAAN,IAAqB,CAApE,CAAA;UACAhD,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,EAAwBrE,UAAxB,CAAmCgB,aAAnC,GAAmD1G,gBAAnD,CAAA;UACAH,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,EAAwBrE,UAAxB,CAAmC1E,SAAnC,GAA+C,IAA/C,CAAA;AAEA,UAAA,IAAIuL,cAAJ,EAAoB,OAAA;UAEpB1M,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBjD,CAAAA,aAAxB,GAAwC,CAAxC,CAAA;AACA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAK0F,sBAAL;AAAuB,QAAA;UACrB,MAAM;AAAExJ,YAAAA,QAAAA;AAAF,WAAA,GAAeiF,MAArB,CAAA;UAEApI,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,EAAwBrE,UAAxB,CAAmC1C,QAAnC,GAA8CA,QAA9C,CAAA;UACAnD,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,EAAwBrE,UAAxB,CAAmC7C,SAAnC,GAA+C,CAA/C,CAAA;UACAhD,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,EAAwBrE,UAAxB,CAAmC1E,SAAnC,GAA+C,IAA/C,CAAA;UACAnB,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBjD,CAAAA,aAAxB,GAAwC,CAAxC,CAAA;AACA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAK2F,wBAAL;AAAyB,QAAA;AACvB5M,UAAAA,KAAK,CAACqD,IAAN,GAAa+E,MAAM,CAAC/E,IAApB,CAAA;UACArD,KAAK,CAACwG,OAAD,CAAL,GAAiBoD,WAAW,CAAC5J,KAAD,EAAQwG,OAAR,CAA5B,CAAA;AAEA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAKqG,6BAAL;AAA8B,QAAA;UAC5B,MAAM;YAAEtJ,MAAF;YAAUC,GAAV;AAAeC,YAAAA,aAAAA;AAAf,WAAA,GAAiC2E,MAAvC,CAAA;AAEA,UAAA,MAAM0E,cAAc,GAClB9M,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAA,CAAwBjJ,OAAxB,CAAgCsC,MAAhC,CAAwCuJ,CAAAA,cAAxC,IAA0D,KAD5D,CAAA;AAEA,UAAA,MAAMvF,SAAS,GACbvH,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAA,CAAwBjJ,OAAxB,CAAgCsC,MAAhC,CAAwCgE,CAAAA,SAAxC,IAAqD,KADvD,CAAA;AAGA,UAAA,MAAMwF,YAAY,GAAG/M,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBjJ,CAAAA,OAAxB,CAAgCsC,MAAhC,EAAwCmD,KAA7D,CAAA;AACA,UAAA,IAAIa,SAAJ,EAAevH,KAAK,CAACwG,OAAD,CAAL,GAAiBoD,WAAW,CAAC5J,KAAD,EAAQwG,OAAR,CAA5B,CAAA;AACfxG,UAAAA,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAA0BH,GAAAA,UAAU,CAAC/J,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAD,CAApC,CAAA;;AAEA,UAAA,IACEzG,aAAa,IACb,CAAAsJ,YAAY,KAAZ,IAAA,IAAAA,YAAY,KAAA,KAAA,CAAZ,GAAAA,KAAAA,CAAAA,GAAAA,YAAY,CAAEzD,SAAd,CAAwBL,IAAI,IAAI,CAAAA,IAAI,KAAJ,IAAA,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAAA,KAAAA,CAAAA,GAAAA,IAAI,CAAEzF,GAAN,MAAcA,GAA9C,CAAuD,MAAA,CAAC,CAF1D,EAGE;YACAuJ,YAAY,KAAA,IAAZ,IAAAA,YAAY,KAAA,KAAA,CAAZ,YAAAA,YAAY,CAAExD,IAAd,CAAmB;cACjB/F,GADiB;AAEjBsE,cAAAA,UAAU,EAAE,KAAA;aAFd,CAAA,CAAA;AAID,WAAA;;UACD9H,KAAK,CAACwG,OAAD,CAAL,CAAe0D,OAAf,CAAwBjJ,CAAAA,OAAxB,CAAgCsC,MAAhC,CAAA,CAAwCmD,KAAxC,GAAgDqG,YAAhD,aAAgDA,YAAhD,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAgDA,YAAY,CAAEtE,GAAd,CAC9CQ,IAAI,IAAI;AACN,YAAA,IAAIA,IAAI,CAACzF,GAAL,KAAaA,GAAjB,EAAsB;cACpB,OAAO,EAAE,GAAGyF,IAAL;gBAAWnB,UAAU,EAAE,CAACmB,IAAI,CAACnB,UAAAA;eAApC,CAAA;AACD,aAAA;;AACD,YAAA,IAAIgF,cAAJ,EAAoB,OAAO,EAAE,GAAG7D,IAAL;AAAWnB,cAAAA,UAAU,EAAE,KAAA;aAA9B,CAAA;AACpB,YAAA,OAAOmB,IAAP,CAAA;AACD,WAP6C,CAAhD,CAAA;AAUA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA,KAAK+D,uBAAL;AAAwB,QAAA;UACtB,MAAM;YAAErJ,OAAF;AAAWpD,YAAAA,KAAAA;AAAX,WAAA,GAAqB6H,MAA3B,CAAA;UACApI,KAAK,CAACwG,OAAD,CAAL,GAAiBoD,WAAW,CAAC5J,KAAD,EAAQwG,OAAR,CAA5B,CAAA;AACA,UAAA,MAAMvG,YAAY,GAAGM,KAAK,IAAI2J,OAA9B,CAAA;AACAlK,UAAAA,KAAK,CAACwG,OAAD,CAAL,CAAevG,YAAf,CAAA,CAA6B+G,WAA7B,CAAyC8E,cAAzC,GAA0DnI,OAAO,GAC7DoI,aAAO,CAACpI,OAAD,CAAP,IAAoB,EADyC,GAE7D,EAFJ,CAAA;AAIA,UAAA,OAAA;AACD,SAAA;;AACD,MAAA;AACE,QAAA,OAAA;AAtRJ,KAAA;GAdU,EAuSZqG,SAvSY,CAAd,CAAA;AAySD,CAnTD;;ACzLO,MAAMpF,OAAO,GAAG;AACrBnE,EAAAA,MAAM,EAAE,QADa;AAErB8E,EAAAA,QAAQ,EAAE,UAFW;AAGrBI,EAAAA,QAAQ,EAAE,UAAA;AAHW;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"search.js","sources":["../src/search/containers/withSearch.tsx","../src/search/containers/withListing.tsx","../src/search/hooks/useMinilist.hook.tsx","../src/search/redux/schema.ts","../src/search/redux/reducers.ts","../src/search/index.ts"],"sourcesContent":["import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '~/util/ToJs';\n\nimport {\n clearFilters,\n updateCurrentFacet,\n updateCurrentTab,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport {\n getCurrentFacet,\n getCurrentTab,\n getFacet,\n getFacetTitles,\n getFacetsTotalCount,\n getFeaturedResults,\n getIsLoading,\n getPageIndex,\n getPageIsLoading,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSearchTotalCount,\n getSelectedFilters,\n getTabFacets,\n getTabsAndFacets,\n getTotalCount,\n} from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { SearchProps } from '../models/SearchProps';\nimport { AppState } from '../models/SearchState';\n\nconst withSearch =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(\n SearchComponent: React.ComponentType<Props>\n ) => {\n const Wrapper = (props: Props & SearchProps<any>) => {\n return <SearchComponent {...props} />;\n };\n\n Wrapper.displayName = `withSearch(${\n SearchComponent.displayName || SearchComponent.name\n })`;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentFacet: getCurrentFacet(state),\n currentPageIndex: getPageIndex(state),\n currentTabIndex: getCurrentTab(state),\n facet: getFacet(state),\n facets: getTabFacets(state),\n facetsTotalCount: getFacetsTotalCount(state),\n facetTitles: getFacetTitles(state),\n featuredResults: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n pageIsLoading: getPageIsLoading(state),\n results: getResults(state),\n resultsInfo: mappers?.resultsInfo && mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n searchTotalCount: getSearchTotalCount(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n tabsAndFacets: getTabsAndFacets(state),\n totalCount: getTotalCount(state),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updateCurrentTab: (id: number) =>\n withMappers(updateCurrentTab(id), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n const connector = connect(mapStateToProps, mapDispatchToProps);\n\n return connector(toJS(Wrapper) as any);\n };\n\nexport default withSearch;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport { toJS } from '~/util/ToJs';\nimport {\n clearFilters,\n updateCurrentFacet,\n updatePageIndex,\n updatePageSize,\n updateSearchTerm,\n updateSelectedFilters,\n updateSortOrder,\n withMappers,\n} from '../redux/actions';\nimport { selectListing } from '../redux/selectors';\nimport { Mappers } from '../models/Search';\nimport { AppState } from '../models/SearchState';\nimport { ListingProps } from '../models/SearchProps';\n\nconst withListing =\n (mappers: Mappers) =>\n <Props extends Record<string, any>>(ListingComponent: React.FC<Props>) => {\n const Wrapper = (props: Props & ListingProps<any>) => {\n return <ListingComponent {...props} />;\n };\n\n Wrapper.displayName = `withListing(${\n ListingComponent.displayName || ListingComponent.name\n })`;\n\n const {\n getCurrent,\n getFeaturedResults,\n getIsLoading,\n getListing,\n getPageIndex,\n getPaging,\n getQueryParameter,\n getRenderableFilters,\n getResults,\n getSearchTerm,\n getSelectedFilters,\n } = selectListing;\n\n const mapStateToProps = (state: AppState) => {\n return {\n currentListing: getCurrent(state),\n currentPageIndex: getPageIndex(state),\n listing: getListing(state),\n featured: getFeaturedResults(state),\n filters: getRenderableFilters(state),\n isLoading: getIsLoading(state),\n paging: getPaging(state),\n results: getResults(state),\n resultsInfo:\n mappers &&\n typeof mappers.resultsInfo === 'function' &&\n mappers.resultsInfo(state),\n searchTerm: getSearchTerm(state),\n selectedFilters: getSelectedFilters(state),\n sortOrder: getQueryParameter({ state }, 'dynamicOrderBy', []),\n };\n };\n\n const mapDispatchToProps = {\n clearFilters: (filterKey?: string) =>\n withMappers(clearFilters(filterKey), mappers),\n updateCurrentFacet: (facet: string) =>\n withMappers(updateCurrentFacet(facet), mappers),\n updatePageIndex: (pageIndex: number, scrollToElement?: string) =>\n withMappers(updatePageIndex(pageIndex, scrollToElement), mappers),\n updatePageSize: (pageSize: number, scrollToElement?: string) =>\n withMappers(updatePageSize(pageSize, scrollToElement), mappers),\n updateSearchTerm: (term: string) =>\n withMappers(updateSearchTerm(term), mappers),\n updateSelectedFilters: (\n filter: string,\n key: string,\n isUnknownItem = false,\n scrollToElement?: string\n ) =>\n withMappers(\n updateSelectedFilters(filter, key, isUnknownItem, scrollToElement),\n mappers\n ),\n updateSortOrder: (orderBy: string) =>\n withMappers(updateSortOrder(orderBy), mappers),\n };\n\n return connect(mapStateToProps, mapDispatchToProps)(toJS(Wrapper) as any);\n };\n\nexport default withListing;\n","import { useEffect, useMemo } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { createSelector } from 'reselect';\n\nimport { Context } from '../models/Enums';\nimport { MinilistProps, UseMinilistProps } from '../models/SearchProps';\nimport { AppState, Facet, Filters } from '../models/SearchState';\n\nimport { triggerSearch } from '../redux/actions';\nimport {\n getResults,\n getIsLoading,\n getFacet,\n getPaging,\n getSearchTerm,\n getFilters,\n} from '../redux/selectors';\n\nconst makeSelectMinilistProps = () =>\n createSelector(\n (state: AppState) => state,\n (_: any, id: string) => id,\n (state: AppState, id: string) =>\n id\n ? {\n facet: getFacet(state, id, Context.minilist, 'js'),\n filters: getFilters(state, id, Context.minilist, 'js'),\n isLoading: getIsLoading(state, Context.minilist, id),\n pagingInfo: getPaging(state, id, Context.minilist, 'js'),\n results: getResults(state, id, Context.minilist, 'js'),\n searchTerm: getSearchTerm(state),\n }\n : null\n );\n\nconst useMinilist = <SearchResults extends Record<string, any>>(\n {\n id,\n config,\n excludeIds,\n mapper,\n mappers,\n params,\n defaultLang,\n debug,\n }: UseMinilistProps = { id: '' }\n) => {\n const dispatch = useDispatch();\n\n const selectMinilistProps = useMemo(makeSelectMinilistProps, [id]);\n\n const { facet, filters, isLoading, pagingInfo, results, searchTerm } =\n useSelector((state: AppState) => selectMinilistProps(state, id)) || {\n facet: {} as Facet,\n filters: {} as Filters,\n isLoading: false,\n pagingInfo: {} as Facet['pagingInfo'],\n results: [] as SearchResults[],\n searchTerm: '',\n };\n // useSelector((state: AppState) => ({\n // facet: getFacet(state, id, Context.minilist).toJS(),\n // filters: getFilters(state, id, Context.minilist).toJS(),\n // isLoading: getIsLoading(state, Context.minilist, id),\n // pagingInfo: getPaging(state, id, Context.minilist).toJS(),\n // results: getResults(state, id, Context.minilist).toJS(),\n // searchTerm: getSearchTerm(state),\n // }));\n\n useEffect(() => {\n if (id && (mapper || mappers?.results)) {\n dispatch(\n triggerSearch({\n config,\n context: Context.minilist,\n defaultLang,\n facet: id,\n mapper,\n mappers,\n params,\n excludeIds,\n debug,\n })\n );\n }\n }, [dispatch, excludeIds, id, defaultLang, params]);\n\n return {\n filters,\n isLoading,\n paging: pagingInfo,\n results,\n searchTerm,\n title: facet.title,\n } as MinilistProps<SearchResults>;\n};\n\nexport default useMinilist;\n","import { CustomWhereClause } from '../models/Search';\nimport { Filter, FilterItem, SearchState } from '../models/SearchState';\n\nexport const entries = {\n isLoading: false,\n isError: false,\n items: [],\n};\n\nexport const pagingInfo = {\n isLoading: false,\n pageCount: 0,\n pageIndex: 0,\n pageSize: 0,\n pagesLoaded: [],\n prevPageIndex: 0,\n totalCount: 0,\n};\n\nexport const searchFacet = {\n title: null,\n featuredEntries: entries,\n featuredResults: [],\n entries,\n results: [],\n queryParams: {},\n filters: {},\n queryDuration: 0,\n pagingInfo,\n projectId: '',\n};\n\nexport const searchTab = {\n currentFacet: undefined,\n facets: {},\n id: 0,\n label: undefined,\n totalCount: '',\n};\n\nexport const filtering = {\n isLoading: false,\n isError: false,\n isGrouped: false,\n title: undefined,\n contentTypeId: undefined,\n customWhere: [],\n fieldId: undefined,\n items: [],\n} as Omit<Filter, 'customWhere' | 'items'> & {\n customWhere?: CustomWhereClause[];\n items?: FilterItem[];\n};\n\nexport const filterItem = {\n key: '',\n type: undefined,\n title: undefined,\n path: undefined,\n isSelected: false,\n} as FilterItem;\n\nconst config = {\n isLoaded: false,\n isError: false,\n};\n\nconst searchState: SearchState = {\n context: 'facets',\n currentFacet: '',\n currentListing: '',\n facets: {},\n listings: {},\n minilist: {},\n term: '',\n tabs: [],\n config,\n};\n\nexport const initialState = searchState;\n","import { Draft, produce } from 'immer';\nimport equals from 'deep-equal';\nimport merge from 'deepmerge';\n\nimport {\n entries,\n filterItem,\n pagingInfo,\n searchFacet,\n initialState,\n} from './schema';\nimport {\n APPLY_CONFIG,\n CLEAR_FILTERS,\n EXECUTE_SEARCH,\n EXECUTE_SEARCH_ERROR,\n LOAD_FILTERS,\n LOAD_FILTERS_COMPLETE,\n LOAD_FILTERS_ERROR,\n SET_ROUTE_FILTERS,\n SET_SEARCH_FILTERS,\n SET_SEARCH_ENTRIES,\n UPDATE_SEARCH_TERM,\n UPDATE_SELECTED_FILTERS,\n UPDATE_SORT_ORDER,\n UPDATE_PAGE_INDEX,\n UPDATE_PAGE_SIZE,\n} from './types';\nimport { toArray } from '../search/util';\nimport { Context } from '../models/Enums';\nimport {\n ConfigTypes,\n SearchFacet,\n Listing,\n SearchConfig,\n} from '../models/Search';\nimport { SearchParams } from '../models/SearchActions';\nimport {\n Facet,\n Facets,\n SearchState,\n Filter,\n Filters,\n FilterItem,\n} from '../models/SearchState';\n\nconst addConfigToState = (state: SearchState, action: any) => {\n const { context, facet, config } = action as {\n context: keyof typeof Context;\n facet: string;\n config: any;\n };\n // Adding or changing the config of a single facet, listing or minilist\n if (context && facet && config) {\n state[context][facet] = { ...searchFacet, ...config };\n } else if (config) {\n // Changing the entire search config\n state = { ...config, config: initialState.config };\n }\n return state;\n};\n\nconst generateSearchFacets = (context: Context, config: SearchConfig) => {\n const facets = {} as Facets;\n if (config) {\n const thisConfig: ConfigTypes = config[context] || {};\n if (Object.keys(thisConfig).length > 0) {\n Object.entries(thisConfig).map(\n ([facetName, facet]: [string, SearchFacet | Listing]) => {\n const newFacet = merge(searchFacet, facet);\n if (!('isDisabled' in facet) || facet.isDisabled !== true)\n facets[facetName] = newFacet;\n }\n );\n }\n }\n return facets;\n};\n\nconst generateFiltersState = (\n {\n facet,\n params,\n context,\n isCurrentFacet,\n }: {\n facet: string;\n params: { [k: string]: string };\n context: keyof typeof Context;\n isCurrentFacet: boolean;\n },\n state: SearchState\n) => {\n // Remove filters we know about from params\n const filterParams = {\n ...params,\n facet: undefined,\n orderBy: undefined,\n pageIndex: undefined,\n term: undefined,\n } as { [k: string]: string | undefined };\n\n // Get any existing filters and normalise the items[]\n // so we can start off with isSelected is false\n let filters: [string, Filter][] = Object.entries(\n (state[context][facet].filters || []) as Filters\n ).map(([key, filter]: [string, Filter]) => {\n if (isCurrentFacet || filter.isGrouped) {\n return [\n key,\n {\n ...filter,\n items: filter.items?.map(item => ({ ...item, isSelected: false })),\n } as Filter,\n ];\n }\n return [key, filter];\n });\n\n const addFilterItem = (\n filters: [string, Filter][],\n paramKey: string,\n paramValue: string\n ) =>\n // Iterate through all filters within the facet,\n // if the paramKey matches the filter key\n // get the existing items list, and see if that filter\n // already exists, if so set isSelected to true,\n // if not create a new filterItem, setting the key only\n // so we can match this key later on when we load the filters\n filters.map<[string, Filter]>(([key, filter]) => {\n if (paramKey !== key || (!isCurrentFacet && !filter.isGrouped)) {\n return [key, filter];\n } else {\n const items = (filter.items || []) as FilterItem[];\n const itemIndex = items.findIndex(item => item?.key === paramValue);\n if (items.length > 0 && itemIndex !== -1) {\n items[itemIndex].isSelected = true;\n } else {\n items.push({\n ...filterItem,\n key: paramValue,\n isSelected: true,\n });\n }\n\n return [\n key,\n {\n ...filter,\n items,\n } as Filter,\n ];\n }\n });\n\n // For each value found in filterParams\n // we are looking to split that value into multiple by any comma\n // and then either set isSelected for an existing filterItem\n // or push an item to the filters.{ key }.items[] array\n // giving it only the key (entry guid) that can be taken to filter\n // the search results during SSR without needing to fetch the filters first\n Object.entries(filterParams).map(([paramName = '', paramValue]) => {\n if (typeof paramValue === 'string')\n return paramValue\n .split(',')\n .map(pVal => (filters = addFilterItem(filters, paramName, pVal)));\n if (typeof paramValue === 'boolean')\n filters = addFilterItem(filters, paramName, paramValue);\n });\n\n return Object.fromEntries(filters) as Filters;\n};\n\nconst resetFacets = (state: SearchState, context: keyof typeof Context) =>\n Object.fromEntries(\n Object.entries(state[context] as Facets).map(([k, v]) => [k, resetFacet(v)])\n ) as Facets;\n\nconst resetFacet = (facet: Facet) => {\n facet.pagingInfo.pagesLoaded = [];\n facet.pagingInfo.pageIndex = 0;\n facet.queryDuration = 0;\n return facet;\n};\n\nexport default (config: SearchConfig) => {\n // Add facets from SearchConfig to initialState\n const initState: SearchState = {\n ...initialState,\n tabs: config.tabs as any,\n facets: generateSearchFacets(Context.facets, config),\n listings: generateSearchFacets(Context.listings, config),\n minilist: generateSearchFacets(Context.minilist, config),\n };\n\n return produce(\n (\n state: Draft<SearchState> = initState,\n action: {\n [key: string]: any;\n context: keyof typeof Context;\n facet: string;\n params: SearchParams;\n }\n ) => {\n const context = state.context as keyof typeof Context;\n const current =\n context !== 'listings' ? state.currentFacet : state.currentListing;\n\n switch (action.type) {\n case APPLY_CONFIG: {\n state = addConfigToState(state, action);\n return state;\n }\n case CLEAR_FILTERS: {\n const currentFilters = state[context][current].filters as Filters;\n\n state[context][current].filters = Object.fromEntries(\n Object.entries(currentFilters).map(([filterKey, filter]) => {\n if (\n typeof action.filterKey === 'undefined' ||\n action.filterKey === filterKey\n ) {\n const filterItems = (filter.items || []) as FilterItem[];\n\n filter.items = filterItems.map(item => ({\n ...item,\n isSelected: false,\n })) as FilterItem[];\n }\n\n return [filterKey, filter];\n })\n );\n state[context][current].queryDuration = 0;\n state[context][current].pagingInfo.pagesLoaded = [];\n\n return;\n }\n case EXECUTE_SEARCH: {\n state[action.context][action.facet].entries = {\n ...(state[action.context][action.facet].entries || entries),\n isLoading: true,\n };\n return;\n }\n case EXECUTE_SEARCH_ERROR: {\n state[action.context][action.facet].entries = {\n ...entries,\n isError: true,\n error: action.error,\n };\n return;\n }\n case LOAD_FILTERS: {\n const { facetKey, filtersToLoad } = action;\n const filters = state[action.context][facetKey].filters as Filters;\n\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return { ...filter, isLoading: true } as Filter;\n return filter;\n });\n\n state[action.context][facetKey].filters = Object.fromEntries(\n Object.entries(filters).map(([filterKey, filter]) => {\n if (filtersToLoad.find((f: string) => f === filterKey))\n return [filterKey, { ...filter, isLoading: true }];\n return [filterKey, filter];\n })\n );\n\n return;\n }\n case LOAD_FILTERS_ERROR:\n case LOAD_FILTERS_COMPLETE: {\n const { facetKey, filterKey, nextFilter } = action;\n const stateFilter = state[action.context][facetKey].filters[\n filterKey\n ] as Filter;\n\n if (\n !nextFilter.items?.length &&\n (stateFilter.items || []).length >= nextFilter.items.length\n ) {\n // Preserve items already in state\n state[action.context][facetKey].filters[filterKey] = {\n ...stateFilter,\n isLoading: false,\n isError: nextFilter.isError,\n };\n return;\n }\n\n state[action.context][facetKey].filters[filterKey] = merge(\n stateFilter,\n nextFilter,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n\n return;\n }\n case SET_ROUTE_FILTERS: {\n const { facet, params, context } = action;\n const { term = '', pageIndex, pageSize, orderBy } = params;\n\n const stateTerm = state.term;\n const tabId = state[context][facet].tabId || 0;\n\n // Reset the facet if the search term has changed, or if the any of\n // the filters have changed\n const resetAllFacets = stateTerm && term !== stateTerm;\n let resetCurrentFacet = false;\n\n // Add filter values in params to the matched filters in state for the current facet\n // causing unfetched filter items to be generated with isSelected: true\n // or existing filter items to be tagged with isSelected: true\n const nextFacets = Object.fromEntries(\n Object.entries(state[context] as Facets).map(\n ([facetName = '', stateFacet]) => {\n const isCurrentFacet = facetName === facet;\n const nextFilters = generateFiltersState(\n {\n facet: facetName,\n params,\n context,\n isCurrentFacet,\n },\n state\n );\n\n resetCurrentFacet =\n state.config.isLoaded === true &&\n !equals(nextFilters, stateFacet.filters);\n\n stateFacet = resetCurrentFacet\n ? resetFacet(stateFacet)\n : stateFacet;\n stateFacet.filters = nextFilters;\n stateFacet.queryParams.dynamicOrderBy = toArray(orderBy) || [];\n return [facetName, stateFacet];\n }\n )\n );\n\n state.context = context;\n state[context] = nextFacets;\n state[\n action.context === Context.facets\n ? 'currentFacet'\n : 'currentListing'\n ] = facet;\n state.term = term;\n state.tabs[tabId].currentFacet = facet;\n state[context][facet].pagingInfo = {\n ...(state[context][facet].pagingInfo || pagingInfo),\n pageIndex:\n Number(pageIndex) - 1 ||\n (state[context][facet].queryParams.loadMorePaging\n ? state[context][facet].pagingInfo?.pageIndex || 0\n : 0),\n pageSize:\n Number(pageSize) || state[context][facet].queryParams.pageSize,\n };\n state.config.isLoaded = true;\n state.config.ssr = typeof window === 'undefined';\n\n if (resetAllFacets) state[context] = resetFacets(state, context);\n\n return;\n }\n case SET_SEARCH_ENTRIES: {\n const thisContext = action.context || context;\n const currentFacet = state[thisContext][action.facet];\n\n // // Handle aggregations client-side where the filter items have loaded before the results containing the aggregations\n // for (const [filterKey, filter] of Object.entries(\n // currentFacet.filters\n // )) {\n // const aggregation = (action.nextFacet as Partial<Facet>)\n // .aggregations?.[convertKeyForAggregation(filterKey)];\n\n // for (const filterItem of filter.items || []) {\n // if (!aggregation) delete filterItem.aggregate;\n // else {\n // const aggregate = aggregation[filterItem.key.toLowerCase()];\n // if (typeof aggregate === 'number')\n // filterItem.aggregate = aggregate;\n // else delete filterItem.aggregate;\n // }\n // }\n // }\n\n state[thisContext][action.facet] = merge(\n currentFacet,\n action.nextFacet,\n {\n arrayMerge: (source, inbound) => inbound,\n }\n );\n return;\n }\n case SET_SEARCH_FILTERS: {\n // DO SEARCH then SET_SEARCH_FILTERS is for when we cannot use SET_ROUTE_FILTERS\n // for example in a minilist scenario where the route filters\n // are used for the primary page / listing navigation\n\n // Add filter values in params to the matched filters in state\n // causing unfetched filter items to be generated with isSelected: true\n const filters = generateFiltersState(\n { ...action, isCurrentFacet: true },\n state\n );\n\n const term = action?.params?.term;\n const useSearchTerm =\n state[action.context || Context.minilist][action.facet].queryParams\n .useSearchTerm || false;\n state[action.context || Context.minilist][action.facet].filters =\n filters;\n state[action.context || Context.minilist][\n action.facet\n ].queryParams.excludeIds = action.excludeIds;\n state.term = useSearchTerm ? term : state.term;\n state.config.ssr = typeof window === 'undefined';\n\n return;\n }\n case UPDATE_PAGE_INDEX: {\n const { pageIndex } = action;\n const internalPaging =\n state[context][current].queryParams.internalPaging || false;\n\n const currentPageIndex =\n state[context][current].pagingInfo.pageIndex || 0;\n\n state[context][current].pagingInfo.pageIndex = Number(pageIndex) || 0;\n state[context][current].pagingInfo.prevPageIndex = currentPageIndex;\n state[context][current].pagingInfo.isLoading = true;\n\n if (internalPaging) return;\n\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_PAGE_SIZE: {\n const { pageSize } = action;\n\n state[context][current].pagingInfo.pageSize = pageSize;\n state[context][current].pagingInfo.pageIndex = 0;\n state[context][current].pagingInfo.isLoading = true;\n state[context][current].queryDuration = 0;\n return;\n }\n case UPDATE_SEARCH_TERM: {\n state.term = action.term;\n state[context] = resetFacets(state, context);\n\n return;\n }\n case UPDATE_SELECTED_FILTERS: {\n const { filter, key, isUnknownItem } = action;\n\n const isSingleSelect =\n state[context][current].filters[filter].isSingleSelect || false;\n const isGrouped =\n state[context][current].filters[filter].isGrouped || false;\n\n const currentItems = state[context][current].filters[filter].items;\n if (isGrouped) state[context] = resetFacets(state, context);\n state[context][current] = resetFacet(state[context][current]);\n\n if (\n isUnknownItem &&\n currentItems?.findIndex(item => item?.key === key) === -1\n ) {\n currentItems?.push({\n key,\n isSelected: false,\n });\n }\n state[context][current].filters[filter].items = currentItems?.map(\n item => {\n if (item.key === key) {\n return { ...item, isSelected: !item.isSelected };\n }\n if (isSingleSelect) return { ...item, isSelected: false };\n return item;\n }\n );\n\n return;\n }\n case UPDATE_SORT_ORDER: {\n const { orderBy, facet } = action;\n state[context] = resetFacets(state, context);\n const currentFacet = facet || current;\n state[context][currentFacet].queryParams.dynamicOrderBy = orderBy\n ? toArray(orderBy) || []\n : [];\n\n return;\n }\n default:\n return;\n }\n },\n initState\n );\n};\n","export const Context = {\n facets: 'facets',\n listings: 'listings',\n minilist: 'minilist',\n};\nexport * from './models';\n\nexport { default as withSearch } from './containers/withSearch';\nexport { default as withListing } from './containers/withListing';\n\nexport { default as useFacets } from './hooks/useFacets.hook';\nexport { default as useListing } from './hooks/useListing.hook';\nexport { default as useMinilist } from './hooks/useMinilist.hook';\n\nexport * as actions from './redux/actions';\nexport {\n doSearch,\n setRouteFilters,\n searchSagas as sagas,\n triggerListingSsr,\n triggerMinilistSsr,\n triggerSearchSsr,\n} from './redux/sagas';\nexport { default as reducer } from './redux/reducers';\nexport * as schema from './redux/schema';\nexport * as selectors from './redux/selectors';\nexport * as types from './redux/types';\n\nexport * as expressions from './search/expressions';\nexport * as queries from './search/queries';\nexport { routeParams } from './search/util';\n"],"names":["withSearch","mappers","SearchComponent","Wrapper","props","React","createElement","displayName","name","mapStateToProps","state","currentFacet","getCurrentFacet","currentPageIndex","getPageIndex","currentTabIndex","getCurrentTab","facet","getFacet","facets","getTabFacets","facetsTotalCount","getFacetsTotalCount","facetTitles","getFacetTitles","featuredResults","getFeaturedResults","filters","getRenderableFilters","isLoading","getIsLoading","paging","getPaging","pageIsLoading","getPageIsLoading","results","getResults","resultsInfo","searchTerm","getSearchTerm","searchTotalCount","getSearchTotalCount","selectedFilters","getSelectedFilters","sortOrder","getQueryParameter","tabsAndFacets","getTabsAndFacets","totalCount","getTotalCount","mapDispatchToProps","clearFilters","filterKey","withMappers","updateCurrentFacet","updateCurrentTab","id","updatePageIndex","pageIndex","scrollToElement","updatePageSize","pageSize","updateSearchTerm","term","updateSelectedFilters","filter","key","isUnknownItem","updateSortOrder","orderBy","connector","connect","toJS","withListing","ListingComponent","getCurrent","getListing","selectListing","currentListing","listing","featured","makeSelectMinilistProps","createSelector","_","Context","minilist","getFilters","pagingInfo","useMinilist","config","excludeIds","mapper","params","defaultLang","debug","dispatch","useDispatch","selectMinilistProps","useMemo","useSelector","useEffect","triggerSearch","context","title","entries","isError","items","pageCount","pagesLoaded","prevPageIndex","searchFacet","featuredEntries","queryParams","queryDuration","projectId","searchTab","undefined","label","filtering","isGrouped","contentTypeId","customWhere","fieldId","filterItem","type","path","isSelected","isLoaded","searchState","listings","tabs","initialState","addConfigToState","action","generateSearchFacets","thisConfig","Object","keys","length","map","facetName","newFacet","merge","isDisabled","generateFiltersState","isCurrentFacet","filterParams","_filter$items","item","addFilterItem","paramKey","paramValue","itemIndex","findIndex","push","paramName","split","pVal","fromEntries","resetFacets","k","v","resetFacet","initState","produce","current","APPLY_CONFIG","CLEAR_FILTERS","currentFilters","filterItems","EXECUTE_SEARCH","EXECUTE_SEARCH_ERROR","error","LOAD_FILTERS","facetKey","filtersToLoad","find","f","LOAD_FILTERS_ERROR","LOAD_FILTERS_COMPLETE","_nextFilter$items","nextFilter","stateFilter","arrayMerge","source","inbound","SET_ROUTE_FILTERS","_state$context$facet$","stateTerm","tabId","resetAllFacets","resetCurrentFacet","nextFacets","stateFacet","nextFilters","equals","dynamicOrderBy","toArray","Number","loadMorePaging","ssr","window","SET_SEARCH_ENTRIES","thisContext","nextFacet","SET_SEARCH_FILTERS","_action$params","useSearchTerm","UPDATE_PAGE_INDEX","internalPaging","UPDATE_PAGE_SIZE","UPDATE_SEARCH_TERM","UPDATE_SELECTED_FILTERS","isSingleSelect","currentItems","UPDATE_SORT_ORDER"],"mappings":"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"}
|