@salutejs/plasma-new-hope 0.340.0-canary.2314.19163733637.0 → 0.340.0-canary.2314.19170036078.0

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.
Files changed (48) hide show
  1. package/cjs/components/Combobox/ComboboxNew/Combobox.js +16 -14
  2. package/cjs/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  3. package/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js +43 -17
  4. package/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js.map +1 -1
  5. package/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +4 -3
  6. package/cjs/components/Combobox/ComboboxNew/utils/filterItems.js.map +1 -1
  7. package/cjs/components/DatePicker/RangeDate/RangeDate.js +24 -4
  8. package/cjs/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  9. package/emotion/cjs/components/Combobox/ComboboxNew/Combobox.js +16 -13
  10. package/emotion/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js +39 -17
  11. package/emotion/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +14 -6
  12. package/emotion/cjs/components/Combobox/ComboboxNew/utils/index.js +3 -0
  13. package/emotion/cjs/components/DatePicker/RangeDate/RangeDate.js +21 -4
  14. package/emotion/cjs/examples/components/Combobox/Combobox.js +0 -15
  15. package/emotion/es/components/Combobox/ComboboxNew/Combobox.js +17 -14
  16. package/emotion/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js +39 -17
  17. package/emotion/es/components/Combobox/ComboboxNew/utils/filterItems.js +3 -3
  18. package/emotion/es/components/Combobox/ComboboxNew/utils/index.js +1 -1
  19. package/emotion/es/components/DatePicker/RangeDate/RangeDate.js +21 -4
  20. package/emotion/es/examples/components/Combobox/Combobox.js +7 -0
  21. package/es/components/Combobox/ComboboxNew/Combobox.js +17 -15
  22. package/es/components/Combobox/ComboboxNew/Combobox.js.map +1 -1
  23. package/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js +43 -17
  24. package/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js.map +1 -1
  25. package/es/components/Combobox/ComboboxNew/utils/filterItems.js +4 -4
  26. package/es/components/Combobox/ComboboxNew/utils/filterItems.js.map +1 -1
  27. package/es/components/DatePicker/RangeDate/RangeDate.js +24 -4
  28. package/es/components/DatePicker/RangeDate/RangeDate.js.map +1 -1
  29. package/package.json +2 -2
  30. package/styled-components/cjs/components/Combobox/ComboboxNew/Combobox.js +16 -13
  31. package/styled-components/cjs/components/Combobox/ComboboxNew/reducers/treePathReducer.js +39 -17
  32. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/filterItems.js +14 -6
  33. package/styled-components/cjs/components/Combobox/ComboboxNew/utils/index.js +3 -0
  34. package/styled-components/cjs/components/DatePicker/RangeDate/RangeDate.js +21 -4
  35. package/styled-components/cjs/examples/components/Combobox/Combobox.js +0 -15
  36. package/styled-components/es/components/Combobox/ComboboxNew/Combobox.js +17 -14
  37. package/styled-components/es/components/Combobox/ComboboxNew/reducers/treePathReducer.js +39 -17
  38. package/styled-components/es/components/Combobox/ComboboxNew/utils/filterItems.js +3 -3
  39. package/styled-components/es/components/Combobox/ComboboxNew/utils/index.js +1 -1
  40. package/styled-components/es/components/DatePicker/RangeDate/RangeDate.js +21 -4
  41. package/types/components/Combobox/ComboboxNew/Combobox.d.ts.map +1 -1
  42. package/types/components/Combobox/ComboboxNew/reducers/treePathReducer.d.ts +6 -2
  43. package/types/components/Combobox/ComboboxNew/reducers/treePathReducer.d.ts.map +1 -1
  44. package/types/components/Combobox/ComboboxNew/utils/filterItems.d.ts +1 -0
  45. package/types/components/Combobox/ComboboxNew/utils/filterItems.d.ts.map +1 -1
  46. package/types/components/Combobox/ComboboxNew/utils/index.d.ts +1 -1
  47. package/types/components/Combobox/ComboboxNew/utils/index.d.ts.map +1 -1
  48. package/types/components/DatePicker/RangeDate/RangeDate.d.ts.map +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"treePathReducer.js","sources":["../../../../../src/components/Combobox/ComboboxNew/reducers/treePathReducer.ts"],"sourcesContent":["import { deepCopy } from 'src/utils';\n\nimport { ItemOption } from '../Combobox.types';\n\ntype NestedTreePath = {\n [key: string]: {} | NestedTreePath;\n};\n\nexport type TreePathState = NestedTreePath;\n\nexport type TreePathAction =\n | { type: 'reset' }\n | { type: 'toggled_level'; value: string[] }\n | { type: 'expand_all'; value: ItemOption[] }\n | { type: 'open_level'; value: string[] }\n | { type: 'close_level'; value: string[] };\n\n// Утилита для поиска ключа в объекте по пути.\nexport const keyExists = (obj: NestedTreePath, path: string[]) => {\n if (typeof obj !== 'object' || obj === null || !Array.isArray(path)) {\n return false;\n }\n\n let current = obj;\n\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n\n if (current === null || typeof current !== 'object' || !(key in current)) {\n return false;\n }\n\n current = current[key];\n }\n\n return true;\n};\n\nfunction createObjectAtPath(obj: NestedTreePath, path: string[]) {\n if (typeof obj !== 'object' || obj === null) {\n return;\n }\n\n let current = obj;\n\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n\n if (i === path.length - 1) {\n current[key] = {};\n break;\n }\n\n if (current[key] === undefined || current[key] === null) {\n current[key] = {};\n }\n\n current = current[key];\n }\n\n return obj;\n}\n\nfunction removeObjectAtPath(obj: NestedTreePath, path: string[]) {\n if (path.length === 0) {\n return obj;\n }\n\n let current = obj;\n\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n\n if (current === null || typeof current !== 'object' || !(key in current)) {\n return obj;\n }\n\n if (i === path.length - 1) {\n delete current[key];\n break;\n }\n\n current = current[key];\n }\n\n return obj;\n}\n\n// Утилита, которая получает на вход список отфильтрованных элементов\n// и возвращает объект путей раскрытых элементов дерева.\nfunction generateNestedTreePathFromFilteredItems(items: ItemOption[]): TreePathState {\n const result = {};\n\n const buildTree = (currentItems: ItemOption[], currentLevel: TreePathState) => {\n if (!currentItems || !Array.isArray(currentItems)) return;\n\n for (const item of currentItems) {\n if (item?.value && item?.items) {\n // Создаем новый уровень для текущего значения\n currentLevel[item?.value] = {};\n\n // Рекурсивно обрабатываем дочерние элементы\n if (item?.items && item?.items.length > 0) {\n buildTree(item?.items, currentLevel[item?.value]);\n }\n }\n }\n };\n\n buildTree(items, result);\n\n return result;\n}\n\nexport function treePathReducer(state: TreePathState, action: TreePathAction): TreePathState {\n switch (action.type) {\n case 'reset': {\n return {};\n }\n\n case 'toggled_level': {\n const stateCopy = deepCopy(state);\n\n const isTargetLevelOpened = keyExists(stateCopy, action.value);\n\n if (isTargetLevelOpened) {\n // нужно закрыть текущий уровень\n removeObjectAtPath(stateCopy, action.value);\n } else {\n // нужно открыть требуемый уровень\n createObjectAtPath(stateCopy, action.value);\n }\n\n return stateCopy;\n }\n\n case 'expand_all': {\n const filteredItem = action.value;\n\n return generateNestedTreePathFromFilteredItems(filteredItem);\n }\n\n case 'open_level': {\n const stateCopy = deepCopy(state);\n\n createObjectAtPath(stateCopy, action.value);\n\n return stateCopy;\n }\n\n case 'close_level': {\n const stateCopy = deepCopy(state);\n\n removeObjectAtPath(stateCopy, action.value);\n\n return stateCopy;\n }\n\n default: {\n return state;\n }\n }\n}\n"],"names":["keyExists","obj","path","_typeof","Array","isArray","current","i","length","key","createObjectAtPath","undefined","removeObjectAtPath","generateNestedTreePathFromFilteredItems","items","result","buildTree","currentItems","currentLevel","_iterator","_createForOfIteratorHelper","_step","s","n","done","item","value","err","e","f","treePathReducer","state","action","type","stateCopy","deepCopy","isTargetLevelOpened","filteredItem"],"mappings":"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"}
