@darajs/ui-components 0.4.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +201 -0
- package/dist/accordion/accordion-item.d.ts +24 -0
- package/dist/accordion/accordion-item.d.ts.map +1 -0
- package/dist/accordion/accordion-item.js +92 -0
- package/dist/accordion/accordion-item.js.map +1 -0
- package/dist/accordion/accordion.d.ts +32 -0
- package/dist/accordion/accordion.d.ts.map +1 -0
- package/dist/accordion/accordion.js +87 -0
- package/dist/accordion/accordion.js.map +1 -0
- package/dist/badge/badge.d.ts +20 -0
- package/dist/badge/badge.d.ts.map +1 -0
- package/dist/badge/badge.js +42 -0
- package/dist/badge/badge.js.map +1 -0
- package/dist/button/button.d.ts +35 -0
- package/dist/button/button.d.ts.map +1 -0
- package/dist/button/button.js +169 -0
- package/dist/button/button.js.map +1 -0
- package/dist/button-bar/button-bar.d.ts +19 -0
- package/dist/button-bar/button-bar.d.ts.map +1 -0
- package/dist/button-bar/button-bar.js +124 -0
- package/dist/button-bar/button-bar.js.map +1 -0
- package/dist/carousel/carousel.d.ts +23 -0
- package/dist/carousel/carousel.d.ts.map +1 -0
- package/dist/carousel/carousel.js +178 -0
- package/dist/carousel/carousel.js.map +1 -0
- package/dist/chat/chat.d.ts +28 -0
- package/dist/chat/chat.d.ts.map +1 -0
- package/dist/chat/chat.js +182 -0
- package/dist/chat/chat.js.map +1 -0
- package/dist/chat/message.d.ts +28 -0
- package/dist/chat/message.d.ts.map +1 -0
- package/dist/chat/message.js +220 -0
- package/dist/chat/message.js.map +1 -0
- package/dist/checkbox/checkbox-group.d.ts +35 -0
- package/dist/checkbox/checkbox-group.d.ts.map +1 -0
- package/dist/checkbox/checkbox-group.js +116 -0
- package/dist/checkbox/checkbox-group.js.map +1 -0
- package/dist/checkbox/checkbox.d.ts +27 -0
- package/dist/checkbox/checkbox.d.ts.map +1 -0
- package/dist/checkbox/checkbox.js +164 -0
- package/dist/checkbox/checkbox.js.map +1 -0
- package/dist/checkbox/tri-state-checkbox.d.ts +22 -0
- package/dist/checkbox/tri-state-checkbox.d.ts.map +1 -0
- package/dist/checkbox/tri-state-checkbox.js +87 -0
- package/dist/checkbox/tri-state-checkbox.js.map +1 -0
- package/dist/code-viewer/code-viewer.d.ts +31 -0
- package/dist/code-viewer/code-viewer.d.ts.map +1 -0
- package/dist/code-viewer/code-viewer.js +115 -0
- package/dist/code-viewer/code-viewer.js.map +1 -0
- package/dist/combo-box/combo-box.d.ts +39 -0
- package/dist/combo-box/combo-box.d.ts.map +1 -0
- package/dist/combo-box/combo-box.js +176 -0
- package/dist/combo-box/combo-box.js.map +1 -0
- package/dist/component-select-list/component-select-list.d.ts +27 -0
- package/dist/component-select-list/component-select-list.d.ts.map +1 -0
- package/dist/component-select-list/component-select-list.js +131 -0
- package/dist/component-select-list/component-select-list.js.map +1 -0
- package/dist/constants.d.ts +33 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/constants.js +47 -0
- package/dist/constants.js.map +1 -0
- package/dist/context-menu/context-menu.d.ts +24 -0
- package/dist/context-menu/context-menu.d.ts.map +1 -0
- package/dist/context-menu/context-menu.js +116 -0
- package/dist/context-menu/context-menu.js.map +1 -0
- package/dist/datepicker/datepicker-select.d.ts +48 -0
- package/dist/datepicker/datepicker-select.d.ts.map +1 -0
- package/dist/datepicker/datepicker-select.js +219 -0
- package/dist/datepicker/datepicker-select.js.map +1 -0
- package/dist/datepicker/datepicker.d.ts +56 -0
- package/dist/datepicker/datepicker.d.ts.map +1 -0
- package/dist/datepicker/datepicker.js +669 -0
- package/dist/datepicker/datepicker.js.map +1 -0
- package/dist/dropzone/dropzone.d.ts +21 -0
- package/dist/dropzone/dropzone.d.ts.map +1 -0
- package/dist/dropzone/dropzone.js +80 -0
- package/dist/dropzone/dropzone.js.map +1 -0
- package/dist/error-boundary/error-boundary.d.ts +33 -0
- package/dist/error-boundary/error-boundary.d.ts.map +1 -0
- package/dist/error-boundary/error-boundary.js +72 -0
- package/dist/error-boundary/error-boundary.js.map +1 -0
- package/dist/filter/categorical-filter.d.ts +26 -0
- package/dist/filter/categorical-filter.d.ts.map +1 -0
- package/dist/filter/categorical-filter.js +153 -0
- package/dist/filter/categorical-filter.js.map +1 -0
- package/dist/filter/datetime-filter.d.ts +28 -0
- package/dist/filter/datetime-filter.d.ts.map +1 -0
- package/dist/filter/datetime-filter.js +174 -0
- package/dist/filter/datetime-filter.js.map +1 -0
- package/dist/filter/numeric-filter.d.ts +24 -0
- package/dist/filter/numeric-filter.d.ts.map +1 -0
- package/dist/filter/numeric-filter.js +148 -0
- package/dist/filter/numeric-filter.js.map +1 -0
- package/dist/hierarchy-selector/hierarchy-selector.d.ts +31 -0
- package/dist/hierarchy-selector/hierarchy-selector.d.ts.map +1 -0
- package/dist/hierarchy-selector/hierarchy-selector.js +65 -0
- package/dist/hierarchy-selector/hierarchy-selector.js.map +1 -0
- package/dist/hierarchy-selector/node/branch.d.ts +47 -0
- package/dist/hierarchy-selector/node/branch.d.ts.map +1 -0
- package/dist/hierarchy-selector/node/branch.js +132 -0
- package/dist/hierarchy-selector/node/branch.js.map +1 -0
- package/dist/index.d.ts +57 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/dist/input/input.d.ts +44 -0
- package/dist/input/input.d.ts.map +1 -0
- package/dist/input/input.js +91 -0
- package/dist/input/input.js.map +1 -0
- package/dist/jest-setup.d.ts +18 -0
- package/dist/jest-setup.d.ts.map +1 -0
- package/dist/jest-setup.js +18 -0
- package/dist/jest-setup.js.map +1 -0
- package/dist/markdown/markdown.d.ts +18 -0
- package/dist/markdown/markdown.d.ts.map +1 -0
- package/dist/markdown/markdown.js +356 -0
- package/dist/markdown/markdown.js.map +1 -0
- package/dist/modal/modal.d.ts +37 -0
- package/dist/modal/modal.d.ts.map +1 -0
- package/dist/modal/modal.js +121 -0
- package/dist/modal/modal.js.map +1 -0
- package/dist/multiselect/multiselect.d.ts +31 -0
- package/dist/multiselect/multiselect.d.ts.map +1 -0
- package/dist/multiselect/multiselect.js +231 -0
- package/dist/multiselect/multiselect.js.map +1 -0
- package/dist/numeric-input/input-stepper.d.ts +33 -0
- package/dist/numeric-input/input-stepper.d.ts.map +1 -0
- package/dist/numeric-input/input-stepper.js +54 -0
- package/dist/numeric-input/input-stepper.js.map +1 -0
- package/dist/numeric-input/numeric-input.d.ts +42 -0
- package/dist/numeric-input/numeric-input.d.ts.map +1 -0
- package/dist/numeric-input/numeric-input.js +234 -0
- package/dist/numeric-input/numeric-input.js.map +1 -0
- package/dist/progress-bar/progress-bar.d.ts +23 -0
- package/dist/progress-bar/progress-bar.d.ts.map +1 -0
- package/dist/progress-bar/progress-bar.js +90 -0
- package/dist/progress-bar/progress-bar.js.map +1 -0
- package/dist/radio/radio-group.d.ts +19 -0
- package/dist/radio/radio-group.d.ts.map +1 -0
- package/dist/radio/radio-group.js +160 -0
- package/dist/radio/radio-group.js.map +1 -0
- package/dist/search-bar/search-bar.d.ts +34 -0
- package/dist/search-bar/search-bar.d.ts.map +1 -0
- package/dist/search-bar/search-bar.js +39 -0
- package/dist/search-bar/search-bar.js.map +1 -0
- package/dist/sectioned-list/sectioned-list.d.ts +29 -0
- package/dist/sectioned-list/sectioned-list.d.ts.map +1 -0
- package/dist/sectioned-list/sectioned-list.js +205 -0
- package/dist/sectioned-list/sectioned-list.js.map +1 -0
- package/dist/select/select.d.ts +54 -0
- package/dist/select/select.d.ts.map +1 -0
- package/dist/select/select.js +143 -0
- package/dist/select/select.js.map +1 -0
- package/dist/shared/chevron-button.d.ts +13 -0
- package/dist/shared/chevron-button.d.ts.map +1 -0
- package/dist/shared/chevron-button.js +35 -0
- package/dist/shared/chevron-button.js.map +1 -0
- package/dist/shared/dropdown-list.d.ts +34 -0
- package/dist/shared/dropdown-list.d.ts.map +1 -0
- package/dist/shared/dropdown-list.js +33 -0
- package/dist/shared/dropdown-list.js.map +1 -0
- package/dist/shared/list-item.d.ts +35 -0
- package/dist/shared/list-item.d.ts.map +1 -0
- package/dist/shared/list-item.js +69 -0
- package/dist/shared/list-item.js.map +1 -0
- package/dist/slider/slider-inputs.d.ts +36 -0
- package/dist/slider/slider-inputs.d.ts.map +1 -0
- package/dist/slider/slider-inputs.js +88 -0
- package/dist/slider/slider-inputs.js.map +1 -0
- package/dist/slider/slider.d.ts +53 -0
- package/dist/slider/slider.d.ts.map +1 -0
- package/dist/slider/slider.js +273 -0
- package/dist/slider/slider.js.map +1 -0
- package/dist/spinner/spinner.d.ts +19 -0
- package/dist/spinner/spinner.d.ts.map +1 -0
- package/dist/spinner/spinner.js +144 -0
- package/dist/spinner/spinner.js.map +1 -0
- package/dist/switch/sun-icon.d.ts +3 -0
- package/dist/switch/sun-icon.d.ts.map +1 -0
- package/dist/switch/sun-icon.js +24 -0
- package/dist/switch/sun-icon.js.map +1 -0
- package/dist/switch/switch.d.ts +16 -0
- package/dist/switch/switch.d.ts.map +1 -0
- package/dist/switch/switch.js +92 -0
- package/dist/switch/switch.js.map +1 -0
- package/dist/table/cells/action-cell.d.ts +34 -0
- package/dist/table/cells/action-cell.d.ts.map +1 -0
- package/dist/table/cells/action-cell.js +68 -0
- package/dist/table/cells/action-cell.js.map +1 -0
- package/dist/table/cells/datetime-cell.d.ts +12 -0
- package/dist/table/cells/datetime-cell.d.ts.map +1 -0
- package/dist/table/cells/datetime-cell.js +36 -0
- package/dist/table/cells/datetime-cell.js.map +1 -0
- package/dist/table/cells/edit-cell-utils.d.ts +32 -0
- package/dist/table/cells/edit-cell-utils.d.ts.map +1 -0
- package/dist/table/cells/edit-cell-utils.js +2 -0
- package/dist/table/cells/edit-cell-utils.js.map +1 -0
- package/dist/table/cells/edit-input-cell.d.ts +10 -0
- package/dist/table/cells/edit-input-cell.d.ts.map +1 -0
- package/dist/table/cells/edit-input-cell.js +61 -0
- package/dist/table/cells/edit-input-cell.js.map +1 -0
- package/dist/table/cells/edit-select-cell.d.ts +12 -0
- package/dist/table/cells/edit-select-cell.d.ts.map +1 -0
- package/dist/table/cells/edit-select-cell.js +55 -0
- package/dist/table/cells/edit-select-cell.js.map +1 -0
- package/dist/table/filters.d.ts +46 -0
- package/dist/table/filters.d.ts.map +1 -0
- package/dist/table/filters.js +226 -0
- package/dist/table/filters.js.map +1 -0
- package/dist/table/headers/select-header.d.ts +14 -0
- package/dist/table/headers/select-header.d.ts.map +1 -0
- package/dist/table/headers/select-header.js +41 -0
- package/dist/table/headers/select-header.js.map +1 -0
- package/dist/table/options-menu.d.ts +25 -0
- package/dist/table/options-menu.d.ts.map +1 -0
- package/dist/table/options-menu.js +123 -0
- package/dist/table/options-menu.js.map +1 -0
- package/dist/table/render-row.d.ts +25 -0
- package/dist/table/render-row.d.ts.map +1 -0
- package/dist/table/render-row.js +163 -0
- package/dist/table/render-row.js.map +1 -0
- package/dist/table/table.d.ts +95 -0
- package/dist/table/table.d.ts.map +1 -0
- package/dist/table/table.js +422 -0
- package/dist/table/table.js.map +1 -0
- package/dist/table/types.d.ts +30 -0
- package/dist/table/types.d.ts.map +1 -0
- package/dist/table/types.js +2 -0
- package/dist/table/types.js.map +1 -0
- package/dist/tabs/tabs.d.ts +22 -0
- package/dist/tabs/tabs.d.ts.map +1 -0
- package/dist/tabs/tabs.js +91 -0
- package/dist/tabs/tabs.js.map +1 -0
- package/dist/textarea/textarea.d.ts +47 -0
- package/dist/textarea/textarea.d.ts.map +1 -0
- package/dist/textarea/textarea.js +121 -0
- package/dist/textarea/textarea.js.map +1 -0
- package/dist/tooltip/tooltip.d.ts +48 -0
- package/dist/tooltip/tooltip.d.ts.map +1 -0
- package/dist/tooltip/tooltip.js +116 -0
- package/dist/tooltip/tooltip.js.map +1 -0
- package/dist/types.d.ts +94 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/utils/chevron.d.ts +34 -0
- package/dist/utils/chevron.d.ts.map +1 -0
- package/dist/utils/chevron.js +38 -0
- package/dist/utils/chevron.js.map +1 -0
- package/dist/utils/index.d.ts +22 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +22 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/label.d.ts +3 -0
- package/dist/utils/label.d.ts.map +1 -0
- package/dist/utils/label.js +24 -0
- package/dist/utils/label.js.map +1 -0
- package/dist/utils/list-styles.d.ts +8 -0
- package/dist/utils/list-styles.d.ts.map +1 -0
- package/dist/utils/list-styles.js +43 -0
- package/dist/utils/list-styles.js.map +1 -0
- package/dist/utils/match-width-to-reference.d.ts +24 -0
- package/dist/utils/match-width-to-reference.d.ts.map +1 -0
- package/dist/utils/match-width-to-reference.js +30 -0
- package/dist/utils/match-width-to-reference.js.map +1 -0
- package/dist/utils/syncKbdHighlightIdx.d.ts +23 -0
- package/dist/utils/syncKbdHighlightIdx.d.ts.map +1 -0
- package/dist/utils/syncKbdHighlightIdx.js +41 -0
- package/dist/utils/syncKbdHighlightIdx.js.map +1 -0
- package/dist/utils/use-infinite-loader.d.ts +32 -0
- package/dist/utils/use-infinite-loader.d.ts.map +1 -0
- package/dist/utils/use-infinite-loader.js +119 -0
- package/dist/utils/use-infinite-loader.js.map +1 -0
- package/dist/utils/use-on-click-outside.d.ts +3 -0
- package/dist/utils/use-on-click-outside.d.ts.map +1 -0
- package/dist/utils/use-on-click-outside.js +36 -0
- package/dist/utils/use-on-click-outside.js.map +1 -0
- package/package.json +106 -0
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Impulse Innovations Limited
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { useMemo, useState } from 'react';
|
|
19
|
+
import styled from '@darajs/styled-components';
|
|
20
|
+
import Datepicker from '../datepicker/datepicker';
|
|
21
|
+
import Select from '../select/select';
|
|
22
|
+
import { ApplyButton, FilterWrapper } from './categorical-filter';
|
|
23
|
+
import { FilterHeader } from './numeric-filter';
|
|
24
|
+
const DatetimeFilterWrapper = styled(FilterWrapper) `
|
|
25
|
+
gap: 0;
|
|
26
|
+
`;
|
|
27
|
+
const DatepickerWrapper = styled.div `
|
|
28
|
+
height: auto;
|
|
29
|
+
|
|
30
|
+
div:has(input) {
|
|
31
|
+
width: 6.7rem;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
input {
|
|
35
|
+
width: 6.7rem;
|
|
36
|
+
padding: 0;
|
|
37
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
38
|
+
border: 1px solid ${(props) => props.theme.colors.background};
|
|
39
|
+
|
|
40
|
+
::after {
|
|
41
|
+
width: 5rem;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
:hover:not(:disabled) {
|
|
45
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
46
|
+
border: 1px solid ${(props) => props.theme.colors.grey4};
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
div:has(> button) {
|
|
51
|
+
border: 1px solid ${(props) => props.theme.colors.grey1};
|
|
52
|
+
|
|
53
|
+
:hover {
|
|
54
|
+
border: 1px solid ${(props) => props.theme.colors.grey1};
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
:focus-within {
|
|
58
|
+
border: 1px solid ${(props) => props.theme.colors.grey1};
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
button {
|
|
63
|
+
background-color: ${(props) => props.theme.colors.grey1};
|
|
64
|
+
|
|
65
|
+
:hover:enabled {
|
|
66
|
+
background-color: ${(props) => props.theme.colors.grey2};
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.react-datepicker {
|
|
71
|
+
margin-bottom: -1rem;
|
|
72
|
+
margin-left: -0.5rem;
|
|
73
|
+
|
|
74
|
+
background-color: ${(props) => props.theme.colors.grey1};
|
|
75
|
+
border: none;
|
|
76
|
+
box-shadow: none;
|
|
77
|
+
|
|
78
|
+
/* stylelint-disable -- external classnames */
|
|
79
|
+
.react-datepicker__month-container {
|
|
80
|
+
.react-datepicker__header {
|
|
81
|
+
background-color: ${(props) => props.theme.colors.grey1};
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.react-datepicker__month {
|
|
85
|
+
background-color: ${(props) => props.theme.colors.grey1};
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
`;
|
|
90
|
+
const StyledSelect = styled(Select) `
|
|
91
|
+
margin-bottom: 0.25rem;
|
|
92
|
+
border: 1px solid ${(props) => props.theme.colors.background};
|
|
93
|
+
|
|
94
|
+
button {
|
|
95
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
96
|
+
|
|
97
|
+
:hover:enabled {
|
|
98
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
`;
|
|
102
|
+
const StyledApply = styled(ApplyButton) `
|
|
103
|
+
width: 4rem;
|
|
104
|
+
height: 2rem;
|
|
105
|
+
padding: 0;
|
|
106
|
+
`;
|
|
107
|
+
const DatetimeFilterItems = [
|
|
108
|
+
{
|
|
109
|
+
label: 'None',
|
|
110
|
+
value: 'None',
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
label: 'Before',
|
|
114
|
+
value: 'Before',
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
label: 'After',
|
|
118
|
+
value: 'After',
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
label: 'On date',
|
|
122
|
+
value: 'On date',
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
label: 'Between',
|
|
126
|
+
value: 'Between',
|
|
127
|
+
},
|
|
128
|
+
];
|
|
129
|
+
/**
|
|
130
|
+
* A DatetimeFilter component
|
|
131
|
+
*
|
|
132
|
+
* @param {DatetimeFilterProps} props - the component props
|
|
133
|
+
*/
|
|
134
|
+
function DatetimeFilter(props) {
|
|
135
|
+
const [selected, setSelected] = useState(null);
|
|
136
|
+
const [dateValues, setDateValues] = useState(props.values);
|
|
137
|
+
const filteredValues = useMemo(() => {
|
|
138
|
+
let filterDate = dateValues;
|
|
139
|
+
// If switched from range to single should just send the first date to the onChange
|
|
140
|
+
if ((selected === null || selected === void 0 ? void 0 : selected.value) !== 'Between' && Array.isArray(dateValues)) {
|
|
141
|
+
[filterDate] = dateValues;
|
|
142
|
+
}
|
|
143
|
+
return { selected: selected === null || selected === void 0 ? void 0 : selected.label, value: filterDate };
|
|
144
|
+
}, [dateValues, selected]);
|
|
145
|
+
const [previousFilter, setPreviousFilter] = useState(filteredValues);
|
|
146
|
+
const disableApply = useMemo(() => {
|
|
147
|
+
// if filter disabled or value has not changed
|
|
148
|
+
if (props.disabled || previousFilter === filteredValues) {
|
|
149
|
+
return true;
|
|
150
|
+
}
|
|
151
|
+
// if one of the dates is not defined
|
|
152
|
+
if (!dateValues ||
|
|
153
|
+
(selected.label === 'Between' && Array.isArray(dateValues) && (!dateValues[0] || !dateValues[1])) ||
|
|
154
|
+
(selected.label === 'Between' && !Array.isArray(dateValues))) {
|
|
155
|
+
return true;
|
|
156
|
+
}
|
|
157
|
+
return false;
|
|
158
|
+
}, [props.disabled, previousFilter, filteredValues, dateValues, selected]);
|
|
159
|
+
return (_jsxs(DatetimeFilterWrapper, { className: props.className, children: [_jsxs(FilterHeader, { children: [_jsx(StyledSelect, { dropdownRef: (element) => {
|
|
160
|
+
if (props.portalsRef) {
|
|
161
|
+
props.portalsRef.current[2] = element;
|
|
162
|
+
}
|
|
163
|
+
}, initialValue: {
|
|
164
|
+
label: 'None',
|
|
165
|
+
value: 'None',
|
|
166
|
+
}, items: DatetimeFilterItems, onSelect: setSelected }), _jsx(DatepickerWrapper, { children: selected && selected.label !== 'None' && (_jsx(Datepicker, { inline: true, onChange: setDateValues, portalsRef: props.portalsRef, selectItemClass: "DatetimeFilterSelect", selectsRange: (selected === null || selected === void 0 ? void 0 : selected.value) === 'Between', shouldCloseOnSelect: false, showTimeInput: props.showTimeInput })) })] }), _jsx(StyledApply, { disabled: disableApply, onClick: (e) => {
|
|
167
|
+
var _a, _b;
|
|
168
|
+
(_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, filteredValues, e);
|
|
169
|
+
(_b = props === null || props === void 0 ? void 0 : props.column) === null || _b === void 0 ? void 0 : _b.setFilter(filteredValues || undefined);
|
|
170
|
+
setPreviousFilter(filteredValues);
|
|
171
|
+
}, children: "Apply" })] }));
|
|
172
|
+
}
|
|
173
|
+
export default DatetimeFilter;
|
|
174
|
+
//# sourceMappingURL=datetime-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"datetime-filter.js","sourceRoot":"","sources":["../../src/filter/datetime-filter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { FilterProps } from 'react-table';
|
|
2
|
+
export declare const FilterHeader: import("styled-components").StyledComponent<"div", import("@darajs/styled-components").DefaultTheme, {}, never>;
|
|
3
|
+
export interface FilterResults {
|
|
4
|
+
selected: string;
|
|
5
|
+
value: number | [number, number];
|
|
6
|
+
}
|
|
7
|
+
export interface NumericFilterProps extends FilterProps<any> {
|
|
8
|
+
/** Standard react className property */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Whether the filter is disabled. */
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
/** An optional onChange handler, will be called whenever the filter is applied */
|
|
13
|
+
onChange?: (value: FilterResults, e: React.MouseEvent<HTMLButtonElement>) => void | Promise<void>;
|
|
14
|
+
/** An optional ref to be passed through to all selects dropdowns present in the filter */
|
|
15
|
+
portalsRef?: React.MutableRefObject<HTMLElement[]>;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* A NumericFilter component
|
|
19
|
+
*
|
|
20
|
+
* @param {NumericFilterProps} props - the component props
|
|
21
|
+
*/
|
|
22
|
+
declare function NumericFilter(props: NumericFilterProps): JSX.Element;
|
|
23
|
+
export default NumericFilter;
|
|
24
|
+
//# sourceMappingURL=numeric-filter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numeric-filter.d.ts","sourceRoot":"","sources":["../../src/filter/numeric-filter.tsx"],"names":[],"mappings":"AAiBA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AA2B1C,eAAO,MAAM,YAAY,iHAKxB,CAAC;AA4DF,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW,CAAC,GAAG,CAAC;IACxD,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,EAAE,CAAC,EAAE,KAAK,CAAC,UAAU,CAAC,iBAAiB,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClG,0FAA0F;IAC1F,UAAU,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,CAAC;CACtD;AAED;;;;GAIG;AACH,iBAAS,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,GAAG,CAAC,OAAO,CA0F7D;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Impulse Innovations Limited
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { useMemo, useState } from 'react';
|
|
19
|
+
import styled from '@darajs/styled-components';
|
|
20
|
+
import Input from '../input/input';
|
|
21
|
+
import Select from '../select/select';
|
|
22
|
+
import { ApplyButton, FilterWrapper } from './categorical-filter';
|
|
23
|
+
const StyledSelect = styled(Select) `
|
|
24
|
+
margin: 1px solid ${(props) => props.theme.colors.background};
|
|
25
|
+
|
|
26
|
+
button {
|
|
27
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
28
|
+
|
|
29
|
+
:hover:enabled {
|
|
30
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
`;
|
|
34
|
+
const InputsWrapper = styled.div `
|
|
35
|
+
display: flex;
|
|
36
|
+
gap: 5px;
|
|
37
|
+
align-items: center;
|
|
38
|
+
`;
|
|
39
|
+
export const FilterHeader = styled.div `
|
|
40
|
+
display: flex;
|
|
41
|
+
flex-direction: column;
|
|
42
|
+
gap: 0.25rem;
|
|
43
|
+
padding: 0 0.5rem;
|
|
44
|
+
`;
|
|
45
|
+
const StyledInput = styled(Input) `
|
|
46
|
+
width: ${(props) => (props.showTwoInputs ? '106px' : '100%')};
|
|
47
|
+
|
|
48
|
+
input {
|
|
49
|
+
width: ${(props) => (props.showTwoInputs ? '106px' : '100%')};
|
|
50
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
51
|
+
border: 1px solid ${(props) => (props.showError ? props.theme.colors.error : props.theme.colors.background)};
|
|
52
|
+
|
|
53
|
+
:hover:not(:disabled) {
|
|
54
|
+
background-color: ${(props) => props.theme.colors.background};
|
|
55
|
+
border: 1px solid ${(props) => (props.showError ? props.theme.colors.error : props.theme.colors.grey3)};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
:active:not(:disabled),
|
|
59
|
+
:focus:not(:disabled) {
|
|
60
|
+
border: 1px solid ${(props) => (props.showError ? props.theme.colors.error : props.theme.colors.grey3)};
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
`;
|
|
64
|
+
const ErrorMessage = styled.span `
|
|
65
|
+
user-select: none;
|
|
66
|
+
font-size: 0.7rem;
|
|
67
|
+
color: ${(props) => props.theme.colors.error};
|
|
68
|
+
`;
|
|
69
|
+
const NumericFilterItems = [
|
|
70
|
+
{
|
|
71
|
+
label: 'None',
|
|
72
|
+
value: 'None',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
label: 'Greater than',
|
|
76
|
+
value: 'Greater than',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
label: 'Less than',
|
|
80
|
+
value: 'Less tha',
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
label: 'Equal to',
|
|
84
|
+
value: 'Equal to',
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
label: 'Not equal to',
|
|
88
|
+
value: 'Not equal to',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
label: 'Between',
|
|
92
|
+
value: 'Between',
|
|
93
|
+
},
|
|
94
|
+
];
|
|
95
|
+
/**
|
|
96
|
+
* A NumericFilter component
|
|
97
|
+
*
|
|
98
|
+
* @param {NumericFilterProps} props - the component props
|
|
99
|
+
*/
|
|
100
|
+
function NumericFilter(props) {
|
|
101
|
+
const [selected, setSelected] = useState(null);
|
|
102
|
+
const [firstInput, setFirstInput] = useState(null);
|
|
103
|
+
const [secondInput, setSecondInput] = useState(null);
|
|
104
|
+
const filteredValues = useMemo(() => {
|
|
105
|
+
if ((selected === null || selected === void 0 ? void 0 : selected.label) === 'None') {
|
|
106
|
+
return { selected: selected === null || selected === void 0 ? void 0 : selected.label, value: null };
|
|
107
|
+
}
|
|
108
|
+
if ((selected === null || selected === void 0 ? void 0 : selected.label) === 'Between') {
|
|
109
|
+
return { selected: selected === null || selected === void 0 ? void 0 : selected.label, value: [firstInput, secondInput] };
|
|
110
|
+
}
|
|
111
|
+
return { selected: selected === null || selected === void 0 ? void 0 : selected.label, value: firstInput };
|
|
112
|
+
}, [firstInput, secondInput, selected]);
|
|
113
|
+
const [previousFilter, setPreviousFilter] = useState(filteredValues);
|
|
114
|
+
const showError = useMemo(() => {
|
|
115
|
+
if (secondInput && firstInput && secondInput < firstInput && (selected === null || selected === void 0 ? void 0 : selected.label) === 'Between') {
|
|
116
|
+
return true;
|
|
117
|
+
}
|
|
118
|
+
return false;
|
|
119
|
+
}, [firstInput, secondInput, selected]);
|
|
120
|
+
const disableApply = useMemo(() => {
|
|
121
|
+
// disable apply if component is disabled, if the filter hasn't changed, if there is an input error, or input hasn't been filled
|
|
122
|
+
if (props.disabled || previousFilter === filteredValues || showError) {
|
|
123
|
+
return true;
|
|
124
|
+
}
|
|
125
|
+
if (firstInput === null && (selected === null || selected === void 0 ? void 0 : selected.label) !== 'None') {
|
|
126
|
+
return true;
|
|
127
|
+
}
|
|
128
|
+
if (secondInput === null && (selected === null || selected === void 0 ? void 0 : selected.label) === 'Between') {
|
|
129
|
+
return true;
|
|
130
|
+
}
|
|
131
|
+
return false;
|
|
132
|
+
}, [props.disabled, firstInput, secondInput, previousFilter, filteredValues, showError, selected]);
|
|
133
|
+
return (_jsxs(FilterWrapper, { className: props.className, children: [_jsxs(FilterHeader, { children: [_jsx(StyledSelect, { dropdownRef: (element) => {
|
|
134
|
+
if (props.portalsRef) {
|
|
135
|
+
props.portalsRef.current[0] = element;
|
|
136
|
+
}
|
|
137
|
+
}, initialValue: {
|
|
138
|
+
label: 'None',
|
|
139
|
+
value: 'None',
|
|
140
|
+
}, items: NumericFilterItems, maxItems: 6, onSelect: setSelected }), selected && (selected === null || selected === void 0 ? void 0 : selected.label) !== 'None' && (_jsxs(InputsWrapper, { children: [_jsx(StyledInput, { onChange: (v) => setFirstInput(Number(v)), showError: showError, showTwoInputs: (selected === null || selected === void 0 ? void 0 : selected.label) === 'Between', type: "number" }), (selected === null || selected === void 0 ? void 0 : selected.label) === 'Between' && (_jsxs(InputsWrapper, { children: ["and", _jsx(StyledInput, { onChange: (v) => setSecondInput(Number(v)), showError: showError, type: "number", value: String(secondInput) })] }))] }))] }), showError && _jsx(ErrorMessage, { children: "Input range not valid" }), _jsx(ApplyButton, { disabled: disableApply, onClick: (e) => {
|
|
141
|
+
var _a, _b;
|
|
142
|
+
(_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, filteredValues, e);
|
|
143
|
+
(_b = props === null || props === void 0 ? void 0 : props.column) === null || _b === void 0 ? void 0 : _b.setFilter(filteredValues || undefined);
|
|
144
|
+
setPreviousFilter(filteredValues);
|
|
145
|
+
}, children: "Apply" })] }));
|
|
146
|
+
}
|
|
147
|
+
export default NumericFilter;
|
|
148
|
+
//# sourceMappingURL=numeric-filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"numeric-filter.js","sourceRoot":"","sources":["../../src/filter/numeric-filter.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { HierarchyNode } from './node/branch';
|
|
3
|
+
interface HierarchySelectorProps {
|
|
4
|
+
/** Optional flag for enabling categories to be selected by the user */
|
|
5
|
+
allowSelectCategory?: boolean;
|
|
6
|
+
/** Optional flag for enabling leaves to be selected by the user */
|
|
7
|
+
allowSelectLeaf?: boolean;
|
|
8
|
+
/** Standard react className property */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Optional function to get id of the node selected by the user */
|
|
11
|
+
onSelect?: (nodeId: string) => void | Promise<void>;
|
|
12
|
+
/** The root node for the hierarchy selector, the node should contain an id, label and array of children nodes */
|
|
13
|
+
rootNode: HierarchyNode;
|
|
14
|
+
/** Optional flag for making the root node initially opened or closed */
|
|
15
|
+
rootOpen?: boolean;
|
|
16
|
+
/** Selected, the selected node to display */
|
|
17
|
+
selected?: string;
|
|
18
|
+
/** Pass through of the style to the root container */
|
|
19
|
+
style?: React.CSSProperties;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* The Hierarchy Selector Component can be used to create a hierarchy tree where user can select any of the nodes.
|
|
23
|
+
* Each selection can be captured by passing the onSelect function.
|
|
24
|
+
* Passing the rootNode is enough to define a Hierarchy Selector.
|
|
25
|
+
*
|
|
26
|
+
* @param {HierarchySelectorProps} props - the component props
|
|
27
|
+
*/
|
|
28
|
+
declare function HierarchySelector(props: HierarchySelectorProps): JSX.Element;
|
|
29
|
+
export { HierarchyNode };
|
|
30
|
+
export default HierarchySelector;
|
|
31
|
+
//# sourceMappingURL=hierarchy-selector.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hierarchy-selector.d.ts","sourceRoot":"","sources":["../../src/hierarchy-selector/hierarchy-selector.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAe,EAAoB,aAAa,EAAe,MAAM,eAAe,CAAC;AAWrF,UAAU,sBAAsB;IAC5B,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mEAAmE;IACnE,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpD,iHAAiH;IACjH,QAAQ,EAAE,aAAa,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sDAAsD;IACtD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CA8DrE;AACD,OAAO,EAAE,aAAa,EAAE,CAAC;AACzB,eAAe,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Impulse Innovations Limited
|
|
4
|
+
*
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
import { useEffect, useState } from 'react';
|
|
19
|
+
import styled, { useTheme } from '@darajs/styled-components';
|
|
20
|
+
import { Chevron } from '../utils';
|
|
21
|
+
import Branch, { Cell, CircleIcon, NodeWrapper } from './node/branch';
|
|
22
|
+
const Wrapper = styled.div `
|
|
23
|
+
overflow: scroll;
|
|
24
|
+
`;
|
|
25
|
+
const Root = styled.div `
|
|
26
|
+
cursor: pointer;
|
|
27
|
+
margin-left: 1rem;
|
|
28
|
+
`;
|
|
29
|
+
/**
|
|
30
|
+
* The Hierarchy Selector Component can be used to create a hierarchy tree where user can select any of the nodes.
|
|
31
|
+
* Each selection can be captured by passing the onSelect function.
|
|
32
|
+
* Passing the rootNode is enough to define a Hierarchy Selector.
|
|
33
|
+
*
|
|
34
|
+
* @param {HierarchySelectorProps} props - the component props
|
|
35
|
+
*/
|
|
36
|
+
function HierarchySelector(props) {
|
|
37
|
+
const theme = useTheme();
|
|
38
|
+
const [rootOpen, setRootOpen] = useState(props.rootOpen || false);
|
|
39
|
+
const [selectedNodeId, setSelectedNodeId] = useState(props.selected);
|
|
40
|
+
useEffect(() => {
|
|
41
|
+
if (props.selected) {
|
|
42
|
+
setSelectedNodeId(props.selected);
|
|
43
|
+
}
|
|
44
|
+
}, [props.selected]);
|
|
45
|
+
const toggle = () => {
|
|
46
|
+
setRootOpen(!rootOpen);
|
|
47
|
+
};
|
|
48
|
+
const selectNode = (nodeId) => {
|
|
49
|
+
var _a;
|
|
50
|
+
setSelectedNodeId(nodeId);
|
|
51
|
+
(_a = props.onSelect) === null || _a === void 0 ? void 0 : _a.call(props, nodeId);
|
|
52
|
+
};
|
|
53
|
+
const { label, id, children } = props.rootNode;
|
|
54
|
+
return (_jsxs(Wrapper, { className: props.className, style: props.style, children: [_jsxs(Root, { children: [_jsx(CircleIcon, { selected: id === selectedNodeId }), _jsx(Cell, { onClick: props.allowSelectCategory || children.length === 0 ? () => selectNode(id) : toggle, selected: id === selectedNodeId, children: label }), children.length > 0 && (_jsx(Chevron, { isOpen: rootOpen, onClick: toggle, style: {
|
|
55
|
+
color: theme.colors.grey5,
|
|
56
|
+
cursor: 'pointer',
|
|
57
|
+
height: '0.8rem',
|
|
58
|
+
marginLeft: '0.5rem',
|
|
59
|
+
verticalAlign: 'middle',
|
|
60
|
+
width: '0.8rem',
|
|
61
|
+
} }))] }), _jsx(NodeWrapper, { open: rootOpen, children: children &&
|
|
62
|
+
children.map((nodeObj) => (_jsx(Branch, { allowSelectCategory: props.allowSelectCategory, allowSelectLeaf: props.allowSelectLeaf, content: nodeObj, open: rootOpen, selectNode: selectNode, selectedNodeId: selectedNodeId }, nodeObj.id))) })] }));
|
|
63
|
+
}
|
|
64
|
+
export default HierarchySelector;
|
|
65
|
+
//# sourceMappingURL=hierarchy-selector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hierarchy-selector.js","sourceRoot":"","sources":["../../src/hierarchy-selector/hierarchy-selector.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
interface CellProps {
|
|
3
|
+
isLeaf?: boolean;
|
|
4
|
+
selected?: boolean;
|
|
5
|
+
selectionAllowed?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const Cell: import("styled-components").StyledComponent<"span", import("@darajs/styled-components").DefaultTheme, CellProps, never>;
|
|
8
|
+
export declare const CircleIcon: import("styled-components").StyledComponent<(props: import("@darajs/ui-icons").IconProps) => JSX.Element, import("@darajs/styled-components").DefaultTheme, CellProps, never>;
|
|
9
|
+
interface DisplayProp {
|
|
10
|
+
open?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const NodeWrapper: import("styled-components").StyledComponent<"ul", import("@darajs/styled-components").DefaultTheme, DisplayProp, never>;
|
|
13
|
+
export interface HierarchyNode {
|
|
14
|
+
children: Array<HierarchyNode>;
|
|
15
|
+
id: string;
|
|
16
|
+
label: string;
|
|
17
|
+
weight: number;
|
|
18
|
+
}
|
|
19
|
+
interface BranchProps {
|
|
20
|
+
/** Optional flag for enabling categories to be selected by the user */
|
|
21
|
+
allowSelectCategory?: boolean;
|
|
22
|
+
/** Optional flag for enabling leaves to be selected by the user */
|
|
23
|
+
allowSelectLeaf?: boolean;
|
|
24
|
+
/** Standard react className property */
|
|
25
|
+
className?: string;
|
|
26
|
+
/** The node for the branch */
|
|
27
|
+
content: HierarchyNode;
|
|
28
|
+
/** Optional flag for making the branch initially opened or closed */
|
|
29
|
+
open?: boolean;
|
|
30
|
+
/** Optional flag for enabling categories to be selected by the user */
|
|
31
|
+
selectCategory?: boolean;
|
|
32
|
+
/** Optional function to get id of the node selected by the user */
|
|
33
|
+
selectNode?: (nodeId: string) => void;
|
|
34
|
+
/** The id of the node selected by the user */
|
|
35
|
+
selectedNodeId: string;
|
|
36
|
+
/** Pass through of the style to the node container */
|
|
37
|
+
style?: React.CSSProperties;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The Branch Component renders each branch of the tree and then recursively renders all the child branches by calling
|
|
41
|
+
* itself again.
|
|
42
|
+
*
|
|
43
|
+
* @param {BranchProps} props - the component props
|
|
44
|
+
*/
|
|
45
|
+
declare function Branch(props: BranchProps): JSX.Element;
|
|
46
|
+
export default Branch;
|
|
47
|
+
//# sourceMappingURL=branch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"branch.d.ts","sourceRoot":"","sources":["../../../src/hierarchy-selector/node/branch.tsx"],"names":[],"mappings":"AAiBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAkC/B,UAAU,SAAS;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,eAAO,MAAM,IAAI,yHAShB,CAAC;AAEF,eAAO,MAAM,UAAU,+FA/DgC,IAAK,OAAO,qEAsElE,CAAC;AAwBF,UAAU,WAAW;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,WAAW,yHAcvB,CAAC;AAEF,MAAM,WAAW,aAAa;IAC1B,QAAQ,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,UAAU,WAAW;IACjB,uEAAuE;IACvE,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,mEAAmE;IACnE,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,wCAAwC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,aAAa,CAAC;IACvB,qEAAqE;IACrE,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,uEAAuE;IACvE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,mEAAmE;IACnE,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,8CAA8C;IAC9C,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC/B;AAED;;;;;GAKG;AACH,iBAAS,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,GAAG,CAAC,OAAO,CA4D/C;AAED,eAAe,MAAM,CAAC"}
|