smarthr-ui 64.0.1 → 65.0.1
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/esm/components/AppHeader/components/desktop/Navigation.js +32 -60
- package/esm/components/AppHeader/components/desktop/Navigation.js.map +1 -1
- package/esm/components/ComboBox/usePartialRendering.d.ts +1 -1
- package/esm/components/ComboBox/usePartialRendering.js +11 -18
- package/esm/components/ComboBox/usePartialRendering.js.map +1 -1
- package/esm/components/Dialog/FocusTrap.js +24 -23
- package/esm/components/Dialog/FocusTrap.js.map +1 -1
- package/esm/components/Dialog/FormDialog/FormDialog.js +5 -7
- package/esm/components/Dialog/FormDialog/FormDialog.js.map +1 -1
- package/esm/components/Dialog/FormDialog/FormDialogContent.js +5 -7
- package/esm/components/Dialog/FormDialog/FormDialogContent.js.map +1 -1
- package/esm/components/Dialog/FormDialog/FormDialogContentInner.js +50 -13
- package/esm/components/Dialog/FormDialog/FormDialogContentInner.js.map +1 -1
- package/esm/components/Dialog/MessageDialog/MessageDialogContent.js +2 -3
- package/esm/components/Dialog/MessageDialog/MessageDialogContent.js.map +1 -1
- package/esm/components/Dialog/MessageDialog/MessageDialogContentInner.js +18 -7
- package/esm/components/Dialog/MessageDialog/MessageDialogContentInner.js.map +1 -1
- package/esm/components/Dialog/ModelessDialog.js +41 -42
- package/esm/components/Dialog/ModelessDialog.js.map +1 -1
- package/esm/components/Dialog/useBodyScrollLock.js +8 -16
- package/esm/components/Dialog/useBodyScrollLock.js.map +1 -1
- package/esm/components/Dialog/useDialogPortal.js.map +1 -1
- package/esm/components/Dialog/useRemoteTrigger.js +5 -7
- package/esm/components/Dialog/useRemoteTrigger.js.map +1 -1
- package/esm/components/DropZone/DropZone.js +7 -4
- package/esm/components/DropZone/DropZone.js.map +1 -1
- package/esm/components/Dropdown/Dropdown.js +22 -29
- package/esm/components/Dropdown/Dropdown.js.map +1 -1
- package/esm/components/Dropdown/DropdownCloser.js +5 -10
- package/esm/components/Dropdown/DropdownCloser.js.map +1 -1
- package/esm/components/Dropdown/DropdownContentInner.js +9 -13
- package/esm/components/Dropdown/DropdownContentInner.js.map +1 -1
- package/esm/components/Dropdown/DropdownTrigger.js +15 -20
- package/esm/components/Dropdown/DropdownTrigger.js.map +1 -1
- package/esm/components/Dropdown/FilterDropdown/FilterDropdown.js +46 -18
- package/esm/components/Dropdown/FilterDropdown/FilterDropdown.js.map +1 -1
- package/esm/components/Dropdown/SortDropdown/useSortDropdown.d.ts +1 -1
- package/esm/components/Dropdown/dropdownHelper.js +6 -4
- package/esm/components/Dropdown/dropdownHelper.js.map +1 -1
- package/esm/components/Dropdown/useKeyboardNavigation.js +22 -30
- package/esm/components/Dropdown/useKeyboardNavigation.js.map +1 -1
- package/esm/components/FloatArea/FloatArea.d.ts +2 -2
- package/esm/components/FloatArea/FloatArea.js +4 -5
- package/esm/components/FloatArea/FloatArea.js.map +1 -1
- package/esm/components/FormControl/FormControl.js +79 -21
- package/esm/components/FormControl/FormControl.js.map +1 -1
- package/esm/components/Header/AppLauncher/AppLauncher.js +43 -20
- package/esm/components/Header/AppLauncher/AppLauncher.js.map +1 -1
- package/esm/components/Header/Header.js +40 -11
- package/esm/components/Header/Header.js.map +1 -1
- package/esm/components/Header/HeaderLink.js.map +1 -1
- package/esm/components/Header/LanguageSwitcher/LanguageSwitcher.js +44 -33
- package/esm/components/Header/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
- package/esm/components/Icon/DeprecatedIcon.d.ts +60 -60
- package/esm/components/Icon/Icon.d.ts +193 -193
- package/esm/components/Icon/Icon.js +194 -194
- package/esm/components/Icon/Icon.js.map +1 -1
- package/esm/components/Icon/LanguageIcon.d.ts +1 -1
- package/esm/components/Icon/SparklesIcon.d.ts +1 -1
- package/esm/components/Icon/WarningIcon.d.ts +1 -1
- package/esm/components/Icon/generateIcon.d.ts +1 -2
- package/esm/components/Icon/generateIcon.js +18 -11
- package/esm/components/Icon/generateIcon.js.map +1 -1
- package/esm/components/InformationPanel/InformationPanel.d.ts +3 -2
- package/esm/components/InformationPanel/InformationPanel.js +61 -21
- package/esm/components/InformationPanel/InformationPanel.js.map +1 -1
- package/esm/components/InputFile/InputFile.js +23 -12
- package/esm/components/InputFile/InputFile.js.map +1 -1
- package/esm/components/LineClamp/LineClamp.js +8 -11
- package/esm/components/LineClamp/LineClamp.js.map +1 -1
- package/esm/components/Pagination/Pagination.d.ts +4 -3
- package/esm/components/Pagination/Pagination.js +30 -29
- package/esm/components/Pagination/Pagination.js.map +1 -1
- package/esm/components/Pagination/PaginationControllerItemButton.d.ts +1 -1
- package/esm/components/Pagination/PaginationControllerItemButton.js +14 -11
- package/esm/components/Pagination/PaginationControllerItemButton.js.map +1 -1
- package/esm/components/Pagination/PaginationItemButton.d.ts +1 -1
- package/esm/components/Pagination/PaginationItemButton.js +12 -2
- package/esm/components/Pagination/PaginationItemButton.js.map +1 -1
- package/esm/components/RadioButton/RadioButton.js +10 -11
- package/esm/components/RadioButton/RadioButton.js.map +1 -1
- package/esm/components/RadioButtonPanel/RadioButtonPanel.js +6 -6
- package/esm/components/RadioButtonPanel/RadioButtonPanel.js.map +1 -1
- package/esm/components/SegmentedControl/SegmentedControl.js +1 -6
- package/esm/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/esm/components/Select/Select.d.ts +1 -0
- package/esm/components/Select/Select.js +16 -12
- package/esm/components/Select/Select.js.map +1 -1
- package/esm/components/Stepper/StepStatusIcon.d.ts +6 -2
- package/esm/components/Stepper/StepStatusIcon.js +25 -17
- package/esm/components/Stepper/StepStatusIcon.js.map +1 -1
- package/esm/components/Textarea/Textarea.js +34 -26
- package/esm/components/Textarea/Textarea.js.map +1 -1
- package/esm/libs/tabbable.js.map +1 -1
- package/esm/types/ResponseMessage.d.ts +3 -2
- package/esm/types/index.d.ts +1 -1
- package/lib/components/AppHeader/components/desktop/Navigation.js +33 -91
- package/lib/components/AppHeader/components/desktop/Navigation.js.map +1 -1
- package/lib/components/ComboBox/usePartialRendering.d.ts +1 -1
- package/lib/components/ComboBox/usePartialRendering.js +11 -18
- package/lib/components/ComboBox/usePartialRendering.js.map +1 -1
- package/lib/components/Dialog/FocusTrap.js +23 -22
- package/lib/components/Dialog/FocusTrap.js.map +1 -1
- package/lib/components/Dialog/FormDialog/FormDialog.js +5 -7
- package/lib/components/Dialog/FormDialog/FormDialog.js.map +1 -1
- package/lib/components/Dialog/FormDialog/FormDialogContent.js +5 -7
- package/lib/components/Dialog/FormDialog/FormDialogContent.js.map +1 -1
- package/lib/components/Dialog/FormDialog/FormDialogContentInner.js +49 -12
- package/lib/components/Dialog/FormDialog/FormDialogContentInner.js.map +1 -1
- package/lib/components/Dialog/MessageDialog/MessageDialogContent.js +2 -3
- package/lib/components/Dialog/MessageDialog/MessageDialogContent.js.map +1 -1
- package/lib/components/Dialog/MessageDialog/MessageDialogContentInner.js +50 -9
- package/lib/components/Dialog/MessageDialog/MessageDialogContentInner.js.map +1 -1
- package/lib/components/Dialog/ModelessDialog.js +41 -42
- package/lib/components/Dialog/ModelessDialog.js.map +1 -1
- package/lib/components/Dialog/useBodyScrollLock.js +7 -15
- package/lib/components/Dialog/useBodyScrollLock.js.map +1 -1
- package/lib/components/Dialog/useDialogPortal.js.map +1 -1
- package/lib/components/Dialog/useRemoteTrigger.js +5 -7
- package/lib/components/Dialog/useRemoteTrigger.js.map +1 -1
- package/lib/components/DropZone/DropZone.js +7 -4
- package/lib/components/DropZone/DropZone.js.map +1 -1
- package/lib/components/Dropdown/Dropdown.js +21 -28
- package/lib/components/Dropdown/Dropdown.js.map +1 -1
- package/lib/components/Dropdown/DropdownCloser.js +5 -10
- package/lib/components/Dropdown/DropdownCloser.js.map +1 -1
- package/lib/components/Dropdown/DropdownContentInner.js +9 -13
- package/lib/components/Dropdown/DropdownContentInner.js.map +1 -1
- package/lib/components/Dropdown/DropdownTrigger.js +15 -20
- package/lib/components/Dropdown/DropdownTrigger.js.map +1 -1
- package/lib/components/Dropdown/FilterDropdown/FilterDropdown.js +46 -18
- package/lib/components/Dropdown/FilterDropdown/FilterDropdown.js.map +1 -1
- package/lib/components/Dropdown/SortDropdown/useSortDropdown.d.ts +1 -1
- package/lib/components/Dropdown/dropdownHelper.js +6 -4
- package/lib/components/Dropdown/dropdownHelper.js.map +1 -1
- package/lib/components/Dropdown/useKeyboardNavigation.js +22 -30
- package/lib/components/Dropdown/useKeyboardNavigation.js.map +1 -1
- package/lib/components/FloatArea/FloatArea.d.ts +2 -2
- package/lib/components/FloatArea/FloatArea.js +4 -5
- package/lib/components/FloatArea/FloatArea.js.map +1 -1
- package/lib/components/FormControl/FormControl.js +79 -21
- package/lib/components/FormControl/FormControl.js.map +1 -1
- package/lib/components/Header/AppLauncher/AppLauncher.js +43 -20
- package/lib/components/Header/AppLauncher/AppLauncher.js.map +1 -1
- package/lib/components/Header/Header.js +41 -12
- package/lib/components/Header/Header.js.map +1 -1
- package/lib/components/Header/HeaderLink.js.map +1 -1
- package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.js +43 -32
- package/lib/components/Header/LanguageSwitcher/LanguageSwitcher.js.map +1 -1
- package/lib/components/Icon/DeprecatedIcon.d.ts +60 -60
- package/lib/components/Icon/Icon.d.ts +193 -193
- package/lib/components/Icon/Icon.js +193 -193
- package/lib/components/Icon/Icon.js.map +1 -1
- package/lib/components/Icon/LanguageIcon.d.ts +1 -1
- package/lib/components/Icon/SparklesIcon.d.ts +1 -1
- package/lib/components/Icon/WarningIcon.d.ts +1 -1
- package/lib/components/Icon/generateIcon.d.ts +1 -2
- package/lib/components/Icon/generateIcon.js +20 -14
- package/lib/components/Icon/generateIcon.js.map +1 -1
- package/lib/components/InformationPanel/InformationPanel.d.ts +3 -2
- package/lib/components/InformationPanel/InformationPanel.js +61 -21
- package/lib/components/InformationPanel/InformationPanel.js.map +1 -1
- package/lib/components/InputFile/InputFile.js +23 -12
- package/lib/components/InputFile/InputFile.js.map +1 -1
- package/lib/components/LineClamp/LineClamp.js +8 -11
- package/lib/components/LineClamp/LineClamp.js.map +1 -1
- package/lib/components/Pagination/Pagination.d.ts +4 -3
- package/lib/components/Pagination/Pagination.js +30 -29
- package/lib/components/Pagination/Pagination.js.map +1 -1
- package/lib/components/Pagination/PaginationControllerItemButton.d.ts +1 -1
- package/lib/components/Pagination/PaginationControllerItemButton.js +14 -11
- package/lib/components/Pagination/PaginationControllerItemButton.js.map +1 -1
- package/lib/components/Pagination/PaginationItemButton.d.ts +1 -1
- package/lib/components/Pagination/PaginationItemButton.js +12 -2
- package/lib/components/Pagination/PaginationItemButton.js.map +1 -1
- package/lib/components/RadioButton/RadioButton.js +9 -10
- package/lib/components/RadioButton/RadioButton.js.map +1 -1
- package/lib/components/RadioButtonPanel/RadioButtonPanel.js +5 -5
- package/lib/components/RadioButtonPanel/RadioButtonPanel.js.map +1 -1
- package/lib/components/SegmentedControl/SegmentedControl.js +1 -6
- package/lib/components/SegmentedControl/SegmentedControl.js.map +1 -1
- package/lib/components/Select/Select.d.ts +1 -0
- package/lib/components/Select/Select.js +16 -12
- package/lib/components/Select/Select.js.map +1 -1
- package/lib/components/Stepper/StepStatusIcon.d.ts +6 -2
- package/lib/components/Stepper/StepStatusIcon.js +26 -18
- package/lib/components/Stepper/StepStatusIcon.js.map +1 -1
- package/lib/components/Textarea/Textarea.js +34 -26
- package/lib/components/Textarea/Textarea.js.map +1 -1
- package/lib/libs/tabbable.js.map +1 -1
- package/lib/types/ResponseMessage.d.ts +3 -2
- package/lib/types/index.d.ts +1 -1
- package/package.json +6 -6
- package/smarthr-ui.css +16 -23
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { tv } from 'tailwind-variants';
|
|
3
|
-
import { AppNavi } from '../../../AppNavi';
|
|
3
|
+
import { AppNavi, AppNaviAnchor, AppNaviButton, AppNaviCustomTag, AppNaviDropdownMenuButton, } from '../../../AppNavi';
|
|
4
|
+
import { AnchorButton, Button } from '../../../Button';
|
|
5
|
+
import { DropdownMenuGroup } from '../../../Dropdown';
|
|
4
6
|
import { Cluster } from '../../../Layout';
|
|
5
|
-
import {
|
|
6
|
-
import { isChildNavigation, isChildNavigationGroup } from '../../utils';
|
|
7
|
-
import { CommonButton, commonButton } from '../common/CommonButton';
|
|
7
|
+
import { commonButton } from '../common/CommonButton';
|
|
8
8
|
import { ReleaseNotesDropdown } from './ReleaseNotesDropdown';
|
|
9
9
|
const appNavi = tv({
|
|
10
10
|
base: ['shr-overflow-x-auto shr-min-w-[auto]', 'max-[751px]:!shr-hidden'],
|
|
@@ -14,64 +14,36 @@ const appNavi = tv({
|
|
|
14
14
|
},
|
|
15
15
|
},
|
|
16
16
|
});
|
|
17
|
-
export const Navigation = ({ appName, navigations, additionalContent, releaseNote, enableNew, }) => {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
};
|
|
23
|
-
const navigationTitle = tv({
|
|
24
|
-
base: ['shr-px-1 shr-pt-0.5 shr-pb-0.25'],
|
|
25
|
-
});
|
|
26
|
-
const separator = tv({
|
|
27
|
-
base: ['[&&]:shr-mx-0 [&&]:shr-my-0.5 [&&]:shr-border-b-shorthand'],
|
|
28
|
-
});
|
|
29
|
-
// TODO smarthr-ui 側でグループ化された Navigation が対応されたら AppNaviDropdownMenuButton を使った実装に変更する
|
|
30
|
-
const buildButtonsFromNavigations = (navigations) => navigations.map((navigation) => {
|
|
31
|
-
if (isChildNavigation(navigation)) {
|
|
32
|
-
// smarthr-ui の buttons props ではカスタムエレメントは elementAs ではなく tag という名前なので変換する必要がある
|
|
33
|
-
if ('elementAs' in navigation) {
|
|
34
|
-
const { elementAs, ...rest } = navigation;
|
|
35
|
-
return {
|
|
36
|
-
...rest,
|
|
37
|
-
tag: elementAs,
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
return navigation;
|
|
17
|
+
export const Navigation = ({ appName, navigations, additionalContent, releaseNote, enableNew, }) => (React.createElement(AppNavi, { label: enableNew ? undefined : appName, className: appNavi({ withReleaseNote: !!releaseNote }), displayDropdownCaret: true, additionalArea: React.createElement(Cluster, { align: "center", className: "shr-flex-nowrap shr-ps-1" },
|
|
18
|
+
additionalContent,
|
|
19
|
+
releaseNote && React.createElement(ReleaseNotesDropdown, { ...releaseNote })) }, buildNavigations(navigations)));
|
|
20
|
+
const buildNavigations = (navigations) => (React.createElement(React.Fragment, null, navigations.map((navigation) => {
|
|
21
|
+
if ('elementAs' in navigation) {
|
|
22
|
+
return (React.createElement(AppNaviCustomTag, { ...navigation, key: navigation.children.toString(), tag: navigation.elementAs }));
|
|
41
23
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return
|
|
47
|
-
}
|
|
48
|
-
return {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
dropdownContent: (React.createElement("div", { className: "shr-py-0.5" }, navigation.childNavigations.map((childNavigation, i) => {
|
|
52
|
-
if (isChildNavigationGroup(childNavigation)) {
|
|
53
|
-
const { childNavigations } = childNavigation;
|
|
54
|
-
return (React.createElement(Fragment, { key: childNavigation.title.toString() },
|
|
55
|
-
React.createElement("div", { className: "shr-px-0.5" },
|
|
56
|
-
React.createElement(Text, { styleType: "subSubBlockTitle", as: "p", className: navigationTitle() }, childNavigation.title),
|
|
57
|
-
childNavigations.map((child) => (React.createElement(Fragment, { key: child.children.toString() }, buildDropdownItemFromNavigation(child))))),
|
|
58
|
-
i + 1 !== navigation.childNavigations.length && React.createElement("hr", { className: separator() })));
|
|
59
|
-
}
|
|
60
|
-
const nextChildNavigation = navigation.childNavigations[i + 1];
|
|
61
|
-
return (React.createElement(Fragment, { key: childNavigation.children.toString() },
|
|
62
|
-
React.createElement("div", { className: "shr-px-0.5" }, buildDropdownItemFromNavigation(childNavigation)),
|
|
63
|
-
isChildNavigationGroup(nextChildNavigation) && React.createElement("hr", { className: separator() })));
|
|
64
|
-
}))),
|
|
65
|
-
};
|
|
66
|
-
});
|
|
67
|
-
const buildDropdownItemFromNavigation = (navigation) => {
|
|
24
|
+
if ('href' in navigation) {
|
|
25
|
+
return React.createElement(AppNaviAnchor, { ...navigation, key: navigation.children.toString() });
|
|
26
|
+
}
|
|
27
|
+
if ('childNavigations' in navigation) {
|
|
28
|
+
return (React.createElement(AppNaviDropdownMenuButton, { label: navigation.children, key: navigation.children.toString() }, buildDropdownMenu(navigation.childNavigations)));
|
|
29
|
+
}
|
|
30
|
+
return React.createElement(AppNaviButton, { ...navigation, key: navigation.children.toString() });
|
|
31
|
+
})));
|
|
32
|
+
const buildDropdownMenu = (navigations) => (React.createElement(React.Fragment, null, navigations.map((navigation) => {
|
|
68
33
|
if ('elementAs' in navigation) {
|
|
69
|
-
const
|
|
70
|
-
|
|
34
|
+
const Component = navigation.elementAs;
|
|
35
|
+
// TODO: DropdownMenuItemを作成し、elementAsを渡せるようにする
|
|
36
|
+
return (React.createElement(Component, { ...navigation, key: navigation.children, "aria-current": navigation.current, className: commonButton({
|
|
37
|
+
current: navigation.current,
|
|
38
|
+
className: navigation.className,
|
|
39
|
+
}) }));
|
|
71
40
|
}
|
|
72
41
|
if ('href' in navigation) {
|
|
73
|
-
return React.createElement(
|
|
42
|
+
return (React.createElement(AnchorButton, { ...navigation, "aria-current": navigation.current && 'page', key: navigation.children.toString() }));
|
|
43
|
+
}
|
|
44
|
+
if ('title' in navigation) {
|
|
45
|
+
return (React.createElement(DropdownMenuGroup, { name: navigation.title, key: navigation.title.toString() }, buildDropdownMenu(navigation.childNavigations)));
|
|
74
46
|
}
|
|
75
|
-
return (React.createElement(
|
|
76
|
-
};
|
|
47
|
+
return (React.createElement(Button, { ...navigation, "aria-current": navigation.current && 'page', key: navigation.children.toString() }));
|
|
48
|
+
})));
|
|
77
49
|
//# sourceMappingURL=Navigation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../../../../src/components/AppHeader/components/desktop/Navigation.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"Navigation.js","sourceRoot":"","sources":["../../../../../src/components/AppHeader/components/desktop/Navigation.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,20 @@
|
|
|
1
1
|
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
2
2
|
const OPTION_INCREMENT_AMOUNT = 100;
|
|
3
|
+
const RETURN_NULL = () => null;
|
|
3
4
|
export function usePartialRendering({ items, minLength = 0, }) {
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
const actualLength = useMemo(() => Math.max(currentItemLength, minLength), [currentItemLength, minLength]);
|
|
7
|
-
const partialItems = useMemo(() => items.slice(0, actualLength), [actualLength, items]);
|
|
5
|
+
const limiter = useCallback((length) => Math.max(length, minLength), [minLength]);
|
|
6
|
+
const [currentItemLength, setCurrentItemLength] = useState(limiter(OPTION_INCREMENT_AMOUNT));
|
|
8
7
|
useEffect(() => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
const renderIntersection = useCallback(() => {
|
|
17
|
-
if (isAllItemsShown) {
|
|
18
|
-
return null;
|
|
19
|
-
}
|
|
20
|
-
return React.createElement(Intersection, { onIntersect: handleIntersect });
|
|
21
|
-
}, [handleIntersect, isAllItemsShown]);
|
|
8
|
+
setCurrentItemLength((current) => limiter(current));
|
|
9
|
+
}, [limiter]);
|
|
10
|
+
// minLength も考慮した実際のアイテム数を算出
|
|
11
|
+
const partialItems = useMemo(() => items.slice(0, currentItemLength), [currentItemLength, items]);
|
|
12
|
+
const renderIntersection = useCallback(() => (React.createElement(Intersection, { onIntersect: () => {
|
|
13
|
+
setCurrentItemLength((current) => limiter(current + OPTION_INCREMENT_AMOUNT));
|
|
14
|
+
} })), [limiter]);
|
|
22
15
|
return {
|
|
23
16
|
items: partialItems,
|
|
24
|
-
renderIntersection,
|
|
17
|
+
renderIntersection: currentItemLength >= items.length ? RETURN_NULL : renderIntersection,
|
|
25
18
|
};
|
|
26
19
|
}
|
|
27
20
|
const Intersection = ({ onIntersect }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePartialRendering.js","sourceRoot":"","sources":["../../../src/components/ComboBox/usePartialRendering.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpF,MAAM,uBAAuB,GAAG,GAAG,CAAA;
|
|
1
|
+
{"version":3,"file":"usePartialRendering.js","sourceRoot":"","sources":["../../../src/components/ComboBox/usePartialRendering.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAM,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEpF,MAAM,uBAAuB,GAAG,GAAG,CAAA;AACnC,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,IAAI,CAAA;AAE9B,MAAM,UAAU,mBAAmB,CAAI,EACrC,KAAK,EACL,SAAS,GAAG,CAAC,GAId;IACC,MAAM,OAAO,GAAG,WAAW,CAAC,CAAC,MAAc,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAA;IAEzF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC,CAAA;IAE5F,SAAS,CAAC,GAAG,EAAE;QACb,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAA;IACrD,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;IAEb,6BAA6B;IAC7B,MAAM,YAAY,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,iBAAiB,CAAC,EAAE,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC,CAAA;IAEjG,MAAM,kBAAkB,GAAG,WAAW,CACpC,GAAG,EAAE,CAAC,CACJ,oBAAC,YAAY,IACX,WAAW,EAAE,GAAG,EAAE;YAChB,oBAAoB,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,OAAO,GAAG,uBAAuB,CAAC,CAAC,CAAA;QAC/E,CAAC,GACD,CACH,EACD,CAAC,OAAO,CAAC,CACV,CAAA;IAED,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,kBAAkB,EAAE,iBAAiB,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,kBAAkB;KACzF,CAAA;AACH,CAAC;AAED,MAAM,YAAY,GAAoC,CAAC,EAAE,WAAW,EAAE,EAAE,EAAE;IACxE,MAAM,GAAG,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAExC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAA;QAE1B,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;YACpB,OAAM;QACR,CAAC;QAED,yDAAyD;QACzD,MAAM,QAAQ,GAAG,IAAI,oBAAoB,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE;YACpD,IAAI,KAAK,CAAC,cAAc,EAAE,CAAC;gBACzB,WAAW,EAAE,CAAA;YACf,CAAC;QACH,CAAC,CAAC,CAAA;QAEF,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QAExB,OAAO,GAAG,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAA;IACpC,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAA;IAEjB,OAAO,6BAAK,GAAG,EAAE,GAAG,GAAI,CAAA;AAC1B,CAAC,CAAA"}
|
|
@@ -1,35 +1,36 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
2
|
import { tabbable } from '../../libs/tabbable';
|
|
3
3
|
export const FocusTrap = ({ firstFocusTarget, children }) => {
|
|
4
4
|
const ref = useRef(null);
|
|
5
5
|
const dummyFocusRef = useRef(null);
|
|
6
|
-
const handleKeyDown = useCallback((e) => {
|
|
7
|
-
if (e.key !== 'Tab' || ref.current === null) {
|
|
8
|
-
return;
|
|
9
|
-
}
|
|
10
|
-
const tabbables = tabbable(ref.current).filter((elm) => elm.tabIndex >= 0);
|
|
11
|
-
if (tabbables.length === 0) {
|
|
12
|
-
return;
|
|
13
|
-
}
|
|
14
|
-
const firstTabbable = tabbables[0];
|
|
15
|
-
const lastTabbable = tabbables[tabbables.length - 1];
|
|
16
|
-
const currentFocused = Array.from(tabbables).find((elm) => elm === e.target);
|
|
17
|
-
if (e.shiftKey &&
|
|
18
|
-
(currentFocused === firstTabbable || document.activeElement === dummyFocusRef.current)) {
|
|
19
|
-
lastTabbable.focus();
|
|
20
|
-
e.preventDefault();
|
|
21
|
-
}
|
|
22
|
-
else if (!e.shiftKey && currentFocused === lastTabbable) {
|
|
23
|
-
firstTabbable.focus();
|
|
24
|
-
e.preventDefault();
|
|
25
|
-
}
|
|
26
|
-
}, []);
|
|
27
6
|
useEffect(() => {
|
|
7
|
+
const handleKeyDown = (e) => {
|
|
8
|
+
if (e.key !== 'Tab' || ref.current === null) {
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
const tabbables = tabbable(ref.current).filter((elm) => elm.tabIndex >= 0);
|
|
12
|
+
if (tabbables.length === 0) {
|
|
13
|
+
return;
|
|
14
|
+
}
|
|
15
|
+
const firstTabbable = tabbables[0];
|
|
16
|
+
const lastTabbable = tabbables[tabbables.length - 1];
|
|
17
|
+
const currentFocused = tabbables.find((elm) => elm === e.target);
|
|
18
|
+
if (e.shiftKey) {
|
|
19
|
+
if (currentFocused === firstTabbable || document.activeElement === dummyFocusRef.current) {
|
|
20
|
+
e.preventDefault();
|
|
21
|
+
lastTabbable.focus();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
else if (currentFocused === lastTabbable) {
|
|
25
|
+
e.preventDefault();
|
|
26
|
+
firstTabbable.focus();
|
|
27
|
+
}
|
|
28
|
+
};
|
|
28
29
|
window.addEventListener('keydown', handleKeyDown);
|
|
29
30
|
return () => {
|
|
30
31
|
window.removeEventListener('keydown', handleKeyDown);
|
|
31
32
|
};
|
|
32
|
-
}, [
|
|
33
|
+
}, []);
|
|
33
34
|
useEffect(() => {
|
|
34
35
|
const triggerElement = document.activeElement;
|
|
35
36
|
if (firstFocusTarget?.current) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FocusTrap.js","sourceRoot":"","sources":["../../../src/components/Dialog/FocusTrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAoC,
|
|
1
|
+
{"version":3,"file":"FocusTrap.js","sourceRoot":"","sources":["../../../src/components/Dialog/FocusTrap.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAoC,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAElF,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAA;AAM9C,MAAM,CAAC,MAAM,SAAS,GAAc,CAAC,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,EAAE;IACrE,MAAM,GAAG,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAA;IAC/C,MAAM,aAAa,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,aAAa,GAAG,CAAC,CAAgB,EAAE,EAAE;YACzC,IAAI,CAAC,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBAC5C,OAAM;YACR,CAAC;YAED,MAAM,SAAS,GAAG,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAA;YAE1E,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC3B,OAAM;YACR,CAAC;YAED,MAAM,aAAa,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;YAClC,MAAM,YAAY,GAAG,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;YACpD,MAAM,cAAc,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,KAAK,CAAC,CAAC,MAAM,CAAC,CAAA;YAEhE,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;gBACf,IAAI,cAAc,KAAK,aAAa,IAAI,QAAQ,CAAC,aAAa,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;oBACzF,CAAC,CAAC,cAAc,EAAE,CAAA;oBAClB,YAAY,CAAC,KAAK,EAAE,CAAA;gBACtB,CAAC;YACH,CAAC;iBAAM,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;gBAC3C,CAAC,CAAC,cAAc,EAAE,CAAA;gBAClB,aAAa,CAAC,KAAK,EAAE,CAAA;YACvB,CAAC;QACH,CAAC,CAAA;QAED,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QAEjD,OAAO,GAAG,EAAE;YACV,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;QACtD,CAAC,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAA;QAE7C,IAAI,gBAAgB,EAAE,OAAO,EAAE,CAAC;YAC9B,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,CAAA;QAClC,CAAC;aAAM,CAAC;YACN,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE,CAAA;QAChC,CAAC;QAED,OAAO,GAAG,EAAE;YACV,4BAA4B;YAC5B,IAAI,cAAc,YAAY,WAAW,EAAE,CAAC;gBAC1C,cAAc,CAAC,KAAK,EAAE,CAAA;YACxB,CAAC;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAA;IAEtB,OAAO,CACL,6BAAK,GAAG,EAAE,GAAG;QAEX,6BAAK,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC,GAAI;QACxC,QAAQ,CACL,CACP,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -3,20 +3,18 @@ import React, { useCallback, useId } from 'react';
|
|
|
3
3
|
import { DialogContentInner } from '../DialogContentInner';
|
|
4
4
|
import { useDialogPortal } from '../useDialogPortal';
|
|
5
5
|
import { FormDialogContentInner } from './FormDialogContentInner';
|
|
6
|
-
export const FormDialog = ({ children, title, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, onClickClose, onPressEscape = onClickClose, responseMessage, actionDisabled
|
|
6
|
+
export const FormDialog = ({ children, title, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, onClickClose, onPressEscape = onClickClose, responseMessage, actionDisabled, closeDisabled, subActionArea, className, portalParent, decorators, id, ...props }) => {
|
|
7
7
|
const { createPortal } = useDialogPortal(portalParent, id);
|
|
8
8
|
const titleId = useId();
|
|
9
9
|
const handleClickClose = useCallback(() => {
|
|
10
|
-
if (
|
|
11
|
-
|
|
10
|
+
if (props.isOpen) {
|
|
11
|
+
onClickClose();
|
|
12
12
|
}
|
|
13
|
-
onClickClose();
|
|
14
13
|
}, [onClickClose, props.isOpen]);
|
|
15
14
|
const handleSubmitAction = useCallback((close, e) => {
|
|
16
|
-
if (
|
|
17
|
-
|
|
15
|
+
if (props.isOpen) {
|
|
16
|
+
onSubmit(close, e);
|
|
18
17
|
}
|
|
19
|
-
onSubmit(close, e);
|
|
20
18
|
}, [onSubmit, props.isOpen]);
|
|
21
19
|
return createPortal(React.createElement(DialogContentInner, { ...props, ariaLabelledby: titleId, className: className, onPressEscape: onPressEscape },
|
|
22
20
|
React.createElement(FormDialogContentInner, { title: title, titleId: titleId, subtitle: subtitle, titleTag: titleTag, contentBgColor: contentBgColor, contentPadding: contentPadding, actionText: actionText, actionTheme: actionTheme, actionDisabled: actionDisabled, closeDisabled: closeDisabled, subActionArea: subActionArea, onClickClose: handleClickClose, onSubmit: handleSubmitAction, responseMessage: responseMessage, decorators: decorators }, children)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,0BAA0B,CAAA;AAK9F,MAAM,CAAC,MAAM,UAAU,GAAmC,CAAC,EACzD,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,GAAG,YAAY,EAC5B,eAAe,EACf,cAAc,
|
|
1
|
+
{"version":3,"file":"FormDialog.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialog.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE5E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAE,sBAAsB,EAA+B,MAAM,0BAA0B,CAAA;AAK9F,MAAM,CAAC,MAAM,UAAU,GAAmC,CAAC,EACzD,QAAQ,EACR,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,YAAY,EACZ,aAAa,GAAG,YAAY,EAC5B,eAAe,EACf,cAAc,EACd,aAAa,EACb,aAAa,EACb,SAAS,EACT,YAAY,EACZ,UAAU,EACV,EAAE,EACF,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,EAAE,EAAE,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IAEhC,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAiB,EAAE,CAA6B,EAAE,EAAE;QACnD,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;YACjB,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,EACD,CAAC,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC,CACzB,CAAA;IAED,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa;QAG5B,oBAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,QAAQ,EAClB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,aAAa,EAAE,aAAa,EAC5B,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,QAAQ,EAAE,kBAAkB,EAC5B,eAAe,EAAE,eAAe,EAChC,UAAU,EAAE,UAAU,IAErB,QAAQ,CACc,CACN,CACtB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -4,20 +4,18 @@ import { DialogContentInner } from '../DialogContentInner';
|
|
|
4
4
|
import { DialogContext } from '../DialogWrapper';
|
|
5
5
|
import { useDialogPortal } from '../useDialogPortal';
|
|
6
6
|
import { FormDialogContentInner } from './FormDialogContentInner';
|
|
7
|
-
export const FormDialogContent = ({ children, title, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, actionDisabled
|
|
7
|
+
export const FormDialogContent = ({ children, title, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, actionDisabled, portalParent, className = '', decorators, ...props }) => {
|
|
8
8
|
const { onClickClose, active } = useContext(DialogContext);
|
|
9
9
|
const { createPortal } = useDialogPortal(portalParent);
|
|
10
10
|
const handleClickClose = useCallback(() => {
|
|
11
|
-
if (
|
|
12
|
-
|
|
11
|
+
if (active) {
|
|
12
|
+
onClickClose();
|
|
13
13
|
}
|
|
14
|
-
onClickClose();
|
|
15
14
|
}, [active, onClickClose]);
|
|
16
15
|
const handleSubmitAction = useCallback((close, e) => {
|
|
17
|
-
if (
|
|
18
|
-
|
|
16
|
+
if (active) {
|
|
17
|
+
onSubmit(close, e);
|
|
19
18
|
}
|
|
20
|
-
onSubmit(close, e);
|
|
21
19
|
}, [active, onSubmit]);
|
|
22
20
|
const titleId = useId();
|
|
23
21
|
return createPortal(React.createElement(DialogContentInner, { ...props, onPressEscape: onClickClose, isOpen: active, ariaLabelledby: titleId, className: className },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAK5E,MAAM,CAAC,MAAM,iBAAiB,GAAmC,CAAC,EAChE,QAAQ,EACR,KAAK,EACL,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,
|
|
1
|
+
{"version":3,"file":"FormDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContent.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;AAEZ,OAAO,KAAK,EAAE,EAA6B,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAExF,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,sBAAsB,EAAE,MAAM,0BAA0B,CAAA;AAK5E,MAAM,CAAC,MAAM,iBAAiB,GAAmC,CAAC,EAChE,QAAQ,EACR,KAAK,EACL,cAAc,EACd,cAAc,EACd,UAAU,EACV,WAAW,EACX,QAAQ,EACR,cAAc,EACd,YAAY,EACZ,SAAS,GAAG,EAAE,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAE1B,MAAM,kBAAkB,GAAG,WAAW,CACpC,CAAC,KAAiB,EAAE,CAA6B,EAAE,EAAE;QACnD,IAAI,MAAM,EAAE,CAAC;YACX,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;QACpB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAA;IAED,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,aAAa,EAAE,YAAY,EAC3B,MAAM,EAAE,MAAM,EACd,cAAc,EAAE,OAAO,EACvB,SAAS,EAAE,SAAS;QAGpB,oBAAC,sBAAsB,IACrB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,EACtB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,kBAAkB,EAC5B,YAAY,EAAE,gBAAgB,EAC9B,cAAc,EAAE,cAAc,EAC9B,UAAU,EAAE,UAAU,IAErB,QAAQ,CACc,CACN,CACtB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useCallback, } from 'react';
|
|
1
|
+
import React, { useCallback, useMemo, } from 'react';
|
|
2
2
|
import { tv } from 'tailwind-variants';
|
|
3
3
|
import { Button } from '../../Button';
|
|
4
4
|
import { Cluster, Stack } from '../../Layout';
|
|
@@ -8,13 +8,14 @@ import { DialogBody } from '../DialogBody';
|
|
|
8
8
|
import { DialogHeader } from '../DialogHeader';
|
|
9
9
|
import { dialogContentInner } from '../dialogInnerStyle';
|
|
10
10
|
const CLOSE_BUTTON_LABEL = 'キャンセル';
|
|
11
|
+
const ACTION_AREA_CLUSTER_GAP = { row: 0.5, column: 1 };
|
|
11
12
|
const formDialogContentInner = tv({
|
|
12
13
|
extend: dialogContentInner,
|
|
13
14
|
slots: {
|
|
14
15
|
form: 'shr-contents',
|
|
15
16
|
},
|
|
16
17
|
});
|
|
17
|
-
export const FormDialogContentInner = ({ children, title, titleId, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme
|
|
18
|
+
export const FormDialogContentInner = ({ children, title, titleId, subtitle, titleTag, contentBgColor, contentPadding, actionText, actionTheme, onSubmit, onClickClose, responseMessage, actionDisabled, closeDisabled, subActionArea, decorators, }) => {
|
|
18
19
|
const handleSubmitAction = useCallback((e) => {
|
|
19
20
|
e.preventDefault();
|
|
20
21
|
// HINT: React Portals などで擬似的にformがネストしている場合など、stopPropagationを実行しないと
|
|
@@ -22,21 +23,57 @@ export const FormDialogContentInner = ({ children, title, titleId, subtitle, tit
|
|
|
22
23
|
e.stopPropagation();
|
|
23
24
|
onSubmit(onClickClose, e);
|
|
24
25
|
}, [onSubmit, onClickClose]);
|
|
25
|
-
const
|
|
26
|
-
|
|
26
|
+
const calculatedResponseStatus = useMemo(() => {
|
|
27
|
+
if (!responseMessage) {
|
|
28
|
+
return {
|
|
29
|
+
isProcessing: false,
|
|
30
|
+
visibleMessage: false,
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
if (responseMessage.status === 'processing') {
|
|
34
|
+
return {
|
|
35
|
+
isProcessing: true,
|
|
36
|
+
visibleMessage: false,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
isProcessing: false,
|
|
41
|
+
visibleMessage: true,
|
|
42
|
+
// HINT: statusがprocessingではない === success or errorであることが確定する
|
|
43
|
+
// success or error の場合、text属性も必ず存在する
|
|
44
|
+
status: responseMessage.status,
|
|
45
|
+
message: responseMessage.text,
|
|
46
|
+
};
|
|
47
|
+
}, [responseMessage]);
|
|
48
|
+
const styles = useMemo(() => {
|
|
49
|
+
const { form, wrapper, actionArea, buttonArea, message } = formDialogContentInner();
|
|
50
|
+
return {
|
|
51
|
+
form: form(),
|
|
52
|
+
wrapper: wrapper(),
|
|
53
|
+
actionArea: actionArea(),
|
|
54
|
+
buttonArea: buttonArea(),
|
|
55
|
+
message: message(),
|
|
56
|
+
};
|
|
57
|
+
}, []);
|
|
27
58
|
return (
|
|
28
|
-
// eslint-disable-next-line smarthr/
|
|
29
|
-
React.createElement(
|
|
59
|
+
// eslint-disable-next-line smarthr/a11y-prohibit-sectioning-content-in-form, smarthr/a11y-heading-in-sectioning-content
|
|
60
|
+
React.createElement(Section, { className: styles.wrapper },
|
|
30
61
|
React.createElement(DialogHeader, { title: title, subtitle: subtitle, titleTag: titleTag, titleId: titleId }),
|
|
31
|
-
React.createElement("form", { onSubmit: handleSubmitAction, className: form
|
|
62
|
+
React.createElement("form", { onSubmit: handleSubmitAction, className: styles.form },
|
|
32
63
|
React.createElement(DialogBody, { contentPadding: contentPadding, contentBgColor: contentBgColor }, children),
|
|
33
|
-
React.createElement(Stack, { gap: 0.5, className: actionArea
|
|
64
|
+
React.createElement(Stack, { gap: 0.5, className: styles.actionArea },
|
|
34
65
|
React.createElement(Cluster, { justify: "space-between" },
|
|
35
66
|
subActionArea,
|
|
36
|
-
React.createElement(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
(responseMessage?.status === 'success' || responseMessage?.status === 'error') && (React.createElement("div", { className: message() },
|
|
40
|
-
React.createElement(ResponseMessage, { type: responseMessage.status, role: "alert" }, responseMessage.text)))))));
|
|
67
|
+
React.createElement(ActionAreaCluster, { onClickClose: onClickClose, closeDisabled: closeDisabled, actionDisabled: actionDisabled, loading: calculatedResponseStatus.isProcessing, actionTheme: actionTheme, decorators: decorators, actionText: actionText, className: styles.buttonArea })),
|
|
68
|
+
calculatedResponseStatus.visibleMessage && (React.createElement("div", { className: styles.message },
|
|
69
|
+
React.createElement(ResponseMessage, { type: calculatedResponseStatus.status, role: "alert" }, calculatedResponseStatus.message)))))));
|
|
41
70
|
};
|
|
71
|
+
const ActionAreaCluster = React.memo(({ onClickClose, closeDisabled, actionDisabled, loading, actionTheme, decorators, actionText, className, }) => (React.createElement(Cluster, { gap: ACTION_AREA_CLUSTER_GAP, className: className },
|
|
72
|
+
React.createElement(CloseButton, { onClick: onClickClose, disabled: closeDisabled || loading, decorators: decorators }),
|
|
73
|
+
React.createElement(ActionButton, { variant: actionTheme, disabled: actionDisabled, loading: loading }, actionText))));
|
|
74
|
+
const ActionButton = React.memo(({ variant = 'primary', disabled, loading, children }) => (React.createElement(Button, { type: "submit", variant: variant, disabled: disabled, loading: loading, className: "smarthr-ui-Dialog-actionButton" }, children)));
|
|
75
|
+
const CloseButton = React.memo(({ onClick, disabled, decorators }) => {
|
|
76
|
+
const children = useMemo(() => decorators?.closeButtonLabel?.(CLOSE_BUTTON_LABEL) || CLOSE_BUTTON_LABEL, [decorators]);
|
|
77
|
+
return (React.createElement(Button, { onClick: onClick, disabled: disabled, className: "smarthr-ui-Dialog-closeButton" }, children));
|
|
78
|
+
});
|
|
42
79
|
//# sourceMappingURL=FormDialogContentInner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContentInner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAKZ,WAAW,
|
|
1
|
+
{"version":3,"file":"FormDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/FormDialog/FormDialogContentInner.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,10 +7,9 @@ export const MessageDialogContent = ({ title, description, portalParent, classNa
|
|
|
7
7
|
const { onClickClose, active } = useContext(DialogContext);
|
|
8
8
|
const { createPortal } = useDialogPortal(portalParent);
|
|
9
9
|
const handleClickClose = useCallback(() => {
|
|
10
|
-
if (
|
|
11
|
-
|
|
10
|
+
if (active) {
|
|
11
|
+
onClickClose();
|
|
12
12
|
}
|
|
13
|
-
onClickClose();
|
|
14
13
|
}, [active, onClickClose]);
|
|
15
14
|
const titleId = useId();
|
|
16
15
|
return createPortal(React.createElement(DialogContentInner, { ...props, onPressEscape: onClickClose, isOpen: active, className: className, ariaLabelledby: titleId },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkB,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAKlF,MAAM,CAAC,MAAM,oBAAoB,GAAmC,CAAC,EACnE,KAAK,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,
|
|
1
|
+
{"version":3,"file":"MessageDialogContent.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAkB,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,OAAO,CAAA;AAE7E,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAEhD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAEpD,OAAO,EAAa,yBAAyB,EAAE,MAAM,6BAA6B,CAAA;AAKlF,MAAM,CAAC,MAAM,oBAAoB,GAAmC,CAAC,EACnE,KAAK,EACL,WAAW,EACX,YAAY,EACZ,SAAS,EACT,cAAc,EACd,cAAc,EACd,UAAU,EACV,GAAG,KAAK,EACT,EAAE,EAAE;IACH,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,aAAa,CAAC,CAAA;IAC1D,MAAM,EAAE,YAAY,EAAE,GAAG,eAAe,CAAC,YAAY,CAAC,CAAA;IAEtD,MAAM,gBAAgB,GAAG,WAAW,CAAC,GAAG,EAAE;QACxC,IAAI,MAAM,EAAE,CAAC;YACX,YAAY,EAAE,CAAA;QAChB,CAAC;IACH,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAA;IAC1B,MAAM,OAAO,GAAG,KAAK,EAAE,CAAA;IAEvB,OAAO,YAAY,CACjB,oBAAC,kBAAkB,OACb,KAAK,EACT,aAAa,EAAE,YAAY,EAC3B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,cAAc,EAAE,OAAO;QAEvB,oBAAC,yBAAyB,IACxB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,OAAO,EAChB,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,cAAc,EAAE,cAAc,EAC9B,YAAY,EAAE,gBAAgB,EAC9B,UAAU,EAAE,UAAU,GACtB,CACiB,CACtB,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -1,18 +1,29 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { useMemo } from 'react';
|
|
2
2
|
import { Button } from '../../Button';
|
|
3
|
-
import { Cluster
|
|
3
|
+
import { Cluster } from '../../Layout';
|
|
4
|
+
import { Section } from '../../SectioningContent';
|
|
4
5
|
import { DialogBody } from '../DialogBody';
|
|
5
6
|
import { DialogHeader } from '../DialogHeader';
|
|
6
7
|
import { dialogContentInner } from '../dialogInnerStyle';
|
|
7
8
|
const CLOSE_BUTTON_LABEL = '閉じる';
|
|
8
9
|
export const MessageDialogContentInner = ({ title, subtitle, titleTag, titleId, contentBgColor, contentPadding, description, onClickClose, decorators, }) => {
|
|
9
|
-
const
|
|
10
|
+
const styles = useMemo(() => {
|
|
11
|
+
const { wrapper, actionArea } = dialogContentInner();
|
|
12
|
+
return {
|
|
13
|
+
wrapper: wrapper(),
|
|
14
|
+
actionArea: actionArea(),
|
|
15
|
+
};
|
|
16
|
+
}, []);
|
|
10
17
|
return (
|
|
11
|
-
// eslint-disable-next-line smarthr/
|
|
12
|
-
React.createElement(
|
|
18
|
+
// eslint-disable-next-line smarthr/a11y-heading-in-sectioning-content
|
|
19
|
+
React.createElement(Section, { className: styles.wrapper },
|
|
13
20
|
React.createElement(DialogHeader, { title: title, subtitle: subtitle, titleTag: titleTag, titleId: titleId }),
|
|
14
21
|
React.createElement(DialogBody, { contentPadding: contentPadding, contentBgColor: contentBgColor }, description),
|
|
15
|
-
React.createElement(
|
|
16
|
-
React.createElement(Button, { onClick: onClickClose, className: "smarthr-ui-Dialog-closeButton" }, decorators?.closeButtonLabel?.(CLOSE_BUTTON_LABEL) || CLOSE_BUTTON_LABEL))));
|
|
22
|
+
React.createElement(FooterCluster, { onClickClose: onClickClose, decorators: decorators, className: styles.actionArea })));
|
|
17
23
|
};
|
|
24
|
+
const FooterCluster = React.memo(({ onClickClose, decorators, className }) => {
|
|
25
|
+
const children = useMemo(() => decorators?.closeButtonLabel?.(CLOSE_BUTTON_LABEL) || CLOSE_BUTTON_LABEL, [decorators]);
|
|
26
|
+
return (React.createElement(Cluster, { as: "footer", justify: "flex-end", className: className },
|
|
27
|
+
React.createElement(Button, { onClick: onClickClose, className: "smarthr-ui-Dialog-closeButton" }, children)));
|
|
28
|
+
});
|
|
18
29
|
//# sourceMappingURL=MessageDialogContentInner.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContentInner.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"MessageDialogContentInner.js","sourceRoot":"","sources":["../../../../src/components/Dialog/MessageDialog/MessageDialogContentInner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAW,OAAO,EAAE,MAAM,OAAO,CAAA;AAE/C,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAA;AACjD,OAAO,EAAE,UAAU,EAA4B,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,YAAY,EAA8B,MAAM,iBAAiB,CAAA;AAC1E,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAgBxD,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEhC,MAAM,CAAC,MAAM,yBAAyB,GAAuC,CAAC,EAC5E,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,OAAO,EACP,cAAc,EACd,cAAc,EACd,WAAW,EACX,YAAY,EACZ,UAAU,GACX,EAAE,EAAE;IACH,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,EAAE;QAC1B,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,kBAAkB,EAAE,CAAA;QAEpD,OAAO;YACL,OAAO,EAAE,OAAO,EAAE;YAClB,UAAU,EAAE,UAAU,EAAE;SACzB,CAAA;IACH,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO;IACL,sEAAsE;IACtE,oBAAC,OAAO,IAAC,SAAS,EAAE,MAAM,CAAC,OAAO;QAChC,oBAAC,YAAY,IAAC,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,GAAI;QACxF,oBAAC,UAAU,IAAC,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,IACvE,WAAW,CACD;QACb,oBAAC,aAAa,IACZ,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,MAAM,CAAC,UAAU,GAC5B,CACM,CACX,CAAA;AACH,CAAC,CAAA;AAED,MAAM,aAAa,GAAG,KAAK,CAAC,IAAI,CAE9B,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE;IAC5C,MAAM,QAAQ,GAAG,OAAO,CACtB,GAAG,EAAE,CAAC,UAAU,EAAE,gBAAgB,EAAE,CAAC,kBAAkB,CAAC,IAAI,kBAAkB,EAC9E,CAAC,UAAU,CAAC,CACb,CAAA;IAED,OAAO,CACL,oBAAC,OAAO,IAAC,EAAE,EAAC,QAAQ,EAAC,OAAO,EAAC,UAAU,EAAC,SAAS,EAAE,SAAS;QAC1D,oBAAC,MAAM,IAAC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAC,+BAA+B,IACrE,QAAQ,CACF,CACD,CACX,CAAA;AACH,CAAC,CAAC,CAAA"}
|