notistack-v2-maintained
Version:
Highly customizable notification snackbars (toasts) that can be stacked on top of each other
74 lines (73 loc) • 2.88 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.isDefined = exports.transformer = exports.REASONS = exports.omitContainerKeys = exports.originKeyExtractor = exports.capitalise = exports.DEFAULTS = exports.SNACKBAR_INDENTS = exports.allClasses = void 0;
exports.objectMerge = objectMerge;
const Slide_1 = __importDefault(require("@mui/material/Slide"));
exports.allClasses = {
mui: {
root: {},
anchorOriginTopCenter: {},
anchorOriginBottomCenter: {},
anchorOriginTopRight: {},
anchorOriginBottomRight: {},
anchorOriginTopLeft: {},
anchorOriginBottomLeft: {}
},
container: {
containerRoot: {},
containerAnchorOriginTopCenter: {},
containerAnchorOriginBottomCenter: {},
containerAnchorOriginTopRight: {},
containerAnchorOriginBottomRight: {},
containerAnchorOriginTopLeft: {},
containerAnchorOriginBottomLeft: {}
}
};
exports.SNACKBAR_INDENTS = {
view: { default: 20, dense: 4 },
snackbar: { default: 6, dense: 2 }
};
exports.DEFAULTS = {
maxSnack: 3,
dense: false,
hideIconVariant: false,
variant: "default",
autoHideDuration: 5000,
anchorOrigin: { vertical: "bottom", horizontal: "left" },
TransitionComponent: Slide_1.default,
transitionDuration: {
enter: 225,
exit: 195
}
};
const capitalise = (text) => text.charAt(0).toUpperCase() + text.slice(1);
exports.capitalise = capitalise;
const originKeyExtractor = (anchor) => `${(0, exports.capitalise)(anchor.vertical)}${(0, exports.capitalise)(anchor.horizontal)}`;
exports.originKeyExtractor = originKeyExtractor;
/**
* Omit SnackbarContainer class keys that are not needed for SnackbarItem
*/
const omitContainerKeys = (classes) => Object.keys(classes)
.filter((key) => !exports.allClasses.container[key])
.reduce((obj, key) => (Object.assign(Object.assign({}, obj), { [key]: classes[key] })), {});
exports.omitContainerKeys = omitContainerKeys;
exports.REASONS = {
TIMEOUT: "timeout",
CLICKAWAY: "clickaway",
MAXSNACK: "maxsnack",
INSTRUCTED: "instructed"
};
/** Tranforms classes name */
exports.transformer = {
toContainerAnchorOrigin: (origin) => `containerAnchorOrigin${origin}`,
toAnchorOrigin: ({ vertical, horizontal }) => `anchorOrigin${(0, exports.capitalise)(vertical)}${(0, exports.capitalise)(horizontal)}`,
toVariant: (variant) => `variant${(0, exports.capitalise)(variant)}`
};
const isDefined = (value) => !!value || value === 0;
exports.isDefined = isDefined;
function objectMerge(options = {}, props = {}, defaults = {}) {
return Object.assign(Object.assign(Object.assign({}, defaults), props), options);
}