@leav/ui 1.6.0-e2820b2f → 1.6.0-f4ee7377

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 (135) hide show
  1. package/dist/_gqlTypes/index.d.ts +633 -701
  2. package/dist/_gqlTypes/index.js +49 -167
  3. package/dist/_gqlTypes/index.js.map +1 -1
  4. package/dist/_queries/trees/treeNodeChildrenQuery.js +2 -0
  5. package/dist/_queries/trees/treeNodeChildrenQuery.js.map +1 -1
  6. package/dist/components/AttributesSelectionList/sharedComponents.d.ts +159 -153
  7. package/dist/components/Explorer/Explorer.js +5 -3
  8. package/dist/components/Explorer/Explorer.js.map +1 -1
  9. package/dist/components/Explorer/TableCell.js +5 -7
  10. package/dist/components/Explorer/TableCell.js.map +1 -1
  11. package/dist/components/Explorer/TableNameCell.js +3 -2
  12. package/dist/components/Explorer/TableNameCell.js.map +1 -1
  13. package/dist/components/Explorer/_queries/useExplorerData.d.ts +7 -7
  14. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js +3 -2
  15. package/dist/components/Explorer/actions-item/useEditStatusItemAction.js.map +1 -1
  16. package/dist/components/Explorer/actions-item/useReplaceItemAction.d.ts +2 -1
  17. package/dist/components/Explorer/actions-item/useReplaceItemAction.js +5 -4
  18. package/dist/components/Explorer/actions-item/useReplaceItemAction.js.map +1 -1
  19. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.d.ts +10 -0
  20. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js +46 -0
  21. package/dist/components/Explorer/actions-mass/export/ExportProfileSelectionModal.js.map +1 -0
  22. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.d.ts +1 -0
  23. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js +17 -0
  24. package/dist/components/Explorer/actions-mass/export/content/NoProfiles.js.map +1 -0
  25. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.d.ts +8 -0
  26. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js +49 -0
  27. package/dist/components/Explorer/actions-mass/export/content/ProfilesSelection.js.map +1 -0
  28. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.d.ts +27 -0
  29. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js +48 -0
  30. package/dist/components/Explorer/actions-mass/export/useGetLibraryExportProfiles.js.map +1 -0
  31. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js +3 -2
  32. package/dist/components/Explorer/actions-mass/useDeactivateMassAction.js.map +1 -1
  33. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js +3 -2
  34. package/dist/components/Explorer/actions-mass/useDeleteLinkValues.js.map +1 -1
  35. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js +3 -2
  36. package/dist/components/Explorer/actions-mass/useEditAttributeMassAction.js.map +1 -1
  37. package/dist/components/Explorer/actions-mass/useExportMassAction.d.ts +7 -4
  38. package/dist/components/Explorer/actions-mass/useExportMassAction.js +80 -73
  39. package/dist/components/Explorer/actions-mass/useExportMassAction.js.map +1 -1
  40. package/dist/components/Explorer/actions-mass/useMassActions.js +3 -2
  41. package/dist/components/Explorer/actions-mass/useMassActions.js.map +1 -1
  42. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js +3 -2
  43. package/dist/components/Explorer/actions-primary/useCreatePrimaryAction.js.map +1 -1
  44. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.d.ts +2 -1
  45. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js +5 -4
  46. package/dist/components/Explorer/actions-primary/useLinkPrimaryAction.js.map +1 -1
  47. package/dist/components/Explorer/link-item/LinkModal.d.ts +1 -0
  48. package/dist/components/Explorer/link-item/LinkModal.js +2 -2
  49. package/dist/components/Explorer/link-item/LinkModal.js.map +1 -1
  50. package/dist/components/Explorer/list-saved-views/SavedViews.js +4 -3
  51. package/dist/components/Explorer/list-saved-views/SavedViews.js.map +1 -1
  52. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js +5 -8
  53. package/dist/components/Explorer/manage-view-settings/_shared/ColumnItem.js.map +1 -1
  54. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js +3 -2
  55. package/dist/components/Explorer/manage-view-settings/configure-display/attributes/SelectVisibleAttributes.js.map +1 -1
  56. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js +7 -6
  57. package/dist/components/Explorer/manage-view-settings/filter-items/FilterItems.js.map +1 -1
  58. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js +3 -2
  59. package/dist/components/Explorer/manage-view-settings/filter-items/FilterListItem.js.map +1 -1
  60. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js +4 -3
  61. package/dist/components/Explorer/manage-view-settings/open-view-settings/useOpenViewSettings.js.map +1 -1
  62. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js +3 -2
  63. package/dist/components/Explorer/manage-view-settings/router-menu/SettingItem.js.map +1 -1
  64. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js +3 -2
  65. package/dist/components/Explorer/manage-view-settings/router-menu/SettingsPanel.js.map +1 -1
  66. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js +3 -2
  67. package/dist/components/Explorer/manage-view-settings/save-view/LabelViewFormModal.js.map +1 -1
  68. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js +3 -2
  69. package/dist/components/Explorer/manage-view-settings/save-view/useCreateNewView.js.map +1 -1
  70. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js +4 -3
  71. package/dist/components/Explorer/manage-view-settings/save-view/useDeleteView.js.map +1 -1
  72. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js +3 -2
  73. package/dist/components/Explorer/manage-view-settings/save-view/useEditLabelView.js.map +1 -1
  74. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js +3 -2
  75. package/dist/components/Explorer/manage-view-settings/save-view/useResetView.js.map +1 -1
  76. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js +3 -2
  77. package/dist/components/Explorer/manage-view-settings/save-view/useShareView.js.map +1 -1
  78. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js +3 -2
  79. package/dist/components/Explorer/manage-view-settings/save-view/useUpdateView.js.map +1 -1
  80. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js +7 -6
  81. package/dist/components/Explorer/manage-view-settings/sort-items/SortItems.js.map +1 -1
  82. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js +3 -2
  83. package/dist/components/Explorer/manage-view-settings/sort-items/SortListItem.js.map +1 -1
  84. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js +23 -9
  85. package/dist/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.js.map +1 -1
  86. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js +3 -2
  87. package/dist/components/Filters/filter-items/filter-type/FilterDropDown.js.map +1 -1
  88. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js +4 -3
  89. package/dist/components/Filters/filter-items/filter-type/FilterValueListDropDown.js.map +1 -1
  90. package/dist/components/LibraryItemsList/MenuView/MenuView.js +4 -4
  91. package/dist/components/LibraryItemsList/MenuView/MenuView.js.map +1 -1
  92. package/dist/components/LibraryItemsList/ViewPanel/View/View.js +3 -2
  93. package/dist/components/LibraryItemsList/ViewPanel/View/View.js.map +1 -1
  94. package/dist/components/Notifications/hooks/useNotificationSubscription.js +3 -2
  95. package/dist/components/Notifications/hooks/useNotificationSubscription.js.map +1 -1
  96. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js +5 -20
  97. package/dist/components/RecordEdition/EditRecordContent/shared/ValuesVersionBtn/ValuesVersionBtn.js.map +1 -1
  98. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js +4 -3
  99. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/link-record/useLinkRecords.js.map +1 -1
  100. package/dist/components/RecordEdition/EditRecordContent/uiElements/LinkField/shared/ExplorerWrapper.d.ts +53 -51
  101. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js +4 -3
  102. package/dist/components/RecordEdition/EditRecordContent/uiElements/StandardField/StandardField.js.map +1 -1
  103. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js +9 -2
  104. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/TreeField.js.map +1 -1
  105. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeFieldWrapper.d.ts +53 -51
  106. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js +3 -2
  107. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/display-tree-node/TreeNodeItem.js.map +1 -1
  108. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.d.ts +2 -1
  109. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js +4 -7
  110. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/SelectTreeNodeModal.js.map +1 -1
  111. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.d.ts +3 -2
  112. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js +2 -2
  113. package/dist/components/RecordEdition/EditRecordContent/uiElements/TreeField/manage-tree-node-selection/useManageTreeNodeSelection.js.map +1 -1
  114. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js +3 -2
  115. package/dist/components/RecordEdition/EditRecordContent/uiElements/shared/ComputeIndicator.js.map +1 -1
  116. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js +3 -2
  117. package/dist/components/RecordEdition/EditRecordSidebar/RecordSummary/RecordInformations/RecordInformations.js.map +1 -1
  118. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js +4 -3
  119. package/dist/components/RecordEdition/EditRecordSidebar/ValuesSummary/ValuesSummary.js.map +1 -1
  120. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js +3 -2
  121. package/dist/components/RecordEdition/EditRecordSidebar/ValuesVersions/ValuesVersions.js.map +1 -1
  122. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.d.ts +1 -0
  123. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js +7 -7
  124. package/dist/components/SelectRecordForLinkModal/SelectRecordForLinkModal.js.map +1 -1
  125. package/dist/components/SelectTreeNode/SelectTreeNode.d.ts +2 -1
  126. package/dist/components/SelectTreeNode/SelectTreeNode.js +3 -3
  127. package/dist/components/SelectTreeNode/SelectTreeNode.js.map +1 -1
  128. package/dist/components/SelectTreeNode/SelectTreeNodeContent.d.ts +2 -1
  129. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js +6 -2
  130. package/dist/components/SelectTreeNode/SelectTreeNodeContent.js.map +1 -1
  131. package/dist/components/SelectTreeNode/TreeNodeTitle.js +3 -2
  132. package/dist/components/SelectTreeNode/TreeNodeTitle.js.map +1 -1
  133. package/dist/locales/en/shared.json +13 -2
  134. package/dist/locales/fr/shared.json +13 -2
  135. package/package.json +6 -4
@@ -1,10 +1,23 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { KitSelect } from 'aristid-ds';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { KitTree, KitTypography } from 'aristid-ds';
3
3
  import { AttributeConditionFilter } from '../../../../types';
4
4
  import { useSharedTranslation } from '../../../../hooks/useSharedTranslation';
