@bigbinary/neeto-filters-frontend 4.3.5 → 4.3.6
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/Bar.js +5 -5
- package/dist/Filters.js +3 -3
- package/dist/Filters.js.map +1 -1
- package/dist/Segments.js +5 -5
- package/dist/cjs/Bar.js +27 -40
- package/dist/cjs/Bar.js.map +1 -1
- package/dist/cjs/Filters.js +24 -37
- package/dist/cjs/Filters.js.map +1 -1
- package/dist/cjs/Segments.js +24 -37
- package/dist/cjs/Segments.js.map +1 -1
- package/dist/cjs/hooks.js +2 -4
- package/dist/cjs/hooks.js.map +1 -1
- package/dist/cjs/index.js +7 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/utils.js +2 -4
- package/dist/cjs/utils.js.map +1 -1
- package/dist/{constants-fad9a281.js → constants-CEZMHAxx.js} +2 -2
- package/dist/{constants-fad9a281.js.map → constants-CEZMHAxx.js.map} +1 -1
- package/dist/{constants-b2c7e869.js → constants-S_zU7eDN.js} +1 -1
- package/dist/{constants-b2c7e869.js.map → constants-S_zU7eDN.js.map} +1 -1
- package/dist/hooks.js +2 -2
- package/dist/{index-93da3b47.js → index-9XJ2QBWT.js} +3 -3
- package/dist/{index-93da3b47.js.map → index-9XJ2QBWT.js.map} +1 -1
- package/dist/{index-7257957a.js → index-B4GTy1mo.js} +27 -43
- package/dist/{index-7257957a.js.map → index-B4GTy1mo.js.map} +1 -1
- package/dist/{index-030a7902.js → index-Cnchjnt1.js} +33 -43
- package/dist/index-Cnchjnt1.js.map +1 -0
- package/dist/{index-566faa52.js → index-DL2dUxuB.js} +3 -3
- package/dist/{index-566faa52.js.map → index-DL2dUxuB.js.map} +1 -1
- package/dist/index.js +7 -7
- package/dist/{useSegmentsApi-3805ee98.js → useSegmentsApi-D4rKaXUX.js} +8 -13
- package/dist/useSegmentsApi-D4rKaXUX.js.map +1 -0
- package/dist/{useSegmentsApi-f084f44a.js → useSegmentsApi-DNEfAQG5.js} +3 -3
- package/dist/{useSegmentsApi-f084f44a.js.map → useSegmentsApi-DNEfAQG5.js.map} +1 -1
- package/dist/{utils-2e4fb117.js → utils-CPBlIPqx.js} +3 -3
- package/dist/{utils-2e4fb117.js.map → utils-CPBlIPqx.js.map} +1 -1
- package/dist/{utils-e0b52fa1.js → utils-PyL0UYCZ.js} +14 -22
- package/dist/utils-PyL0UYCZ.js.map +1 -0
- package/dist/utils.js +2 -2
- package/package.json +11 -11
- package/dist/index-030a7902.js.map +0 -1
- package/dist/useSegmentsApi-3805ee98.js.map +0 -1
- package/dist/utils-e0b52fa1.js.map +0 -1
package/dist/Bar.js
CHANGED
|
@@ -6,19 +6,19 @@ import { t } from 'i18next';
|
|
|
6
6
|
import { findBy, humanize, removeBy, hyphenate, isPresent, isNotEmpty, noop, findById, isNotPresent } from '@bigbinary/neeto-cist';
|
|
7
7
|
import { useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
8
8
|
import { reject, modify, sortBy, prop, project, has, omit, isEmpty, assoc, identity } from 'ramda';
|
|
9
|
-
import { S as SegmentForm } from './index-
|
|
10
|
-
import {
|
|
9
|
+
import { S as SegmentForm } from './index-9XJ2QBWT.js';
|
|
10
|
+
import { c as useCreateSegment, b as useUpdateSegment, Q as QUERY_KEYS } from './useSegmentsApi-DNEfAQG5.js';
|
|
11
11
|
import { dateFormat, dayjs, buildUrl, showThumbsUpToastr } from '@bigbinary/neeto-commons-frontend/utils';
|
|
12
12
|
import Button from '@bigbinary/neetoui/Button';
|
|
13
13
|
import { useTranslation } from 'react-i18next';
|
|
14
14
|
import { useHistory } from 'react-router-dom';
|
|
15
|
-
import { S as SEARCH_TERM_KEY,
|
|
15
|
+
import { S as SEARCH_TERM_KEY, d as SINGLE_DATE_OPTIONS, e as SINGLE_TIME_OPTIONS } from './constants-CEZMHAxx.js';
|
|
16
16
|
import useHotkeys from '@bigbinary/neeto-hotkeys';
|
|
17
17
|
import Close from '@bigbinary/neeto-icons/Close';
|
|
18
18
|
import Tooltip from '@bigbinary/neetoui/Tooltip';
|
|
19
19
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
20
|
-
import { i as isRuleEmpty } from './index-
|
|
21
|
-
import {
|
|
20
|
+
import { i as isRuleEmpty } from './index-DL2dUxuB.js';
|
|
21
|
+
import { p as isDate, q as isCustomDateRange, r as isTime, s as isCustomTimeRange, t as isMulti, u as isTreeSelect, v as isSingleDate, w as isSingleTime, x as isBoolean, y as getLabelFromBool, z as isText, T as TEXT_RULES, A as isDigit, N as NUMBER_RULES, B as isSingle, l as getSnakeCasedQueryParams, j as isKeywordFilterPresent, g as buildFiltersFromSearchParams, e as buildUrlFromFilters, h as getSearchTermFromUrl, o as buildSegmentsPayload, d as buildUrlFromSegment } from './utils-CPBlIPqx.js';
|
|
22
22
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
23
23
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
24
24
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
package/dist/Filters.js
CHANGED
|
@@ -15,9 +15,9 @@ import Typography from '@bigbinary/neetoui/Typography';
|
|
|
15
15
|
import NeetoUIPane from '@bigbinary/neetoui/Pane';
|
|
16
16
|
import { useTranslation } from 'react-i18next';
|
|
17
17
|
import { useLocation, useHistory } from 'react-router-dom';
|
|
18
|
-
import { S as SEARCH_TERM_KEY } from './constants-
|
|
19
|
-
import {
|
|
20
|
-
import { I as Item } from './index-
|
|
18
|
+
import { S as SEARCH_TERM_KEY } from './constants-CEZMHAxx.js';
|
|
19
|
+
import { g as buildFiltersFromSearchParams, h as getSearchTermFromUrl, i as buildDefaultFilters, e as buildUrlFromFilters, j as isKeywordFilterPresent, k as compareFilters, a as buildSelectorsFromURL, l as getSnakeCasedQueryParams, m as buildFiltersPayload, n as getColumnsWithStandardizedType, f as buildFilteredColumns } from './utils-CPBlIPqx.js';
|
|
20
|
+
import { I as Item } from './index-DL2dUxuB.js';
|
|
21
21
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
22
22
|
import 'i18next';
|
|
23
23
|
import '@bigbinary/neeto-icons/Help';
|
package/dist/Filters.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Filters.js","sources":["../app/javascript/src/components/Pane/hooks/useFilters.js","../app/javascript/src/components/Pane/index.jsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../app/javascript/src/components/Filters.jsx"],"sourcesContent":["import { useRef, useEffect, useTransition } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\nimport { pluck, isNil, concat, isEmpty, append, mergeRight } from \"ramda\";\nimport { useHistory, useLocation } from \"react-router-dom\";\n\nimport {\n buildDefaultFilters,\n buildFiltersFromSearchParams,\n buildFiltersPayload,\n buildSelectorsFromURL,\n buildUrlFromFilters,\n compareFilters,\n getSearchTermFromUrl,\n getSnakeCasedQueryParams,\n isKeywordFilterPresent,\n} from \"../../utils\";\n\nconst useFilters = ({\n onFiltersChange,\n columns,\n keywordFilter,\n onSelectorsChange,\n}) => {\n const [_, startTransition] = useTransition();\n\n const initialRender = useRef(true);\n const prevFilters = useRef([]);\n const location = useLocation();\n let filters = buildFiltersFromSearchParams(columns, false);\n const history = useHistory();\n const defaultValuesOfColumns = JSON.stringify(pluck(\"defaultValue\", columns));\n\n const handlePrecenseOfDefaultFilters = defaultFilters => {\n const params = buildUrlFromFilters({\n columns,\n filters:\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? [...defaultFilters, keywordFilter]\n : defaultFilters,\n });\n\n history.replace({ search: params });\n };\n\n const handleFiltersChange = filtersPayload => {\n startTransition(() => {\n onFiltersChange(\n buildFiltersPayload(\n filtersPayload.filter(filter => !isNil(filter.node))\n )\n );\n });\n };\n\n //This function sends the updated filters to host via callbacks.\n const sendUpdatedFilters = () => {\n if (compareFilters(append(keywordFilter, filters), prevFilters.current)) {\n return;\n }\n\n const newFilters = buildFiltersFromSearchParams(columns);\n const filtersPayload =\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? append(keywordFilter, newFilters)\n : newFilters;\n\n handleFiltersChange(filtersPayload);\n\n onSelectorsChange(buildSelectorsFromURL(columns));\n };\n\n const handleChangesInURL = () => {\n const defaultFilters = buildDefaultFilters(columns, filters);\n const searchParams = getSnakeCasedQueryParams();\n const keys = pluck(\"key\", append(keywordFilter, columns));\n if (\n keys.every(key => isNil(searchParams[key])) &&\n !isEmpty(defaultFilters)\n ) {\n history.replace({\n search: buildUrlFromFilters({\n columns,\n filters: concat(defaultFilters, filters),\n }),\n });\n filters = buildFiltersFromSearchParams(columns, false);\n }\n };\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false;\n const keywordValue = getSearchTermFromUrl();\n const defaultFilters = buildDefaultFilters(columns, filters);\n isNotEmpty(defaultFilters) &&\n handlePrecenseOfDefaultFilters(defaultFilters);\n\n prevFilters.current = append(\n mergeRight(keywordFilter, { value: keywordValue }),\n filters\n );\n } else {\n handleChangesInURL();\n sendUpdatedFilters();\n prevFilters.current = append(keywordFilter, filters);\n }\n }, [location.search, defaultValuesOfColumns]);\n\n return filters;\n};\n\nexport default useFilters;\n","import { useMemo, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { existsBy, findBy, isNotEmpty, isPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport Search from \"neetomolecules/Search\";\nimport { Accordion, Button, Typography, Pane as NeetoUIPane } from \"neetoui\";\nimport { isEmpty, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\n\nimport useFilters from \"./hooks/useFilters\";\nimport Item from \"./Item\";\n\nimport {\n buildFilteredColumns,\n buildUrlFromFilters,\n getColumnsWithStandardizedType,\n getSearchTermFromUrl,\n getSnakeCasedQueryParams,\n isKeywordFilterPresent,\n} from \"../utils\";\n\nconst Pane = ({\n isOpen,\n onClose,\n columns,\n onChange,\n isSearchable,\n keyword,\n onSelectorsChange,\n childrenKeys = [],\n children,\n className,\n ...otherProps\n}) => {\n const searchParams = useQueryParams({ toCamelCase: false });\n const [searchTerm, setSearchTerm] = useState(\"\");\n const history = useHistory();\n const { t } = useTranslation();\n\n columns = useMemo(() => getColumnsWithStandardizedType(columns), [columns]);\n\n const { groupedColumns = [], ungroupedColumns = [] } = buildFilteredColumns({\n searchTerm,\n columns,\n });\n\n const keywordFilter = {\n type: \"text\",\n rule: \"contains\",\n label: t(\"neetoFilters.common.searchTerm\"),\n ...keyword,\n key: SEARCH_TERM_KEY,\n value: searchParams[SEARCH_TERM_KEY] || \"\",\n };\n\n const filters = useFilters({\n onFiltersChange: onChange,\n columns,\n keywordFilter,\n onSelectorsChange,\n });\n\n const handleChange = (newFilters, isClearAll = false) => {\n const params = buildUrlFromFilters({\n columns,\n filters:\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? [...newFilters, keywordFilter]\n : newFilters,\n ...(isClearAll && { isClearAll: true, childrenKeys }),\n });\n\n history.push({ search: params });\n };\n\n const handleClearAll = () => {\n const params = isKeywordFilterPresent(keywordFilter)\n ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams())\n : getSnakeCasedQueryParams();\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n handleChange([], true);\n };\n\n const handleClearTermAndClose = () => {\n setSearchTerm(\"\");\n onClose();\n };\n\n const handleClose = () => {\n columns.forEach(({ key }) => {\n const filter = findBy({ key }, filters);\n if (filter?.value === \"\") delete searchParams[key];\n });\n handleClearTermAndClose();\n };\n\n const isClearFiltersDisabled =\n !filters.some(\n ({ value, defaultValue }) => isPresent(value) && value !== defaultValue\n ) && !childrenKeys.some(key => searchParams[key]);\n\n return (\n <NeetoUIPane\n {...{ isOpen }}\n backdropClassName=\"neeto-filters-pane-backdrop\"\n className={classnames(\"neeto-filters-pane-filter\", {\n [className]: className,\n })}\n onClose={handleClose}\n {...otherProps}\n >\n <NeetoUIPane.Header data-cy=\"neeto-filters-pane-header\">\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoFilters.common.filters\")}\n </Typography>\n </NeetoUIPane.Header>\n <NeetoUIPane.Body className=\"neeto-filters-pane-filter__body py-2\">\n {isSearchable && (\n <Search\n data-cy=\"neeto-filters-column-search\"\n placeholder={t(\"neetoFilters.messages.searchResources\", {\n resources: t(\"neetoFilters.common.filters\"),\n })}\n onSearch={value => setSearchTerm(value)}\n />\n )}\n {ungroupedColumns.map(column => (\n <Item\n {...{ column, filters }}\n autoFocus={column.key === isOpen}\n key={column.key}\n onChange={handleChange}\n onClose={handleClearTermAndClose}\n />\n ))}\n {isPresent(groupedColumns) && (\n <Accordion\n defaultActiveKey={groupedColumns.findIndex(({ columns }) =>\n existsBy({ key: isOpen }, columns)\n )}\n >\n {groupedColumns.map(({ group, columns }) => (\n <Accordion.Item\n className=\"accordion_item\"\n key={group}\n title={group}\n >\n {columns.map(column => (\n <Item\n {...{ column, filters }}\n autoFocus={column.key === isOpen}\n key={column.key}\n onChange={handleChange}\n onClose={handleClearTermAndClose}\n />\n ))}\n </Accordion.Item>\n ))}\n </Accordion>\n )}\n {isEmpty(ungroupedColumns) && isEmpty(groupedColumns) && (\n <Typography style=\"body2\">\n {t(\"neetoFilters.messages.noResourcesFound\", {\n resources: t(\"neetoFilters.common.columns\"),\n })}\n </Typography>\n )}\n {children}\n </NeetoUIPane.Body>\n <NeetoUIPane.Footer className=\"gap-x-2\">\n <Button\n data-cy=\"neeto-filters-done-btn\"\n label={t(\"neetoFilters.common.done\")}\n onClick={handleClearTermAndClose}\n />\n <Button\n data-cy=\"neeto-filters-clear-btn\"\n disabled={isClearFiltersDisabled}\n label={t(\"neetoFilters.common.clearFilters\")}\n style=\"text\"\n onClick={handleClearAll}\n />\n </NeetoUIPane.Footer>\n </NeetoUIPane>\n );\n};\n\nexport default Pane;\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Button } from \"neetoui\";\nimport { identity } from \"ramda\";\n\nimport Pane from \"./Pane\";\n\nimport \"../stylesheets/index.scss\";\n\nconst Filters = withT(\n ({\n t,\n isOpen = false,\n setIsOpen = identity,\n columns = [],\n onChange = identity,\n buttonProps = {},\n paneProps = {},\n isSearchable = false,\n className,\n onSelectorsChange = noop,\n keyword = { node: \"\", value: \"\", setValue: noop },\n childrenKeys,\n children,\n }) => (\n <span className={classnames({ [className]: className })}>\n <Button\n data-cy=\"neeto-filters-toggle-btn\"\n label={t(\"neetoFilters.common.filter\")}\n style=\"secondary\"\n onClick={() => setIsOpen(true)}\n {...buttonProps}\n />\n <Pane\n onClose={() => setIsOpen(false)}\n {...{\n childrenKeys,\n columns,\n isOpen,\n isSearchable,\n keyword,\n onChange,\n onSelectorsChange,\n ...paneProps,\n }}\n >\n {children}\n </Pane>\n </span>\n )\n);\n\nexport default Filters;\n"],"names":["useFilters","_ref","onFiltersChange","columns","keywordFilter","onSelectorsChange","_useTransition","useTransition","_useTransition2","_slicedToArray","_","startTransition","initialRender","useRef","prevFilters","location","useLocation","filters","buildFiltersFromSearchParams","history","useHistory","defaultValuesOfColumns","JSON","stringify","pluck","handlePrecenseOfDefaultFilters","defaultFilters","params","buildUrlFromFilters","isKeywordFilterPresent","isNotEmpty","getSearchTermFromUrl","concat","_toConsumableArray","replace","search","handleFiltersChange","filtersPayload","buildFiltersPayload","filter","isNil","node","sendUpdatedFilters","compareFilters","append","current","newFilters","buildSelectorsFromURL","handleChangesInURL","buildDefaultFilters","searchParams","getSnakeCasedQueryParams","keys","every","key","isEmpty","useEffect","keywordValue","mergeRight","value","Pane","isOpen","onClose","onChange","isSearchable","keyword","_ref$childrenKeys","childrenKeys","children","className","otherProps","_objectWithoutProperties","_excluded","useQueryParams","toCamelCase","_useState","useState","_useState2","searchTerm","setSearchTerm","_useTranslation","useTranslation","t","useMemo","getColumnsWithStandardizedType","_buildFilteredColumns","buildFilteredColumns","_buildFilteredColumns2","groupedColumns","_buildFilteredColumns3","ungroupedColumns","_objectSpread","type","rule","label","SEARCH_TERM_KEY","handleChange","isClearAll","arguments","length","undefined","push","handleClearAll","omit","pathname","window","buildUrl","handleClearTermAndClose","handleClose","forEach","_ref2","findBy","isClearFiltersDisabled","some","_ref3","defaultValue","isPresent","_jsxs","NeetoUIPane","backdropClassName","classnames","_defineProperty","_jsx","Header","Typography","style","weight","Body","Search","placeholder","resources","onSearch","map","column","_createElement","Item","autoFocus","Accordion","defaultActiveKey","findIndex","_ref4","existsBy","_ref5","group","title","Footer","Button","onClick","disabled","Filters","withT","_ref$isOpen","_ref$setIsOpen","setIsOpen","identity","_ref$columns","_ref$onChange","_ref$buttonProps","buttonProps","_ref$paneProps","paneProps","_ref$isSearchable","_ref$onSelectorsChang","noop","_ref$keyword","setValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Filters.js","sources":["../app/javascript/src/components/Pane/hooks/useFilters.js","../app/javascript/src/components/Pane/index.jsx","../node_modules/rollup-plugin-styles/dist/runtime/inject-css.js","../app/javascript/src/components/Filters.jsx"],"sourcesContent":["import { useRef, useEffect, useTransition } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\nimport { pluck, isNil, concat, isEmpty, append, mergeRight } from \"ramda\";\nimport { useHistory, useLocation } from \"react-router-dom\";\n\nimport {\n buildDefaultFilters,\n buildFiltersFromSearchParams,\n buildFiltersPayload,\n buildSelectorsFromURL,\n buildUrlFromFilters,\n compareFilters,\n getSearchTermFromUrl,\n getSnakeCasedQueryParams,\n isKeywordFilterPresent,\n} from \"../../utils\";\n\nconst useFilters = ({\n onFiltersChange,\n columns,\n keywordFilter,\n onSelectorsChange,\n}) => {\n const [_, startTransition] = useTransition();\n\n const initialRender = useRef(true);\n const prevFilters = useRef([]);\n const location = useLocation();\n let filters = buildFiltersFromSearchParams(columns, false);\n const history = useHistory();\n const defaultValuesOfColumns = JSON.stringify(pluck(\"defaultValue\", columns));\n\n const handlePrecenseOfDefaultFilters = defaultFilters => {\n const params = buildUrlFromFilters({\n columns,\n filters:\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? [...defaultFilters, keywordFilter]\n : defaultFilters,\n });\n\n history.replace({ search: params });\n };\n\n const handleFiltersChange = filtersPayload => {\n startTransition(() => {\n onFiltersChange(\n buildFiltersPayload(\n filtersPayload.filter(filter => !isNil(filter.node))\n )\n );\n });\n };\n\n //This function sends the updated filters to host via callbacks.\n const sendUpdatedFilters = () => {\n if (compareFilters(append(keywordFilter, filters), prevFilters.current)) {\n return;\n }\n\n const newFilters = buildFiltersFromSearchParams(columns);\n const filtersPayload =\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? append(keywordFilter, newFilters)\n : newFilters;\n\n handleFiltersChange(filtersPayload);\n\n onSelectorsChange(buildSelectorsFromURL(columns));\n };\n\n const handleChangesInURL = () => {\n const defaultFilters = buildDefaultFilters(columns, filters);\n const searchParams = getSnakeCasedQueryParams();\n const keys = pluck(\"key\", append(keywordFilter, columns));\n if (\n keys.every(key => isNil(searchParams[key])) &&\n !isEmpty(defaultFilters)\n ) {\n history.replace({\n search: buildUrlFromFilters({\n columns,\n filters: concat(defaultFilters, filters),\n }),\n });\n filters = buildFiltersFromSearchParams(columns, false);\n }\n };\n\n useEffect(() => {\n if (initialRender.current) {\n initialRender.current = false;\n const keywordValue = getSearchTermFromUrl();\n const defaultFilters = buildDefaultFilters(columns, filters);\n isNotEmpty(defaultFilters) &&\n handlePrecenseOfDefaultFilters(defaultFilters);\n\n prevFilters.current = append(\n mergeRight(keywordFilter, { value: keywordValue }),\n filters\n );\n } else {\n handleChangesInURL();\n sendUpdatedFilters();\n prevFilters.current = append(keywordFilter, filters);\n }\n }, [location.search, defaultValuesOfColumns]);\n\n return filters;\n};\n\nexport default useFilters;\n","import { useMemo, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { existsBy, findBy, isNotEmpty, isPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildUrl } from \"neetocommons/utils\";\nimport Search from \"neetomolecules/Search\";\nimport { Accordion, Button, Typography, Pane as NeetoUIPane } from \"neetoui\";\nimport { isEmpty, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { SEARCH_TERM_KEY } from \"src/common/constants\";\n\nimport useFilters from \"./hooks/useFilters\";\nimport Item from \"./Item\";\n\nimport {\n buildFilteredColumns,\n buildUrlFromFilters,\n getColumnsWithStandardizedType,\n getSearchTermFromUrl,\n getSnakeCasedQueryParams,\n isKeywordFilterPresent,\n} from \"../utils\";\n\nconst Pane = ({\n isOpen,\n onClose,\n columns,\n onChange,\n isSearchable,\n keyword,\n onSelectorsChange,\n childrenKeys = [],\n children,\n className,\n ...otherProps\n}) => {\n const searchParams = useQueryParams({ toCamelCase: false });\n const [searchTerm, setSearchTerm] = useState(\"\");\n const history = useHistory();\n const { t } = useTranslation();\n\n columns = useMemo(() => getColumnsWithStandardizedType(columns), [columns]);\n\n const { groupedColumns = [], ungroupedColumns = [] } = buildFilteredColumns({\n searchTerm,\n columns,\n });\n\n const keywordFilter = {\n type: \"text\",\n rule: \"contains\",\n label: t(\"neetoFilters.common.searchTerm\"),\n ...keyword,\n key: SEARCH_TERM_KEY,\n value: searchParams[SEARCH_TERM_KEY] || \"\",\n };\n\n const filters = useFilters({\n onFiltersChange: onChange,\n columns,\n keywordFilter,\n onSelectorsChange,\n });\n\n const handleChange = (newFilters, isClearAll = false) => {\n const params = buildUrlFromFilters({\n columns,\n filters:\n isKeywordFilterPresent(keywordFilter) &&\n isNotEmpty(getSearchTermFromUrl())\n ? [...newFilters, keywordFilter]\n : newFilters,\n ...(isClearAll && { isClearAll: true, childrenKeys }),\n });\n\n history.push({ search: params });\n };\n\n const handleClearAll = () => {\n const params = isKeywordFilterPresent(keywordFilter)\n ? omit([SEARCH_TERM_KEY], getSnakeCasedQueryParams())\n : getSnakeCasedQueryParams();\n const pathname = window.location.pathname;\n history.push(buildUrl(pathname, params));\n handleChange([], true);\n };\n\n const handleClearTermAndClose = () => {\n setSearchTerm(\"\");\n onClose();\n };\n\n const handleClose = () => {\n columns.forEach(({ key }) => {\n const filter = findBy({ key }, filters);\n if (filter?.value === \"\") delete searchParams[key];\n });\n handleClearTermAndClose();\n };\n\n const isClearFiltersDisabled =\n !filters.some(\n ({ value, defaultValue }) => isPresent(value) && value !== defaultValue\n ) && !childrenKeys.some(key => searchParams[key]);\n\n return (\n <NeetoUIPane\n {...{ isOpen }}\n backdropClassName=\"neeto-filters-pane-backdrop\"\n className={classnames(\"neeto-filters-pane-filter\", {\n [className]: className,\n })}\n onClose={handleClose}\n {...otherProps}\n >\n <NeetoUIPane.Header data-cy=\"neeto-filters-pane-header\">\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoFilters.common.filters\")}\n </Typography>\n </NeetoUIPane.Header>\n <NeetoUIPane.Body className=\"neeto-filters-pane-filter__body py-2\">\n {isSearchable && (\n <Search\n data-cy=\"neeto-filters-column-search\"\n placeholder={t(\"neetoFilters.messages.searchResources\", {\n resources: t(\"neetoFilters.common.filters\"),\n })}\n onSearch={value => setSearchTerm(value)}\n />\n )}\n {ungroupedColumns.map(column => (\n <Item\n {...{ column, filters }}\n autoFocus={column.key === isOpen}\n key={column.key}\n onChange={handleChange}\n onClose={handleClearTermAndClose}\n />\n ))}\n {isPresent(groupedColumns) && (\n <Accordion\n defaultActiveKey={groupedColumns.findIndex(({ columns }) =>\n existsBy({ key: isOpen }, columns)\n )}\n >\n {groupedColumns.map(({ group, columns }) => (\n <Accordion.Item\n className=\"accordion_item\"\n key={group}\n title={group}\n >\n {columns.map(column => (\n <Item\n {...{ column, filters }}\n autoFocus={column.key === isOpen}\n key={column.key}\n onChange={handleChange}\n onClose={handleClearTermAndClose}\n />\n ))}\n </Accordion.Item>\n ))}\n </Accordion>\n )}\n {isEmpty(ungroupedColumns) && isEmpty(groupedColumns) && (\n <Typography style=\"body2\">\n {t(\"neetoFilters.messages.noResourcesFound\", {\n resources: t(\"neetoFilters.common.columns\"),\n })}\n </Typography>\n )}\n {children}\n </NeetoUIPane.Body>\n <NeetoUIPane.Footer className=\"gap-x-2\">\n <Button\n data-cy=\"neeto-filters-done-btn\"\n label={t(\"neetoFilters.common.done\")}\n onClick={handleClearTermAndClose}\n />\n <Button\n data-cy=\"neeto-filters-clear-btn\"\n disabled={isClearFiltersDisabled}\n label={t(\"neetoFilters.common.clearFilters\")}\n style=\"text\"\n onClick={handleClearAll}\n />\n </NeetoUIPane.Footer>\n </NeetoUIPane>\n );\n};\n\nexport default Pane;\n","var e=[],t=[];function n(n,r){if(n&&\"undefined\"!=typeof document){var a,s=!0===r.prepend?\"prepend\":\"append\",d=!0===r.singleTag,i=\"string\"==typeof r.container?document.querySelector(r.container):document.getElementsByTagName(\"head\")[0];if(d){var u=e.indexOf(i);-1===u&&(u=e.push(i)-1,t[u]={}),a=t[u]&&t[u][s]?t[u][s]:t[u][s]=c()}else a=c();65279===n.charCodeAt(0)&&(n=n.substring(1)),a.styleSheet?a.styleSheet.cssText+=n:a.appendChild(document.createTextNode(n))}function c(){var e=document.createElement(\"style\");if(e.setAttribute(\"type\",\"text/css\"),r.attributes)for(var t=Object.keys(r.attributes),n=0;n<t.length;n++)e.setAttribute(t[n],r.attributes[t[n]]);var a=\"prepend\"===s?\"afterbegin\":\"beforeend\";return i.insertAdjacentElement(a,e),e}}export{n as default};\n","import classnames from \"classnames\";\nimport { noop } from \"neetocist\";\nimport { withT } from \"neetocommons/react-utils\";\nimport { Button } from \"neetoui\";\nimport { identity } from \"ramda\";\n\nimport Pane from \"./Pane\";\n\nimport \"../stylesheets/index.scss\";\n\nconst Filters = withT(\n ({\n t,\n isOpen = false,\n setIsOpen = identity,\n columns = [],\n onChange = identity,\n buttonProps = {},\n paneProps = {},\n isSearchable = false,\n className,\n onSelectorsChange = noop,\n keyword = { node: \"\", value: \"\", setValue: noop },\n childrenKeys,\n children,\n }) => (\n <span className={classnames({ [className]: className })}>\n <Button\n data-cy=\"neeto-filters-toggle-btn\"\n label={t(\"neetoFilters.common.filter\")}\n style=\"secondary\"\n onClick={() => setIsOpen(true)}\n {...buttonProps}\n />\n <Pane\n onClose={() => setIsOpen(false)}\n {...{\n childrenKeys,\n columns,\n isOpen,\n isSearchable,\n keyword,\n onChange,\n onSelectorsChange,\n ...paneProps,\n }}\n >\n {children}\n </Pane>\n </span>\n )\n);\n\nexport default Filters;\n"],"names":["useFilters","_ref","onFiltersChange","columns","keywordFilter","onSelectorsChange","_useTransition","useTransition","_useTransition2","_slicedToArray","_","startTransition","initialRender","useRef","prevFilters","location","useLocation","filters","buildFiltersFromSearchParams","history","useHistory","defaultValuesOfColumns","JSON","stringify","pluck","handlePrecenseOfDefaultFilters","defaultFilters","params","buildUrlFromFilters","isKeywordFilterPresent","isNotEmpty","getSearchTermFromUrl","concat","_toConsumableArray","replace","search","handleFiltersChange","filtersPayload","buildFiltersPayload","filter","isNil","node","sendUpdatedFilters","compareFilters","append","current","newFilters","buildSelectorsFromURL","handleChangesInURL","buildDefaultFilters","searchParams","getSnakeCasedQueryParams","keys","every","key","isEmpty","useEffect","keywordValue","mergeRight","value","Pane","isOpen","onClose","onChange","isSearchable","keyword","_ref$childrenKeys","childrenKeys","children","className","otherProps","_objectWithoutProperties","_excluded","useQueryParams","toCamelCase","_useState","useState","_useState2","searchTerm","setSearchTerm","_useTranslation","useTranslation","t","useMemo","getColumnsWithStandardizedType","_buildFilteredColumns","buildFilteredColumns","_buildFilteredColumns2","groupedColumns","_buildFilteredColumns3","ungroupedColumns","_objectSpread","type","rule","label","SEARCH_TERM_KEY","handleChange","isClearAll","arguments","length","undefined","push","handleClearAll","omit","pathname","window","buildUrl","handleClearTermAndClose","handleClose","forEach","_ref2","findBy","isClearFiltersDisabled","some","_ref3","defaultValue","isPresent","_jsxs","NeetoUIPane","backdropClassName","classnames","_defineProperty","_jsx","Header","Typography","style","weight","Body","Search","placeholder","resources","onSearch","map","column","_createElement","Item","autoFocus","Accordion","defaultActiveKey","findIndex","_ref4","existsBy","_ref5","group","title","Footer","Button","onClick","disabled","Filters","withT","_ref$isOpen","_ref$setIsOpen","setIsOpen","identity","_ref$columns","_ref$onChange","_ref$buttonProps","buttonProps","_ref$paneProps","paneProps","_ref$isSearchable","_ref$onSelectorsChang","noop","_ref$keyword","setValue"],"mappings":"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","x_google_ignoreList":[2]}
|
package/dist/Segments.js
CHANGED
|
@@ -4,14 +4,14 @@ import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
|
|
|
4
4
|
import { useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
5
5
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
6
6
|
import { useTranslation, Trans } from 'react-i18next';
|
|
7
|
-
import { S as SegmentForm } from './index-
|
|
7
|
+
import { S as SegmentForm } from './index-9XJ2QBWT.js';
|
|
8
8
|
import { t } from 'i18next';
|
|
9
9
|
import { getQueryParams, showThumbsUpToastr } from '@bigbinary/neeto-commons-frontend/utils';
|
|
10
10
|
import Alert from '@bigbinary/neetoui/Alert';
|
|
11
11
|
import { equals, isEmpty, pluck } from 'ramda';
|
|
12
12
|
import { useHistory } from 'react-router-dom';
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
13
|
+
import { e as buildUrlFromFilters, b as buildFiltersFromURL, g as buildFiltersFromSearchParams, d as buildUrlFromSegment, o as buildSegmentsPayload } from './utils-CPBlIPqx.js';
|
|
14
|
+
import { a as useDestroySegment, u as useFetchSegments, b as useUpdateSegment } from './useSegmentsApi-DNEfAQG5.js';
|
|
15
15
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
16
16
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
17
17
|
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
@@ -30,9 +30,9 @@ import '@bigbinary/neetoui/formik/ActionBlock';
|
|
|
30
30
|
import '@bigbinary/neetoui/formik/Form';
|
|
31
31
|
import '@bigbinary/neetoui/formik/Input';
|
|
32
32
|
import 'react-router-dom/cjs/react-router-dom.min';
|
|
33
|
-
import './index-
|
|
33
|
+
import './index-DL2dUxuB.js';
|
|
34
34
|
import '@bigbinary/neetoui/Select';
|
|
35
|
-
import './constants-
|
|
35
|
+
import './constants-CEZMHAxx.js';
|
|
36
36
|
import '@bigbinary/neetoui/DatePicker';
|
|
37
37
|
import '@bigbinary/neetoui/TimePicker';
|
|
38
38
|
import '@bigbinary/neetoui/Input';
|
package/dist/cjs/Bar.js
CHANGED
|
@@ -8,19 +8,19 @@ var i18next = require('i18next');
|
|
|
8
8
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
9
9
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
10
10
|
var ramda = require('ramda');
|
|
11
|
-
var index$1 = require('../index-
|
|
12
|
-
var useSegmentsApi = require('../useSegmentsApi-
|
|
11
|
+
var index$1 = require('../index-B4GTy1mo.js');
|
|
12
|
+
var useSegmentsApi = require('../useSegmentsApi-D4rKaXUX.js');
|
|
13
13
|
var utils$1 = require('@bigbinary/neeto-commons-frontend/utils');
|
|
14
14
|
var Button = require('@bigbinary/neetoui/Button');
|
|
15
15
|
var reactI18next = require('react-i18next');
|
|
16
16
|
var reactRouterDom = require('react-router-dom');
|
|
17
|
-
var constants = require('../constants-
|
|
17
|
+
var constants = require('../constants-S_zU7eDN.js');
|
|
18
18
|
var useHotkeys = require('@bigbinary/neeto-hotkeys');
|
|
19
19
|
var Close = require('@bigbinary/neeto-icons/Close');
|
|
20
20
|
var Tooltip = require('@bigbinary/neetoui/Tooltip');
|
|
21
21
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
22
|
-
var index = require('../index-
|
|
23
|
-
var utils = require('../utils-
|
|
22
|
+
var index = require('../index-Cnchjnt1.js');
|
|
23
|
+
var utils = require('../utils-PyL0UYCZ.js');
|
|
24
24
|
var jsxRuntime = require('react/jsx-runtime');
|
|
25
25
|
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
26
26
|
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
@@ -42,19 +42,6 @@ require('@bigbinary/neetoui/Input');
|
|
|
42
42
|
require('@bigbinary/neetoui/TreeSelect');
|
|
43
43
|
require('@bigbinary/neeto-icons/Help');
|
|
44
44
|
|
|
45
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
46
|
-
|
|
47
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
48
|
-
var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
|
|
49
|
-
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
50
|
-
var useHotkeys__default = /*#__PURE__*/_interopDefaultLegacy(useHotkeys);
|
|
51
|
-
var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
|
|
52
|
-
var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
|
|
53
|
-
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
54
|
-
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
55
|
-
var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
|
|
56
|
-
var Dropdown__default = /*#__PURE__*/_interopDefaultLegacy(Dropdown);
|
|
57
|
-
|
|
58
45
|
var DEFAULT_SEGMENTS_CACHE = {
|
|
59
46
|
segments: []
|
|
60
47
|
};
|
|
@@ -185,17 +172,17 @@ var Block = function Block(_ref) {
|
|
|
185
172
|
var blockLength = label.length + ruleContent.length + filterValue.length;
|
|
186
173
|
var toolTipDisabled = blockLength <= 50;
|
|
187
174
|
var blockContent = !toolTipDisabled ? "".concat(filterValue.slice(0, 50 - blockLength), "...") : filterValue;
|
|
188
|
-
var deleteBlockHotKeyRef =
|
|
175
|
+
var deleteBlockHotKeyRef = useHotkeys(SHORTCUTS.deleteBlock.sequence, function () {
|
|
189
176
|
return handleDelete(key);
|
|
190
177
|
}, {
|
|
191
178
|
mode: "scoped"
|
|
192
179
|
});
|
|
193
|
-
var openFilterPaneHotKeyRef =
|
|
180
|
+
var openFilterPaneHotKeyRef = useHotkeys(SHORTCUTS.openFilterPane.sequence, function () {
|
|
194
181
|
return setIsPaneOpen(key);
|
|
195
182
|
}, {
|
|
196
183
|
mode: "scoped"
|
|
197
184
|
});
|
|
198
|
-
return /*#__PURE__*/jsxRuntime.jsx(
|
|
185
|
+
return /*#__PURE__*/jsxRuntime.jsx(Tooltip, {
|
|
199
186
|
content: filterValue,
|
|
200
187
|
disabled: toolTipDisabled,
|
|
201
188
|
position: "bottom",
|
|
@@ -211,19 +198,19 @@ var Block = function Block(_ref) {
|
|
|
211
198
|
onClick: function onClick() {
|
|
212
199
|
return setIsPaneOpen(key);
|
|
213
200
|
},
|
|
214
|
-
children: [/*#__PURE__*/jsxRuntime.jsxs(
|
|
201
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(Typography, {
|
|
215
202
|
style: "body2",
|
|
216
203
|
children: [label, ":"]
|
|
217
|
-
}), /*#__PURE__*/jsxRuntime.jsx(
|
|
204
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
218
205
|
className: "neeto-ui-text-gray-600",
|
|
219
206
|
style: "body2",
|
|
220
207
|
children: ruleContent
|
|
221
|
-
}), !index.isRuleEmpty(rule) && /*#__PURE__*/jsxRuntime.jsx(
|
|
208
|
+
}), !index.isRuleEmpty(rule) && /*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
222
209
|
style: "body2",
|
|
223
210
|
children: blockContent
|
|
224
211
|
}), !defaultValue && /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
225
212
|
className: "neeto-filters-bar__block-close",
|
|
226
|
-
children: /*#__PURE__*/jsxRuntime.jsx(
|
|
213
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Close, {
|
|
227
214
|
"data-cy": "neeto-filters-".concat(neetoCist.hyphenate(key), "-block-close-btn"),
|
|
228
215
|
size: 16,
|
|
229
216
|
strokeWidth: 2,
|
|
@@ -241,12 +228,12 @@ var ChildBlock = function ChildBlock(_ref) {
|
|
|
241
228
|
var childKey = _ref.childKey,
|
|
242
229
|
setIsPaneOpen = _ref.setIsPaneOpen,
|
|
243
230
|
handleDelete = _ref.handleDelete;
|
|
244
|
-
var deleteBlockHotKeyRef =
|
|
231
|
+
var deleteBlockHotKeyRef = useHotkeys(SHORTCUTS.deleteBlock.sequence, function () {
|
|
245
232
|
return handleDelete(childKey);
|
|
246
233
|
}, {
|
|
247
234
|
mode: "scoped"
|
|
248
235
|
});
|
|
249
|
-
var openFilterPaneHotKeyRef =
|
|
236
|
+
var openFilterPaneHotKeyRef = useHotkeys(SHORTCUTS.openFilterPane.sequence, function () {
|
|
250
237
|
return setIsPaneOpen(childKey);
|
|
251
238
|
}, {
|
|
252
239
|
mode: "scoped"
|
|
@@ -262,13 +249,13 @@ var ChildBlock = function ChildBlock(_ref) {
|
|
|
262
249
|
onClick: function onClick() {
|
|
263
250
|
return setIsPaneOpen(childKey);
|
|
264
251
|
},
|
|
265
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(
|
|
252
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
266
253
|
style: "body2",
|
|
267
254
|
weight: "medium",
|
|
268
255
|
children: childKey
|
|
269
256
|
}), /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
270
257
|
className: "neeto-filters-bar__block-close",
|
|
271
|
-
children: /*#__PURE__*/jsxRuntime.jsx(
|
|
258
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Close, {
|
|
272
259
|
"data-cy": "neeto-filters-".concat(neetoCist.hyphenate(childKey), "-block-close-btn"),
|
|
273
260
|
size: 16,
|
|
274
261
|
strokeWidth: 2,
|
|
@@ -351,7 +338,7 @@ var FilterBar = function FilterBar(_ref) {
|
|
|
351
338
|
}, childKey);
|
|
352
339
|
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
353
340
|
className: "flex items-center gap-x-2",
|
|
354
|
-
children: [neetoCist.isPresent(entity) && !hasOnlyKeywordFilter(filters) && /*#__PURE__*/jsxRuntime.jsx(
|
|
341
|
+
children: [neetoCist.isPresent(entity) && !hasOnlyKeywordFilter(filters) && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
355
342
|
"data-cy": "save-segment-button",
|
|
356
343
|
label: t("neetoFilters.segments.saveAsNewSegment"),
|
|
357
344
|
style: "secondary",
|
|
@@ -361,7 +348,7 @@ var FilterBar = function FilterBar(_ref) {
|
|
|
361
348
|
action: SEGMENT_ACTIONS.CREATE
|
|
362
349
|
});
|
|
363
350
|
}
|
|
364
|
-
}), !hideClearButton && /*#__PURE__*/jsxRuntime.jsx(
|
|
351
|
+
}), !hideClearButton && /*#__PURE__*/jsxRuntime.jsx(Button, {
|
|
365
352
|
"data-cy": "neeto-filters-bar-clear-btn",
|
|
366
353
|
label: t("neetoFilters.common.clearFilters"),
|
|
367
354
|
style: "text",
|
|
@@ -372,7 +359,7 @@ var FilterBar = function FilterBar(_ref) {
|
|
|
372
359
|
};
|
|
373
360
|
|
|
374
361
|
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
375
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {
|
|
362
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
376
363
|
var useSegment = function useSegment(_ref) {
|
|
377
364
|
var entity = _ref.entity,
|
|
378
365
|
keyword = _ref.keyword,
|
|
@@ -388,7 +375,7 @@ var useSegment = function useSegment(_ref) {
|
|
|
388
375
|
var _useState = react.useState({
|
|
389
376
|
action: undefined
|
|
390
377
|
}),
|
|
391
|
-
_useState2 =
|
|
378
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
392
379
|
isSavePaneOpen = _useState2[0],
|
|
393
380
|
setIsSavePaneOpen = _useState2[1];
|
|
394
381
|
var _useCreateSegment = useSegmentsApi.useCreateSegment(),
|
|
@@ -411,14 +398,14 @@ var useSegment = function useSegment(_ref) {
|
|
|
411
398
|
key: constants.SEARCH_TERM_KEY,
|
|
412
399
|
value: keywordValue
|
|
413
400
|
});
|
|
414
|
-
var filters = utils.buildFiltersFromSearchParams(utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(keywordValue) ? [keywordFilter].concat(
|
|
401
|
+
var filters = utils.buildFiltersFromSearchParams(utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(keywordValue) ? [keywordFilter].concat(_toConsumableArray(columns)) : columns);
|
|
415
402
|
var nonHiddenFilters = neetoCist.removeBy({
|
|
416
403
|
hidden: true
|
|
417
404
|
}, filters);
|
|
418
405
|
var handleApplyFilters = function handleApplyFilters(newFilters, isClearAll) {
|
|
419
406
|
var params = utils.buildUrlFromFilters(_objectSpread({
|
|
420
407
|
columns: columns,
|
|
421
|
-
filters: utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(utils.getSearchTermFromUrl()) ? [].concat(
|
|
408
|
+
filters: utils.isKeywordFilterPresent(keywordFilter) && neetoCist.isNotEmpty(utils.getSearchTermFromUrl()) ? [].concat(_toConsumableArray(newFilters), [keywordFilter]) : newFilters
|
|
422
409
|
}, isClearAll && {
|
|
423
410
|
isClearAll: true,
|
|
424
411
|
childrenKeys: childrenKeys
|
|
@@ -511,8 +498,8 @@ var useSegment = function useSegment(_ref) {
|
|
|
511
498
|
};
|
|
512
499
|
};
|
|
513
500
|
|
|
514
|
-
var Menu =
|
|
515
|
-
MenuItem =
|
|
501
|
+
var Menu = Dropdown.Menu,
|
|
502
|
+
MenuItem = Dropdown.MenuItem;
|
|
516
503
|
var SegmentBar = function SegmentBar(_ref) {
|
|
517
504
|
var entity = _ref.entity,
|
|
518
505
|
filters = _ref.filters,
|
|
@@ -548,13 +535,13 @@ var SegmentBar = function SegmentBar(_ref) {
|
|
|
548
535
|
};
|
|
549
536
|
var changedFilters = deepCompare(segment.filters[0].conditions, filters);
|
|
550
537
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
551
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(
|
|
538
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
|
|
552
539
|
className: "neeto-ui-text-gray-600 mr-4 px-2",
|
|
553
540
|
"data-cy": "neeto-filters-segment-name",
|
|
554
541
|
style: "h4",
|
|
555
542
|
children: segment.name
|
|
556
543
|
}), neetoCist.isNotEmpty(changedFilters) && /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
557
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(
|
|
544
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Dropdown, {
|
|
558
545
|
buttonProps: {
|
|
559
546
|
className: "mr-2"
|
|
560
547
|
},
|
|
@@ -641,7 +628,7 @@ var Bar = function Bar(_ref) {
|
|
|
641
628
|
if (ramda.isEmpty(nonHiddenFilters) && !childrenFiltersApplied) return null;
|
|
642
629
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
643
630
|
children: [/*#__PURE__*/jsxRuntime.jsx("div", {
|
|
644
|
-
className:
|
|
631
|
+
className: classnames("neeto-filters-bar", _defineProperty({}, className, className)),
|
|
645
632
|
children: /*#__PURE__*/jsxRuntime.jsx(BarComponent, {
|
|
646
633
|
childrenFiltersApplied: childrenFiltersApplied,
|
|
647
634
|
childrenKeys: childrenKeys,
|