@unite-us/app-create-referral 0.1.15 → 0.1.17

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.
@@ -0,0 +1,179 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
9
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
10
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
11
+ _Object$defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = exports.FileUpload = void 0;
15
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
16
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
17
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/toConsumableArray"));
18
+ var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
19
+ var _url = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/url"));
20
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
21
+ var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
22
+ var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
23
+ var _react = _interopRequireDefault(require("react"));
24
+ var _propTypes = require("prop-types");
25
+ var _reactDropzone = require("react-dropzone");
26
+ var _lodash = require("lodash");
27
+ var _ui = require("@unite-us/ui");
28
+ var _utils = require("../../utils/utils");
29
+ var _FilePreview = _interopRequireDefault(require("./components/FilePreview"));
30
+ require("./stylesheets/FileUpload.scss");
31
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
32
+ 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) { (0, _defineProperty2.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; }
33
+ var ACCEPTED_FILE_TYPES = "text/csv, application/msword,\napplication/vnd.openxmlformats-officedocument.wordprocessingml.document,\napplication/pdf, application/rtf, text/rtf, application/x-rtf, text/plain,\napplication/excel, application/vnd.ms-excel, application/x-excel, application/x-msexcel,\napplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet,\napplication/vnd.ms-excel.sheet.binary.macroEnabled.12,\napplication/vnd.ms-excel,\napplication/vnd.ms-excel.sheet.macroEnabled.12,\nimage/gif, image/jpg, image/jpeg, image/png, audio/mpeg, audio/m4a,\naudio/x-m4a, audio/wav, audio/x-wav, audio/x-ms-wma, video/x-ms-wma";
34
+ var MAX_FILE_SIZE = 10000000;
35
+ var FileUpload = function FileUpload(_ref) {
36
+ var rejectedFiles = _ref.rejectedFiles,
37
+ uploadedFiles = _ref.uploadedFiles,
38
+ setRejectedFiles = _ref.setRejectedFiles,
39
+ setUploadedFiles = _ref.setUploadedFiles;
40
+ var onDrop = function onDrop(acceptedFiles) {
41
+ var _context;
42
+ var fileUploadWithIdAndPreview = (0, _map.default)(acceptedFiles).call(acceptedFiles, function (file) {
43
+ return {
44
+ file: file,
45
+ tempId: (0, _utils.generateUUID)(),
46
+ preview: _url.default.createObjectURL(file)
47
+ };
48
+ });
49
+ setRejectedFiles({
50
+ filesTooBig: [],
51
+ filesWrongType: []
52
+ });
53
+ setUploadedFiles((0, _concat.default)(_context = []).call(_context, (0, _toConsumableArray2.default)(uploadedFiles), (0, _toConsumableArray2.default)(fileUploadWithIdAndPreview)));
54
+ };
55
+ var onDropRejected = function onDropRejected(fileRejections) {
56
+ var _fileRejections$reduc = (0, _reduce.default)(fileRejections).call(fileRejections, function (acc, rejectedFile) {
57
+ if (rejectedFile.size > MAX_FILE_SIZE && !(0, _includes.default)(ACCEPTED_FILE_TYPES).call(ACCEPTED_FILE_TYPES, rejectedFile.type)) {
58
+ var _context2;
59
+ return _objectSpread(_objectSpread({}, acc), {}, {
60
+ filesTooBigAndWrongType: (0, _concat.default)(_context2 = []).call(_context2, (0, _toConsumableArray2.default)(acc.filesTooBigAndWrongType), [rejectedFile.name])
61
+ });
62
+ }
63
+ if (rejectedFile.size > MAX_FILE_SIZE) {
64
+ var _context3;
65
+ return _objectSpread(_objectSpread({}, acc), {}, {
66
+ filesTooBig: (0, _concat.default)(_context3 = []).call(_context3, (0, _toConsumableArray2.default)(acc.filesTooBig), [rejectedFile.name])
67
+ });
68
+ }
69
+ if (!(0, _includes.default)(ACCEPTED_FILE_TYPES).call(ACCEPTED_FILE_TYPES, rejectedFile.type)) {
70
+ var _context4;
71
+ return _objectSpread(_objectSpread({}, acc), {}, {
72
+ filesWrongType: (0, _concat.default)(_context4 = []).call(_context4, (0, _toConsumableArray2.default)(acc.filesWrongType), [rejectedFile.name])
73
+ });
74
+ }
75
+ return acc;
76
+ }, {
77
+ filesTooBig: [],
78
+ filesWrongType: [],
79
+ filesTooBigAndWrongType: []
80
+ }),
81
+ filesTooBig = _fileRejections$reduc.filesTooBig,
82
+ filesWrongType = _fileRejections$reduc.filesWrongType,
83
+ filesTooBigAndWrongType = _fileRejections$reduc.filesTooBigAndWrongType;
84
+ setRejectedFiles({
85
+ filesTooBig: filesTooBig,
86
+ filesWrongType: filesWrongType,
87
+ filesTooBigAndWrongType: filesTooBigAndWrongType
88
+ });
89
+ };
90
+ var _useDropzone = (0, _reactDropzone.useDropzone)({
91
+ accept: ACCEPTED_FILE_TYPES,
92
+ maxSize: MAX_FILE_SIZE,
93
+ onDrop: onDrop,
94
+ onDropRejected: onDropRejected
95
+ }),
96
+ getRootProps = _useDropzone.getRootProps,
97
+ getInputProps = _useDropzone.getInputProps;
98
+ var _rejectedFiles$filesT = rejectedFiles.filesTooBig,
99
+ filesTooBig = _rejectedFiles$filesT === void 0 ? [] : _rejectedFiles$filesT,
100
+ _rejectedFiles$filesW = rejectedFiles.filesWrongType,
101
+ filesWrongType = _rejectedFiles$filesW === void 0 ? [] : _rejectedFiles$filesW,
102
+ _rejectedFiles$filesT2 = rejectedFiles.filesTooBigAndWrongType,
103
+ filesTooBigAndWrongType = _rejectedFiles$filesT2 === void 0 ? [] : _rejectedFiles$filesT2;
104
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, filesTooBigAndWrongType.length ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
105
+ className: "flex"
106
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
107
+ className: "mr-2 text-validation-red fill-current pb-1",
108
+ icon: 'V2Warning',
109
+ size: 14
110
+ })), /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
111
+ className: 'text-sm text-validation-red'
112
+ }, "This file type is not supported and exceeds the maximum upload size of 10MB."), /*#__PURE__*/_react.default.createElement("div", {
113
+ className: 'text-sm text-validation-red mt-2'
114
+ }, "Accepted formats are CSV .DOC .DOCX .PDF .RTF .TXT .XLS .XLSX .GIF .JPG .JPEG .PNG .MP3 .M4A .WAV .WMA"))), /*#__PURE__*/_react.default.createElement("ul", null, (0, _map.default)(filesTooBigAndWrongType).call(filesTooBigAndWrongType, function (file) {
115
+ return /*#__PURE__*/_react.default.createElement("li", {
116
+ key: file,
117
+ className: 'text-sm text-validation-red list-disc mt-1'
118
+ }, file);
119
+ }))) : null, filesWrongType.length ? /*#__PURE__*/_react.default.createElement("div", {
120
+ className: "".concat(filesTooBigAndWrongType.length ? 'mt-3' : '')
121
+ }, /*#__PURE__*/_react.default.createElement("div", {
122
+ className: "flex"
123
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
124
+ className: "mr-2 text-validation-red fill-current pb-1",
125
+ icon: 'V2Warning',
126
+ size: 14
127
+ })), /*#__PURE__*/_react.default.createElement("span", {
128
+ className: 'text-sm text-validation-red'
129
+ }, "This file type is not supported. Accepted formats are CSV .DOC .DOCX .PDF .RTF .TXT .XLS .XLSX .GIF .JPG .JPEG .PNG .MP3 .M4A .WAV .WMA")), /*#__PURE__*/_react.default.createElement("ul", null, (0, _map.default)(filesWrongType).call(filesWrongType, function (file) {
130
+ return /*#__PURE__*/_react.default.createElement("li", {
131
+ key: file,
132
+ className: 'text-sm text-validation-red list-disc mt-1'
133
+ }, file);
134
+ }))) : null, filesTooBig.length ? /*#__PURE__*/_react.default.createElement("div", {
135
+ className: "".concat(filesWrongType.length || filesTooBigAndWrongType.length ? 'mt-3' : '')
136
+ }, /*#__PURE__*/_react.default.createElement("div", {
137
+ className: "flex"
138
+ }, /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement(_ui.Icon, {
139
+ className: "mr-2 text-validation-red fill-current pb-1",
140
+ icon: 'V2Warning',
141
+ size: 14
142
+ })), /*#__PURE__*/_react.default.createElement("span", {
143
+ className: 'text-sm text-validation-red'
144
+ }, "The following file exceeds the maximum upload size of 10MB")), /*#__PURE__*/_react.default.createElement("ul", null, (0, _map.default)(filesTooBig).call(filesTooBig, function (file) {
145
+ return /*#__PURE__*/_react.default.createElement("li", {
146
+ key: file,
147
+ className: 'text-sm text-validation-red list-disc mt-1'
148
+ }, file);
149
+ }))) : null, /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, getRootProps(), {
150
+ className: "file-upload-dropzone mb-3 mt-5"
151
+ }), /*#__PURE__*/_react.default.createElement("div", {
152
+ className: "file-upload-dropzone__preview"
153
+ }, /*#__PURE__*/_react.default.createElement("p", null, /*#__PURE__*/_react.default.createElement("span", {
154
+ className: "file-upload-dropzone__preview__uploader-link"
155
+ }, "Choose files"), " or drag and drop to upload"), !(0, _lodash.isEmpty)(uploadedFiles) && (0, _map.default)(uploadedFiles).call(uploadedFiles, function (_ref2) {
156
+ var file = _ref2.file,
157
+ tempId = _ref2.tempId,
158
+ preview = _ref2.preview;
159
+ return /*#__PURE__*/_react.default.createElement("div", {
160
+ key: tempId,
161
+ className: "file-upload-dropzone__preview__preview-item"
162
+ }, /*#__PURE__*/_react.default.createElement(_FilePreview.default, {
163
+ contentType: file.type,
164
+ preview: preview
165
+ }), /*#__PURE__*/_react.default.createElement("div", {
166
+ className: "file-upload-dropzone__preview__file-name"
167
+ }, file.name));
168
+ })), /*#__PURE__*/_react.default.createElement("input", getInputProps())));
169
+ };
170
+ exports.FileUpload = FileUpload;
171
+ FileUpload.propTypes = {
172
+ rejectedFiles: _propTypes.PropTypes.object.isRequired,
173
+ uploadedFiles: _propTypes.PropTypes.array.isRequired,
174
+ setRejectedFiles: _propTypes.PropTypes.func.isRequired,
175
+ setUploadedFiles: _propTypes.PropTypes.func.isRequired
176
+ };
177
+ var _default = FileUpload;
178
+ exports.default = _default;
179
+ //# sourceMappingURL=FileUpload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactDropzone","_lodash","_ui","_utils","_FilePreview","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","_filterInstanceProperty","call","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ACCEPTED_FILE_TYPES","MAX_FILE_SIZE","FileUpload","_ref","rejectedFiles","uploadedFiles","setRejectedFiles","setUploadedFiles","onDrop","acceptedFiles","_context","fileUploadWithIdAndPreview","_map","file","tempId","generateUUID","preview","_url","createObjectURL","filesTooBig","filesWrongType","_concat","_toConsumableArray2","onDropRejected","fileRejections","_fileRejections$reduc","_reduce","acc","rejectedFile","size","_includes","type","_context2","filesTooBigAndWrongType","name","_context3","_context4","_useDropzone","useDropzone","accept","maxSize","getRootProps","getInputProps","_rejectedFiles$filesT","_rejectedFiles$filesW","_rejectedFiles$filesT2","createElement","Fragment","className","Icon","icon","concat","_extends2","isEmpty","_ref2","contentType","exports","propTypes","PropTypes","isRequired","array","func","_default"],"sources":["../../../../src/common/form/FileUploadV2/FileUpload.jsx"],"sourcesContent":["import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { useDropzone } from 'react-dropzone';\nimport { isEmpty } from 'lodash';\nimport { Icon } from '@unite-us/ui';\nimport { generateUUID } from '../../utils/utils';\nimport FilePreview from './components/FilePreview';\nimport './stylesheets/FileUpload.scss';\n\nconst ACCEPTED_FILE_TYPES = `text/csv, application/msword,\napplication/vnd.openxmlformats-officedocument.wordprocessingml.document,\napplication/pdf, application/rtf, text/rtf, application/x-rtf, text/plain,\napplication/excel, application/vnd.ms-excel, application/x-excel, application/x-msexcel,\napplication/vnd.openxmlformats-officedocument.spreadsheetml.sheet,\napplication/vnd.ms-excel.sheet.binary.macroEnabled.12,\napplication/vnd.ms-excel,\napplication/vnd.ms-excel.sheet.macroEnabled.12,\nimage/gif, image/jpg, image/jpeg, image/png, audio/mpeg, audio/m4a,\naudio/x-m4a, audio/wav, audio/x-wav, audio/x-ms-wma, video/x-ms-wma`;\nconst MAX_FILE_SIZE = 10000000;\n\nexport const FileUpload = ({\n rejectedFiles,\n uploadedFiles,\n setRejectedFiles,\n setUploadedFiles,\n}) => {\n const onDrop = (acceptedFiles) => {\n const fileUploadWithIdAndPreview = acceptedFiles.map((file) => ({\n file,\n tempId: generateUUID(),\n preview: URL.createObjectURL(file),\n }));\n\n setRejectedFiles({ filesTooBig: [], filesWrongType: [] });\n setUploadedFiles([...uploadedFiles, ...fileUploadWithIdAndPreview]);\n };\n\n const onDropRejected = (fileRejections) => {\n const { filesTooBig, filesWrongType, filesTooBigAndWrongType } = fileRejections.reduce((acc, rejectedFile) => {\n if (rejectedFile.size > MAX_FILE_SIZE && !ACCEPTED_FILE_TYPES.includes(rejectedFile.type)) {\n return { ...acc, filesTooBigAndWrongType: [...acc.filesTooBigAndWrongType, rejectedFile.name] };\n }\n\n if (rejectedFile.size > MAX_FILE_SIZE) {\n return { ...acc, filesTooBig: [...acc.filesTooBig, rejectedFile.name] };\n }\n\n if (!ACCEPTED_FILE_TYPES.includes(rejectedFile.type)) {\n return { ...acc, filesWrongType: [...acc.filesWrongType, rejectedFile.name] };\n }\n\n return acc;\n }, { filesTooBig: [], filesWrongType: [], filesTooBigAndWrongType: [] });\n\n setRejectedFiles({ filesTooBig, filesWrongType, filesTooBigAndWrongType });\n };\n\n const { getRootProps, getInputProps } = useDropzone({\n accept: ACCEPTED_FILE_TYPES,\n maxSize: MAX_FILE_SIZE,\n onDrop,\n onDropRejected,\n });\n\n const { filesTooBig = [], filesWrongType = [], filesTooBigAndWrongType = [] } = rejectedFiles;\n\n return (\n <>\n {\n filesTooBigAndWrongType.length ? (\n <div>\n <div className=\"flex\">\n <div>\n <Icon\n className=\"mr-2 text-validation-red fill-current pb-1\"\n icon={'V2Warning'}\n size={14}\n />\n </div>\n <div>\n <div className={'text-sm text-validation-red'}>\n This file type is not supported and exceeds the maximum upload size of 10MB.\n </div>\n <div className={'text-sm text-validation-red mt-2'}>\n Accepted formats are CSV .DOC .DOCX .PDF .RTF .TXT .XLS .XLSX .GIF .JPG .JPEG .PNG .MP3 .M4A .WAV .WMA\n </div>\n </div>\n </div>\n <ul>\n {\n filesTooBigAndWrongType.map(\n (file) => <li key={file} className={'text-sm text-validation-red list-disc mt-1'}>{file}</li>,\n )\n }\n </ul>\n </div>\n ) : null\n }\n {\n filesWrongType.length ? (\n <div className={`${filesTooBigAndWrongType.length ? 'mt-3' : ''}`}>\n <div className=\"flex\">\n <div>\n <Icon\n className=\"mr-2 text-validation-red fill-current pb-1\"\n icon={'V2Warning'}\n size={14}\n />\n </div>\n <span className={'text-sm text-validation-red'}>\n This file type is not supported. Accepted formats are CSV .DOC .DOCX .PDF .RTF\n .TXT .XLS .XLSX .GIF .JPG .JPEG .PNG .MP3 .M4A .WAV .WMA\n </span>\n </div>\n <ul>\n {\n filesWrongType.map(\n (file) => <li key={file} className={'text-sm text-validation-red list-disc mt-1'}>{file}</li>,\n )\n }\n </ul>\n </div>\n ) : null\n }\n {\n filesTooBig.length ? (\n <div className={`${(filesWrongType.length || filesTooBigAndWrongType.length) ? 'mt-3' : ''}`}>\n <div className=\"flex\">\n <div>\n <Icon\n className=\"mr-2 text-validation-red fill-current pb-1\"\n icon={'V2Warning'}\n size={14}\n />\n </div>\n <span className={'text-sm text-validation-red'}>\n The following file exceeds the maximum upload size of 10MB\n </span>\n </div>\n <ul>\n {\n filesTooBig.map((file) => (\n <li key={file} className={'text-sm text-validation-red list-disc mt-1'}>{file}</li>\n ))\n }\n </ul>\n </div>\n ) : null\n }\n <div {...getRootProps()} className=\"file-upload-dropzone mb-3 mt-5\">\n <div className=\"file-upload-dropzone__preview\">\n <p>\n <span className=\"file-upload-dropzone__preview__uploader-link\">Choose files</span> or drag and drop to upload\n </p>\n {\n !isEmpty(uploadedFiles) && uploadedFiles.map(({ file, tempId, preview }) => (\n <div key={tempId} className=\"file-upload-dropzone__preview__preview-item\">\n <FilePreview contentType={file.type} preview={preview} />\n <div className=\"file-upload-dropzone__preview__file-name\">\n {file.name}\n </div>\n </div>\n ))\n }\n </div>\n <input {...getInputProps()} />\n </div>\n </>\n );\n};\n\nFileUpload.propTypes = {\n rejectedFiles: PropTypes.object.isRequired,\n uploadedFiles: PropTypes.array.isRequired,\n setRejectedFiles: PropTypes.func.isRequired,\n setUploadedFiles: PropTypes.func.isRequired,\n};\n\nexport default FileUpload;\n"],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ "use strict";
2
+
3
+ var _Object$keys = require("@babel/runtime-corejs3/core-js-stable/object/keys");
4
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols");
5
+ var _filterInstanceProperty = require("@babel/runtime-corejs3/core-js-stable/instance/filter");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
7
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors");
8
+ var _Object$defineProperties = require("@babel/runtime-corejs3/core-js-stable/object/define-properties");
9
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
10
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
11
+ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs3/regenerator"));
12
+ var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
13
+ var _url = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/url"));
14
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
15
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
16
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/asyncToGenerator"));
17
+ var _react = _interopRequireDefault(require("react"));
18
+ var _enzyme = require("enzyme");
19
+ var _renderJSON = _interopRequireDefault(require("testUtils/renderJSON"));
20
+ var _react2 = require("@testing-library/react");
21
+ var _FileUpload = require("./FileUpload");
22
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
23
+ 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) { (0, _defineProperty2.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; }
24
+ jest.mock('common/utils/utils');
25
+ require('src/common/utils/utils').generateUUID.mockReturnValue(10);
26
+ var createFile = function createFile(name, size, type) {
27
+ return {
28
+ name: name,
29
+ path: name,
30
+ size: size,
31
+ type: type
32
+ };
33
+ };
34
+ var goodFiles = [createFile('foo.png', 200, 'image/png'), createFile('bar.pdf', 200, 'application/pdf')];
35
+ var badFiles = [createFile('gah.exe', 300, 'application/octet-stream'), createFile('bah.jpg', 10000001, 'image/jpg'), createFile('rah.exe', 10000004, 'application/octet-stream')];
36
+ var props = {
37
+ setRejectedFiles: jest.fn(),
38
+ setUploadedFiles: jest.fn(),
39
+ uploadedFiles: [],
40
+ rejectedFiles: {
41
+ filesTooBig: [],
42
+ filesWrongType: []
43
+ }
44
+ };
45
+ var render = function render() {
46
+ var renderProps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
47
+ return (0, _enzyme.mount)( /*#__PURE__*/_react.default.createElement(_FileUpload.FileUpload, renderProps));
48
+ };
49
+ var dropFile = /*#__PURE__*/function () {
50
+ var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(component, files) {
51
+ return _regenerator.default.wrap(function _callee$(_context) {
52
+ while (1) switch (_context.prev = _context.next) {
53
+ case 0:
54
+ _context.next = 2;
55
+ return (0, _react2.act)(function () {
56
+ return (0, _react2.waitFor)(function () {
57
+ (0, _find.default)(component).call(component, '.file-upload-dropzone').simulate('drop', {
58
+ target: {
59
+ files: files
60
+ },
61
+ preventDefault: function preventDefault() {},
62
+ persist: function persist() {}
63
+ });
64
+ });
65
+ });
66
+ case 2:
67
+ case "end":
68
+ return _context.stop();
69
+ }
70
+ }, _callee);
71
+ }));
72
+ return function dropFile(_x, _x2) {
73
+ return _ref.apply(this, arguments);
74
+ };
75
+ }();
76
+ describe('FileUpload', function () {
77
+ var createObjectURL;
78
+ beforeEach(function () {
79
+ createObjectURL = _url.default.createObjectURL;
80
+ _url.default.createObjectURL = jest.fn();
81
+ });
82
+ afterEach(function () {
83
+ jest.clearAllMocks();
84
+ _url.default.createObjectURL = createObjectURL;
85
+ });
86
+ describe('when file uploaded', function () {
87
+ var uploadedFiles = [{
88
+ file: {
89
+ name: 'foo.png',
90
+ path: 'foo.png',
91
+ size: 200,
92
+ type: 'image/png'
93
+ },
94
+ tempId: 10,
95
+ preview: undefined
96
+ }, {
97
+ file: {
98
+ name: 'bar.pdf',
99
+ path: 'bar.pdf',
100
+ size: 200,
101
+ type: 'application/pdf'
102
+ },
103
+ tempId: 10,
104
+ preview: undefined
105
+ }];
106
+ it('sets files with onDrop method and clears rejected files on validations', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
107
+ var component;
108
+ return _regenerator.default.wrap(function _callee2$(_context2) {
109
+ while (1) switch (_context2.prev = _context2.next) {
110
+ case 0:
111
+ component = render(props);
112
+ _context2.next = 3;
113
+ return dropFile(component, goodFiles);
114
+ case 3:
115
+ expect(props.setUploadedFiles).toHaveBeenCalledWith(uploadedFiles);
116
+ expect(props.setRejectedFiles).toHaveBeenCalledWith({
117
+ filesTooBig: [],
118
+ filesWrongType: []
119
+ });
120
+ case 5:
121
+ case "end":
122
+ return _context2.stop();
123
+ }
124
+ }, _callee2);
125
+ })));
126
+ it('renders file preview for successful file uploads', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
127
+ var _context3;
128
+ var component;
129
+ return _regenerator.default.wrap(function _callee3$(_context4) {
130
+ while (1) switch (_context4.prev = _context4.next) {
131
+ case 0:
132
+ component = render(_objectSpread(_objectSpread({}, props), {}, {
133
+ uploadedFiles: uploadedFiles
134
+ }));
135
+ expect((0, _find.default)(_context3 = (0, _find.default)(component).call(component, _FileUpload.FileUpload).render()).call(_context3, '.file-upload-dropzone__preview__preview-item')).toHaveLength(2);
136
+ case 2:
137
+ case "end":
138
+ return _context4.stop();
139
+ }
140
+ }, _callee3);
141
+ })));
142
+ it('sets rejected files with onDropRejected method', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
143
+ var component;
144
+ return _regenerator.default.wrap(function _callee4$(_context5) {
145
+ while (1) switch (_context5.prev = _context5.next) {
146
+ case 0:
147
+ component = render(props);
148
+ _context5.next = 3;
149
+ return dropFile(component, badFiles);
150
+ case 3:
151
+ expect(props.setRejectedFiles).toHaveBeenCalledWith({
152
+ filesTooBig: ['bah.jpg'],
153
+ filesWrongType: ['gah.exe'],
154
+ filesTooBigAndWrongType: ['rah.exe']
155
+ });
156
+ case 4:
157
+ case "end":
158
+ return _context5.stop();
159
+ }
160
+ }, _callee4);
161
+ })));
162
+ it('renders file size and file type error validations', function () {
163
+ var rejectedFiles = {
164
+ filesWrongType: ['gah.exe'],
165
+ filesTooBig: ['bag.jpg'],
166
+ filesTooBigAndWrongType: ['rah.exe']
167
+ };
168
+ expect((0, _renderJSON.default)( /*#__PURE__*/_react.default.createElement(_FileUpload.FileUpload, (0, _extends2.default)({}, props, {
169
+ rejectedFiles: rejectedFiles
170
+ })))).toMatchSnapshot();
171
+ });
172
+ });
173
+ describe('when no file uploaded', function () {
174
+ it('does not render file preview', function () {
175
+ var _context6;
176
+ var component = render(props);
177
+ expect((0, _find.default)(_context6 = (0, _find.default)(component).call(component, _FileUpload.FileUpload).render()).call(_context6, '.file-upload-dropzone__preview__preview-item')).toHaveLength(0);
178
+ });
179
+ });
180
+ });
181
+ //# sourceMappingURL=FileUpload.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FileUpload.test.js","names":["_react","_interopRequireDefault","require","_enzyme","_renderJSON","_react2","_FileUpload","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","_filterInstanceProperty","call","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","jest","mock","generateUUID","mockReturnValue","createFile","name","size","type","path","goodFiles","badFiles","props","setRejectedFiles","fn","setUploadedFiles","uploadedFiles","rejectedFiles","filesTooBig","filesWrongType","render","renderProps","undefined","mount","createElement","FileUpload","dropFile","_ref","_asyncToGenerator2","_regenerator","mark","_callee","component","files","wrap","_callee$","_context","prev","next","act","waitFor","_find","simulate","preventDefault","persist","stop","_x","_x2","describe","createObjectURL","beforeEach","_url","afterEach","clearAllMocks","file","tempId","preview","it","_callee2","_callee2$","_context2","expect","toHaveBeenCalledWith","_callee3","_context3","_callee3$","_context4","toHaveLength","_callee4","_callee4$","_context5","filesTooBigAndWrongType","renderJSON","_extends2","toMatchSnapshot","_context6"],"sources":["../../../../src/common/form/FileUploadV2/FileUpload.test.js"],"sourcesContent":["import React from 'react';\nimport { mount } from 'enzyme';\nimport renderJSON from 'testUtils/renderJSON';\nimport { act, waitFor } from '@testing-library/react';\nimport { FileUpload } from './FileUpload';\n\njest.mock('common/utils/utils');\nrequire('src/common/utils/utils').generateUUID.mockReturnValue(10);\n\nconst createFile = (name, size, type) => ({\n name,\n path: name,\n size,\n type,\n});\n\nconst goodFiles = [\n createFile('foo.png', 200, 'image/png'),\n createFile('bar.pdf', 200, 'application/pdf'),\n];\n\nconst badFiles = [\n createFile('gah.exe', 300, 'application/octet-stream'),\n createFile('bah.jpg', 10000001, 'image/jpg'),\n createFile('rah.exe', 10000004, 'application/octet-stream'),\n];\n\nconst props = {\n setRejectedFiles: jest.fn(),\n setUploadedFiles: jest.fn(),\n uploadedFiles: [],\n rejectedFiles: { filesTooBig: [], filesWrongType: [] },\n};\n\nconst render = (renderProps = {}) => mount(\n <FileUpload {...renderProps} />,\n);\n\nconst dropFile = async (component, files) => {\n await act(() => waitFor(() => {\n component.find('.file-upload-dropzone').simulate('drop', {\n target: { files },\n preventDefault: () => {},\n persist: () => {},\n });\n }));\n};\n\ndescribe('FileUpload', () => {\n let createObjectURL;\n beforeEach(() => {\n createObjectURL = global.URL.createObjectURL;\n global.URL.createObjectURL = jest.fn();\n });\n\n afterEach(() => {\n jest.clearAllMocks();\n global.URL.createObjectURL = createObjectURL;\n });\n\n describe('when file uploaded', () => {\n const uploadedFiles = [\n {\n file: {\n name: 'foo.png',\n path: 'foo.png',\n size: 200,\n type: 'image/png',\n },\n tempId: 10,\n preview: undefined,\n },\n {\n file: {\n name: 'bar.pdf',\n path: 'bar.pdf',\n size: 200,\n type: 'application/pdf',\n },\n tempId: 10,\n preview: undefined,\n },\n ];\n\n it('sets files with onDrop method and clears rejected files on validations', async () => {\n const component = render(props);\n await dropFile(component, goodFiles);\n expect(props.setUploadedFiles).toHaveBeenCalledWith(uploadedFiles);\n expect(props.setRejectedFiles).toHaveBeenCalledWith({ filesTooBig: [], filesWrongType: [] });\n });\n\n it('renders file preview for successful file uploads', async () => {\n const component = render({ ...props, uploadedFiles });\n expect(component.find(FileUpload).render().find('.file-upload-dropzone__preview__preview-item')).toHaveLength(2);\n });\n\n it('sets rejected files with onDropRejected method', async () => {\n const component = render(props);\n await dropFile(component, badFiles);\n\n expect(props.setRejectedFiles).toHaveBeenCalledWith({\n filesTooBig: ['bah.jpg'],\n filesWrongType: ['gah.exe'],\n filesTooBigAndWrongType: ['rah.exe'],\n });\n });\n\n it('renders file size and file type error validations', () => {\n const rejectedFiles = {\n filesWrongType: ['gah.exe'],\n filesTooBig: ['bag.jpg'],\n filesTooBigAndWrongType: ['rah.exe'],\n };\n expect(renderJSON(<FileUpload {...props} rejectedFiles={rejectedFiles} />)).toMatchSnapshot();\n });\n });\n\n describe('when no file uploaded', () => {\n it('does not render file preview', () => {\n const component = render(props);\n expect(component.find(FileUpload).render().find('.file-upload-dropzone__preview__preview-item')).toHaveLength(0);\n });\n });\n});\n"],"mappings":"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"}
@@ -0,0 +1,180 @@
1
+ // Jest Snapshot v1, https://goo.gl/fbAQLP
2
+
3
+ exports[`FileUpload when file uploaded renders file size and file type error validations 1`] = `
4
+ Array [
5
+ <div>
6
+ <div
7
+ className="flex"
8
+ >
9
+ <div>
10
+ <svg
11
+ className="ui-icon mr-2 text-validation-red fill-current pb-1"
12
+ height="14px"
13
+ id=""
14
+ style={
15
+ Object {
16
+ "display": "inline-block",
17
+ "fill": "",
18
+ "verticalAlign": "middle",
19
+ }
20
+ }
21
+ viewBox="0 0 15 15"
22
+ width="14px"
23
+ >
24
+ <path
25
+ d="M14.7656 7.375C14.7656 3.39062 11.4844 0.109375 7.5 0.109375C3.48633 0.109375 0.234375 3.39062 0.234375 7.375C0.234375 11.3887 3.48633 14.6406 7.5 14.6406C11.4844 14.6406 14.7656 11.3887 14.7656 7.375ZM7.5 8.83984C8.23242 8.83984 8.84766 9.45508 8.84766 10.1875C8.84766 10.9492 8.23242 11.5352 7.5 11.5352C6.73828 11.5352 6.15234 10.9492 6.15234 10.1875C6.15234 9.45508 6.73828 8.83984 7.5 8.83984ZM6.21094 4.00586C6.18164 3.80078 6.35742 3.625 6.5625 3.625H8.4082C8.61328 3.625 8.78906 3.80078 8.75977 4.00586L8.55469 7.99023C8.52539 8.19531 8.37891 8.3125 8.20312 8.3125H6.76758C6.5918 8.3125 6.44531 8.19531 6.41602 7.99023L6.21094 4.00586Z"
26
+ />
27
+ </svg>
28
+ </div>
29
+ <div>
30
+ <div
31
+ className="text-sm text-validation-red"
32
+ >
33
+ This file type is not supported and exceeds the maximum upload size of 10MB.
34
+ </div>
35
+ <div
36
+ className="text-sm text-validation-red mt-2"
37
+ >
38
+ Accepted formats are CSV .DOC .DOCX .PDF .RTF .TXT .XLS .XLSX .GIF .JPG .JPEG .PNG .MP3 .M4A .WAV .WMA
39
+ </div>
40
+ </div>
41
+ </div>
42
+ <ul>
43
+ <li
44
+ className="text-sm text-validation-red list-disc mt-1"
45
+ >
46
+ rah.exe
47
+ </li>
48
+ </ul>
49
+ </div>,
50
+ <div
51
+ className="mt-3"
52
+ >
53
+ <div
54
+ className="flex"
55
+ >
56
+ <div>
57
+ <svg
58
+ className="ui-icon mr-2 text-validation-red fill-current pb-1"
59
+ height="14px"
60
+ id=""
61
+ style={
62
+ Object {
63
+ "display": "inline-block",
64
+ "fill": "",
65
+ "verticalAlign": "middle",
66
+ }
67
+ }
68
+ viewBox="0 0 15 15"
69
+ width="14px"
70
+ >
71
+ <path
72
+ d="M14.7656 7.375C14.7656 3.39062 11.4844 0.109375 7.5 0.109375C3.48633 0.109375 0.234375 3.39062 0.234375 7.375C0.234375 11.3887 3.48633 14.6406 7.5 14.6406C11.4844 14.6406 14.7656 11.3887 14.7656 7.375ZM7.5 8.83984C8.23242 8.83984 8.84766 9.45508 8.84766 10.1875C8.84766 10.9492 8.23242 11.5352 7.5 11.5352C6.73828 11.5352 6.15234 10.9492 6.15234 10.1875C6.15234 9.45508 6.73828 8.83984 7.5 8.83984ZM6.21094 4.00586C6.18164 3.80078 6.35742 3.625 6.5625 3.625H8.4082C8.61328 3.625 8.78906 3.80078 8.75977 4.00586L8.55469 7.99023C8.52539 8.19531 8.37891 8.3125 8.20312 8.3125H6.76758C6.5918 8.3125 6.44531 8.19531 6.41602 7.99023L6.21094 4.00586Z"
73
+ />
74
+ </svg>
75
+ </div>
76
+ <span
77
+ className="text-sm text-validation-red"
78
+ >
79
+ This file type is not supported. Accepted formats are CSV .DOC .DOCX .PDF .RTF .TXT .XLS .XLSX .GIF .JPG .JPEG .PNG .MP3 .M4A .WAV .WMA
80
+ </span>
81
+ </div>
82
+ <ul>
83
+ <li
84
+ className="text-sm text-validation-red list-disc mt-1"
85
+ >
86
+ gah.exe
87
+ </li>
88
+ </ul>
89
+ </div>,
90
+ <div
91
+ className="mt-3"
92
+ >
93
+ <div
94
+ className="flex"
95
+ >
96
+ <div>
97
+ <svg
98
+ className="ui-icon mr-2 text-validation-red fill-current pb-1"
99
+ height="14px"
100
+ id=""
101
+ style={
102
+ Object {
103
+ "display": "inline-block",
104
+ "fill": "",
105
+ "verticalAlign": "middle",
106
+ }
107
+ }
108
+ viewBox="0 0 15 15"
109
+ width="14px"
110
+ >
111
+ <path
112
+ d="M14.7656 7.375C14.7656 3.39062 11.4844 0.109375 7.5 0.109375C3.48633 0.109375 0.234375 3.39062 0.234375 7.375C0.234375 11.3887 3.48633 14.6406 7.5 14.6406C11.4844 14.6406 14.7656 11.3887 14.7656 7.375ZM7.5 8.83984C8.23242 8.83984 8.84766 9.45508 8.84766 10.1875C8.84766 10.9492 8.23242 11.5352 7.5 11.5352C6.73828 11.5352 6.15234 10.9492 6.15234 10.1875C6.15234 9.45508 6.73828 8.83984 7.5 8.83984ZM6.21094 4.00586C6.18164 3.80078 6.35742 3.625 6.5625 3.625H8.4082C8.61328 3.625 8.78906 3.80078 8.75977 4.00586L8.55469 7.99023C8.52539 8.19531 8.37891 8.3125 8.20312 8.3125H6.76758C6.5918 8.3125 6.44531 8.19531 6.41602 7.99023L6.21094 4.00586Z"
113
+ />
114
+ </svg>
115
+ </div>
116
+ <span
117
+ className="text-sm text-validation-red"
118
+ >
119
+ The following file exceeds the maximum upload size of 10MB
120
+ </span>
121
+ </div>
122
+ <ul>
123
+ <li
124
+ className="text-sm text-validation-red list-disc mt-1"
125
+ >
126
+ bag.jpg
127
+ </li>
128
+ </ul>
129
+ </div>,
130
+ <div
131
+ className="file-upload-dropzone mb-3 mt-5"
132
+ onBlur={[Function]}
133
+ onClick={[Function]}
134
+ onDragEnter={[Function]}
135
+ onDragLeave={[Function]}
136
+ onDragOver={[Function]}
137
+ onDrop={[Function]}
138
+ onFocus={[Function]}
139
+ onKeyDown={[Function]}
140
+ tabIndex={0}
141
+ >
142
+ <div
143
+ className="file-upload-dropzone__preview"
144
+ >
145
+ <p>
146
+ <span
147
+ className="file-upload-dropzone__preview__uploader-link"
148
+ >
149
+ Choose file
150
+ </span>
151
+ or drag and drop to upload
152
+ </p>
153
+ </div>
154
+ <input
155
+ accept="text/csv, application/msword,
156
+ application/vnd.openxmlformats-officedocument.wordprocessingml.document,
157
+ application/pdf, application/rtf, text/rtf, application/x-rtf, text/plain,
158
+ application/excel, application/vnd.ms-excel, application/x-excel, application/x-msexcel,
159
+ application/vnd.openxmlformats-officedocument.spreadsheetml.sheet,
160
+ application/vnd.ms-excel.sheet.binary.macroEnabled.12,
161
+ application/vnd.ms-excel,
162
+ application/vnd.ms-excel.sheet.macroEnabled.12,
163
+ image/gif, image/jpg, image/jpeg, image/png, audio/mpeg, audio/m4a,
164
+ audio/x-m4a, audio/wav, audio/x-wav, audio/x-ms-wma, video/x-ms-wma"
165
+ autoComplete="off"
166
+ disabled={false}
167
+ multiple={true}
168
+ onChange={[Function]}
169
+ onClick={[Function]}
170
+ style={
171
+ Object {
172
+ "display": "none",
173
+ }
174
+ }
175
+ tabIndex={-1}
176
+ type="file"
177
+ />
178
+ </div>,
179
+ ]
180
+ `;
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
+ _Object$defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+ var _propTypes = _interopRequireDefault(require("prop-types"));
10
+ var _react = _interopRequireDefault(require("react"));
11
+ var _FileThumbnail = _interopRequireDefault(require("@unite-us/client-utils/dist/FileThumbnail"));
12
+ var FilePreview = function FilePreview(_ref) {
13
+ var contentType = _ref.contentType,
14
+ preview = _ref.preview;
15
+ if (/\bimage\b/.test(contentType)) {
16
+ return /*#__PURE__*/_react.default.createElement("img", {
17
+ src: preview,
18
+ alt: "preview"
19
+ });
20
+ }
21
+ return /*#__PURE__*/_react.default.createElement(_FileThumbnail.default, {
22
+ contentType: contentType
23
+ });
24
+ };
25
+ FilePreview.propTypes = {
26
+ contentType: _propTypes.default.string.isRequired,
27
+ preview: _propTypes.default.string
28
+ };
29
+ var _default = FilePreview;
30
+ exports.default = _default;
31
+ //# sourceMappingURL=FilePreview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FilePreview.js","names":["_propTypes","_interopRequireDefault","require","_react","_FileThumbnail","FilePreview","_ref","contentType","preview","test","default","createElement","src","alt","propTypes","PropTypes","string","isRequired","_default","exports"],"sources":["../../../../../src/common/form/FileUploadV2/components/FilePreview.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\nimport FileThumbnail from '@unite-us/client-utils/dist/FileThumbnail';\n\nconst FilePreview = ({ contentType, preview }) => {\n if (/\\bimage\\b/.test(contentType)) {\n return <img src={preview} alt=\"preview\" />;\n }\n\n return <FileThumbnail contentType={contentType} />;\n};\n\nFilePreview.propTypes = {\n contentType: PropTypes.string.isRequired,\n preview: PropTypes.string,\n};\n\nexport default FilePreview;\n"],"mappings":";;;;;;;;AAAA,IAAAA,UAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,MAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,cAAA,GAAAH,sBAAA,CAAAC,OAAA;AAEA,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAAC,IAAA,EAAiC;EAAA,IAA3BC,WAAW,GAAAD,IAAA,CAAXC,WAAW;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;EACzC,IAAI,WAAW,CAACC,IAAI,CAACF,WAAW,CAAC,EAAE;IACjC,oBAAOJ,MAAA,CAAAO,OAAA,CAAAC,aAAA;MAAKC,GAAG,EAAEJ,OAAQ;MAACK,GAAG,EAAC;IAAS,EAAG;EAC5C;EAEA,oBAAOV,MAAA,CAAAO,OAAA,CAAAC,aAAA,CAACP,cAAA,CAAAM,OAAa;IAACH,WAAW,EAAEA;EAAY,EAAG;AACpD,CAAC;AAEDF,WAAW,CAACS,SAAS,GAAG;EACtBP,WAAW,EAAEQ,kBAAS,CAACC,MAAM,CAACC,UAAU;EACxCT,OAAO,EAAEO,kBAAS,CAACC;AACrB,CAAC;AAAC,IAAAE,QAAA,GAEab,WAAW;AAAAc,OAAA,CAAAT,OAAA,GAAAQ,QAAA"}
@@ -0,0 +1,49 @@
1
+ @import '../../../../styles/variables';
2
+
3
+ .file-upload-dropzone {
4
+ position: relative;
5
+
6
+ background: #EEF5FC;
7
+ border: 1px dashed #C2D8EA;
8
+ box-sizing: border-box;
9
+ border-radius: 4px;
10
+
11
+ padding: 1em;
12
+ min-height: 8em;
13
+ cursor: pointer;
14
+ display: flex;
15
+ justify-content: center;
16
+ align-items: center;
17
+
18
+ &__preview {
19
+ text-align: center;
20
+
21
+ &__uploader-link {
22
+ color: $united-blue-color;
23
+ text-decoration: underline;
24
+ }
25
+
26
+ &__preview-item {
27
+ background:$white;
28
+ box-shadow: rgba(0, 0, 0, 0.12) 0px 1px 6px, $table-border-color 0px 1px 4px;
29
+ display: inline-block;
30
+ margin: 8px;
31
+ min-width: 100px;
32
+ padding: 10px 5px;
33
+ position: relative;
34
+ }
35
+ img {
36
+ max-width: 100px;
37
+ max-height: 80px;
38
+ }
39
+ &__file-name {
40
+ background: $white;
41
+ font-size: 11px;
42
+ line-height: 13px;
43
+ max-width: 100px;
44
+ overflow: hidden;
45
+ padding: 7px 7px 0;
46
+ word-break: break-all;
47
+ }
48
+ }
49
+ }
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+
3
+ var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
4
+ _Object$defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.generateUUID = generateUUID;
8
+ function generateUUID() {
9
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
10
+ var r = Math.random() * 16 | 0;
11
+ var v = c === 'x' ? r : r & 0x3 | 0x8; // eslint-disable-line no-mixed-operators
12
+ return v.toString(16);
13
+ });
14
+ }
15
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","names":["generateUUID","replace","c","r","Math","random","v","toString"],"sources":["../../../src/common/utils/utils.js"],"sourcesContent":["export function generateUUID() {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'\n .replace(\n /[xy]/g,\n (c) => {\n const r = Math.random() * 16 | 0;\n const v = c === 'x' ? r : (r & 0x3 | 0x8); // eslint-disable-line no-mixed-operators\n return v.toString(16);\n },\n );\n}\n"],"mappings":";;;;;;;AAAO,SAASA,YAAYA,CAAA,EAAG;EAC7B,OAAO,sCAAsC,CAC1CC,OAAO,CACN,OAAO,EACP,UAACC,CAAC,EAAK;IACL,IAAMC,CAAC,GAAGC,IAAI,CAACC,MAAM,EAAE,GAAG,EAAE,GAAG,CAAC;IAChC,IAAMC,CAAC,GAAGJ,CAAC,KAAK,GAAG,GAAGC,CAAC,GAAIA,CAAC,GAAG,GAAG,GAAG,GAAI,CAAC,CAAC;IAC3C,OAAOG,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;EACvB,CAAC,CACF;AACL"}
@@ -7,11 +7,11 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = getDobData;
9
9
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
10
- var _clientUtils = require("@unite-us/client-utils");
10
+ var _dates = _interopRequireDefault(require("@unite-us/client-utils/dist/utils/dates"));
11
11
  var _moment = _interopRequireDefault(require("moment"));
12
12
  function getDobData(dateOfBirth) {
13
13
  var _context;
14
- var birthData = _clientUtils.dates.formatDate(dateOfBirth);
14
+ var birthData = _dates.default.formatDate(dateOfBirth);
15
15
  var currentDate = (0, _moment.default)(new Date());
16
16
  var age = Math.floor(currentDate.diff(birthData, 'years', true));
17
17
  return (0, _concat.default)(_context = "".concat(birthData, " (Age ")).call(_context, age, ")");
@@ -1 +1 @@
1
- {"version":3,"file":"getDOBData.js","names":["_clientUtils","require","_moment","_interopRequireDefault","getDobData","dateOfBirth","_context","birthData","dates","formatDate","currentDate","moment","Date","age","Math","floor","diff","_concat","default","concat","call"],"sources":["../../../../src/components/ClientHeader/utils/getDOBData.js"],"sourcesContent":["import { dates } from '@unite-us/client-utils';\nimport moment from 'moment';\n\nexport default function getDobData(dateOfBirth) {\n const birthData = dates.formatDate(dateOfBirth);\n const currentDate = moment(new Date());\n const age = Math.floor(currentDate.diff(birthData, 'years', true));\n\n return `${birthData} (Age ${age})`;\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,OAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEe,SAASG,UAAUA,CAACC,WAAW,EAAE;EAAA,IAAAC,QAAA;EAC9C,IAAMC,SAAS,GAAGC,kBAAK,CAACC,UAAU,CAACJ,WAAW,CAAC;EAC/C,IAAMK,WAAW,GAAG,IAAAC,eAAM,EAAC,IAAIC,IAAI,EAAE,CAAC;EACtC,IAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACL,WAAW,CAACM,IAAI,CAACT,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;EAElE,WAAAU,OAAA,CAAAC,OAAA,EAAAZ,QAAA,MAAAa,MAAA,CAAUZ,SAAS,aAAAa,IAAA,CAAAd,QAAA,EAASO,GAAG;AACjC"}
1
+ {"version":3,"file":"getDOBData.js","names":["_dates","_interopRequireDefault","require","_moment","getDobData","dateOfBirth","_context","birthData","dates","formatDate","currentDate","moment","Date","age","Math","floor","diff","_concat","default","concat","call"],"sources":["../../../../src/components/ClientHeader/utils/getDOBData.js"],"sourcesContent":["import dates from '@unite-us/client-utils/dist/utils/dates';\nimport moment from 'moment';\n\nexport default function getDobData(dateOfBirth) {\n const birthData = dates.formatDate(dateOfBirth);\n const currentDate = moment(new Date());\n const age = Math.floor(currentDate.diff(birthData, 'years', true));\n\n return `${birthData} (Age ${age})`;\n}\n"],"mappings":";;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAF,sBAAA,CAAAC,OAAA;AAEe,SAASE,UAAUA,CAACC,WAAW,EAAE;EAAA,IAAAC,QAAA;EAC9C,IAAMC,SAAS,GAAGC,cAAK,CAACC,UAAU,CAACJ,WAAW,CAAC;EAC/C,IAAMK,WAAW,GAAG,IAAAC,eAAM,EAAC,IAAIC,IAAI,EAAE,CAAC;EACtC,IAAMC,GAAG,GAAGC,IAAI,CAACC,KAAK,CAACL,WAAW,CAACM,IAAI,CAACT,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;EAElE,WAAAU,OAAA,CAAAC,OAAA,EAAAZ,QAAA,MAAAa,MAAA,CAAUZ,SAAS,aAAAa,IAAA,CAAAd,QAAA,EAASO,GAAG;AACjC"}
@@ -6,30 +6,110 @@ _Object$defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.default = Stepper;
9
+ var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
10
+ var _findIndex = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find-index"));
9
11
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
10
12
  var _lodash = require("lodash");
11
13
  var _react = _interopRequireDefault(require("react"));
12
- function Stepper(_ref) {
14
+ var _getBaseUrl = _interopRequireDefault(require("../utils/getBaseUrl"));
15
+ var _api = require("../config/api");
16
+ var _ui = require("@unite-us/ui");
17
+ var steps = [{
18
+ route: "search",
19
+ label: "Search",
20
+ onStepClick: function onStepClick() {},
21
+ stepDisabled: true
22
+ }, {
23
+ route: "referrals",
24
+ label: "Refer",
25
+ onStepClick: function onStepClick() {
26
+ _api.browserHistory.push("".concat((0, _getBaseUrl.default)(), "/referrals"));
27
+ }
28
+ }, {
29
+ route: "supporting-info",
30
+ label: "Complete Assessments",
31
+ onStepClick: function onStepClick() {
32
+ _api.browserHistory.push("".concat((0, _getBaseUrl.default)(), "/supporting-info"));
33
+ }
34
+ }, {
35
+ route: "review",
36
+ label: "Review",
37
+ onStepClick: function onStepClick() {
38
+ _api.browserHistory.push("".concat((0, _getBaseUrl.default)(), "/review"));
39
+ }
40
+ }];
41
+ function Step(_ref) {
13
42
  var _context;
14
- var location = _ref.location;
43
+ var active = _ref.active,
44
+ completed = _ref.completed,
45
+ disabled = _ref.disabled,
46
+ icon = _ref.icon,
47
+ label = _ref.label,
48
+ onClick = _ref.onClick;
49
+ var iconBgColorClass = "";
50
+ if (active) {
51
+ iconBgColorClass = "bg-dark-blue";
52
+ } else if (completed) {
53
+ iconBgColorClass = "bg-action-blue";
54
+ } else {
55
+ iconBgColorClass = "bg-brand-blue";
56
+ }
57
+ var textColorClass = active || completed ? "text-dark-blue" : "text-brand-blue";
58
+ return /*#__PURE__*/_react.default.createElement("button", {
59
+ disabled: disabled,
60
+ className: (0, _concat.default)(_context = "flex items-center p-4 ".concat(disabled ? "cursor-default" : "", " ")).call(_context, !active && !completed ? "opacity-50" : ""),
61
+ onClick: onClick
62
+ }, completed ? /*#__PURE__*/_react.default.createElement(_ui.Icon, {
63
+ icon: "V2CheckCircle",
64
+ color: "#4467AB",
65
+ size: 24
66
+ }) : /*#__PURE__*/_react.default.createElement("div", {
67
+ className: "text-white text-base flex items-center justify-center font-black w-6 h-6 rounded-full ".concat(iconBgColorClass)
68
+ }, icon), /*#__PURE__*/_react.default.createElement("span", {
69
+ className: "font-black whitespace-no-wrap ml-2 text-base ".concat(textColorClass)
70
+ }, label));
71
+ }
72
+ function Stepper(_ref2) {
73
+ var location = _ref2.location;
15
74
  var pathname = location.pathname;
16
- var route = (0, _lodash.get)(pathname.split('create-referral/'), '[1]');
75
+ var route = (0, _lodash.get)(pathname.split("create-referral/"), "[1]");
76
+ var currentStep = (0, _findIndex.default)(steps).call(steps, function (s) {
77
+ return s.route == route;
78
+ });
17
79
  return /*#__PURE__*/_react.default.createElement("div", {
18
- className: "flex justify-around my-10"
19
- }, (0, _map.default)(_context = ["search", "referrals", "supporting-info", "review"]).call(_context, function (step, i) {
20
- return /*#__PURE__*/_react.default.createElement("div", {
21
- className: route === step ? 'bg-red' : 'bg-blue',
22
- style: {
23
- height: '40px',
24
- width: '40px',
25
- borderRadius: '60px',
26
- justifyContent: 'center',
27
- display: 'flex',
28
- alignItems: 'center'
29
- }
30
- }, /*#__PURE__*/_react.default.createElement("span", {
31
- className: "text-white"
32
- }, i + 1));
80
+ className: "flex justify-around items-center p-8",
81
+ activeStep: currentStep
82
+ }, (0, _map.default)(steps).call(steps, function (step, index) {
83
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(Step, {
84
+ key: "step-".concat(index),
85
+ active: index === currentStep,
86
+ completed: isStepCompleted(steps[index], currentStep, index),
87
+ disabled: isStepDisabled(steps[index], currentStep),
88
+ icon: index + 1,
89
+ label: step.label,
90
+ onClick: step.onStepClick
91
+ }), index < steps.length - 1 && /*#__PURE__*/_react.default.createElement("div", {
92
+ key: "divider-".concat(index),
93
+ className: "h-px w-full bg-grey"
94
+ }));
33
95
  }));
34
96
  }
97
+ function isStepCompleted(step, currentStep, index) {
98
+ if ((0, _lodash.isFunction)(step.stepCompleted)) {
99
+ return step.stepCompleted(currentStep);
100
+ }
101
+ if ((0, _lodash.isBoolean)(step.stepCompleted)) {
102
+ return step.stepCompleted;
103
+ }
104
+ return currentStep > index;
105
+ }
106
+ function isStepDisabled(step, currentStep) {
107
+ if ((0, _lodash.isFunction)(step.stepDisabled)) {
108
+ return step.stepDisabled(currentStep);
109
+ }
110
+ if ((0, _lodash.isBoolean)(step.stepDisabled)) {
111
+ return step.stepDisabled;
112
+ }
113
+ return false;
114
+ }
35
115
  //# sourceMappingURL=Stepper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper.js","names":["_lodash","require","_react","_interopRequireDefault","Stepper","_ref","_context","location","pathname","route","get","split","default","createElement","className","_map","call","step","i","style","height","width","borderRadius","justifyContent","display","alignItems"],"sources":["../../src/components/Stepper.js"],"sourcesContent":["import { get } from 'lodash';\nimport React from 'react';\n\nexport default function Stepper({ location }) {\n\n const pathname = location.pathname;\n const route = get(pathname.split('create-referral/'), '[1]');\n return (\n <div className=\"flex justify-around my-10\">\n {[\"search\", \"referrals\", \"supporting-info\", \"review\"].map((step, i) => (\n <div\n className={route === step ? 'bg-red' : 'bg-blue'}\n style={{\n height: '40px',\n width: '40px',\n borderRadius: '60px',\n justifyContent: 'center',\n display: 'flex',\n alignItems: 'center',\n }}>\n <span className='text-white'>{i + 1}</span>\n </div>)\n )\n }\n </div >\n )\n}"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AAEe,SAASG,OAAOA,CAAAC,IAAA,EAAe;EAAA,IAAAC,QAAA;EAAA,IAAZC,QAAQ,GAAAF,IAAA,CAARE,QAAQ;EAExC,IAAMC,QAAQ,GAAGD,QAAQ,CAACC,QAAQ;EAClC,IAAMC,KAAK,GAAG,IAAAC,WAAG,EAACF,QAAQ,CAACG,KAAK,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC;EAC5D,oBACET,MAAA,CAAAU,OAAA,CAAAC,aAAA;IAAKC,SAAS,EAAC;EAA2B,GACvC,IAAAC,IAAA,CAAAH,OAAA,EAAAN,QAAA,IAAC,QAAQ,EAAE,WAAW,EAAE,iBAAiB,EAAE,QAAQ,CAAC,EAAAU,IAAA,CAAAV,QAAA,EAAK,UAACW,IAAI,EAAEC,CAAC;IAAA,oBAChEhB,MAAA,CAAAU,OAAA,CAAAC,aAAA;MACEC,SAAS,EAAEL,KAAK,KAAKQ,IAAI,GAAG,QAAQ,GAAG,SAAU;MACjDE,KAAK,EAAE;QACLC,MAAM,EAAE,MAAM;QACdC,KAAK,EAAE,MAAM;QACbC,YAAY,EAAE,MAAM;QACpBC,cAAc,EAAE,QAAQ;QACxBC,OAAO,EAAE,MAAM;QACfC,UAAU,EAAE;MACd;IAAE,gBACFvB,MAAA,CAAAU,OAAA,CAAAC,aAAA;MAAMC,SAAS,EAAC;IAAY,GAAEI,CAAC,GAAG,CAAC,CAAQ,CACvC;EAAA,CAAC,CACR,CAEI;AAEX"}
1
+ {"version":3,"file":"Stepper.js","names":["_lodash","require","_react","_interopRequireDefault","_getBaseUrl","_api","_ui","steps","route","label","onStepClick","stepDisabled","browserHistory","push","concat","getBaseUrl","Step","_ref","_context","active","completed","disabled","icon","onClick","iconBgColorClass","textColorClass","default","createElement","className","_concat","call","Icon","color","size","Stepper","_ref2","location","pathname","get","split","currentStep","_findIndex","s","activeStep","_map","step","index","Fragment","key","isStepCompleted","isStepDisabled","length","isFunction","stepCompleted","isBoolean"],"sources":["../../src/components/Stepper.js"],"sourcesContent":["import { get, isFunction, isBoolean } from \"lodash\";\nimport React from \"react\";\nimport getBaseUrl from \"../utils/getBaseUrl\";\nimport { browserHistory } from \"../config/api\";\nimport { Icon } from \"@unite-us/ui\";\n\nconst steps = [\n {\n route: \"search\",\n label: \"Search\",\n onStepClick: () => {},\n stepDisabled: true,\n },\n {\n route: \"referrals\",\n label: \"Refer\",\n onStepClick: () => {\n browserHistory.push(`${getBaseUrl()}/referrals`);\n },\n },\n {\n route: \"supporting-info\",\n label: \"Complete Assessments\",\n onStepClick: () => {\n browserHistory.push(`${getBaseUrl()}/supporting-info`);\n },\n },\n {\n route: \"review\",\n label: \"Review\",\n onStepClick: () => {\n browserHistory.push(`${getBaseUrl()}/review`);\n },\n },\n];\n\nfunction Step({ active, completed, disabled, icon, label, onClick }) {\n let iconBgColorClass = \"\";\n\n if (active) {\n iconBgColorClass = \"bg-dark-blue\";\n } else if (completed) {\n iconBgColorClass = \"bg-action-blue\";\n } else {\n iconBgColorClass = \"bg-brand-blue\";\n }\n\n let textColorClass =\n active || completed ? \"text-dark-blue\" : \"text-brand-blue\";\n\n return (\n <button\n disabled={disabled}\n className={`flex items-center p-4 ${disabled ? \"cursor-default\" : \"\"} ${\n !active && !completed ? \"opacity-50\" : \"\"\n }`}\n onClick={onClick}\n >\n {completed ? (\n <Icon icon=\"V2CheckCircle\" color=\"#4467AB\" size={24} />\n ) : (\n <div\n className={`text-white text-base flex items-center justify-center font-black w-6 h-6 rounded-full ${iconBgColorClass}`}\n >\n {icon}\n </div>\n )}\n\n <span className={`font-black whitespace-no-wrap ml-2 text-base ${textColorClass}`}>{label}</span>\n </button>\n );\n}\n\nexport default function Stepper({ location }) {\n const pathname = location.pathname;\n const route = get(pathname.split(\"create-referral/\"), \"[1]\");\n const currentStep = steps.findIndex((s) => s.route == route);\n\n return (\n <div className=\"flex justify-around items-center p-8\" activeStep={currentStep}>\n {steps.map((step, index) => {\n return (\n <>\n <Step\n key={`step-${index}`}\n active={index === currentStep}\n completed={isStepCompleted(steps[index], currentStep, index)}\n disabled={isStepDisabled(steps[index], currentStep)}\n icon={index + 1}\n label={step.label}\n onClick={step.onStepClick}\n />\n {index < steps.length - 1 && (\n <div\n key={`divider-${index}`}\n className=\"h-px w-full bg-grey\"\n />\n )}\n </>\n );\n })}\n </div>\n );\n}\n\nfunction isStepCompleted(step, currentStep, index) {\n if (isFunction(step.stepCompleted)) {\n return step.stepCompleted(currentStep);\n }\n if (isBoolean(step.stepCompleted)) {\n return step.stepCompleted;\n }\n return currentStep > index;\n}\n\nfunction isStepDisabled(step, currentStep) {\n if (isFunction(step.stepDisabled)) {\n return step.stepDisabled(currentStep);\n }\n if (isBoolean(step.stepDisabled)) {\n return step.stepDisabled;\n }\n return false;\n}\n"],"mappings":"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"}
@@ -1,17 +1,21 @@
1
1
  "use strict";
2
2
 
3
+ var _typeof = require("@babel/runtime-corejs3/helpers/typeof");
4
+ var _WeakMap = require("@babel/runtime-corejs3/core-js-stable/weak-map");
3
5
  var _Object$defineProperty = require("@babel/runtime-corejs3/core-js-stable/object/define-property");
6
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor");
4
7
  var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequireDefault");
5
8
  _Object$defineProperty(exports, "__esModule", {
6
9
  value: true
7
10
  });
8
11
  exports.ReferralBuilderForm = ReferralBuilderForm;
9
12
  exports.default = void 0;
10
- var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
11
13
  var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/values"));
12
14
  var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
13
15
  var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
14
- var _react = _interopRequireDefault(require("react"));
16
+ var _extends2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/extends"));
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
18
+ var _react = _interopRequireWildcard(require("react"));
15
19
  var _propTypes = require("prop-types");
16
20
  var _reactFinalForm = require("react-final-form");
17
21
  var _ReferralProgramCard = _interopRequireDefault(require("./ReferralProgramCard"));
@@ -19,6 +23,9 @@ var _ui = require("@unite-us/ui");
19
23
  var _InfoPanel = _interopRequireDefault(require("@unite-us/client-utils/dist/InfoPanel/InfoPanel"));
20
24
  var _validations = require("@unite-us/client-utils/dist/utils/validations/validations");
21
25
  var _constants = require("./constants");
26
+ var _FileUpload = require("../../common/form/FileUploadV2/FileUpload");
27
+ function _getRequireWildcardCache(nodeInterop) { if (typeof _WeakMap !== "function") return null; var cacheBabelInterop = new _WeakMap(); var cacheNodeInterop = new _WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
28
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? _Object$getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { _Object$defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
22
29
  function ReferralBuilderForm(_ref) {
23
30
  var referral = _ref.referral,
24
31
  index = _ref.index,
@@ -33,6 +40,18 @@ function ReferralBuilderForm(_ref) {
33
40
  values: values
34
41
  });
35
42
  };
43
+ var _useState = (0, _react.useState)([]),
44
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
45
+ uploadedFiles = _useState2[0],
46
+ setUploadedFiles = _useState2[1];
47
+ var _useState3 = (0, _react.useState)({
48
+ filesTooBig: [],
49
+ filesWrongType: [],
50
+ filesTooBigAndWrongType: []
51
+ }),
52
+ _useState4 = (0, _slicedToArray2.default)(_useState3, 2),
53
+ rejectedFiles = _useState4[0],
54
+ setRejectedFiles = _useState4[1];
36
55
  return /*#__PURE__*/_react.default.createElement(_reactFinalForm.Form, {
37
56
  initialValues: referral,
38
57
  onSubmit: function onSubmit() {},
@@ -90,6 +109,11 @@ function ReferralBuilderForm(_ref) {
90
109
  validations: _validations.isRequired,
91
110
  required: true
92
111
  }, params));
112
+ }), /*#__PURE__*/_react.default.createElement(_FileUpload.FileUpload, {
113
+ rejectedFiles: rejectedFiles,
114
+ setRejectedFiles: setRejectedFiles,
115
+ setUploadedFiles: setUploadedFiles,
116
+ uploadedFiles: uploadedFiles
93
117
  }))));
