@elliemae/ds-modal 3.0.0-next.2 → 3.0.0-next.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/DSModal.js +111 -0
- package/dist/cjs/DSModal.js.map +7 -0
- package/dist/cjs/constants.js +73 -0
- package/dist/cjs/constants.js.map +7 -0
- package/dist/cjs/index.js +43 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/v1/DSModal.js +185 -0
- package/dist/cjs/v1/DSModal.js.map +7 -0
- package/dist/cjs/v1/DSModalType.js +45 -0
- package/dist/cjs/v1/DSModalType.js.map +7 -0
- package/dist/cjs/v1/DSModalWrapper.js +145 -0
- package/dist/cjs/v1/DSModalWrapper.js.map +7 -0
- package/dist/cjs/v1/ModalFeedBack/ModalFeedBack.js +103 -0
- package/dist/cjs/v1/ModalFeedBack/ModalFeedBack.js.map +7 -0
- package/dist/cjs/v2/DSModal.js +172 -0
- package/dist/cjs/v2/DSModal.js.map +7 -0
- package/dist/cjs/v2/blocks.js +71 -0
- package/dist/cjs/v2/blocks.js.map +7 -0
- package/dist/cjs/v2/components/DecisionHeader.js +48 -0
- package/dist/cjs/v2/components/DecisionHeader.js.map +7 -0
- package/dist/cjs/v2/components/FeedbackIcon.js +73 -0
- package/dist/cjs/v2/components/FeedbackIcon.js.map +7 -0
- package/dist/cjs/v2/components/Footer.js +81 -0
- package/dist/cjs/v2/components/Footer.js.map +7 -0
- package/dist/cjs/v2/components/FormHeader.js +54 -0
- package/dist/cjs/v2/components/FormHeader.js.map +7 -0
- package/dist/cjs/v2/components/ModalContent.js +108 -0
- package/dist/cjs/v2/components/ModalContent.js.map +7 -0
- package/dist/cjs/v2/components/SelectionHeader.js +63 -0
- package/dist/cjs/v2/components/SelectionHeader.js.map +7 -0
- package/dist/cjs/v2/components/Title.js +41 -0
- package/dist/cjs/v2/components/Title.js.map +7 -0
- package/dist/cjs/v2/helpers.js +54 -0
- package/dist/cjs/v2/helpers.js.map +7 -0
- package/dist/esm/DSModal.js +84 -0
- package/dist/esm/DSModal.js.map +7 -0
- package/dist/esm/constants.js +44 -0
- package/dist/esm/constants.js.map +7 -0
- package/dist/esm/index.js +14 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/v1/DSModal.js +158 -0
- package/dist/esm/v1/DSModal.js.map +7 -0
- package/dist/esm/v1/DSModalType.js +16 -0
- package/dist/esm/v1/DSModalType.js.map +7 -0
- package/dist/esm/v1/DSModalWrapper.js +118 -0
- package/dist/esm/v1/DSModalWrapper.js.map +7 -0
- package/dist/esm/v1/ModalFeedBack/ModalFeedBack.js +74 -0
- package/dist/esm/v1/ModalFeedBack/ModalFeedBack.js.map +7 -0
- package/dist/esm/v2/DSModal.js +145 -0
- package/dist/esm/v2/DSModal.js.map +7 -0
- package/dist/esm/v2/blocks.js +42 -0
- package/dist/esm/v2/blocks.js.map +7 -0
- package/dist/esm/v2/components/DecisionHeader.js +19 -0
- package/dist/esm/v2/components/DecisionHeader.js.map +7 -0
- package/dist/esm/v2/components/FeedbackIcon.js +44 -0
- package/dist/esm/v2/components/FeedbackIcon.js.map +7 -0
- package/dist/esm/v2/components/Footer.js +54 -0
- package/dist/esm/v2/components/Footer.js.map +7 -0
- package/dist/esm/v2/components/FormHeader.js +25 -0
- package/dist/esm/v2/components/FormHeader.js.map +7 -0
- package/dist/esm/v2/components/ModalContent.js +87 -0
- package/dist/esm/v2/components/ModalContent.js.map +7 -0
- package/dist/esm/v2/components/SelectionHeader.js +36 -0
- package/dist/esm/v2/components/SelectionHeader.js.map +7 -0
- package/dist/esm/v2/components/Title.js +12 -0
- package/dist/esm/v2/components/Title.js.map +7 -0
- package/dist/esm/v2/helpers.js +25 -0
- package/dist/esm/v2/helpers.js.map +7 -0
- package/package.json +64 -55
- package/cjs/DSModal.js +0 -186
- package/cjs/constants.js +0 -34
- package/cjs/index.js +0 -18
- package/cjs/v1/DSModal.js +0 -148
- package/cjs/v1/DSModalType.js +0 -7
- package/cjs/v1/DSModalWrapper.js +0 -166
- package/cjs/v1/ModalFeedBack/ModalFeedBack.js +0 -98
- package/cjs/v2/DSModal.js +0 -203
- package/cjs/v2/blocks.js +0 -88
- package/cjs/v2/components/DecisionHeader.js +0 -38
- package/cjs/v2/components/FeedbackIcon.js +0 -64
- package/cjs/v2/components/Footer.js +0 -66
- package/cjs/v2/components/FormHeader.js +0 -47
- package/cjs/v2/components/ModalContent.js +0 -112
- package/cjs/v2/components/SelectionHeader.js +0 -49
- package/cjs/v2/components/Title.js +0 -26
- package/cjs/v2/helpers.js +0 -45
- package/esm/DSModal.js +0 -175
- package/esm/constants.js +0 -26
- package/esm/index.js +0 -4
- package/esm/v1/DSModal.js +0 -139
- package/esm/v1/DSModalType.js +0 -3
- package/esm/v1/DSModalWrapper.js +0 -160
- package/esm/v1/ModalFeedBack/ModalFeedBack.js +0 -92
- package/esm/v2/DSModal.js +0 -192
- package/esm/v2/blocks.js +0 -77
- package/esm/v2/components/DecisionHeader.js +0 -28
- package/esm/v2/components/FeedbackIcon.js +0 -55
- package/esm/v2/components/Footer.js +0 -55
- package/esm/v2/components/FormHeader.js +0 -37
- package/esm/v2/components/ModalContent.js +0 -103
- package/esm/v2/components/SelectionHeader.js +0 -39
- package/esm/v2/components/Title.js +0 -17
- package/esm/v2/helpers.js +0 -37
- package/types/DSModal.d.ts +0 -14
- package/types/constants.d.ts +0 -25
- package/types/index.d.ts +0 -4
- package/types/v1/DSModal.d.ts +0 -143
- package/types/v1/DSModalType.d.ts +0 -1
- package/types/v1/ModalFeedBack/ModalFeedBack.d.ts +0 -11
- package/types/v2/DSModal.d.ts +0 -260
- package/types/v2/blocks.d.ts +0 -9
- package/types/v2/components/DecisionHeader.d.ts +0 -6
- package/types/v2/components/FeedbackIcon.d.ts +0 -5
- package/types/v2/components/Footer.d.ts +0 -13
- package/types/v2/components/FormHeader.d.ts +0 -8
- package/types/v2/components/ModalContent.d.ts +0 -21
- package/types/v2/components/SelectionHeader.d.ts +0 -8
- package/types/v2/components/Title.d.ts +0 -6
- package/types/v2/components/tests/DecisionHeader.test.d.ts +0 -1
- package/types/v2/components/tests/FeedbackIcon.test.d.ts +0 -1
- package/types/v2/components/tests/Footer.test.d.ts +0 -1
- package/types/v2/components/tests/FormHeader.test.d.ts +0 -1
- package/types/v2/components/tests/SelectionHeader.test.d.ts +0 -1
- package/types/v2/helpers.d.ts +0 -16
- package/types/v2/tests/DSModal.test.d.ts +0 -1
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __defProps = Object.defineProperties;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
|
|
6
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
7
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
8
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
9
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
10
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
11
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
12
|
+
var __spreadValues = (a, b) => {
|
|
13
|
+
for (var prop in b || (b = {}))
|
|
14
|
+
if (__hasOwnProp.call(b, prop))
|
|
15
|
+
__defNormalProp(a, prop, b[prop]);
|
|
16
|
+
if (__getOwnPropSymbols)
|
|
17
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
18
|
+
if (__propIsEnum.call(b, prop))
|
|
19
|
+
__defNormalProp(a, prop, b[prop]);
|
|
20
|
+
}
|
|
21
|
+
return a;
|
|
22
|
+
};
|
|
23
|
+
var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
|
|
24
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
25
|
+
var __export = (target, all) => {
|
|
26
|
+
for (var name in all)
|
|
27
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
28
|
+
};
|
|
29
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
30
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
31
|
+
for (let key of __getOwnPropNames(module2))
|
|
32
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
33
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
34
|
+
}
|
|
35
|
+
return target;
|
|
36
|
+
};
|
|
37
|
+
var __toESM = (module2, isNodeMode) => {
|
|
38
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
39
|
+
};
|
|
40
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
41
|
+
return (module2, temp) => {
|
|
42
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
43
|
+
};
|
|
44
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
45
|
+
var DSModalWrapper_exports = {};
|
|
46
|
+
__export(DSModalWrapper_exports, {
|
|
47
|
+
default: () => DSModalWrapper_default
|
|
48
|
+
});
|
|
49
|
+
var React = __toESM(require("react"));
|
|
50
|
+
var import_react = require("react");
|
|
51
|
+
var import_constants = require("../constants");
|
|
52
|
+
var DSModalWrapper_default = (WrappedComponent) => {
|
|
53
|
+
class DSModalWrapper extends import_react.Component {
|
|
54
|
+
constructor() {
|
|
55
|
+
super(...arguments);
|
|
56
|
+
this.state = {
|
|
57
|
+
childready: false,
|
|
58
|
+
additionalFooterCssClass: "loading",
|
|
59
|
+
container: null,
|
|
60
|
+
actions: null,
|
|
61
|
+
height: "100%"
|
|
62
|
+
};
|
|
63
|
+
this.onHeaderHeight = (e) => {
|
|
64
|
+
this.heightHeaderFlag = true;
|
|
65
|
+
this.heightHeader = e.height || 0;
|
|
66
|
+
};
|
|
67
|
+
this.onFooterHeight = (e) => {
|
|
68
|
+
this.heightFooterFlag = true;
|
|
69
|
+
this.heightFooter = e.height || 0;
|
|
70
|
+
};
|
|
71
|
+
this.onResize = ({ bounds }) => {
|
|
72
|
+
if (this.heightFooterFlag && this.heightHeaderFlag) {
|
|
73
|
+
return this.setState({
|
|
74
|
+
height: bounds.height - this.heightFooter - this.heightHeader
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
return setTimeout(this.onResize({ bounds }), 0);
|
|
78
|
+
};
|
|
79
|
+
this.handleContainer = (node) => {
|
|
80
|
+
if (node)
|
|
81
|
+
this.setState({ container: node });
|
|
82
|
+
this.handleResize();
|
|
83
|
+
};
|
|
84
|
+
this.handleActions = (node) => {
|
|
85
|
+
if (node)
|
|
86
|
+
this.setState({ actions: node });
|
|
87
|
+
this.handleResize();
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
componentDidMount() {
|
|
91
|
+
window.addEventListener("resize", this.handleResize);
|
|
92
|
+
}
|
|
93
|
+
componentWillUnmount() {
|
|
94
|
+
window.removeEventListener("resize", this.handleResize);
|
|
95
|
+
}
|
|
96
|
+
handleResize() {
|
|
97
|
+
if (!this.state)
|
|
98
|
+
return null;
|
|
99
|
+
const { container, actions, childready } = this.state;
|
|
100
|
+
if (!childready)
|
|
101
|
+
return null;
|
|
102
|
+
this.setState({ additionalFooterCssClass: null });
|
|
103
|
+
const { clientWidth: containerWidth } = container;
|
|
104
|
+
const { clientWidth: actionsWidth } = actions;
|
|
105
|
+
if (containerWidth && actionsWidth && actionsWidth / containerWidth * 100 > 50) {
|
|
106
|
+
return this.setState({ additionalFooterCssClass: "fluid-actions" });
|
|
107
|
+
}
|
|
108
|
+
return this.setState({ additionalFooterCssClass: null });
|
|
109
|
+
}
|
|
110
|
+
verifyNodes() {
|
|
111
|
+
const { modalType } = this.props;
|
|
112
|
+
if (modalType !== import_constants.MODAL_TYPE.DEFAULT) {
|
|
113
|
+
const nodesInterval = setInterval(() => {
|
|
114
|
+
const { container, actions } = this.state;
|
|
115
|
+
if (!container || !actions)
|
|
116
|
+
return null;
|
|
117
|
+
clearInterval(nodesInterval);
|
|
118
|
+
this.setState({ childready: true });
|
|
119
|
+
return this.handleResize();
|
|
120
|
+
}, 100);
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
render() {
|
|
124
|
+
const { props, state } = this;
|
|
125
|
+
const { additionalFooterCssClass, height } = state;
|
|
126
|
+
return (0, import_react.createElement)(WrappedComponent, __spreadProps(__spreadValues({}, props), {
|
|
127
|
+
height,
|
|
128
|
+
onResize: this.onResize,
|
|
129
|
+
onFooterHeight: this.onFooterHeight,
|
|
130
|
+
onHeaderHeight: this.onHeaderHeight,
|
|
131
|
+
containerRef: this.handleContainer,
|
|
132
|
+
actionsRef: this.handleActions,
|
|
133
|
+
additionalFooterCssClass,
|
|
134
|
+
onAfterOpen: () => {
|
|
135
|
+
if (props.onAfterOpen)
|
|
136
|
+
props.onAfterOpen();
|
|
137
|
+
this.verifyNodes();
|
|
138
|
+
}
|
|
139
|
+
}));
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
return DSModalWrapper;
|
|
143
|
+
};
|
|
144
|
+
module.exports = __toCommonJS(DSModalWrapper_exports);
|
|
145
|
+
//# sourceMappingURL=DSModalWrapper.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/v1/DSModalWrapper.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import { Component, createElement } from 'react';\nimport { MODAL_TYPE } from '../constants';\n\nexport default (WrappedComponent) => {\n class DSModalWrapper extends Component {\n state = {\n childready: false,\n additionalFooterCssClass: 'loading',\n container: null,\n actions: null,\n height: '100%',\n };\n\n componentDidMount() {\n window.addEventListener('resize', this.handleResize);\n }\n\n componentWillUnmount() {\n window.removeEventListener('resize', this.handleResize);\n }\n\n onHeaderHeight = (e) => {\n this.heightHeaderFlag = true;\n this.heightHeader = e.height || 0;\n };\n\n onFooterHeight = (e) => {\n this.heightFooterFlag = true;\n this.heightFooter = e.height || 0;\n };\n\n onResize = ({ bounds }) => {\n if (this.heightFooterFlag && this.heightHeaderFlag) {\n return this.setState({\n height: bounds.height - this.heightFooter - this.heightHeader,\n });\n }\n return setTimeout(this.onResize({ bounds }), 0);\n };\n\n handleContainer = (node) => {\n if (node) this.setState({ container: node });\n this.handleResize();\n };\n\n handleActions = (node) => {\n if (node) this.setState({ actions: node });\n this.handleResize();\n };\n\n /**\n * Change button width to 100% if the\n * combined width of the button (or button group) exceed 50% of the container width.\n */\n handleResize() {\n if (!this.state) return null;\n const { container, actions, childready } = this.state;\n if (!childready) return null;\n this.setState({ additionalFooterCssClass: null }); // !important reset to default state to recalculate\n const { clientWidth: containerWidth } = container;\n const { clientWidth: actionsWidth } = actions;\n // Change button width to 100% if the combined width of the button (or button group) exceed 50% of the container width.\n if (\n containerWidth &&\n actionsWidth &&\n (actionsWidth / containerWidth) * 100 > 50\n ) {\n return this.setState({ additionalFooterCssClass: 'fluid-actions' });\n }\n return this.setState({ additionalFooterCssClass: null });\n }\n\n verifyNodes() {\n const { modalType } = this.props;\n if (modalType !== MODAL_TYPE.DEFAULT) {\n const nodesInterval = setInterval(() => {\n // !important it checks when nodes are availables\n const { container, actions } = this.state;\n if (!container || !actions) return null;\n clearInterval(nodesInterval);\n this.setState({ childready: true });\n return this.handleResize();\n }, 100);\n }\n }\n\n render() {\n const { props, state } = this;\n const { additionalFooterCssClass, height } = state;\n return createElement(WrappedComponent, {\n ...props,\n height,\n onResize: this.onResize,\n onFooterHeight: this.onFooterHeight,\n onHeaderHeight: this.onHeaderHeight,\n containerRef: this.handleContainer,\n actionsRef: this.handleActions,\n additionalFooterCssClass,\n onAfterOpen: () => {\n if (props.onAfterOpen) props.onAfterOpen();\n this.verifyNodes();\n },\n });\n }\n }\n\n return DSModalWrapper;\n};\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAyC;AACzC,uBAA2B;AAE3B,IAAO,yBAAQ,CAAC,qBAAqB;AACnC,+BAA6B,uBAAU;AAAA,IAAvC,cAJF;AAIE;AACE,mBAAQ;AAAA,QACN,YAAY;AAAA,QACZ,0BAA0B;AAAA,QAC1B,WAAW;AAAA,QACX,SAAS;AAAA,QACT,QAAQ;AAAA;AAWV,4BAAiB,CAAC,MAAM;AACtB,aAAK,mBAAmB;AACxB,aAAK,eAAe,EAAE,UAAU;AAAA;AAGlC,4BAAiB,CAAC,MAAM;AACtB,aAAK,mBAAmB;AACxB,aAAK,eAAe,EAAE,UAAU;AAAA;AAGlC,sBAAW,CAAC,EAAE,aAAa;AACzB,YAAI,KAAK,oBAAoB,KAAK,kBAAkB;AAClD,iBAAO,KAAK,SAAS;AAAA,YACnB,QAAQ,OAAO,SAAS,KAAK,eAAe,KAAK;AAAA;AAAA;AAGrD,eAAO,WAAW,KAAK,SAAS,EAAE,WAAW;AAAA;AAG/C,6BAAkB,CAAC,SAAS;AAC1B,YAAI;AAAM,eAAK,SAAS,EAAE,WAAW;AACrC,aAAK;AAAA;AAGP,2BAAgB,CAAC,SAAS;AACxB,YAAI;AAAM,eAAK,SAAS,EAAE,SAAS;AACnC,aAAK;AAAA;AAAA;AAAA,IAlCP,oBAAoB;AAClB,aAAO,iBAAiB,UAAU,KAAK;AAAA;AAAA,IAGzC,uBAAuB;AACrB,aAAO,oBAAoB,UAAU,KAAK;AAAA;AAAA,IAoC5C,eAAe;AACb,UAAI,CAAC,KAAK;AAAO,eAAO;AACxB,YAAM,EAAE,WAAW,SAAS,eAAe,KAAK;AAChD,UAAI,CAAC;AAAY,eAAO;AACxB,WAAK,SAAS,EAAE,0BAA0B;AAC1C,YAAM,EAAE,aAAa,mBAAmB;AACxC,YAAM,EAAE,aAAa,iBAAiB;AAEtC,UACE,kBACA,gBACC,eAAe,iBAAkB,MAAM,IACxC;AACA,eAAO,KAAK,SAAS,EAAE,0BAA0B;AAAA;AAEnD,aAAO,KAAK,SAAS,EAAE,0BAA0B;AAAA;AAAA,IAGnD,cAAc;AACZ,YAAM,EAAE,cAAc,KAAK;AAC3B,UAAI,cAAc,4BAAW,SAAS;AACpC,cAAM,gBAAgB,YAAY,MAAM;AAEtC,gBAAM,EAAE,WAAW,YAAY,KAAK;AACpC,cAAI,CAAC,aAAa,CAAC;AAAS,mBAAO;AACnC,wBAAc;AACd,eAAK,SAAS,EAAE,YAAY;AAC5B,iBAAO,KAAK;AAAA,WACX;AAAA;AAAA;AAAA,IAIP,SAAS;AACP,YAAM,EAAE,OAAO,UAAU;AACzB,YAAM,EAAE,0BAA0B,WAAW;AAC7C,aAAO,gCAAc,kBAAkB,iCAClC,QADkC;AAAA,QAErC;AAAA,QACA,UAAU,KAAK;AAAA,QACf,gBAAgB,KAAK;AAAA,QACrB,gBAAgB,KAAK;AAAA,QACrB,cAAc,KAAK;AAAA,QACnB,YAAY,KAAK;AAAA,QACjB;AAAA,QACA,aAAa,MAAM;AACjB,cAAI,MAAM;AAAa,kBAAM;AAC7B,eAAK;AAAA;AAAA;AAAA;AAAA;AAMb,SAAO;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var ModalFeedBack_exports = {};
|
|
29
|
+
__export(ModalFeedBack_exports, {
|
|
30
|
+
default: () => ModalFeedBack_default
|
|
31
|
+
});
|
|
32
|
+
var React = __toESM(require("react"));
|
|
33
|
+
var import_react = __toESM(require("react"));
|
|
34
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
35
|
+
var import_ds_classnames = require("@elliemae/ds-classnames");
|
|
36
|
+
var import_constants = require("../../constants");
|
|
37
|
+
const feedbackIconSize = "xxl";
|
|
38
|
+
const { WARNING, ERROR, SUCCESS, HELP, INFO } = import_constants.MODAL_TYPE;
|
|
39
|
+
const getModalType = (modalType, { hasError, hasWarning, hasSuccess, hasInfo, hasHelp }) => {
|
|
40
|
+
if ([WARNING, ERROR, SUCCESS, HELP, INFO].indexOf(modalType) > -1)
|
|
41
|
+
return modalType;
|
|
42
|
+
if (hasError)
|
|
43
|
+
return ERROR;
|
|
44
|
+
if (hasWarning)
|
|
45
|
+
return WARNING;
|
|
46
|
+
if (hasSuccess)
|
|
47
|
+
return SUCCESS;
|
|
48
|
+
if (hasHelp)
|
|
49
|
+
return HELP;
|
|
50
|
+
if (hasInfo)
|
|
51
|
+
return INFO;
|
|
52
|
+
return INFO;
|
|
53
|
+
};
|
|
54
|
+
const getIconType = (modalType) => {
|
|
55
|
+
switch (modalType) {
|
|
56
|
+
case WARNING:
|
|
57
|
+
case ERROR:
|
|
58
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ds_icons.WarningCircle, {
|
|
59
|
+
size: feedbackIconSize
|
|
60
|
+
});
|
|
61
|
+
case SUCCESS:
|
|
62
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ds_icons.CheckmarkCircle, {
|
|
63
|
+
size: feedbackIconSize
|
|
64
|
+
});
|
|
65
|
+
case HELP:
|
|
66
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ds_icons.HelpCircle, {
|
|
67
|
+
size: feedbackIconSize
|
|
68
|
+
});
|
|
69
|
+
case INFO:
|
|
70
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ds_icons.InfoCircle, {
|
|
71
|
+
size: feedbackIconSize
|
|
72
|
+
});
|
|
73
|
+
default:
|
|
74
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ds_icons.InfoCircle, {
|
|
75
|
+
size: feedbackIconSize
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const ModalFeedBack = ({
|
|
80
|
+
className = "",
|
|
81
|
+
modalType = null,
|
|
82
|
+
hasError = false,
|
|
83
|
+
hasWarning = false,
|
|
84
|
+
hasSuccess = false,
|
|
85
|
+
hasInfo = false,
|
|
86
|
+
hasHelp = false
|
|
87
|
+
}) => {
|
|
88
|
+
const type = getModalType(modalType, {
|
|
89
|
+
hasError,
|
|
90
|
+
hasWarning,
|
|
91
|
+
hasSuccess,
|
|
92
|
+
hasInfo,
|
|
93
|
+
hasHelp
|
|
94
|
+
});
|
|
95
|
+
const { cssClassName } = (0, import_ds_classnames.convertPropToCssClassName)("modal-feedback", className, { modalType: type });
|
|
96
|
+
const feedbackIcon = getIconType(type);
|
|
97
|
+
return /* @__PURE__ */ import_react.default.createElement("div", {
|
|
98
|
+
className: cssClassName
|
|
99
|
+
}, feedbackIcon);
|
|
100
|
+
};
|
|
101
|
+
var ModalFeedBack_default = ModalFeedBack;
|
|
102
|
+
module.exports = __toCommonJS(ModalFeedBack_exports);
|
|
103
|
+
//# sourceMappingURL=ModalFeedBack.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/v1/ModalFeedBack/ModalFeedBack.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport { WarningCircle, CheckmarkCircle, HelpCircle, InfoCircle } from '@elliemae/ds-icons';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { MODAL_TYPE } from '../../constants';\n\nconst feedbackIconSize = 'xxl';\n\nconst { WARNING, ERROR, SUCCESS, HELP, INFO } = MODAL_TYPE;\n\nconst getModalType = (modalType, { hasError, hasWarning, hasSuccess, hasInfo, hasHelp }) => {\n if ([WARNING, ERROR, SUCCESS, HELP, INFO].indexOf(modalType) > -1) return modalType;\n if (hasError) return ERROR;\n if (hasWarning) return WARNING;\n if (hasSuccess) return SUCCESS;\n if (hasHelp) return HELP;\n if (hasInfo) return INFO;\n return INFO;\n};\n\nconst getIconType = (modalType) => {\n switch (modalType) {\n case WARNING:\n case ERROR:\n return <WarningCircle size={feedbackIconSize} />;\n case SUCCESS:\n return <CheckmarkCircle size={feedbackIconSize} />;\n case HELP:\n return <HelpCircle size={feedbackIconSize} />;\n case INFO:\n return <InfoCircle size={feedbackIconSize} />;\n default:\n return <InfoCircle size={feedbackIconSize} />;\n }\n};\n\nconst ModalFeedBack = ({\n className = '',\n modalType = null,\n hasError = false,\n hasWarning = false,\n hasSuccess = false,\n hasInfo = false,\n hasHelp = false,\n}) => {\n const type = getModalType(modalType, {\n hasError,\n hasWarning,\n hasSuccess,\n hasInfo,\n hasHelp,\n });\n const { cssClassName } = convertPropToCssClassName('modal-feedback', className, { modalType: type });\n const feedbackIcon = getIconType(type);\n\n return <div className={cssClassName}>{feedbackIcon}</div>;\n};\n\nexport default ModalFeedBack;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,sBAAuE;AACvE,2BAA0C;AAC1C,uBAA2B;AAE3B,MAAM,mBAAmB;AAEzB,MAAM,EAAE,SAAS,OAAO,SAAS,MAAM,SAAS;AAEhD,MAAM,eAAe,CAAC,WAAW,EAAE,UAAU,YAAY,YAAY,SAAS,cAAc;AAC1F,MAAI,CAAC,SAAS,OAAO,SAAS,MAAM,MAAM,QAAQ,aAAa;AAAI,WAAO;AAC1E,MAAI;AAAU,WAAO;AACrB,MAAI;AAAY,WAAO;AACvB,MAAI;AAAY,WAAO;AACvB,MAAI;AAAS,WAAO;AACpB,MAAI;AAAS,WAAO;AACpB,SAAO;AAAA;AAGT,MAAM,cAAc,CAAC,cAAc;AACjC,UAAQ;AAAA,SACD;AAAA,SACA;AACH,aAAO,mDAAC,+BAAD;AAAA,QAAe,MAAM;AAAA;AAAA,SACzB;AACH,aAAO,mDAAC,iCAAD;AAAA,QAAiB,MAAM;AAAA;AAAA,SAC3B;AACH,aAAO,mDAAC,4BAAD;AAAA,QAAY,MAAM;AAAA;AAAA,SACtB;AACH,aAAO,mDAAC,4BAAD;AAAA,QAAY,MAAM;AAAA;AAAA;AAEzB,aAAO,mDAAC,4BAAD;AAAA,QAAY,MAAM;AAAA;AAAA;AAAA;AAI/B,MAAM,gBAAgB,CAAC;AAAA,EACrB,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,WAAW;AAAA,EACX,aAAa;AAAA,EACb,aAAa;AAAA,EACb,UAAU;AAAA,EACV,UAAU;AAAA,MACN;AACJ,QAAM,OAAO,aAAa,WAAW;AAAA,IACnC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAEF,QAAM,EAAE,iBAAiB,oDAA0B,kBAAkB,WAAW,EAAE,WAAW;AAC7F,QAAM,eAAe,YAAY;AAEjC,SAAO,mDAAC,OAAD;AAAA,IAAK,WAAW;AAAA,KAAe;AAAA;AAGxC,IAAO,wBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
6
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
7
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
8
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
9
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
10
|
+
var __spreadValues = (a, b) => {
|
|
11
|
+
for (var prop in b || (b = {}))
|
|
12
|
+
if (__hasOwnProp.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
if (__getOwnPropSymbols)
|
|
15
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
16
|
+
if (__propIsEnum.call(b, prop))
|
|
17
|
+
__defNormalProp(a, prop, b[prop]);
|
|
18
|
+
}
|
|
19
|
+
return a;
|
|
20
|
+
};
|
|
21
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
22
|
+
var __export = (target, all) => {
|
|
23
|
+
for (var name in all)
|
|
24
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
25
|
+
};
|
|
26
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
27
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
28
|
+
for (let key of __getOwnPropNames(module2))
|
|
29
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
30
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
31
|
+
}
|
|
32
|
+
return target;
|
|
33
|
+
};
|
|
34
|
+
var __toESM = (module2, isNodeMode) => {
|
|
35
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
36
|
+
};
|
|
37
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
38
|
+
return (module2, temp) => {
|
|
39
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
40
|
+
};
|
|
41
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
42
|
+
var DSModal_exports = {};
|
|
43
|
+
__export(DSModal_exports, {
|
|
44
|
+
DSModalContent: () => import_ModalContent.DSModalContent,
|
|
45
|
+
DSModalWithSchema: () => DSModalWithSchema,
|
|
46
|
+
default: () => DSModal_default
|
|
47
|
+
});
|
|
48
|
+
var React = __toESM(require("react"));
|
|
49
|
+
var import_react = __toESM(require("react"));
|
|
50
|
+
var import_react_desc = require("react-desc");
|
|
51
|
+
var import_react_modal = __toESM(require("react-modal"));
|
|
52
|
+
var import_ds_classnames = require("@elliemae/ds-classnames");
|
|
53
|
+
var import_constants = require("../constants");
|
|
54
|
+
var import_ModalContent = require("./components/ModalContent");
|
|
55
|
+
const DSModal = ({
|
|
56
|
+
containerProps = {},
|
|
57
|
+
className = "",
|
|
58
|
+
style = {},
|
|
59
|
+
size = "default",
|
|
60
|
+
modalType = import_constants.MODAL_TYPE_V2.INFORMATION,
|
|
61
|
+
modalSubType = null,
|
|
62
|
+
modalTitle = "",
|
|
63
|
+
dataTestId = "ds-modal",
|
|
64
|
+
centered = false,
|
|
65
|
+
showRejectButton = false,
|
|
66
|
+
showClose = true,
|
|
67
|
+
searchProps = {},
|
|
68
|
+
actionsRef = () => null,
|
|
69
|
+
additionalFooterCssClass,
|
|
70
|
+
overridePropsConfirmButton = {},
|
|
71
|
+
overridePropsRejectButton = {},
|
|
72
|
+
children,
|
|
73
|
+
isOpen = true,
|
|
74
|
+
onClose = () => null,
|
|
75
|
+
onAfterOpen = () => null,
|
|
76
|
+
onConfirm = () => null,
|
|
77
|
+
onReject = () => null,
|
|
78
|
+
rejectLabel = "Discard",
|
|
79
|
+
confirmLabel = "Save",
|
|
80
|
+
shouldCloseOnOverlayClick = false,
|
|
81
|
+
appElement = "#root",
|
|
82
|
+
zIndex = 10,
|
|
83
|
+
removePadding = false
|
|
84
|
+
}) => {
|
|
85
|
+
if (typeof document !== "undefined" && true && document && import_react_modal.default.setAppElement) {
|
|
86
|
+
import_react_modal.default.setAppElement(appElement);
|
|
87
|
+
}
|
|
88
|
+
const {
|
|
89
|
+
cssClassName,
|
|
90
|
+
classNameBlock,
|
|
91
|
+
classNameModifier
|
|
92
|
+
} = (0, import_ds_classnames.convertPropToCssClassName)("modal-v2", className, { size });
|
|
93
|
+
return /* @__PURE__ */ import_react.default.createElement(import_react_modal.default, {
|
|
94
|
+
testId: dataTestId,
|
|
95
|
+
className: `${cssClassName} ${classNameBlock(`type-${modalType}`)}`,
|
|
96
|
+
contentLabel: modalTitle,
|
|
97
|
+
isOpen,
|
|
98
|
+
onAfterOpen,
|
|
99
|
+
onRequestClose: onClose,
|
|
100
|
+
overlayClassName: `${classNameBlock("overlay")} ${classNameModifier(centered ? "center" : "top")}`,
|
|
101
|
+
shouldCloseOnOverlayClick,
|
|
102
|
+
style: {
|
|
103
|
+
content: __spreadValues({}, style),
|
|
104
|
+
overlay: {
|
|
105
|
+
zIndex
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}, /* @__PURE__ */ import_react.default.createElement(import_ModalContent.DSModalContent, {
|
|
109
|
+
actionsRef,
|
|
110
|
+
additionalFooterCssClass,
|
|
111
|
+
confirmLabel,
|
|
112
|
+
containerProps,
|
|
113
|
+
modalSubType,
|
|
114
|
+
modalTitle,
|
|
115
|
+
modalType,
|
|
116
|
+
onClose,
|
|
117
|
+
onConfirm,
|
|
118
|
+
onReject,
|
|
119
|
+
overridePropsConfirmButton,
|
|
120
|
+
overridePropsRejectButton,
|
|
121
|
+
rejectLabel,
|
|
122
|
+
searchProps,
|
|
123
|
+
showClose,
|
|
124
|
+
showRejectButton,
|
|
125
|
+
removePadding
|
|
126
|
+
}, children));
|
|
127
|
+
};
|
|
128
|
+
const props = {
|
|
129
|
+
containerProps: import_react_desc.PropTypes.object.description("inject props to container wrapper"),
|
|
130
|
+
className: import_react_desc.PropTypes.string.description("css class"),
|
|
131
|
+
style: import_react_desc.PropTypes.object.description("style object for container wrapper"),
|
|
132
|
+
modalTitle: import_react_desc.PropTypes.string.description("modal container title"),
|
|
133
|
+
centered: import_react_desc.PropTypes.bool.description("center container"),
|
|
134
|
+
showRejectButton: import_react_desc.PropTypes.bool.description("show reject button"),
|
|
135
|
+
showClose: import_react_desc.PropTypes.bool.description("show close button"),
|
|
136
|
+
searchProps: import_react_desc.PropTypes.object.description("Props for search component"),
|
|
137
|
+
additionalFooterCssClass: import_react_desc.PropTypes.string.description("css class for footer"),
|
|
138
|
+
overridePropsConfirmButton: import_react_desc.PropTypes.object.description("override props confirm button"),
|
|
139
|
+
overridePropsRejectButton: import_react_desc.PropTypes.object.description("override props reject button"),
|
|
140
|
+
isOpen: import_react_desc.PropTypes.bool.description("controlled isOpen flag"),
|
|
141
|
+
onClose: import_react_desc.PropTypes.func.description("close callback"),
|
|
142
|
+
onAfterOpen: import_react_desc.PropTypes.func.description("after open callback"),
|
|
143
|
+
onConfirm: import_react_desc.PropTypes.func.description("confirm callback"),
|
|
144
|
+
onReject: import_react_desc.PropTypes.func.description("reject callback"),
|
|
145
|
+
rejectLabel: import_react_desc.PropTypes.string.description("reject label"),
|
|
146
|
+
confirmLabel: import_react_desc.PropTypes.string.description("confirm text string"),
|
|
147
|
+
size: import_react_desc.PropTypes.oneOf([
|
|
148
|
+
"default",
|
|
149
|
+
"xx-large",
|
|
150
|
+
"x-large",
|
|
151
|
+
"large",
|
|
152
|
+
"medium",
|
|
153
|
+
"small"
|
|
154
|
+
]).description("modal container size"),
|
|
155
|
+
modalSubType: import_react_desc.PropTypes.any.description("modal sub type"),
|
|
156
|
+
modalType: import_react_desc.PropTypes.any.description("modal type"),
|
|
157
|
+
actionsRef: import_react_desc.PropTypes.any.description("ref for modal footer actions"),
|
|
158
|
+
children: import_react_desc.PropTypes.oneOfType([
|
|
159
|
+
import_react_desc.PropTypes.element,
|
|
160
|
+
import_react_desc.PropTypes.arrayOf([import_react_desc.PropTypes.element])
|
|
161
|
+
]).description("modal container children"),
|
|
162
|
+
shouldCloseOnOverlayClick: import_react_desc.PropTypes.bool.description("close on click outside container"),
|
|
163
|
+
appElement: import_react_desc.PropTypes.string.description("App element ID to inject the modal"),
|
|
164
|
+
zIndex: import_react_desc.PropTypes.number.description("zindex for modal container"),
|
|
165
|
+
removePadding: import_react_desc.PropTypes.bool.description("remove modal builtin padding")
|
|
166
|
+
};
|
|
167
|
+
DSModal.propTypes = props;
|
|
168
|
+
const DSModalWithSchema = (0, import_react_desc.describe)(DSModal);
|
|
169
|
+
DSModalWithSchema.propTypes = props;
|
|
170
|
+
var DSModal_default = DSModal;
|
|
171
|
+
module.exports = __toCommonJS(DSModal_exports);
|
|
172
|
+
//# sourceMappingURL=DSModal.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/v2/DSModal.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport ReactModal from 'react-modal';\nimport { convertPropToCssClassName } from '@elliemae/ds-classnames';\nimport { MODAL_TYPE_V2 } from '../constants';\nimport { DSModalContent } from './components/ModalContent';\n\nconst DSModal = ({\n containerProps = {},\n className = '',\n style = {},\n size = 'default',\n //\n modalType = MODAL_TYPE_V2.INFORMATION,\n modalSubType = null,\n modalTitle = '',\n dataTestId = 'ds-modal',\n centered = false,\n showRejectButton = false,\n showClose = true,\n searchProps = {},\n // override\n actionsRef = () => null,\n additionalFooterCssClass,\n overridePropsConfirmButton = {},\n overridePropsRejectButton = {},\n // react modal\n children,\n isOpen = true,\n onClose = () => null,\n onAfterOpen = () => null,\n onConfirm = () => null,\n onReject = () => null,\n rejectLabel = 'Discard',\n confirmLabel = 'Save',\n shouldCloseOnOverlayClick = false,\n appElement = '#root',\n zIndex = 10,\n removePadding = false,\n}) => {\n if (\n typeof document !== 'undefined' &&\n process.env.NODE_ENV !== 'test' &&\n document &&\n ReactModal.setAppElement\n ) {\n ReactModal.setAppElement(appElement);\n }\n\n const {\n cssClassName,\n classNameBlock,\n classNameModifier,\n } = convertPropToCssClassName('modal-v2', className, { size });\n\n return (\n <ReactModal\n testId={dataTestId}\n className={`${cssClassName} ${classNameBlock(`type-${modalType}`)}`}\n contentLabel={modalTitle}\n isOpen={isOpen}\n onAfterOpen={onAfterOpen}\n onRequestClose={onClose}\n overlayClassName={`${classNameBlock('overlay')} ${classNameModifier(\n centered ? 'center' : 'top',\n )}`}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n style={{\n content: {\n ...style,\n },\n overlay: {\n // position: 'absolute', https://jira.elliemae.io/browse/PUI-1471, the overlay should be positioned based on the browser window rather positioned absolute to its parent\n zIndex,\n },\n }}\n >\n <DSModalContent\n actionsRef={actionsRef}\n additionalFooterCssClass={additionalFooterCssClass}\n confirmLabel={confirmLabel}\n containerProps={containerProps}\n modalSubType={modalSubType}\n modalTitle={modalTitle}\n modalType={modalType}\n onClose={onClose}\n onConfirm={onConfirm}\n onReject={onReject}\n overridePropsConfirmButton={overridePropsConfirmButton}\n overridePropsRejectButton={overridePropsRejectButton}\n rejectLabel={rejectLabel}\n searchProps={searchProps}\n showClose={showClose}\n showRejectButton={showRejectButton}\n removePadding={removePadding}\n >\n {children}\n </DSModalContent>\n </ReactModal>\n );\n};\n\nconst props = {\n /** inject props to container wrapper */\n containerProps: PropTypes.object.description(\n 'inject props to container wrapper',\n ),\n /** css class */\n className: PropTypes.string.description('css class'),\n /** style object for container wrapper */\n style: PropTypes.object.description('style object for container wrapper'),\n /** modal container title */\n modalTitle: PropTypes.string.description('modal container title'),\n /** center container */\n centered: PropTypes.bool.description('center container'),\n /** show reject button */\n showRejectButton: PropTypes.bool.description('show reject button'),\n /** show close button */\n showClose: PropTypes.bool.description('show close button'),\n /*\n Props for search component\n */\n searchProps: PropTypes.object.description('Props for search component'),\n /** css class for footer */\n additionalFooterCssClass: PropTypes.string.description(\n 'css class for footer',\n ),\n /** override props confirm button */\n overridePropsConfirmButton: PropTypes.object.description(\n 'override props confirm button',\n ),\n /** override props reject button */\n overridePropsRejectButton: PropTypes.object.description(\n 'override props reject button',\n ),\n /** controlled isOpen flag */\n isOpen: PropTypes.bool.description('controlled isOpen flag'),\n /** close callback */\n onClose: PropTypes.func.description('close callback'),\n /** after open callback */\n onAfterOpen: PropTypes.func.description('after open callback'),\n /** confirm callback */\n onConfirm: PropTypes.func.description('confirm callback'),\n /** reject callback */\n onReject: PropTypes.func.description('reject callback'),\n /** reject label */\n rejectLabel: PropTypes.string.description('reject label'),\n /** confirm text string */\n confirmLabel: PropTypes.string.description('confirm text string'),\n /** modal container size */\n size: PropTypes.oneOf([\n 'default',\n 'xx-large',\n 'x-large',\n 'large',\n 'medium',\n 'small',\n ]).description('modal container size'),\n /** modal sub type */\n modalSubType: PropTypes.any.description('modal sub type'),\n /** modal type */\n modalType: PropTypes.any.description('modal type'),\n /** ref for modal footer actions */\n actionsRef: PropTypes.any.description('ref for modal footer actions'),\n /** modal container children */\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf([PropTypes.element]),\n ]).description('modal container children'),\n /** close on click outside container */\n shouldCloseOnOverlayClick: PropTypes.bool.description(\n 'close on click outside container',\n ),\n /*\n App element ID to inject the modal\n */\n appElement: PropTypes.string.description(\n 'App element ID to inject the modal',\n ),\n /** zindex for modal container */\n zIndex: PropTypes.number.description('zindex for modal container'),\n /** remove modal builtin padding */\n removePadding: PropTypes.bool.description('remove modal builtin padding'),\n};\n\nDSModal.propTypes = props;\n\nconst DSModalWithSchema = describe(DSModal);\nDSModalWithSchema.propTypes = props;\n\nexport { DSModalContent, DSModalWithSchema };\nexport default DSModal;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var blocks_exports = {};
|
|
29
|
+
__export(blocks_exports, {
|
|
30
|
+
ModalContent: () => ModalContent,
|
|
31
|
+
ModalFeedback: () => ModalFeedback,
|
|
32
|
+
ModalFooter: () => ModalFooter,
|
|
33
|
+
ModalFooterActions: () => ModalFooterActions,
|
|
34
|
+
ModalHeader: () => ModalHeader,
|
|
35
|
+
ModalHeaderTopRight: () => ModalHeaderTopRight,
|
|
36
|
+
ModalTitle: () => ModalTitle,
|
|
37
|
+
ModalWrapper: () => ModalWrapper
|
|
38
|
+
});
|
|
39
|
+
var React = __toESM(require("react"));
|
|
40
|
+
var import_ds_classnames = require("@elliemae/ds-classnames");
|
|
41
|
+
const blockName = "modal-v2";
|
|
42
|
+
const ModalHeader = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "modal-header", ({ type, showClose }) => ({
|
|
43
|
+
[type]: type,
|
|
44
|
+
"with-close": showClose
|
|
45
|
+
}));
|
|
46
|
+
const ModalHeaderTopRight = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "modal-header-close", ({ type }) => ({
|
|
47
|
+
[type]: type
|
|
48
|
+
}));
|
|
49
|
+
const ModalFeedback = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "modal-feedback", ({ type }) => ({
|
|
50
|
+
[type]: type
|
|
51
|
+
}));
|
|
52
|
+
const ModalTitle = (0, import_ds_classnames.aggregatedClasses)("h3")(blockName, "modal-title", ({ type }) => ({
|
|
53
|
+
[type]: type
|
|
54
|
+
}));
|
|
55
|
+
const ModalContent = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "modal-content", ({ type, removePadding }) => ({
|
|
56
|
+
[type]: type,
|
|
57
|
+
"remove-padding": removePadding
|
|
58
|
+
}));
|
|
59
|
+
const ModalWrapper = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "modal-wrapper", ({ type, removePadding }) => ({
|
|
60
|
+
[type]: type,
|
|
61
|
+
"remove-padding": removePadding
|
|
62
|
+
}));
|
|
63
|
+
const ModalFooter = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "modal-footer", ({ type, additionalFooterCssClass }) => ({
|
|
64
|
+
[type]: type,
|
|
65
|
+
[additionalFooterCssClass]: additionalFooterCssClass
|
|
66
|
+
}));
|
|
67
|
+
const ModalFooterActions = (0, import_ds_classnames.aggregatedClasses)("div")(blockName, "modal-footer-actions", ({ type }) => ({
|
|
68
|
+
[type]: type
|
|
69
|
+
}));
|
|
70
|
+
module.exports = __toCommonJS(blocks_exports);
|
|
71
|
+
//# sourceMappingURL=blocks.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/v2/blocks.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import { aggregatedClasses } from '@elliemae/ds-classnames';\n\nconst blockName = 'modal-v2';\n\nexport const ModalHeader = aggregatedClasses('div')(blockName, 'modal-header', ({ type, showClose }) => ({\n [type]: type,\n 'with-close': showClose,\n}));\n\nexport const ModalHeaderTopRight = aggregatedClasses('div')(blockName, 'modal-header-close', ({ type }) => ({\n [type]: type,\n}));\n\nexport const ModalFeedback = aggregatedClasses('div')(blockName, 'modal-feedback', ({ type }) => ({\n [type]: type,\n}));\n\nexport const ModalTitle = aggregatedClasses('h3')(blockName, 'modal-title', ({ type }) => ({\n [type]: type,\n}));\n\nexport const ModalContent = aggregatedClasses('div')(blockName, 'modal-content', ({ type, removePadding }) => ({\n [type]: type,\n 'remove-padding': removePadding,\n}));\n\nexport const ModalWrapper = aggregatedClasses('div')(blockName, 'modal-wrapper', ({ type, removePadding }) => ({\n [type]: type,\n 'remove-padding': removePadding,\n}));\n\nexport const ModalFooter = aggregatedClasses('div')(\n blockName,\n 'modal-footer',\n ({ type, additionalFooterCssClass }) => ({\n [type]: type,\n [additionalFooterCssClass]: additionalFooterCssClass,\n }),\n);\n\nexport const ModalFooterActions = aggregatedClasses('div')(blockName, 'modal-footer-actions', ({ type }) => ({\n [type]: type,\n}));\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,2BAAkC;AAElC,MAAM,YAAY;AAEX,MAAM,cAAc,4CAAkB,OAAO,WAAW,gBAAgB,CAAC,EAAE,MAAM,gBAAiB;AAAA,GACtG,OAAO;AAAA,EACR,cAAc;AAAA;AAGT,MAAM,sBAAsB,4CAAkB,OAAO,WAAW,sBAAsB,CAAC,EAAE,WAAY;AAAA,GACzG,OAAO;AAAA;AAGH,MAAM,gBAAgB,4CAAkB,OAAO,WAAW,kBAAkB,CAAC,EAAE,WAAY;AAAA,GAC/F,OAAO;AAAA;AAGH,MAAM,aAAa,4CAAkB,MAAM,WAAW,eAAe,CAAC,EAAE,WAAY;AAAA,GACxF,OAAO;AAAA;AAGH,MAAM,eAAe,4CAAkB,OAAO,WAAW,iBAAiB,CAAC,EAAE,MAAM,oBAAqB;AAAA,GAC5G,OAAO;AAAA,EACR,kBAAkB;AAAA;AAGb,MAAM,eAAe,4CAAkB,OAAO,WAAW,iBAAiB,CAAC,EAAE,MAAM,oBAAqB;AAAA,GAC5G,OAAO;AAAA,EACR,kBAAkB;AAAA;AAGb,MAAM,cAAc,4CAAkB,OAC3C,WACA,gBACA,CAAC,EAAE,MAAM,+BAAgC;AAAA,GACtC,OAAO;AAAA,GACP,2BAA2B;AAAA;AAIzB,MAAM,qBAAqB,4CAAkB,OAAO,WAAW,wBAAwB,CAAC,EAAE,WAAY;AAAA,GAC1G,OAAO;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
var __create = Object.create;
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __getProtoOf = Object.getPrototypeOf;
|
|
6
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
7
|
+
var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
|
|
8
|
+
var __export = (target, all) => {
|
|
9
|
+
for (var name in all)
|
|
10
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
11
|
+
};
|
|
12
|
+
var __reExport = (target, module2, copyDefault, desc) => {
|
|
13
|
+
if (module2 && typeof module2 === "object" || typeof module2 === "function") {
|
|
14
|
+
for (let key of __getOwnPropNames(module2))
|
|
15
|
+
if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
|
|
16
|
+
__defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
|
|
17
|
+
}
|
|
18
|
+
return target;
|
|
19
|
+
};
|
|
20
|
+
var __toESM = (module2, isNodeMode) => {
|
|
21
|
+
return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
|
|
22
|
+
};
|
|
23
|
+
var __toCommonJS = /* @__PURE__ */ ((cache) => {
|
|
24
|
+
return (module2, temp) => {
|
|
25
|
+
return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
|
|
26
|
+
};
|
|
27
|
+
})(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
|
|
28
|
+
var DecisionHeader_exports = {};
|
|
29
|
+
__export(DecisionHeader_exports, {
|
|
30
|
+
DecisionHeader: () => DecisionHeader,
|
|
31
|
+
default: () => DecisionHeader_default
|
|
32
|
+
});
|
|
33
|
+
var React = __toESM(require("react"));
|
|
34
|
+
var import_react = __toESM(require("react"));
|
|
35
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
36
|
+
var import_ds_button = __toESM(require("@elliemae/ds-button"));
|
|
37
|
+
var import_blocks = require("../blocks");
|
|
38
|
+
const DecisionHeader = ({ onClose, showClose }) => /* @__PURE__ */ import_react.default.createElement(import_blocks.ModalHeader, {
|
|
39
|
+
classProps: { type: "decision", showClose }
|
|
40
|
+
}, showClose && /* @__PURE__ */ import_react.default.createElement(import_ds_button.default, {
|
|
41
|
+
buttonType: "link",
|
|
42
|
+
containerProps: { "data-testid": "modal-button-close" },
|
|
43
|
+
icon: /* @__PURE__ */ import_react.default.createElement(import_ds_icons.Close, null),
|
|
44
|
+
onClick: onClose
|
|
45
|
+
}));
|
|
46
|
+
var DecisionHeader_default = DecisionHeader;
|
|
47
|
+
module.exports = __toCommonJS(DecisionHeader_exports);
|
|
48
|
+
//# sourceMappingURL=DecisionHeader.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/v2/components/DecisionHeader.tsx", "../../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { Close } from '@elliemae/ds-icons';\nimport DSButton from '@elliemae/ds-button';\nimport { ModalHeader } from '../blocks';\n\nexport const DecisionHeader = ({ onClose, showClose }) => (\n <ModalHeader classProps={{ type: 'decision', showClose }}>\n {showClose && (\n <DSButton\n buttonType=\"link\"\n containerProps={{ 'data-testid': 'modal-button-close' }}\n icon={<Close />}\n onClick={onClose}\n />\n )}\n </ModalHeader>\n);\n\nexport default DecisionHeader;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADCvB,mBAAkB;AAClB,sBAAsB;AACtB,uBAAqB;AACrB,oBAA4B;AAErB,MAAM,iBAAiB,CAAC,EAAE,SAAS,gBACxC,mDAAC,2BAAD;AAAA,EAAa,YAAY,EAAE,MAAM,YAAY;AAAA,GAC1C,aACC,mDAAC,0BAAD;AAAA,EACE,YAAW;AAAA,EACX,gBAAgB,EAAE,eAAe;AAAA,EACjC,MAAM,mDAAC,uBAAD;AAAA,EACN,SAAS;AAAA;AAMjB,IAAO,yBAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|