@elliemae/ds-imagelibrarymodal 2.1.1-rc.1 → 2.2.0-alpha.4
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/cjs/DSImageLibraryModal.js +82 -63
- package/cjs/DSImageLibraryModal.js.map +7 -0
- package/cjs/components/ImageLibraryModalImpl.js +104 -170
- package/cjs/components/ImageLibraryModalImpl.js.map +7 -0
- package/cjs/index.js +35 -7
- package/cjs/index.js.map +7 -0
- package/esm/DSImageLibraryModal.js +52 -55
- package/esm/DSImageLibraryModal.js.map +7 -0
- package/esm/components/ImageLibraryModalImpl.js +74 -157
- package/esm/components/ImageLibraryModalImpl.js.map +7 -0
- package/esm/index.js +6 -1
- package/esm/index.js.map +7 -0
- package/package.json +6 -6
|
@@ -1,64 +1,83 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
|
|
11
|
-
var DSModal = require('@elliemae/ds-modal');
|
|
12
|
-
var constants = require('@elliemae/ds-shared/constants');
|
|
13
|
-
var ImageLibraryModalImpl = require('./components/ImageLibraryModalImpl.js');
|
|
14
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
15
|
-
|
|
16
|
-
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
17
|
-
|
|
18
|
-
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
19
|
-
var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
|
|
20
|
-
|
|
21
|
-
const _excluded = ["containerProps", "confirmLabel", "disableDoubleClick", "isOpen", "modalTitle", "modalType", "rejectLabel", "shouldCloseOnOverlayClick", "size", "imagesData", "onSelect"];
|
|
22
|
-
|
|
23
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
24
|
-
|
|
25
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty__default["default"](target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
26
|
-
const modalTypes = Object.values(DSModal.MODAL_TYPE);
|
|
27
|
-
|
|
28
|
-
const DSImageLibraryModal = _ref => {
|
|
29
|
-
let {
|
|
30
|
-
containerProps = {},
|
|
31
|
-
confirmLabel = 'Add',
|
|
32
|
-
disableDoubleClick = false,
|
|
33
|
-
isOpen = true,
|
|
34
|
-
modalTitle = 'Add Image',
|
|
35
|
-
modalType = modalTypes[2],
|
|
36
|
-
rejectLabel = 'Cancel',
|
|
37
|
-
shouldCloseOnOverlayClick = true,
|
|
38
|
-
size = constants.sizeOptions[3],
|
|
39
|
-
imagesData = [{
|
|
40
|
-
url: 'https://www.freeiconspng.com/minicovers/no-image-icon-6.png',
|
|
41
|
-
name: 'no image',
|
|
42
|
-
createdBy: 'user:John Doe',
|
|
43
|
-
createdDate: '0000-01-01 00:00 AM UTC'
|
|
44
|
-
}],
|
|
45
|
-
onSelect = () => null
|
|
46
|
-
} = _ref,
|
|
47
|
-
rest = _objectWithoutProperties__default["default"](_ref, _excluded);
|
|
48
|
-
|
|
49
|
-
return /*#__PURE__*/jsxRuntime.jsx(ImageLibraryModalImpl, _objectSpread({
|
|
50
|
-
confirmLabel: confirmLabel,
|
|
51
|
-
containerProps: containerProps,
|
|
52
|
-
disableDoubleClick: disableDoubleClick,
|
|
53
|
-
imagesData: imagesData,
|
|
54
|
-
isOpen: isOpen,
|
|
55
|
-
modalTitle: modalTitle,
|
|
56
|
-
modalType: modalType,
|
|
57
|
-
onSelect: onSelect,
|
|
58
|
-
rejectLabel: rejectLabel,
|
|
59
|
-
shouldCloseOnOverlayClick: shouldCloseOnOverlayClick,
|
|
60
|
-
size: size
|
|
61
|
-
}, rest));
|
|
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 });
|
|
62
11
|
};
|
|
63
|
-
|
|
64
|
-
|
|
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 DSImageLibraryModal_exports = {};
|
|
29
|
+
__export(DSImageLibraryModal_exports, {
|
|
30
|
+
default: () => DSImageLibraryModal_default
|
|
31
|
+
});
|
|
32
|
+
var React = __toESM(require("react"));
|
|
33
|
+
var import_react = __toESM(require("react"));
|
|
34
|
+
var import_prop_types = __toESM(require("prop-types"));
|
|
35
|
+
var import_ds_modal = require("@elliemae/ds-modal");
|
|
36
|
+
var import_constants = require("@elliemae/ds-shared/constants");
|
|
37
|
+
var import_ImageLibraryModalImpl = __toESM(require("./components/ImageLibraryModalImpl"));
|
|
38
|
+
const modalTypes = Object.values(import_ds_modal.MODAL_TYPE);
|
|
39
|
+
const DSImageLibraryModal = ({
|
|
40
|
+
containerProps = {},
|
|
41
|
+
confirmLabel = "Add",
|
|
42
|
+
disableDoubleClick = false,
|
|
43
|
+
isOpen = true,
|
|
44
|
+
modalTitle = "Add Image",
|
|
45
|
+
modalType = modalTypes[2],
|
|
46
|
+
rejectLabel = "Cancel",
|
|
47
|
+
shouldCloseOnOverlayClick = true,
|
|
48
|
+
size = import_constants.sizeOptions[3],
|
|
49
|
+
imagesData = [
|
|
50
|
+
{
|
|
51
|
+
url: "https://www.freeiconspng.com/minicovers/no-image-icon-6.png",
|
|
52
|
+
name: "no image",
|
|
53
|
+
createdBy: "user:John Doe",
|
|
54
|
+
createdDate: "0000-01-01 00:00 AM UTC"
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
onSelect = () => null,
|
|
58
|
+
...rest
|
|
59
|
+
}) => /* @__PURE__ */ import_react.default.createElement(import_ImageLibraryModalImpl.default, {
|
|
60
|
+
confirmLabel,
|
|
61
|
+
containerProps,
|
|
62
|
+
disableDoubleClick,
|
|
63
|
+
imagesData,
|
|
64
|
+
isOpen,
|
|
65
|
+
modalTitle,
|
|
66
|
+
modalType,
|
|
67
|
+
onSelect,
|
|
68
|
+
rejectLabel,
|
|
69
|
+
shouldCloseOnOverlayClick,
|
|
70
|
+
size,
|
|
71
|
+
...rest
|
|
72
|
+
});
|
|
73
|
+
DSImageLibraryModal.propTypes = {
|
|
74
|
+
containerProps: import_prop_types.default.shape({}),
|
|
75
|
+
imagesData: import_prop_types.default.arrayOf(import_prop_types.default.shape({
|
|
76
|
+
url: import_prop_types.default.string,
|
|
77
|
+
name: import_prop_types.default.string
|
|
78
|
+
})),
|
|
79
|
+
onSelect: import_prop_types.default.func
|
|
80
|
+
};
|
|
81
|
+
var DSImageLibraryModal_default = DSImageLibraryModal;
|
|
82
|
+
module.exports = __toCommonJS(DSImageLibraryModal_exports);
|
|
83
|
+
//# sourceMappingURL=DSImageLibraryModal.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/DSImageLibraryModal.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { MODAL_TYPE } from '@elliemae/ds-modal';\nimport { sizeOptions } from '@elliemae/ds-shared/constants';\nimport ImageLibraryModalImpl from './components/ImageLibraryModalImpl';\n\nconst modalTypes = Object.values(MODAL_TYPE);\n\nconst DSImageLibraryModal = ({\n containerProps = {},\n confirmLabel = 'Add',\n disableDoubleClick = false,\n isOpen = true,\n modalTitle = 'Add Image',\n modalType = modalTypes[2],\n rejectLabel = 'Cancel',\n shouldCloseOnOverlayClick = true,\n size = sizeOptions[3],\n imagesData = [\n {\n url: 'https://www.freeiconspng.com/minicovers/no-image-icon-6.png',\n name: 'no image',\n createdBy: 'user:John Doe',\n createdDate: '0000-01-01 00:00 AM UTC',\n },\n ],\n onSelect = () => null,\n ...rest\n}) => (\n <ImageLibraryModalImpl\n confirmLabel={confirmLabel}\n containerProps={containerProps}\n disableDoubleClick={disableDoubleClick}\n imagesData={imagesData}\n isOpen={isOpen}\n modalTitle={modalTitle}\n modalType={modalType}\n onSelect={onSelect}\n rejectLabel={rejectLabel}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n size={size}\n {...rest}\n />\n);\n\n/** Inherits DSModal props */\nDSImageLibraryModal.propTypes = {\n containerProps: PropTypes.shape({}),\n /** List of images src */\n imagesData: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string,\n name: PropTypes.string,\n }),\n ),\n /** Handler when user selects an image */\n onSelect: PropTypes.func,\n};\n\nexport default DSImageLibraryModal;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,wBAAsB;AACtB,sBAA2B;AAC3B,uBAA4B;AAC5B,mCAAkC;AAElC,MAAM,aAAa,OAAO,OAAO;AAEjC,MAAM,sBAAsB,CAAC;AAAA,EAC3B,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY,WAAW;AAAA,EACvB,cAAc;AAAA,EACd,4BAA4B;AAAA,EAC5B,OAAO,6BAAY;AAAA,EACnB,aAAa;AAAA,IACX;AAAA,MACE,KAAK;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,MACX,aAAa;AAAA;AAAA;AAAA,EAGjB,WAAW,MAAM;AAAA,KACd;AAAA,MAEH,mDAAC,sCAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACI;AAAA;AAKR,oBAAoB,YAAY;AAAA,EAC9B,gBAAgB,0BAAU,MAAM;AAAA,EAEhC,YAAY,0BAAU,QACpB,0BAAU,MAAM;AAAA,IACd,KAAK,0BAAU;AAAA,IACf,MAAM,0BAAU;AAAA;AAAA,EAIpB,UAAU,0BAAU;AAAA;AAGtB,IAAO,8BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,254 +1,188 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
var
|
|
5
|
-
var
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
var
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
var
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
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 ImageLibraryModalImpl_exports = {};
|
|
29
|
+
__export(ImageLibraryModalImpl_exports, {
|
|
30
|
+
default: () => ImageLibraryModalImpl
|
|
31
|
+
});
|
|
32
|
+
var React = __toESM(require("react"));
|
|
33
|
+
var import_react = __toESM(require("react"));
|
|
34
|
+
var import_ds_modal = __toESM(require("@elliemae/ds-modal"));
|
|
35
|
+
var import_ds_spinner = __toESM(require("@elliemae/ds-spinner"));
|
|
36
|
+
var import_ds_icon = require("@elliemae/ds-icon");
|
|
37
|
+
var import_lodash = require("lodash");
|
|
38
|
+
var import_react_loading_image = __toESM(require("react-loading-image"));
|
|
39
|
+
var import_ds_icons = require("@elliemae/ds-icons");
|
|
40
|
+
const elementClassName = "imglibmodal-element";
|
|
41
|
+
class ImageLibraryModalImpl extends import_react.default.PureComponent {
|
|
41
42
|
constructor(props) {
|
|
42
43
|
super(props);
|
|
43
|
-
|
|
44
44
|
this.onReject = () => {
|
|
45
|
-
const {
|
|
46
|
-
onReject,
|
|
47
|
-
onClose
|
|
48
|
-
} = this.props;
|
|
49
|
-
|
|
45
|
+
const { onReject, onClose } = this.props;
|
|
50
46
|
if (onReject) {
|
|
51
47
|
onReject();
|
|
52
48
|
} else {
|
|
53
49
|
onClose();
|
|
54
50
|
}
|
|
55
51
|
};
|
|
56
|
-
|
|
57
52
|
this.handleElementClick = (e, image) => {
|
|
58
|
-
if (e.key && e.key !==
|
|
53
|
+
if (e.key && e.key !== " ") {
|
|
59
54
|
return;
|
|
60
55
|
}
|
|
61
|
-
|
|
62
|
-
const {
|
|
63
|
-
selected
|
|
64
|
-
} = this.state;
|
|
65
|
-
const {
|
|
66
|
-
disableDoubleClick,
|
|
67
|
-
onConfirm,
|
|
68
|
-
onSelect
|
|
69
|
-
} = this.props;
|
|
70
|
-
|
|
56
|
+
const { selected } = this.state;
|
|
57
|
+
const { disableDoubleClick, onConfirm, onSelect } = this.props;
|
|
71
58
|
if (image === selected && onConfirm && !disableDoubleClick) {
|
|
72
59
|
onConfirm();
|
|
73
60
|
return;
|
|
74
61
|
}
|
|
75
|
-
|
|
76
62
|
this.setState({
|
|
77
63
|
selected: image,
|
|
78
64
|
user: this.getUser(image)
|
|
79
65
|
});
|
|
80
|
-
|
|
81
66
|
if (onSelect) {
|
|
82
67
|
onSelect(image);
|
|
83
68
|
}
|
|
84
69
|
};
|
|
85
|
-
|
|
86
70
|
this.renderElements = () => {
|
|
87
|
-
const {
|
|
88
|
-
imagesData
|
|
89
|
-
} = this.props;
|
|
90
|
-
|
|
71
|
+
const { imagesData } = this.props;
|
|
91
72
|
if (!imagesData) {
|
|
92
|
-
return
|
|
73
|
+
return "Empty";
|
|
93
74
|
}
|
|
94
|
-
|
|
95
|
-
const {
|
|
96
|
-
selected
|
|
97
|
-
} = this.state;
|
|
75
|
+
const { selected } = this.state;
|
|
98
76
|
return imagesData.map((image, idx) => {
|
|
99
77
|
const extras = {};
|
|
100
|
-
const {
|
|
101
|
-
name,
|
|
102
|
-
id
|
|
103
|
-
} = image;
|
|
104
|
-
|
|
78
|
+
const { name, id } = image;
|
|
105
79
|
if (this.focusFirst && idx === 0) {
|
|
106
|
-
extras.ref = element => element && element.focus();
|
|
107
|
-
|
|
108
|
-
this.focusFirst = undefined;
|
|
80
|
+
extras.ref = (element) => element && element.focus();
|
|
81
|
+
this.focusFirst = void 0;
|
|
109
82
|
} else if (selected && name === selected.name) {
|
|
110
|
-
extras.ref = element => element && element.focus();
|
|
83
|
+
extras.ref = (element) => element && element.focus();
|
|
111
84
|
}
|
|
112
|
-
|
|
113
|
-
|
|
85
|
+
return /* @__PURE__ */ import_react.default.createElement("div", {
|
|
86
|
+
key: id || `${name}_${idx}`,
|
|
114
87
|
className: elementClassName,
|
|
115
|
-
onClick: e => this.handleElementClick(e, image),
|
|
116
|
-
onKeyUp: e => this.handleElementClick(e, image),
|
|
88
|
+
onClick: (e) => this.handleElementClick(e, image),
|
|
89
|
+
onKeyUp: (e) => this.handleElementClick(e, image),
|
|
117
90
|
role: "button",
|
|
118
|
-
tabIndex: 0
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
}), id || "".concat(name, "_").concat(idx));
|
|
91
|
+
tabIndex: 0,
|
|
92
|
+
...extras
|
|
93
|
+
}, /* @__PURE__ */ import_react.default.createElement("div", {
|
|
94
|
+
className: "content"
|
|
95
|
+
}, name));
|
|
124
96
|
});
|
|
125
97
|
};
|
|
126
|
-
|
|
127
|
-
this.renderSpinner = () => _DSSpinner || (_DSSpinner = /*#__PURE__*/_jsx__default["default"](DSSpinner__default["default"], {
|
|
98
|
+
this.renderSpinner = () => /* @__PURE__ */ import_react.default.createElement(import_ds_spinner.default, {
|
|
128
99
|
message: "Loading...",
|
|
129
100
|
size: "m"
|
|
130
|
-
}));
|
|
131
|
-
|
|
132
|
-
this.renderError = () => /*#__PURE__*/_jsx__default["default"](dsIcons.ImageMissing, {
|
|
133
|
-
color: dsIcon.DSIconColors.NEUTRAL,
|
|
134
|
-
size: dsIcon.DSIconSizes.M
|
|
135
101
|
});
|
|
136
|
-
|
|
102
|
+
this.renderError = () => /* @__PURE__ */ import_react.default.createElement(import_ds_icons.ImageMissing, {
|
|
103
|
+
color: import_ds_icon.DSIconColors.NEUTRAL,
|
|
104
|
+
size: import_ds_icon.DSIconSizes.M
|
|
105
|
+
});
|
|
137
106
|
this.state = {
|
|
138
|
-
selected:
|
|
139
|
-
user:
|
|
107
|
+
selected: void 0,
|
|
108
|
+
user: void 0
|
|
140
109
|
};
|
|
141
110
|
this.preventSpacebarScroll();
|
|
142
111
|
}
|
|
143
|
-
|
|
144
112
|
componentDidMount() {
|
|
145
|
-
const {
|
|
146
|
-
imagesData
|
|
147
|
-
} = this.props;
|
|
148
|
-
|
|
113
|
+
const { imagesData } = this.props;
|
|
149
114
|
if (imagesData) {
|
|
150
115
|
this.handleElementClick({}, imagesData[0]);
|
|
151
116
|
this.focusFirst = true;
|
|
152
117
|
}
|
|
153
118
|
}
|
|
154
|
-
|
|
155
119
|
getDerivedStateFromProps(nextProps) {
|
|
156
|
-
const {
|
|
157
|
-
imagesData
|
|
158
|
-
} = this.props;
|
|
159
|
-
|
|
120
|
+
const { imagesData } = this.props;
|
|
160
121
|
if (!imagesData && nextProps.imagesData) {
|
|
161
|
-
this.setState({
|
|
162
|
-
selected: imagesData[0]
|
|
163
|
-
});
|
|
122
|
+
this.setState({ selected: imagesData[0] });
|
|
164
123
|
}
|
|
165
124
|
}
|
|
166
|
-
|
|
167
125
|
getUser(selected) {
|
|
168
126
|
if (!selected) {
|
|
169
|
-
return
|
|
127
|
+
return "";
|
|
170
128
|
}
|
|
171
|
-
|
|
172
|
-
const index = selected.createdBy.lastIndexOf('user:');
|
|
173
|
-
|
|
129
|
+
const index = selected.createdBy.lastIndexOf("user:");
|
|
174
130
|
if (index === -1) {
|
|
175
131
|
return selected.createdBy;
|
|
176
132
|
}
|
|
177
|
-
|
|
178
133
|
return selected.createdBy.substring(index + 5);
|
|
179
134
|
}
|
|
180
|
-
|
|
181
135
|
preventSpacebarScroll() {
|
|
182
|
-
document.onkeypress = function
|
|
183
|
-
if (!
|
|
136
|
+
document.onkeypress = function(e) {
|
|
137
|
+
if (!(0, import_lodash.includes)(e.target.className, elementClassName)) {
|
|
184
138
|
return true;
|
|
185
139
|
}
|
|
186
|
-
|
|
187
140
|
e = e || window.event;
|
|
188
141
|
const charCode = e.keyCode || e.which;
|
|
189
|
-
|
|
190
142
|
if (charCode === 32) {
|
|
191
143
|
e.preventDefault();
|
|
192
144
|
return false;
|
|
193
145
|
}
|
|
194
|
-
|
|
195
146
|
return true;
|
|
196
147
|
};
|
|
197
148
|
}
|
|
198
|
-
|
|
199
149
|
drawDiv(className, content) {
|
|
200
|
-
return
|
|
201
|
-
className
|
|
202
|
-
},
|
|
150
|
+
return /* @__PURE__ */ import_react.default.createElement("div", {
|
|
151
|
+
className
|
|
152
|
+
}, content);
|
|
203
153
|
}
|
|
204
|
-
|
|
205
154
|
drawLabel(className, label, value) {
|
|
206
|
-
return
|
|
207
|
-
className
|
|
208
|
-
},
|
|
155
|
+
return /* @__PURE__ */ import_react.default.createElement("div", {
|
|
156
|
+
className
|
|
157
|
+
}, /* @__PURE__ */ import_react.default.createElement("span", {
|
|
209
158
|
className: "label"
|
|
210
|
-
},
|
|
159
|
+
}, label), /* @__PURE__ */ import_react.default.createElement("span", {
|
|
211
160
|
className: "value"
|
|
212
|
-
},
|
|
161
|
+
}, value));
|
|
213
162
|
}
|
|
214
|
-
|
|
215
163
|
render() {
|
|
216
|
-
const {
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
} = this.state;
|
|
220
|
-
|
|
221
|
-
const _this$props = this.props,
|
|
222
|
-
{
|
|
164
|
+
const { selected, user } = this.state;
|
|
165
|
+
const { containerProps, imagesData, onSelect, disableDoubleClick, ...modalProps } = this.props;
|
|
166
|
+
return /* @__PURE__ */ import_react.default.createElement(import_ds_modal.default, {
|
|
223
167
|
containerProps,
|
|
224
|
-
|
|
225
|
-
onSelect,
|
|
226
|
-
disableDoubleClick
|
|
227
|
-
} = _this$props,
|
|
228
|
-
modalProps = _objectWithoutProperties__default["default"](_this$props, _excluded);
|
|
229
|
-
|
|
230
|
-
return /*#__PURE__*/jsxRuntime.jsx(DSModal__default["default"], _objectSpread(_objectSpread({
|
|
231
|
-
containerProps: containerProps
|
|
232
|
-
}, modalProps), {}, {
|
|
168
|
+
...modalProps,
|
|
233
169
|
className: "em-ds-modal-image-library",
|
|
234
|
-
onReject: this.onReject
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
}));
|
|
170
|
+
onReject: this.onReject
|
|
171
|
+
}, /* @__PURE__ */ import_react.default.createElement("div", {
|
|
172
|
+
className: "wrapper"
|
|
173
|
+
}, /* @__PURE__ */ import_react.default.createElement("div", {
|
|
174
|
+
className: "col-1"
|
|
175
|
+
}, this.drawDiv("title", "Company Images"), this.renderElements()), /* @__PURE__ */ import_react.default.createElement("div", {
|
|
176
|
+
className: "col-2"
|
|
177
|
+
}, this.drawDiv("title", selected ? selected.name : ""), /* @__PURE__ */ import_react.default.createElement(import_react_loading_image.default, {
|
|
178
|
+
className: "image-loader",
|
|
179
|
+
error: this.renderError,
|
|
180
|
+
loading: this.renderSpinner,
|
|
181
|
+
src: selected ? selected.url : ""
|
|
182
|
+
}), selected && /* @__PURE__ */ import_react.default.createElement("div", {
|
|
183
|
+
className: "info"
|
|
184
|
+
}, this.drawLabel("info-element", "Created Date:", selected.createdDate), this.drawLabel("info-element", "Created By:", user)))));
|
|
250
185
|
}
|
|
251
|
-
|
|
252
186
|
}
|
|
253
|
-
|
|
254
|
-
|
|
187
|
+
module.exports = __toCommonJS(ImageLibraryModalImpl_exports);
|
|
188
|
+
//# sourceMappingURL=ImageLibraryModalImpl.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/components/ImageLibraryModalImpl.tsx", "../../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport DSModal from '@elliemae/ds-modal';\nimport DSSpinner from '@elliemae/ds-spinner';\nimport { DSIconSizes as ICONS_SIZES, DSIconColors as ICONS_COLORS } from '@elliemae/ds-icon';\nimport { includes } from 'lodash';\nimport ImageLoader from 'react-loading-image';\nimport { ImageMissing } from '@elliemae/ds-icons';\n\nconst elementClassName = 'imglibmodal-element';\n\nexport default class ImageLibraryModalImpl extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n selected: undefined,\n user: undefined,\n };\n this.preventSpacebarScroll();\n }\n\n componentDidMount() {\n const { imagesData } = this.props;\n if (imagesData) {\n this.handleElementClick({}, imagesData[0]);\n this.focusFirst = true;\n }\n }\n\n getDerivedStateFromProps(nextProps) {\n const { imagesData } = this.props;\n if (!imagesData && nextProps.imagesData) {\n this.setState({ selected: imagesData[0] });\n }\n }\n\n onReject = () => {\n const { onReject, onClose } = this.props;\n if (onReject) {\n onReject();\n } else {\n onClose();\n }\n };\n\n getUser(selected) {\n if (!selected) {\n return '';\n }\n const index = selected.createdBy.lastIndexOf('user:');\n if (index === -1) {\n return selected.createdBy;\n }\n return selected.createdBy.substring(index + 5);\n }\n\n handleElementClick = (e, image) => {\n if (e.key && e.key !== ' ') {\n return;\n }\n const { selected } = this.state;\n const { disableDoubleClick, onConfirm, onSelect } = this.props;\n if (image === selected && onConfirm && !disableDoubleClick) {\n onConfirm();\n return;\n }\n this.setState({\n selected: image,\n user: this.getUser(image),\n });\n if (onSelect) {\n onSelect(image);\n }\n };\n\n preventSpacebarScroll() {\n document.onkeypress = function (e) {\n if (!includes(e.target.className, elementClassName)) {\n return true;\n }\n e = e || window.event;\n const charCode = e.keyCode || e.which;\n if (charCode === 32) {\n e.preventDefault();\n return false;\n }\n return true;\n };\n }\n\n drawDiv(className, content) {\n return <div className={className}>{content}</div>;\n }\n\n drawLabel(className, label, value) {\n return (\n <div className={className}>\n <span className=\"label\">{label}</span>\n <span className=\"value\">{value}</span>\n </div>\n );\n }\n\n renderElements = () => {\n const { imagesData } = this.props;\n if (!imagesData) {\n return 'Empty';\n }\n const { selected } = this.state;\n return imagesData.map((image, idx) => {\n const extras = {};\n const { name, id } = image;\n if (this.focusFirst && idx === 0) {\n extras.ref = (element) => element && element.focus();\n this.focusFirst = undefined;\n } else if (selected && name === selected.name) {\n extras.ref = (element) => element && element.focus();\n }\n return (\n <div\n key={id || `${name}_${idx}`}\n className={elementClassName}\n onClick={(e) => this.handleElementClick(e, image)}\n onKeyUp={(e) => this.handleElementClick(e, image)}\n role=\"button\"\n tabIndex={0}\n {...extras}\n >\n <div className=\"content\">{name}</div>\n </div>\n );\n });\n };\n\n renderSpinner = () => <DSSpinner message=\"Loading...\" size=\"m\" />;\n\n renderError = () => <ImageMissing color={ICONS_COLORS.NEUTRAL} size={ICONS_SIZES.M} />;\n\n render() {\n const { selected, user } = this.state;\n const { containerProps, imagesData, onSelect, disableDoubleClick, ...modalProps } = this.props;\n return (\n <DSModal\n containerProps={containerProps}\n {...modalProps}\n className=\"em-ds-modal-image-library\"\n onReject={this.onReject}\n >\n <div className=\"wrapper\">\n <div className=\"col-1\">\n {this.drawDiv('title', 'Company Images')}\n {this.renderElements()}\n </div>\n <div className=\"col-2\">\n {this.drawDiv('title', selected ? selected.name : '')}\n <ImageLoader\n className=\"image-loader\"\n error={this.renderError}\n loading={this.renderSpinner}\n src={selected ? selected.url : ''}\n />\n {selected && (\n <div className=\"info\">\n {this.drawLabel('info-element', 'Created Date:', selected.createdDate)}\n {this.drawLabel('info-element', 'Created By:', user)}\n </div>\n )}\n </div>\n </div>\n </DSModal>\n );\n }\n}\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/cjs/index.js
CHANGED
|
@@ -1,7 +1,35 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
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 src_exports = {};
|
|
29
|
+
__export(src_exports, {
|
|
30
|
+
default: () => import_DSImageLibraryModal.default
|
|
31
|
+
});
|
|
32
|
+
var React = __toESM(require("react"));
|
|
33
|
+
var import_DSImageLibraryModal = require("./DSImageLibraryModal");
|
|
34
|
+
module.exports = __toCommonJS(src_exports);
|
|
35
|
+
//# sourceMappingURL=index.js.map
|
package/cjs/index.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../src/index.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
+
"sourcesContent": ["export { default } from './DSImageLibraryModal';\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,iCAAwB;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,57 +1,54 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import _objectWithoutProperties from '@babel/runtime/helpers/esm/objectWithoutProperties';
|
|
8
|
-
import 'react';
|
|
9
|
-
import { MODAL_TYPE } from '@elliemae/ds-modal';
|
|
10
|
-
import { sizeOptions } from '@elliemae/ds-shared/constants';
|
|
11
|
-
import ImageLibraryModalImpl from './components/ImageLibraryModalImpl.js';
|
|
12
|
-
import { jsx } from 'react/jsx-runtime';
|
|
13
|
-
|
|
14
|
-
const _excluded = ["containerProps", "confirmLabel", "disableDoubleClick", "isOpen", "modalTitle", "modalType", "rejectLabel", "shouldCloseOnOverlayClick", "size", "imagesData", "onSelect"];
|
|
15
|
-
|
|
16
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
17
|
-
|
|
18
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2 from "react";
|
|
3
|
+
import PropTypes from "prop-types";
|
|
4
|
+
import { MODAL_TYPE } from "@elliemae/ds-modal";
|
|
5
|
+
import { sizeOptions } from "@elliemae/ds-shared/constants";
|
|
6
|
+
import ImageLibraryModalImpl from "./components/ImageLibraryModalImpl";
|
|
19
7
|
const modalTypes = Object.values(MODAL_TYPE);
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
8
|
+
const DSImageLibraryModal = ({
|
|
9
|
+
containerProps = {},
|
|
10
|
+
confirmLabel = "Add",
|
|
11
|
+
disableDoubleClick = false,
|
|
12
|
+
isOpen = true,
|
|
13
|
+
modalTitle = "Add Image",
|
|
14
|
+
modalType = modalTypes[2],
|
|
15
|
+
rejectLabel = "Cancel",
|
|
16
|
+
shouldCloseOnOverlayClick = true,
|
|
17
|
+
size = sizeOptions[3],
|
|
18
|
+
imagesData = [
|
|
19
|
+
{
|
|
20
|
+
url: "https://www.freeiconspng.com/minicovers/no-image-icon-6.png",
|
|
21
|
+
name: "no image",
|
|
22
|
+
createdBy: "user:John Doe",
|
|
23
|
+
createdDate: "0000-01-01 00:00 AM UTC"
|
|
24
|
+
}
|
|
25
|
+
],
|
|
26
|
+
onSelect = () => null,
|
|
27
|
+
...rest
|
|
28
|
+
}) => /* @__PURE__ */ React2.createElement(ImageLibraryModalImpl, {
|
|
29
|
+
confirmLabel,
|
|
30
|
+
containerProps,
|
|
31
|
+
disableDoubleClick,
|
|
32
|
+
imagesData,
|
|
33
|
+
isOpen,
|
|
34
|
+
modalTitle,
|
|
35
|
+
modalType,
|
|
36
|
+
onSelect,
|
|
37
|
+
rejectLabel,
|
|
38
|
+
shouldCloseOnOverlayClick,
|
|
39
|
+
size,
|
|
40
|
+
...rest
|
|
41
|
+
});
|
|
42
|
+
DSImageLibraryModal.propTypes = {
|
|
43
|
+
containerProps: PropTypes.shape({}),
|
|
44
|
+
imagesData: PropTypes.arrayOf(PropTypes.shape({
|
|
45
|
+
url: PropTypes.string,
|
|
46
|
+
name: PropTypes.string
|
|
47
|
+
})),
|
|
48
|
+
onSelect: PropTypes.func
|
|
55
49
|
};
|
|
56
|
-
|
|
57
|
-
export {
|
|
50
|
+
var DSImageLibraryModal_default = DSImageLibraryModal;
|
|
51
|
+
export {
|
|
52
|
+
DSImageLibraryModal_default as default
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=DSImageLibraryModal.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/DSImageLibraryModal.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "import React from 'react';\nimport PropTypes from 'prop-types';\nimport { MODAL_TYPE } from '@elliemae/ds-modal';\nimport { sizeOptions } from '@elliemae/ds-shared/constants';\nimport ImageLibraryModalImpl from './components/ImageLibraryModalImpl';\n\nconst modalTypes = Object.values(MODAL_TYPE);\n\nconst DSImageLibraryModal = ({\n containerProps = {},\n confirmLabel = 'Add',\n disableDoubleClick = false,\n isOpen = true,\n modalTitle = 'Add Image',\n modalType = modalTypes[2],\n rejectLabel = 'Cancel',\n shouldCloseOnOverlayClick = true,\n size = sizeOptions[3],\n imagesData = [\n {\n url: 'https://www.freeiconspng.com/minicovers/no-image-icon-6.png',\n name: 'no image',\n createdBy: 'user:John Doe',\n createdDate: '0000-01-01 00:00 AM UTC',\n },\n ],\n onSelect = () => null,\n ...rest\n}) => (\n <ImageLibraryModalImpl\n confirmLabel={confirmLabel}\n containerProps={containerProps}\n disableDoubleClick={disableDoubleClick}\n imagesData={imagesData}\n isOpen={isOpen}\n modalTitle={modalTitle}\n modalType={modalType}\n onSelect={onSelect}\n rejectLabel={rejectLabel}\n shouldCloseOnOverlayClick={shouldCloseOnOverlayClick}\n size={size}\n {...rest}\n />\n);\n\n/** Inherits DSModal props */\nDSImageLibraryModal.propTypes = {\n containerProps: PropTypes.shape({}),\n /** List of images src */\n imagesData: PropTypes.arrayOf(\n PropTypes.shape({\n url: PropTypes.string,\n name: PropTypes.string,\n }),\n ),\n /** Handler when user selects an image */\n onSelect: PropTypes.func,\n};\n\nexport default DSImageLibraryModal;\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AAEA,MAAM,aAAa,OAAO,OAAO;AAEjC,MAAM,sBAAsB,CAAC;AAAA,EAC3B,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,SAAS;AAAA,EACT,aAAa;AAAA,EACb,YAAY,WAAW;AAAA,EACvB,cAAc;AAAA,EACd,4BAA4B;AAAA,EAC5B,OAAO,YAAY;AAAA,EACnB,aAAa;AAAA,IACX;AAAA,MACE,KAAK;AAAA,MACL,MAAM;AAAA,MACN,WAAW;AAAA,MACX,aAAa;AAAA;AAAA;AAAA,EAGjB,WAAW,MAAM;AAAA,KACd;AAAA,MAEH,qCAAC,uBAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,KACI;AAAA;AAKR,oBAAoB,YAAY;AAAA,EAC9B,gBAAgB,UAAU,MAAM;AAAA,EAEhC,YAAY,UAAU,QACpB,UAAU,MAAM;AAAA,IACd,KAAK,UAAU;AAAA,IACf,MAAM,UAAU;AAAA;AAAA,EAIpB,UAAU,UAAU;AAAA;AAGtB,IAAO,8BAAQ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,242 +1,159 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
import React from 'react';
|
|
12
|
-
import DSModal from '@elliemae/ds-modal';
|
|
13
|
-
import DSSpinner from '@elliemae/ds-spinner';
|
|
14
|
-
import { DSIconColors, DSIconSizes } from '@elliemae/ds-icon';
|
|
15
|
-
import { includes } from 'lodash';
|
|
16
|
-
import ImageLoader from 'react-loading-image';
|
|
17
|
-
import { ImageMissing } from '@elliemae/ds-icons';
|
|
18
|
-
import { jsx } from 'react/jsx-runtime';
|
|
19
|
-
|
|
20
|
-
const _excluded = ["containerProps", "imagesData", "onSelect", "disableDoubleClick"];
|
|
21
|
-
|
|
22
|
-
var _DSSpinner;
|
|
23
|
-
|
|
24
|
-
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
25
|
-
|
|
26
|
-
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
27
|
-
const elementClassName = 'imglibmodal-element';
|
|
28
|
-
class ImageLibraryModalImpl extends React.PureComponent {
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import React2 from "react";
|
|
3
|
+
import DSModal from "@elliemae/ds-modal";
|
|
4
|
+
import DSSpinner from "@elliemae/ds-spinner";
|
|
5
|
+
import { DSIconSizes as ICONS_SIZES, DSIconColors as ICONS_COLORS } from "@elliemae/ds-icon";
|
|
6
|
+
import { includes } from "lodash";
|
|
7
|
+
import ImageLoader from "react-loading-image";
|
|
8
|
+
import { ImageMissing } from "@elliemae/ds-icons";
|
|
9
|
+
const elementClassName = "imglibmodal-element";
|
|
10
|
+
class ImageLibraryModalImpl extends React2.PureComponent {
|
|
29
11
|
constructor(props) {
|
|
30
12
|
super(props);
|
|
31
|
-
|
|
32
13
|
this.onReject = () => {
|
|
33
|
-
const {
|
|
34
|
-
onReject,
|
|
35
|
-
onClose
|
|
36
|
-
} = this.props;
|
|
37
|
-
|
|
14
|
+
const { onReject, onClose } = this.props;
|
|
38
15
|
if (onReject) {
|
|
39
16
|
onReject();
|
|
40
17
|
} else {
|
|
41
18
|
onClose();
|
|
42
19
|
}
|
|
43
20
|
};
|
|
44
|
-
|
|
45
21
|
this.handleElementClick = (e, image) => {
|
|
46
|
-
if (e.key && e.key !==
|
|
22
|
+
if (e.key && e.key !== " ") {
|
|
47
23
|
return;
|
|
48
24
|
}
|
|
49
|
-
|
|
50
|
-
const {
|
|
51
|
-
selected
|
|
52
|
-
} = this.state;
|
|
53
|
-
const {
|
|
54
|
-
disableDoubleClick,
|
|
55
|
-
onConfirm,
|
|
56
|
-
onSelect
|
|
57
|
-
} = this.props;
|
|
58
|
-
|
|
25
|
+
const { selected } = this.state;
|
|
26
|
+
const { disableDoubleClick, onConfirm, onSelect } = this.props;
|
|
59
27
|
if (image === selected && onConfirm && !disableDoubleClick) {
|
|
60
28
|
onConfirm();
|
|
61
29
|
return;
|
|
62
30
|
}
|
|
63
|
-
|
|
64
31
|
this.setState({
|
|
65
32
|
selected: image,
|
|
66
33
|
user: this.getUser(image)
|
|
67
34
|
});
|
|
68
|
-
|
|
69
35
|
if (onSelect) {
|
|
70
36
|
onSelect(image);
|
|
71
37
|
}
|
|
72
38
|
};
|
|
73
|
-
|
|
74
39
|
this.renderElements = () => {
|
|
75
|
-
const {
|
|
76
|
-
imagesData
|
|
77
|
-
} = this.props;
|
|
78
|
-
|
|
40
|
+
const { imagesData } = this.props;
|
|
79
41
|
if (!imagesData) {
|
|
80
|
-
return
|
|
42
|
+
return "Empty";
|
|
81
43
|
}
|
|
82
|
-
|
|
83
|
-
const {
|
|
84
|
-
selected
|
|
85
|
-
} = this.state;
|
|
44
|
+
const { selected } = this.state;
|
|
86
45
|
return imagesData.map((image, idx) => {
|
|
87
46
|
const extras = {};
|
|
88
|
-
const {
|
|
89
|
-
name,
|
|
90
|
-
id
|
|
91
|
-
} = image;
|
|
92
|
-
|
|
47
|
+
const { name, id } = image;
|
|
93
48
|
if (this.focusFirst && idx === 0) {
|
|
94
|
-
extras.ref = element => element && element.focus();
|
|
95
|
-
|
|
96
|
-
this.focusFirst = undefined;
|
|
49
|
+
extras.ref = (element) => element && element.focus();
|
|
50
|
+
this.focusFirst = void 0;
|
|
97
51
|
} else if (selected && name === selected.name) {
|
|
98
|
-
extras.ref = element => element && element.focus();
|
|
52
|
+
extras.ref = (element) => element && element.focus();
|
|
99
53
|
}
|
|
100
|
-
|
|
101
|
-
|
|
54
|
+
return /* @__PURE__ */ React2.createElement("div", {
|
|
55
|
+
key: id || `${name}_${idx}`,
|
|
102
56
|
className: elementClassName,
|
|
103
|
-
onClick: e => this.handleElementClick(e, image),
|
|
104
|
-
onKeyUp: e => this.handleElementClick(e, image),
|
|
57
|
+
onClick: (e) => this.handleElementClick(e, image),
|
|
58
|
+
onKeyUp: (e) => this.handleElementClick(e, image),
|
|
105
59
|
role: "button",
|
|
106
|
-
tabIndex: 0
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
}), id || "".concat(name, "_").concat(idx));
|
|
60
|
+
tabIndex: 0,
|
|
61
|
+
...extras
|
|
62
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
63
|
+
className: "content"
|
|
64
|
+
}, name));
|
|
112
65
|
});
|
|
113
66
|
};
|
|
114
|
-
|
|
115
|
-
this.renderSpinner = () => _DSSpinner || (_DSSpinner = /*#__PURE__*/_jsx(DSSpinner, {
|
|
67
|
+
this.renderSpinner = () => /* @__PURE__ */ React2.createElement(DSSpinner, {
|
|
116
68
|
message: "Loading...",
|
|
117
69
|
size: "m"
|
|
118
|
-
}));
|
|
119
|
-
|
|
120
|
-
this.renderError = () => /*#__PURE__*/_jsx(ImageMissing, {
|
|
121
|
-
color: DSIconColors.NEUTRAL,
|
|
122
|
-
size: DSIconSizes.M
|
|
123
70
|
});
|
|
124
|
-
|
|
71
|
+
this.renderError = () => /* @__PURE__ */ React2.createElement(ImageMissing, {
|
|
72
|
+
color: ICONS_COLORS.NEUTRAL,
|
|
73
|
+
size: ICONS_SIZES.M
|
|
74
|
+
});
|
|
125
75
|
this.state = {
|
|
126
|
-
selected:
|
|
127
|
-
user:
|
|
76
|
+
selected: void 0,
|
|
77
|
+
user: void 0
|
|
128
78
|
};
|
|
129
79
|
this.preventSpacebarScroll();
|
|
130
80
|
}
|
|
131
|
-
|
|
132
81
|
componentDidMount() {
|
|
133
|
-
const {
|
|
134
|
-
imagesData
|
|
135
|
-
} = this.props;
|
|
136
|
-
|
|
82
|
+
const { imagesData } = this.props;
|
|
137
83
|
if (imagesData) {
|
|
138
84
|
this.handleElementClick({}, imagesData[0]);
|
|
139
85
|
this.focusFirst = true;
|
|
140
86
|
}
|
|
141
87
|
}
|
|
142
|
-
|
|
143
88
|
getDerivedStateFromProps(nextProps) {
|
|
144
|
-
const {
|
|
145
|
-
imagesData
|
|
146
|
-
} = this.props;
|
|
147
|
-
|
|
89
|
+
const { imagesData } = this.props;
|
|
148
90
|
if (!imagesData && nextProps.imagesData) {
|
|
149
|
-
this.setState({
|
|
150
|
-
selected: imagesData[0]
|
|
151
|
-
});
|
|
91
|
+
this.setState({ selected: imagesData[0] });
|
|
152
92
|
}
|
|
153
93
|
}
|
|
154
|
-
|
|
155
94
|
getUser(selected) {
|
|
156
95
|
if (!selected) {
|
|
157
|
-
return
|
|
96
|
+
return "";
|
|
158
97
|
}
|
|
159
|
-
|
|
160
|
-
const index = selected.createdBy.lastIndexOf('user:');
|
|
161
|
-
|
|
98
|
+
const index = selected.createdBy.lastIndexOf("user:");
|
|
162
99
|
if (index === -1) {
|
|
163
100
|
return selected.createdBy;
|
|
164
101
|
}
|
|
165
|
-
|
|
166
102
|
return selected.createdBy.substring(index + 5);
|
|
167
103
|
}
|
|
168
|
-
|
|
169
104
|
preventSpacebarScroll() {
|
|
170
|
-
document.onkeypress = function
|
|
105
|
+
document.onkeypress = function(e) {
|
|
171
106
|
if (!includes(e.target.className, elementClassName)) {
|
|
172
107
|
return true;
|
|
173
108
|
}
|
|
174
|
-
|
|
175
109
|
e = e || window.event;
|
|
176
110
|
const charCode = e.keyCode || e.which;
|
|
177
|
-
|
|
178
111
|
if (charCode === 32) {
|
|
179
112
|
e.preventDefault();
|
|
180
113
|
return false;
|
|
181
114
|
}
|
|
182
|
-
|
|
183
115
|
return true;
|
|
184
116
|
};
|
|
185
117
|
}
|
|
186
|
-
|
|
187
118
|
drawDiv(className, content) {
|
|
188
|
-
return
|
|
189
|
-
className
|
|
190
|
-
},
|
|
119
|
+
return /* @__PURE__ */ React2.createElement("div", {
|
|
120
|
+
className
|
|
121
|
+
}, content);
|
|
191
122
|
}
|
|
192
|
-
|
|
193
123
|
drawLabel(className, label, value) {
|
|
194
|
-
return
|
|
195
|
-
className
|
|
196
|
-
},
|
|
124
|
+
return /* @__PURE__ */ React2.createElement("div", {
|
|
125
|
+
className
|
|
126
|
+
}, /* @__PURE__ */ React2.createElement("span", {
|
|
197
127
|
className: "label"
|
|
198
|
-
},
|
|
128
|
+
}, label), /* @__PURE__ */ React2.createElement("span", {
|
|
199
129
|
className: "value"
|
|
200
|
-
},
|
|
130
|
+
}, value));
|
|
201
131
|
}
|
|
202
|
-
|
|
203
132
|
render() {
|
|
204
|
-
const {
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
} = this.state;
|
|
208
|
-
|
|
209
|
-
const _this$props = this.props,
|
|
210
|
-
{
|
|
133
|
+
const { selected, user } = this.state;
|
|
134
|
+
const { containerProps, imagesData, onSelect, disableDoubleClick, ...modalProps } = this.props;
|
|
135
|
+
return /* @__PURE__ */ React2.createElement(DSModal, {
|
|
211
136
|
containerProps,
|
|
212
|
-
|
|
213
|
-
onSelect,
|
|
214
|
-
disableDoubleClick
|
|
215
|
-
} = _this$props,
|
|
216
|
-
modalProps = _objectWithoutProperties(_this$props, _excluded);
|
|
217
|
-
|
|
218
|
-
return /*#__PURE__*/jsx(DSModal, _objectSpread(_objectSpread({
|
|
219
|
-
containerProps: containerProps
|
|
220
|
-
}, modalProps), {}, {
|
|
137
|
+
...modalProps,
|
|
221
138
|
className: "em-ds-modal-image-library",
|
|
222
|
-
onReject: this.onReject
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
}));
|
|
139
|
+
onReject: this.onReject
|
|
140
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
141
|
+
className: "wrapper"
|
|
142
|
+
}, /* @__PURE__ */ React2.createElement("div", {
|
|
143
|
+
className: "col-1"
|
|
144
|
+
}, this.drawDiv("title", "Company Images"), this.renderElements()), /* @__PURE__ */ React2.createElement("div", {
|
|
145
|
+
className: "col-2"
|
|
146
|
+
}, this.drawDiv("title", selected ? selected.name : ""), /* @__PURE__ */ React2.createElement(ImageLoader, {
|
|
147
|
+
className: "image-loader",
|
|
148
|
+
error: this.renderError,
|
|
149
|
+
loading: this.renderSpinner,
|
|
150
|
+
src: selected ? selected.url : ""
|
|
151
|
+
}), selected && /* @__PURE__ */ React2.createElement("div", {
|
|
152
|
+
className: "info"
|
|
153
|
+
}, this.drawLabel("info-element", "Created Date:", selected.createdDate), this.drawLabel("info-element", "Created By:", user)))));
|
|
238
154
|
}
|
|
239
|
-
|
|
240
155
|
}
|
|
241
|
-
|
|
242
|
-
|
|
156
|
+
export {
|
|
157
|
+
ImageLibraryModalImpl as default
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=ImageLibraryModalImpl.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../../scripts/build/transpile/react-shim.js", "../../../src/components/ImageLibraryModalImpl.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React from 'react';\nimport DSModal from '@elliemae/ds-modal';\nimport DSSpinner from '@elliemae/ds-spinner';\nimport { DSIconSizes as ICONS_SIZES, DSIconColors as ICONS_COLORS } from '@elliemae/ds-icon';\nimport { includes } from 'lodash';\nimport ImageLoader from 'react-loading-image';\nimport { ImageMissing } from '@elliemae/ds-icons';\n\nconst elementClassName = 'imglibmodal-element';\n\nexport default class ImageLibraryModalImpl extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n selected: undefined,\n user: undefined,\n };\n this.preventSpacebarScroll();\n }\n\n componentDidMount() {\n const { imagesData } = this.props;\n if (imagesData) {\n this.handleElementClick({}, imagesData[0]);\n this.focusFirst = true;\n }\n }\n\n getDerivedStateFromProps(nextProps) {\n const { imagesData } = this.props;\n if (!imagesData && nextProps.imagesData) {\n this.setState({ selected: imagesData[0] });\n }\n }\n\n onReject = () => {\n const { onReject, onClose } = this.props;\n if (onReject) {\n onReject();\n } else {\n onClose();\n }\n };\n\n getUser(selected) {\n if (!selected) {\n return '';\n }\n const index = selected.createdBy.lastIndexOf('user:');\n if (index === -1) {\n return selected.createdBy;\n }\n return selected.createdBy.substring(index + 5);\n }\n\n handleElementClick = (e, image) => {\n if (e.key && e.key !== ' ') {\n return;\n }\n const { selected } = this.state;\n const { disableDoubleClick, onConfirm, onSelect } = this.props;\n if (image === selected && onConfirm && !disableDoubleClick) {\n onConfirm();\n return;\n }\n this.setState({\n selected: image,\n user: this.getUser(image),\n });\n if (onSelect) {\n onSelect(image);\n }\n };\n\n preventSpacebarScroll() {\n document.onkeypress = function (e) {\n if (!includes(e.target.className, elementClassName)) {\n return true;\n }\n e = e || window.event;\n const charCode = e.keyCode || e.which;\n if (charCode === 32) {\n e.preventDefault();\n return false;\n }\n return true;\n };\n }\n\n drawDiv(className, content) {\n return <div className={className}>{content}</div>;\n }\n\n drawLabel(className, label, value) {\n return (\n <div className={className}>\n <span className=\"label\">{label}</span>\n <span className=\"value\">{value}</span>\n </div>\n );\n }\n\n renderElements = () => {\n const { imagesData } = this.props;\n if (!imagesData) {\n return 'Empty';\n }\n const { selected } = this.state;\n return imagesData.map((image, idx) => {\n const extras = {};\n const { name, id } = image;\n if (this.focusFirst && idx === 0) {\n extras.ref = (element) => element && element.focus();\n this.focusFirst = undefined;\n } else if (selected && name === selected.name) {\n extras.ref = (element) => element && element.focus();\n }\n return (\n <div\n key={id || `${name}_${idx}`}\n className={elementClassName}\n onClick={(e) => this.handleElementClick(e, image)}\n onKeyUp={(e) => this.handleElementClick(e, image)}\n role=\"button\"\n tabIndex={0}\n {...extras}\n >\n <div className=\"content\">{name}</div>\n </div>\n );\n });\n };\n\n renderSpinner = () => <DSSpinner message=\"Loading...\" size=\"m\" />;\n\n renderError = () => <ImageMissing color={ICONS_COLORS.NEUTRAL} size={ICONS_SIZES.M} />;\n\n render() {\n const { selected, user } = this.state;\n const { containerProps, imagesData, onSelect, disableDoubleClick, ...modalProps } = this.props;\n return (\n <DSModal\n containerProps={containerProps}\n {...modalProps}\n className=\"em-ds-modal-image-library\"\n onReject={this.onReject}\n >\n <div className=\"wrapper\">\n <div className=\"col-1\">\n {this.drawDiv('title', 'Company Images')}\n {this.renderElements()}\n </div>\n <div className=\"col-2\">\n {this.drawDiv('title', selected ? selected.name : '')}\n <ImageLoader\n className=\"image-loader\"\n error={this.renderError}\n loading={this.renderSpinner}\n src={selected ? selected.url : ''}\n />\n {selected && (\n <div className=\"info\">\n {this.drawLabel('info-element', 'Created Date:', selected.createdDate)}\n {this.drawLabel('info-element', 'Created By:', user)}\n </div>\n )}\n </div>\n </div>\n </DSModal>\n );\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/esm/index.js
CHANGED
package/esm/index.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/index.tsx"],
|
|
4
|
+
"sourcesContent": ["import * as React from 'react';\nexport { React };\n", "export { default } from './DSImageLibraryModal';\n"],
|
|
5
|
+
"mappings": "AAAA;ACAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-imagelibrarymodal",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0-alpha.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Image Library Modal",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -40,11 +40,11 @@
|
|
|
40
40
|
"build": "node ../../scripts/build/build.js"
|
|
41
41
|
},
|
|
42
42
|
"dependencies": {
|
|
43
|
-
"@elliemae/ds-icon": "2.
|
|
44
|
-
"@elliemae/ds-icons": "2.
|
|
45
|
-
"@elliemae/ds-modal": "2.
|
|
46
|
-
"@elliemae/ds-shared": "2.
|
|
47
|
-
"@elliemae/ds-spinner": "2.
|
|
43
|
+
"@elliemae/ds-icon": "2.2.0-alpha.4",
|
|
44
|
+
"@elliemae/ds-icons": "2.2.0-alpha.4",
|
|
45
|
+
"@elliemae/ds-modal": "2.2.0-alpha.4",
|
|
46
|
+
"@elliemae/ds-shared": "2.2.0-alpha.4",
|
|
47
|
+
"@elliemae/ds-spinner": "2.2.0-alpha.4",
|
|
48
48
|
"prop-types": "~15.7.2",
|
|
49
49
|
"react-loading-image": "~0.5.0"
|
|
50
50
|
},
|