5
- export const BooleanAttributeDropDown = ({ filter, onFilterChange, selectDropDownRef, }) => {
5
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
6
+ import { faCheck } from '@fortawesome/free-solid-svg-icons';
7
+ import styled from 'styled-components';
8
+ const TreeNodeTitleContainer = styled.div `
9
+ display: flex;
10
+ align-items: center;
11
+ justify-content: space-between;
12
+ `;
13
+ const CheckIcon = styled(FontAwesomeIcon) `
14
+ color: var(--general-utilities-text-blue);
15
+ font-size: calc(var(--general-typography-fontSize7) * 1px);
16
+ `;
17
+ export const BooleanAttributeDropDown = ({ filter, onFilterChange }) => {
6
18
  const { t } = useSharedTranslation();
7
- const _onSelectionChanged = value => {
19
+ const _onSelectionChanged = values => {
20
+ const value = values[0] ? String(values[0]) : undefined;
8
21
  const filterData = value === undefined
9
22
  ? {
10
23
  ...filter,
@@ -22,14 +35,15 @@ export const BooleanAttributeDropDown = ({ filter, onFilterChange, selectDropDow
22
35
  };
23
36
  const valuesOptions = [
24
37
  {
25
- label: t('explorer.true'),
26
- value: 'true',
38
+ title: t('explorer.true'),
39
+ key: 'true',
27
40
  },
28
41
  {
29
- label: t('explorer.false'),
30
- value: 'false',
42
+ title: t('explorer.false'),
43
+ key: 'false',
31
44
  },
32
45
  ];
33
- return (_jsx(KitSelect, { options: valuesOptions, onChange: _onSelectionChanged, value: filter.value, getPopupContainer: () => selectDropDownRef?.current ?? document.body, placeholder: t('filters.equal') }));
46
+ const TreeNodeTitle = ({ node }) => (_jsxs(TreeNodeTitleContainer, { children: [_jsx(KitTypography.Text, { size: "fontSize5", children: node.title }), node.key === filter.value && _jsx(CheckIcon, { icon: faCheck })] }));
47
+ return (_jsx(KitTree, { treeData: valuesOptions, selectedKeys: [filter.value], titleRender: node => _jsx(TreeNodeTitle, { node: node }), onSelect: _onSelectionChanged }));
34
48
  };
35
49
  //# sourceMappingURL=BooleanAttributeDropdown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BooleanAttributeDropdown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,SAAS,EAAC,MAAM,YAAY,CAAC;AACrC,OAAO,EAAC,wBAAwB,EAAC,MAAM,WAAW,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAGpE,MAAM,CAAC,MAAM,wBAAwB,GAAoD,CAAC,EACtF,MAAM,EACN,cAAc,EACd,iBAAiB,GACpB,EAAE,EAAE;IACD,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,mBAAmB,GAAiD,KAAK,CAAC,EAAE;QAC9E,MAAM,UAAU,GACZ,KAAK,KAAK,SAAS;YACf,CAAC,CAAC;gBACI,GAAG,MAAM;gBACT,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI;gBACX,cAAc,EAAE,SAAS;aAC5B;YACH,CAAC,CAAC;gBACI,GAAG,MAAM;gBACT,SAAS,EAAE,wBAAwB,CAAC,KAAK;gBACzC,KAAK;gBACL,cAAc,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;aAC9E,CAAC;QAEZ,cAAc,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG;QAClB;YACI,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC;YACzB,KAAK,EAAE,MAAM;SAChB;QACD;YACI,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAC1B,KAAK,EAAE,OAAO;SACjB;KACJ,CAAC;IAEF,OAAO,CACH,KAAC,SAAS,IACN,OAAO,EAAE,aAAa,EACtB,QAAQ,EAAE,mBAAmB,EAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,iBAAiB,EAAE,GAAG,EAAE,CAAC,iBAAiB,EAAE,OAAO,IAAI,QAAQ,CAAC,IAAI,EACpE,WAAW,EAAE,CAAC,CAAC,eAAe,CAAC,GACjC,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent} from 'react';\nimport {KitSelect} from 'aristid-ds';\nimport {AttributeConditionFilter} from '_ui/types';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IFilterChildrenDropDownProps} from './_types';\n\nexport const BooleanAttributeDropDown: FunctionComponent<IFilterChildrenDropDownProps> = ({\n filter,\n onFilterChange,\n selectDropDownRef,\n}) => {\n const {t} = useSharedTranslation();\n const _onSelectionChanged: ComponentProps<typeof KitSelect>['onChange'] = value => {\n const filterData =\n value === undefined\n ? {\n ...filter,\n condition: null,\n value: null,\n formattedValue: undefined,\n }\n : {\n ...filter,\n condition: AttributeConditionFilter.EQUAL,\n value,\n formattedValue: value === 'true' ? t('explorer.true') : t('explorer.false'),\n };\n\n onFilterChange(filterData);\n };\n\n const valuesOptions = [\n {\n label: t('explorer.true'),\n value: 'true',\n },\n {\n label: t('explorer.false'),\n value: 'false',\n },\n ];\n\n return (\n <KitSelect\n options={valuesOptions}\n onChange={_onSelectionChanged}\n value={filter.value}\n getPopupContainer={() => selectDropDownRef?.current ?? document.body}\n placeholder={t('filters.equal')}\n />\n );\n};\n"]}
1
+ {"version":3,"file":"BooleanAttributeDropdown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/BooleanAttributeDropdown.tsx"],"names":[],"mappings":";AAIA,OAAO,EAAC,OAAO,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAClD,OAAO,EAAC,wBAAwB,EAAC,MAAM,WAAW,CAAC;AACnD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AAGpE,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,OAAO,EAAC,MAAM,mCAAmC,CAAC;AAC1D,OAAO,MAAM,MAAM,mBAAmB,CAAC;AAEvC,MAAM,sBAAsB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIxC,CAAC;AAEF,MAAM,SAAS,GAAG,MAAM,CAAC,eAAe,CAAC,CAAA;;;CAGxC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAoD,CAAC,EAAC,MAAM,EAAE,cAAc,EAAC,EAAE,EAAE;IAClH,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IAEnC,MAAM,mBAAmB,GAA+C,MAAM,CAAC,EAAE;QAC7E,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAExD,MAAM,UAAU,GACZ,KAAK,KAAK,SAAS;YACf,CAAC,CAAC;gBACI,GAAG,MAAM;gBACT,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,IAAI;gBACX,cAAc,EAAE,SAAS;aAC5B;YACH,CAAC,CAAC;gBACI,GAAG,MAAM;gBACT,SAAS,EAAE,wBAAwB,CAAC,KAAK;gBACzC,KAAK;gBACL,cAAc,EAAE,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC;aAC9E,CAAC;QAEZ,cAAc,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG;QAClB;YACI,KAAK,EAAE,CAAC,CAAC,eAAe,CAAC;YACzB,GAAG,EAAE,MAAM;SACd;QACD;YACI,KAAK,EAAE,CAAC,CAAC,gBAAgB,CAAC;YAC1B,GAAG,EAAE,OAAO;SACf;KACJ,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,EAAC,IAAI,EAA0B,EAAE,EAAE,CAAC,CACvD,MAAC,sBAAsB,eACnB,KAAC,aAAa,CAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAAE,IAAI,CAAC,KAAK,GAAsB,EACrE,IAAI,CAAC,GAAG,KAAK,MAAM,CAAC,KAAK,IAAI,KAAC,SAAS,IAAC,IAAI,EAAE,OAAO,GAAI,IACrC,CAC5B,CAAC;IAEF,OAAO,CACH,KAAC,OAAO,IACJ,QAAQ,EAAE,aAAa,EACvB,YAAY,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAC5B,WAAW,EAAE,IAAI,CAAC,EAAE,CAAC,KAAC,aAAa,IAAC,IAAI,EAAE,IAAuB,GAAI,EACrE,QAAQ,EAAE,mBAAmB,GAC/B,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent} from 'react';\nimport {KitTree, KitTypography} from 'aristid-ds';\nimport {AttributeConditionFilter} from '_ui/types';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IFilterChildrenDropDownProps} from './_types';\nimport {type ITreeMapElement} from '_ui/components/SelectTreeNode/_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faCheck} from '@fortawesome/free-solid-svg-icons';\nimport styled from 'styled-components';\n\nconst TreeNodeTitleContainer = styled.div`\n display: flex;\n align-items: center;\n justify-content: space-between;\n`;\n\nconst CheckIcon = styled(FontAwesomeIcon)`\n color: var(--general-utilities-text-blue);\n font-size: calc(var(--general-typography-fontSize7) * 1px);\n`;\n\nexport const BooleanAttributeDropDown: FunctionComponent<IFilterChildrenDropDownProps> = ({filter, onFilterChange}) => {\n const {t} = useSharedTranslation();\n\n const _onSelectionChanged: ComponentProps<typeof KitTree>['onSelect'] = values => {\n const value = values[0] ? String(values[0]) : undefined;\n\n const filterData =\n value === undefined\n ? {\n ...filter,\n condition: null,\n value: null,\n formattedValue: undefined,\n }\n : {\n ...filter,\n condition: AttributeConditionFilter.EQUAL,\n value,\n formattedValue: value === 'true' ? t('explorer.true') : t('explorer.false'),\n };\n\n onFilterChange(filterData);\n };\n\n const valuesOptions = [\n {\n title: t('explorer.true'),\n key: 'true',\n },\n {\n title: t('explorer.false'),\n key: 'false',\n },\n ];\n\n const TreeNodeTitle = ({node}: {node: ITreeMapElement}) => (\n <TreeNodeTitleContainer>\n <KitTypography.Text size=\"fontSize5\">{node.title}</KitTypography.Text>\n {node.key === filter.value && <CheckIcon icon={faCheck} />}\n </TreeNodeTitleContainer>\n );\n\n return (\n <KitTree\n treeData={valuesOptions}\n selectedKeys={[filter.value]}\n titleRender={node => <TreeNodeTitle node={node as ITreeMapElement} />}\n onSelect={_onSelectionChanged}\n />\n );\n};\n"]}
@@ -3,13 +3,14 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  // This file is released under LGPL V3
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { useRef } from 'react';
6
- import { FaClock, FaTrash } from 'react-icons/fa';
7
6
  import styled from 'styled-components';
8
7
  import { KitDivider, KitButton } from 'aristid-ds';
9
8
  import { useSharedTranslation } from '../../../../hooks/useSharedTranslation';
10
9
  import { FilterDropdownContent } from './FilterDropdownContent';
11
10
  import { useFiltersContext } from '../../useFiltersContext';
12
11
  import { FiltersActionTypes } from '../../context/filtersReducer';
12
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
13
+ import { faClockRotateLeft, faTrash } from '@fortawesome/free-solid-svg-icons';
13
14
  const FilterDropDownStyledDiv = styled.div `
14
15
  display: flex;
15
16
  flex-direction: column;
@@ -35,6 +36,6 @@ export const FilterDropDown = ({ filter, canRemove }) => {
35
36
  id: filter.id,
36
37
  },
37
38
  });
38
- return (_jsxs(FilterDropDownStyledDiv, { children: [_jsx(FilterDropdownContent, { filter: filter, onFilterChange: onFilterChange, selectDropDownRef: selectDropDownRef }), _jsx("div", { ref: selectDropDownRef }), _jsx(KitDivider, { noMargin: true }), _jsx(KitButton, { type: "action", icon: _jsx(FaClock, {}), onClick: _onResetFilter, children: t('explorer.reset-filter') }), canRemove && (_jsx(KitButton, { type: "action", icon: _jsx(FaTrash, {}), onClick: _onDeleteFilter, children: t('global.delete') }))] }));
39
+ return (_jsxs(FilterDropDownStyledDiv, { children: [_jsx(FilterDropdownContent, { filter: filter, onFilterChange: onFilterChange, selectDropDownRef: selectDropDownRef }), _jsx("div", { ref: selectDropDownRef }), _jsx(KitDivider, { noMargin: true }), _jsx(KitButton, { type: "action", icon: _jsx(FontAwesomeIcon, { icon: faClockRotateLeft }), onClick: _onResetFilter, children: t('global.reset') }), canRemove && (_jsx(KitButton, { type: "action", icon: _jsx(FontAwesomeIcon, { icon: faTrash }), onClick: _onDeleteFilter, danger: true, children: t('global.delete') }))] }));
39
40
  };
40
41
  //# sourceMappingURL=FilterDropDown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/FilterDropDown.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAA8C,MAAM,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,EAAC,OAAO,EAAE,OAAO,EAAC,MAAM,gBAAgB,CAAC;AAChD,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAGhE,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIzC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA8C,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,EAAE,EAAE;IAC7F,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,QAAQ,EAAC,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAmE,CAAC,UAAoB,EAAE,EAAE,CAC5G,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,oBAAoB;QAC7C,OAAO,EAAE,UAAU;KACtB,CAAC,CAAC;IAEP,MAAM,cAAc,GAAgD,GAAG,EAAE,CACrE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,YAAY;QACrC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,MAAM,eAAe,GAAgD,GAAG,EAAE,CACtE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,aAAa;QACtC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,uBAAuB,eACpB,KAAC,qBAAqB,IAClB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,GACtC,EACF,cAAK,GAAG,EAAE,iBAAiB,GAAI,EAC/B,KAAC,UAAU,IAAC,QAAQ,SAAG,EACvB,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,OAAO,KAAG,EAAE,OAAO,EAAE,cAAc,YAC9D,CAAC,CAAC,uBAAuB,CAAC,GACnB,EACX,SAAS,IAAI,CACV,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,OAAO,KAAG,EAAE,OAAO,EAAE,eAAe,YAC/D,CAAC,CAAC,eAAe,CAAC,GACX,CACf,IACqB,CAC7B,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useRef} from 'react';\nimport {FaClock, FaTrash} from 'react-icons/fa';\nimport styled from 'styled-components';\nimport {KitDivider, KitButton} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {FilterDropdownContent} from './FilterDropdownContent';\nimport {useFiltersContext} from '../../useFiltersContext';\nimport {FiltersActionTypes} from '../../context/filtersReducer';\nimport {type IUIFilterDropDownProps, type UIFilter} from '../../_types';\n\nconst FilterDropDownStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-xxs) * 1px);\n`;\n\nexport const FilterDropDown: FunctionComponent<IUIFilterDropDownProps> = ({filter, canRemove}) => {\n const {t} = useSharedTranslation();\n const {dispatch} = useFiltersContext();\n const selectDropDownRef = useRef<HTMLDivElement>(null);\n\n const onFilterChange: ComponentProps<typeof FilterDropdownContent>['onFilterChange'] = (filterData: UIFilter) =>\n dispatch({\n type: FiltersActionTypes.CHANGE_FILTER_CONFIG,\n payload: filterData,\n });\n\n const _onResetFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.RESET_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n const _onDeleteFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.REMOVE_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n return (\n <FilterDropDownStyledDiv>\n <FilterDropdownContent\n filter={filter}\n onFilterChange={onFilterChange}\n selectDropDownRef={selectDropDownRef}\n />\n <div ref={selectDropDownRef} />\n <KitDivider noMargin />\n <KitButton type=\"action\" icon={<FaClock />} onClick={_onResetFilter}>\n {t('explorer.reset-filter')}\n </KitButton>\n {canRemove && (\n <KitButton type=\"action\" icon={<FaTrash />} onClick={_onDeleteFilter}>\n {t('global.delete')}\n </KitButton>\n )}\n </FilterDropDownStyledDiv>\n );\n};\n"]}
1
+ {"version":3,"file":"FilterDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/FilterDropDown.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAA8C,MAAM,EAAC,MAAM,OAAO,CAAC;AAC1E,OAAO,MAAM,MAAM,mBAAmB,CAAC;AACvC,OAAO,EAAC,UAAU,EAAE,SAAS,EAAC,MAAM,YAAY,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAC,iBAAiB,EAAC,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAC,kBAAkB,EAAC,MAAM,8BAA8B,CAAC;AAEhE,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,iBAAiB,EAAE,OAAO,EAAC,MAAM,mCAAmC,CAAC;AAE7E,MAAM,uBAAuB,GAAG,MAAM,CAAC,GAAG,CAAA;;;;CAIzC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAA8C,CAAC,EAAC,MAAM,EAAE,SAAS,EAAC,EAAE,EAAE;IAC7F,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,MAAM,EAAC,QAAQ,EAAC,GAAG,iBAAiB,EAAE,CAAC;IACvC,MAAM,iBAAiB,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEvD,MAAM,cAAc,GAAmE,CAAC,UAAoB,EAAE,EAAE,CAC5G,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,oBAAoB;QAC7C,OAAO,EAAE,UAAU;KACtB,CAAC,CAAC;IAEP,MAAM,cAAc,GAAgD,GAAG,EAAE,CACrE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,YAAY;QACrC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,MAAM,eAAe,GAAgD,GAAG,EAAE,CACtE,QAAQ,CAAC;QACL,IAAI,EAAE,kBAAkB,CAAC,aAAa;QACtC,OAAO,EAAE;YACL,EAAE,EAAE,MAAM,CAAC,EAAE;SAChB;KACJ,CAAC,CAAC;IAEP,OAAO,CACH,MAAC,uBAAuB,eACpB,KAAC,qBAAqB,IAClB,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,cAAc,EAC9B,iBAAiB,EAAE,iBAAiB,GACtC,EACF,cAAK,GAAG,EAAE,iBAAiB,GAAI,EAC/B,KAAC,UAAU,IAAC,QAAQ,SAAG,EACvB,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,iBAAiB,GAAI,EAAE,OAAO,EAAE,cAAc,YAC/F,CAAC,CAAC,cAAc,CAAC,GACV,EACX,SAAS,IAAI,CACV,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,OAAO,GAAI,EAAE,OAAO,EAAE,eAAe,EAAE,MAAM,kBAC9F,CAAC,CAAC,eAAe,CAAC,GACX,CACf,IACqB,CAC7B,CAAC;AACN,CAAC,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {type ComponentProps, type FunctionComponent, useRef} from 'react';\nimport styled from 'styled-components';\nimport {KitDivider, KitButton} from 'aristid-ds';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {FilterDropdownContent} from './FilterDropdownContent';\nimport {useFiltersContext} from '../../useFiltersContext';\nimport {FiltersActionTypes} from '../../context/filtersReducer';\nimport {type IUIFilterDropDownProps, type UIFilter} from '../../_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faClockRotateLeft, faTrash} from '@fortawesome/free-solid-svg-icons';\n\nconst FilterDropDownStyledDiv = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-xxs) * 1px);\n`;\n\nexport const FilterDropDown: FunctionComponent<IUIFilterDropDownProps> = ({filter, canRemove}) => {\n const {t} = useSharedTranslation();\n const {dispatch} = useFiltersContext();\n const selectDropDownRef = useRef<HTMLDivElement>(null);\n\n const onFilterChange: ComponentProps<typeof FilterDropdownContent>['onFilterChange'] = (filterData: UIFilter) =>\n dispatch({\n type: FiltersActionTypes.CHANGE_FILTER_CONFIG,\n payload: filterData,\n });\n\n const _onResetFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.RESET_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n const _onDeleteFilter: ComponentProps<typeof KitButton>['onClick'] = () =>\n dispatch({\n type: FiltersActionTypes.REMOVE_FILTER,\n payload: {\n id: filter.id,\n },\n });\n\n return (\n <FilterDropDownStyledDiv>\n <FilterDropdownContent\n filter={filter}\n onFilterChange={onFilterChange}\n selectDropDownRef={selectDropDownRef}\n />\n <div ref={selectDropDownRef} />\n <KitDivider noMargin />\n <KitButton type=\"action\" icon={<FontAwesomeIcon icon={faClockRotateLeft} />} onClick={_onResetFilter}>\n {t('global.reset')}\n </KitButton>\n {canRemove && (\n <KitButton type=\"action\" icon={<FontAwesomeIcon icon={faTrash} />} onClick={_onDeleteFilter} danger>\n {t('global.delete')}\n </KitButton>\n )}\n </FilterDropDownStyledDiv>\n );\n};\n"]}
@@ -3,12 +3,13 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
3
3
  // This file is released under LGPL V3
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { useSharedTranslation } from '../../../../hooks/useSharedTranslation';
6
- import { FaCheck } from 'react-icons/fa';
7
6
  import { useMemo, useState } from 'react';
8
7
  import { KitInput, KitSelect } from 'aristid-ds';
9
8
  import styled from 'styled-components';
10
9
  import { RecordFilterCondition } from '../../../../_gqlTypes';
11
10
  import { isUIFilterLinkWithValueList, isUIFilterStandardWithValueList, } from '../../_types';
11
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
12
+ import { faCheck } from '@fortawesome/free-solid-svg-icons';
12
13
  const ListDivStyled = styled.div `
13
14
  display: flex;
14
15
  flex-direction: column;
@@ -29,7 +30,7 @@ const OptionRow = styled.div `
29
30
  background: var(--general-utilities-main-light);
30
31
  }
31
32
  `;
32
- const RightIcon = styled(FaCheck) `
33
+ const RightIcon = styled(FontAwesomeIcon) `
33
34
  color: var(--general-utilities-main-default);
34
35
  opacity: ${props => (props.$visible ? 1 : 0)};
35
36
  transition: opacity 0.12s ease-in-out;
@@ -125,7 +126,7 @@ export const FilterValueListDropDown = ({ filter, onFilterChange, selectDropDown
125
126
  };
126
127
  return (_jsxs(_Fragment, { children: [_jsx(KitSelect, { options: availableConditionsOptions, onChange: _onConditionChanged, allowClear: false, value: filter.condition ?? RecordFilterCondition.EQUAL, "aria-label": String(t('explorer.filter-condition')), getPopupContainer: () => selectDropDownRef?.current ?? document.body }), filter.condition === RecordFilterCondition.EQUAL && (_jsxs(_Fragment, { children: [_jsx(KitInput, { value: searchText, onChange: e => setSearchText(e.target.value), placeholder: t('global.search') + '...', allowClear: true }), _jsx(ListDivStyled, { role: "group", "aria-label": String(t('explorer.filter-value')), children: filteredOptions.map(opt => {
127
128
  const selected = isChecked(opt.value);
128
- return (_jsxs(OptionRow, { "$selected": selected, role: "button", "aria-pressed": selected, tabIndex: 0, onClick: () => _handleToggle(opt.value), onKeyDown: e => onKeyToggle(e, opt.value), children: [_jsx(Label, { children: opt.label }), _jsx(RightIcon, { "$visible": selected })] }, opt.value));
129
+ return (_jsxs(OptionRow, { "$selected": selected, role: "button", "aria-pressed": selected, tabIndex: 0, onClick: () => _handleToggle(opt.value), onKeyDown: e => onKeyToggle(e, opt.value), children: [_jsx(Label, { children: opt.label }), _jsx(RightIcon, { "$visible": selected, icon: faCheck })] }, opt.value));
129
130
  }) })] }))] }));
130
131
  };
131
132
  //# sourceMappingURL=FilterValueListDropDown.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterValueListDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/FilterValueListDropDown.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {FaCheck} from 'react-icons/fa';\nimport {type ComponentProps, type FunctionComponent, type KeyboardEvent, useMemo, useState} from 'react';\nimport {KitInput, KitSelect} from 'aristid-ds';\nimport styled from 'styled-components';\nimport {RecordFilterCondition} from '_ui/_gqlTypes';\nimport {\n isUIFilterLinkWithValueList,\n isUIFilterStandardWithValueList,\n type IUIFilterValueList,\n type UIFilter,\n} from '../../_types';\n\ninterface IFilterValueListDropDownProps {\n filter: IUIFilterValueList;\n onFilterChange: (filter: UIFilter) => void;\n selectDropDownRef?: React.RefObject<HTMLDivElement>;\n}\n\nconst ListDivStyled = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-xxs) * 1px);\n`;\n\nconst OptionRow = styled.div<{$selected: boolean}>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 calc(var(--general-spacing-xs) * 1px);\n height: 36px;\n border-radius: calc(var(--general-spacing-xs) * 1px);\n cursor: pointer;\n background: ${props => (props.$selected ? 'var(--general-utilities-main-light)' : 'transparent')};\n color: var(--general-utilities-text-primary);\n\n &:hover {\n background: var(--general-utilities-main-light);\n }\n`;\n\nconst RightIcon = styled(FaCheck)<{$visible: boolean}>`\n color: var(--general-utilities-main-default);\n opacity: ${props => (props.$visible ? 1 : 0)};\n transition: opacity 0.12s ease-in-out;\n`;\n\nconst Label = styled.div`\n flex: 1;\n min-width: 0; /* allow flex child to shrink for ellipsis */\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nexport const FilterValueListDropDown: FunctionComponent<IFilterValueListDropDownProps> = ({\n filter,\n onFilterChange,\n selectDropDownRef,\n}) => {\n const {t} = useSharedTranslation();\n const [searchText, setSearchText] = useState('');\n\n const getOptionLabelText = (label: any): string => (typeof label === 'string' ? label : '');\n\n const availableConditionsOptions = [\n {label: t('filters.equal'), value: RecordFilterCondition.EQUAL},\n // disable NOT_EQUAL for now because of backend condition filter issue\n // {label: t('filters.not-equal'), value: RecordFilterCondition.NOT_EQUAL}\n {label: t('filters.is-empty'), value: RecordFilterCondition.IS_EMPTY},\n {label: t('filters.is-not-empty'), value: RecordFilterCondition.IS_NOT_EMPTY},\n ];\n\n const _onConditionChanged: ComponentProps<typeof KitSelect>['onChange'] = condition => {\n onFilterChange({...filter, condition});\n };\n\n // Generate an option list for the filter dropdown to select a value\n const _createOptionListFromValueList = () => {\n let valueListFormatted: Array<{label: string; value: string}> = [];\n if (isUIFilterStandardWithValueList(filter)) {\n valueListFormatted =\n filter.attribute.valuesList?.values?.map(value => ({\n label: value,\n value,\n })) || [];\n } else if (isUIFilterLinkWithValueList(filter)) {\n valueListFormatted =\n filter.attribute.valuesList?.linkedValues?.map(value => ({\n label: value.whoAmI.label!,\n value: value.id,\n })) || [];\n }\n\n return [...valueListFormatted];\n };\n\n const _handleToggle = (toggledValue: string) => {\n // remove or add the toggledValue from the filter.value\n const currentList = filter.value || [];\n const current = new Set(currentList);\n if (current.has(toggledValue)) {\n current.delete(toggledValue);\n } else {\n current.add(toggledValue);\n }\n const valuesSelected = Array.from(current);\n\n if (valuesSelected.length === 0) {\n // Clear filter when nothing selected\n onFilterChange({\n ...filter,\n value: [],\n field: (filter as any).field,\n });\n return;\n }\n\n // Keep EQUAL/NOT_EQUAL condition per item; default to EQUAL if none chosen yet\n const condition: RecordFilterCondition =\n filter.condition === RecordFilterCondition.NOT_EQUAL\n ? RecordFilterCondition.NOT_EQUAL\n : RecordFilterCondition.EQUAL;\n\n onFilterChange({\n ...filter,\n condition,\n value: valuesSelected,\n });\n };\n\n const options = _createOptionListFromValueList();\n\n const isChecked = (optionValue: string) => {\n const set = new Set(filter.value ?? []);\n return set.has(optionValue);\n };\n\n const filteredOptions = useMemo(() => {\n if (!searchText) {\n return options;\n }\n const st = searchText.toLowerCase();\n const specials = new Set(['']);\n return options.filter(o => specials.has(o.value) || getOptionLabelText(o.label).toLowerCase().includes(st));\n }, [options, searchText]);\n\n const onKeyToggle = (e: KeyboardEvent<HTMLDivElement>, value: string) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n _handleToggle(value);\n }\n };\n\n return (\n <>\n <KitSelect\n options={availableConditionsOptions}\n onChange={_onConditionChanged}\n allowClear={false}\n value={filter.condition ?? RecordFilterCondition.EQUAL}\n aria-label={String(t('explorer.filter-condition'))}\n getPopupContainer={() => selectDropDownRef?.current ?? document.body}\n />\n {filter.condition === RecordFilterCondition.EQUAL && (\n <>\n <KitInput\n value={searchText}\n onChange={e => setSearchText(e.target.value)}\n placeholder={t('global.search') + '...'}\n allowClear\n />\n <ListDivStyled role=\"group\" aria-label={String(t('explorer.filter-value'))}>\n {filteredOptions.map(opt => {\n const selected = isChecked(opt.value);\n return (\n <OptionRow\n key={opt.value}\n $selected={selected}\n role=\"button\"\n aria-pressed={selected}\n tabIndex={0}\n onClick={() => _handleToggle(opt.value)}\n onKeyDown={e => onKeyToggle(e, opt.value)}\n >\n <Label>{opt.label}</Label>\n <RightIcon $visible={selected} />\n </OptionRow>\n );\n })}\n </ListDivStyled>\n </>\n )}\n </>\n );\n};\n"]}
1
+ {"version":3,"file":"FilterValueListDropDown.js","sourceRoot":"","sources":["../../../../../src/components/Filters/filter-items/filter-type/FilterValueListDropDown.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type ComponentProps, type FunctionComponent, type KeyboardEvent, useMemo, useState} from 'react';\nimport {KitInput, KitSelect} from 'aristid-ds';\nimport styled from 'styled-components';\nimport {RecordFilterCondition} from '_ui/_gqlTypes';\nimport {\n isUIFilterLinkWithValueList,\n isUIFilterStandardWithValueList,\n type IUIFilterValueList,\n type UIFilter,\n} from '../../_types';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faCheck} from '@fortawesome/free-solid-svg-icons';\n\ninterface IFilterValueListDropDownProps {\n filter: IUIFilterValueList;\n onFilterChange: (filter: UIFilter) => void;\n selectDropDownRef?: React.RefObject<HTMLDivElement>;\n}\n\nconst ListDivStyled = styled.div`\n display: flex;\n flex-direction: column;\n gap: calc(var(--general-spacing-xxs) * 1px);\n`;\n\nconst OptionRow = styled.div<{$selected: boolean}>`\n display: flex;\n align-items: center;\n justify-content: space-between;\n padding: 0 calc(var(--general-spacing-xs) * 1px);\n height: 36px;\n border-radius: calc(var(--general-spacing-xs) * 1px);\n cursor: pointer;\n background: ${props => (props.$selected ? 'var(--general-utilities-main-light)' : 'transparent')};\n color: var(--general-utilities-text-primary);\n\n &:hover {\n background: var(--general-utilities-main-light);\n }\n`;\n\nconst RightIcon = styled(FontAwesomeIcon)<{$visible: boolean}>`\n color: var(--general-utilities-main-default);\n opacity: ${props => (props.$visible ? 1 : 0)};\n transition: opacity 0.12s ease-in-out;\n`;\n\nconst Label = styled.div`\n flex: 1;\n min-width: 0; /* allow flex child to shrink for ellipsis */\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n`;\n\nexport const FilterValueListDropDown: FunctionComponent<IFilterValueListDropDownProps> = ({\n filter,\n onFilterChange,\n selectDropDownRef,\n}) => {\n const {t} = useSharedTranslation();\n const [searchText, setSearchText] = useState('');\n\n const getOptionLabelText = (label: any): string => (typeof label === 'string' ? label : '');\n\n const availableConditionsOptions = [\n {label: t('filters.equal'), value: RecordFilterCondition.EQUAL},\n // disable NOT_EQUAL for now because of backend condition filter issue\n // {label: t('filters.not-equal'), value: RecordFilterCondition.NOT_EQUAL}\n {label: t('filters.is-empty'), value: RecordFilterCondition.IS_EMPTY},\n {label: t('filters.is-not-empty'), value: RecordFilterCondition.IS_NOT_EMPTY},\n ];\n\n const _onConditionChanged: ComponentProps<typeof KitSelect>['onChange'] = condition => {\n onFilterChange({...filter, condition});\n };\n\n // Generate an option list for the filter dropdown to select a value\n const _createOptionListFromValueList = () => {\n let valueListFormatted: Array<{label: string; value: string}> = [];\n if (isUIFilterStandardWithValueList(filter)) {\n valueListFormatted =\n filter.attribute.valuesList?.values?.map(value => ({\n label: value,\n value,\n })) || [];\n } else if (isUIFilterLinkWithValueList(filter)) {\n valueListFormatted =\n filter.attribute.valuesList?.linkedValues?.map(value => ({\n label: value.whoAmI.label!,\n value: value.id,\n })) || [];\n }\n\n return [...valueListFormatted];\n };\n\n const _handleToggle = (toggledValue: string) => {\n // remove or add the toggledValue from the filter.value\n const currentList = filter.value || [];\n const current = new Set(currentList);\n if (current.has(toggledValue)) {\n current.delete(toggledValue);\n } else {\n current.add(toggledValue);\n }\n const valuesSelected = Array.from(current);\n\n if (valuesSelected.length === 0) {\n // Clear filter when nothing selected\n onFilterChange({\n ...filter,\n value: [],\n field: (filter as any).field,\n });\n return;\n }\n\n // Keep EQUAL/NOT_EQUAL condition per item; default to EQUAL if none chosen yet\n const condition: RecordFilterCondition =\n filter.condition === RecordFilterCondition.NOT_EQUAL\n ? RecordFilterCondition.NOT_EQUAL\n : RecordFilterCondition.EQUAL;\n\n onFilterChange({\n ...filter,\n condition,\n value: valuesSelected,\n });\n };\n\n const options = _createOptionListFromValueList();\n\n const isChecked = (optionValue: string) => {\n const set = new Set(filter.value ?? []);\n return set.has(optionValue);\n };\n\n const filteredOptions = useMemo(() => {\n if (!searchText) {\n return options;\n }\n const st = searchText.toLowerCase();\n const specials = new Set(['']);\n return options.filter(o => specials.has(o.value) || getOptionLabelText(o.label).toLowerCase().includes(st));\n }, [options, searchText]);\n\n const onKeyToggle = (e: KeyboardEvent<HTMLDivElement>, value: string) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n _handleToggle(value);\n }\n };\n\n return (\n <>\n <KitSelect\n options={availableConditionsOptions}\n onChange={_onConditionChanged}\n allowClear={false}\n value={filter.condition ?? RecordFilterCondition.EQUAL}\n aria-label={String(t('explorer.filter-condition'))}\n getPopupContainer={() => selectDropDownRef?.current ?? document.body}\n />\n {filter.condition === RecordFilterCondition.EQUAL && (\n <>\n <KitInput\n value={searchText}\n onChange={e => setSearchText(e.target.value)}\n placeholder={t('global.search') + '...'}\n allowClear\n />\n <ListDivStyled role=\"group\" aria-label={String(t('explorer.filter-value'))}>\n {filteredOptions.map(opt => {\n const selected = isChecked(opt.value);\n return (\n <OptionRow\n key={opt.value}\n $selected={selected}\n role=\"button\"\n aria-pressed={selected}\n tabIndex={0}\n onClick={() => _handleToggle(opt.value)}\n onKeyDown={e => onKeyToggle(e, opt.value)}\n >\n <Label>{opt.label}</Label>\n <RightIcon $visible={selected} icon={faCheck} />\n </OptionRow>\n );\n })}\n </ListDivStyled>\n </>\n )}\n </>\n );\n};\n"]}
@@ -5,8 +5,6 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
5
5
  import { AppstoreFilled, FilterOutlined, MenuOutlined, PlusOutlined, SaveFilled } from '@ant-design/icons';
6
6
  import { localizedTranslation, objectToNameValueArray } from '@leav/utils';
7
7
  import { Badge, Button, Dropdown, Space, Tooltip } from 'antd';
8
- import { GrUndo } from 'react-icons/gr';
9
- import { VscLayers } from 'react-icons/vsc';
10
8
  import styled from 'styled-components';
11
9
  import useSearchReducer from '../../../components/LibraryItemsList/hooks/useSearchReducer';
12
10
  import { SearchActionTypes } from '../../../components/LibraryItemsList/hooks/useSearchReducer/searchReducer';
@@ -23,6 +21,8 @@ import { defaultView } from '../constants';
23
21
  import FiltersDropdown from '../FiltersDropdown';
24
22
  import useUpdateViewsOrderMutation from '../hooks/useUpdateViewsOrderMutation';
25
23
  import IconViewType from '../IconViewType';
24
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
25
+ import { faUndo, faLayerGroup } from '@fortawesome/free-solid-svg-icons';
26
26
  const ViewButton = styled(Button) `
27
27
  && {
28
28
  display: flex;
@@ -154,9 +154,9 @@ function MenuView({ library }) {
154
154
  ],
155
155
  };
156
156
  return (_jsxs(Space, { size: "large", children: [_jsxs(Button.Group, { children: [_jsx(Tooltip, { title: localizedTranslation(searchState.view.current?.label, lang) || t('select-view.default-view'), children: _jsx(ViewButton, { icon: _jsx(IconViewType, { style: { marginRight: '8px' }, type: searchState.view.current.display.type }), "data-testid": "dropdown-view-options", onClick: _toggleShowView, children: _jsx(ViewLabel, { children: localizedTranslation(searchState.view.current?.label, lang) ||
157
- t('select-view.default-view') }) }) }), _jsx(Button, { disabled: searchState.view.sync, icon: _jsx(GrUndo, {}), onClick: _resetView, style: { paddingTop: '6px' } }), _jsx(Button, { icon: _jsx(SaveFilled, {}), onClick: _saveView, disabled: searchState.view.sync ||
157
+ t('select-view.default-view') }) }) }), _jsx(Button, { disabled: searchState.view.sync, icon: _jsx(FontAwesomeIcon, { icon: faUndo }), onClick: _resetView, style: { paddingTop: '6px' } }), _jsx(Button, { icon: _jsx(SaveFilled, {}), onClick: _saveView, disabled: searchState.view.sync ||
158
158
  searchState.view.current?.id === defaultView.id ||
159
- !searchState.view.current.owner }), _jsx(Dropdown, { menu: menu, trigger: ['click'], children: _jsx(Button, { icon: _jsx(PlusOutlined, {}) }) })] }), _jsx(Badge, { dot: !!searchState.filters.length, children: _jsxs(Button.Group, { children: [_jsx(Button, { onClick: _toggleShowFilters, icon: _jsx(FilterOutlined, {}), children: t('filters.filters') }), _jsx(FiltersDropdown, { libraryId: library.id, button: _jsx(Button, { icon: _jsx(PlusOutlined, {}), type: "default" }), attributes: library.attributes, trees: library.linkedTrees, libraries: [] })] }) }), _jsx(Button, { onClick: _toggleShowVersions, icon: _jsx(VscLayers, {}), style: { paddingTop: '5px' } })] }));
159
+ !searchState.view.current.owner }), _jsx(Dropdown, { menu: menu, trigger: ['click'], children: _jsx(Button, { icon: _jsx(PlusOutlined, {}) }) })] }), _jsx(Badge, { dot: !!searchState.filters.length, children: _jsxs(Button.Group, { children: [_jsx(Button, { onClick: _toggleShowFilters, icon: _jsx(FilterOutlined, {}), children: t('filters.filters') }), _jsx(FiltersDropdown, { libraryId: library.id, button: _jsx(Button, { icon: _jsx(PlusOutlined, {}), type: "default" }), attributes: library.attributes, trees: library.linkedTrees, libraries: [] })] }) }), _jsx(Button, { onClick: _toggleShowVersions, icon: _jsx(FontAwesomeIcon, { icon: faLayerGroup }), style: { paddingTop: '5px' } })] }));
160
160
  }
161
161
  export default MenuView;
162
162
  //# sourceMappingURL=MenuView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MenuView.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/MenuView/MenuView.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {AppstoreFilled, FilterOutlined, MenuOutlined, PlusOutlined, SaveFilled} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {Badge, Button, Dropdown, type MenuProps, Space, Tooltip} from 'antd';\nimport {GrUndo} from 'react-icons/gr';\nimport {VscLayers} from 'react-icons/vsc';\nimport styled from 'styled-components';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useLang from '_ui/hooks/useLang';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {SidebarContentType} from '_ui/types/search';\nimport {type ViewInput, ViewTypes} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {prepareView} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {PREFIX_USER_VIEWS_ORDER_KEY} from '../../../constants';\nimport {useUser} from '../../../hooks/useUser/useUser';\nimport {defaultView} from '../constants';\nimport FiltersDropdown from '../FiltersDropdown';\nimport useUpdateViewsOrderMutation from '../hooks/useUpdateViewsOrderMutation';\nimport IconViewType from '../IconViewType';\n\ninterface IMenuViewProps {\n library: ILibraryDetailExtended;\n}\n\nconst ViewButton = styled(Button)`\n && {\n display: flex;\n align-items: center;\n }\n`;\n\nconst ViewLabel = styled.span`\n width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n whitespace: nowrap;\n`;\n\nfunction MenuView({library}: IMenuViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const {userData} = useUser();\n\n const {saveView: addView} = useExecuteSaveViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(library.id);\n\n const _toggleShowView = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.VIEW;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VIEW,\n visible,\n });\n };\n\n const _toggleShowFilters = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.FILTERS,\n visible,\n });\n };\n\n const _toggleShowVersions = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VERSIONS,\n visible,\n });\n };\n\n const _resetView = () => {\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: searchState.view.current,\n });\n };\n\n const _getNewViewFromSearchState = (): ViewInput => ({\n library: library.id,\n label: {\n [defaultLang]: t('view.add-view.title', {lng: defaultLang}),\n },\n display: searchState.display,\n shared: false,\n sort: searchState.sort,\n filters: getRequestFromFilters(searchState.filters),\n valuesVersions: searchState.valuesVersions\n ? objectToNameValueArray(searchState.valuesVersions)\n .map(version => ({\n treeId: version?.name ?? null,\n treeNode: version?.value?.id ?? null,\n }))\n .filter(v => v.treeId !== null && v.treeNode !== null)\n : null,\n attributes: searchState.fields?.map(f => f.key) ?? [],\n });\n\n const _saveView = async () => {\n if (searchState.view.current.id !== defaultView.id) {\n // save view in backend\n await addView({\n view: {\n ..._getNewViewFromSearchState(),\n id: searchState.view.current.id,\n label: searchState.view.current.label,\n description: searchState.view.current.description,\n shared: searchState.view.current.shared,\n color: searchState.view.current.color,\n sort: searchState.sort ?? null,\n },\n });\n\n searchDispatch({\n type: SearchActionTypes.SET_VIEW_SYNC,\n sync: true,\n });\n }\n };\n\n const _handleAddView = async (viewType: ViewTypes) => {\n const newView: ViewInput = {\n ..._getNewViewFromSearchState(),\n display: {...searchState.display, type: viewType},\n };\n\n // save view in backend\n const newViewRes = await addView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: prepareView(\n newViewRes.data.saveView,\n searchState.attributes,\n searchState.library.id,\n userData?.userId,\n ),\n });\n };\n\n const menu: MenuProps = {\n items: [\n {\n key: 'add-group',\n type: 'group',\n label: t('view.add-view.title'),\n children: [\n {\n key: 'list',\n onClick: () => _handleAddView(ViewTypes.list),\n icon: <MenuOutlined />,\n label: t('view.type-list'),\n },\n {\n key: 'cards',\n onClick: () => _handleAddView(ViewTypes.cards),\n icon: <AppstoreFilled />,\n label: t('view.type-cards'),\n },\n ],\n },\n ],\n };\n\n return (\n <Space size=\"large\">\n <Button.Group>\n <Tooltip\n title={localizedTranslation(searchState.view.current?.label, lang) || t('select-view.default-view')}\n >\n <ViewButton\n icon={\n <IconViewType style={{marginRight: '8px'}} type={searchState.view.current.display.type} />\n }\n data-testid=\"dropdown-view-options\"\n onClick={_toggleShowView}\n >\n <ViewLabel>\n {localizedTranslation(searchState.view.current?.label, lang) ||\n t('select-view.default-view')}\n </ViewLabel>\n </ViewButton>\n </Tooltip>\n <Button\n disabled={searchState.view.sync}\n icon={<GrUndo />}\n onClick={_resetView}\n style={{paddingTop: '6px'}}\n />\n <Button\n icon={<SaveFilled />}\n onClick={_saveView}\n disabled={\n searchState.view.sync ||\n searchState.view.current?.id === defaultView.id ||\n !searchState.view.current.owner\n }\n />\n <Dropdown menu={menu} trigger={['click']}>\n <Button icon={<PlusOutlined />}></Button>\n </Dropdown>\n </Button.Group>\n <Badge dot={!!searchState.filters.length}>\n <Button.Group>\n <Button onClick={_toggleShowFilters} icon={<FilterOutlined />}>\n {t('filters.filters')}\n </Button>\n <FiltersDropdown\n libraryId={library.id}\n button={<Button icon={<PlusOutlined />} type=\"default\" />}\n attributes={library.attributes}\n trees={library.linkedTrees}\n libraries={[]}\n />\n </Button.Group>\n </Badge>\n <Button onClick={_toggleShowVersions} icon={<VscLayers />} style={{paddingTop: '5px'}} />\n </Space>\n );\n}\n\nexport default MenuView;\n"]}
1
+ {"version":3,"file":"MenuView.js","sourceRoot":"","sources":["../../../../src/components/LibraryItemsList/MenuView/MenuView.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {AppstoreFilled, FilterOutlined, MenuOutlined, PlusOutlined, SaveFilled} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {Badge, Button, Dropdown, type MenuProps, Space, Tooltip} from 'antd';\nimport styled from 'styled-components';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useLang from '_ui/hooks/useLang';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {SidebarContentType} from '_ui/types/search';\nimport {type ViewInput, ViewTypes} from '_ui/_gqlTypes';\nimport {type ILibraryDetailExtended} from '_ui/_queries/libraries/getLibraryDetailExtendQuery';\nimport {prepareView} from '_ui/_utils';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {PREFIX_USER_VIEWS_ORDER_KEY} from '../../../constants';\nimport {useUser} from '../../../hooks/useUser/useUser';\nimport {defaultView} from '../constants';\nimport FiltersDropdown from '../FiltersDropdown';\nimport useUpdateViewsOrderMutation from '../hooks/useUpdateViewsOrderMutation';\nimport IconViewType from '../IconViewType';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faUndo, faLayerGroup} from '@fortawesome/free-solid-svg-icons';\n\ninterface IMenuViewProps {\n library: ILibraryDetailExtended;\n}\n\nconst ViewButton = styled(Button)`\n && {\n display: flex;\n align-items: center;\n }\n`;\n\nconst ViewLabel = styled.span`\n width: 180px;\n overflow: hidden;\n text-overflow: ellipsis;\n whitespace: nowrap;\n`;\n\nfunction MenuView({library}: IMenuViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const {userData} = useUser();\n\n const {saveView: addView} = useExecuteSaveViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(library.id);\n\n const _toggleShowView = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.VIEW;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VIEW,\n visible,\n });\n };\n\n const _toggleShowFilters = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.FILTERS,\n visible,\n });\n };\n\n const _toggleShowVersions = () => {\n const visible = !searchState.sideBar.visible || searchState.sideBar.type !== SidebarContentType.FILTERS;\n searchDispatch({\n type: SearchActionTypes.SET_SIDEBAR,\n sidebarType: SidebarContentType.VERSIONS,\n visible,\n });\n };\n\n const _resetView = () => {\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: searchState.view.current,\n });\n };\n\n const _getNewViewFromSearchState = (): ViewInput => ({\n library: library.id,\n label: {\n [defaultLang]: t('view.add-view.title', {lng: defaultLang}),\n },\n display: searchState.display,\n shared: false,\n sort: searchState.sort,\n filters: getRequestFromFilters(searchState.filters),\n valuesVersions: searchState.valuesVersions\n ? objectToNameValueArray(searchState.valuesVersions)\n .map(version => ({\n treeId: version?.name ?? null,\n treeNode: version?.value?.id ?? null,\n }))\n .filter(v => v.treeId !== null && v.treeNode !== null)\n : null,\n attributes: searchState.fields?.map(f => f.key) ?? [],\n });\n\n const _saveView = async () => {\n if (searchState.view.current.id !== defaultView.id) {\n // save view in backend\n await addView({\n view: {\n ..._getNewViewFromSearchState(),\n id: searchState.view.current.id,\n label: searchState.view.current.label,\n description: searchState.view.current.description,\n shared: searchState.view.current.shared,\n color: searchState.view.current.color,\n sort: searchState.sort ?? null,\n },\n });\n\n searchDispatch({\n type: SearchActionTypes.SET_VIEW_SYNC,\n sync: true,\n });\n }\n };\n\n const _handleAddView = async (viewType: ViewTypes) => {\n const newView: ViewInput = {\n ..._getNewViewFromSearchState(),\n display: {...searchState.display, type: viewType},\n };\n\n // save view in backend\n const newViewRes = await addView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n\n searchDispatch({\n type: SearchActionTypes.CHANGE_VIEW,\n view: prepareView(\n newViewRes.data.saveView,\n searchState.attributes,\n searchState.library.id,\n userData?.userId,\n ),\n });\n };\n\n const menu: MenuProps = {\n items: [\n {\n key: 'add-group',\n type: 'group',\n label: t('view.add-view.title'),\n children: [\n {\n key: 'list',\n onClick: () => _handleAddView(ViewTypes.list),\n icon: <MenuOutlined />,\n label: t('view.type-list'),\n },\n {\n key: 'cards',\n onClick: () => _handleAddView(ViewTypes.cards),\n icon: <AppstoreFilled />,\n label: t('view.type-cards'),\n },\n ],\n },\n ],\n };\n\n return (\n <Space size=\"large\">\n <Button.Group>\n <Tooltip\n title={localizedTranslation(searchState.view.current?.label, lang) || t('select-view.default-view')}\n >\n <ViewButton\n icon={\n <IconViewType style={{marginRight: '8px'}} type={searchState.view.current.display.type} />\n }\n data-testid=\"dropdown-view-options\"\n onClick={_toggleShowView}\n >\n <ViewLabel>\n {localizedTranslation(searchState.view.current?.label, lang) ||\n t('select-view.default-view')}\n </ViewLabel>\n </ViewButton>\n </Tooltip>\n <Button\n disabled={searchState.view.sync}\n icon={<FontAwesomeIcon icon={faUndo} />}\n onClick={_resetView}\n style={{paddingTop: '6px'}}\n />\n <Button\n icon={<SaveFilled />}\n onClick={_saveView}\n disabled={\n searchState.view.sync ||\n searchState.view.current?.id === defaultView.id ||\n !searchState.view.current.owner\n }\n />\n <Dropdown menu={menu} trigger={['click']}>\n <Button icon={<PlusOutlined />}></Button>\n </Dropdown>\n </Button.Group>\n <Badge dot={!!searchState.filters.length}>\n <Button.Group>\n <Button onClick={_toggleShowFilters} icon={<FilterOutlined />}>\n {t('filters.filters')}\n </Button>\n <FiltersDropdown\n libraryId={library.id}\n button={<Button icon={<PlusOutlined />} type=\"default\" />}\n attributes={library.attributes}\n trees={library.linkedTrees}\n libraries={[]}\n />\n </Button.Group>\n </Badge>\n <Button\n onClick={_toggleShowVersions}\n icon={<FontAwesomeIcon icon={faLayerGroup} />}\n style={{paddingTop: '5px'}}\n />\n </Space>\n );\n}\n\nexport default MenuView;\n"]}
@@ -7,7 +7,6 @@ import { localizedTranslation, objectToNameValueArray } from '@leav/utils';
7
7
  import { Button, Tooltip, Typography } from 'antd';
8
8
  import omit from 'lodash/omit';
9
9
  import { useState } from 'react';
10
- import { RiUserReceivedLine } from 'react-icons/ri';
11
10
  import styled from 'styled-components';
12
11
  import { themeVars } from '../../../../antdTheme';
13
12
  import useSearchReducer from '../../../../components/LibraryItemsList/hooks/useSearchReducer';
@@ -22,6 +21,8 @@ import { ViewSizes, ViewTypes } from '../../../../_gqlTypes';
22
21
  import { getRequestFromFilters } from '../../../../_utils/getRequestFromFilter';
23
22
  import { defaultView } from '../../constants';
24
23
  import useUpdateViewsOrderMutation from '../../hooks/useUpdateViewsOrderMutation';
24
+ import { faUserTag } from '@fortawesome/free-solid-svg-icons';
25
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
25
26
  const Infos = styled.div `
26
27
  width: 100%;
27
28
  `;
@@ -141,7 +142,7 @@ function View({ view, onEdit, handleProps }) {
141
142
  }, style: { marginBottom: 0 }, children: localizedTranslation(view.description, lang) }, description.key), description.expand && (_jsx("a", { href: "!#", onClick: ev => {
142
143
  ev.preventDefault();
143
144
  _onClose();
144
- }, children: t('global.close') }))] }))] }), !view.owner && !isActionsShown && _jsx(RiUserReceivedLine, { size: "1.3em" }), isActionsShown && (_jsxs(_Fragment, { children: [_jsx(Tooltip, { title: t('global.edit'), children: _jsx(Button, { onClick: _handleEdit, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(EditOutlined, {}) }, "edit") }), _jsx(Tooltip, { title: t('global.duplicate'), children: _jsx(Button, { onClick: _handleDuplicate, type: "text", size: "small", shape: "circle", icon: _jsx(CopyOutlined, {}) }, "duplicate") }), _jsx(Tooltip, { title: t('global.delete'), children: _jsx(Button, { onClick: _handleDelete, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(DeleteOutlined, {}) }, "delete") })] }))] }, view.id));
145
+ }, children: t('global.close') }))] }))] }), !view.owner && !isActionsShown && _jsx(FontAwesomeIcon, { icon: faUserTag }), isActionsShown && (_jsxs(_Fragment, { children: [_jsx(Tooltip, { title: t('global.edit'), children: _jsx(Button, { onClick: _handleEdit, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(EditOutlined, {}) }, "edit") }), _jsx(Tooltip, { title: t('global.duplicate'), children: _jsx(Button, { onClick: _handleDuplicate, type: "text", size: "small", shape: "circle", icon: _jsx(CopyOutlined, {}) }, "duplicate") }), _jsx(Tooltip, { title: t('global.delete'), children: _jsx(Button, { onClick: _handleDelete, disabled: !view.owner, type: "text", size: "small", shape: "circle", icon: _jsx(DeleteOutlined, {}) }, "delete") })] }))] }, view.id));
145
146
  }
146
147
  export default View;
147
148
  //# sourceMappingURL=View.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/ViewPanel/View/View.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {CopyOutlined, DeleteOutlined, EditOutlined} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {Button, Tooltip, Typography} from 'antd';\nimport omit from 'lodash/omit';\nimport {useState} from 'react';\nimport {type DraggableProvidedDragHandleProps} from 'react-beautiful-dnd';\nimport {RiUserReceivedLine} from 'react-icons/ri';\nimport styled from 'styled-components';\nimport {themeVars} from '_ui/antdTheme';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport IconViewType from '_ui/components/LibraryItemsList/IconViewType';\nimport {PREFIX_SHARED_VIEWS_ORDER_KEY, PREFIX_USER_VIEWS_ORDER_KEY} from '_ui/constants';\nimport {useLang} from '_ui/hooks';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useExecuteDeleteViewMutation from '_ui/hooks/useExecuteDeleteViewMutation/useExecuteDeleteViewMutation';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IView} from '_ui/types/views';\nimport {type ViewInput, ViewSizes, ViewTypes} from '_ui/_gqlTypes';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {defaultView} from '../../constants';\nimport useUpdateViewsOrderMutation from '../../hooks/useUpdateViewsOrderMutation';\n\ninterface IWrapperProps {\n selected: boolean;\n}\n\nconst Infos = styled.div`\n width: 100%;\n`;\n\nconst Wrapper = styled.div<IWrapperProps>`\n background: ${({selected}) => (selected ? `${themeVars.activeColor} ` : 'none')};\n padding: 0.5rem;\n display: flex;\n align-items: center;\n`;\n\nconst Handle = styled.div`\n content: '....';\n width: 20px;\n height: 30px;\n display: inline-block;\n line-height: 5px;\n padding: 3px 4px;\n vertical-align: middle;\n font-size: 12px;\n font-family: sans-serif;\n letter-spacing: 2px;\n color: ${themeVars.borderLightColor};\n text-shadow: 1px 0 1px black;\n\n &::after {\n content: '.. .. .. ..';\n }\n`;\n\nconst Title = styled.div`\n display: flex;\n align-items: center;\n margin-left: 10px;\n`;\n\nconst Description = styled.div`\n opacity: 0.8;\n margin-left: 10px;\n overflow: hidden;\n`;\n\ninterface IViewProps {\n view: IView;\n onEdit: (viewId: string) => void;\n handleProps?: DraggableProvidedDragHandleProps;\n}\n\nfunction View({view, onEdit, handleProps}: IViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const [description, setDescription] = useState<{expand: boolean; key: number}>({expand: false, key: 0});\n\n const {saveView} = useExecuteSaveViewMutation();\n\n const {deleteView} = useExecuteDeleteViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(searchState.library.id);\n\n const _changeView = () => {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view});\n };\n\n const ROWS_DESCRIPTION = 3;\n\n const _handleDelete = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n await deleteView(view.id);\n\n const newOrder = (view.shared ? searchState.sharedViewsOrder : searchState.userViewsOrder).filter(\n vId => vId !== view.id,\n );\n\n await updateViewsOrder({\n key: (view.shared ? PREFIX_SHARED_VIEWS_ORDER_KEY : PREFIX_USER_VIEWS_ORDER_KEY) + searchState.library.id,\n value: newOrder,\n global: false,\n });\n\n if (view.id === searchState.view.current.id) {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view: defaultView});\n }\n };\n\n const _handleDuplicate = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n try {\n const newView: ViewInput = {\n ...omit(view, ['id', 'owner']),\n library: searchState.library.id,\n label: {\n [defaultLang]: `${localizedTranslation(view.label, lang)} (${t('global.copy')})`,\n },\n filters: getRequestFromFilters(view.filters),\n display: {\n size: ViewSizes.MEDIUM,\n type: ViewTypes.list,\n },\n valuesVersions: objectToNameValueArray(view.valuesVersions).map(version => ({\n treeId: version.name,\n treeNode: version.value.id,\n })),\n shared: false,\n };\n\n const newViewRes = await saveView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n } catch (e) {\n console.error(e);\n }\n };\n\n const _handleEdit = (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n onEdit(view.id);\n };\n\n const _onExpand = () => {\n setDescription({expand: true, key: description.key});\n };\n\n const _onClose = () => {\n setDescription({expand: false, key: description.key + 1});\n };\n\n const selected = view.id === searchState.view.current?.id;\n\n const [isActionsShown, setIsActionsShown] = useState(false);\n\n const viewLabel = localizedTranslation(view.label, lang);\n\n return (\n <Wrapper\n key={view.id}\n selected={selected}\n onClick={_changeView}\n color={view.color}\n onMouseEnter={() => setIsActionsShown(true)}\n onMouseLeave={() => setIsActionsShown(false)}\n >\n <Handle className=\"view-handle\" {...handleProps} />\n <Infos>\n <Title data-testid=\"view-title\">\n <IconViewType type={view.display.type} />\n <Typography.Text ellipsis={{tooltip: true}} style={{padding: '0 .5em', width: 'calc(100% - 1em)'}}>\n {viewLabel}\n </Typography.Text>\n </Title>\n {view.description && (\n <Description>\n <Typography.Paragraph\n key={description.key}\n ellipsis={{\n rows: ROWS_DESCRIPTION,\n expandable: true,\n onExpand: _onExpand,\n symbol: t('view.see-more'),\n }}\n style={{marginBottom: 0}}\n >\n {localizedTranslation(view.description, lang)}\n </Typography.Paragraph>\n {description.expand && (\n <a\n href=\"!#\"\n onClick={ev => {\n ev.preventDefault();\n _onClose();\n }}\n >\n {t('global.close')}\n </a>\n )}\n </Description>\n )}\n </Infos>\n {!view.owner && !isActionsShown && <RiUserReceivedLine size=\"1.3em\" />}\n {isActionsShown && (\n <>\n <Tooltip title={t('global.edit')}>\n <Button\n key=\"edit\"\n onClick={_handleEdit}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<EditOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.duplicate')}>\n <Button\n key=\"duplicate\"\n onClick={_handleDuplicate}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<CopyOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.delete')}>\n <Button\n key=\"delete\"\n onClick={_handleDelete}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<DeleteOutlined />}\n />\n </Tooltip>\n </>\n )}\n </Wrapper>\n );\n}\n\nexport default View;\n"]}
1
+ {"version":3,"file":"View.js","sourceRoot":"","sources":["../../../../../src/components/LibraryItemsList/ViewPanel/View/View.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {CopyOutlined, DeleteOutlined, EditOutlined} from '@ant-design/icons';\nimport {localizedTranslation, objectToNameValueArray} from '@leav/utils';\nimport {Button, Tooltip, Typography} from 'antd';\nimport omit from 'lodash/omit';\nimport {useState} from 'react';\nimport {type DraggableProvidedDragHandleProps} from 'react-beautiful-dnd';\nimport styled from 'styled-components';\nimport {themeVars} from '_ui/antdTheme';\nimport useSearchReducer from '_ui/components/LibraryItemsList/hooks/useSearchReducer';\nimport {SearchActionTypes} from '_ui/components/LibraryItemsList/hooks/useSearchReducer/searchReducer';\nimport IconViewType from '_ui/components/LibraryItemsList/IconViewType';\nimport {PREFIX_SHARED_VIEWS_ORDER_KEY, PREFIX_USER_VIEWS_ORDER_KEY} from '_ui/constants';\nimport {useLang} from '_ui/hooks';\nimport useExecuteSaveViewMutation from '_ui/hooks/useExecuteSaveViewMutation/useExecuteSaveViewMutation';\nimport useExecuteDeleteViewMutation from '_ui/hooks/useExecuteDeleteViewMutation/useExecuteDeleteViewMutation';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {type IView} from '_ui/types/views';\nimport {type ViewInput, ViewSizes, ViewTypes} from '_ui/_gqlTypes';\nimport {getRequestFromFilters} from '_ui/_utils/getRequestFromFilter';\nimport {defaultView} from '../../constants';\nimport useUpdateViewsOrderMutation from '../../hooks/useUpdateViewsOrderMutation';\nimport {faUserTag} from '@fortawesome/free-solid-svg-icons';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\n\ninterface IWrapperProps {\n selected: boolean;\n}\n\nconst Infos = styled.div`\n width: 100%;\n`;\n\nconst Wrapper = styled.div<IWrapperProps>`\n background: ${({selected}) => (selected ? `${themeVars.activeColor} ` : 'none')};\n padding: 0.5rem;\n display: flex;\n align-items: center;\n`;\n\nconst Handle = styled.div`\n content: '....';\n width: 20px;\n height: 30px;\n display: inline-block;\n line-height: 5px;\n padding: 3px 4px;\n vertical-align: middle;\n font-size: 12px;\n font-family: sans-serif;\n letter-spacing: 2px;\n color: ${themeVars.borderLightColor};\n text-shadow: 1px 0 1px black;\n\n &::after {\n content: '.. .. .. ..';\n }\n`;\n\nconst Title = styled.div`\n display: flex;\n align-items: center;\n margin-left: 10px;\n`;\n\nconst Description = styled.div`\n opacity: 0.8;\n margin-left: 10px;\n overflow: hidden;\n`;\n\ninterface IViewProps {\n view: IView;\n onEdit: (viewId: string) => void;\n handleProps?: DraggableProvidedDragHandleProps;\n}\n\nfunction View({view, onEdit, handleProps}: IViewProps): JSX.Element {\n const {t} = useSharedTranslation();\n const {lang, defaultLang} = useLang();\n\n const {state: searchState, dispatch: searchDispatch} = useSearchReducer();\n const [description, setDescription] = useState<{expand: boolean; key: number}>({expand: false, key: 0});\n\n const {saveView} = useExecuteSaveViewMutation();\n\n const {deleteView} = useExecuteDeleteViewMutation();\n const {updateViewsOrder} = useUpdateViewsOrderMutation(searchState.library.id);\n\n const _changeView = () => {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view});\n };\n\n const ROWS_DESCRIPTION = 3;\n\n const _handleDelete = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n await deleteView(view.id);\n\n const newOrder = (view.shared ? searchState.sharedViewsOrder : searchState.userViewsOrder).filter(\n vId => vId !== view.id,\n );\n\n await updateViewsOrder({\n key: (view.shared ? PREFIX_SHARED_VIEWS_ORDER_KEY : PREFIX_USER_VIEWS_ORDER_KEY) + searchState.library.id,\n value: newOrder,\n global: false,\n });\n\n if (view.id === searchState.view.current.id) {\n searchDispatch({type: SearchActionTypes.CHANGE_VIEW, view: defaultView});\n }\n };\n\n const _handleDuplicate = async (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n try {\n const newView: ViewInput = {\n ...omit(view, ['id', 'owner']),\n library: searchState.library.id,\n label: {\n [defaultLang]: `${localizedTranslation(view.label, lang)} (${t('global.copy')})`,\n },\n filters: getRequestFromFilters(view.filters),\n display: {\n size: ViewSizes.MEDIUM,\n type: ViewTypes.list,\n },\n valuesVersions: objectToNameValueArray(view.valuesVersions).map(version => ({\n treeId: version.name,\n treeNode: version.value.id,\n })),\n shared: false,\n };\n\n const newViewRes = await saveView({\n view: newView,\n });\n\n await updateViewsOrder({\n key: PREFIX_USER_VIEWS_ORDER_KEY + newView.library,\n value: [...searchState.userViewsOrder, newViewRes.data.saveView.id],\n global: false,\n });\n } catch (e) {\n console.error(e);\n }\n };\n\n const _handleEdit = (event: any) => {\n // stop progation to avoid click on view\n event.stopPropagation();\n\n onEdit(view.id);\n };\n\n const _onExpand = () => {\n setDescription({expand: true, key: description.key});\n };\n\n const _onClose = () => {\n setDescription({expand: false, key: description.key + 1});\n };\n\n const selected = view.id === searchState.view.current?.id;\n\n const [isActionsShown, setIsActionsShown] = useState(false);\n\n const viewLabel = localizedTranslation(view.label, lang);\n\n return (\n <Wrapper\n key={view.id}\n selected={selected}\n onClick={_changeView}\n color={view.color}\n onMouseEnter={() => setIsActionsShown(true)}\n onMouseLeave={() => setIsActionsShown(false)}\n >\n <Handle className=\"view-handle\" {...handleProps} />\n <Infos>\n <Title data-testid=\"view-title\">\n <IconViewType type={view.display.type} />\n <Typography.Text ellipsis={{tooltip: true}} style={{padding: '0 .5em', width: 'calc(100% - 1em)'}}>\n {viewLabel}\n </Typography.Text>\n </Title>\n {view.description && (\n <Description>\n <Typography.Paragraph\n key={description.key}\n ellipsis={{\n rows: ROWS_DESCRIPTION,\n expandable: true,\n onExpand: _onExpand,\n symbol: t('view.see-more'),\n }}\n style={{marginBottom: 0}}\n >\n {localizedTranslation(view.description, lang)}\n </Typography.Paragraph>\n {description.expand && (\n <a\n href=\"!#\"\n onClick={ev => {\n ev.preventDefault();\n _onClose();\n }}\n >\n {t('global.close')}\n </a>\n )}\n </Description>\n )}\n </Infos>\n {!view.owner && !isActionsShown && <FontAwesomeIcon icon={faUserTag} />}\n {isActionsShown && (\n <>\n <Tooltip title={t('global.edit')}>\n <Button\n key=\"edit\"\n onClick={_handleEdit}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<EditOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.duplicate')}>\n <Button\n key=\"duplicate\"\n onClick={_handleDuplicate}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<CopyOutlined />}\n />\n </Tooltip>\n <Tooltip title={t('global.delete')}>\n <Button\n key=\"delete\"\n onClick={_handleDelete}\n disabled={!view.owner}\n type=\"text\"\n size=\"small\"\n shape=\"circle\"\n icon={<DeleteOutlined />}\n />\n </Tooltip>\n </>\n )}\n </Wrapper>\n );\n}\n\nexport default View;\n"]}
@@ -7,7 +7,8 @@ import { SUBSCRIPTION_NOTIFICATION_DURATION } from '../../../constants';
7
7
  import { useSharedTranslation } from '../../../hooks/useSharedTranslation';
8
8
  import { KitButton, KitSpace, KitNotification, KitTypography } from 'aristid-ds';
9
9
  import dayjs from 'dayjs';
10
- import { FaDownload } from 'react-icons/fa';
10
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
11
+ import { faDownload } from '@fortawesome/free-solid-svg-icons';
11
12
  export const useNotificationsSubscription = () => {
12
13
  const { t } = useSharedTranslation();
13
14
  return useNotificationSubscription({
@@ -23,7 +24,7 @@ export const useNotificationsSubscription = () => {
23
24
  description: message,
24
25
  messageExtra: (_jsx(KitTypography.Text, { size: "fontSize7", children: dayjs.unix(date).format('HH:mm DD/MM/YYYY') })),
25
26
  duration: SUBSCRIPTION_NOTIFICATION_DURATION,
26
- footer: (_jsxs(KitSpace, { direction: "horizontal", size: "xs", children: [attachments?.map(attachment => (_jsx(KitButton, { type: "secondary", onClick: () => window.open(attachment.url, '_blank'), icon: _jsx(FaDownload, {}), children: t('global.download') }, attachment.url))), relatedEntities?.map(relatedEntity => (_jsx(KitButton, { type: "secondary", onClick: () => {
27
+ footer: (_jsxs(KitSpace, { direction: "horizontal", size: "xs", children: [attachments?.map(attachment => (_jsx(KitButton, { type: "secondary", onClick: () => window.open(attachment.url, '_blank'), icon: _jsx(FontAwesomeIcon, { icon: faDownload }), children: t('global.download') }, attachment.url))), relatedEntities?.map(relatedEntity => (_jsx(KitButton, { type: "secondary", onClick: () => {
27
28
  window.location.href = relatedEntity.url;
28
29
  }, children: t('global.show') }, relatedEntity.url)))] })),
29
30
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useNotificationSubscription.js","sourceRoot":"","sources":["../../../../src/components/Notifications/hooks/useNotificationSubscription.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,2BAA2B,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,kCAAkC,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAC,MAAM,gBAAgB,CAAC;AAE1C,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,OAAO,2BAA2B,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YACD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3F,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAE3F,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAClC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,CACV,KAAC,aAAa,CAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC3B,CACxB;gBACD,QAAQ,EAAE,kCAAkC;gBAC5C,MAAM,EAAE,CACJ,MAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,IAAI,aACrC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC5B,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EACpD,IAAI,EAAE,KAAC,UAAU,KAAG,YAEnB,CAAC,CAAC,iBAAiB,CAAC,IALhB,UAAU,CAAC,GAAG,CAMX,CACf,CAAC,EACD,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CACnC,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE;gCACV,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC;4BAC7C,CAAC,YAEA,CAAC,CAAC,aAAa,CAAC,IANZ,aAAa,CAAC,GAAG,CAOd,CACf,CAAC,IACK,CACd;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useNotificationSubscription} from '_ui/_gqlTypes';\nimport {SUBSCRIPTION_NOTIFICATION_DURATION} from '_ui/constants';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitButton, KitSpace, KitNotification, KitTypography} from 'aristid-ds';\nimport dayjs from 'dayjs';\nimport {FaDownload} from 'react-icons/fa';\n\nexport const useNotificationsSubscription = () => {\n const {t} = useSharedTranslation();\n return useNotificationSubscription({\n onData: ({data}) => {\n if (!data?.data?.notification?.title) {\n return;\n }\n const {level, title, message, attachments, relatedEntities, date} = data.data.notification;\n\n const kitNotificationLevel = typeof KitNotification[level] === 'function' ? level : 'info';\n\n KitNotification[kitNotificationLevel]({\n closable: true,\n message: title,\n description: message,\n messageExtra: (\n <KitTypography.Text size=\"fontSize7\">\n {dayjs.unix(date).format('HH:mm DD/MM/YYYY')}\n </KitTypography.Text>\n ),\n duration: SUBSCRIPTION_NOTIFICATION_DURATION,\n footer: (\n <KitSpace direction=\"horizontal\" size=\"xs\">\n {attachments?.map(attachment => (\n <KitButton\n key={attachment.url}\n type=\"secondary\"\n onClick={() => window.open(attachment.url, '_blank')}\n icon={<FaDownload />}\n >\n {t('global.download')}\n </KitButton>\n ))}\n {relatedEntities?.map(relatedEntity => (\n <KitButton\n key={relatedEntity.url}\n type=\"secondary\"\n onClick={() => {\n window.location.href = relatedEntity.url;\n }}\n >\n {t('global.show')}\n </KitButton>\n ))}\n </KitSpace>\n ),\n });\n },\n });\n};\n\nexport default useNotificationsSubscription;\n"]}
1
+ {"version":3,"file":"useNotificationSubscription.js","sourceRoot":"","sources":["../../../../src/components/Notifications/hooks/useNotificationSubscription.tsx"],"names":[],"mappings":";AAAA,oFAAoF;AACpF,sCAAsC;AACtC,sEAAsE;AACtE,OAAO,EAAC,2BAA2B,EAAC,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAC,kCAAkC,EAAC,MAAM,eAAe,CAAC;AACjE,OAAO,EAAC,oBAAoB,EAAC,MAAM,gCAAgC,CAAC;AACpE,OAAO,EAAC,SAAS,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAC,MAAM,YAAY,CAAC;AAC/E,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAC,MAAM,gCAAgC,CAAC;AAC/D,OAAO,EAAC,UAAU,EAAC,MAAM,mCAAmC,CAAC;AAE7D,MAAM,CAAC,MAAM,4BAA4B,GAAG,GAAG,EAAE;IAC7C,MAAM,EAAC,CAAC,EAAC,GAAG,oBAAoB,EAAE,CAAC;IACnC,OAAO,2BAA2B,CAAC;QAC/B,MAAM,EAAE,CAAC,EAAC,IAAI,EAAC,EAAE,EAAE;YACf,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC;gBACnC,OAAO;YACX,CAAC;YACD,MAAM,EAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,IAAI,EAAC,GAAG,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;YAE3F,MAAM,oBAAoB,GAAG,OAAO,eAAe,CAAC,KAAK,CAAC,KAAK,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC;YAE3F,eAAe,CAAC,oBAAoB,CAAC,CAAC;gBAClC,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,OAAO;gBACpB,YAAY,EAAE,CACV,KAAC,aAAa,CAAC,IAAI,IAAC,IAAI,EAAC,WAAW,YAC/B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,kBAAkB,CAAC,GAC3B,CACxB;gBACD,QAAQ,EAAE,kCAAkC;gBAC5C,MAAM,EAAE,CACJ,MAAC,QAAQ,IAAC,SAAS,EAAC,YAAY,EAAC,IAAI,EAAC,IAAI,aACrC,WAAW,EAAE,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC,CAC5B,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,EACpD,IAAI,EAAE,KAAC,eAAe,IAAC,IAAI,EAAE,UAAU,GAAI,YAE1C,CAAC,CAAC,iBAAiB,CAAC,IALhB,UAAU,CAAC,GAAG,CAMX,CACf,CAAC,EACD,eAAe,EAAE,GAAG,CAAC,aAAa,CAAC,EAAE,CAAC,CACnC,KAAC,SAAS,IAEN,IAAI,EAAC,WAAW,EAChB,OAAO,EAAE,GAAG,EAAE;gCACV,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,aAAa,CAAC,GAAG,CAAC;4BAC7C,CAAC,YAEA,CAAC,CAAC,aAAa,CAAC,IANZ,aAAa,CAAC,GAAG,CAOd,CACf,CAAC,IACK,CACd;aACJ,CAAC,CAAC;QACP,CAAC;KACJ,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,eAAe,4BAA4B,CAAC","sourcesContent":["// Copyright LEAV Solutions 2017 until 2023/11/05, Copyright Aristid from 2023/11/06\n// This file is released under LGPL V3\n// License text available at https://www.gnu.org/licenses/lgpl-3.0.txt\nimport {useNotificationSubscription} from '_ui/_gqlTypes';\nimport {SUBSCRIPTION_NOTIFICATION_DURATION} from '_ui/constants';\nimport {useSharedTranslation} from '_ui/hooks/useSharedTranslation';\nimport {KitButton, KitSpace, KitNotification, KitTypography} from 'aristid-ds';\nimport dayjs from 'dayjs';\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faDownload} from '@fortawesome/free-solid-svg-icons';\n\nexport const useNotificationsSubscription = () => {\n const {t} = useSharedTranslation();\n return useNotificationSubscription({\n onData: ({data}) => {\n if (!data?.data?.notification?.title) {\n return;\n }\n const {level, title, message, attachments, relatedEntities, date} = data.data.notification;\n\n const kitNotificationLevel = typeof KitNotification[level] === 'function' ? level : 'info';\n\n KitNotification[kitNotificationLevel]({\n closable: true,\n message: title,\n description: message,\n messageExtra: (\n <KitTypography.Text size=\"fontSize7\">\n {dayjs.unix(date).format('HH:mm DD/MM/YYYY')}\n </KitTypography.Text>\n ),\n duration: SUBSCRIPTION_NOTIFICATION_DURATION,\n footer: (\n <KitSpace direction=\"horizontal\" size=\"xs\">\n {attachments?.map(attachment => (\n <KitButton\n key={attachment.url}\n type=\"secondary\"\n onClick={() => window.open(attachment.url, '_blank')}\n icon={<FontAwesomeIcon icon={faDownload} />}\n >\n {t('global.download')}\n </KitButton>\n ))}\n {relatedEntities?.map(relatedEntity => (\n <KitButton\n key={relatedEntity.url}\n type=\"secondary\"\n onClick={() => {\n window.location.href = relatedEntity.url;\n }}\n >\n {t('global.show')}\n </KitButton>\n ))}\n </KitSpace>\n ),\n });\n },\n });\n};\n\nexport default useNotificationsSubscription;\n"]}
@@ -3,12 +3,12 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  // This file is released under LGPL V3
4
4
  // License text available at https://www.gnu.org/licenses/lgpl-3.0.txt
5
5
  import { Button, Dropdown, Space } from 'antd';
6
- import { VscLayers, VscLayersActive } from 'react-icons/vsc';
7
- import { themeVars } from '../../../../../antdTheme';
8
6
  import { BasicButton } from '../../../../../components';
9
7
  import { useSharedTranslation } from '../../../../../hooks/useSharedTranslation';
10
8
  import { getValueVersionLabel } from '../../../../../_utils';
11
9
  import { VersionFieldScope } from '../../_types';
10
+ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
11
+ import { faLayerGroup } from '@fortawesome/free-solid-svg-icons';
12
12
  function ValuesVersionBtn({ versions, activeScope, onScopeChange, basic, ...buttonProps }) {
13
13
  const { t } = useSharedTranslation();
14
14
  const hasInheritedVersion = !!versions[VersionFieldScope.INHERITED];
@@ -18,37 +18,22 @@ function ValuesVersionBtn({ versions, activeScope, onScopeChange, basic, ...butt
18
18
  onScopeChange(item.key);
19
19
  };
20
20
  const currentVersionLabel = getValueVersionLabel(versions[VersionFieldScope.CURRENT]);
21
- const iconProps = {
22
- size: '1.8em',
23
- style: {
24
- paddingTop: '5px',
25
- },
26
- };
27
- const icon = activeScope === VersionFieldScope.CURRENT ? _jsx(VscLayersActive, { ...iconProps }) : _jsx(VscLayers, { ...iconProps });
28
21
  const menuItems = [
29
22
  {
30
23
  key: VersionFieldScope.CURRENT,
31
- label: (_jsxs(Space, { style: { paddingLeft: hasInheritedVersion ? '1rem' : 0 }, children: [icon, currentVersionLabel] })),
24
+ label: (_jsxs(Space, { style: { paddingLeft: hasInheritedVersion ? '1rem' : 0 }, children: [_jsx(FontAwesomeIcon, { icon: faLayerGroup }), currentVersionLabel] })),
32
25
  onClick: _handleVersionSelect,
33
26
  },
34
27
  ];
35
28
  if (hasInheritedVersion) {
36
29
  const inheritedVersionLabel = getValueVersionLabel(versions[VersionFieldScope.INHERITED]) + ` (${t('values_version.inherited_value')})`;
37
- const inheritedIconProps = {
38
- size: '1.8em',
39
- style: {
40
- paddingTop: '5px',
41
- color: themeVars.inheritedValuesVersionColor,
42
- },
43
- };
44
- const inheritedIcon = activeScope === VersionFieldScope.INHERITED ? (_jsx(VscLayersActive, { ...inheritedIconProps })) : (_jsx(VscLayers, { ...inheritedIconProps }));
45
30
  menuItems.unshift({
46
31
  key: VersionFieldScope.INHERITED,
47
- label: (_jsxs(Space, { children: [inheritedIcon, inheritedVersionLabel] })),
32
+ label: (_jsxs(Space, { children: [_jsx(FontAwesomeIcon, { icon: faLayerGroup }), inheritedVersionLabel] })),
48
33
  onClick: _handleVersionSelect,
49
34
  });
50
35
  }
51
- const buttonIcon = _jsx(VscLayers, { size: "1.35em", style: { paddingTop: '3px' } });
36
+ const buttonIcon = _jsx(FontAwesomeIcon, { icon: faLayerGroup });
52
37
  const button = basic ? (_jsx(BasicButton, { "aria-label": "values-version", shape: "circle", ...buttonProps, icon: buttonIcon, centered: true })) : (_jsx(Button, { "aria-label": "values-version", shape: "circle", ...buttonProps, icon: buttonIcon }));
53
38
  return (_jsx(Dropdown, { trigger: ['click'], menu: { items: menuItems, activeKey: activeScope }, children: button }));
54
39
  }