@elliemae/ds-mobile 3.12.0-rc.2 → 3.12.0-rc.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/Accordion/DSMobileAccordion.js +2 -9
- package/dist/cjs/Accordion/DSMobileAccordion.js.map +1 -1
- package/dist/cjs/CategoryBox/CategoryBox.js +11 -18
- package/dist/cjs/CategoryBox/CategoryBox.js.map +2 -2
- package/dist/cjs/CollectionBox/CollectionBox.js +8 -30
- package/dist/cjs/CollectionBox/CollectionBox.js.map +1 -1
- package/dist/cjs/FullPageContainer/FullPageContainer.js +1 -6
- package/dist/cjs/FullPageContainer/FullPageContainer.js.map +1 -1
- package/dist/cjs/FullPageContainer/FullPageContainerScroll.js +1 -6
- package/dist/cjs/FullPageContainer/FullPageContainerScroll.js.map +1 -1
- package/dist/cjs/GlobalHeader/MobileGlobalHeader.js +42 -61
- package/dist/cjs/GlobalHeader/MobileGlobalHeader.js.map +1 -1
- package/dist/cjs/GroupBox/GroupBox.js +10 -17
- package/dist/cjs/GroupBox/GroupBox.js.map +1 -1
- package/dist/cjs/Icons/EM_logo.js +35 -34
- package/dist/cjs/Icons/EM_logo.js.map +1 -1
- package/dist/cjs/InfiniteLoader/Infiniteloader.js +7 -18
- package/dist/cjs/InfiniteLoader/Infiniteloader.js.map +1 -1
- package/dist/cjs/InfiniteLoader/Loader.js +1 -7
- package/dist/cjs/InfiniteLoader/Loader.js.map +1 -1
- package/dist/cjs/InfiniteLoader/VirtualizedInfiniteLoader.js +25 -19
- package/dist/cjs/InfiniteLoader/VirtualizedInfiniteLoader.js.map +1 -1
- package/dist/cjs/LoadingPage/Page.js +6 -16
- package/dist/cjs/LoadingPage/Page.js.map +1 -1
- package/dist/cjs/MobileActionToolbar/MobileActionToolbar.js +1 -6
- package/dist/cjs/MobileActionToolbar/MobileActionToolbar.js.map +1 -1
- package/dist/cjs/MobileActionToolbar/MobileActionToolbarItem.js +1 -6
- package/dist/cjs/MobileActionToolbar/MobileActionToolbarItem.js.map +1 -1
- package/dist/cjs/MobileBanner/DSMobileBannerDefinitions.js +32 -0
- package/dist/cjs/MobileBanner/DSMobileBannerDefinitions.js.map +7 -0
- package/dist/cjs/MobileBanner/MobileBanner.js +30 -51
- package/dist/cjs/MobileBanner/MobileBanner.js.map +2 -2
- package/dist/cjs/MobileBanner/config/useMobileBanner.js +2 -1
- package/dist/cjs/MobileBanner/config/useMobileBanner.js.map +2 -2
- package/dist/cjs/MobileBanner/utils/icons.js +4 -20
- package/dist/cjs/MobileBanner/utils/icons.js.map +1 -1
- package/dist/cjs/MobileCard/ActionAddon.js +1 -7
- package/dist/cjs/MobileCard/ActionAddon.js.map +1 -1
- package/dist/cjs/MobileCard/Card.js +66 -98
- package/dist/cjs/MobileCard/Card.js.map +1 -1
- package/dist/cjs/MobileCard/CardIcons.js +1 -9
- package/dist/cjs/MobileCard/CardIcons.js.map +1 -1
- package/dist/cjs/MobileCard/ExpandChevron.js +1 -9
- package/dist/cjs/MobileCard/ExpandChevron.js.map +1 -1
- package/dist/cjs/MobileCard/ExpandableRegion.js +10 -10
- package/dist/cjs/MobileCard/ExpandableRegion.js.map +1 -1
- package/dist/cjs/MobileCard/Group.js +15 -31
- package/dist/cjs/MobileCard/Group.js.map +1 -1
- package/dist/cjs/MobileContextMenu/MobileContextMenu.js +38 -70
- package/dist/cjs/MobileContextMenu/MobileContextMenu.js.map +1 -1
- package/dist/cjs/MobileContextMenu/MobileContextMenuGroup.js +21 -29
- package/dist/cjs/MobileContextMenu/MobileContextMenuGroup.js.map +1 -1
- package/dist/cjs/MobileContextMenu/MobileContextMenuItem.js +41 -73
- package/dist/cjs/MobileContextMenu/MobileContextMenuItem.js.map +1 -1
- package/dist/cjs/MobileDatePicker/Input.js +1 -4
- package/dist/cjs/MobileDatePicker/Input.js.map +1 -1
- package/dist/cjs/MobileDatePicker/MobileDatePicker.js +42 -33
- package/dist/cjs/MobileDatePicker/MobileDatePicker.js.map +1 -1
- package/dist/cjs/MobileDropdownMenu/MobileDropdownInput.js +5 -19
- package/dist/cjs/MobileDropdownMenu/MobileDropdownInput.js.map +1 -1
- package/dist/cjs/MobileDropdownMenu/MobileDropdownMenu.js +29 -21
- package/dist/cjs/MobileDropdownMenu/MobileDropdownMenu.js.map +1 -1
- package/dist/cjs/MobileEmtpyState/MobileEmptyState.js +4 -11
- package/dist/cjs/MobileEmtpyState/MobileEmptyState.js.map +1 -1
- package/dist/cjs/MobileFilterbar/Filterbar.js +4 -15
- package/dist/cjs/MobileFilterbar/Filterbar.js.map +1 -1
- package/dist/cjs/MobileFilterbar/FilterbarItem.js +1 -9
- package/dist/cjs/MobileFilterbar/FilterbarItem.js.map +1 -1
- package/dist/cjs/MobileFilterbar/FilterbarSort.js +4 -17
- package/dist/cjs/MobileFilterbar/FilterbarSort.js.map +1 -1
- package/dist/cjs/MobileFooter/Action.js +15 -22
- package/dist/cjs/MobileFooter/Action.js.map +1 -1
- package/dist/cjs/MobileFooter/Footer.js +6 -7
- package/dist/cjs/MobileFooter/Footer.js.map +1 -1
- package/dist/cjs/MobileFooter/Text.js +1 -3
- package/dist/cjs/MobileFooter/Text.js.map +1 -1
- package/dist/cjs/MobileListItem/MobileListItem.js +17 -26
- package/dist/cjs/MobileListItem/MobileListItem.js.map +1 -1
- package/dist/cjs/MobileListItem/MobileListMultipleItem.js +14 -17
- package/dist/cjs/MobileListItem/MobileListMultipleItem.js.map +1 -1
- package/dist/cjs/MobileListItem/MobileListSeparator.js +4 -23
- package/dist/cjs/MobileListItem/MobileListSeparator.js.map +1 -1
- package/dist/cjs/MobileListItem/MobileListSingleItem.js +16 -23
- package/dist/cjs/MobileListItem/MobileListSingleItem.js.map +1 -1
- package/dist/cjs/MobilePageHeader/MobilePageHeader.js +82 -130
- package/dist/cjs/MobilePageHeader/MobilePageHeader.js.map +1 -1
- package/dist/cjs/MobileSelectList/MobileSelectList.js +45 -64
- package/dist/cjs/MobileSelectList/MobileSelectList.js.map +1 -1
- package/dist/cjs/MobileSelectList/styled.js +3 -13
- package/dist/cjs/MobileSelectList/styled.js.map +1 -1
- package/dist/cjs/MobileSeparator/Separator.js +1 -3
- package/dist/cjs/MobileSeparator/Separator.js.map +1 -1
- package/dist/cjs/MobileTimePicker/Input.js +1 -4
- package/dist/cjs/MobileTimePicker/Input.js.map +1 -1
- package/dist/cjs/MobileTimePicker/MobileTimePicker.js +41 -32
- package/dist/cjs/MobileTimePicker/MobileTimePicker.js.map +1 -1
- package/dist/cjs/MobileTouchable/MobileTouchable.js +12 -9
- package/dist/cjs/MobileTouchable/MobileTouchable.js.map +1 -1
- package/dist/cjs/Modal/Modal.js +70 -72
- package/dist/cjs/Modal/Modal.js.map +1 -1
- package/dist/cjs/PageFilter/PageFilter.js +12 -38
- package/dist/cjs/PageFilter/PageFilter.js.map +1 -1
- package/dist/cjs/PageForm/PageForm.js +5 -19
- package/dist/cjs/PageForm/PageForm.js.map +1 -1
- package/dist/cjs/PageList/PageList.js +7 -20
- package/dist/cjs/PageList/PageList.js.map +1 -1
- package/dist/cjs/PageSearch/PageSearch.js +5 -25
- package/dist/cjs/PageSearch/PageSearch.js.map +1 -1
- package/dist/cjs/PageSummary/PageSummary.js +8 -26
- package/dist/cjs/PageSummary/PageSummary.js.map +1 -1
- package/dist/cjs/SideNav/SideNav.js +27 -84
- package/dist/cjs/SideNav/SideNav.js.map +1 -1
- package/dist/cjs/SwipeToRefresh/ProgressIndicator.js +17 -33
- package/dist/cjs/SwipeToRefresh/ProgressIndicator.js.map +1 -1
- package/dist/cjs/SwipeToRefresh/ProgressLoader.js +87 -156
- package/dist/cjs/SwipeToRefresh/ProgressLoader.js.map +1 -1
- package/dist/cjs/SwipeToRefresh/SwipeToRefresh.js +24 -22
- package/dist/cjs/SwipeToRefresh/SwipeToRefresh.js.map +1 -1
- package/dist/cjs/Tabs/index.js +2 -9
- package/dist/cjs/Tabs/index.js.map +1 -1
- package/dist/esm/Accordion/DSMobileAccordion.js +2 -9
- package/dist/esm/Accordion/DSMobileAccordion.js.map +1 -1
- package/dist/esm/CategoryBox/CategoryBox.js +11 -18
- package/dist/esm/CategoryBox/CategoryBox.js.map +2 -2
- package/dist/esm/CollectionBox/CollectionBox.js +8 -30
- package/dist/esm/CollectionBox/CollectionBox.js.map +1 -1
- package/dist/esm/FullPageContainer/FullPageContainer.js +1 -6
- package/dist/esm/FullPageContainer/FullPageContainer.js.map +1 -1
- package/dist/esm/FullPageContainer/FullPageContainerScroll.js +1 -6
- package/dist/esm/FullPageContainer/FullPageContainerScroll.js.map +1 -1
- package/dist/esm/GlobalHeader/MobileGlobalHeader.js +42 -61
- package/dist/esm/GlobalHeader/MobileGlobalHeader.js.map +1 -1
- package/dist/esm/GroupBox/GroupBox.js +10 -17
- package/dist/esm/GroupBox/GroupBox.js.map +1 -1
- package/dist/esm/Icons/EM_logo.js +35 -34
- package/dist/esm/Icons/EM_logo.js.map +1 -1
- package/dist/esm/InfiniteLoader/Infiniteloader.js +7 -18
- package/dist/esm/InfiniteLoader/Infiniteloader.js.map +1 -1
- package/dist/esm/InfiniteLoader/Loader.js +1 -7
- package/dist/esm/InfiniteLoader/Loader.js.map +1 -1
- package/dist/esm/InfiniteLoader/VirtualizedInfiniteLoader.js +25 -19
- package/dist/esm/InfiniteLoader/VirtualizedInfiniteLoader.js.map +1 -1
- package/dist/esm/LoadingPage/Page.js +6 -16
- package/dist/esm/LoadingPage/Page.js.map +1 -1
- package/dist/esm/MobileActionToolbar/MobileActionToolbar.js +1 -6
- package/dist/esm/MobileActionToolbar/MobileActionToolbar.js.map +1 -1
- package/dist/esm/MobileActionToolbar/MobileActionToolbarItem.js +1 -6
- package/dist/esm/MobileActionToolbar/MobileActionToolbarItem.js.map +1 -1
- package/dist/esm/MobileBanner/DSMobileBannerDefinitions.js +6 -0
- package/dist/esm/MobileBanner/DSMobileBannerDefinitions.js.map +7 -0
- package/dist/esm/MobileBanner/MobileBanner.js +30 -51
- package/dist/esm/MobileBanner/MobileBanner.js.map +2 -2
- package/dist/esm/MobileBanner/config/useMobileBanner.js +2 -1
- package/dist/esm/MobileBanner/config/useMobileBanner.js.map +2 -2
- package/dist/esm/MobileBanner/utils/icons.js +4 -20
- package/dist/esm/MobileBanner/utils/icons.js.map +1 -1
- package/dist/esm/MobileCard/ActionAddon.js +1 -7
- package/dist/esm/MobileCard/ActionAddon.js.map +1 -1
- package/dist/esm/MobileCard/Card.js +66 -98
- package/dist/esm/MobileCard/Card.js.map +1 -1
- package/dist/esm/MobileCard/CardIcons.js +1 -9
- package/dist/esm/MobileCard/CardIcons.js.map +1 -1
- package/dist/esm/MobileCard/ExpandChevron.js +1 -9
- package/dist/esm/MobileCard/ExpandChevron.js.map +1 -1
- package/dist/esm/MobileCard/ExpandableRegion.js +10 -10
- package/dist/esm/MobileCard/ExpandableRegion.js.map +1 -1
- package/dist/esm/MobileCard/Group.js +15 -31
- package/dist/esm/MobileCard/Group.js.map +1 -1
- package/dist/esm/MobileContextMenu/MobileContextMenu.js +38 -70
- package/dist/esm/MobileContextMenu/MobileContextMenu.js.map +1 -1
- package/dist/esm/MobileContextMenu/MobileContextMenuGroup.js +21 -29
- package/dist/esm/MobileContextMenu/MobileContextMenuGroup.js.map +1 -1
- package/dist/esm/MobileContextMenu/MobileContextMenuItem.js +41 -73
- package/dist/esm/MobileContextMenu/MobileContextMenuItem.js.map +1 -1
- package/dist/esm/MobileDatePicker/Input.js +1 -4
- package/dist/esm/MobileDatePicker/Input.js.map +1 -1
- package/dist/esm/MobileDatePicker/MobileDatePicker.js +42 -33
- package/dist/esm/MobileDatePicker/MobileDatePicker.js.map +1 -1
- package/dist/esm/MobileDropdownMenu/MobileDropdownInput.js +5 -19
- package/dist/esm/MobileDropdownMenu/MobileDropdownInput.js.map +1 -1
- package/dist/esm/MobileDropdownMenu/MobileDropdownMenu.js +29 -21
- package/dist/esm/MobileDropdownMenu/MobileDropdownMenu.js.map +1 -1
- package/dist/esm/MobileEmtpyState/MobileEmptyState.js +4 -11
- package/dist/esm/MobileEmtpyState/MobileEmptyState.js.map +1 -1
- package/dist/esm/MobileFilterbar/Filterbar.js +4 -15
- package/dist/esm/MobileFilterbar/Filterbar.js.map +1 -1
- package/dist/esm/MobileFilterbar/FilterbarItem.js +1 -9
- package/dist/esm/MobileFilterbar/FilterbarItem.js.map +1 -1
- package/dist/esm/MobileFilterbar/FilterbarSort.js +4 -17
- package/dist/esm/MobileFilterbar/FilterbarSort.js.map +1 -1
- package/dist/esm/MobileFooter/Action.js +15 -22
- package/dist/esm/MobileFooter/Action.js.map +1 -1
- package/dist/esm/MobileFooter/Footer.js +6 -7
- package/dist/esm/MobileFooter/Footer.js.map +1 -1
- package/dist/esm/MobileFooter/Text.js +1 -3
- package/dist/esm/MobileFooter/Text.js.map +1 -1
- package/dist/esm/MobileListItem/MobileListItem.js +17 -26
- package/dist/esm/MobileListItem/MobileListItem.js.map +1 -1
- package/dist/esm/MobileListItem/MobileListMultipleItem.js +14 -17
- package/dist/esm/MobileListItem/MobileListMultipleItem.js.map +1 -1
- package/dist/esm/MobileListItem/MobileListSeparator.js +4 -23
- package/dist/esm/MobileListItem/MobileListSeparator.js.map +1 -1
- package/dist/esm/MobileListItem/MobileListSingleItem.js +16 -23
- package/dist/esm/MobileListItem/MobileListSingleItem.js.map +1 -1
- package/dist/esm/MobilePageHeader/MobilePageHeader.js +82 -130
- package/dist/esm/MobilePageHeader/MobilePageHeader.js.map +1 -1
- package/dist/esm/MobileSelectList/MobileSelectList.js +45 -64
- package/dist/esm/MobileSelectList/MobileSelectList.js.map +1 -1
- package/dist/esm/MobileSelectList/styled.js +3 -13
- package/dist/esm/MobileSelectList/styled.js.map +1 -1
- package/dist/esm/MobileSeparator/Separator.js +1 -3
- package/dist/esm/MobileSeparator/Separator.js.map +1 -1
- package/dist/esm/MobileTimePicker/Input.js +1 -4
- package/dist/esm/MobileTimePicker/Input.js.map +1 -1
- package/dist/esm/MobileTimePicker/MobileTimePicker.js +41 -32
- package/dist/esm/MobileTimePicker/MobileTimePicker.js.map +1 -1
- package/dist/esm/MobileTouchable/MobileTouchable.js +12 -9
- package/dist/esm/MobileTouchable/MobileTouchable.js.map +1 -1
- package/dist/esm/Modal/Modal.js +70 -72
- package/dist/esm/Modal/Modal.js.map +1 -1
- package/dist/esm/PageFilter/PageFilter.js +12 -38
- package/dist/esm/PageFilter/PageFilter.js.map +1 -1
- package/dist/esm/PageForm/PageForm.js +5 -19
- package/dist/esm/PageForm/PageForm.js.map +1 -1
- package/dist/esm/PageList/PageList.js +7 -20
- package/dist/esm/PageList/PageList.js.map +1 -1
- package/dist/esm/PageSearch/PageSearch.js +5 -25
- package/dist/esm/PageSearch/PageSearch.js.map +1 -1
- package/dist/esm/PageSummary/PageSummary.js +8 -26
- package/dist/esm/PageSummary/PageSummary.js.map +1 -1
- package/dist/esm/SideNav/SideNav.js +27 -84
- package/dist/esm/SideNav/SideNav.js.map +1 -1
- package/dist/esm/SwipeToRefresh/ProgressIndicator.js +17 -33
- package/dist/esm/SwipeToRefresh/ProgressIndicator.js.map +1 -1
- package/dist/esm/SwipeToRefresh/ProgressLoader.js +87 -156
- package/dist/esm/SwipeToRefresh/ProgressLoader.js.map +1 -1
- package/dist/esm/SwipeToRefresh/SwipeToRefresh.js +24 -22
- package/dist/esm/SwipeToRefresh/SwipeToRefresh.js.map +1 -1
- package/dist/esm/Tabs/index.js +2 -9
- package/dist/esm/Tabs/index.js.map +1 -1
- package/package.json +17 -17
|
@@ -87,82 +87,50 @@ const DSMobileContextMenu = withTheme(
|
|
|
87
87
|
rows.push("56px");
|
|
88
88
|
if (!open)
|
|
89
89
|
return null;
|
|
90
|
-
return /* @__PURE__ */ jsxs(Fragment, {
|
|
91
|
-
|
|
92
|
-
|
|
90
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
91
|
+
/* @__PURE__ */ jsx(
|
|
92
|
+
DSBackdrop,
|
|
93
|
+
{
|
|
93
94
|
type: "cover",
|
|
94
95
|
zIndex: backdropZIndex,
|
|
95
96
|
onClick: (e) => {
|
|
96
97
|
e.stopPropagation();
|
|
97
98
|
onClickOutside(e);
|
|
98
99
|
}
|
|
99
|
-
}
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
else if (multiple)
|
|
134
|
-
isSelected = trueSelected.includes(value);
|
|
135
|
-
return React2.cloneElement(child, {
|
|
136
|
-
value,
|
|
137
|
-
key: `cm.${ii}`,
|
|
138
|
-
isMulti: multiple,
|
|
139
|
-
singleSelect,
|
|
140
|
-
isSelected,
|
|
141
|
-
onClick: !isGroup ? (e) => onClick(e, child.props) : null,
|
|
142
|
-
selectedItems: isGroup ? trueSelected : null
|
|
143
|
-
});
|
|
144
|
-
})
|
|
145
|
-
})
|
|
146
|
-
})
|
|
147
|
-
}),
|
|
148
|
-
buttonFooter && /* @__PURE__ */ jsx(Grid, {
|
|
149
|
-
pl: "xs",
|
|
150
|
-
pr: "xs",
|
|
151
|
-
alignItems: "center",
|
|
152
|
-
children: React2.cloneElement(buttonFooter, {
|
|
153
|
-
...buttonFooter.props,
|
|
154
|
-
containerProps: {
|
|
155
|
-
"data-testid": `${dataTestid}--btn`
|
|
156
|
-
},
|
|
157
|
-
buttonType: "primary",
|
|
158
|
-
size: "l",
|
|
159
|
-
onClick: handleApply.bind(buttonFooter.props)
|
|
160
|
-
})
|
|
161
|
-
})
|
|
162
|
-
]
|
|
163
|
-
})
|
|
164
|
-
]
|
|
165
|
-
});
|
|
100
|
+
}
|
|
101
|
+
),
|
|
102
|
+
/* @__PURE__ */ jsxs(StyledContainer, { zIndex, rows, ref: containerRef, "data-testid": "ds-mobile-context-menu", children: [
|
|
103
|
+
/* @__PURE__ */ jsx(HeaderContainer, { justifyContent: "center", alignItems: "center", pl: "xs", pr: "xs", children: /* @__PURE__ */ jsx(StyledTitle, { alignItems: "center", gutter: "xxs", cols: Array(isArr(title) ? title.length : 1).fill("auto"), children: title }) }),
|
|
104
|
+
/* @__PURE__ */ jsx(Grid, { style: { overflow: "hidden" }, children: /* @__PURE__ */ jsx(Grid, { style: { overflow: "auto" }, children: /* @__PURE__ */ jsx(Group, { activeValue: trueSelected, multiple, onChange: handleChange, children: React2.Children.map(children, (child, ii) => {
|
|
105
|
+
const isGroup = child.type === (/* @__PURE__ */ jsx(ContextMenuGroup, {})).type || child.type?.name === ContextMenuGroup.componentType || child.type === ContextMenuGroup.type;
|
|
106
|
+
const { onClick = noop } = child.props;
|
|
107
|
+
const value = ii;
|
|
108
|
+
let isSelected;
|
|
109
|
+
if (singleSelect)
|
|
110
|
+
isSelected = trueSelected === value;
|
|
111
|
+
else if (multiple)
|
|
112
|
+
isSelected = trueSelected.includes(value);
|
|
113
|
+
return React2.cloneElement(child, {
|
|
114
|
+
value,
|
|
115
|
+
key: `cm.${ii}`,
|
|
116
|
+
isMulti: multiple,
|
|
117
|
+
singleSelect,
|
|
118
|
+
isSelected,
|
|
119
|
+
onClick: !isGroup ? (e) => onClick(e, child.props) : null,
|
|
120
|
+
selectedItems: isGroup ? trueSelected : null
|
|
121
|
+
});
|
|
122
|
+
}) }) }) }),
|
|
123
|
+
buttonFooter && /* @__PURE__ */ jsx(Grid, { pl: "xs", pr: "xs", alignItems: "center", children: React2.cloneElement(buttonFooter, {
|
|
124
|
+
...buttonFooter.props,
|
|
125
|
+
containerProps: {
|
|
126
|
+
"data-testid": `${dataTestid}--btn`
|
|
127
|
+
},
|
|
128
|
+
buttonType: "primary",
|
|
129
|
+
size: "l",
|
|
130
|
+
onClick: handleApply.bind(buttonFooter.props)
|
|
131
|
+
}) })
|
|
132
|
+
] })
|
|
133
|
+
] });
|
|
166
134
|
}
|
|
167
135
|
);
|
|
168
136
|
const props = {
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileContextMenu/MobileContextMenu.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable import/no-unresolved */\n/* eslint-disable react/no-array-index-key */\n/* eslint-disable func-names */\n/* eslint-disable max-lines */\nimport React, { useState, useRef, useMemo } from 'react';\nimport { noop } from 'lodash';\nimport { describe, PropTypes } from '@elliemae/ds-utilities';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { DSBackdrop } from '@elliemae/ds-backdrop';\nimport { truncate, withTheme } from '@elliemae/ds-system';\nimport { Group } from '@elliemae/ds-shared';\nimport { DSMobileContextMenuGroup as ContextMenuGroup } from './MobileContextMenuGroup';\n\nconst StyledContainer = styled(Grid)`\n background: ${(props) => props.theme.colors.neutral['000']};\n z-index: ${(props) => props.zIndex};\n width: ${(props) => `calc(100% - ${props.theme.space.xs})`};\n position: fixed;\n bottom: 0;\n left: ${(props) => props.theme.space.xxs};\n max-height: 90vh;\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n box-shadow: 0 0px 24px 0 rgba(0, 0, 0, 0.5), 0 0px 11px 0 rgba(0, 0, 0, 0.5);\n`;\n\nconst StyledTitle = styled(Grid)`\n font-size: 16px;\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n color: ${(props) => props.theme.colors.neutral['000']};\n ${truncate()}\n\n & > span {\n height: 20px;\n width: 20px;\n }\n\n & > span > svg,\n svg:not([fill]) {\n height: 20px;\n width: 20px;\n fill: ${(props) => props.theme.colors.neutral['000']};\n }\n`;\n\nconst HeaderContainer = styled(Grid)`\n border-top-left-radius: 5px;\n border-top-right-radius: 5px;\n background: ${(props) => props.theme.colors.brand['600']};\n`;\n\nconst isArr = (prop) => Array.isArray(prop);\n\nconst DSMobileContextMenu = withTheme(\n ({\n open = false,\n title = '',\n multiple = false,\n singleSelect = false,\n onChange = noop,\n onClickOutside = noop,\n children,\n theme,\n backdropZIndex = 1000,\n zIndex = 1001,\n dataTestid = 'mobile-context-menu',\n buttonFooter = null,\n onApply = noop,\n selecteds: initSelecteds,\n }) => {\n const [selectedItems, setSelectedItems] = useState([]);\n const trueSelected = useMemo(\n () => (initSelecteds !== undefined ? initSelecteds : [...selectedItems]),\n [initSelecteds, selectedItems],\n );\n const containerRef = useRef(null);\n const handleChange = (value, childProps, event) => {\n onChange(value, childProps, event);\n if (initSelecteds === undefined) {\n if (multiple) setSelectedItems([...value]);\n else if (singleSelect) setSelectedItems(value);\n }\n };\n\n const handleApply = function (e) {\n if (this.onClick) this.onClick(e);\n onApply(e, selectedItems);\n };\n\n const rows = [theme.space.s, 1];\n if (buttonFooter) rows.push('56px');\n\n if (!open) return null;\n\n return (\n <>\n <DSBackdrop\n type=\"cover\"\n zIndex={backdropZIndex}\n onClick={(e) => {\n // PUI-4481 prevent click on elements below backdrop\n e.stopPropagation();\n onClickOutside(e);\n }}\n />\n <StyledContainer zIndex={zIndex} rows={rows} ref={containerRef} data-testid=\"ds-mobile-context-menu\">\n <HeaderContainer justifyContent=\"center\" alignItems=\"center\" pl=\"xs\" pr=\"xs\">\n <StyledTitle alignItems=\"center\" gutter=\"xxs\" cols={Array(isArr(title) ? title.length : 1).fill('auto')}>\n {title}\n </StyledTitle>\n </HeaderContainer>\n <Grid style={{ overflow: 'hidden' }}>\n <Grid style={{ overflow: 'auto' }}>\n <Group activeValue={trueSelected} multiple={multiple} onChange={handleChange}>\n {React.Children.map(children, (child, ii) => {\n const isGroup =\n child.type === (<ContextMenuGroup />).type ||\n child.type?.name === ContextMenuGroup.componentType ||\n child.type === ContextMenuGroup.type;\n const { onClick = noop } = child.props;\n const value = ii;\n let isSelected;\n if (singleSelect) isSelected = trueSelected === value;\n else if (multiple) isSelected = trueSelected.includes(value);\n return React.cloneElement(child, {\n value,\n key: `cm.${ii}`,\n isMulti: multiple,\n singleSelect,\n isSelected,\n onClick: !isGroup ? (e) => onClick(e, child.props) : null,\n selectedItems: isGroup ? trueSelected : null,\n });\n })}\n </Group>\n </Grid>\n </Grid>\n {buttonFooter && (\n <Grid pl=\"xs\" pr=\"xs\" alignItems=\"center\">\n {React.cloneElement(buttonFooter, {\n ...buttonFooter.props,\n containerProps: {\n 'data-testid': `${dataTestid}--btn`,\n },\n buttonType: 'primary',\n size: 'l',\n onClick: handleApply.bind(buttonFooter.props),\n })}\n </Grid>\n )}\n </StyledContainer>\n </>\n );\n },\n);\n\nconst props = {\n /** toggle open the menu */\n open: PropTypes.bool.description('toggle open the menu'),\n /** context menu title */\n title: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.node])),\n ]).description('context menu title'),\n /** change handler for selectable context menu */\n onChange: PropTypes.func.description('change handler for selectable context menu'),\n /** multi select */\n multiple: PropTypes.bool.description('multi select'),\n /** click outside callback handler */\n onClickOutside: PropTypes.func.description('click outside callback handler'),\n /** array of mobile context menu items */\n children: PropTypes.arrayOf(PropTypes.element).description('array of mobile context menu items'),\n /** z index for overlay div */\n backdropZIndex: PropTypes.number.description('z index for overlay div'),\n /** z index for menu container */\n zIndex: PropTypes.number.description('z index for menu container'),\n /** for e2e tests */\n dataTestid: PropTypes.string.description('for e2e tests'),\n /** bottom button */\n buttonFooter: PropTypes.element.description('bottom button'),\n /** callback */\n onApply: PropTypes.func.description('callback'),\n /** selected elements for multi and single select */\n selecteds: PropTypes.oneOfType([\n PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.string, PropTypes.number])),\n PropTypes.number,\n ]).description('selected elements for multi and single select'),\n};\n\nDSMobileContextMenu.propTypes = props;\nDSMobileContextMenu.displayName = 'DSMobileContextMenu';\nconst DSMobileContextMenuWithSchema = describe(DSMobileContextMenu);\n\nDSMobileContextMenuWithSchema.propTypes = props;\n\nexport { DSMobileContextMenu, DSMobileContextMenuWithSchema };\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACgGjB,mBACE,KASA,YAVF;AA5FN,OAAOA,UAAS,UAAU,QAAQ,eAAe;AACjD,SAAS,YAAY;AACrB,SAAS,UAAU,iBAAiB;AACpC,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,kBAAkB;AAC3B,SAAS,UAAU,iBAAiB;AACpC,SAAS,aAAa;AACtB,SAAS,4BAA4B,wBAAwB;AAE7D,MAAM,kBAAkB,OAAO,IAAI;AAAA,gBACnB,CAACC,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,aACzC,CAACA,WAAUA,OAAM;AAAA,WACnB,CAACA,WAAU,eAAeA,OAAM,MAAM,MAAM;AAAA;AAAA;AAAA,UAG7C,CAACA,WAAUA,OAAM,MAAM,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAOvC,MAAM,cAAc,OAAO,IAAI;AAAA;AAAA,iBAEd,CAACA,WAAUA,OAAM,MAAM,YAAY;AAAA,WACzC,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,IAC7C,SAAS;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,YAWD,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAIlD,MAAM,kBAAkB,OAAO,IAAI;AAAA;AAAA;AAAA,gBAGnB,CAACA,WAAUA,OAAM,MAAM,OAAO,MAAM;AAAA;AAGpD,MAAM,QAAQ,CAAC,SAAS,MAAM,QAAQ,IAAI;AAE1C,MAAM,sBAAsB;AAAA,EAC1B,CAAC;AAAA,IACC,OAAO;AAAA,IACP,QAAQ;AAAA,IACR,WAAW;AAAA,IACX,eAAe;AAAA,IACf,WAAW;AAAA,IACX,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB,SAAS;AAAA,IACT,aAAa;AAAA,IACb,eAAe;AAAA,IACf,UAAU;AAAA,IACV,WAAW;AAAA,EACb,MAAM;AACJ,UAAM,CAAC,eAAe,gBAAgB,IAAI,SAAS,CAAC,CAAC;AACrD,UAAM,eAAe;AAAA,MACnB,MAAO,kBAAkB,SAAY,gBAAgB,CAAC,GAAG,aAAa;AAAA,MACtE,CAAC,eAAe,aAAa;AAAA,IAC/B;AACA,UAAM,eAAe,OAAO,IAAI;AAChC,UAAM,eAAe,CAAC,OAAO,YAAY,UAAU;AACjD,eAAS,OAAO,YAAY,KAAK;AACjC,UAAI,kBAAkB,QAAW;AAC/B,YAAI;AAAU,2BAAiB,CAAC,GAAG,KAAK,CAAC;AAAA,iBAChC;AAAc,2BAAiB,KAAK;AAAA,MAC/C;AAAA,IACF;AAEA,UAAM,cAAc,SAAU,GAAG;AAC/B,UAAI,KAAK;AAAS,aAAK,QAAQ,CAAC;AAChC,cAAQ,GAAG,aAAa;AAAA,IAC1B;AAEA,UAAM,OAAO,CAAC,MAAM,MAAM,GAAG,CAAC;AAC9B,QAAI;AAAc,WAAK,KAAK,MAAM;AAElC,QAAI,CAAC;AAAM,aAAO;AAElB,WACE;AAAA
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["React", "props"]
|
|
7
7
|
}
|
|
@@ -15,35 +15,27 @@ const Title = styled.div`
|
|
|
15
15
|
color: ${(props2) => props2.theme.colors.neutral["700"]};
|
|
16
16
|
font-weight: ${(props2) => props2.theme.fontWeights.semibold};
|
|
17
17
|
`;
|
|
18
|
-
const DSMobileContextMenuGroup = ({ title, isMulti, singleSelect, children, value: groupValue, selectedItems }) => /* @__PURE__ */ jsxs(Grid, {
|
|
19
|
-
children:
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
singleSelect,
|
|
40
|
-
isSelected,
|
|
41
|
-
onClick: (e) => onClick(e, { value, ...child.props })
|
|
42
|
-
});
|
|
43
|
-
})
|
|
44
|
-
})
|
|
45
|
-
]
|
|
46
|
-
});
|
|
18
|
+
const DSMobileContextMenuGroup = ({ title, isMulti, singleSelect, children, value: groupValue, selectedItems }) => /* @__PURE__ */ jsxs(Grid, { children: [
|
|
19
|
+
/* @__PURE__ */ jsx(Grid, { children: /* @__PURE__ */ jsx(Title, { children: title }) }),
|
|
20
|
+
/* @__PURE__ */ jsx(Grid, { children: React2.Children.map(children, (child, index) => {
|
|
21
|
+
const { onClick = noop } = child.props;
|
|
22
|
+
const value = `${groupValue}:${index}`;
|
|
23
|
+
let isSelected;
|
|
24
|
+
if (singleSelect)
|
|
25
|
+
isSelected = selectedItems === value;
|
|
26
|
+
else if (isMulti)
|
|
27
|
+
isSelected = selectedItems.includes(value);
|
|
28
|
+
return React2.cloneElement(child, {
|
|
29
|
+
value,
|
|
30
|
+
key: "group.".concat(index),
|
|
31
|
+
isGroup: true,
|
|
32
|
+
isMulti,
|
|
33
|
+
singleSelect,
|
|
34
|
+
isSelected,
|
|
35
|
+
onClick: (e) => onClick(e, { value, ...child.props })
|
|
36
|
+
});
|
|
37
|
+
}) })
|
|
38
|
+
] });
|
|
47
39
|
const props = {
|
|
48
40
|
title: PropTypes.string.isRequired.description("group title"),
|
|
49
41
|
children: PropTypes.node.isRequired.description("Array of MobileContextMenuItem"),
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileContextMenu/MobileContextMenuGroup.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { Grid } from '@elliemae/ds-grid';\nimport { noop } from 'lodash';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\n\nconst Title = styled.div`\n height: 24px;\n line-height: 24px;\n font-size: 12px;\n border-top: 1px solid ${(props) => props.theme.colors.brand['300']};\n background: ${(props) => props.theme.colors.brand['200']};\n padding: 0 ${(props) => props.theme.space.xs};\n color: ${(props) => props.theme.colors.neutral['700']};\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n`;\n\nconst DSMobileContextMenuGroup = ({ title, isMulti, singleSelect, children, value: groupValue, selectedItems }) => (\n <Grid>\n <Grid>\n <Title>{title}</Title>\n </Grid>\n <Grid>\n {React.Children.map(children, (child, index) => {\n const { onClick = noop } = child.props;\n const value = `${groupValue}:${index}`;\n let isSelected;\n if (singleSelect) isSelected = selectedItems === value;\n else if (isMulti) isSelected = selectedItems.includes(value);\n return React.cloneElement(child, {\n value,\n key: 'group.'.concat(index),\n isGroup: true,\n isMulti,\n singleSelect,\n isSelected,\n onClick: (e) => onClick(e, { value, ...child.props }),\n });\n })}\n </Grid>\n </Grid>\n);\n\nconst props = {\n /**\n * Group title\n */\n title: PropTypes.string.isRequired.description('group title'),\n /**\n * Array of MobileContextMenuItem\n */\n children: PropTypes.node.isRequired.description('Array of MobileContextMenuItem'),\n /** multi select */\n isMulti: PropTypes.bool.description('multi select'),\n /** single select */\n singleSelect: PropTypes.bool.description('single select'),\n /** value for select */\n value: PropTypes.string.description('value for select'),\n /** selected items, array for multi, string for single */\n selectedItems: PropTypes.oneOfType([PropTypes.array, PropTypes.string]).description(\n 'selected items, array for multi, string for single',\n ),\n};\n\nDSMobileContextMenuGroup.propTypes = props;\nDSMobileContextMenuGroup.componentType = 'DSMobileContextMenuGroup';\nDSMobileContextMenuGroup.displayName = 'DSMobileContextMenuGroup';\nconst DSMobileContextMenuGroupWithSchema = describe(DSMobileContextMenuGroup);\n\nDSMobileContextMenuGroupWithSchema.propTypes = props;\n\nexport { DSMobileContextMenuGroup, DSMobileContextMenuGroupWithSchema };\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACkBrB,SAEI,KAFJ;AAlBF,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,YAAY;AACrB,SAAS,WAAW,gBAAgB;AAEpC,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,0BAIK,CAACC,WAAUA,OAAM,MAAM,OAAO,MAAM;AAAA,gBAC9C,CAACA,WAAUA,OAAM,MAAM,OAAO,MAAM;AAAA,eACrC,CAACA,WAAUA,OAAM,MAAM,MAAM;AAAA,WACjC,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,iBAChC,CAACA,WAAUA,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,2BAA2B,CAAC,EAAE,OAAO,SAAS,cAAc,UAAU,OAAO,YAAY,cAAc,MAC3G,qBAAC
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;ACkBrB,SAEI,KAFJ;AAlBF,OAAOA,YAAW;AAClB,SAAS,cAAc;AACvB,SAAS,YAAY;AACrB,SAAS,YAAY;AACrB,SAAS,WAAW,gBAAgB;AAEpC,MAAM,QAAQ,OAAO;AAAA;AAAA;AAAA;AAAA,0BAIK,CAACC,WAAUA,OAAM,MAAM,OAAO,MAAM;AAAA,gBAC9C,CAACA,WAAUA,OAAM,MAAM,OAAO,MAAM;AAAA,eACrC,CAACA,WAAUA,OAAM,MAAM,MAAM;AAAA,WACjC,CAACA,WAAUA,OAAM,MAAM,OAAO,QAAQ;AAAA,iBAChC,CAACA,WAAUA,OAAM,MAAM,YAAY;AAAA;AAGpD,MAAM,2BAA2B,CAAC,EAAE,OAAO,SAAS,cAAc,UAAU,OAAO,YAAY,cAAc,MAC3G,qBAAC,QACC;AAAA,sBAAC,QACC,8BAAC,SAAO,iBAAM,GAChB;AAAA,EACA,oBAAC,QACE,UAAAD,OAAM,SAAS,IAAI,UAAU,CAAC,OAAO,UAAU;AAC9C,UAAM,EAAE,UAAU,KAAK,IAAI,MAAM;AACjC,UAAM,QAAQ,GAAG,cAAc;AAC/B,QAAI;AACJ,QAAI;AAAc,mBAAa,kBAAkB;AAAA,aACxC;AAAS,mBAAa,cAAc,SAAS,KAAK;AAC3D,WAAOA,OAAM,aAAa,OAAO;AAAA,MAC/B;AAAA,MACA,KAAK,SAAS,OAAO,KAAK;AAAA,MAC1B,SAAS;AAAA,MACT;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,CAAC,MAAM,QAAQ,GAAG,EAAE,OAAO,GAAG,MAAM,MAAM,CAAC;AAAA,IACtD,CAAC;AAAA,EACH,CAAC,GACH;AAAA,GACF;AAGF,MAAM,QAAQ;AAAA,EAIZ,OAAO,UAAU,OAAO,WAAW,YAAY,aAAa;AAAA,EAI5D,UAAU,UAAU,KAAK,WAAW,YAAY,gCAAgC;AAAA,EAEhF,SAAS,UAAU,KAAK,YAAY,cAAc;AAAA,EAElD,cAAc,UAAU,KAAK,YAAY,eAAe;AAAA,EAExD,OAAO,UAAU,OAAO,YAAY,kBAAkB;AAAA,EAEtD,eAAe,UAAU,UAAU,CAAC,UAAU,OAAO,UAAU,MAAM,CAAC,EAAE;AAAA,IACtE;AAAA,EACF;AACF;AAEA,yBAAyB,YAAY;AACrC,yBAAyB,gBAAgB;AACzC,yBAAyB,cAAc;AACvC,MAAM,qCAAqC,SAAS,wBAAwB;AAE5E,mCAAmC,YAAY;",
|
|
6
6
|
"names": ["React", "props"]
|
|
7
7
|
}
|
|
@@ -7,14 +7,10 @@ import { GroupItem } from "@elliemae/ds-shared";
|
|
|
7
7
|
import { DSCheckbox } from "@elliemae/ds-form";
|
|
8
8
|
import { Checkmark } from "@elliemae/ds-icons";
|
|
9
9
|
import { DSMobileTouchable } from "../MobileTouchable";
|
|
10
|
-
const Wrap = styled((props2) => /* @__PURE__ */ jsx(DSMobileTouchable, {
|
|
11
|
-
...props2
|
|
12
|
-
}))`
|
|
10
|
+
const Wrap = styled((props2) => /* @__PURE__ */ jsx(DSMobileTouchable, { ...props2 }))`
|
|
13
11
|
border-bottom: none;
|
|
14
12
|
`;
|
|
15
|
-
const PropWrap = styled((props2) => /* @__PURE__ */ jsx(Grid, {
|
|
16
|
-
...props2
|
|
17
|
-
}))`
|
|
13
|
+
const PropWrap = styled((props2) => /* @__PURE__ */ jsx(Grid, { ...props2 }))`
|
|
18
14
|
${(props2) => {
|
|
19
15
|
if (!props2.isMulti) {
|
|
20
16
|
return `
|
|
@@ -56,76 +52,48 @@ const DSMobileContextMenuItem = ({
|
|
|
56
52
|
onClick = () => {
|
|
57
53
|
},
|
|
58
54
|
value
|
|
59
|
-
}) => /* @__PURE__ */ jsx(
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
someItemSelected =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
showLeftAddon =
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
leftAddon =
|
|
71
|
-
|
|
72
|
-
"data-testid": "leftAddon-checkbox"
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
cols,
|
|
89
|
-
children: [
|
|
90
|
-
(singleSelect && someItemSelected || isMulti || leftAddon) && /* @__PURE__ */ jsx(PropWrap, {
|
|
91
|
-
"data-testid": "left-addon",
|
|
92
|
-
isMulti,
|
|
93
|
-
alignItems: "center",
|
|
94
|
-
justifyContent: "center",
|
|
95
|
-
pl: "16px",
|
|
96
|
-
children: showLeftAddon && leftAddon
|
|
97
|
-
}),
|
|
98
|
-
/* @__PURE__ */ jsxs(Grid, {
|
|
99
|
-
height: "44px",
|
|
100
|
-
pr: "xs",
|
|
101
|
-
pl: !leftAddon && isGroup ? "24px" : "xs",
|
|
55
|
+
}) => /* @__PURE__ */ jsx(
|
|
56
|
+
GroupItem,
|
|
57
|
+
{
|
|
58
|
+
render: (context) => {
|
|
59
|
+
const { activeValue } = context;
|
|
60
|
+
let someItemSelected = activeValue >= 0 && !Array.isArray(activeValue);
|
|
61
|
+
if (isGroup)
|
|
62
|
+
someItemSelected = typeof activeValue === "string";
|
|
63
|
+
let showLeftAddon = isSelected;
|
|
64
|
+
if (isMulti || !singleSelect)
|
|
65
|
+
showLeftAddon = true;
|
|
66
|
+
let leftAddon = leftProp || null;
|
|
67
|
+
if (isMulti)
|
|
68
|
+
leftAddon = /* @__PURE__ */ jsx(DSCheckbox, { checked: isSelected, "data-testid": "leftAddon-checkbox" });
|
|
69
|
+
if (singleSelect)
|
|
70
|
+
leftAddon = /* @__PURE__ */ jsx(CheckMark, { "data-testid": "leftAddon-checkmark" });
|
|
71
|
+
const cols = singleSelect && someItemSelected || leftAddon && !singleSelect || isMulti ? ["40px", "auto"] : ["auto"];
|
|
72
|
+
if (rightAddon)
|
|
73
|
+
cols.push("40px");
|
|
74
|
+
return /* @__PURE__ */ jsxs(
|
|
75
|
+
Wrap,
|
|
76
|
+
{
|
|
77
|
+
"data-testid": "ds-contextmenu-item",
|
|
78
|
+
onClick: (e) => {
|
|
79
|
+
if (singleSelect || isMulti)
|
|
80
|
+
context.onChange(value, e, { value, label, title });
|
|
81
|
+
onClick(e);
|
|
82
|
+
},
|
|
83
|
+
cols,
|
|
102
84
|
children: [
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
children: /* @__PURE__ */ jsx(Label, {
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
}),
|
|
110
|
-
/* @__PURE__ */ jsx(Grid, {
|
|
111
|
-
alignItems: !label ? "center" : void 0,
|
|
112
|
-
children: /* @__PURE__ */ jsx(Title, {
|
|
113
|
-
"data-testid": "contextMenuItem-title",
|
|
114
|
-
children: title
|
|
115
|
-
})
|
|
116
|
-
})
|
|
85
|
+
(singleSelect && someItemSelected || isMulti || leftAddon) && /* @__PURE__ */ jsx(PropWrap, { "data-testid": "left-addon", isMulti, alignItems: "center", justifyContent: "center", pl: "16px", children: showLeftAddon && leftAddon }),
|
|
86
|
+
/* @__PURE__ */ jsxs(Grid, { height: "44px", pr: "xs", pl: !leftAddon && isGroup ? "24px" : "xs", children: [
|
|
87
|
+
label && /* @__PURE__ */ jsx(Grid, { alignItems: "center", children: /* @__PURE__ */ jsx(Label, { "data-testid": "contextMenuItem-label", children: label }) }),
|
|
88
|
+
/* @__PURE__ */ jsx(Grid, { alignItems: !label ? "center" : void 0, children: /* @__PURE__ */ jsx(Title, { "data-testid": "contextMenuItem-title", children: title }) })
|
|
89
|
+
] }),
|
|
90
|
+
rightAddon ? /* @__PURE__ */ jsx(PropWrap, { "data-testid": "right-addon", alignItems: "center", justifyContent: "center", children: rightAddon }) : null
|
|
117
91
|
]
|
|
118
|
-
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
alignItems: "center",
|
|
122
|
-
justifyContent: "center",
|
|
123
|
-
children: rightAddon
|
|
124
|
-
}) : null
|
|
125
|
-
]
|
|
126
|
-
});
|
|
92
|
+
}
|
|
93
|
+
);
|
|
94
|
+
}
|
|
127
95
|
}
|
|
128
|
-
|
|
96
|
+
);
|
|
129
97
|
const props = {
|
|
130
98
|
label: PropTypes.string.description("label"),
|
|
131
99
|
title: PropTypes.string.isRequired.description("menu item title"),
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileContextMenu/MobileContextMenuItem.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\n/* eslint-disable complexity */\n/* eslint-disable import/no-unresolved */\nimport React from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { Grid } from '@elliemae/ds-grid';\nimport { styled, truncate } from '@elliemae/ds-system';\nimport { GroupItem } from '@elliemae/ds-shared';\nimport { DSCheckbox } from '@elliemae/ds-form';\nimport { Checkmark } from '@elliemae/ds-icons';\nimport { DSMobileTouchable } from '../MobileTouchable';\n\nconst Wrap = styled((props) => <DSMobileTouchable {...props} />)`\n border-bottom: none;\n`;\n\nconst PropWrap = styled((props) => <Grid {...props} />)`\n ${(props) => {\n if (!props.isMulti) {\n return `\n & > span {\n height: 18px;\n width: 18px;\n }\n\n & > span > svg {\n height: 18px;\n width: 18px;\n }\n `;\n }\n return '';\n }}\n`;\n\nconst Title = styled.span`\n font-size: 16px;\n color: ${(props) => props.theme.colors.brand['600']};\n ${truncate()}\n`;\n\nconst Label = styled.span`\n font-size: 13px;\n color: ${(props) => props.theme.colors.neutral['600']};\n`;\n\nconst CheckMark = styled(Checkmark)`\n fill: ${(props) => props.theme.colors.brand['600']};\n`;\ninterface DSMobileContextMenuItemPropsT {\n label: string;\n title: string;\n leftProp: JSX.Element;\n isGroup: boolean;\n isMulti: boolean;\n isSelected: boolean;\n singleSelect: boolean;\n onClick: (e: any) => void;\n value: string;\n}\nconst DSMobileContextMenuItem = ({\n label,\n title,\n leftProp,\n rightAddon,\n isGroup,\n isMulti,\n singleSelect,\n isSelected,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n onClick = () => {},\n value,\n}: DSMobileContextMenuItemPropsT): JSX.Element => (\n <GroupItem\n render={(context) => {\n const { activeValue } = context;\n let someItemSelected = activeValue >= 0 && !Array.isArray(activeValue);\n if (isGroup) someItemSelected = typeof activeValue === 'string';\n\n let showLeftAddon = isSelected;\n if (isMulti || !singleSelect) showLeftAddon = true;\n\n let leftAddon = leftProp || null;\n if (isMulti) leftAddon = <DSCheckbox checked={isSelected} data-testid=\"leftAddon-checkbox\" />;\n if (singleSelect) leftAddon = <CheckMark data-testid=\"leftAddon-checkmark\" />;\n\n const cols =\n (singleSelect && someItemSelected) || (leftAddon && !singleSelect) || isMulti ? ['40px', 'auto'] : ['auto'];\n if (rightAddon) cols.push('40px');\n return (\n <Wrap\n data-testid=\"ds-contextmenu-item\"\n onClick={(e) => {\n if (singleSelect || isMulti) context.onChange(value, e, { value, label, title });\n onClick(e);\n }}\n cols={cols}\n >\n {((singleSelect && someItemSelected) || isMulti || leftAddon) && (\n <PropWrap data-testid=\"left-addon\" isMulti={isMulti} alignItems=\"center\" justifyContent=\"center\" pl=\"16px\">\n {showLeftAddon && leftAddon}\n </PropWrap>\n )}\n <Grid height=\"44px\" pr=\"xs\" pl={!leftAddon && isGroup ? '24px' : 'xs'}>\n {label && (\n <Grid alignItems=\"center\">\n <Label data-testid=\"contextMenuItem-label\">{label}</Label>\n </Grid>\n )}\n <Grid alignItems={!label ? 'center' : undefined}>\n <Title data-testid=\"contextMenuItem-title\">{title}</Title>\n </Grid>\n </Grid>\n {rightAddon ? (\n <PropWrap data-testid=\"right-addon\" alignItems=\"center\" justifyContent=\"center\">\n {rightAddon}\n </PropWrap>\n ) : null}\n </Wrap>\n );\n }}\n />\n);\n\nconst props = {\n /** label */\n label: PropTypes.string.description('label'),\n /** menu item title */\n title: PropTypes.string.isRequired.description('menu item title'),\n /** */\n leftProp: PropTypes.element.description(''),\n /** multi select */\n isMulti: PropTypes.bool.description('multi select'),\n /** */\n singleSelect: PropTypes.bool.description(''),\n /** */\n isGroup: PropTypes.bool.description(''),\n /** on click handler */\n onClick: PropTypes.func.description('on click handler'),\n /** value for select */\n value: PropTypes.number.description('value for select'),\n /** selected value */\n isSelected: PropTypes.bool.description('selected value'),\n};\n\nDSMobileContextMenuItem.propTypes = props;\nDSMobileContextMenuItem.displayName = 'DSMobileContextMenuItem';\nconst DSMobileContextMenuItemWithSchema = describe(DSMobileContextMenuItem);\n\nDSMobileContextMenuItemWithSchema.propTypes = props;\n\nexport { DSMobileContextMenuItem, DSMobileContextMenuItemWithSchema };\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;ACYQ,cA2FrB,YA3FqB;AAR/B,SAAS,WAAW,gBAAgB;AACpC,SAAS,YAAY;AACrB,SAAS,QAAQ,gBAAgB;AACjC,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAC3B,SAAS,iBAAiB;AAC1B,SAAS,yBAAyB;AAElC,MAAM,OAAO,OAAO,CAACA,WAAU,oBAAC
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["props"]
|
|
7
7
|
}
|
|
@@ -39,10 +39,7 @@ const StyledInput = styled.input`
|
|
|
39
39
|
display: none;
|
|
40
40
|
}
|
|
41
41
|
`;
|
|
42
|
-
const Input = ({ innerRef, ...props }) => /* @__PURE__ */ jsx(StyledInput, {
|
|
43
|
-
ref: innerRef,
|
|
44
|
-
...props
|
|
45
|
-
});
|
|
42
|
+
const Input = ({ innerRef, ...props }) => /* @__PURE__ */ jsx(StyledInput, { ref: innerRef, ...props });
|
|
46
43
|
export {
|
|
47
44
|
Input
|
|
48
45
|
};
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileDatePicker/Input.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport { focus, __UNSAFE_SPACE_TO_DIMSUM } from '@elliemae/ds-system';\n\nconst StyledInput = styled.input`\n input[type=date]& { \n -webkit-appearance: none;\n -moz-appearance: none;\n -webkit-tap-highlight-color: transparent;\n appearance: none;\n color: transparent;\n\n white-space: nowrap;\n position: relative;\n height: ${props => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.l)};\n width: 100%;\n max-width: calc(100% - 32px);\n outline: none;\n box-sizing: border-box;\n display: flex;\n background: ${props => props.theme.colors.neutral['000']};\n padding: 0 ${props => __UNSAFE_SPACE_TO_DIMSUM(props.theme.space.xs)};\n z-index: 1;\n border-radius: 2px;\n border: solid 1px ${props => props.theme.colors.neutral[200]};\n }\n\n input[type=date]&:active, input[type=date]&:focus {\n ${props => focus(props.theme.colors.brand[700])}\n }\n\n &:before {\n color: ${props =>\n props.value === ''\n ? props.theme.colors.neutral['500']\n : props.theme.colors.neutral['800']};\n content: '${props =>\n props.value === '' ? props.placeholder : props['data-displayvalue']}';\n }\n\n input[type=date]&::-webkit-datetime-edit, input[type=date]&::-webkit-inner-spin-button, input[type=date]&::-webkit-clear-button {\n -webkit-appearance: none;\n display: none;\n }\n`;\n\nexport const Input = ({ innerRef, ...props }) => (\n <StyledInput ref={innerRef} {...props} />\n);\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AC+CrB;AA9CF,SAAS,cAAc;AACvB,SAAS,OAAO,gCAAgC;AAEhD,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAUb,WAAS,yBAAyB,MAAM,MAAM,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMjD,WAAS,MAAM,MAAM,OAAO,QAAQ;AAAA,iBACrC,WAAS,yBAAyB,MAAM,MAAM,MAAM,EAAE;AAAA;AAAA;AAAA,wBAG/C,WAAS,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA,MAItD,WAAS,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA,aAIrC,WACP,MAAM,UAAU,KACZ,MAAM,MAAM,OAAO,QAAQ,SAC3B,MAAM,MAAM,OAAO,QAAQ;AAAA,gBACrB,WACV,MAAM,UAAU,KAAK,MAAM,cAAc,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS9C,MAAM,QAAQ,CAAC,EAAE,aAAa,MAAM,MACzC,oBAAC
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AC+CrB;AA9CF,SAAS,cAAc;AACvB,SAAS,OAAO,gCAAgC;AAEhD,MAAM,cAAc,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,cAUb,WAAS,yBAAyB,MAAM,MAAM,MAAM,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAMjD,WAAS,MAAM,MAAM,OAAO,QAAQ;AAAA,iBACrC,WAAS,yBAAyB,MAAM,MAAM,MAAM,EAAE;AAAA;AAAA;AAAA,wBAG/C,WAAS,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA,MAItD,WAAS,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAAA;AAAA;AAAA;AAAA,aAIrC,WACP,MAAM,UAAU,KACZ,MAAM,MAAM,OAAO,QAAQ,SAC3B,MAAM,MAAM,OAAO,QAAQ;AAAA,gBACrB,WACV,MAAM,UAAU,KAAK,MAAM,cAAc,MAAM;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAS9C,MAAM,QAAQ,CAAC,EAAE,aAAa,MAAM,MACzC,oBAAC,eAAY,KAAK,UAAW,GAAG,OAAO;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -16,40 +16,49 @@ const DSMobileDatePicker = ({ disabled, value, tabIndex, placeholder, onChange }
|
|
|
16
16
|
}, [inputRef.current]);
|
|
17
17
|
const valueArr = value.split("-");
|
|
18
18
|
const displayValue = value && `${valueArr[1]} / ${valueArr[2]} / ${valueArr[0]}`;
|
|
19
|
-
return /* @__PURE__ */ jsx(
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
"aria-label": "Date Picker Input Mask",
|
|
36
|
-
disabled,
|
|
37
|
-
onKeyDown: (e) => e.preventDefault(),
|
|
38
|
-
type: "date",
|
|
39
|
-
placeholder,
|
|
40
|
-
onChange: (e) => {
|
|
41
|
-
const { target } = e.nativeEvent;
|
|
42
|
-
function iosClearDefault() {
|
|
43
|
-
target.defaultValue = "";
|
|
19
|
+
return /* @__PURE__ */ jsx(
|
|
20
|
+
DSInputGroup,
|
|
21
|
+
{
|
|
22
|
+
rightAddon: /* @__PURE__ */ jsx(
|
|
23
|
+
DSButton,
|
|
24
|
+
{
|
|
25
|
+
"aria-label": "Date Picker Button",
|
|
26
|
+
color: !disabled ? DSIconColors.PRIMARY : DSIconColors.NEUTRAL,
|
|
27
|
+
disabled,
|
|
28
|
+
icon: /* @__PURE__ */ jsx(DatePicker, {}),
|
|
29
|
+
type: "button",
|
|
30
|
+
buttonType: "secondary",
|
|
31
|
+
onClick: () => {
|
|
32
|
+
inputRef.current.focus();
|
|
33
|
+
inputRef.current.click();
|
|
34
|
+
}
|
|
44
35
|
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
36
|
+
),
|
|
37
|
+
children: /* @__PURE__ */ jsx(
|
|
38
|
+
Input,
|
|
39
|
+
{
|
|
40
|
+
"data-testid": "ds-mobile-date-picker",
|
|
41
|
+
innerRef: inputRef,
|
|
42
|
+
"aria-label": "Date Picker Input Mask",
|
|
43
|
+
disabled,
|
|
44
|
+
onKeyDown: (e) => e.preventDefault(),
|
|
45
|
+
type: "date",
|
|
46
|
+
placeholder,
|
|
47
|
+
onChange: (e) => {
|
|
48
|
+
const { target } = e.nativeEvent;
|
|
49
|
+
function iosClearDefault() {
|
|
50
|
+
target.defaultValue = "";
|
|
51
|
+
}
|
|
52
|
+
window.setTimeout(iosClearDefault, 0);
|
|
53
|
+
onChange(e);
|
|
54
|
+
},
|
|
55
|
+
tabIndex,
|
|
56
|
+
value,
|
|
57
|
+
"data-displayvalue": displayValue
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
}
|
|
61
|
+
);
|
|
53
62
|
};
|
|
54
63
|
DSMobileDatePicker.defaultProps = {
|
|
55
64
|
disabled: false,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileDatePicker/MobileDatePicker.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React, { useRef, useEffect } from 'react';\nimport { PropTypes, describe } from '@elliemae/ds-utilities';\nimport { DSIconColors } from '@elliemae/ds-icon';\nimport { DatePicker } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { DSInputGroup } from '@elliemae/ds-form';\nimport { Input } from './Input';\n\nconst DSMobileDatePicker = ({ disabled, value, tabIndex, placeholder, onChange }) => {\n const inputRef = useRef(null);\n useEffect(() => {\n /*\n necessary if value is being set in mount, \n otherwise the clear won't work on the first click\n [SEE input onChange comment]\n */\n if (inputRef.current) {\n inputRef.current.defaultValue = '';\n }\n }, [inputRef.current]);\n const valueArr = value.split('-');\n const displayValue = value && `${valueArr[1]} / ${valueArr[2]} / ${valueArr[0]}`;\n return (\n <DSInputGroup\n rightAddon={\n <DSButton\n aria-label=\"Date Picker Button\"\n color={!disabled ? DSIconColors.PRIMARY : DSIconColors.NEUTRAL}\n disabled={disabled}\n icon={<DatePicker />}\n type=\"button\"\n buttonType=\"secondary\"\n onClick={() => {\n inputRef.current.focus();\n inputRef.current.click();\n }}\n />\n }\n >\n <Input\n data-testid=\"ds-mobile-date-picker\"\n innerRef={inputRef}\n aria-label=\"Date Picker Input Mask\"\n disabled={disabled}\n onKeyDown={(e) => e.preventDefault()}\n type=\"date\"\n placeholder={placeholder}\n onChange={(e) => {\n // https://github.com/facebook/react/issues/8938#issuecomment-360573204\n const { target } = e.nativeEvent;\n function iosClearDefault() {\n target.defaultValue = '';\n }\n window.setTimeout(iosClearDefault, 0);\n onChange(e);\n }}\n tabIndex={tabIndex}\n value={value}\n data-displayvalue={displayValue}\n />\n </DSInputGroup>\n );\n};\n\nDSMobileDatePicker.defaultProps = {\n disabled: false,\n tabIndex: 0,\n placeholder: 'MM / DD / YYYY',\n};\n\nconst props = {\n /**\n * defaults to false\n */\n disabled: PropTypes.bool.description('defaults to false'),\n /**\n * 0 as default\n */\n tabIndex: PropTypes.number.description('0 as default'),\n /**\n * MM / DD / YYYY as default\n */\n placeholder: PropTypes.string.description('MM / DD / YYYY as default'),\n /**\n * onChange handler, receives change event as first argument\n */\n onChange: PropTypes.func.description('onChange handler, receives change event as first argument'),\n /**\n * ISO8601 string representing the date in format YYYY-MM-DD or empty string\n */\n value: PropTypes.string.description('ISO8601 string representing the date in format YYYY-MM-DD or empty string'),\n};\n\nDSMobileDatePicker.propTypes = props;\nDSMobileDatePicker.displayName = 'DSMobileDatePicker';\nconst DSMobileDatePickerWithSchema = describe(DSMobileDatePicker);\n\nDSMobileDatePickerWithSchema.propTypes = props;\n\nexport { DSMobileDatePicker, DSMobileDatePickerWithSchema };\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AC6BP;AA7BhB,SAAgB,QAAQ,iBAAiB;AACzC,SAAS,WAAW,gBAAgB;AACpC,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,OAAO,cAAc;AACrB,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AAEtB,MAAM,qBAAqB,CAAC,EAAE,UAAU,OAAO,UAAU,aAAa,SAAS,MAAM;AACnF,QAAM,WAAW,OAAO,IAAI;AAC5B,YAAU,MAAM;AAMd,QAAI,SAAS,SAAS;AACpB,eAAS,QAAQ,eAAe;AAAA,IAClC;AAAA,EACF,GAAG,CAAC,SAAS,OAAO,CAAC;AACrB,QAAM,WAAW,MAAM,MAAM,GAAG;AAChC,QAAM,eAAe,SAAS,GAAG,SAAS,QAAQ,SAAS,QAAQ,SAAS;AAC5E,SACE,
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AC6BP;AA7BhB,SAAgB,QAAQ,iBAAiB;AACzC,SAAS,WAAW,gBAAgB;AACpC,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAC3B,OAAO,cAAc;AACrB,SAAS,oBAAoB;AAC7B,SAAS,aAAa;AAEtB,MAAM,qBAAqB,CAAC,EAAE,UAAU,OAAO,UAAU,aAAa,SAAS,MAAM;AACnF,QAAM,WAAW,OAAO,IAAI;AAC5B,YAAU,MAAM;AAMd,QAAI,SAAS,SAAS;AACpB,eAAS,QAAQ,eAAe;AAAA,IAClC;AAAA,EACF,GAAG,CAAC,SAAS,OAAO,CAAC;AACrB,QAAM,WAAW,MAAM,MAAM,GAAG;AAChC,QAAM,eAAe,SAAS,GAAG,SAAS,QAAQ,SAAS,QAAQ,SAAS;AAC5E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,YACE;AAAA,QAAC;AAAA;AAAA,UACC,cAAW;AAAA,UACX,OAAO,CAAC,WAAW,aAAa,UAAU,aAAa;AAAA,UACvD;AAAA,UACA,MAAM,oBAAC,cAAW;AAAA,UAClB,MAAK;AAAA,UACL,YAAW;AAAA,UACX,SAAS,MAAM;AACb,qBAAS,QAAQ,MAAM;AACvB,qBAAS,QAAQ,MAAM;AAAA,UACzB;AAAA;AAAA,MACF;AAAA,MAGF;AAAA,QAAC;AAAA;AAAA,UACC,eAAY;AAAA,UACZ,UAAU;AAAA,UACV,cAAW;AAAA,UACX;AAAA,UACA,WAAW,CAAC,MAAM,EAAE,eAAe;AAAA,UACnC,MAAK;AAAA,UACL;AAAA,UACA,UAAU,CAAC,MAAM;AAEf,kBAAM,EAAE,OAAO,IAAI,EAAE;AACrB,qBAAS,kBAAkB;AACzB,qBAAO,eAAe;AAAA,YACxB;AACA,mBAAO,WAAW,iBAAiB,CAAC;AACpC,qBAAS,CAAC;AAAA,UACZ;AAAA,UACA;AAAA,UACA;AAAA,UACA,qBAAmB;AAAA;AAAA,MACrB;AAAA;AAAA,EACF;AAEJ;AAEA,mBAAmB,eAAe;AAAA,EAChC,UAAU;AAAA,EACV,UAAU;AAAA,EACV,aAAa;AACf;AAEA,MAAM,QAAQ;AAAA,EAIZ,UAAU,UAAU,KAAK,YAAY,mBAAmB;AAAA,EAIxD,UAAU,UAAU,OAAO,YAAY,cAAc;AAAA,EAIrD,aAAa,UAAU,OAAO,YAAY,2BAA2B;AAAA,EAIrE,UAAU,UAAU,KAAK,YAAY,2DAA2D;AAAA,EAIhG,OAAO,UAAU,OAAO,YAAY,2EAA2E;AACjH;AAEA,mBAAmB,YAAY;AAC/B,mBAAmB,cAAc;AACjC,MAAM,+BAA+B,SAAS,kBAAkB;AAEhE,6BAA6B,YAAY;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -39,12 +39,7 @@ const CaretWrap = styled.span`
|
|
|
39
39
|
justify-content: center;
|
|
40
40
|
align-items: center;
|
|
41
41
|
`;
|
|
42
|
-
const Caret = ({ onClick }) => /* @__PURE__ */ jsx(CaretWrap, {
|
|
43
|
-
onClick,
|
|
44
|
-
children: /* @__PURE__ */ jsx(ChevronDown, {
|
|
45
|
-
color: ["brand-primary", "600"]
|
|
46
|
-
})
|
|
47
|
-
});
|
|
42
|
+
const Caret = ({ onClick }) => /* @__PURE__ */ jsx(CaretWrap, { onClick, children: /* @__PURE__ */ jsx(ChevronDown, { color: ["brand-primary", "600"] }) });
|
|
48
43
|
Caret.propTypes = {
|
|
49
44
|
onClick: PropTypes.func.isRequired
|
|
50
45
|
};
|
|
@@ -52,19 +47,10 @@ const DSMobileDropdownTriggerInput = ({
|
|
|
52
47
|
inputProps,
|
|
53
48
|
caretProps,
|
|
54
49
|
selectedItemsText
|
|
55
|
-
}) => /* @__PURE__ */ jsxs(MobileDropdownInputWrap, {
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
...inputProps,
|
|
60
|
-
readOnly: true,
|
|
61
|
-
value: selectedItemsText ?? inputProps.value
|
|
62
|
-
}),
|
|
63
|
-
/* @__PURE__ */ jsx(Caret, {
|
|
64
|
-
...caretProps
|
|
65
|
-
})
|
|
66
|
-
]
|
|
67
|
-
});
|
|
50
|
+
}) => /* @__PURE__ */ jsxs(MobileDropdownInputWrap, { "data-testid": "ds-mobile-ddwn-menu", children: [
|
|
51
|
+
/* @__PURE__ */ jsx(MobileDropdownInput, { ...inputProps, readOnly: true, value: selectedItemsText ?? inputProps.value }),
|
|
52
|
+
/* @__PURE__ */ jsx(Caret, { ...caretProps })
|
|
53
|
+
] });
|
|
68
54
|
export {
|
|
69
55
|
Caret,
|
|
70
56
|
DSMobileDropdownTriggerInput,
|
|
@@ -2,6 +2,6 @@
|
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/MobileDropdownMenu/MobileDropdownInput.tsx"],
|
|
4
4
|
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport { styled } from '@elliemae/ds-system';\nimport PropTypes from 'prop-types';\nimport { focus } from '@elliemae/ds-system';\nimport { ChevronDown } from '@elliemae/ds-icons';\n\nexport const MobileDropdownInput = styled.input`\n -webkit-appearance: none;\n -moz-appearance: none;\n -webkit-tap-highlight-color: transparent;\n caret-color: transparent;\n padding-right: 32px;\n padding-left: 10px;\n border-radius: 2px;\n width: 100%;\n background: ${(props) => props.theme.colors.neutral['000']};\n height: 32px;\n line-height: 32px;\n border: solid 1px ${(props) => props.theme.colors.neutral[200]};\n\n &:active,\n &:focus {\n ${(props) => focus(props.theme.colors.brand[700])}\n }\n`;\n\nexport const MobileDropdownInputWrap = styled.span`\n position: relative;\n width: 100%;\n display: inline-block;\n height: 32px;\n`;\n\nconst CaretWrap = styled.span`\n width: 32px;\n height: 32px;\n position: absolute;\n right: 0;\n top: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n`;\n\nexport const Caret = ({ onClick }): JSX.Element => (\n <CaretWrap onClick={onClick}>\n <ChevronDown color={['brand-primary', '600']} />\n </CaretWrap>\n);\n\nCaret.propTypes = {\n onClick: PropTypes.func.isRequired,\n};\n\nexport const DSMobileDropdownTriggerInput = ({\n inputProps,\n caretProps,\n selectedItemsText,\n}: {\n inputProps: Record<string, unknown>;\n caretProps: Record<string, unknown>;\n selectedItemsText?: string;\n}): JSX.Element => (\n <MobileDropdownInputWrap data-testid=\"ds-mobile-ddwn-menu\">\n <MobileDropdownInput {...inputProps} readOnly value={selectedItemsText ?? inputProps.value} />\n\n <Caret {...caretProps} />\n </MobileDropdownInputWrap>\n);\n"],
|
|
5
|
-
"mappings": "AAAA,YAAY,WAAW;AC8CnB,cAiBF,YAjBE;AA7CJ,SAAS,cAAc;AACvB,OAAO,eAAe;AACtB,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAErB,MAAM,sBAAsB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAS1B,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA,sBAGhC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA,MAItD,CAAC,UAAU,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAAA;AAAA;AAI7C,MAAM,0BAA0B,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAO9C,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWlB,MAAM,QAAQ,CAAC,EAAE,QAAQ,MAC9B,oBAAC
|
|
5
|
+
"mappings": "AAAA,YAAY,WAAW;AC8CnB,cAiBF,YAjBE;AA7CJ,SAAS,cAAc;AACvB,OAAO,eAAe;AACtB,SAAS,aAAa;AACtB,SAAS,mBAAmB;AAErB,MAAM,sBAAsB,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,gBAS1B,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA,sBAGhC,CAAC,UAAU,MAAM,MAAM,OAAO,QAAQ;AAAA;AAAA;AAAA;AAAA,MAItD,CAAC,UAAU,MAAM,MAAM,MAAM,OAAO,MAAM,IAAI;AAAA;AAAA;AAI7C,MAAM,0BAA0B,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAO9C,MAAM,YAAY,OAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAWlB,MAAM,QAAQ,CAAC,EAAE,QAAQ,MAC9B,oBAAC,aAAU,SACT,8BAAC,eAAY,OAAO,CAAC,iBAAiB,KAAK,GAAG,GAChD;AAGF,MAAM,YAAY;AAAA,EAChB,SAAS,UAAU,KAAK;AAC1B;AAEO,MAAM,+BAA+B,CAAC;AAAA,EAC3C;AAAA,EACA;AAAA,EACA;AACF,MAKE,qBAAC,2BAAwB,eAAY,uBACnC;AAAA,sBAAC,uBAAqB,GAAG,YAAY,UAAQ,MAAC,OAAO,qBAAqB,WAAW,OAAO;AAAA,EAE5F,oBAAC,SAAO,GAAG,YAAY;AAAA,GACzB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|