94
118
  });
95
119
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ReferralBuilderForm.js","names":["_react","_interopRequireDefault","require","_propTypes","_reactFinalForm","_ReferralProgramCard","_ui","_InfoPanel","_validations","_constants","ReferralBuilderForm","_ref","referral","index","referralSubtitle","onChange","service","programs","isOON","onProgramClick","values","arguments","length","undefined","console","log","default","createElement","Form","initialValues","onSubmit","validate","errors","description","primaryWorker","_ref2","_context","_values","Fragment","FormSpy","subscription","className","_concat","concat","call","name","_map","program","key","id","onClick","Field","required","params","TextField","_extends2","afterLabelContent","message","REFERRAL_PII_PHI_DESCRIPTION","label","placeholder","rows","inline","validations","isRequired","propTypes","PropTypes","shape","string","array","number","defaultProps","_default","exports"],"sources":["../../../src/pages/referrals/ReferralBuilderForm.js"],"sourcesContent":["import React from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Form, Field, FormSpy } from 'react-final-form';\nimport ReferralProgramCard from './ReferralProgramCard';\nimport { TextField } from '@unite-us/ui';\nimport InfoPanel from '@unite-us/client-utils/dist/InfoPanel/InfoPanel';\nimport {\n isRequired,\n} from '@unite-us/client-utils/dist/utils/validations/validations';\nimport { REFERRAL_PII_PHI_DESCRIPTION } from './constants';\n\nexport function ReferralBuilderForm({ referral, index, referralSubtitle, onChange }) {\n const { service, programs, isOON } = referral;\n\n const onProgramClick = (values = {}) => {\n console.log('program', { values });\n }\n\n return (\n <Form\n initialValues={referral}\n onSubmit={() => { }}\n validate={(values) => {\n const errors = {};\n if (!values.description) { errors.description = \"Required\" }\n if (values.isOON && !values.primaryWorker) { errors.primaryWorker = \"Required\" }\n return errors;\n }}\n >\n {({ values }) => (\n <>\n <FormSpy\n subscription={{ values: true }}\n onChange={onChange}\n />\n <div className=\"md:w-full lg:w-2/3 bg-gray-light border border-blue-border rounded\">\n <div className=\"p-5 bg-med-pale-blue\">\n <h2 className=\"text-xl font-black\">\n {`Referral ${index + 1}: ${service?.name}`}\n </h2>\n <h3>\n {referralSubtitle}\n </h3>\n </div>\n <div className=\"p-5\">\n <h5 className=\"text-base ui-form-field__label ui-form-field__label--required\">PROGRAMS</h5>\n {programs.map((program) => (\n <ReferralProgramCard key={`referral-program-${program?.id}-card`} program={program} onClick={onProgramClick} isOON={isOON} />\n ))}\n <p className=\"text-center text-gray-600 my-10\">\n Click on the three-dot icon to edit referral groupings.\n </p>\n <Field\n name=\"description\"\n required\n >\n {(params) => (\n <TextField\n afterLabelContent={(\n <InfoPanel\n className=\"mb-4 mt-2\"\n message={REFERRAL_PII_PHI_DESCRIPTION}\n />\n )}\n id=\"referral-description\"\n label=\"Referral Description\"\n placeholder=\"Describe your client's current situation and reason for referral.\"\n rows={3}\n inline={false}\n validations={isRequired}\n required\n {...params}\n />\n )}\n </Field>\n </div>\n {/* Primary worker field */}\n\n {/* Attachment area */}\n\n {/* Payment auth form */}\n </div>\n </>\n )}\n </Form>\n )\n}\n\nReferralBuilderForm.propTypes = {\n referral: PropTypes.shape({\n service: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n programs: PropTypes.array.isRequired,\n }).isRequired,\n index: PropTypes.number.isRequired,\n referralSubtitle: PropTypes.string,\n}\n\nReferralBuilderForm.defaultProps = {\n referralSubtitle: '',\n}\n\nexport default ReferralBuilderForm;\n"],"mappings":"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"}
1
+ {"version":3,"file":"ReferralBuilderForm.js","names":["_react","_interopRequireWildcard","require","_propTypes","_reactFinalForm","_ReferralProgramCard","_interopRequireDefault","_ui","_InfoPanel","_validations","_constants","_FileUpload","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","ReferralBuilderForm","_ref","referral","index","referralSubtitle","onChange","service","programs","isOON","onProgramClick","values","arguments","length","undefined","console","log","_useState","useState","_useState2","_slicedToArray2","uploadedFiles","setUploadedFiles","_useState3","filesTooBig","filesWrongType","filesTooBigAndWrongType","_useState4","rejectedFiles","setRejectedFiles","createElement","Form","initialValues","onSubmit","validate","errors","description","primaryWorker","_ref2","_context","_values","Fragment","FormSpy","subscription","className","_concat","concat","name","_map","program","id","onClick","Field","required","params","TextField","_extends2","afterLabelContent","message","REFERRAL_PII_PHI_DESCRIPTION","label","placeholder","rows","inline","validations","isRequired","FileUpload","propTypes","PropTypes","shape","string","array","number","defaultProps","_default","exports"],"sources":["../../../src/pages/referrals/ReferralBuilderForm.js"],"sourcesContent":["import React, { useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Form, Field, FormSpy } from 'react-final-form';\nimport ReferralProgramCard from './ReferralProgramCard';\nimport { TextField } from '@unite-us/ui';\nimport InfoPanel from '@unite-us/client-utils/dist/InfoPanel/InfoPanel';\nimport {\n isRequired,\n} from '@unite-us/client-utils/dist/utils/validations/validations';\nimport { REFERRAL_PII_PHI_DESCRIPTION } from './constants';\nimport { FileUpload } from '../../common/form/FileUploadV2/FileUpload';\n\nexport function ReferralBuilderForm({ referral, index, referralSubtitle, onChange }) {\n const { service, programs, isOON } = referral;\n\n const onProgramClick = (values = {}) => {\n console.log('program', { values });\n }\n\n const [uploadedFiles, setUploadedFiles] = useState([]);\n const [rejectedFiles, setRejectedFiles] = useState({\n filesTooBig: [],\n filesWrongType: [],\n filesTooBigAndWrongType: [],\n });\n\n return (\n <Form\n initialValues={referral}\n onSubmit={() => { }}\n validate={(values) => {\n const errors = {};\n if (!values.description) { errors.description = \"Required\" }\n if (values.isOON && !values.primaryWorker) { errors.primaryWorker = \"Required\" }\n return errors;\n }}\n >\n {({ values }) => (\n <>\n <FormSpy\n subscription={{ values: true }}\n onChange={onChange}\n />\n <div className=\"md:w-full lg:w-2/3 bg-gray-light border border-blue-border rounded\">\n <div className=\"p-5 bg-med-pale-blue\">\n <h2 className=\"text-xl font-black\">\n {`Referral ${index + 1}: ${service?.name}`}\n </h2>\n <h3>\n {referralSubtitle}\n </h3>\n </div>\n <div className=\"p-5\">\n <h5 className=\"text-base ui-form-field__label ui-form-field__label--required\">PROGRAMS</h5>\n {programs.map((program) => (\n <ReferralProgramCard key={`referral-program-${program?.id}-card`} program={program} onClick={onProgramClick} isOON={isOON} />\n ))}\n <p className=\"text-center text-gray-600 my-10\">\n Click on the three-dot icon to edit referral groupings.\n </p>\n <Field\n name=\"description\"\n required\n >\n {(params) => (\n <TextField\n afterLabelContent={(\n <InfoPanel\n className=\"mb-4 mt-2\"\n message={REFERRAL_PII_PHI_DESCRIPTION}\n />\n )}\n id=\"referral-description\"\n label=\"Referral Description\"\n placeholder=\"Describe your client's current situation and reason for referral.\"\n rows={3}\n inline={false}\n validations={isRequired}\n required\n {...params}\n />\n )}\n </Field>\n\n {/* Attachment area */}\n <FileUpload\n rejectedFiles={rejectedFiles}\n setRejectedFiles={setRejectedFiles}\n setUploadedFiles={setUploadedFiles}\n uploadedFiles={uploadedFiles}\n />\n </div>\n {/* Primary worker field */}\n\n {/* Payment auth form */}\n </div>\n </>\n )}\n </Form>\n )\n}\n\nReferralBuilderForm.propTypes = {\n referral: PropTypes.shape({\n service: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n programs: PropTypes.array.isRequired,\n }).isRequired,\n index: PropTypes.number.isRequired,\n referralSubtitle: PropTypes.string,\n}\n\nReferralBuilderForm.defaultProps = {\n referralSubtitle: '',\n}\n\nexport default ReferralBuilderForm;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@unite-us/app-create-referral",
3
- "version": "0.1.15",
3
+ "version": "0.1.17",
4
4
  "main": "build/index.js",
5
5
  "author": "Alex Morales",
6
6
  "dependencies": {
@@ -13,6 +13,7 @@
13
13
  "final-form": "4.20.9",
14
14
  "final-form-arrays": "3.1.0",
15
15
  "lodash": "4.17.21",
16
+ "react-dropzone": "10.1.7",
16
17
  "react-final-form": "6.5.9",
17
18
  "react-final-form-arrays": "3.1.4",
18
19
  "react-scripts": "4.0.3",
@@ -57,8 +58,8 @@
57
58
  "react": "^16.8.0",
58
59
  "react-app-rewired": "^2.2.1",
59
60
  "react-dom": "^16.8.0",
60
- "tailwindcss": "1.9.6",
61
- "react-transition-group": "2.9.0"
61
+ "react-transition-group": "2.9.0",
62
+ "tailwindcss": "1.9.6"
62
63
  },
63
64
  "peerDependencies": {
64
65
  "react": ">=16.8.0",