@abcagency/hc-ui-components 1.3.45 → 1.3.46
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/dist/apis/hcApi.js +1 -1
- package/dist/apis/hcApi.js.map +1 -1
- package/dist/components/containers/accordions/filter-container.js.map +1 -1
- package/dist/components/modules/filter/item.js.map +1 -1
- package/package.json +1 -1
- package/src/components/containers/accordions/filter-container.js +48 -50
- package/src/components/modules/filter/item.js +69 -70
package/dist/apis/hcApi.js
CHANGED
package/dist/apis/hcApi.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hcApi.js","sources":["../../src/apis/hcApi.ts"],"sourcesContent":["import { getClientAuthKey } from '~/clientToken';\r\nconst baseURL = process.env.HC_API_BASE_URL as string;\r\n\r\ninterface MemoryStorage {\r\n\tauthToken: string | null;\r\n\ttokenExpiration: string | null;\r\n}\r\n\r\nconst memoryStorage: MemoryStorage = {\r\n\tauthToken: null,\r\n\ttokenExpiration: null\r\n};\r\n\r\nfunction setStorage(key: keyof MemoryStorage, value: string): void {\r\n\ttry {\r\n\t\tsessionStorage.setItem(key, value);\r\n\t} catch (error) {\r\n\t\tmemoryStorage[key] = value;\r\n\t}\r\n}\r\n\r\nfunction getStorage(key: keyof MemoryStorage): string | null {\r\n\ttry {\r\n\t\treturn sessionStorage.getItem(key) || memoryStorage[key];\r\n\t} catch (error) {\r\n\t\treturn memoryStorage[key];\r\n\t}\r\n}\r\n\r\ninterface AuthResponse {\r\n\ttoken: string;\r\n\texpiration: string;\r\n}\r\n\r\nconst login = async (): Promise<AuthResponse> => {\r\n\tconst clientAuthKey = getClientAuthKey();\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(`${baseURL}/auth/login`, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify({\r\n\t\t\t\tclientAuthKey: clientAuthKey\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error('Login failed');\r\n\t\t}\r\n\r\n\t\tconst data = await response.json();\r\n\r\n\t\tif (data.token && data.expiration) {\r\n\t\t\tsetStorage('authToken', data.token);\r\n\t\t\tsetStorage('tokenExpiration', data.expiration);\r\n\t\t\treturn { token: data.token, expiration: data.expiration };\r\n\t\t} else {\r\n\t\t\tthrow new Error('Invalid login response');\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error('Login failed:', error);\r\n\t\tthrow error;\r\n\t}\r\n};\r\n\r\nconst fetchWithAuth = async (url: string, options: RequestInit = {}): Promise<Response> => {\r\n\tlet token = getStorage('authToken');\r\n\r\n\tconst expirationDateTime = getStorage('tokenExpiration');\r\n\tconst currentTime = new Date();\r\n\r\n\tif (!token || !expirationDateTime || new Date(expirationDateTime) <= currentTime) {\r\n\t\tconst authResponse = await login();\r\n\t\ttoken = authResponse.token;\r\n\t}\r\n\r\n\tconst headers = new Headers(options.headers || {});\r\n\theaders.append('Authorization', `Bearer ${token}`);\r\n\r\n\tconst finalOptions = {\r\n\t\t...options,\r\n\t\theaders\r\n\t};\r\n\r\n\tconst response = await fetch(`${baseURL}${url}`, finalOptions);\r\n\r\n\tif (!response.ok) throw new Error('Network response was not ok.');\r\n\r\n\treturn response;\r\n};\r\n\r\nexport default {\r\n\tget: async <T>(url: string): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url);\r\n\t\treturn await response.json() as T;\r\n\t},\r\n\tpost: async <T>(url: string, data: any): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify(data)\r\n\t\t});\r\n\t\treturn await response.json() as T;\r\n\t}\r\n};\r\n"],"names":[],"mappings":";;AACA,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"hcApi.js","sources":["../../src/apis/hcApi.ts"],"sourcesContent":["import { getClientAuthKey } from '~/clientToken';\r\nconst baseURL = process.env.HC_API_BASE_URL as string;\r\n\r\ninterface MemoryStorage {\r\n\tauthToken: string | null;\r\n\ttokenExpiration: string | null;\r\n}\r\n\r\nconst memoryStorage: MemoryStorage = {\r\n\tauthToken: null,\r\n\ttokenExpiration: null\r\n};\r\n\r\nfunction setStorage(key: keyof MemoryStorage, value: string): void {\r\n\ttry {\r\n\t\tsessionStorage.setItem(key, value);\r\n\t} catch (error) {\r\n\t\tmemoryStorage[key] = value;\r\n\t}\r\n}\r\n\r\nfunction getStorage(key: keyof MemoryStorage): string | null {\r\n\ttry {\r\n\t\treturn sessionStorage.getItem(key) || memoryStorage[key];\r\n\t} catch (error) {\r\n\t\treturn memoryStorage[key];\r\n\t}\r\n}\r\n\r\ninterface AuthResponse {\r\n\ttoken: string;\r\n\texpiration: string;\r\n}\r\n\r\nconst login = async (): Promise<AuthResponse> => {\r\n\tconst clientAuthKey = getClientAuthKey();\r\n\r\n\ttry {\r\n\t\tconst response = await fetch(`${baseURL}/auth/login`, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify({\r\n\t\t\t\tclientAuthKey: clientAuthKey\r\n\t\t\t})\r\n\t\t});\r\n\r\n\t\tif (!response.ok) {\r\n\t\t\tthrow new Error('Login failed');\r\n\t\t}\r\n\r\n\t\tconst data = await response.json();\r\n\r\n\t\tif (data.token && data.expiration) {\r\n\t\t\tsetStorage('authToken', data.token);\r\n\t\t\tsetStorage('tokenExpiration', data.expiration);\r\n\t\t\treturn { token: data.token, expiration: data.expiration };\r\n\t\t} else {\r\n\t\t\tthrow new Error('Invalid login response');\r\n\t\t}\r\n\t} catch (error) {\r\n\t\tconsole.error('Login failed:', error);\r\n\t\tthrow error;\r\n\t}\r\n};\r\n\r\nconst fetchWithAuth = async (url: string, options: RequestInit = {}): Promise<Response> => {\r\n\tlet token = getStorage('authToken');\r\n\r\n\tconst expirationDateTime = getStorage('tokenExpiration');\r\n\tconst currentTime = new Date();\r\n\r\n\tif (!token || !expirationDateTime || new Date(expirationDateTime) <= currentTime) {\r\n\t\tconst authResponse = await login();\r\n\t\ttoken = authResponse.token;\r\n\t}\r\n\r\n\tconst headers = new Headers(options.headers || {});\r\n\theaders.append('Authorization', `Bearer ${token}`);\r\n\r\n\tconst finalOptions = {\r\n\t\t...options,\r\n\t\theaders\r\n\t};\r\n\r\n\tconst response = await fetch(`${baseURL}${url}`, finalOptions);\r\n\r\n\tif (!response.ok) throw new Error('Network response was not ok.');\r\n\r\n\treturn response;\r\n};\r\n\r\nexport default {\r\n\tget: async <T>(url: string): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url);\r\n\t\treturn await response.json() as T;\r\n\t},\r\n\tpost: async <T>(url: string, data: any): Promise<T> => {\r\n\t\tconst response = await fetchWithAuth(url, {\r\n\t\t\tmethod: 'POST',\r\n\t\t\theaders: {\r\n\t\t\t\t'Content-Type': 'application/json'\r\n\t\t\t},\r\n\t\t\tbody: JSON.stringify(data)\r\n\t\t});\r\n\t\treturn await response.json() as T;\r\n\t}\r\n};\r\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter-container.js","sources":["../../../../src/components/containers/accordions/filter-container.js"],"sourcesContent":["import React from 'react';\nimport { useMapList } from '~/contexts/mapListContext';\nimport AccordionFilters from '~/components/modules/accordions/filters';\nimport AccordionFilterItem from '~/components/containers/accordions/filter-item-container';\n\nconst AccordionFiltersContainer = ({\n\tclassName,\n\tdefaultValue,\n\tsetDefaultValue,\n\tsetLocation,\n\tsetSelectedListItem,\n\tSubcategoryRequireCategory\n}) => {\n\tconst { filterOptions, selectedFilters, setSelectedFilters, siteConfig } = useMapList();\n\n\tconst handleSetSelectedFilters = prevFilters => {\n\t\tsetSelectedFilters(prevFilters);\n\t\tsetLocation(null);\n\t\tsetSelectedListItem(null);\n\t};\n\treturn (\n\t\t<AccordionFilters\n\t\t\tclassName={className}\n\t\t\tdefaultValue={defaultValue}\n\t\t\tfilterOptions={filterOptions}\n\t\t>\
|
|
1
|
+
{"version":3,"file":"filter-container.js","sources":["../../../../src/components/containers/accordions/filter-container.js"],"sourcesContent":["import React from 'react';\r\nimport { useMapList } from '~/contexts/mapListContext';\r\nimport AccordionFilters from '~/components/modules/accordions/filters';\r\nimport AccordionFilterItem from '~/components/containers/accordions/filter-item-container';\r\n\r\nconst AccordionFiltersContainer = ({\r\n\tclassName,\r\n\tdefaultValue,\r\n\tsetDefaultValue,\r\n\tsetLocation,\r\n\tsetSelectedListItem,\r\n\tSubcategoryRequireCategory\r\n}) => {\r\n\tconst { filterOptions, selectedFilters, setSelectedFilters, siteConfig } = useMapList();\r\n\r\n\tconst handleSetSelectedFilters = prevFilters => {\r\n\t\tsetSelectedFilters(prevFilters);\r\n\t\tsetLocation(null);\r\n\t\tsetSelectedListItem(null);\r\n\t};\r\n\treturn (\r\n\t\t<AccordionFilters\r\n\t\t\tclassName={className}\r\n\t\t\tdefaultValue={defaultValue}\r\n\t\t\tfilterOptions={filterOptions}\r\n\t\t>\r\n\t\t\t{filterOptions?.filters?.map(filter => {\r\n\t\t\t\tif(filter.id === 'category' && SubcategoryRequireCategory === true && (!selectedFilters.categoryClass || Object.keys(selectedFilters.categoryClass).length < 1)){\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else if (filter.id === 'category' && SubcategoryRequireCategory === true && filter.items.length > 0) {\r\n\t\t\t\t\tfilter.items = filter.items.filter(item => item.count > 0);\r\n\t\t\t\t}\r\n\t\t\t\treturn (<AccordionFilterItem\r\n\t\t\t\t\tkey={filter.id}\r\n\t\t\t\t\tfilter={filter}\r\n\t\t\t\t\texternalLinksInFilters={siteConfig.externalLinksInFilters}\r\n\t\t\t\t\tsetDefaultValue={setDefaultValue}\r\n\t\t\t\t\tselectedFilters={selectedFilters}\r\n\t\t\t\t\tsetSelectedFilters={handleSetSelectedFilters}\r\n\t\t\t\t\tsubcategoryRequireCategory={siteConfig.subcategoryRequireCategory}\r\n\t\t\t\t/>);\r\n\t\t\t}\r\n\t\t\t)}\r\n\t\t</AccordionFilters>\r\n\t);\r\n};\r\n\r\nexport default AccordionFiltersContainer;\r\n"],"names":["AccordionFiltersContainer","_ref","_filterOptions$filter","className","defaultValue","setDefaultValue","setLocation","setSelectedListItem","SubcategoryRequireCategory","_useMapList","useMapList","filterOptions","selectedFilters","setSelectedFilters","siteConfig","handleSetSelectedFilters","prevFilters","React","createElement","AccordionFilters","filters","map","filter","id","categoryClass","Object","keys","length","items","item","count","AccordionFilterItem","key","externalLinksInFilters","subcategoryRequireCategory"],"mappings":";;;;;AAKA,IAAMA,yBAAyB,GAAG,SAA5BA,yBAAyBA,CAAAC,IAAA,EAOzB;AAAA,EAAA,IAAAC,qBAAA,CAAA;AAAA,EAAA,IANLC,SAAS,GAAAF,IAAA,CAATE,SAAS;IACTC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IACZC,eAAe,GAAAJ,IAAA,CAAfI,eAAe;IACfC,WAAW,GAAAL,IAAA,CAAXK,WAAW;IACXC,mBAAmB,GAAAN,IAAA,CAAnBM,mBAAmB;IACnBC,0BAA0B,GAAAP,IAAA,CAA1BO,0BAA0B,CAAA;AAE1B,EAAA,IAAAC,WAAA,GAA2EC,UAAU,EAAE;IAA/EC,aAAa,GAAAF,WAAA,CAAbE,aAAa;IAAEC,eAAe,GAAAH,WAAA,CAAfG,eAAe;IAAEC,kBAAkB,GAAAJ,WAAA,CAAlBI,kBAAkB;IAAEC,UAAU,GAAAL,WAAA,CAAVK,UAAU,CAAA;AAEtE,EAAA,IAAMC,wBAAwB,GAAG,SAA3BA,wBAAwBA,CAAGC,WAAW,EAAI;IAC/CH,kBAAkB,CAACG,WAAW,CAAC,CAAA;IAC/BV,WAAW,CAAC,IAAI,CAAC,CAAA;IACjBC,mBAAmB,CAAC,IAAI,CAAC,CAAA;GACzB,CAAA;AACD,EAAA,oBACCU,cAAA,CAAAC,aAAA,CAACC,gBAAgB,EAAA;AAChBhB,IAAAA,SAAS,EAAEA,SAAU;AACrBC,IAAAA,YAAY,EAAEA,YAAa;AAC3BO,IAAAA,aAAa,EAAEA,aAAAA;AAAc,GAAA,EAE5BA,aAAa,KAAbA,IAAAA,IAAAA,aAAa,gBAAAT,qBAAA,GAAbS,aAAa,CAAES,OAAO,MAAAlB,IAAAA,IAAAA,qBAAA,uBAAtBA,qBAAA,CAAwBmB,GAAG,CAAC,UAAAC,MAAM,EAAI;AACtC,IAAA,IAAGA,MAAM,CAACC,EAAE,KAAK,UAAU,IAAIf,0BAA0B,KAAK,IAAI,KAAK,CAACI,eAAe,CAACY,aAAa,IAAIC,MAAM,CAACC,IAAI,CAACd,eAAe,CAACY,aAAa,CAAC,CAACG,MAAM,GAAG,CAAC,CAAC,EAAC;AAC/J,MAAA,OAAA;AACD,KAAC,MAAM,IAAIL,MAAM,CAACC,EAAE,KAAK,UAAU,IAAIf,0BAA0B,KAAK,IAAI,IAAIc,MAAM,CAACM,KAAK,CAACD,MAAM,GAAG,CAAC,EAAE;MACtGL,MAAM,CAACM,KAAK,GAAGN,MAAM,CAACM,KAAK,CAACN,MAAM,CAAC,UAAAO,IAAI,EAAA;AAAA,QAAA,OAAIA,IAAI,CAACC,KAAK,GAAG,CAAC,CAAA;OAAC,CAAA,CAAA;AAC3D,KAAA;AACA,IAAA,oBAAQb,cAAA,CAAAC,aAAA,CAACa,mBAAmB,EAAA;MAC3BC,GAAG,EAAEV,MAAM,CAACC,EAAG;AACfD,MAAAA,MAAM,EAAEA,MAAO;MACfW,sBAAsB,EAAEnB,UAAU,CAACmB,sBAAuB;AAC1D5B,MAAAA,eAAe,EAAEA,eAAgB;AACjCO,MAAAA,eAAe,EAAEA,eAAgB;AACjCC,MAAAA,kBAAkB,EAAEE,wBAAyB;MAC7CmB,0BAA0B,EAAEpB,UAAU,CAACoB,0BAAAA;AAA2B,KAClE,CAAC,CAAA;AACH,GACA,CACiB,CAAC,CAAA;AAErB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.js","sources":["../../../../src/components/modules/filter/item.js"],"sourcesContent":["
|
|
1
|
+
{"version":3,"file":"item.js","sources":["../../../../src/components/modules/filter/item.js"],"sourcesContent":["import React from 'react';\r\nimport Icon from '~/components/modules/icon';\r\n\r\nconst FilterItem = ({\r\n\tclassName,\r\n\titem,\r\n\ttype,\r\n\titemKey,\r\n\thasCount,\r\n\tfield,\r\n\tactiveItem,\r\n\tsetActiveItem,\r\n\tchangeHandler,\r\n\tisExternalLink = false,\r\n\texternalLinkUrl,\r\n\ttrackEvent,\r\n\teventTypes,\r\n\t...rest\r\n}) => {\r\n\tconst itemName = item.name ? item.name : item;\r\n\r\n\treturn (\r\n\t\t// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions\r\n\t\t<label\r\n\t\t onClick={() =>\r\n\t\t\t{\r\n\t\t\t\tif(!isExternalLink) return;\r\n\t\t\t trackEvent(eventTypes.EXTERNAL_LINK_CLICKED, { link: externalLinkUrl });\r\n\t\t\t\twindow.location.href = externalLinkUrl;\r\n\t\t\t}}\r\n\t\t\tclassName={`\r\n hc-flex hc-items-start hc-gap-2 hc-px-2 hc-py-1.5 hc-rounded-sm hc-text-sm hc-cursor-pointer hc-transition hover:hc-bg-uiAccent/5\r\n ${className ?? \"\"}\r\n `}\r\n\t\t\t{...rest}\r\n\t\t>\r\n\t\t\t{isExternalLink ? (\r\n\t\t\t\t<Icon\r\n\t\t\t\t\ticon=\"tabler:external-link\"\r\n\t\t\t\t\tsize=\"hc-size-4\"\r\n\t\t\t\t\tclassName={'hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30'}\r\n\t\t\t\t></Icon>\r\n\t\t\t) : (\r\n\t\t\t\t<input\r\n\t\t\t\t\tid={itemKey}\r\n\t\t\t\t\tname={field}\r\n\t\t\t\t\tdisabled={item.count === 0}\r\n\t\t\t\t\tvalue={itemName}\r\n\t\t\t\t\ttype={type}\r\n\t\t\t\t\tclassName=\"hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm\"\r\n\t\t\t\t\tchecked={activeItem}\r\n\t\t\t\t\tonChange={() => {\r\n\t\t\t\t\t\tsetActiveItem(!activeItem);\r\n\t\t\t\t\t\tchangeHandler();\r\n\t\t\t\t\t}}\r\n\t\t\t\t/>\r\n\t\t\t)}\r\n\r\n\t\t\t<span className=\"hc-text-left hc-font-medium\">{itemName}</span>\r\n\t\t\t{hasCount && !isExternalLink && (\r\n\t\t\t\t<span className=\"hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary\">\r\n ({item.count})\r\n\t\t\t\t</span>\r\n\t\t\t)}\r\n\t\t</label>\r\n\t);\r\n};\r\n\r\nexport default FilterItem;\r\n"],"names":["FilterItem","_ref","className","item","type","itemKey","hasCount","field","activeItem","setActiveItem","changeHandler","_ref$isExternalLink","isExternalLink","externalLinkUrl","trackEvent","eventTypes","rest","_objectWithoutProperties","_excluded","itemName","name","React","createElement","_extends","onClick","EXTERNAL_LINK_CLICKED","link","window","location","href","concat","Icon","icon","size","id","disabled","count","value","checked","onChange"],"mappings":";;;;;AAGA,IAAMA,UAAU,GAAG,SAAbA,UAAUA,CAAAC,IAAA,EAeV;AAAA,EAAA,IAdLC,SAAS,GAAAD,IAAA,CAATC,SAAS;IACTC,IAAI,GAAAF,IAAA,CAAJE,IAAI;IACJC,IAAI,GAAAH,IAAA,CAAJG,IAAI;IACJC,OAAO,GAAAJ,IAAA,CAAPI,OAAO;IACPC,QAAQ,GAAAL,IAAA,CAARK,QAAQ;IACRC,KAAK,GAAAN,IAAA,CAALM,KAAK;IACLC,UAAU,GAAAP,IAAA,CAAVO,UAAU;IACVC,aAAa,GAAAR,IAAA,CAAbQ,aAAa;IACbC,aAAa,GAAAT,IAAA,CAAbS,aAAa;IAAAC,mBAAA,GAAAV,IAAA,CACbW,cAAc;AAAdA,IAAAA,cAAc,GAAAD,mBAAA,KAAG,KAAA,CAAA,GAAA,KAAK,GAAAA,mBAAA;IACtBE,eAAe,GAAAZ,IAAA,CAAfY,eAAe;IACfC,UAAU,GAAAb,IAAA,CAAVa,UAAU;IACVC,UAAU,GAAAd,IAAA,CAAVc,UAAU;AACPC,IAAAA,IAAI,GAAAC,wBAAA,CAAAhB,IAAA,EAAAiB,SAAA,CAAA,CAAA;EAEP,IAAMC,QAAQ,GAAGhB,IAAI,CAACiB,IAAI,GAAGjB,IAAI,CAACiB,IAAI,GAAGjB,IAAI,CAAA;AAE7C,EAAA;AAAA;AACC;IACAkB,cAAA,CAAAC,aAAA,CAAA,OAAA,EAAAC,QAAA,CAAA;MACEC,OAAO,EAAE,SAAAA,OAAAA,GACV;QACC,IAAG,CAACZ,cAAc,EAAE,OAAA;AACjBE,QAAAA,UAAU,CAACC,UAAU,CAACU,qBAAqB,EAAE;AAAEC,UAAAA,IAAI,EAAEb,eAAAA;AAAgB,SAAC,CAAC,CAAA;AAC1Ec,QAAAA,MAAM,CAACC,QAAQ,CAACC,IAAI,GAAGhB,eAAe,CAAA;OACrC;MACFX,SAAS,EAAA,uJAAA,CAAA4B,MAAA,CAEF5B,SAAS,aAATA,SAAS,KAAA,KAAA,CAAA,GAATA,SAAS,GAAI,EAAE,EAAA,UAAA,CAAA;KAElBc,EAAAA,IAAI,GAEPJ,cAAc,gBACdS,cAAA,CAAAC,aAAA,CAACS,aAAI,EAAA;AACJC,MAAAA,IAAI,EAAC,sBAAsB;AAC3BC,MAAAA,IAAI,EAAC,WAAW;AAChB/B,MAAAA,SAAS,EAAE,0DAAA;AAA2D,KAChE,CAAC,gBAERmB,cAAA,CAAAC,aAAA,CAAA,OAAA,EAAA;AACCY,MAAAA,EAAE,EAAE7B,OAAQ;AACZe,MAAAA,IAAI,EAAEb,KAAM;AACZ4B,MAAAA,QAAQ,EAAEhC,IAAI,CAACiC,KAAK,KAAK,CAAE;AAC3BC,MAAAA,KAAK,EAAElB,QAAS;AAChBf,MAAAA,IAAI,EAAEA,IAAK;AACXF,MAAAA,SAAS,EAAC,6FAA6F;AACvGoC,MAAAA,OAAO,EAAE9B,UAAW;MACpB+B,QAAQ,EAAE,SAAAA,QAAAA,GAAM;QACf9B,aAAa,CAAC,CAACD,UAAU,CAAC,CAAA;AAC1BE,QAAAA,aAAa,EAAE,CAAA;AAChB,OAAA;AAAE,KACF,CACD,eAEDW,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMpB,MAAAA,SAAS,EAAC,6BAAA;KAA+BiB,EAAAA,QAAe,CAAC,EAC9Db,QAAQ,IAAI,CAACM,cAAc,iBAC3BS,cAAA,CAAAC,aAAA,CAAA,MAAA,EAAA;AAAMpB,MAAAA,SAAS,EAAC,+EAAA;AAA+E,KAAA,EAAC,GACzF,EAACC,IAAI,CAACiC,KAAK,EAAC,GACb,CAED,CAAA;AAAC,IAAA;AAEV;;;;"}
|
package/package.json
CHANGED
|
@@ -1,50 +1,48 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
|
-
import { useMapList } from '~/contexts/mapListContext';
|
|
3
|
-
import AccordionFilters from '~/components/modules/accordions/filters';
|
|
4
|
-
import AccordionFilterItem from '~/components/containers/accordions/filter-item-container';
|
|
5
|
-
|
|
6
|
-
const AccordionFiltersContainer = ({
|
|
7
|
-
className,
|
|
8
|
-
defaultValue,
|
|
9
|
-
setDefaultValue,
|
|
10
|
-
setLocation,
|
|
11
|
-
setSelectedListItem,
|
|
12
|
-
SubcategoryRequireCategory
|
|
13
|
-
}) => {
|
|
14
|
-
const { filterOptions, selectedFilters, setSelectedFilters, siteConfig } = useMapList();
|
|
15
|
-
|
|
16
|
-
const handleSetSelectedFilters = prevFilters => {
|
|
17
|
-
setSelectedFilters(prevFilters);
|
|
18
|
-
setLocation(null);
|
|
19
|
-
setSelectedListItem(null);
|
|
20
|
-
};
|
|
21
|
-
return (
|
|
22
|
-
<AccordionFilters
|
|
23
|
-
className={className}
|
|
24
|
-
defaultValue={defaultValue}
|
|
25
|
-
filterOptions={filterOptions}
|
|
26
|
-
>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
export default AccordionFiltersContainer;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { useMapList } from '~/contexts/mapListContext';
|
|
3
|
+
import AccordionFilters from '~/components/modules/accordions/filters';
|
|
4
|
+
import AccordionFilterItem from '~/components/containers/accordions/filter-item-container';
|
|
5
|
+
|
|
6
|
+
const AccordionFiltersContainer = ({
|
|
7
|
+
className,
|
|
8
|
+
defaultValue,
|
|
9
|
+
setDefaultValue,
|
|
10
|
+
setLocation,
|
|
11
|
+
setSelectedListItem,
|
|
12
|
+
SubcategoryRequireCategory
|
|
13
|
+
}) => {
|
|
14
|
+
const { filterOptions, selectedFilters, setSelectedFilters, siteConfig } = useMapList();
|
|
15
|
+
|
|
16
|
+
const handleSetSelectedFilters = prevFilters => {
|
|
17
|
+
setSelectedFilters(prevFilters);
|
|
18
|
+
setLocation(null);
|
|
19
|
+
setSelectedListItem(null);
|
|
20
|
+
};
|
|
21
|
+
return (
|
|
22
|
+
<AccordionFilters
|
|
23
|
+
className={className}
|
|
24
|
+
defaultValue={defaultValue}
|
|
25
|
+
filterOptions={filterOptions}
|
|
26
|
+
>
|
|
27
|
+
{filterOptions?.filters?.map(filter => {
|
|
28
|
+
if(filter.id === 'category' && SubcategoryRequireCategory === true && (!selectedFilters.categoryClass || Object.keys(selectedFilters.categoryClass).length < 1)){
|
|
29
|
+
return;
|
|
30
|
+
} else if (filter.id === 'category' && SubcategoryRequireCategory === true && filter.items.length > 0) {
|
|
31
|
+
filter.items = filter.items.filter(item => item.count > 0);
|
|
32
|
+
}
|
|
33
|
+
return (<AccordionFilterItem
|
|
34
|
+
key={filter.id}
|
|
35
|
+
filter={filter}
|
|
36
|
+
externalLinksInFilters={siteConfig.externalLinksInFilters}
|
|
37
|
+
setDefaultValue={setDefaultValue}
|
|
38
|
+
selectedFilters={selectedFilters}
|
|
39
|
+
setSelectedFilters={handleSetSelectedFilters}
|
|
40
|
+
subcategoryRequireCategory={siteConfig.subcategoryRequireCategory}
|
|
41
|
+
/>);
|
|
42
|
+
}
|
|
43
|
+
)}
|
|
44
|
+
</AccordionFilters>
|
|
45
|
+
);
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
export default AccordionFiltersContainer;
|
|
@@ -1,70 +1,69 @@
|
|
|
1
|
-
|
|
2
|
-
import
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
export default FilterItem;
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import Icon from '~/components/modules/icon';
|
|
3
|
+
|
|
4
|
+
const FilterItem = ({
|
|
5
|
+
className,
|
|
6
|
+
item,
|
|
7
|
+
type,
|
|
8
|
+
itemKey,
|
|
9
|
+
hasCount,
|
|
10
|
+
field,
|
|
11
|
+
activeItem,
|
|
12
|
+
setActiveItem,
|
|
13
|
+
changeHandler,
|
|
14
|
+
isExternalLink = false,
|
|
15
|
+
externalLinkUrl,
|
|
16
|
+
trackEvent,
|
|
17
|
+
eventTypes,
|
|
18
|
+
...rest
|
|
19
|
+
}) => {
|
|
20
|
+
const itemName = item.name ? item.name : item;
|
|
21
|
+
|
|
22
|
+
return (
|
|
23
|
+
// eslint-disable-next-line jsx-a11y/click-events-have-key-events, jsx-a11y/no-noninteractive-element-interactions
|
|
24
|
+
<label
|
|
25
|
+
onClick={() =>
|
|
26
|
+
{
|
|
27
|
+
if(!isExternalLink) return;
|
|
28
|
+
trackEvent(eventTypes.EXTERNAL_LINK_CLICKED, { link: externalLinkUrl });
|
|
29
|
+
window.location.href = externalLinkUrl;
|
|
30
|
+
}}
|
|
31
|
+
className={`
|
|
32
|
+
hc-flex hc-items-start hc-gap-2 hc-px-2 hc-py-1.5 hc-rounded-sm hc-text-sm hc-cursor-pointer hc-transition hover:hc-bg-uiAccent/5
|
|
33
|
+
${className ?? ""}
|
|
34
|
+
`}
|
|
35
|
+
{...rest}
|
|
36
|
+
>
|
|
37
|
+
{isExternalLink ? (
|
|
38
|
+
<Icon
|
|
39
|
+
icon="tabler:external-link"
|
|
40
|
+
size="hc-size-4"
|
|
41
|
+
className={'hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30'}
|
|
42
|
+
></Icon>
|
|
43
|
+
) : (
|
|
44
|
+
<input
|
|
45
|
+
id={itemKey}
|
|
46
|
+
name={field}
|
|
47
|
+
disabled={item.count === 0}
|
|
48
|
+
value={itemName}
|
|
49
|
+
type={type}
|
|
50
|
+
className="hc-size-4 hc-mt-px hc-text-primary hc-border-uiAccent/30 hc-transition-colors hc-rounded-sm"
|
|
51
|
+
checked={activeItem}
|
|
52
|
+
onChange={() => {
|
|
53
|
+
setActiveItem(!activeItem);
|
|
54
|
+
changeHandler();
|
|
55
|
+
}}
|
|
56
|
+
/>
|
|
57
|
+
)}
|
|
58
|
+
|
|
59
|
+
<span className="hc-text-left hc-font-medium">{itemName}</span>
|
|
60
|
+
{hasCount && !isExternalLink && (
|
|
61
|
+
<span className="hc-inline-block hc-mt-1 hc-ml-auto hc-text-xs hc-leading-none hc-text-primary">
|
|
62
|
+
({item.count})
|
|
63
|
+
</span>
|
|
64
|
+
)}
|
|
65
|
+
</label>
|
|
66
|
+
);
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
export default FilterItem;
|