react-asc 21.3.1 → 23.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/CssTransition/CssTransition.d.ts +8 -0
- package/components/CssTransition/index.d.ts +1 -0
- package/components/ExpansionPanel/ExpansionPanel.d.ts +1 -0
- package/components/FloatingActionButton/FloatingActionButton.d.ts +1 -0
- package/components/index.d.ts +1 -0
- package/hooks/index.d.ts +4 -3
- package/hooks/useMobileDetect.d.ts +3 -0
- package/index.es.js +125 -44
- package/index.js +125 -42
- package/package.json +1 -1
- package/react-asc.scss +5 -0
- package/readme.md +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './CssTransition';
|
|
@@ -3,6 +3,7 @@ export interface IExpansionPanelProps {
|
|
|
3
3
|
header: ReactNode;
|
|
4
4
|
children: ReactNode;
|
|
5
5
|
isExpanded?: boolean;
|
|
6
|
+
shadow?: boolean;
|
|
6
7
|
onChange?: (event: React.MouseEvent, isExpanded: boolean) => void;
|
|
7
8
|
}
|
|
8
9
|
export declare const ExpansionPanel: (props: IExpansionPanelProps) => JSX.Element;
|
|
@@ -7,6 +7,7 @@ export interface IFloatingActionButtonProps extends React.DetailedHTMLProps<Reac
|
|
|
7
7
|
fixed?: boolean;
|
|
8
8
|
isActive?: boolean;
|
|
9
9
|
disabled?: boolean;
|
|
10
|
+
position?: 'leftTop' | 'leftBottom' | 'rightTop' | 'rightBottom';
|
|
10
11
|
onClick?: (e: React.MouseEvent) => void;
|
|
11
12
|
}
|
|
12
13
|
export declare const FloatingActionButton: (props: IFloatingActionButtonProps) => JSX.Element;
|
package/components/index.d.ts
CHANGED
package/hooks/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
export * from './useWindowSize';
|
|
2
|
-
export * from './useHover';
|
|
3
|
-
export * from './useConstructor';
|
|
4
1
|
export * from './useDebounce';
|
|
2
|
+
export * from './useConstructor';
|
|
5
3
|
export * from './useCssClasses';
|
|
4
|
+
export * from './useHover';
|
|
5
|
+
export * from './useMobileDetect';
|
|
6
|
+
export * from './useWindowSize';
|
package/index.es.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { useRef, useEffect, useState, Fragment, Component, createRef, cloneElement, createContext, useContext } from 'react';
|
|
2
2
|
import { createPortal, render, unmountComponentAtNode } from 'react-dom';
|
|
3
3
|
import { createPopper } from '@popperjs/core';
|
|
4
4
|
|
|
@@ -224,23 +224,26 @@ const CircleSolidIcon = () => (React.createElement("svg", { "aria-hidden": "true
|
|
|
224
224
|
const ChevronLeftSolidIcon = () => (React.createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512" },
|
|
225
225
|
React.createElement("path", { fill: "currentColor", d: "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z" })));
|
|
226
226
|
|
|
227
|
-
function
|
|
228
|
-
const
|
|
229
|
-
width: 0,
|
|
230
|
-
height: 0,
|
|
231
|
-
});
|
|
227
|
+
function useDebounce(callback, timeout, deps) {
|
|
228
|
+
const timeoutId = useRef();
|
|
232
229
|
useEffect(() => {
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
230
|
+
clearTimeout(timeoutId.current);
|
|
231
|
+
timeoutId.current = setTimeout(callback, timeout);
|
|
232
|
+
return () => clearTimeout(timeoutId.current);
|
|
233
|
+
}, deps);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
const useConstructor = (callBack) => {
|
|
237
|
+
const [hasBeenCalled, setHasBeenCalled] = useState(false);
|
|
238
|
+
if (hasBeenCalled)
|
|
239
|
+
return;
|
|
240
|
+
callBack();
|
|
241
|
+
setHasBeenCalled(true);
|
|
242
|
+
};
|
|
243
|
+
|
|
244
|
+
function useCssClasses(cssClasses) {
|
|
245
|
+
const cssClassName = (cssClasses === null || cssClasses === void 0 ? void 0 : cssClasses.filter(css => css).join(' ')) || '';
|
|
246
|
+
return [cssClassName];
|
|
244
247
|
}
|
|
245
248
|
|
|
246
249
|
function useHover() {
|
|
@@ -265,26 +268,37 @@ function useHover() {
|
|
|
265
268
|
return [ref, value];
|
|
266
269
|
}
|
|
267
270
|
|
|
268
|
-
|
|
269
|
-
const [
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
setHasBeenCalled(true);
|
|
274
|
-
};
|
|
275
|
-
|
|
276
|
-
function useDebounce(callback, timeout, deps) {
|
|
277
|
-
const timeoutId = useRef();
|
|
271
|
+
function useWindowSize() {
|
|
272
|
+
const [windowSize, setWindowSize] = useState({
|
|
273
|
+
width: 0,
|
|
274
|
+
height: 0,
|
|
275
|
+
});
|
|
278
276
|
useEffect(() => {
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
277
|
+
function handleResize() {
|
|
278
|
+
setWindowSize({
|
|
279
|
+
width: window.innerWidth,
|
|
280
|
+
height: window.innerHeight,
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
window.addEventListener("resize", handleResize);
|
|
284
|
+
handleResize();
|
|
285
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
286
|
+
}, []);
|
|
287
|
+
return windowSize;
|
|
283
288
|
}
|
|
284
289
|
|
|
285
|
-
function
|
|
286
|
-
const
|
|
287
|
-
|
|
290
|
+
function useMobileDetect() {
|
|
291
|
+
const [isMobile, setIsMobile] = useState(false);
|
|
292
|
+
const windowSize = useWindowSize();
|
|
293
|
+
const checkIsMobile = (height, width) => {
|
|
294
|
+
if (height > 0 && width > 0) {
|
|
295
|
+
setIsMobile(!(width >= 1024));
|
|
296
|
+
}
|
|
297
|
+
};
|
|
298
|
+
useEffect(() => {
|
|
299
|
+
windowSize && checkIsMobile(windowSize.height, windowSize.width);
|
|
300
|
+
}, [windowSize]);
|
|
301
|
+
return { isMobile };
|
|
288
302
|
}
|
|
289
303
|
|
|
290
304
|
var css_248z$X = ".Backdrop-module_backdrop__IRMoL {\n height: 100%;\n width: 100%;\n position: absolute;\n opacity: 0.5;\n z-index: 1040;\n top: 0;\n left: 0;\n background-color: #000; }\n .Backdrop-module_backdrop__IRMoL.Backdrop-module_isTransparent__F5nA5 {\n opacity: 0; }\n";
|
|
@@ -557,7 +571,7 @@ const ButtonGroup = (props) => {
|
|
|
557
571
|
return (React.createElement("div", Object.assign({ className: getCssClasses(), role: "group" }, rest), children));
|
|
558
572
|
};
|
|
559
573
|
|
|
560
|
-
var css_248z$M = ".Breadcrumb-module_breadcrumb__-pvAn {\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n
|
|
574
|
+
var css_248z$M = ".Breadcrumb-module_breadcrumb__-pvAn {\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n margin: 0; }\n";
|
|
561
575
|
var styles$M = {"breadcrumb":"Breadcrumb-module_breadcrumb__-pvAn"};
|
|
562
576
|
styleInject(css_248z$M);
|
|
563
577
|
|
|
@@ -776,6 +790,71 @@ const Chip = (props) => {
|
|
|
776
790
|
isDeletable && (React.createElement("div", { className: styles$C.deleteIcon, onClick: e => handleClickOnDelete(e) }, deleteIcon))));
|
|
777
791
|
};
|
|
778
792
|
|
|
793
|
+
const CssTransition = (props) => {
|
|
794
|
+
const { className, children, show } = props;
|
|
795
|
+
const [isShow, setIsShow] = useState(undefined);
|
|
796
|
+
const [cssState, setCssState] = useState({
|
|
797
|
+
hidden: true
|
|
798
|
+
});
|
|
799
|
+
const transitionConainter = useRef(null);
|
|
800
|
+
useEffect(() => {
|
|
801
|
+
if (show !== undefined) {
|
|
802
|
+
setIsShow(show);
|
|
803
|
+
}
|
|
804
|
+
}, [show]);
|
|
805
|
+
const nextFrame = () => {
|
|
806
|
+
return new Promise((resolve) => {
|
|
807
|
+
requestAnimationFrame(() => {
|
|
808
|
+
requestAnimationFrame(resolve);
|
|
809
|
+
});
|
|
810
|
+
});
|
|
811
|
+
};
|
|
812
|
+
const afterTransition = (element) => {
|
|
813
|
+
return new Promise((resolve) => {
|
|
814
|
+
if (element) {
|
|
815
|
+
const duration = Number(getComputedStyle(element).transitionDuration.replace("s", "")) * 1000;
|
|
816
|
+
setTimeout(() => { resolve(); }, duration);
|
|
817
|
+
}
|
|
818
|
+
else {
|
|
819
|
+
resolve();
|
|
820
|
+
}
|
|
821
|
+
});
|
|
822
|
+
};
|
|
823
|
+
const renderAnimation = async (show) => {
|
|
824
|
+
if (show === true) {
|
|
825
|
+
setCssState({ enter: true, enterStart: true });
|
|
826
|
+
await nextFrame();
|
|
827
|
+
setCssState({ enter: true, enterEnd: true });
|
|
828
|
+
await afterTransition(transitionConainter.current);
|
|
829
|
+
setCssState(undefined);
|
|
830
|
+
}
|
|
831
|
+
if (show === false) {
|
|
832
|
+
setCssState({ leave: true, leaveStart: true });
|
|
833
|
+
await nextFrame();
|
|
834
|
+
setCssState({ leave: true, leaveEnd: true });
|
|
835
|
+
await afterTransition(transitionConainter.current);
|
|
836
|
+
setCssState({ hidden: true });
|
|
837
|
+
}
|
|
838
|
+
};
|
|
839
|
+
useEffect(() => {
|
|
840
|
+
if (isShow !== undefined && (isShow === true || isShow === false)) {
|
|
841
|
+
renderAnimation(isShow);
|
|
842
|
+
}
|
|
843
|
+
}, [isShow]);
|
|
844
|
+
const getCssClasses = () => {
|
|
845
|
+
const cssClasses = [];
|
|
846
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.hidden) && cssClasses.push(`hidden`);
|
|
847
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.enter) && cssClasses.push(`${className}-enter`);
|
|
848
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.enterStart) && cssClasses.push(`${className}-enter-start`);
|
|
849
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.enterEnd) && cssClasses.push(`${className}-enter-end`);
|
|
850
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.leave) && cssClasses.push(`${className}-leave`);
|
|
851
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.leaveStart) && cssClasses.push(`${className}-leave-start`);
|
|
852
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.leaveEnd) && cssClasses.push(`${className}-leave-end`);
|
|
853
|
+
return cssClasses.filter((css) => css).join(" ");
|
|
854
|
+
};
|
|
855
|
+
return (React.createElement("div", { ref: transitionConainter, className: getCssClasses() }, children));
|
|
856
|
+
};
|
|
857
|
+
|
|
779
858
|
var css_248z$B = ".Column-module_column__fcTgl {\n flex: 1 0 0%; }\n\n@media (max-width: 575.98px) {\n .Column-module_column__fcTgl {\n flex: 1; } }\n";
|
|
780
859
|
var styles$B = {"column":"Column-module_column__fcTgl"};
|
|
781
860
|
styleInject(css_248z$B);
|
|
@@ -1581,12 +1660,12 @@ const ExpansionPanelHeader = (props) => {
|
|
|
1581
1660
|
React.createElement(Icon, null, isExpanded ? React.createElement(ChevronUpSolidIcon, null) : React.createElement(ChevronDownSolidIcon, null)))));
|
|
1582
1661
|
};
|
|
1583
1662
|
|
|
1584
|
-
var css_248z$n = ".ExpansionPanel-module_expansionPanel__m1yQq {\n background-color: var(--white);\n
|
|
1585
|
-
var styles$n = {"expansionPanel":"ExpansionPanel-module_expansionPanel__m1yQq","isExpanded":"ExpansionPanel-module_isExpanded__TS1ph"};
|
|
1663
|
+
var css_248z$n = ".ExpansionPanel-module_expansionPanel__m1yQq {\n background-color: var(--white);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_shadow__zIjJ6 {\n box-shadow: var(--shadow); }\n .ExpansionPanel-module_expansionPanel__m1yQq:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n .ExpansionPanel-module_expansionPanel__m1yQq:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_isExpanded__TS1ph:first-child {\n margin-top: 0; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_isExpanded__TS1ph:last-child {\n margin-bottom: 0; }\n";
|
|
1664
|
+
var styles$n = {"expansionPanel":"ExpansionPanel-module_expansionPanel__m1yQq","shadow":"ExpansionPanel-module_shadow__zIjJ6","isExpanded":"ExpansionPanel-module_isExpanded__TS1ph"};
|
|
1586
1665
|
styleInject(css_248z$n);
|
|
1587
1666
|
|
|
1588
1667
|
const ExpansionPanel = (props) => {
|
|
1589
|
-
const { header, children, isExpanded = false, onChange } = props;
|
|
1668
|
+
const { header, children, isExpanded = false, shadow, onChange } = props;
|
|
1590
1669
|
const [_isExpanded, setIsExpanded] = useState(false);
|
|
1591
1670
|
useEffect(() => {
|
|
1592
1671
|
setIsExpanded(isExpanded);
|
|
@@ -1597,6 +1676,7 @@ const ExpansionPanel = (props) => {
|
|
|
1597
1676
|
if (_isExpanded) {
|
|
1598
1677
|
cssClasses.push(styles$n.isExpanded);
|
|
1599
1678
|
}
|
|
1679
|
+
shadow && cssClasses.push(styles$n.shadow);
|
|
1600
1680
|
return cssClasses.filter(css => css).join(' ');
|
|
1601
1681
|
};
|
|
1602
1682
|
const handleClickHeader = (event) => {
|
|
@@ -1609,16 +1689,17 @@ const ExpansionPanel = (props) => {
|
|
|
1609
1689
|
React.createElement(ExpansionPanelContent, null, children)));
|
|
1610
1690
|
};
|
|
1611
1691
|
|
|
1612
|
-
var css_248z$m = ".FloatingActionButton-module_fab__Rw3kd {\n box-shadow: var(--shadow); }\n .FloatingActionButton-
|
|
1613
|
-
var styles$m = {"fab":"FloatingActionButton-module_fab__Rw3kd","fixed":"FloatingActionButton-module_fixed__XQOkG"};
|
|
1692
|
+
var css_248z$m = ".FloatingActionButton-module_fab__Rw3kd {\n box-shadow: var(--shadow); }\n\n.FloatingActionButton-module_fixed__XQOkG {\n position: fixed;\n z-index: 1000; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_leftTop__ZiHQN {\n top: 16px;\n left: 16px; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_leftBottom__210sl {\n bottom: 16px;\n left: 16px; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_rightTop__VUsvT {\n top: 64px;\n right: 16px; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_rightBottom__FaUFl {\n bottom: 16px;\n right: 16px; }\n";
|
|
1693
|
+
var styles$m = {"fab":"FloatingActionButton-module_fab__Rw3kd","fixed":"FloatingActionButton-module_fixed__XQOkG","leftTop":"FloatingActionButton-module_leftTop__ZiHQN","leftBottom":"FloatingActionButton-module_leftBottom__210sl","rightTop":"FloatingActionButton-module_rightTop__VUsvT","rightBottom":"FloatingActionButton-module_rightBottom__FaUFl"};
|
|
1614
1694
|
styleInject(css_248z$m);
|
|
1615
1695
|
|
|
1616
1696
|
const FloatingActionButton = (props) => {
|
|
1617
|
-
const { className, icon, color = COLOR.primary, fixed, size = SIZE.lg, isActive, disabled, onClick } = props;
|
|
1697
|
+
const { className, icon, color = COLOR.primary, fixed, position = 'rightBottom', size = SIZE.lg, isActive, disabled, onClick } = props;
|
|
1618
1698
|
const getCssClasses = () => {
|
|
1619
1699
|
const cssClasses = [];
|
|
1620
1700
|
cssClasses.push(styles$m.fab);
|
|
1621
|
-
fixed && cssClasses.push(styles$m
|
|
1701
|
+
fixed && cssClasses.push(styles$m.fixed);
|
|
1702
|
+
position && fixed && cssClasses.push(styles$m[position]);
|
|
1622
1703
|
className && cssClasses.push(className);
|
|
1623
1704
|
return cssClasses.filter(css => css).join(' ');
|
|
1624
1705
|
};
|
|
@@ -2220,7 +2301,7 @@ const Stepper = (props) => {
|
|
|
2220
2301
|
React.createElement(StepperActions, { className: "mt-3", isFirstStep: activeIndex === 0, isStepOptional: isStepOptional(activeIndex), isCompleted: isLastStep(), onBack: handleBack, onSkip: handleSkip, onNext: handleNext, onReset: handleReset }))));
|
|
2221
2302
|
};
|
|
2222
2303
|
|
|
2223
|
-
var css_248z$8 = ".Typography-module_typography__sw-td {\n
|
|
2304
|
+
var css_248z$8 = ".Typography-module_typography__sw-td {\n font-family: var(--fontFamily);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n\nh1 {\n font-size: calc(1.375rem + 1.5vw); }\n\nh2 {\n font-size: calc(1.325rem + 0.9vw); }\n\nh3 {\n font-size: calc(1.3rem + 0.6vw); }\n\nh4 {\n font-size: calc(1.275rem + 0.3vw); }\n\nh5 {\n font-size: 1.25rem; }\n\nh6 {\n font-size: 1rem; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 500 !important;\n margin-top: 0;\n margin-bottom: 0.5rem;\n line-height: 1.2; }\n";
|
|
2224
2305
|
var styles$8 = {"typography":"Typography-module_typography__sw-td"};
|
|
2225
2306
|
styleInject(css_248z$8);
|
|
2226
2307
|
|
|
@@ -2651,4 +2732,4 @@ const TreeItem = (props) => {
|
|
|
2651
2732
|
children && _isExpanded ? React.createElement("ul", null, children) : null));
|
|
2652
2733
|
};
|
|
2653
2734
|
|
|
2654
|
-
export { Alert, AppBar, AppBarTitle, AutoComplete, Backdrop, Badge, Breadcrumb, BreadcrumbItem, Button, ButtonGroup, COLOR, Card, CardBody, CardFooter, CardImage, CardSubtitle, CardText, CardTitle, CaretDownSolidIcon, CheckSolidIcon, CheckSquareRegularIcon, Checkbox, ChevronDownSolidIcon, ChevronLeftSolidIcon, ChevronRightSolidIcon, ChevronUpSolidIcon, Chip, CircleSolidIcon, Column, ConditionalWrapper, DATEMODE, DateSelect, DaySelect, Drawer, EmailValidator, ExpansionPanel, ExpansionPanelContent, ExpansionPanelHeader, FileInput, FloatingActionButton, Form, FormControl, FormError, FormGroup, FormHint, FormInput, FormLabel, GlobalModal, HomeSolidIcon, HourSelect, Icon, IconButton, IsEmptyValidator, IsEqualValidator, Link, List, ListItem, ListItemAction, ListItemAvatar, ListItemIcon, ListItemText, LoadingIndicator, LoadingIndicatorContainer, MODALBUTTONTYPE, MODALTYPE, Menu, MenuBody, MenuDivider, MenuItem, MenuToggle, MilliSecondSelect, MinuteSelect, Modal, ModalBody, ModalFooter, ModalHeader, MonthSelect, NumberSelect, POSITION, PlusSolidIcon, Row, SIZE, STATUS, SecondSelect, Select, Sidebar, Snackbar, SpeedDial, SpeedDialAction, SpeedDialIcon, SpinnerSolidIcon, SquareRegularIcon, Step, Stepper, StepperActions, TIMEMODE, Tab, TabPanel, Table, TableBody, TableCell, TableHead, TableRow, Tabs, Textarea, TimeSelect, TimesCircleSolidIcon, TimesSolidIcon, Tooltip, TreeItem, TreeView, Typography, VARIANT, YearSelect, loadingIndicatorService, modalService, snackbarService, useConstructor, useCssClasses, useDebounce, useHover, useWindowSize };
|
|
2735
|
+
export { Alert, AppBar, AppBarTitle, AutoComplete, Backdrop, Badge, Breadcrumb, BreadcrumbItem, Button, ButtonGroup, COLOR, Card, CardBody, CardFooter, CardImage, CardSubtitle, CardText, CardTitle, CaretDownSolidIcon, CheckSolidIcon, CheckSquareRegularIcon, Checkbox, ChevronDownSolidIcon, ChevronLeftSolidIcon, ChevronRightSolidIcon, ChevronUpSolidIcon, Chip, CircleSolidIcon, Column, ConditionalWrapper, CssTransition, DATEMODE, DateSelect, DaySelect, Drawer, EmailValidator, ExpansionPanel, ExpansionPanelContent, ExpansionPanelHeader, FileInput, FloatingActionButton, Form, FormControl, FormError, FormGroup, FormHint, FormInput, FormLabel, GlobalModal, HomeSolidIcon, HourSelect, Icon, IconButton, IsEmptyValidator, IsEqualValidator, Link, List, ListItem, ListItemAction, ListItemAvatar, ListItemIcon, ListItemText, LoadingIndicator, LoadingIndicatorContainer, MODALBUTTONTYPE, MODALTYPE, Menu, MenuBody, MenuDivider, MenuItem, MenuToggle, MilliSecondSelect, MinuteSelect, Modal, ModalBody, ModalFooter, ModalHeader, MonthSelect, NumberSelect, POSITION, PlusSolidIcon, Row, SIZE, STATUS, SecondSelect, Select, Sidebar, Snackbar, SpeedDial, SpeedDialAction, SpeedDialIcon, SpinnerSolidIcon, SquareRegularIcon, Step, Stepper, StepperActions, TIMEMODE, Tab, TabPanel, Table, TableBody, TableCell, TableHead, TableRow, Tabs, Textarea, TimeSelect, TimesCircleSolidIcon, TimesSolidIcon, Tooltip, TreeItem, TreeView, Typography, VARIANT, YearSelect, loadingIndicatorService, modalService, snackbarService, useConstructor, useCssClasses, useDebounce, useHover, useMobileDetect, useWindowSize };
|
package/index.js
CHANGED
|
@@ -232,23 +232,26 @@ const CircleSolidIcon = () => (React__default["default"].createElement("svg", {
|
|
|
232
232
|
const ChevronLeftSolidIcon = () => (React__default["default"].createElement("svg", { "aria-hidden": "true", focusable: "false", role: "img", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 320 512" },
|
|
233
233
|
React__default["default"].createElement("path", { fill: "currentColor", d: "M34.52 239.03L228.87 44.69c9.37-9.37 24.57-9.37 33.94 0l22.67 22.67c9.36 9.36 9.37 24.52.04 33.9L131.49 256l154.02 154.75c9.34 9.38 9.32 24.54-.04 33.9l-22.67 22.67c-9.37 9.37-24.57 9.37-33.94 0L34.52 272.97c-9.37-9.37-9.37-24.57 0-33.94z" })));
|
|
234
234
|
|
|
235
|
-
function
|
|
236
|
-
const
|
|
237
|
-
width: 0,
|
|
238
|
-
height: 0,
|
|
239
|
-
});
|
|
235
|
+
function useDebounce(callback, timeout, deps) {
|
|
236
|
+
const timeoutId = React.useRef();
|
|
240
237
|
React.useEffect(() => {
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
238
|
+
clearTimeout(timeoutId.current);
|
|
239
|
+
timeoutId.current = setTimeout(callback, timeout);
|
|
240
|
+
return () => clearTimeout(timeoutId.current);
|
|
241
|
+
}, deps);
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
const useConstructor = (callBack) => {
|
|
245
|
+
const [hasBeenCalled, setHasBeenCalled] = React.useState(false);
|
|
246
|
+
if (hasBeenCalled)
|
|
247
|
+
return;
|
|
248
|
+
callBack();
|
|
249
|
+
setHasBeenCalled(true);
|
|
250
|
+
};
|
|
251
|
+
|
|
252
|
+
function useCssClasses(cssClasses) {
|
|
253
|
+
const cssClassName = (cssClasses === null || cssClasses === void 0 ? void 0 : cssClasses.filter(css => css).join(' ')) || '';
|
|
254
|
+
return [cssClassName];
|
|
252
255
|
}
|
|
253
256
|
|
|
254
257
|
function useHover() {
|
|
@@ -273,26 +276,37 @@ function useHover() {
|
|
|
273
276
|
return [ref, value];
|
|
274
277
|
}
|
|
275
278
|
|
|
276
|
-
|
|
277
|
-
const [
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
setHasBeenCalled(true);
|
|
282
|
-
};
|
|
283
|
-
|
|
284
|
-
function useDebounce(callback, timeout, deps) {
|
|
285
|
-
const timeoutId = React.useRef();
|
|
279
|
+
function useWindowSize() {
|
|
280
|
+
const [windowSize, setWindowSize] = React.useState({
|
|
281
|
+
width: 0,
|
|
282
|
+
height: 0,
|
|
283
|
+
});
|
|
286
284
|
React.useEffect(() => {
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
285
|
+
function handleResize() {
|
|
286
|
+
setWindowSize({
|
|
287
|
+
width: window.innerWidth,
|
|
288
|
+
height: window.innerHeight,
|
|
289
|
+
});
|
|
290
|
+
}
|
|
291
|
+
window.addEventListener("resize", handleResize);
|
|
292
|
+
handleResize();
|
|
293
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
294
|
+
}, []);
|
|
295
|
+
return windowSize;
|
|
291
296
|
}
|
|
292
297
|
|
|
293
|
-
function
|
|
294
|
-
const
|
|
295
|
-
|
|
298
|
+
function useMobileDetect() {
|
|
299
|
+
const [isMobile, setIsMobile] = React.useState(false);
|
|
300
|
+
const windowSize = useWindowSize();
|
|
301
|
+
const checkIsMobile = (height, width) => {
|
|
302
|
+
if (height > 0 && width > 0) {
|
|
303
|
+
setIsMobile(!(width >= 1024));
|
|
304
|
+
}
|
|
305
|
+
};
|
|
306
|
+
React.useEffect(() => {
|
|
307
|
+
windowSize && checkIsMobile(windowSize.height, windowSize.width);
|
|
308
|
+
}, [windowSize]);
|
|
309
|
+
return { isMobile };
|
|
296
310
|
}
|
|
297
311
|
|
|
298
312
|
var css_248z$X = ".Backdrop-module_backdrop__IRMoL {\n height: 100%;\n width: 100%;\n position: absolute;\n opacity: 0.5;\n z-index: 1040;\n top: 0;\n left: 0;\n background-color: #000; }\n .Backdrop-module_backdrop__IRMoL.Backdrop-module_isTransparent__F5nA5 {\n opacity: 0; }\n";
|
|
@@ -565,7 +579,7 @@ const ButtonGroup = (props) => {
|
|
|
565
579
|
return (React__default["default"].createElement("div", Object.assign({ className: getCssClasses(), role: "group" }, rest), children));
|
|
566
580
|
};
|
|
567
581
|
|
|
568
|
-
var css_248z$M = ".Breadcrumb-module_breadcrumb__-pvAn {\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n
|
|
582
|
+
var css_248z$M = ".Breadcrumb-module_breadcrumb__-pvAn {\n display: flex;\n flex-wrap: wrap;\n padding: 0;\n list-style: none;\n margin: 0; }\n";
|
|
569
583
|
var styles$M = {"breadcrumb":"Breadcrumb-module_breadcrumb__-pvAn"};
|
|
570
584
|
styleInject(css_248z$M);
|
|
571
585
|
|
|
@@ -784,6 +798,71 @@ const Chip = (props) => {
|
|
|
784
798
|
isDeletable && (React__default["default"].createElement("div", { className: styles$C.deleteIcon, onClick: e => handleClickOnDelete(e) }, deleteIcon))));
|
|
785
799
|
};
|
|
786
800
|
|
|
801
|
+
const CssTransition = (props) => {
|
|
802
|
+
const { className, children, show } = props;
|
|
803
|
+
const [isShow, setIsShow] = React.useState(undefined);
|
|
804
|
+
const [cssState, setCssState] = React.useState({
|
|
805
|
+
hidden: true
|
|
806
|
+
});
|
|
807
|
+
const transitionConainter = React.useRef(null);
|
|
808
|
+
React.useEffect(() => {
|
|
809
|
+
if (show !== undefined) {
|
|
810
|
+
setIsShow(show);
|
|
811
|
+
}
|
|
812
|
+
}, [show]);
|
|
813
|
+
const nextFrame = () => {
|
|
814
|
+
return new Promise((resolve) => {
|
|
815
|
+
requestAnimationFrame(() => {
|
|
816
|
+
requestAnimationFrame(resolve);
|
|
817
|
+
});
|
|
818
|
+
});
|
|
819
|
+
};
|
|
820
|
+
const afterTransition = (element) => {
|
|
821
|
+
return new Promise((resolve) => {
|
|
822
|
+
if (element) {
|
|
823
|
+
const duration = Number(getComputedStyle(element).transitionDuration.replace("s", "")) * 1000;
|
|
824
|
+
setTimeout(() => { resolve(); }, duration);
|
|
825
|
+
}
|
|
826
|
+
else {
|
|
827
|
+
resolve();
|
|
828
|
+
}
|
|
829
|
+
});
|
|
830
|
+
};
|
|
831
|
+
const renderAnimation = async (show) => {
|
|
832
|
+
if (show === true) {
|
|
833
|
+
setCssState({ enter: true, enterStart: true });
|
|
834
|
+
await nextFrame();
|
|
835
|
+
setCssState({ enter: true, enterEnd: true });
|
|
836
|
+
await afterTransition(transitionConainter.current);
|
|
837
|
+
setCssState(undefined);
|
|
838
|
+
}
|
|
839
|
+
if (show === false) {
|
|
840
|
+
setCssState({ leave: true, leaveStart: true });
|
|
841
|
+
await nextFrame();
|
|
842
|
+
setCssState({ leave: true, leaveEnd: true });
|
|
843
|
+
await afterTransition(transitionConainter.current);
|
|
844
|
+
setCssState({ hidden: true });
|
|
845
|
+
}
|
|
846
|
+
};
|
|
847
|
+
React.useEffect(() => {
|
|
848
|
+
if (isShow !== undefined && (isShow === true || isShow === false)) {
|
|
849
|
+
renderAnimation(isShow);
|
|
850
|
+
}
|
|
851
|
+
}, [isShow]);
|
|
852
|
+
const getCssClasses = () => {
|
|
853
|
+
const cssClasses = [];
|
|
854
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.hidden) && cssClasses.push(`hidden`);
|
|
855
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.enter) && cssClasses.push(`${className}-enter`);
|
|
856
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.enterStart) && cssClasses.push(`${className}-enter-start`);
|
|
857
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.enterEnd) && cssClasses.push(`${className}-enter-end`);
|
|
858
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.leave) && cssClasses.push(`${className}-leave`);
|
|
859
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.leaveStart) && cssClasses.push(`${className}-leave-start`);
|
|
860
|
+
(cssState === null || cssState === void 0 ? void 0 : cssState.leaveEnd) && cssClasses.push(`${className}-leave-end`);
|
|
861
|
+
return cssClasses.filter((css) => css).join(" ");
|
|
862
|
+
};
|
|
863
|
+
return (React__default["default"].createElement("div", { ref: transitionConainter, className: getCssClasses() }, children));
|
|
864
|
+
};
|
|
865
|
+
|
|
787
866
|
var css_248z$B = ".Column-module_column__fcTgl {\n flex: 1 0 0%; }\n\n@media (max-width: 575.98px) {\n .Column-module_column__fcTgl {\n flex: 1; } }\n";
|
|
788
867
|
var styles$B = {"column":"Column-module_column__fcTgl"};
|
|
789
868
|
styleInject(css_248z$B);
|
|
@@ -1589,12 +1668,12 @@ const ExpansionPanelHeader = (props) => {
|
|
|
1589
1668
|
React__default["default"].createElement(Icon, null, isExpanded ? React__default["default"].createElement(ChevronUpSolidIcon, null) : React__default["default"].createElement(ChevronDownSolidIcon, null)))));
|
|
1590
1669
|
};
|
|
1591
1670
|
|
|
1592
|
-
var css_248z$n = ".ExpansionPanel-module_expansionPanel__m1yQq {\n background-color: var(--white);\n
|
|
1593
|
-
var styles$n = {"expansionPanel":"ExpansionPanel-module_expansionPanel__m1yQq","isExpanded":"ExpansionPanel-module_isExpanded__TS1ph"};
|
|
1671
|
+
var css_248z$n = ".ExpansionPanel-module_expansionPanel__m1yQq {\n background-color: var(--white);\n transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_shadow__zIjJ6 {\n box-shadow: var(--shadow); }\n .ExpansionPanel-module_expansionPanel__m1yQq:first-child {\n border-top-left-radius: 4px;\n border-top-right-radius: 4px; }\n .ExpansionPanel-module_expansionPanel__m1yQq:last-child {\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_isExpanded__TS1ph:first-child {\n margin-top: 0; }\n .ExpansionPanel-module_expansionPanel__m1yQq.ExpansionPanel-module_isExpanded__TS1ph:last-child {\n margin-bottom: 0; }\n";
|
|
1672
|
+
var styles$n = {"expansionPanel":"ExpansionPanel-module_expansionPanel__m1yQq","shadow":"ExpansionPanel-module_shadow__zIjJ6","isExpanded":"ExpansionPanel-module_isExpanded__TS1ph"};
|
|
1594
1673
|
styleInject(css_248z$n);
|
|
1595
1674
|
|
|
1596
1675
|
const ExpansionPanel = (props) => {
|
|
1597
|
-
const { header, children, isExpanded = false, onChange } = props;
|
|
1676
|
+
const { header, children, isExpanded = false, shadow, onChange } = props;
|
|
1598
1677
|
const [_isExpanded, setIsExpanded] = React.useState(false);
|
|
1599
1678
|
React.useEffect(() => {
|
|
1600
1679
|
setIsExpanded(isExpanded);
|
|
@@ -1605,6 +1684,7 @@ const ExpansionPanel = (props) => {
|
|
|
1605
1684
|
if (_isExpanded) {
|
|
1606
1685
|
cssClasses.push(styles$n.isExpanded);
|
|
1607
1686
|
}
|
|
1687
|
+
shadow && cssClasses.push(styles$n.shadow);
|
|
1608
1688
|
return cssClasses.filter(css => css).join(' ');
|
|
1609
1689
|
};
|
|
1610
1690
|
const handleClickHeader = (event) => {
|
|
@@ -1617,16 +1697,17 @@ const ExpansionPanel = (props) => {
|
|
|
1617
1697
|
React__default["default"].createElement(ExpansionPanelContent, null, children)));
|
|
1618
1698
|
};
|
|
1619
1699
|
|
|
1620
|
-
var css_248z$m = ".FloatingActionButton-module_fab__Rw3kd {\n box-shadow: var(--shadow); }\n .FloatingActionButton-
|
|
1621
|
-
var styles$m = {"fab":"FloatingActionButton-module_fab__Rw3kd","fixed":"FloatingActionButton-module_fixed__XQOkG"};
|
|
1700
|
+
var css_248z$m = ".FloatingActionButton-module_fab__Rw3kd {\n box-shadow: var(--shadow); }\n\n.FloatingActionButton-module_fixed__XQOkG {\n position: fixed;\n z-index: 1000; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_leftTop__ZiHQN {\n top: 16px;\n left: 16px; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_leftBottom__210sl {\n bottom: 16px;\n left: 16px; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_rightTop__VUsvT {\n top: 64px;\n right: 16px; }\n .FloatingActionButton-module_fixed__XQOkG.FloatingActionButton-module_rightBottom__FaUFl {\n bottom: 16px;\n right: 16px; }\n";
|
|
1701
|
+
var styles$m = {"fab":"FloatingActionButton-module_fab__Rw3kd","fixed":"FloatingActionButton-module_fixed__XQOkG","leftTop":"FloatingActionButton-module_leftTop__ZiHQN","leftBottom":"FloatingActionButton-module_leftBottom__210sl","rightTop":"FloatingActionButton-module_rightTop__VUsvT","rightBottom":"FloatingActionButton-module_rightBottom__FaUFl"};
|
|
1622
1702
|
styleInject(css_248z$m);
|
|
1623
1703
|
|
|
1624
1704
|
const FloatingActionButton = (props) => {
|
|
1625
|
-
const { className, icon, color = exports.COLOR.primary, fixed, size = exports.SIZE.lg, isActive, disabled, onClick } = props;
|
|
1705
|
+
const { className, icon, color = exports.COLOR.primary, fixed, position = 'rightBottom', size = exports.SIZE.lg, isActive, disabled, onClick } = props;
|
|
1626
1706
|
const getCssClasses = () => {
|
|
1627
1707
|
const cssClasses = [];
|
|
1628
1708
|
cssClasses.push(styles$m.fab);
|
|
1629
|
-
fixed && cssClasses.push(styles$m
|
|
1709
|
+
fixed && cssClasses.push(styles$m.fixed);
|
|
1710
|
+
position && fixed && cssClasses.push(styles$m[position]);
|
|
1630
1711
|
className && cssClasses.push(className);
|
|
1631
1712
|
return cssClasses.filter(css => css).join(' ');
|
|
1632
1713
|
};
|
|
@@ -2228,7 +2309,7 @@ const Stepper = (props) => {
|
|
|
2228
2309
|
React__default["default"].createElement(StepperActions, { className: "mt-3", isFirstStep: activeIndex === 0, isStepOptional: isStepOptional(activeIndex), isCompleted: isLastStep(), onBack: handleBack, onSkip: handleSkip, onNext: handleNext, onReset: handleReset }))));
|
|
2229
2310
|
};
|
|
2230
2311
|
|
|
2231
|
-
var css_248z$8 = ".Typography-module_typography__sw-td {\n
|
|
2312
|
+
var css_248z$8 = ".Typography-module_typography__sw-td {\n font-family: var(--fontFamily);\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis; }\n\nh1 {\n font-size: calc(1.375rem + 1.5vw); }\n\nh2 {\n font-size: calc(1.325rem + 0.9vw); }\n\nh3 {\n font-size: calc(1.3rem + 0.6vw); }\n\nh4 {\n font-size: calc(1.275rem + 0.3vw); }\n\nh5 {\n font-size: 1.25rem; }\n\nh6 {\n font-size: 1rem; }\n\nh1,\nh2,\nh3,\nh4,\nh5,\nh6 {\n font-weight: 500 !important;\n margin-top: 0;\n margin-bottom: 0.5rem;\n line-height: 1.2; }\n";
|
|
2232
2313
|
var styles$8 = {"typography":"Typography-module_typography__sw-td"};
|
|
2233
2314
|
styleInject(css_248z$8);
|
|
2234
2315
|
|
|
@@ -2688,6 +2769,7 @@ exports.Chip = Chip;
|
|
|
2688
2769
|
exports.CircleSolidIcon = CircleSolidIcon;
|
|
2689
2770
|
exports.Column = Column;
|
|
2690
2771
|
exports.ConditionalWrapper = ConditionalWrapper;
|
|
2772
|
+
exports.CssTransition = CssTransition;
|
|
2691
2773
|
exports.DateSelect = DateSelect;
|
|
2692
2774
|
exports.DaySelect = DaySelect;
|
|
2693
2775
|
exports.Drawer = Drawer;
|
|
@@ -2772,4 +2854,5 @@ exports.useConstructor = useConstructor;
|
|
|
2772
2854
|
exports.useCssClasses = useCssClasses;
|
|
2773
2855
|
exports.useDebounce = useDebounce;
|
|
2774
2856
|
exports.useHover = useHover;
|
|
2857
|
+
exports.useMobileDetect = useMobileDetect;
|
|
2775
2858
|
exports.useWindowSize = useWindowSize;
|
package/package.json
CHANGED
package/react-asc.scss
CHANGED