1
+ {"version":3,"file":"treePathReducer.js","sources":["../../../../../src/components/Combobox/ComboboxNew/reducers/treePathReducer.ts"],"sourcesContent":["import { deepCopy } from 'src/utils';\n\nimport { ItemOption } from '../Combobox.types';\n\ntype NestedTreePath = {\n [key: string]: {} | NestedTreePath;\n};\n\nexport type TreePathState = NestedTreePath;\n\nexport type TreePathAction =\n | { type: 'reset' }\n | { type: 'toggled_level'; value: string[] }\n | {\n type: 'expand_by_key';\n value: {\n filteredItems: ItemOption[];\n filterCb: (item: ItemOption, textValue: string) => boolean;\n textValue: string;\n };\n }\n | { type: 'open_level'; value: string[] }\n | { type: 'close_level'; value: string[] };\n\n// Утилита для поиска ключа в объекте по пути.\nexport const keyExists = (obj: NestedTreePath, path: string[]) => {\n if (typeof obj !== 'object' || obj === null || !Array.isArray(path)) {\n return false;\n }\n\n let current = obj;\n\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n\n if (current === null || typeof current !== 'object' || !(key in current)) {\n return false;\n }\n\n current = current[key];\n }\n\n return true;\n};\n\nfunction createObjectAtPath(obj: NestedTreePath, path: string[]) {\n if (typeof obj !== 'object' || obj === null) {\n return;\n }\n\n let current = obj;\n\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n\n if (i === path.length - 1) {\n current[key] = {};\n break;\n }\n\n if (current[key] === undefined || current[key] === null) {\n current[key] = {};\n }\n\n current = current[key];\n }\n\n return obj;\n}\n\nfunction removeObjectAtPath(obj: NestedTreePath, path: string[]) {\n if (path.length === 0) {\n return obj;\n }\n\n let current = obj;\n\n for (let i = 0; i < path.length; i++) {\n const key = path[i];\n\n if (current === null || typeof current !== 'object' || !(key in current)) {\n return obj;\n }\n\n if (i === path.length - 1) {\n delete current[key];\n break;\n }\n\n current = current[key];\n }\n\n return obj;\n}\n\n/**\n * Утилита, которая получает на вход список отфильтрованных элементов и\n * callback, с помощью которого эти элементы были отфильтрованы.\n * Возвращает TreePathState, т.е. список раскрытых групп.\n * По умолчанию группа не раскрывается, если в ней не было найдено ни одного элемента.\n * Но т.к. поиск может осуществляться как по элементам, так и по группам,\n * то может возникнуть ситуация, когда будет найдена как группа с определенным названием,\n * так и элемент с таким же названием внутри нее, и в таком случае мы должны частично раскрыть группу,\n * вплоть то найденного элемента.\n * Если найдена только группа, без элементов внутри нее, то саму эту группу\n * раскрывать не нужно. Нужно раскрыть только родителя этой группы.\n */\nfunction generateNestedTreePathFromFilteredItems(\n filteredItems: ItemOption[],\n filterCb: (item: ItemOption, value: string) => boolean,\n textValue: string,\n): TreePathState {\n const result: TreePathState = {};\n\n function traverse(items: ItemOption[], currentPath: TreePathState): boolean {\n let hasFoundItems = false;\n\n for (const item of items) {\n const isFound = filterCb(item, textValue);\n\n if (item.items && item.items.length > 0) {\n // Обрабатываем детей\n const childPath: TreePathState = {};\n const foundInChildren = traverse(item.items, childPath);\n\n if (foundInChildren) {\n // Если в детях найдены элементы - добавляем путь\n currentPath[item.value] = childPath;\n hasFoundItems = true;\n }\n\n // Если сама группа найдена, но в детях ничего нет - НЕ добавляем путь\n // Просто отмечаем что что-то найдено на этом уровне\n if (isFound && !foundInChildren) {\n hasFoundItems = true;\n }\n } else if (isFound) {\n // Для конечного элемента не добавляем путь в currentPath,\n // но отмечаем что на этом уровне есть найденные элементы\n hasFoundItems = true;\n }\n }\n\n return hasFoundItems;\n }\n\n traverse(filteredItems, result);\n\n return result;\n}\n\nexport function treePathReducer(state: TreePathState, action: TreePathAction): TreePathState {\n switch (action.type) {\n case 'reset': {\n return {};\n }\n\n case 'toggled_level': {\n const stateCopy = deepCopy(state);\n\n const isTargetLevelOpened = keyExists(stateCopy, action.value);\n\n if (isTargetLevelOpened) {\n // нужно закрыть текущий уровень\n removeObjectAtPath(stateCopy, action.value);\n } else {\n // нужно открыть требуемый уровень\n createObjectAtPath(stateCopy, action.value);\n }\n\n return stateCopy;\n }\n\n case 'expand_by_key': {\n const { filteredItems, filterCb, textValue } = action.value;\n\n return generateNestedTreePathFromFilteredItems(filteredItems, filterCb, textValue);\n }\n\n case 'open_level': {\n const stateCopy = deepCopy(state);\n\n createObjectAtPath(stateCopy, action.value);\n\n return stateCopy;\n }\n\n case 'close_level': {\n const stateCopy = deepCopy(state);\n\n removeObjectAtPath(stateCopy, action.value);\n\n return stateCopy;\n }\n\n default: {\n return state;\n }\n }\n}\n"],"names":["keyExists","obj","path","_typeof","Array","isArray","current","i","length","key","createObjectAtPath","undefined","removeObjectAtPath","generateNestedTreePathFromFilteredItems","filteredItems","filterCb","textValue","result","traverse","items","currentPath","hasFoundItems","_iterator","_createForOfIteratorHelper","_step","s","n","done","item","value","isFound","childPath","foundInChildren","err","e","f","treePathReducer","state","action","type","stateCopy","deepCopy","isTargetLevelOpened","_action$value"],"mappings":";;;AAwBA;AACO,IAAMA,SAAS,GAAG,SAAZA,SAASA,CAAIC,GAAmB,EAAEC,IAAc,EAAK;AAC9D,EAAA,IAAIC,OAAA,CAAOF,GAAG,CAAK,KAAA,QAAQ,IAAIA,GAAG,KAAK,IAAI,IAAI,CAACG,KAAK,CAACC,OAAO,CAACH,IAAI,CAAC,EAAE;AACjE,IAAA,OAAO,KAAK,CAAA;AAChB,GAAA;EAEA,IAAII,OAAO,GAAGL,GAAG,CAAA;AAEjB,EAAA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;AAClC,IAAA,IAAME,IAAG,GAAGP,IAAI,CAACK,CAAC,CAAC,CAAA;AAEnB,IAAA,IAAID,OAAO,KAAK,IAAI,IAAIH,OAAA,CAAOG,OAAO,CAAK,KAAA,QAAQ,IAAI,EAAEG,IAAG,IAAIH,OAAO,CAAC,EAAE;AACtE,MAAA,OAAO,KAAK,CAAA;AAChB,KAAA;AAEAA,IAAAA,OAAO,GAAGA,OAAO,CAACG,IAAG,CAAC,CAAA;AAC1B,GAAA;AAEA,EAAA,OAAO,IAAI,CAAA;AACf,EAAC;AAED,SAASC,kBAAkBA,CAACT,GAAmB,EAAEC,IAAc,EAAE;EAC7D,IAAIC,OAAA,CAAOF,GAAG,CAAA,KAAK,QAAQ,IAAIA,GAAG,KAAK,IAAI,EAAE;AACzC,IAAA,OAAA;AACJ,GAAA;EAEA,IAAIK,OAAO,GAAGL,GAAG,CAAA;AAEjB,EAAA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;AAClC,IAAA,IAAME,KAAG,GAAGP,IAAI,CAACK,CAAC,CAAC,CAAA;AAEnB,IAAA,IAAIA,CAAC,KAAKL,IAAI,CAACM,MAAM,GAAG,CAAC,EAAE;AACvBF,MAAAA,OAAO,CAACG,KAAG,CAAC,GAAG,EAAE,CAAA;AACjB,MAAA,MAAA;AACJ,KAAA;AAEA,IAAA,IAAIH,OAAO,CAACG,KAAG,CAAC,KAAKE,SAAS,IAAIL,OAAO,CAACG,KAAG,CAAC,KAAK,IAAI,EAAE;AACrDH,MAAAA,OAAO,CAACG,KAAG,CAAC,GAAG,EAAE,CAAA;AACrB,KAAA;AAEAH,IAAAA,OAAO,GAAGA,OAAO,CAACG,KAAG,CAAC,CAAA;AAC1B,GAAA;AAEA,EAAA,OAAOR,GAAG,CAAA;AACd,CAAA;AAEA,SAASW,kBAAkBA,CAACX,GAAmB,EAAEC,IAAc,EAAE;AAC7D,EAAA,IAAIA,IAAI,CAACM,MAAM,KAAK,CAAC,EAAE;AACnB,IAAA,OAAOP,GAAG,CAAA;AACd,GAAA;EAEA,IAAIK,OAAO,GAAGL,GAAG,CAAA;AAEjB,EAAA,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,IAAI,CAACM,MAAM,EAAED,CAAC,EAAE,EAAE;AAClC,IAAA,IAAME,KAAG,GAAGP,IAAI,CAACK,CAAC,CAAC,CAAA;AAEnB,IAAA,IAAID,OAAO,KAAK,IAAI,IAAIH,OAAA,CAAOG,OAAO,CAAK,KAAA,QAAQ,IAAI,EAAEG,KAAG,IAAIH,OAAO,CAAC,EAAE;AACtE,MAAA,OAAOL,GAAG,CAAA;AACd,KAAA;AAEA,IAAA,IAAIM,CAAC,KAAKL,IAAI,CAACM,MAAM,GAAG,CAAC,EAAE;MACvB,OAAOF,OAAO,CAACG,KAAG,CAAC,CAAA;AACnB,MAAA,MAAA;AACJ,KAAA;AAEAH,IAAAA,OAAO,GAAGA,OAAO,CAACG,KAAG,CAAC,CAAA;AAC1B,GAAA;AAEA,EAAA,OAAOR,GAAG,CAAA;AACd,CAAA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASY,uCAAuCA,CAC5CC,aAA2B,EAC3BC,QAAsD,EACtDC,SAAiB,EACJ;EACb,IAAMC,MAAqB,GAAG,EAAE,CAAA;AAEhC,EAAA,SAASC,QAAQA,CAACC,KAAmB,EAAEC,WAA0B,EAAW;IACxE,IAAIC,aAAa,GAAG,KAAK,CAAA;AAAC,IAAA,IAAAC,SAAA,GAAAC,0BAAA,CAEPJ,KAAK,CAAA;MAAAK,KAAA,CAAA;AAAA,IAAA,IAAA;MAAxB,KAAAF,SAAA,CAAAG,CAAA,EAAAD,EAAAA,CAAAA,CAAAA,KAAA,GAAAF,SAAA,CAAAI,CAAA,EAAAC,EAAAA,IAAA,GAA0B;AAAA,QAAA,IAAfC,IAAI,GAAAJ,KAAA,CAAAK,KAAA,CAAA;AACX,QAAA,IAAMC,OAAO,GAAGf,QAAQ,CAACa,IAAI,EAAEZ,SAAS,CAAC,CAAA;QAEzC,IAAIY,IAAI,CAACT,KAAK,IAAIS,IAAI,CAACT,KAAK,CAACX,MAAM,GAAG,CAAC,EAAE;AACrC;UACA,IAAMuB,SAAwB,GAAG,EAAE,CAAA;UACnC,IAAMC,eAAe,GAAGd,QAAQ,CAACU,IAAI,CAACT,KAAK,EAAEY,SAAS,CAAC,CAAA;AAEvD,UAAA,IAAIC,eAAe,EAAE;AACjB;AACAZ,YAAAA,WAAW,CAACQ,IAAI,CAACC,KAAK,CAAC,GAAGE,SAAS,CAAA;AACnCV,YAAAA,aAAa,GAAG,IAAI,CAAA;AACxB,WAAA;;AAEA;AACA;AACA,UAAA,IAAIS,OAAO,IAAI,CAACE,eAAe,EAAE;AAC7BX,YAAAA,aAAa,GAAG,IAAI,CAAA;AACxB,WAAA;SACH,MAAM,IAAIS,OAAO,EAAE;AAChB;AACA;AACAT,UAAAA,aAAa,GAAG,IAAI,CAAA;AACxB,SAAA;AACJ,OAAA;AAAC,KAAA,CAAA,OAAAY,GAAA,EAAA;MAAAX,SAAA,CAAAY,CAAA,CAAAD,GAAA,CAAA,CAAA;AAAA,KAAA,SAAA;AAAAX,MAAAA,SAAA,CAAAa,CAAA,EAAA,CAAA;AAAA,KAAA;AAED,IAAA,OAAOd,aAAa,CAAA;AACxB,GAAA;AAEAH,EAAAA,QAAQ,CAACJ,aAAa,EAAEG,MAAM,CAAC,CAAA;AAE/B,EAAA,OAAOA,MAAM,CAAA;AACjB,CAAA;AAEO,SAASmB,eAAeA,CAACC,KAAoB,EAAEC,MAAsB,EAAiB;EACzF,QAAQA,MAAM,CAACC,IAAI;AACf,IAAA,KAAK,OAAO;AAAE,MAAA;AACV,QAAA,OAAO,EAAE,CAAA;AACb,OAAA;AAEA,IAAA,KAAK,eAAe;AAAE,MAAA;AAClB,QAAA,IAAMC,SAAS,GAAGC,QAAQ,CAACJ,KAAK,CAAC,CAAA;QAEjC,IAAMK,mBAAmB,GAAG1C,SAAS,CAACwC,SAAS,EAAEF,MAAM,CAACT,KAAK,CAAC,CAAA;AAE9D,QAAA,IAAIa,mBAAmB,EAAE;AACrB;AACA9B,UAAAA,kBAAkB,CAAC4B,SAAS,EAAEF,MAAM,CAACT,KAAK,CAAC,CAAA;AAC/C,SAAC,MAAM;AACH;AACAnB,UAAAA,kBAAkB,CAAC8B,SAAS,EAAEF,MAAM,CAACT,KAAK,CAAC,CAAA;AAC/C,SAAA;AAEA,QAAA,OAAOW,SAAS,CAAA;AACpB,OAAA;AAEA,IAAA,KAAK,eAAe;AAAE,MAAA;AAClB,QAAA,IAAAG,aAAA,GAA+CL,MAAM,CAACT,KAAK;UAAnDf,aAAa,GAAA6B,aAAA,CAAb7B,aAAa;UAAEC,QAAQ,GAAA4B,aAAA,CAAR5B,QAAQ;UAAEC,SAAS,GAAA2B,aAAA,CAAT3B,SAAS,CAAA;AAE1C,QAAA,OAAOH,uCAAuC,CAACC,aAAa,EAAEC,QAAQ,EAAEC,SAAS,CAAC,CAAA;AACtF,OAAA;AAEA,IAAA,KAAK,YAAY;AAAE,MAAA;AACf,QAAA,IAAMwB,UAAS,GAAGC,QAAQ,CAACJ,KAAK,CAAC,CAAA;AAEjC3B,QAAAA,kBAAkB,CAAC8B,UAAS,EAAEF,MAAM,CAACT,KAAK,CAAC,CAAA;AAE3C,QAAA,OAAOW,UAAS,CAAA;AACpB,OAAA;AAEA,IAAA,KAAK,aAAa;AAAE,MAAA;AAChB,QAAA,IAAMA,WAAS,GAAGC,QAAQ,CAACJ,KAAK,CAAC,CAAA;AAEjCzB,QAAAA,kBAAkB,CAAC4B,WAAS,EAAEF,MAAM,CAACT,KAAK,CAAC,CAAA;AAE3C,QAAA,OAAOW,WAAS,CAAA;AACpB,OAAA;AAEA,IAAA;AAAS,MAAA;AACL,QAAA,OAAOH,KAAK,CAAA;AAChB,OAAA;AACJ,GAAA;AACJ;;;;"}
@@ -9,9 +9,6 @@ import { objectSpread2 as _objectSpread2 } from '../../../../_virtual/_rollupPlu
9
9
  // Не мутирует исходные данные.
