@epilot/base-elements 2.7.7-alpha.2 → 2.7.11-alpha.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/CHANGELOG.md CHANGED
@@ -2,6 +2,20 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [2.7.11-alpha.0](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.10...v2.7.11-alpha.0) (2022-04-28)
6
+
7
+ ### [2.7.10](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.10-alpha.0...v2.7.10) (2022-04-28)
8
+
9
+ ### [2.7.10-alpha.0](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.9...v2.7.10-alpha.0) (2022-04-28)
10
+
11
+ ### [2.7.9](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.8...v2.7.9) (2022-04-28)
12
+
13
+ ### [2.7.8](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.8-alpha.0...v2.7.8) (2022-04-28)
14
+
15
+ ### [2.7.8-alpha.0](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.7...v2.7.8-alpha.0) (2022-04-27)
16
+
17
+ ### [2.7.7](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.7-alpha.2...v2.7.7) (2022-04-19)
18
+
5
19
  ### [2.7.7-alpha.2](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.7-alpha.1...v2.7.7-alpha.2) (2022-04-18)
6
20
 
7
21
  ### [2.7.7-alpha.1](https://gitlab.com/e-pilot/product/frontend/base/elements/compare/v2.7.7-alpha.0...v2.7.7-alpha.1) (2022-04-18)
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import { Drawer360Locales } from './types';
3
+ declare type ActionFooterProps = {
4
+ locales: Drawer360Locales;
5
+ handleClose: (_: React.MouseEvent<HTMLButtonElement>, reason?: 'backdropClick' | 'escapeKeyDown') => void;
6
+ handleSave: (_: React.MouseEvent<HTMLButtonElement>) => void;
7
+ unsavedChanges?: boolean;
8
+ disableSaveButton?: boolean;
9
+ };
10
+ export declare const ActionFooter: React.MemoExoticComponent<({ disableSaveButton, locales, handleClose, handleSave, unsavedChanges }: ActionFooterProps) => JSX.Element>;
11
+ export {};
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.ActionFooter = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styles_1 = require("@material-ui/core/styles");
6
+ var react_1 = tslib_1.__importStar(require("react"));
7
+ var Button_1 = require("../Button");
8
+ var Icon_1 = require("../Icon");
9
+ var Tooltip_1 = require("../Tooltip");
10
+ var helpers_1 = require("./helpers");
11
+ var useStyles = styles_1.makeStyles(function (theme) { return ({
12
+ bottomBar: {
13
+ display: 'flex',
14
+ alignItems: 'center',
15
+ justifyContent: 'flex-end',
16
+ padding: '1rem 1.5rem',
17
+ boxShadow: "0px 0px 24px rgba(21, 43, 66, 0.12)",
18
+ zIndex: 1,
19
+ marginTop: 'auto'
20
+ },
21
+ noWrap: {
22
+ whiteSpace: 'nowrap'
23
+ },
24
+ warningContent: {
25
+ padding: function (_a) {
26
+ var showFullWarning = _a.showFullWarning;
27
+ return showFullWarning ? '0.5rem' : '0.5rem 0.4rem';
28
+ },
29
+ borderRadius: theme.shape.borderRadius,
30
+ marginRight: '1rem',
31
+ backgroundColor: '#FFF4DF',
32
+ color: theme.palette.warning.contrastText,
33
+ fontWeight: 600,
34
+ display: 'flex',
35
+ alignItems: 'center',
36
+ height: 32
37
+ },
38
+ warningContentText: {
39
+ marginLeft: '0.3rem'
40
+ },
41
+ saveButton: { marginLeft: '0.5rem' },
42
+ tooltip: {
43
+ backgroundColor: theme.palette.warning.main,
44
+ color: theme.palette.warning.contrastText
45
+ },
46
+ arrow: {
47
+ color: theme.palette.warning.main
48
+ }
49
+ }); });
50
+ exports.ActionFooter = react_1.memo(function (_a) {
51
+ var disableSaveButton = _a.disableSaveButton, locales = _a.locales, handleClose = _a.handleClose, handleSave = _a.handleSave, unsavedChanges = _a.unsavedChanges;
52
+ var _b = react_1.useState(undefined), ref = _b[0], setRef = _b[1];
53
+ var isOverflow = helpers_1.useIsOverflow(ref);
54
+ var showFullWarning = !isOverflow;
55
+ var classes = useStyles({ showFullWarning: showFullWarning });
56
+ var measureRef = react_1.useCallback(function (node) {
57
+ if (node !== null) {
58
+ setRef(node);
59
+ }
60
+ }, []);
61
+ return (react_1["default"].createElement("div", { className: classes.bottomBar },
62
+ unsavedChanges && locales.warningMessage && (react_1["default"].createElement(WarningTooltip, { title: showFullWarning ? '' : locales.warningMessage },
63
+ react_1["default"].createElement("div", { className: classes.warningContent },
64
+ react_1["default"].createElement(Icon_1.Icon, { color: "secondary", name: "warning" }),
65
+ showFullWarning && (react_1["default"].createElement("span", { className: classes.warningContentText, ref: measureRef }, locales.warningMessage))))),
66
+ react_1["default"].createElement("div", null,
67
+ react_1["default"].createElement(Button_1.Button, { className: classes.noWrap, onClick: handleClose, variant: "outlined" }, locales.discardButtonLabel)),
68
+ react_1["default"].createElement(Tooltip_1.Tooltip, { title: unsavedChanges ? '' : locales.noChangesMessage },
69
+ react_1["default"].createElement("div", null,
70
+ react_1["default"].createElement(Button_1.Button, { className: classes.saveButton + " " + classes.noWrap, color: "primary", disabled: !unsavedChanges || disableSaveButton, onClick: handleSave, variant: "contained" }, locales.saveButtonLabel)))));
71
+ });
72
+ var WarningTooltip = function (props) {
73
+ var classes = useStyles({});
74
+ return (react_1["default"].createElement(Tooltip_1.Tooltip, tslib_1.__assign({}, props, { classes: { arrow: classes.arrow, tooltip: classes.tooltip } })));
75
+ };
76
+ //# sourceMappingURL=ActionFooter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ActionFooter.js","sourceRoot":"","sources":["../../src/Drawer360/ActionFooter.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import { Drawer360Locales } from './types';
3
+ declare type DiscardDialogProps = {
4
+ open: boolean;
5
+ onClose: () => void;
6
+ handleDiscard: (_: React.MouseEvent<HTMLButtonElement>) => void;
7
+ locales: Partial<Drawer360Locales>;
8
+ };
9
+ export declare const DiscardDialog: React.MemoExoticComponent<({ open, onClose, handleDiscard, locales }: DiscardDialogProps) => JSX.Element>;
10
+ export {};
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.DiscardDialog = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var styles_1 = require("@material-ui/core/styles");
6
+ var react_1 = tslib_1.__importStar(require("react"));
7
+ var Button_1 = require("../Button");
8
+ var Dialog_1 = require("../Dialog");
9
+ var Icon_1 = require("../Icon");
10
+ var useStyles = styles_1.makeStyles(function (theme) { return ({
11
+ body: {
12
+ padding: '1.5rem 1.5rem',
13
+ position: 'absolute',
14
+ inset: 0,
15
+ background: '#EDF2F7',
16
+ overflowY: 'scroll'
17
+ },
18
+ noWrap: {
19
+ whiteSpace: 'nowrap'
20
+ },
21
+ error: {
22
+ backgroundColor: theme.palette.error.main,
23
+ color: theme.palette.error.contrastText
24
+ },
25
+ discardDialogHeader: {
26
+ '& > h2': {
27
+ display: 'flex',
28
+ alignItems: 'center'
29
+ }
30
+ },
31
+ discardDialogTitle: { marginLeft: '1rem' },
32
+ discardDialogContent: { margin: '0 0 0 2.3rem' }
33
+ }); });
34
+ exports.DiscardDialog = react_1.memo(function (_a) {
35
+ var _b, _c, _d, _e;
36
+ var open = _a.open, onClose = _a.onClose, handleDiscard = _a.handleDiscard, locales = _a.locales;
37
+ var classes = useStyles({ responsive: false, size: 'small' });
38
+ return (react_1["default"].createElement(Dialog_1.Dialog, { "aria-describedby": "dialog-description", "aria-labelledby": "dialog-title", maxWidth: "sm", onClose: onClose, open: open },
39
+ react_1["default"].createElement(Dialog_1.DialogTitle, { className: classes.discardDialogHeader },
40
+ react_1["default"].createElement(Icon_1.EIcon, { color: "error", fontSize: "small", name: "trash" }),
41
+ react_1["default"].createElement("span", { className: classes.discardDialogTitle }, (_b = locales.discardChangesDialog) === null || _b === void 0 ? void 0 : _b.title)),
42
+ react_1["default"].createElement(Dialog_1.DialogContent, null,
43
+ react_1["default"].createElement(Dialog_1.DialogContentText, { className: classes.discardDialogContent }, (_c = locales.discardChangesDialog) === null || _c === void 0 ? void 0 : _c.message)),
44
+ react_1["default"].createElement(Dialog_1.DialogActions, null,
45
+ react_1["default"].createElement(Button_1.Button, { className: classes.noWrap, onClick: onClose, variant: "outlined" }, (_d = locales.discardChangesDialog) === null || _d === void 0 ? void 0 : _d.cancelButtonLabel),
46
+ react_1["default"].createElement(Button_1.Button, { className: classes.error + " " + classes.noWrap, onClick: handleDiscard, variant: "contained" }, (_e = locales.discardChangesDialog) === null || _e === void 0 ? void 0 : _e.confirmButtonLabel))));
47
+ });
48
+ exports.DiscardDialog.displayName = 'DiscardDialog';
49
+ //# sourceMappingURL=DiscardDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DiscardDialog.js","sourceRoot":"","sources":["../../src/Drawer360/DiscardDialog.tsx"],"names":[],"mappings":";;;;AAAA,mDAAqD;AACrD,qDAAmC;AAEnC,oCAAkC;AAClC,oCAMkB;AAClB,gCAA+B;AAY/B,IAAM,SAAS,GAAG,mBAAU,CAAC,UAAC,KAAY,IAAK,OAAA,CAAC;IAC9C,IAAI,EAAE;QACJ,OAAO,EAAE,eAAe;QACxB,QAAQ,EAAE,UAAU;QACpB,KAAK,EAAE,CAAC;QACR,UAAU,EAAE,SAAS;QACrB,SAAS,EAAE,QAAQ;KACpB;IACD,MAAM,EAAE;QACN,UAAU,EAAE,QAAQ;KACrB;IACD,KAAK,EAAE;QACL,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;QACzC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;KACxC;IACD,mBAAmB,EAAE;QACnB,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM;YACf,UAAU,EAAE,QAAQ;SACrB;KACF;IACD,kBAAkB,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;IAC1C,oBAAoB,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE;CACjD,CAAC,EAvB6C,CAuB7C,CAAC,CAAA;AAEU,QAAA,aAAa,GAAG,YAAI,CAC/B,UAAC,EAA6D;;QAA3D,IAAI,UAAA,EAAE,OAAO,aAAA,EAAE,aAAa,mBAAA,EAAE,OAAO,aAAA;IACtC,IAAM,OAAO,GAAG,SAAS,CAAC,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAE/D,OAAO,CACL,iCAAC,eAAM,wBACY,oBAAoB,qBACrB,cAAc,EAC9B,QAAQ,EAAC,IAAI,EACb,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,IAAI;QAEV,iCAAC,oBAAW,IAAC,SAAS,EAAE,OAAO,CAAC,mBAAmB;YACjD,iCAAC,YAAK,IAAC,KAAK,EAAC,OAAO,EAAC,QAAQ,EAAC,OAAO,EAAC,IAAI,EAAC,OAAO,GAAG;YACrD,2CAAM,SAAS,EAAE,OAAO,CAAC,kBAAkB,UACxC,OAAO,CAAC,oBAAoB,0CAAE,KAAK,CAC/B,CACK;QACd,iCAAC,sBAAa;YACZ,iCAAC,0BAAiB,IAAC,SAAS,EAAE,OAAO,CAAC,oBAAoB,UACvD,OAAO,CAAC,oBAAoB,0CAAE,OAAO,CACpB,CACN;QAChB,iCAAC,sBAAa;YACZ,iCAAC,eAAM,IACL,SAAS,EAAE,OAAO,CAAC,MAAM,EACzB,OAAO,EAAE,OAAO,EAChB,OAAO,EAAC,UAAU,UAEjB,OAAO,CAAC,oBAAoB,0CAAE,iBAAiB,CACzC;YAET,iCAAC,eAAM,IACL,SAAS,EAAK,OAAO,CAAC,KAAK,SAAI,OAAO,CAAC,MAAQ,EAC/C,OAAO,EAAE,aAAa,EACtB,OAAO,EAAC,WAAW,UAElB,OAAO,CAAC,oBAAoB,0CAAE,kBAAkB,CAC1C,CACK,CACT,CACV,CAAA;AACH,CAAC,CACF,CAAA;AAED,qBAAa,CAAC,WAAW,GAAG,eAAe,CAAA"}
@@ -0,0 +1,3 @@
1
+ /// <reference types="react" />
2
+ import { Drawer360Props } from './types';
3
+ export declare function Drawer360({ anchor, children, onClose, onSave, onDiscard, responsive, size, showActionButtons, title, unsavedChanges, open, disableSaveButton, locales: localesProp, onBackdropClick, onEscapeKeyDown, onRendered, ...rest }: Drawer360Props): JSX.Element;
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.Drawer360 = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var core_1 = require("@material-ui/core");
6
+ var styles_1 = require("@material-ui/core/styles");
7
+ var react_1 = tslib_1.__importStar(require("react"));
8
+ var Button_1 = require("../Button");
9
+ var Dialog_1 = require("../Dialog");
10
+ var Icon_1 = require("../Icon");
11
+ var Tooltip_1 = require("../Tooltip");
12
+ var Typography_1 = require("../Typography");
13
+ var ActionFooter_1 = require("./ActionFooter");
14
+ var DiscardDialog_1 = require("./DiscardDialog");
15
+ var helpers_1 = require("./helpers");
16
+ var customSizes = [
17
+ { 'one-third': '560px', 'two-thirds': '720px', 'max-width': '850px' },
18
+ { 'one-third': '33vw', 'two-thirds': '66vw', 'max-width': '90vw' }
19
+ ];
20
+ var useStyles = styles_1.makeStyles(function () { return ({
21
+ sideDrawerRoot: {
22
+ display: 'flex',
23
+ flexDirection: 'column',
24
+ flex: 1,
25
+ minWidth: '464px',
26
+ width: function (_a) {
27
+ var _b = _a.responsive, responsive = _b === void 0 ? true : _b, _c = _a.size, size = _c === void 0 ? 'two-thirds' : _c;
28
+ return customSizes[Number(responsive)][size];
29
+ }
30
+ },
31
+ topBar: {
32
+ padding: '1rem 1.5rem',
33
+ display: 'flex',
34
+ alignItems: 'center',
35
+ justifyContent: 'space-between',
36
+ boxShadow: 'inset 0px -1px 0px #c1c7d0;'
37
+ },
38
+ closeIcon: {
39
+ paddingRight: 0
40
+ },
41
+ title: {
42
+ fontSize: 20,
43
+ fontWeight: 600
44
+ },
45
+ dialogContent: {
46
+ position: 'relative'
47
+ },
48
+ body: {
49
+ padding: '1.5rem 1.5rem',
50
+ position: 'absolute',
51
+ inset: 0,
52
+ background: '#EDF2F7',
53
+ overflowY: 'scroll'
54
+ }
55
+ }); });
56
+ function Drawer360(_a) {
57
+ var _b = _a.anchor, anchor = _b === void 0 ? 'right' : _b, children = _a.children, onClose = _a.onClose, onSave = _a.onSave, onDiscard = _a.onDiscard, _c = _a.responsive, responsive = _c === void 0 ? true : _c, _d = _a.size, size = _d === void 0 ? 'two-thirds' : _d, _e = _a.showActionButtons, showActionButtons = _e === void 0 ? true : _e, title = _a.title, unsavedChanges = _a.unsavedChanges, open = _a.open, disableSaveButton = _a.disableSaveButton, localesProp = _a.locales,
58
+ // prop sanitisation for deprecated props
59
+ onBackdropClick = _a.onBackdropClick, onEscapeKeyDown = _a.onEscapeKeyDown, onRendered = _a.onRendered, rest = tslib_1.__rest(_a, ["anchor", "children", "onClose", "onSave", "onDiscard", "responsive", "size", "showActionButtons", "title", "unsavedChanges", "open", "disableSaveButton", "locales", "onBackdropClick", "onEscapeKeyDown", "onRendered"]);
60
+ var classes = useStyles({ responsive: responsive, size: size });
61
+ var _f = react_1["default"].useState(false), showDiscardDialog = _f[0], setShowDiscardDialog = _f[1];
62
+ var handleClose = react_1.useCallback(function (e, reason) {
63
+ if (showActionButtons && unsavedChanges) {
64
+ setShowDiscardDialog(true);
65
+ }
66
+ else {
67
+ onClose && onClose(e, reason !== null && reason !== void 0 ? reason : 'backdropClick');
68
+ }
69
+ }, [showActionButtons, unsavedChanges, onClose]);
70
+ var handleSave = react_1.useCallback(function (e) {
71
+ onSave && onSave(e);
72
+ }, [onSave]);
73
+ var handleDiscard = react_1.useCallback(function (e) {
74
+ setShowDiscardDialog(false);
75
+ onDiscard && onDiscard(e);
76
+ }, [onDiscard]);
77
+ var closeDiscardDialog = react_1.useCallback(function () {
78
+ setShowDiscardDialog(false);
79
+ }, []);
80
+ var locales = helpers_1.useLocales(localesProp);
81
+ return (react_1["default"].createElement(core_1.Drawer, tslib_1.__assign({}, rest, { anchor: anchor, elevation: 2, onClose: handleClose, open: open }),
82
+ react_1["default"].createElement("div", { className: classes.sideDrawerRoot + " " + rest.className },
83
+ react_1["default"].createElement("div", { className: classes.topBar },
84
+ react_1["default"].createElement(Typography_1.H3, { className: classes.title }, title),
85
+ react_1["default"].createElement(Tooltip_1.Tooltip, { title: locales.closeButtonLabel },
86
+ react_1["default"].createElement("div", null,
87
+ react_1["default"].createElement(Button_1.IconButton, { className: classes.closeIcon, onClick: handleClose },
88
+ react_1["default"].createElement(Icon_1.EIcon, { color: "secondary", name: "x" }))))),
89
+ react_1["default"].createElement(Dialog_1.DialogContent, { className: classes.dialogContent },
90
+ react_1["default"].createElement("div", { className: classes.body }, children)),
91
+ showActionButtons && (react_1["default"].createElement(ActionFooter_1.ActionFooter, { disableSaveButton: disableSaveButton, handleClose: handleClose, handleSave: handleSave, locales: locales, unsavedChanges: unsavedChanges }))),
92
+ react_1["default"].createElement(DiscardDialog_1.DiscardDialog, { handleDiscard: handleDiscard, locales: locales, onClose: closeDiscardDialog, open: showDiscardDialog })));
93
+ }
94
+ exports.Drawer360 = Drawer360;
95
+ //# sourceMappingURL=Drawer360.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Drawer360.js","sourceRoot":"","sources":["../../src/Drawer360/Drawer360.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Drawer360Locales } from './types';
2
+ export declare const useLocales: (locales?: Partial<Drawer360Locales> | undefined) => Drawer360Locales;
3
+ export declare const useIsOverflow: (element?: HTMLElement | undefined, callback?: ((_?: boolean | undefined) => void) | undefined) => boolean | undefined;
@@ -0,0 +1,60 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ exports.useIsOverflow = exports.useLocales = void 0;
4
+ var tslib_1 = require("tslib");
5
+ var react_1 = require("react");
6
+ var DEFAULT_LOCALES = {
7
+ warningMessage: 'There are some unsaved changes',
8
+ closeButtonLabel: 'Close',
9
+ discardButtonLabel: 'Discard changes',
10
+ saveButtonLabel: 'Save changes',
11
+ noChangesMessage: "You're all good, no changes to be saved yet",
12
+ discardChangesDialog: {
13
+ title: 'Discard your changes',
14
+ message: "You have some unsaved changes. If you discard them now, you won't be able to recover them.",
15
+ cancelButtonLabel: 'Continue editing',
16
+ confirmButtonLabel: 'Discard now'
17
+ }
18
+ };
19
+ var useLocales = function (locales) {
20
+ return react_1.useMemo(function () {
21
+ if (!locales || !Object.keys(locales).length) {
22
+ return DEFAULT_LOCALES;
23
+ }
24
+ return tslib_1.__assign(tslib_1.__assign({}, DEFAULT_LOCALES), locales);
25
+ }, [locales]);
26
+ };
27
+ exports.useLocales = useLocales;
28
+ var useIsOverflow = function (element, callback) {
29
+ var _a = react_1.useState(undefined), isOverflow = _a[0], setIsOverflow = _a[1];
30
+ react_1.useLayoutEffect(function () {
31
+ var _a, _b;
32
+ var trigger = function () {
33
+ var _a, _b;
34
+ var hasOverflow = Boolean(((element === null || element === void 0 ? void 0 : element.clientWidth) || 0) >
35
+ (((_a = element === null || element === void 0 ? void 0 : element.parentElement) === null || _a === void 0 ? void 0 : _a.clientWidth) || Number.MAX_VALUE) ||
36
+ ((element === null || element === void 0 ? void 0 : element.clientHeight) || 0) >
37
+ (((_b = element === null || element === void 0 ? void 0 : element.parentElement) === null || _b === void 0 ? void 0 : _b.clientHeight) || Number.MAX_VALUE));
38
+ if (hasOverflow !== isOverflow) {
39
+ setIsOverflow(hasOverflow);
40
+ if (callback)
41
+ callback(hasOverflow);
42
+ }
43
+ };
44
+ // Adding listener to the parent of parent as it changes with changing width
45
+ if (((_a = element === null || element === void 0 ? void 0 : element.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) && 'ResizeObserver' in window) {
46
+ new ResizeObserver(trigger).observe((_b = element === null || element === void 0 ? void 0 : element.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement);
47
+ }
48
+ if (element === null || element === void 0 ? void 0 : element.parentElement)
49
+ trigger();
50
+ return function () {
51
+ var _a, _b;
52
+ if (((_a = element === null || element === void 0 ? void 0 : element.parentElement) === null || _a === void 0 ? void 0 : _a.parentElement) && 'ResizeObserver' in window) {
53
+ new ResizeObserver(trigger).unobserve((_b = element === null || element === void 0 ? void 0 : element.parentElement) === null || _b === void 0 ? void 0 : _b.parentElement);
54
+ }
55
+ };
56
+ }, [callback, element, setIsOverflow, isOverflow]);
57
+ return isOverflow;
58
+ };
59
+ exports.useIsOverflow = useIsOverflow;
60
+ //# sourceMappingURL=helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.js","sourceRoot":"","sources":["../../src/Drawer360/helpers.ts"],"names":[],"mappings":";;;;AAAA,+BAA0D;AAI1D,IAAM,eAAe,GAAqB;IACxC,cAAc,EAAE,gCAAgC;IAChD,gBAAgB,EAAE,OAAO;IACzB,kBAAkB,EAAE,iBAAiB;IACrC,eAAe,EAAE,cAAc;IAC/B,gBAAgB,EAAE,6CAA6C;IAC/D,oBAAoB,EAAE;QACpB,KAAK,EAAE,sBAAsB;QAC7B,OAAO,EACL,4FAA4F;QAC9F,iBAAiB,EAAE,kBAAkB;QACrC,kBAAkB,EAAE,aAAa;KAClC;CACF,CAAA;AAEM,IAAM,UAAU,GAAG,UAAC,OAAmC;IAC5D,OAAO,eAAO,CAAC;QACb,IAAI,CAAC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE;YAC5C,OAAO,eAAe,CAAA;SACvB;QAED,6CAAY,eAAe,GAAK,OAAO,EAAE;IAC3C,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAA;AACf,CAAC,CAAA;AARY,QAAA,UAAU,cAQtB;AAEM,IAAM,aAAa,GAAG,UAC3B,OAAqB,EACrB,QAAgC;IAE1B,IAAA,KAA8B,gBAAQ,CAAsB,SAAS,CAAC,EAArE,UAAU,QAAA,EAAE,aAAa,QAA4C,CAAA;IAE5E,uBAAe,CAAC;;QACd,IAAM,OAAO,GAAG;;YACd,IAAM,WAAW,GAAG,OAAO,CACzB,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW,KAAI,CAAC,CAAC;gBACzB,CAAC,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,0CAAE,WAAW,KAAI,MAAM,CAAC,SAAS,CAAC;gBACzD,CAAC,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,YAAY,KAAI,CAAC,CAAC;oBAC1B,CAAC,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,0CAAE,YAAY,KAAI,MAAM,CAAC,SAAS,CAAC,CAC/D,CAAA;YAED,IAAI,WAAW,KAAK,UAAU,EAAE;gBAC9B,aAAa,CAAC,WAAW,CAAC,CAAA;gBAC1B,IAAI,QAAQ;oBAAE,QAAQ,CAAC,WAAW,CAAC,CAAA;aACpC;QACH,CAAC,CAAA;QAED,4EAA4E;QAC5E,IAAI,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,0CAAE,aAAa,KAAI,gBAAgB,IAAI,MAAM,EAAE;YACvE,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,OAAO,OAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,0CAAE,aAAa,CAAC,CAAA;SAC3E;QACD,IAAI,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa;YAAE,OAAO,EAAE,CAAA;QAErC,OAAO;;YACL,IAAI,OAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,0CAAE,aAAa,KAAI,gBAAgB,IAAI,MAAM,EAAE;gBACvE,IAAI,cAAc,CAAC,OAAO,CAAC,CAAC,SAAS,OACnC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,aAAa,0CAAE,aAAa,CACtC,CAAA;aACF;QACH,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAA;IAElD,OAAO,UAAU,CAAA;AACnB,CAAC,CAAA;AArCY,QAAA,aAAa,iBAqCzB"}
@@ -0,0 +1,2 @@
1
+ export * from './Drawer360';
2
+ export * from './types';
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ var tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./Drawer360"), exports);
5
+ tslib_1.__exportStar(require("./types"), exports);
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/Drawer360/index.ts"],"names":[],"mappings":";;;AAAA,sDAA2B;AAC3B,kDAAuB"}
@@ -0,0 +1,27 @@
1
+ import { DrawerProps as MuiDrawerProps } from '@material-ui/core';
2
+ import React from 'react';
3
+ export declare type Drawer360Props = Omit<MuiDrawerProps, 'anchor' | 'elevation' | 'variant' | 'transitionDuration'> & {
4
+ responsive?: boolean;
5
+ size?: 'one-third' | 'two-thirds' | 'max-width';
6
+ title: string;
7
+ unsavedChanges?: boolean;
8
+ onSave?: (_: React.MouseEvent) => void;
9
+ onDiscard?: (_: React.MouseEvent) => void;
10
+ showActionButtons?: boolean;
11
+ locales?: Partial<Drawer360Locales>;
12
+ disableSaveButton?: boolean;
13
+ anchor?: 'left' | 'right';
14
+ };
15
+ export interface Drawer360Locales {
16
+ saveButtonLabel: string;
17
+ discardButtonLabel: string;
18
+ warningMessage: string;
19
+ noChangesMessage: string;
20
+ closeButtonLabel: string;
21
+ discardChangesDialog: {
22
+ title: string;
23
+ message: string;
24
+ cancelButtonLabel: string;
25
+ confirmButtonLabel: string;
26
+ };
27
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ exports.__esModule = true;
3
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/Drawer360/types.ts"],"names":[],"mappings":""}