10
10
  var filterItems = function filterItems(items, textValue, currentLabel, customFilter) {
11
11
  if (!textValue && !customFilter || textValue === currentLabel) return items;
12
- var defaultFilter = function defaultFilter(item, value) {
13
- return item.label.toLowerCase().includes(value.toLowerCase());
14
- };
15
12
  var filter = customFilter || defaultFilter;
16
13
  var dfs = function dfs(items) {
17
14
  var newItems = [];
@@ -35,6 +32,9 @@ var filterItems = function filterItems(items, textValue, currentLabel, customFil
35
32
  };
36
33
  return dfs(items);
37
34
  };
35
+ var defaultFilter = function defaultFilter(item, textValue) {
36
+ return item.label.toLowerCase().includes(textValue.toLowerCase());
37
+ };
38
38
 
39
- export { filterItems };
39
+ export { defaultFilter, filterItems };
40
40
  //# sourceMappingURL=filterItems.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterItems.js","sources":["../../../../../src/components/Combobox/ComboboxNew/utils/filterItems.ts"],"sourcesContent":["import { ItemOptionTransformed, ItemOption } from '../ui/Inner/ui/Item/Item.types';\n\n// Утилита, возвращающая отфильтрованное дерево items.\n// Фильтрация происходит как по названиям категорий, так и по названиям конечных элементов.\n// По дефолту регистр игнорируется. Но можно прокинуть свою функцию для кастомной фильтрации.\n// Фильтрация отключается в 2 случаях:\n// 1) При пустом инпуте (юзер пока еще не ввел значение или уже очистил);\n// 2) Если значение инпута совпадает с выбранным элементом (когда юзер выбрал айтем, но потом решил снова открыть);\n// Не мутирует исходные данные.\nexport const filterItems = (\n items: Array<ItemOptionTransformed>,\n textValue: string,\n currentLabel: string,\n customFilter?: (item: ItemOption, value: string) => boolean,\n): Array<ItemOptionTransformed> => {\n if ((!textValue && !customFilter) || textValue === currentLabel) return items;\n\n const defaultFilter = (item: ItemOption, value: string) => item.label.toLowerCase().includes(value.toLowerCase());\n\n const filter = customFilter || defaultFilter;\n\n const dfs = (items: Array<ItemOptionTransformed>) => {\n const newItems: Array<ItemOptionTransformed> = [];\n\n items.forEach((item) => {\n if (item.items) {\n if (filter(item, textValue)) {\n newItems.push(item);\n return;\n }\n\n const res = dfs(item.items);\n\n if (res.length > 0) {\n newItems.push({ ...item, items: res });\n }\n } else if (filter(item, textValue)) {\n newItems.push(item);\n }\n });\n\n return newItems;\n };\n\n return dfs(items);\n};\n"],"names":["filterItems","items","textValue","currentLabel","customFilter","defaultFilter","item","value","label","toLowerCase","includes","filter","dfs","newItems","forEach","push","res","length","_objectSpread"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACaA,IAAAA,WAAW,GAAG,SAAdA,WAAWA,CACpBC,KAAmC,EACnCC,SAAiB,EACjBC,YAAoB,EACpBC,YAA2D,EAC5B;EAC/B,IAAK,CAACF,SAAS,IAAI,CAACE,YAAY,IAAKF,SAAS,KAAKC,YAAY,EAAE,OAAOF,KAAK,CAAA;AAE7E,EAAA,IAAMI,aAAa,GAAG,SAAhBA,aAAaA,CAAIC,IAAgB,EAAEC,KAAa,EAAA;AAAA,IAAA,OAAKD,IAAI,CAACE,KAAK,CAACC,WAAW,EAAE,CAACC,QAAQ,CAACH,KAAK,CAACE,WAAW,EAAE,CAAC,CAAA;AAAA,GAAA,CAAA;AAEjH,EAAA,IAAME,MAAM,GAAGP,YAAY,IAAIC,aAAa,CAAA;AAE5C,EAAA,IAAMO,GAAG,GAAG,SAANA,GAAGA,CAAIX,KAAmC,EAAK;IACjD,IAAMY,QAAsC,GAAG,EAAE,CAAA;AAEjDZ,IAAAA,KAAK,CAACa,OAAO,CAAC,UAACR,IAAI,EAAK;MACpB,IAAIA,IAAI,CAACL,KAAK,EAAE;AACZ,QAAA,IAAIU,MAAM,CAACL,IAAI,EAAEJ,SAAS,CAAC,EAAE;AACzBW,UAAAA,QAAQ,CAACE,IAAI,CAACT,IAAI,CAAC,CAAA;AACnB,UAAA,OAAA;AACJ,SAAA;AAEA,QAAA,IAAMU,GAAG,GAAGJ,GAAG,CAACN,IAAI,CAACL,KAAK,CAAC,CAAA;AAE3B,QAAA,IAAIe,GAAG,CAACC,MAAM,GAAG,CAAC,EAAE;AAChBJ,UAAAA,QAAQ,CAACE,IAAI,CAAAG,cAAA,CAAAA,cAAA,KAAMZ,IAAI,CAAA,EAAA,EAAA,EAAA;AAAEL,YAAAA,KAAK,EAAEe,GAAAA;AAAG,WAAA,CAAE,CAAC,CAAA;AAC1C,SAAA;OACH,MAAM,IAAIL,MAAM,CAACL,IAAI,EAAEJ,SAAS,CAAC,EAAE;AAChCW,QAAAA,QAAQ,CAACE,IAAI,CAACT,IAAI,CAAC,CAAA;AACvB,OAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOO,QAAQ,CAAA;GAClB,CAAA;EAED,OAAOD,GAAG,CAACX,KAAK,CAAC,CAAA;AACrB;;;;"}
1
+ {"version":3,"file":"filterItems.js","sources":["../../../../../src/components/Combobox/ComboboxNew/utils/filterItems.ts"],"sourcesContent":["import { ItemOptionTransformed, ItemOption } from '../ui/Inner/ui/Item/Item.types';\n\n// Утилита, возвращающая отфильтрованное дерево items.\n// Фильтрация происходит как по названиям категорий, так и по названиям конечных элементов.\n// По дефолту регистр игнорируется. Но можно прокинуть свою функцию для кастомной фильтрации.\n// Фильтрация отключается в 2 случаях:\n// 1) При пустом инпуте (юзер пока еще не ввел значение или уже очистил);\n// 2) Если значение инпута совпадает с выбранным элементом (когда юзер выбрал айтем, но потом решил снова открыть);\n// Не мутирует исходные данные.\nexport const filterItems = (\n items: Array<ItemOptionTransformed>,\n textValue: string,\n currentLabel: string,\n customFilter?: (item: ItemOption, value: string) => boolean,\n): Array<ItemOptionTransformed> => {\n if ((!textValue && !customFilter) || textValue === currentLabel) return items;\n\n const filter = customFilter || defaultFilter;\n\n const dfs = (items: Array<ItemOptionTransformed>) => {\n const newItems: Array<ItemOptionTransformed> = [];\n\n items.forEach((item) => {\n if (item.items) {\n if (filter(item, textValue)) {\n newItems.push(item);\n return;\n }\n\n const res = dfs(item.items);\n\n if (res.length > 0) {\n newItems.push({ ...item, items: res });\n }\n } else if (filter(item, textValue)) {\n newItems.push(item);\n }\n });\n\n return newItems;\n };\n\n return dfs(items);\n};\n\nexport const defaultFilter = (item: ItemOption, textValue: string) =>\n item.label.toLowerCase().includes(textValue.toLowerCase());\n"],"names":["filterItems","items","textValue","currentLabel","customFilter","filter","defaultFilter","dfs","newItems","forEach","item","push","res","length","_objectSpread","label","toLowerCase","includes"],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACaA,IAAAA,WAAW,GAAG,SAAdA,WAAWA,CACpBC,KAAmC,EACnCC,SAAiB,EACjBC,YAAoB,EACpBC,YAA2D,EAC5B;EAC/B,IAAK,CAACF,SAAS,IAAI,CAACE,YAAY,IAAKF,SAAS,KAAKC,YAAY,EAAE,OAAOF,KAAK,CAAA;AAE7E,EAAA,IAAMI,MAAM,GAAGD,YAAY,IAAIE,aAAa,CAAA;AAE5C,EAAA,IAAMC,GAAG,GAAG,SAANA,GAAGA,CAAIN,KAAmC,EAAK;IACjD,IAAMO,QAAsC,GAAG,EAAE,CAAA;AAEjDP,IAAAA,KAAK,CAACQ,OAAO,CAAC,UAACC,IAAI,EAAK;MACpB,IAAIA,IAAI,CAACT,KAAK,EAAE;AACZ,QAAA,IAAII,MAAM,CAACK,IAAI,EAAER,SAAS,CAAC,EAAE;AACzBM,UAAAA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAAC,CAAA;AACnB,UAAA,OAAA;AACJ,SAAA;AAEA,QAAA,IAAME,GAAG,GAAGL,GAAG,CAACG,IAAI,CAACT,KAAK,CAAC,CAAA;AAE3B,QAAA,IAAIW,GAAG,CAACC,MAAM,GAAG,CAAC,EAAE;AAChBL,UAAAA,QAAQ,CAACG,IAAI,CAAAG,cAAA,CAAAA,cAAA,KAAMJ,IAAI,CAAA,EAAA,EAAA,EAAA;AAAET,YAAAA,KAAK,EAAEW,GAAAA;AAAG,WAAA,CAAE,CAAC,CAAA;AAC1C,SAAA;OACH,MAAM,IAAIP,MAAM,CAACK,IAAI,EAAER,SAAS,CAAC,EAAE;AAChCM,QAAAA,QAAQ,CAACG,IAAI,CAACD,IAAI,CAAC,CAAA;AACvB,OAAA;AACJ,KAAC,CAAC,CAAA;AAEF,IAAA,OAAOF,QAAQ,CAAA;GAClB,CAAA;EAED,OAAOD,GAAG,CAACN,KAAK,CAAC,CAAA;AACrB,EAAC;AAEM,IAAMK,aAAa,GAAG,SAAhBA,aAAaA,CAAII,IAAgB,EAAER,SAAiB,EAAA;AAAA,EAAA,OAC7DQ,IAAI,CAACK,KAAK,CAACC,WAAW,EAAE,CAACC,QAAQ,CAACf,SAAS,CAACc,WAAW,EAAE,CAAC,CAAA;AAAA;;;;"}
@@ -1,6 +1,7 @@
1
1
  import { objectWithoutProperties as _objectWithoutProperties, slicedToArray as _slicedToArray, objectSpread2 as _objectSpread2, extends as _extends, defineProperty as _defineProperty } from '../../../_virtual/_rollupPluginBabelHelpers.js';
2
2
  import React, { forwardRef, useRef, useState, useEffect, useLayoutEffect, useCallback, createRef } from 'react';
3
3
  import cls from 'classnames';
4
+ import { customDayjs } from '../../../utils/datejs.js';
4
5
  import { getDateFormatDelimiter } from '../utils/dateHelper.js';
5
6
  import { useDatePicker } from '../hooks/useDatePicker.js';
6
7
  import { classes } from '../DatePicker.tokens.js';
@@ -356,8 +357,20 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
356
357
  _getSortedValues4 = _slicedToArray(_getSortedValues3, 2),
357
358
  first = _getSortedValues4[0],
358
359
  second = _getSortedValues4[1];
359
- handleFirstCalendarPick(first, dateInfo);
360
- handleSecondCalendarPick(second, dateInfo);
360
+
361
+ /**
362
+ * NOTE: проверяем совпадает ли новая дата с предыдущей
363
+ * Если нет, то вызываем handle{First,Second}CalendarPick
364
+ */
365
+ customDayjs.locale(lang);
366
+ var firstFormatted = first ? customDayjs(first).format(format) : '';
367
+ var secondFormatted = second ? customDayjs(second).format(format) : '';
368
+ if (firstFormatted !== inputFirstValue) {
369
+ handleFirstCalendarPick(first, dateInfo);
370
+ }
371
+ if (secondFormatted !== inputSecondValue) {
372
+ handleSecondCalendarPick(second, dateInfo);
373
+ }
361
374
  if (!firstValueError && !secondValueError && closeAfterDateSelect) {
362
375
  handleToggle(false);
363
376
  }
@@ -366,10 +379,17 @@ var datePickerRangeRoot = function datePickerRangeRoot(Root) {
366
379
  var _ref3 = _slicedToArray(_ref2, 2),
367
380
  firstDate = _ref3[0],
368
381
  secondDate = _ref3[1];
369
- if (firstDate) {
382
+ /**
383
+ * NOTE: проверяем совпадает ли новая дата с предыдущей
384
+ * Если нет, то вызываем handle{First,Second}CalendarPick
385
+ */
386
+ customDayjs.locale(lang);
387
+ var firstFormatted = firstDate ? customDayjs(firstDate).format(format) : '';
388
+ var secondFormatted = secondDate ? customDayjs(secondDate).format(format) : '';
389
+ if (firstFormatted !== inputFirstValue) {
370
390
  handleFirstCalendarPick(firstDate, dateInfo);
371
391
  }
372
- if (secondDate) {
392
+ if (secondFormatted !== inputSecondValue) {
373
393
  handleSecondCalendarPick(secondDate, dateInfo);
374
394
  }
375
395
  if (firstDate && secondDate && !firstValueError && !secondValueError && closeAfterDateSelect) {
@@ -1 +1 @@
1
- {"version":3,"file":"RangeDate.js","sources":["../../../../src/components/DatePicker/RangeDate/RangeDate.tsx"],"sourcesContent":["import React, { createRef, forwardRef, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport cls from 'classnames';\nimport type {\n KeyboardEvent,\n FocusEvent,\n FocusEventHandler,\n MutableRefObject,\n SyntheticEvent,\n SetStateAction,\n} from 'react';\nimport type { RootProps } from 'src/engines';\nimport { noop } from 'src/utils';\n\nimport { getDateFormatDelimiter } from '../utils/dateHelper';\nimport { useDatePicker } from '../hooks/useDatePicker';\nimport type { RangeInputRefs } from '../../Range/Range.types';\nimport { classes } from '../DatePicker.tokens';\nimport { keys, useKeyNavigation } from '../hooks/useKeyboardNavigation';\nimport { InputHidden } from '../DatePickerBase.styles';\nimport { getSortedValues } from '../../Calendar/utils';\nimport type { DateInfo, DateType } from '../../Calendar/Calendar.types';\nimport { getFormattedDates } from '../utils';\n\nimport type { DatePickerRangeProps, RootDatePickerRangeProps } from './RangeDate.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as eventTooltipSizeCSS } from './variations/_tooltip-size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_readonly/base';\nimport { LeftHelper, StyledRange, base } from './RangeDate.styles';\nimport { RangeDatePopover } from './RangeDatePopover/RangeDatePopover';\nimport { RootWrapperProps } from './RangeDatePopover/RangeDatePopover.types';\n\nexport const datePickerRangeRoot = (Root: RootProps<HTMLDivElement, RootDatePickerRangeProps>) =>\n forwardRef<RangeInputRefs, DatePickerRangeProps>(\n (\n {\n className,\n autoComplete,\n\n isDoubleCalendar = false,\n opened = false,\n\n value: outerValue,\n defaultFirstDate = '',\n defaultSecondDate = '',\n preserveInvalidOnBlur,\n\n label,\n leftHelper,\n contentLeft,\n contentRight,\n view,\n size,\n readOnly = false,\n disabled = false,\n name,\n\n dividerVariant = 'dash',\n dividerIcon,\n\n firstValueError,\n secondValueError,\n firstValueSuccess,\n secondValueSuccess,\n firstPlaceholder,\n secondPlaceholder,\n firstTextfieldContentLeft,\n firstTextfieldContentRight,\n secondTextfieldContentLeft,\n secondTextfieldContentRight,\n firstTextfieldTextBefore,\n secondTextfieldTextBefore,\n firstTextfieldTextAfter,\n secondTextfieldTextAfter,\n\n required,\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n\n format = 'DD.MM.YYYY',\n lang = 'ru',\n maskWithFormat,\n min,\n max,\n renderFromDate,\n includeEdgeDates = false,\n eventTooltipOptions,\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n type = 'Days',\n\n frame = 'document',\n usePortal = false,\n zIndex,\n placement = ['top', 'bottom'],\n closeOnOverlayClick = true,\n closeOnEsc = true,\n closeAfterDateSelect = true,\n offset,\n\n calendarContainerWidth,\n calendarContainerHeight,\n stretched,\n\n onToggle,\n\n onChange,\n onChangeFirstValue,\n onChangeSecondValue,\n\n onCommitFirstDate,\n onCommitSecondDate,\n\n onFocusFirstTextfield,\n onFocusSecondTextfield,\n onBlurFirstTextfield,\n onBlurSecondTextfield,\n\n ...rest\n },\n ref,\n ) => {\n const rangeRef = ref && 'current' in ref ? ref : createRef<RangeInputRefs>();\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const innerRefFirst = useRef<HTMLInputElement>(null);\n const innerRefSecond = useRef<HTMLInputElement>(null);\n\n const [firstInputRef, setFirstInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.firstTextField(),\n );\n const [secondInputRef, setSecondInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.secondTextField(),\n );\n\n const [isInnerOpen, setIsInnerOpen] = useState(opened);\n const dateFormatDelimiter = getDateFormatDelimiter(format);\n\n const [startInnerDate, setStartInnerDate] = useState<string | DateType>(defaultFirstDate || '');\n const startDateValue = outerValue?.[0] ?? startInnerDate;\n\n const startInitialValues = getFormattedDates({\n value: startDateValue,\n delimiter: dateFormatDelimiter,\n lang,\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n const [endInnerDate, setEndInnerDate] = useState<string | DateType>(defaultSecondDate || '');\n const endDateValue = outerValue?.[1] ?? endInnerDate;\n\n const endInitialValues = getFormattedDates({\n value: endDateValue,\n delimiter: dateFormatDelimiter,\n lang,\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n const [correctStartDates, setCorrectStartDates] = useState({\n calendar: startInitialValues.originalDate,\n input: startInitialValues.formattedDate,\n });\n const [correctEndDates, setCorrectEndDates] = useState({\n calendar: endInitialValues.originalDate,\n input: endInitialValues.formattedDate,\n });\n\n const calendarFirstValue: DateType = startInitialValues.originalDate;\n const inputFirstValue = startInitialValues.formattedDate;\n\n const calendarSecondValue: DateType = endInitialValues.originalDate;\n const inputSecondValue = endInitialValues.formattedDate;\n\n const fullDateEntered = Boolean(calendarFirstValue && calendarSecondValue);\n\n const [secondTextFieldClicked, setSecondTextFieldClicked] = useState(false);\n\n const rangeErrorClass = firstValueError || secondValueError ? classes.datePickerError : undefined;\n const rangeSuccessClass = firstValueSuccess || secondValueSuccess ? classes.datePickerSuccess : undefined;\n\n const handleInputChange = (value: string) => {\n if (onChange) {\n onChange({\n target: {\n value,\n name,\n },\n });\n }\n };\n\n const setFirstInputValue = (value: SetStateAction<string | DateType>) => {\n setStartInnerDate(value);\n handleInputChange(`${value} - ${inputSecondValue}`);\n };\n\n const setSecondInputValue = (value: SetStateAction<string | DateType>) => {\n setEndInnerDate(value);\n handleInputChange(`${inputFirstValue} - ${value}`);\n };\n\n const commonUseDatePickerArgs = {\n format,\n lang,\n disabled,\n readOnly,\n maskWithFormat,\n name,\n type,\n min,\n max,\n includeEdgeDates,\n dateFormatDelimiter,\n };\n\n const {\n handleChangeValue: handleChangeFirstValue,\n handleCalendarPick: handleFirstCalendarPick,\n handleSearch: handleSearchFirst,\n updateExternalDate: updateExternalFirstDate,\n getQuarterInfo: getFirstQuarterInfo,\n } = useDatePicker({\n currentValue: inputFirstValue,\n valueError: firstValueError,\n valueSuccess: firstValueSuccess,\n ...commonUseDatePickerArgs,\n\n setCorrectDates: setCorrectStartDates,\n setInnerDate: setFirstInputValue,\n onChangeValue: onChangeFirstValue,\n onCommitDate: onCommitFirstDate,\n });\n\n const {\n handleChangeValue: handleChangeSecondValue,\n handleCalendarPick: handleSecondCalendarPick,\n handleSearch: handleSearchSecond,\n updateExternalDate: updateExternalSecondDate,\n getQuarterInfo: getSecondQuarterInfo,\n } = useDatePicker({\n currentValue: inputSecondValue,\n valueError: secondValueError,\n valueSuccess: secondValueSuccess,\n ...commonUseDatePickerArgs,\n\n setCorrectDates: setCorrectEndDates,\n setInnerDate: setSecondInputValue,\n onChangeValue: onChangeSecondValue,\n onCommitDate: onCommitSecondDate,\n });\n\n const handleToggle = (currentOpened: boolean, event?: SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n const isCalendarOpen =\n (firstInputRef?.current?.contains((event?.target as Node) || null) ||\n secondInputRef?.current?.contains((event?.target as Node) || null)) &&\n (event as KeyboardEvent<HTMLInputElement>)?.code !== keys.Escape\n ? true\n : currentOpened;\n\n if (!isCalendarOpen) {\n setSecondTextFieldClicked(false);\n }\n\n if (onToggle) {\n return onToggle(isCalendarOpen, event);\n }\n\n setIsInnerOpen(isCalendarOpen);\n };\n\n const handleFocusFirstTextField = (event: FocusEvent<HTMLInputElement>) => {\n onFocusFirstTextfield?.(event);\n setSecondTextFieldClicked(false);\n };\n\n const handleFocusSecondTextField = (event: FocusEvent<HTMLInputElement>) => {\n onFocusSecondTextfield?.(event);\n setSecondTextFieldClicked(true);\n };\n\n const handleBlur = (\n event: FocusEvent<HTMLInputElement>,\n outerHandler?: FocusEventHandler<HTMLInputElement>,\n ) => {\n if (!inputFirstValue || !inputSecondValue || preserveInvalidOnBlur) {\n outerHandler?.(event);\n return;\n }\n\n const commonArgs = { lang, format, includeEdgeDates, min, max };\n\n let { originalDate: startOriginalDate } = getFormattedDates({\n value: inputFirstValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n let { originalDate: endOriginalDate } = getFormattedDates({\n value: inputSecondValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n if (!calendarFirstValue && correctStartDates.calendar) {\n startOriginalDate = new Date(correctStartDates.calendar);\n }\n\n if (!calendarSecondValue && correctEndDates.calendar) {\n endOriginalDate = new Date(correctEndDates.calendar);\n }\n\n const [startValue, endValue] = getSortedValues([startOriginalDate, endOriginalDate]);\n\n const {\n formattedDate: formattedFirstDate,\n originalDate: originalFirstDate,\n isoDate: isoFirstDate,\n } = getFormattedDates({\n value: startValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n const {\n formattedDate: formattedSecondDate,\n originalDate: originalSecondDate,\n isoDate: isoSecondDate,\n } = getFormattedDates({\n value: endValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n if (formattedFirstDate !== inputFirstValue) {\n if (onChangeFirstValue) {\n onChangeFirstValue(event, formattedFirstDate, originalFirstDate, isoFirstDate);\n }\n\n if (onCommitFirstDate) {\n const dateInfo = originalFirstDate ? getFirstQuarterInfo(originalFirstDate) : undefined;\n\n onCommitFirstDate(formattedFirstDate, false, true, dateInfo, originalFirstDate, isoFirstDate);\n }\n }\n\n if (formattedSecondDate !== inputSecondValue) {\n if (onChangeSecondValue) {\n onChangeSecondValue(event, formattedSecondDate, originalSecondDate, isoSecondDate);\n }\n\n if (onCommitSecondDate) {\n const dateInfo = originalSecondDate ? getSecondQuarterInfo(originalSecondDate) : undefined;\n\n onCommitSecondDate(\n formattedSecondDate,\n false,\n true,\n dateInfo,\n originalSecondDate,\n isoSecondDate,\n );\n }\n }\n\n setFirstInputValue(startValue);\n setSecondInputValue(endValue);\n\n outerHandler?.(event);\n };\n\n const { onKeyDown } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n format,\n maskWithFormat,\n delimiter: dateFormatDelimiter,\n closeOnEsc,\n onToggle: handleToggle,\n });\n\n const handleChangeStartOfRange = (chosenDate: Date, dateInfo?: DateInfo) => {\n if (!fullDateEntered) {\n handleFirstCalendarPick(chosenDate, dateInfo);\n handleSecondCalendarPick(undefined);\n\n return;\n }\n\n const prevValue = secondTextFieldClicked ? calendarFirstValue : calendarSecondValue;\n\n const [first, second] = getSortedValues([prevValue, chosenDate]);\n\n handleFirstCalendarPick(first, dateInfo);\n handleSecondCalendarPick(second, dateInfo);\n\n if (!firstValueError && !secondValueError && closeAfterDateSelect) {\n handleToggle(false);\n }\n };\n\n const handleChangeCalendarValue = ([firstDate, secondDate]: [DateType, DateType], dateInfo?: DateInfo) => {\n if (firstDate) {\n handleFirstCalendarPick(firstDate, dateInfo);\n }\n\n if (secondDate) {\n handleSecondCalendarPick(secondDate, dateInfo);\n }\n\n if (firstDate && secondDate && !firstValueError && !secondValueError && closeAfterDateSelect) {\n handleToggle(false);\n }\n };\n\n const RangeComponent = (\n <>\n {/* TODO https://github.com/salute-developers/plasma/issues/1227\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore */}\n <StyledRange\n ref={rangeRef}\n autoComplete={autoComplete}\n dividerIcon={dividerIcon}\n dividerVariant={dividerVariant}\n label={label}\n required={required}\n requiredPlacement={requiredPlacement}\n hasRequiredIndicator={hasRequiredIndicator}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n firstPlaceholder={firstPlaceholder}\n secondPlaceholder={secondPlaceholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n firstTextfieldTextBefore={firstTextfieldTextBefore}\n secondTextfieldTextBefore={secondTextfieldTextBefore}\n firstTextfieldTextAfter={firstTextfieldTextAfter}\n secondTextfieldTextAfter={secondTextfieldTextAfter}\n firstTextfieldContentLeft={firstTextfieldContentLeft}\n firstTextfieldContentRight={firstTextfieldContentRight}\n secondTextfieldContentLeft={secondTextfieldContentLeft}\n secondTextfieldContentRight={secondTextfieldContentRight}\n firstValue={inputFirstValue}\n secondValue={inputSecondValue}\n firstValueError={firstValueError}\n secondValueError={secondValueError}\n firstValueSuccess={firstValueSuccess}\n secondValueSuccess={secondValueSuccess}\n onChangeFirstValue={handleChangeFirstValue}\n onChangeSecondValue={handleChangeSecondValue}\n name={name}\n onSearchFirstValue={(_, date) => {\n handleSearchFirst(String(date));\n if (!calendarSecondValue || secondValueError) {\n rangeRef?.current?.secondTextField()?.current?.focus();\n }\n }}\n onSearchSecondValue={(_, date) => {\n handleSearchSecond(String(date));\n if (!calendarFirstValue || firstValueError) {\n rangeRef?.current?.firstTextField()?.current?.focus();\n }\n }}\n onFocusFirstTextfield={handleFocusFirstTextField}\n onFocusSecondTextfield={handleFocusSecondTextField}\n onBlurFirstTextfield={(event) => handleBlur(event, onBlurFirstTextfield)}\n onBlurSecondTextfield={(event) => handleBlur(event, onBlurSecondTextfield)}\n onKeyDown={onKeyDown}\n />\n </>\n );\n\n useEffect(() => {\n setFirstInputRef(rangeRef.current?.firstTextField());\n setSecondInputRef(rangeRef.current?.secondTextField());\n }, [rangeRef.current]);\n\n useEffect(() => {\n setIsInnerOpen((prevOpen) => prevOpen !== opened && opened);\n }, [opened]);\n\n useLayoutEffect(() => {\n if (!startDateValue) {\n updateExternalFirstDate(defaultFirstDate);\n }\n }, [defaultFirstDate, format, lang]);\n\n useLayoutEffect(() => {\n if (!endDateValue) {\n updateExternalSecondDate(defaultSecondDate);\n }\n }, [defaultSecondDate, format, lang]);\n\n const RootWrapper = useCallback<RootWrapperProps>(\n forwardRef(({ children, className: rootWrapperClassName, onClick }, rootWrapperRef) => (\n <Root\n ref={rootWrapperRef}\n view={view}\n size={size}\n eventTooltipSize={eventTooltipOptions?.size}\n className={rootWrapperClassName}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n onClick={onClick}\n >\n {children}\n </Root>\n )),\n [view, size, disabled, readOnly],\n );\n\n return (\n <Root\n ref={rootRef}\n view={view}\n size={size}\n eventTooltipSize={eventTooltipOptions?.size}\n className={cls(classes.datePickerRoot, className, { [classes.datePickerstretched]: stretched })}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n {...rest}\n >\n <RangeDatePopover\n calendarValue={[calendarFirstValue, calendarSecondValue]}\n target={RangeComponent}\n opened={isInnerOpen}\n includeEdgeDates={includeEdgeDates}\n eventTooltipOptions={eventTooltipOptions}\n eventList={eventList}\n disabledList={disabledList}\n eventMonthList={eventMonthList}\n disabledMonthList={disabledMonthList}\n eventQuarterList={eventQuarterList}\n disabledQuarterList={disabledQuarterList}\n eventYearList={eventYearList}\n disabledYearList={disabledYearList}\n min={min}\n max={max}\n renderFromDate={renderFromDate}\n frame={frame}\n usePortal={usePortal}\n zIndex={zIndex}\n placement={placement}\n closeOnOverlayClick={closeOnOverlayClick}\n closeOnEsc={closeOnEsc}\n offset={offset}\n stretched={stretched}\n calendarContainerWidth={calendarContainerWidth}\n calendarContainerHeight={calendarContainerHeight}\n type={type}\n onToggle={handleToggle}\n lang={lang}\n isDoubleCalendar={isDoubleCalendar}\n rootWrapper={RootWrapper}\n onChangeStartOfRange={handleChangeStartOfRange}\n onChangeValue={handleChangeCalendarValue}\n setIsInnerOpen={setIsInnerOpen}\n />\n {leftHelper && (\n <LeftHelper className={cls(rangeErrorClass, rangeSuccessClass)}>{leftHelper}</LeftHelper>\n )}\n <InputHidden\n name={name}\n type=\"hidden\"\n datatype=\"datepicker-double\"\n data-datepicker=\"from\"\n value={inputFirstValue}\n ref={innerRefFirst}\n {...noop}\n />\n <InputHidden\n name={name}\n type=\"hidden\"\n datatype=\"datepicker-double\"\n data-datepicker=\"to\"\n value={inputSecondValue}\n ref={innerRefSecond}\n {...noop}\n />\n </Root>\n );\n },\n );\n\nexport const datePickerRangeConfig = {\n name: 'DatePickerRange',\n tag: 'div',\n layout: datePickerRangeRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n eventTooltipSize: {\n css: eventTooltipSizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n eventTooltipSizeCSS: 'm',\n },\n};\n"],"names":["datePickerRangeRoot","Root","forwardRef","_ref","ref","_rangeRef$current","_rangeRef$current2","_outerValue$","_outerValue$2","className","autoComplete","_ref$isDoubleCalendar","isDoubleCalendar","_ref$opened","opened","outerValue","value","_ref$defaultFirstDate","defaultFirstDate","_ref$defaultSecondDat","defaultSecondDate","preserveInvalidOnBlur","label","leftHelper","contentLeft","contentRight","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","name","_ref$dividerVariant","dividerVariant","dividerIcon","firstValueError","secondValueError","firstValueSuccess","secondValueSuccess","firstPlaceholder","secondPlaceholder","firstTextfieldContentLeft","firstTextfieldContentRight","secondTextfieldContentLeft","secondTextfieldContentRight","firstTextfieldTextBefore","secondTextfieldTextBefore","firstTextfieldTextAfter","secondTextfieldTextAfter","required","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","_ref$format","format","_ref$lang","lang","maskWithFormat","min","max","renderFromDate","_ref$includeEdgeDates","includeEdgeDates","eventTooltipOptions","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","_ref$type","type","_ref$frame","frame","_ref$usePortal","usePortal","zIndex","_ref$placement","placement","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","_ref$closeAfterDateSe","closeAfterDateSelect","offset","calendarContainerWidth","calendarContainerHeight","stretched","onToggle","onChange","onChangeFirstValue","onChangeSecondValue","onCommitFirstDate","onCommitSecondDate","onFocusFirstTextfield","onFocusSecondTextfield","onBlurFirstTextfield","onBlurSecondTextfield","rest","_objectWithoutProperties","_excluded","rangeRef","createRef","rootRef","useRef","innerRefFirst","innerRefSecond","_useState","useState","current","firstTextField","_useState2","_slicedToArray","firstInputRef","setFirstInputRef","_useState3","secondTextField","_useState4","secondInputRef","setSecondInputRef","_useState5","_useState6","isInnerOpen","setIsInnerOpen","dateFormatDelimiter","getDateFormatDelimiter","_useState7","_useState8","startInnerDate","setStartInnerDate","startDateValue","startInitialValues","getFormattedDates","delimiter","_useState9","_useState10","endInnerDate","setEndInnerDate","endDateValue","endInitialValues","_useState11","calendar","originalDate","input","formattedDate","_useState12","correctStartDates","setCorrectStartDates","_useState13","_useState14","correctEndDates","setCorrectEndDates","calendarFirstValue","inputFirstValue","calendarSecondValue","inputSecondValue","fullDateEntered","Boolean","_useState15","_useState16","secondTextFieldClicked","setSecondTextFieldClicked","rangeErrorClass","classes","datePickerError","undefined","rangeSuccessClass","datePickerSuccess","handleInputChange","target","setFirstInputValue","concat","setSecondInputValue","commonUseDatePickerArgs","_useDatePicker","useDatePicker","_objectSpread","currentValue","valueError","valueSuccess","setCorrectDates","setInnerDate","onChangeValue","onCommitDate","handleChangeFirstValue","handleChangeValue","handleFirstCalendarPick","handleCalendarPick","handleSearchFirst","handleSearch","updateExternalFirstDate","updateExternalDate","getFirstQuarterInfo","getQuarterInfo","_useDatePicker2","handleChangeSecondValue","handleSecondCalendarPick","handleSearchSecond","updateExternalSecondDate","getSecondQuarterInfo","handleToggle","currentOpened","event","_firstInputRef$curren","_secondInputRef$curre","isCalendarOpen","contains","code","keys","Escape","handleFocusFirstTextField","handleFocusSecondTextField","handleBlur","outerHandler","commonArgs","_getFormattedDates","startOriginalDate","_getFormattedDates2","endOriginalDate","Date","_getSortedValues","getSortedValues","_getSortedValues2","startValue","endValue","_getFormattedDates3","formattedFirstDate","originalFirstDate","isoFirstDate","isoDate","_getFormattedDates4","formattedSecondDate","originalSecondDate","isoSecondDate","dateInfo","_useKeyNavigation","useKeyNavigation","onKeyDown","handleChangeStartOfRange","chosenDate","prevValue","_getSortedValues3","_getSortedValues4","first","second","handleChangeCalendarValue","_ref2","_ref3","firstDate","secondDate","RangeComponent","React","createElement","Fragment","StyledRange","firstValue","secondValue","onSearchFirstValue","_","date","String","_rangeRef$current3","focus","onSearchSecondValue","_rangeRef$current4","useEffect","_rangeRef$current5","_rangeRef$current6","prevOpen","useLayoutEffect","RootWrapper","useCallback","_ref4","rootWrapperRef","children","rootWrapperClassName","onClick","eventTooltipSize","_extends","cls","datePickerRoot","_defineProperty","datePickerstretched","RangeDatePopover","calendarValue","rootWrapper","onChangeStartOfRange","LeftHelper","InputHidden","datatype","noop","datePickerRangeConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","eventTooltipSizeCSS","disabledCSS","attrs","readOnlyCSS","defaults"],"mappings":"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"}
1
+ {"version":3,"file":"RangeDate.js","sources":["../../../../src/components/DatePicker/RangeDate/RangeDate.tsx"],"sourcesContent":["import React, { createRef, forwardRef, useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react';\nimport cls from 'classnames';\nimport type {\n KeyboardEvent,\n FocusEvent,\n FocusEventHandler,\n MutableRefObject,\n SyntheticEvent,\n SetStateAction,\n} from 'react';\nimport type { RootProps } from 'src/engines';\nimport { noop } from 'src/utils';\nimport { customDayjs } from 'src/utils/datejs';\n\nimport { getDateFormatDelimiter } from '../utils/dateHelper';\nimport { useDatePicker } from '../hooks/useDatePicker';\nimport type { RangeInputRefs } from '../../Range/Range.types';\nimport { classes } from '../DatePicker.tokens';\nimport { keys, useKeyNavigation } from '../hooks/useKeyboardNavigation';\nimport { InputHidden } from '../DatePickerBase.styles';\nimport { getSortedValues } from '../../Calendar/utils';\nimport type { DateInfo, DateType } from '../../Calendar/Calendar.types';\nimport { getFormattedDates } from '../utils';\n\nimport type { DatePickerRangeProps, RootDatePickerRangeProps } from './RangeDate.types';\nimport { base as sizeCSS } from './variations/_size/base';\nimport { base as viewCSS } from './variations/_view/base';\nimport { base as eventTooltipSizeCSS } from './variations/_tooltip-size/base';\nimport { base as disabledCSS } from './variations/_disabled/base';\nimport { base as readOnlyCSS } from './variations/_readonly/base';\nimport { LeftHelper, StyledRange, base } from './RangeDate.styles';\nimport { RangeDatePopover } from './RangeDatePopover/RangeDatePopover';\nimport { RootWrapperProps } from './RangeDatePopover/RangeDatePopover.types';\n\nexport const datePickerRangeRoot = (Root: RootProps<HTMLDivElement, RootDatePickerRangeProps>) =>\n forwardRef<RangeInputRefs, DatePickerRangeProps>(\n (\n {\n className,\n autoComplete,\n\n isDoubleCalendar = false,\n opened = false,\n\n value: outerValue,\n defaultFirstDate = '',\n defaultSecondDate = '',\n preserveInvalidOnBlur,\n\n label,\n leftHelper,\n contentLeft,\n contentRight,\n view,\n size,\n readOnly = false,\n disabled = false,\n name,\n\n dividerVariant = 'dash',\n dividerIcon,\n\n firstValueError,\n secondValueError,\n firstValueSuccess,\n secondValueSuccess,\n firstPlaceholder,\n secondPlaceholder,\n firstTextfieldContentLeft,\n firstTextfieldContentRight,\n secondTextfieldContentLeft,\n secondTextfieldContentRight,\n firstTextfieldTextBefore,\n secondTextfieldTextBefore,\n firstTextfieldTextAfter,\n secondTextfieldTextAfter,\n\n required,\n requiredPlacement = 'right',\n hasRequiredIndicator = true,\n\n format = 'DD.MM.YYYY',\n lang = 'ru',\n maskWithFormat,\n min,\n max,\n renderFromDate,\n includeEdgeDates = false,\n eventTooltipOptions,\n eventList,\n disabledList,\n eventMonthList,\n disabledMonthList,\n eventQuarterList,\n disabledQuarterList,\n eventYearList,\n disabledYearList,\n type = 'Days',\n\n frame = 'document',\n usePortal = false,\n zIndex,\n placement = ['top', 'bottom'],\n closeOnOverlayClick = true,\n closeOnEsc = true,\n closeAfterDateSelect = true,\n offset,\n\n calendarContainerWidth,\n calendarContainerHeight,\n stretched,\n\n onToggle,\n\n onChange,\n onChangeFirstValue,\n onChangeSecondValue,\n\n onCommitFirstDate,\n onCommitSecondDate,\n\n onFocusFirstTextfield,\n onFocusSecondTextfield,\n onBlurFirstTextfield,\n onBlurSecondTextfield,\n\n ...rest\n },\n ref,\n ) => {\n const rangeRef = ref && 'current' in ref ? ref : createRef<RangeInputRefs>();\n const rootRef = useRef<HTMLDivElement | null>(null);\n\n const innerRefFirst = useRef<HTMLInputElement>(null);\n const innerRefSecond = useRef<HTMLInputElement>(null);\n\n const [firstInputRef, setFirstInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.firstTextField(),\n );\n const [secondInputRef, setSecondInputRef] = useState<MutableRefObject<HTMLInputElement | null> | undefined>(\n rangeRef?.current?.secondTextField(),\n );\n\n const [isInnerOpen, setIsInnerOpen] = useState(opened);\n const dateFormatDelimiter = getDateFormatDelimiter(format);\n\n const [startInnerDate, setStartInnerDate] = useState<string | DateType>(defaultFirstDate || '');\n const startDateValue = outerValue?.[0] ?? startInnerDate;\n\n const startInitialValues = getFormattedDates({\n value: startDateValue,\n delimiter: dateFormatDelimiter,\n lang,\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n const [endInnerDate, setEndInnerDate] = useState<string | DateType>(defaultSecondDate || '');\n const endDateValue = outerValue?.[1] ?? endInnerDate;\n\n const endInitialValues = getFormattedDates({\n value: endDateValue,\n delimiter: dateFormatDelimiter,\n lang,\n format,\n includeEdgeDates,\n min,\n max,\n });\n\n const [correctStartDates, setCorrectStartDates] = useState({\n calendar: startInitialValues.originalDate,\n input: startInitialValues.formattedDate,\n });\n const [correctEndDates, setCorrectEndDates] = useState({\n calendar: endInitialValues.originalDate,\n input: endInitialValues.formattedDate,\n });\n\n const calendarFirstValue: DateType = startInitialValues.originalDate;\n const inputFirstValue = startInitialValues.formattedDate;\n\n const calendarSecondValue: DateType = endInitialValues.originalDate;\n const inputSecondValue = endInitialValues.formattedDate;\n\n const fullDateEntered = Boolean(calendarFirstValue && calendarSecondValue);\n\n const [secondTextFieldClicked, setSecondTextFieldClicked] = useState(false);\n\n const rangeErrorClass = firstValueError || secondValueError ? classes.datePickerError : undefined;\n const rangeSuccessClass = firstValueSuccess || secondValueSuccess ? classes.datePickerSuccess : undefined;\n\n const handleInputChange = (value: string) => {\n if (onChange) {\n onChange({\n target: {\n value,\n name,\n },\n });\n }\n };\n\n const setFirstInputValue = (value: SetStateAction<string | DateType>) => {\n setStartInnerDate(value);\n handleInputChange(`${value} - ${inputSecondValue}`);\n };\n\n const setSecondInputValue = (value: SetStateAction<string | DateType>) => {\n setEndInnerDate(value);\n handleInputChange(`${inputFirstValue} - ${value}`);\n };\n\n const commonUseDatePickerArgs = {\n format,\n lang,\n disabled,\n readOnly,\n maskWithFormat,\n name,\n type,\n min,\n max,\n includeEdgeDates,\n dateFormatDelimiter,\n };\n\n const {\n handleChangeValue: handleChangeFirstValue,\n handleCalendarPick: handleFirstCalendarPick,\n handleSearch: handleSearchFirst,\n updateExternalDate: updateExternalFirstDate,\n getQuarterInfo: getFirstQuarterInfo,\n } = useDatePicker({\n currentValue: inputFirstValue,\n valueError: firstValueError,\n valueSuccess: firstValueSuccess,\n ...commonUseDatePickerArgs,\n\n setCorrectDates: setCorrectStartDates,\n setInnerDate: setFirstInputValue,\n onChangeValue: onChangeFirstValue,\n onCommitDate: onCommitFirstDate,\n });\n\n const {\n handleChangeValue: handleChangeSecondValue,\n handleCalendarPick: handleSecondCalendarPick,\n handleSearch: handleSearchSecond,\n updateExternalDate: updateExternalSecondDate,\n getQuarterInfo: getSecondQuarterInfo,\n } = useDatePicker({\n currentValue: inputSecondValue,\n valueError: secondValueError,\n valueSuccess: secondValueSuccess,\n ...commonUseDatePickerArgs,\n\n setCorrectDates: setCorrectEndDates,\n setInnerDate: setSecondInputValue,\n onChangeValue: onChangeSecondValue,\n onCommitDate: onCommitSecondDate,\n });\n\n const handleToggle = (currentOpened: boolean, event?: SyntheticEvent | Event) => {\n if (disabled || readOnly) {\n return;\n }\n\n const isCalendarOpen =\n (firstInputRef?.current?.contains((event?.target as Node) || null) ||\n secondInputRef?.current?.contains((event?.target as Node) || null)) &&\n (event as KeyboardEvent<HTMLInputElement>)?.code !== keys.Escape\n ? true\n : currentOpened;\n\n if (!isCalendarOpen) {\n setSecondTextFieldClicked(false);\n }\n\n if (onToggle) {\n return onToggle(isCalendarOpen, event);\n }\n\n setIsInnerOpen(isCalendarOpen);\n };\n\n const handleFocusFirstTextField = (event: FocusEvent<HTMLInputElement>) => {\n onFocusFirstTextfield?.(event);\n setSecondTextFieldClicked(false);\n };\n\n const handleFocusSecondTextField = (event: FocusEvent<HTMLInputElement>) => {\n onFocusSecondTextfield?.(event);\n setSecondTextFieldClicked(true);\n };\n\n const handleBlur = (\n event: FocusEvent<HTMLInputElement>,\n outerHandler?: FocusEventHandler<HTMLInputElement>,\n ) => {\n if (!inputFirstValue || !inputSecondValue || preserveInvalidOnBlur) {\n outerHandler?.(event);\n return;\n }\n\n const commonArgs = { lang, format, includeEdgeDates, min, max };\n\n let { originalDate: startOriginalDate } = getFormattedDates({\n value: inputFirstValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n let { originalDate: endOriginalDate } = getFormattedDates({\n value: inputSecondValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n if (!calendarFirstValue && correctStartDates.calendar) {\n startOriginalDate = new Date(correctStartDates.calendar);\n }\n\n if (!calendarSecondValue && correctEndDates.calendar) {\n endOriginalDate = new Date(correctEndDates.calendar);\n }\n\n const [startValue, endValue] = getSortedValues([startOriginalDate, endOriginalDate]);\n\n const {\n formattedDate: formattedFirstDate,\n originalDate: originalFirstDate,\n isoDate: isoFirstDate,\n } = getFormattedDates({\n value: startValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n const {\n formattedDate: formattedSecondDate,\n originalDate: originalSecondDate,\n isoDate: isoSecondDate,\n } = getFormattedDates({\n value: endValue,\n delimiter: dateFormatDelimiter,\n ...commonArgs,\n });\n\n if (formattedFirstDate !== inputFirstValue) {\n if (onChangeFirstValue) {\n onChangeFirstValue(event, formattedFirstDate, originalFirstDate, isoFirstDate);\n }\n\n if (onCommitFirstDate) {\n const dateInfo = originalFirstDate ? getFirstQuarterInfo(originalFirstDate) : undefined;\n\n onCommitFirstDate(formattedFirstDate, false, true, dateInfo, originalFirstDate, isoFirstDate);\n }\n }\n\n if (formattedSecondDate !== inputSecondValue) {\n if (onChangeSecondValue) {\n onChangeSecondValue(event, formattedSecondDate, originalSecondDate, isoSecondDate);\n }\n\n if (onCommitSecondDate) {\n const dateInfo = originalSecondDate ? getSecondQuarterInfo(originalSecondDate) : undefined;\n\n onCommitSecondDate(\n formattedSecondDate,\n false,\n true,\n dateInfo,\n originalSecondDate,\n isoSecondDate,\n );\n }\n }\n\n setFirstInputValue(startValue);\n setSecondInputValue(endValue);\n\n outerHandler?.(event);\n };\n\n const { onKeyDown } = useKeyNavigation({\n isCalendarOpen: isInnerOpen,\n format,\n maskWithFormat,\n delimiter: dateFormatDelimiter,\n closeOnEsc,\n onToggle: handleToggle,\n });\n\n const handleChangeStartOfRange = (chosenDate: Date, dateInfo?: DateInfo) => {\n if (!fullDateEntered) {\n handleFirstCalendarPick(chosenDate, dateInfo);\n handleSecondCalendarPick(undefined);\n\n return;\n }\n\n const prevValue = secondTextFieldClicked ? calendarFirstValue : calendarSecondValue;\n\n const [first, second] = getSortedValues([prevValue, chosenDate]);\n\n /**\n * NOTE: проверяем совпадает ли новая дата с предыдущей\n * Если нет, то вызываем handle{First,Second}CalendarPick\n */\n customDayjs.locale(lang);\n\n const firstFormatted = first ? customDayjs(first).format(format) : '';\n const secondFormatted = second ? customDayjs(second).format(format) : '';\n\n if (firstFormatted !== inputFirstValue) {\n handleFirstCalendarPick(first, dateInfo);\n }\n\n if (secondFormatted !== inputSecondValue) {\n handleSecondCalendarPick(second, dateInfo);\n }\n\n if (!firstValueError && !secondValueError && closeAfterDateSelect) {\n handleToggle(false);\n }\n };\n\n const handleChangeCalendarValue = ([firstDate, secondDate]: [DateType, DateType], dateInfo?: DateInfo) => {\n /**\n * NOTE: проверяем совпадает ли новая дата с предыдущей\n * Если нет, то вызываем handle{First,Second}CalendarPick\n */\n customDayjs.locale(lang);\n\n const firstFormatted = firstDate ? customDayjs(firstDate).format(format) : '';\n const secondFormatted = secondDate ? customDayjs(secondDate).format(format) : '';\n\n if (firstFormatted !== inputFirstValue) {\n handleFirstCalendarPick(firstDate, dateInfo);\n }\n\n if (secondFormatted !== inputSecondValue) {\n handleSecondCalendarPick(secondDate, dateInfo);\n }\n\n if (firstDate && secondDate && !firstValueError && !secondValueError && closeAfterDateSelect) {\n handleToggle(false);\n }\n };\n\n const RangeComponent = (\n <>\n {/* TODO https://github.com/salute-developers/plasma/issues/1227\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore */}\n <StyledRange\n ref={rangeRef}\n autoComplete={autoComplete}\n dividerIcon={dividerIcon}\n dividerVariant={dividerVariant}\n label={label}\n required={required}\n requiredPlacement={requiredPlacement}\n hasRequiredIndicator={hasRequiredIndicator}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n firstPlaceholder={firstPlaceholder}\n secondPlaceholder={secondPlaceholder}\n contentLeft={contentLeft}\n contentRight={contentRight}\n firstTextfieldTextBefore={firstTextfieldTextBefore}\n secondTextfieldTextBefore={secondTextfieldTextBefore}\n firstTextfieldTextAfter={firstTextfieldTextAfter}\n secondTextfieldTextAfter={secondTextfieldTextAfter}\n firstTextfieldContentLeft={firstTextfieldContentLeft}\n firstTextfieldContentRight={firstTextfieldContentRight}\n secondTextfieldContentLeft={secondTextfieldContentLeft}\n secondTextfieldContentRight={secondTextfieldContentRight}\n firstValue={inputFirstValue}\n secondValue={inputSecondValue}\n firstValueError={firstValueError}\n secondValueError={secondValueError}\n firstValueSuccess={firstValueSuccess}\n secondValueSuccess={secondValueSuccess}\n onChangeFirstValue={handleChangeFirstValue}\n onChangeSecondValue={handleChangeSecondValue}\n name={name}\n onSearchFirstValue={(_, date) => {\n handleSearchFirst(String(date));\n if (!calendarSecondValue || secondValueError) {\n rangeRef?.current?.secondTextField()?.current?.focus();\n }\n }}\n onSearchSecondValue={(_, date) => {\n handleSearchSecond(String(date));\n if (!calendarFirstValue || firstValueError) {\n rangeRef?.current?.firstTextField()?.current?.focus();\n }\n }}\n onFocusFirstTextfield={handleFocusFirstTextField}\n onFocusSecondTextfield={handleFocusSecondTextField}\n onBlurFirstTextfield={(event) => handleBlur(event, onBlurFirstTextfield)}\n onBlurSecondTextfield={(event) => handleBlur(event, onBlurSecondTextfield)}\n onKeyDown={onKeyDown}\n />\n </>\n );\n\n useEffect(() => {\n setFirstInputRef(rangeRef.current?.firstTextField());\n setSecondInputRef(rangeRef.current?.secondTextField());\n }, [rangeRef.current]);\n\n useEffect(() => {\n setIsInnerOpen((prevOpen) => prevOpen !== opened && opened);\n }, [opened]);\n\n useLayoutEffect(() => {\n if (!startDateValue) {\n updateExternalFirstDate(defaultFirstDate);\n }\n }, [defaultFirstDate, format, lang]);\n\n useLayoutEffect(() => {\n if (!endDateValue) {\n updateExternalSecondDate(defaultSecondDate);\n }\n }, [defaultSecondDate, format, lang]);\n\n const RootWrapper = useCallback<RootWrapperProps>(\n forwardRef(({ children, className: rootWrapperClassName, onClick }, rootWrapperRef) => (\n <Root\n ref={rootWrapperRef}\n view={view}\n size={size}\n eventTooltipSize={eventTooltipOptions?.size}\n className={rootWrapperClassName}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n onClick={onClick}\n >\n {children}\n </Root>\n )),\n [view, size, disabled, readOnly],\n );\n\n return (\n <Root\n ref={rootRef}\n view={view}\n size={size}\n eventTooltipSize={eventTooltipOptions?.size}\n className={cls(classes.datePickerRoot, className, { [classes.datePickerstretched]: stretched })}\n disabled={disabled}\n readOnly={!disabled && readOnly}\n {...rest}\n >\n <RangeDatePopover\n calendarValue={[calendarFirstValue, calendarSecondValue]}\n target={RangeComponent}\n opened={isInnerOpen}\n includeEdgeDates={includeEdgeDates}\n eventTooltipOptions={eventTooltipOptions}\n eventList={eventList}\n disabledList={disabledList}\n eventMonthList={eventMonthList}\n disabledMonthList={disabledMonthList}\n eventQuarterList={eventQuarterList}\n disabledQuarterList={disabledQuarterList}\n eventYearList={eventYearList}\n disabledYearList={disabledYearList}\n min={min}\n max={max}\n renderFromDate={renderFromDate}\n frame={frame}\n usePortal={usePortal}\n zIndex={zIndex}\n placement={placement}\n closeOnOverlayClick={closeOnOverlayClick}\n closeOnEsc={closeOnEsc}\n offset={offset}\n stretched={stretched}\n calendarContainerWidth={calendarContainerWidth}\n calendarContainerHeight={calendarContainerHeight}\n type={type}\n onToggle={handleToggle}\n lang={lang}\n isDoubleCalendar={isDoubleCalendar}\n rootWrapper={RootWrapper}\n onChangeStartOfRange={handleChangeStartOfRange}\n onChangeValue={handleChangeCalendarValue}\n setIsInnerOpen={setIsInnerOpen}\n />\n {leftHelper && (\n <LeftHelper className={cls(rangeErrorClass, rangeSuccessClass)}>{leftHelper}</LeftHelper>\n )}\n <InputHidden\n name={name}\n type=\"hidden\"\n datatype=\"datepicker-double\"\n data-datepicker=\"from\"\n value={inputFirstValue}\n ref={innerRefFirst}\n {...noop}\n />\n <InputHidden\n name={name}\n type=\"hidden\"\n datatype=\"datepicker-double\"\n data-datepicker=\"to\"\n value={inputSecondValue}\n ref={innerRefSecond}\n {...noop}\n />\n </Root>\n );\n },\n );\n\nexport const datePickerRangeConfig = {\n name: 'DatePickerRange',\n tag: 'div',\n layout: datePickerRangeRoot,\n base,\n variations: {\n view: {\n css: viewCSS,\n },\n size: {\n css: sizeCSS,\n },\n eventTooltipSize: {\n css: eventTooltipSizeCSS,\n },\n disabled: {\n css: disabledCSS,\n attrs: true,\n },\n readOnly: {\n css: readOnlyCSS,\n attrs: true,\n },\n },\n defaults: {\n size: 'm',\n view: 'default',\n eventTooltipSizeCSS: 'm',\n },\n};\n"],"names":["datePickerRangeRoot","Root","forwardRef","_ref","ref","_rangeRef$current","_rangeRef$current2","_outerValue$","_outerValue$2","className","autoComplete","_ref$isDoubleCalendar","isDoubleCalendar","_ref$opened","opened","outerValue","value","_ref$defaultFirstDate","defaultFirstDate","_ref$defaultSecondDat","defaultSecondDate","preserveInvalidOnBlur","label","leftHelper","contentLeft","contentRight","view","size","_ref$readOnly","readOnly","_ref$disabled","disabled","name","_ref$dividerVariant","dividerVariant","dividerIcon","firstValueError","secondValueError","firstValueSuccess","secondValueSuccess","firstPlaceholder","secondPlaceholder","firstTextfieldContentLeft","firstTextfieldContentRight","secondTextfieldContentLeft","secondTextfieldContentRight","firstTextfieldTextBefore","secondTextfieldTextBefore","firstTextfieldTextAfter","secondTextfieldTextAfter","required","_ref$requiredPlacemen","requiredPlacement","_ref$hasRequiredIndic","hasRequiredIndicator","_ref$format","format","_ref$lang","lang","maskWithFormat","min","max","renderFromDate","_ref$includeEdgeDates","includeEdgeDates","eventTooltipOptions","eventList","disabledList","eventMonthList","disabledMonthList","eventQuarterList","disabledQuarterList","eventYearList","disabledYearList","_ref$type","type","_ref$frame","frame","_ref$usePortal","usePortal","zIndex","_ref$placement","placement","_ref$closeOnOverlayCl","closeOnOverlayClick","_ref$closeOnEsc","closeOnEsc","_ref$closeAfterDateSe","closeAfterDateSelect","offset","calendarContainerWidth","calendarContainerHeight","stretched","onToggle","onChange","onChangeFirstValue","onChangeSecondValue","onCommitFirstDate","onCommitSecondDate","onFocusFirstTextfield","onFocusSecondTextfield","onBlurFirstTextfield","onBlurSecondTextfield","rest","_objectWithoutProperties","_excluded","rangeRef","createRef","rootRef","useRef","innerRefFirst","innerRefSecond","_useState","useState","current","firstTextField","_useState2","_slicedToArray","firstInputRef","setFirstInputRef","_useState3","secondTextField","_useState4","secondInputRef","setSecondInputRef","_useState5","_useState6","isInnerOpen","setIsInnerOpen","dateFormatDelimiter","getDateFormatDelimiter","_useState7","_useState8","startInnerDate","setStartInnerDate","startDateValue","startInitialValues","getFormattedDates","delimiter","_useState9","_useState10","endInnerDate","setEndInnerDate","endDateValue","endInitialValues","_useState11","calendar","originalDate","input","formattedDate","_useState12","correctStartDates","setCorrectStartDates","_useState13","_useState14","correctEndDates","setCorrectEndDates","calendarFirstValue","inputFirstValue","calendarSecondValue","inputSecondValue","fullDateEntered","Boolean","_useState15","_useState16","secondTextFieldClicked","setSecondTextFieldClicked","rangeErrorClass","classes","datePickerError","undefined","rangeSuccessClass","datePickerSuccess","handleInputChange","target","setFirstInputValue","concat","setSecondInputValue","commonUseDatePickerArgs","_useDatePicker","useDatePicker","_objectSpread","currentValue","valueError","valueSuccess","setCorrectDates","setInnerDate","onChangeValue","onCommitDate","handleChangeFirstValue","handleChangeValue","handleFirstCalendarPick","handleCalendarPick","handleSearchFirst","handleSearch","updateExternalFirstDate","updateExternalDate","getFirstQuarterInfo","getQuarterInfo","_useDatePicker2","handleChangeSecondValue","handleSecondCalendarPick","handleSearchSecond","updateExternalSecondDate","getSecondQuarterInfo","handleToggle","currentOpened","event","_firstInputRef$curren","_secondInputRef$curre","isCalendarOpen","contains","code","keys","Escape","handleFocusFirstTextField","handleFocusSecondTextField","handleBlur","outerHandler","commonArgs","_getFormattedDates","startOriginalDate","_getFormattedDates2","endOriginalDate","Date","_getSortedValues","getSortedValues","_getSortedValues2","startValue","endValue","_getFormattedDates3","formattedFirstDate","originalFirstDate","isoFirstDate","isoDate","_getFormattedDates4","formattedSecondDate","originalSecondDate","isoSecondDate","dateInfo","_useKeyNavigation","useKeyNavigation","onKeyDown","handleChangeStartOfRange","chosenDate","prevValue","_getSortedValues3","_getSortedValues4","first","second","customDayjs","locale","firstFormatted","secondFormatted","handleChangeCalendarValue","_ref2","_ref3","firstDate","secondDate","RangeComponent","React","createElement","Fragment","StyledRange","firstValue","secondValue","onSearchFirstValue","_","date","String","_rangeRef$current3","focus","onSearchSecondValue","_rangeRef$current4","useEffect","_rangeRef$current5","_rangeRef$current6","prevOpen","useLayoutEffect","RootWrapper","useCallback","_ref4","rootWrapperRef","children","rootWrapperClassName","onClick","eventTooltipSize","_extends","cls","datePickerRoot","_defineProperty","datePickerstretched","RangeDatePopover","calendarValue","rootWrapper","onChangeStartOfRange","LeftHelper","InputHidden","datatype","noop","datePickerRangeConfig","tag","layout","base","variations","css","viewCSS","sizeCSS","eventTooltipSizeCSS","disabledCSS","attrs","readOnlyCSS","defaults"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@salutejs/plasma-new-hope",
3
- "version": "0.340.0-canary.2314.19163733637.0",
3
+ "version": "0.340.0-canary.2314.19170036078.0",
4
4
  "description": "Salute Design System blueprint",
5
5
  "main": "cjs/index.js",
6
6
  "module": "es/index.js",
@@ -137,5 +137,5 @@
137
137
  "sideEffects": [
138
138
  "*.css"
139
139
  ],
140
- "gitHead": "84cf37d14b46d82a878f0124cd8096c2198ffacf"
140
+ "gitHead": "eca4a42eab08aa59f8c6cbaae6ad1ee73fcdedab"
141
141
  }
@@ -278,12 +278,14 @@ var comboboxRoot = function(Root) {
278
278
  var inputForkRef = (0, _plasmacore.useForkRef)(inputRef, ref);
279
279
  var listWrapperRef = (0, _react.useRef)(null);
280
280
  var treeId = (0, _utils.safeUseId)();
281
+ var filterCb = filter || _utils2.defaultFilter;
281
282
  var filteredItems = (0, _react.useMemo)(function() {
282
283
  return (0, _utils2.filterItems)(transformedItems, textValue, (0, _utils2.getTextValue)(multiple, value, valueToItemMap, renderValue), filter);
283
284
  }, [
284
285
  transformedItems,
285
286
  textValue,
286
- filter
287
+ filter,
288
+ value
287
289
  ]);
288
290
  var _useMemo1 = _sliced_to_array((0, _react.useMemo)(function() {
289
291
  return (0, _getPathMaps.getPathMap)(filteredItems);
@@ -624,22 +626,23 @@ var comboboxRoot = function(Root) {
624
626
  // Эффект для раскрытия дерева при поиске.
625
627
  (0, _react.useLayoutEffect)(function() {
626
628
  if (treeView) {
627
- // Если пользователь выбирает элемент, то выходим из эффекта.
628
- if (textValue === (0, _utils2.getTextValue)(multiple, value, valueToItemMap, renderValue)) {
629
- return;
630
- }
631
- // Если поле ввода стало пустым, то скрывает все узлы дерева.
632
- if (textValue === '') {
629
+ // Если поле ввода стало пустым или если пользователь выбирает элемент,
630
+ // то скрываем все узлы дерева и выходим из эффекта.
631
+ if (textValue === '' || textValue === (0, _utils2.getTextValue)(multiple, value, valueToItemMap, renderValue)) {
633
632
  dispatchTreePath({
634
633
  type: 'reset'
635
634
  });
636
- } else {
637
- // Иначе раскрываем все узлы, когда пользователь начинает вводить текст в поле ввода.
638
- dispatchTreePath({
639
- type: 'expand_all',
640
- value: filteredItems
641
- });
635
+ return;
642
636
  }
637
+ // Иначе раскрываем все узлы, когда пользователь начинает вводить текст в поле ввода.
638
+ dispatchTreePath({
639
+ type: 'expand_by_key',
640
+ value: {
641
+ filteredItems: filteredItems,
642
+ filterCb: filterCb,
643
+ textValue: textValue
644
+ }
645
+ });
643
646
  }
644
647
  }, [
645
648
  textValue
@@ -71,23 +71,44 @@ function removeObjectAtPath(obj, path) {
71
71
  }
72
72
  return obj;
73
73
  }
74
- // Утилита, которая получает на вход список отфильтрованных элементов
75
- // и возвращает объект путей раскрытых элементов дерева.
76
- function generateNestedTreePathFromFilteredItems(items) {
74
+ /**
75
+ * Утилита, которая получает на вход список отфильтрованных элементов и
76
+ * callback, с помощью которого эти элементы были отфильтрованы.
77
+ * Возвращает TreePathState, т.е. список раскрытых групп.
78
+ * По умолчанию группа не раскрывается, если в ней не было найдено ни одного элемента.
79
+ * Но т.к. поиск может осуществляться как по элементам, так и по группам,
80
+ * то может возникнуть ситуация, когда будет найдена как группа с определенным названием,
81
+ * так и элемент с таким же названием внутри нее, и в таком случае мы должны частично раскрыть группу,
82
+ * вплоть то найденного элемента.
83
+ * Если найдена только группа, без элементов внутри нее, то саму эту группу
84
+ * раскрывать не нужно. Нужно раскрыть только родителя этой группы.
85
+ */ function generateNestedTreePathFromFilteredItems(filteredItems, filterCb, textValue) {
77
86
  var result = {};
78
- var buildTree = function(currentItems, currentLevel) {
79
- if (!currentItems || !Array.isArray(currentItems)) return;
87
+ function traverse(items, currentPath) {
88
+ var hasFoundItems = false;
80
89
  var _iteratorNormalCompletion = true, _didIteratorError = false, _iteratorError = undefined;
81
90
  try {
82
- for(var _iterator = currentItems[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
91
+ for(var _iterator = items[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true){
83
92
  var item = _step.value;
84
- if ((item === null || item === void 0 ? void 0 : item.value) && (item === null || item === void 0 ? void 0 : item.items)) {
85
- // Создаем новый уровень для текущего значения
86
- currentLevel[item === null || item === void 0 ? void 0 : item.value] = {};
87
- // Рекурсивно обрабатываем дочерние элементы
88
- if ((item === null || item === void 0 ? void 0 : item.items) && (item === null || item === void 0 ? void 0 : item.items.length) > 0) {
89
- buildTree(item === null || item === void 0 ? void 0 : item.items, currentLevel[item === null || item === void 0 ? void 0 : item.value]);
93
+ var isFound = filterCb(item, textValue);
94
+ if (item.items && item.items.length > 0) {
95
+ // Обрабатываем детей
96
+ var childPath = {};
97
+ var foundInChildren = traverse(item.items, childPath);
98
+ if (foundInChildren) {
99
+ // Если в детях найдены элементы - добавляем путь
100
+ currentPath[item.value] = childPath;
101
+ hasFoundItems = true;
90
102
  }
103
+ // Если сама группа найдена, но в детях ничего нет - НЕ добавляем путь
104
+ // Просто отмечаем что что-то найдено на этом уровне
105
+ if (isFound && !foundInChildren) {
106
+ hasFoundItems = true;
107
+ }
108
+ } else if (isFound) {
109
+ // Для конечного элемента не добавляем путь в currentPath,
110
+ // но отмечаем что на этом уровне есть найденные элементы
111
+ hasFoundItems = true;
91
112
  }
92
113
  }
93
114
  } catch (err) {
@@ -104,8 +125,9 @@ function generateNestedTreePathFromFilteredItems(items) {
104
125
  }
105
126
  }
106
127
  }
107
- };
108
- buildTree(items, result);
128
+ return hasFoundItems;
129
+ }
130
+ traverse(filteredItems, result);
109
131
  return result;
110
132
  }
111
133
  function treePathReducer(state, action) {
@@ -127,10 +149,10 @@ function treePathReducer(state, action) {
127
149
  }
128
150
  return stateCopy;
129
151
  }
130
- case 'expand_all':
152
+ case 'expand_by_key':
131
153
  {
132
- var filteredItem = action.value;
133
- return generateNestedTreePathFromFilteredItems(filteredItem);
154
+ var _action_value = action.value, filteredItems = _action_value.filteredItems, filterCb = _action_value.filterCb, textValue = _action_value.textValue;
155
+ return generateNestedTreePathFromFilteredItems(filteredItems, filterCb, textValue);
134
156
  }
135
157
  case 'open_level':
136
158
  {