@widergy/energy-ui 3.6.2 → 3.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/dist/components/UTAttachmentList/assets/audioIcon.svg +3 -0
  3. package/dist/components/UTAttachmentList/assets/checkIcon.svg +3 -0
  4. package/dist/components/UTAttachmentList/assets/deleteIcon.svg +3 -0
  5. package/dist/components/UTAttachmentList/assets/errorIcon.svg +4 -0
  6. package/dist/components/UTAttachmentList/assets/filesIcon.svg +3 -0
  7. package/dist/components/UTAttachmentList/assets/playIcon.svg +3 -0
  8. package/dist/components/UTAttachmentList/assets/uploadIcon.svg +3 -0
  9. package/dist/components/UTAttachmentList/assets/videoIcon.svg +3 -0
  10. package/dist/components/UTAttachmentList/components/Preview/index.js +73 -0
  11. package/dist/components/UTAttachmentList/components/Preview/styles.module.scss +6 -0
  12. package/dist/components/UTAttachmentList/components/PreviewModal/index.js +59 -0
  13. package/dist/components/UTAttachmentList/components/PreviewModal/styles.module.scss +33 -0
  14. package/dist/components/UTAttachmentList/constants.js +24 -0
  15. package/dist/components/UTAttachmentList/index.js +250 -0
  16. package/dist/components/UTAttachmentList/layout.js +245 -0
  17. package/dist/components/UTAttachmentList/styles.module.scss +90 -0
  18. package/dist/components/UTAttachmentList/theme.js +37 -0
  19. package/dist/components/UTAttachmentList/utils.js +79 -0
  20. package/dist/components/UTSelectableCard/README.md +1 -1
  21. package/dist/components/UTSelectableCard/assets/check.svg +3 -0
  22. package/dist/components/UTSelectableCard/assets/help.svg +3 -0
  23. package/dist/components/UTSelectableCard/constants.js +9 -20
  24. package/dist/components/UTSelectableCard/index.js +56 -42
  25. package/dist/components/UTSelectableCard/theme.js +107 -70
  26. package/dist/index.js +7 -0
  27. package/package.json +1 -1
@@ -0,0 +1,245 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _propTypes = require("prop-types");
9
+ var _files = require("@widergy/web-utils/lib/constants/files");
10
+ var _lodash = require("lodash");
11
+ var _UTLabel = _interopRequireDefault(require("../UTLabel"));
12
+ var _UTButton = _interopRequireDefault(require("../UTButton"));
13
+ var _constants = require("./constants");
14
+ var _Preview = _interopRequireDefault(require("./components/Preview"));
15
+ var _utils = require("./utils");
16
+ var _PreviewModal = _interopRequireDefault(require("./components/PreviewModal"));
17
+ var _stylesModule = _interopRequireDefault(require("./styles.module.scss"));
18
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
+ var CheckIcon = function CheckIcon(props) {
22
+ return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
23
+ fillRule: "evenodd",
24
+ clipRule: "evenodd",
25
+ d: "M27.61 8.39c.52.521.52 1.365 0 1.886L14.275 23.61c-.52.52-1.365.52-1.886 0l-6.666-6.667a1.333 1.333 0 1 1 1.885-1.886l5.724 5.724 12.39-12.39c.521-.521 1.366-.521 1.886 0Z"
26
+ }));
27
+ };
28
+ CheckIcon.defaultProps = {
29
+ width: "32",
30
+ height: "32",
31
+ viewBox: "0 0 32 32",
32
+ fill: "#0e59a3",
33
+ xmlns: "http://www.w3.org/2000/svg"
34
+ };
35
+ var DeleteIcon = function DeleteIcon(props) {
36
+ return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
37
+ fillRule: "evenodd",
38
+ clipRule: "evenodd",
39
+ d: "M5.586.586A2 2 0 0 1 7 0h4a2 2 0 0 1 2 2v2h4a1 1 0 1 1 0 2h-.08L16 17.046A3 3 0 0 1 13 20H5a3 3 0 0 1-3-2.954L1.08 6H1a1 1 0 0 1 0-2h4V2A2 2 0 0 1 5.586.586ZM3.086 6l.91 10.917A1 1 0 0 1 4 17a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1 1 1 0 0 1 .004-.083L14.914 6H3.086ZM11 4H7V2h4v2ZM7 8a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0V9a1 1 0 0 1 1-1Zm4 0a1 1 0 0 1 1 1v6a1 1 0 1 1-2 0V9a1 1 0 0 1 1-1Z"
40
+ }));
41
+ };
42
+ DeleteIcon.defaultProps = {
43
+ width: "18",
44
+ height: "20",
45
+ viewBox: "0 0 18 20",
46
+ fill: "#0e59a3",
47
+ xmlns: "http://www.w3.org/2000/svg"
48
+ };
49
+ var ErrorIcon = function ErrorIcon(props) {
50
+ return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("rect", {
51
+ width: "20",
52
+ height: "20",
53
+ rx: "10",
54
+ fill: "#FFEBEE"
55
+ }), /*#__PURE__*/_react.default.createElement("path", {
56
+ fillRule: "evenodd",
57
+ clipRule: "evenodd",
58
+ d: "M5.529 5.527c.26-.26.682-.26.943 0L10 9.056l3.529-3.529a.667.667 0 1 1 .943.943L10.943 10l3.529 3.528a.667.667 0 0 1-.943.943L10 10.941l-3.528 3.53a.667.667 0 1 1-.943-.944L9.057 10 5.53 6.47a.667.667 0 0 1 0-.943Z",
59
+ fill: "#A0041B"
60
+ }));
61
+ };
62
+ ErrorIcon.defaultProps = {
63
+ width: "20",
64
+ height: "20",
65
+ viewBox: "0 0 20 20",
66
+ fill: "none",
67
+ xmlns: "http://www.w3.org/2000/svg"
68
+ };
69
+ var FilesIcon = function FilesIcon(props) {
70
+ return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
71
+ fillRule: "evenodd",
72
+ clipRule: "evenodd",
73
+ d: "M35.819 16.088a13.927 13.927 0 0 0-4.899-.013 13.257 13.257 0 0 0-4.495 1.66c-2.73 1.63-4.544 4.116-5.157 6.847a2.667 2.667 0 0 1-2.602 2.083c-2.657 0-5.183 1.01-7.027 2.775-1.84 1.76-2.852 4.122-2.852 6.558s1.011 4.798 2.851 6.558c1.845 1.764 4.37 2.775 7.028 2.775a2.667 2.667 0 1 1 0 5.334c-3.997 0-7.853-1.518-10.714-4.255-2.865-2.74-4.498-6.483-4.498-10.412 0-3.93 1.633-7.672 4.498-10.412 2.374-2.272 5.434-3.703 8.692-4.125 1.275-3.43 3.769-6.347 7.045-8.305a18.588 18.588 0 0 1 6.306-2.333 19.262 19.262 0 0 1 6.778.018 18.57 18.57 0 0 1 6.29 2.368 16.964 16.964 0 0 1 4.882 4.424 15.425 15.425 0 0 1 2.678 5.877c.227 1.042.34 2.1.34 3.158a12 12 0 0 1-.297 23.997H48a2.667 2.667 0 1 1 0-5.334h2.666a6.667 6.667 0 0 0 0-13.333H48a2.666 2.666 0 0 1-2.602-3.25 9.48 9.48 0 0 0 .013-4.104 10.094 10.094 0 0 0-1.758-3.845 11.632 11.632 0 0 0-3.35-3.028 13.239 13.239 0 0 0-4.484-1.683Zm-5.705 14.024a2.667 2.667 0 0 1 3.771 0l8 8a2.667 2.667 0 0 1-3.771 3.772l-3.448-3.448v17.562a2.667 2.667 0 1 1-5.333 0V38.436l-3.448 3.448a2.667 2.667 0 1 1-3.771-3.772l8-8Z"
74
+ }));
75
+ };
76
+ FilesIcon.defaultProps = {
77
+ width: "64",
78
+ height: "64",
79
+ viewBox: "0 0 64 64",
80
+ fill: "#0e59a3",
81
+ xmlns: "http://www.w3.org/2000/svg"
82
+ };
83
+ var UploadIcon = function UploadIcon(props) {
84
+ return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
85
+ fillRule: "evenodd",
86
+ clipRule: "evenodd",
87
+ d: "M7.41.744a.833.833 0 0 1 1.18 0l3.333 3.333a.833.833 0 0 1-1.179 1.179l-1.91-1.91v6.32a.833.833 0 0 1-1.667 0v-6.32l-1.911 1.91a.833.833 0 1 1-1.179-1.179L7.411.744ZM.5 14.667c0-.46.373-.834.833-.834h13.334a.833.833 0 0 1 0 1.667H1.333a.833.833 0 0 1-.833-.833Z"
88
+ }));
89
+ };
90
+ UploadIcon.defaultProps = {
91
+ width: "16",
92
+ height: "16",
93
+ viewBox: "0 0 16 16",
94
+ fill: "#0e59a3",
95
+ xmlns: "http://www.w3.org/2000/svg"
96
+ };
97
+ var PlayIcon = function PlayIcon(props) {
98
+ return /*#__PURE__*/_react.default.createElement("svg", props, /*#__PURE__*/_react.default.createElement("path", {
99
+ fillRule: "evenodd",
100
+ clipRule: "evenodd",
101
+ d: "M6.512 3.127a1 1 0 0 1 1.012.021l13 8a1 1 0 0 1 0 1.704l-13 8A1 1 0 0 1 6 20V4a1 1 0 0 1 .512-.873ZM8 5.79v12.42L18.092 12 8 5.79Z"
102
+ }));
103
+ };
104
+ PlayIcon.defaultProps = {
105
+ width: "24",
106
+ height: "24",
107
+ viewBox: "0 0 24 24",
108
+ fill: "#0e59a3",
109
+ xmlns: "http://www.w3.org/2000/svg"
110
+ };
111
+ const Attachment = _ref => {
112
+ let {
113
+ acceptedFileTypes,
114
+ classes,
115
+ disabled,
116
+ error,
117
+ errorText,
118
+ fieldTypes,
119
+ fileInputRef,
120
+ helpText,
121
+ maxFiles,
122
+ maxFileSize,
123
+ onChange,
124
+ preview,
125
+ RemoveIcon
126
+ } = _ref;
127
+ const fieldType = acceptedFileTypes || fieldTypes.map(type => _files.inputFiles[type].inputType).join();
128
+ const Icon = RemoveIcon || DeleteIcon;
129
+ const previewIsEmpty = (0, _lodash.isEmpty)(preview);
130
+ const isUploadFileAvailable = preview.length < maxFiles;
131
+ const [previewModalIsOpen, setPreviewModalIsOpen] = (0, _react.useState)(false);
132
+ const [selectedPreview, setSelectedPreview] = (0, _react.useState)(null);
133
+ const openPreviewModal = clickedPreview => {
134
+ setSelectedPreview(clickedPreview);
135
+ setPreviewModalIsOpen(true);
136
+ };
137
+ const closePreviewModal = () => setPreviewModalIsOpen(false);
138
+ return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
139
+ className: "".concat(_stylesModule.default.container, " ").concat(classes.container, " ").concat(error && classes.errorContainer)
140
+ }, !previewIsEmpty && preview.map(previewItem => /*#__PURE__*/_react.default.createElement("div", {
141
+ className: "".concat(_stylesModule.default.previewContainer, " ").concat(classes.previewContainer)
142
+ }, previewItem.src ? /*#__PURE__*/_react.default.createElement(_Preview.default, {
143
+ classes: classes,
144
+ preview: previewItem,
145
+ previewProps: preview.previewProps,
146
+ openPreviewModal: openPreviewModal
147
+ }) : /*#__PURE__*/_react.default.createElement(CheckIcon, {
148
+ className: classes.actionAccentIcon
149
+ }), /*#__PURE__*/_react.default.createElement("div", {
150
+ className: _stylesModule.default.fileContainer
151
+ }, /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
152
+ colorTheme: "gray",
153
+ variant: "small"
154
+ }, previewItem.name), /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
155
+ colorTheme: "gray",
156
+ variant: "small"
157
+ }, previewItem.size, _constants.MB_LABEL)), ((0, _utils.isAudio)(previewItem) || (0, _utils.isVideo)(previewItem)) && /*#__PURE__*/_react.default.createElement(_UTButton.default, {
158
+ classNames: {
159
+ root: preview.removeFileClassnames,
160
+ icon: classes.actionNeutralIcon
161
+ },
162
+ disabled: disabled,
163
+ Icon: PlayIcon,
164
+ onClick: () => {
165
+ setSelectedPreview(previewItem);
166
+ setPreviewModalIsOpen(true);
167
+ },
168
+ size: "small",
169
+ variant: "text"
170
+ }), /*#__PURE__*/_react.default.createElement(_UTButton.default, {
171
+ classNames: {
172
+ root: preview.removeFileClassnames,
173
+ icon: classes.actionNeutralIcon
174
+ },
175
+ disabled: disabled,
176
+ Icon: Icon,
177
+ onClick: previewItem.onClick,
178
+ size: "small",
179
+ variant: "text"
180
+ }))), previewIsEmpty && /*#__PURE__*/_react.default.createElement(FilesIcon, {
181
+ className: "".concat(_stylesModule.default.filesIcon, " ").concat(classes.filesIcon)
182
+ }), /*#__PURE__*/_react.default.createElement("div", {
183
+ className: "".concat(_stylesModule.default.labelAndInputContainer, " ").concat(!previewIsEmpty && _stylesModule.default.positionRelative)
184
+ }, previewIsEmpty && /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
185
+ colorTheme: "accent"
186
+ }, _constants.INDICATIONS), /*#__PURE__*/_react.default.createElement(_UTButton.default, {
187
+ disabled: !isUploadFileAvailable,
188
+ colorTheme: "primary",
189
+ variant: "semitransparent",
190
+ Icon: UploadIcon,
191
+ classNames: {
192
+ root: !previewIsEmpty && _stylesModule.default.uploadButtonFullWidth,
193
+ icon: classes.uploadIcon
194
+ }
195
+ }, _constants.UPLOAD_FILE), isUploadFileAvailable && /*#__PURE__*/_react.default.createElement("input", {
196
+ className: _stylesModule.default.input,
197
+ accept: fieldType,
198
+ ref: fileInputRef,
199
+ type: "file",
200
+ onChange: onChange,
201
+ disabled: disabled,
202
+ multiple: true
203
+ })), /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
204
+ colorTheme: "gray",
205
+ variant: "small",
206
+ className: _stylesModule.default.aclaration
207
+ }, "".concat(_constants.FORMAT_FILE_LABEL).concat((0, _utils.getAvailableFileTypesLabel)(fieldType), "."), " ", /*#__PURE__*/_react.default.createElement("br", null), "".concat(_constants.MAX_SIZE_FILE_LABEL).concat(maxFileSize, "MB"))), helpText && /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
208
+ className: _stylesModule.default.helpText,
209
+ colorTheme: "gray",
210
+ variant: "small"
211
+ }, helpText), error && /*#__PURE__*/_react.default.createElement("div", {
212
+ className: _stylesModule.default.errorLabelContainer
213
+ }, /*#__PURE__*/_react.default.createElement(ErrorIcon, null), /*#__PURE__*/_react.default.createElement(_UTLabel.default, {
214
+ className: _stylesModule.default.errorText,
215
+ colorTheme: "error",
216
+ variant: "small"
217
+ }, errorText)), previewModalIsOpen && /*#__PURE__*/_react.default.createElement(_PreviewModal.default, {
218
+ preview: selectedPreview,
219
+ previewProps: preview.previewProps,
220
+ previewModalIsOpen: previewModalIsOpen,
221
+ closePreviewModal: closePreviewModal
222
+ }));
223
+ };
224
+ Attachment.propTypes = {
225
+ acceptedFileTypes: _propTypes.string,
226
+ classes: (0, _propTypes.objectOf)(_propTypes.string),
227
+ disabled: _propTypes.bool,
228
+ error: _propTypes.bool,
229
+ errorText: _propTypes.string,
230
+ fieldTypes: (0, _propTypes.arrayOf)(_propTypes.string),
231
+ fileInputRef: (0, _propTypes.objectOf)((0, _propTypes.shape)({
232
+ current: (0, _propTypes.instanceOf)(Element)
233
+ })),
234
+ helpText: _propTypes.string,
235
+ maxFiles: _propTypes.number,
236
+ maxFileSize: _propTypes.number,
237
+ onChange: _propTypes.func,
238
+ preview: (0, _propTypes.shape)({
239
+ src: _propTypes.string,
240
+ type: _propTypes.string
241
+ }),
242
+ previewProps: _constants.previewPropType,
243
+ RemoveIcon: _propTypes.elementType
244
+ };
245
+ var _default = exports.default = Attachment;
@@ -0,0 +1,90 @@
1
+ $box-shadow: #e4e6eae5;
2
+
3
+ .container {
4
+ align-items: center;
5
+ border-radius: 5px;
6
+ display: flex;
7
+ flex-direction: column;
8
+ gap: 16px;
9
+ grid-gap: 16px;
10
+ height: 100%;
11
+ justify-content: center;
12
+ max-width: 452px;
13
+ min-height: 210px;
14
+ padding: 0 16px;
15
+ position: relative;
16
+ width: calc(100% - 32px);
17
+ }
18
+
19
+ .filesIcon {
20
+ margin-bottom: -8px;
21
+ }
22
+
23
+ .labelAndInputContainer {
24
+ align-items: center;
25
+ display: flex;
26
+ grid-gap: 6px;
27
+ justify-content: center;
28
+ width: 100%;
29
+ }
30
+
31
+ .uploadButtonFullWidth {
32
+ width: 100%;
33
+ }
34
+
35
+ .input {
36
+ cursor: pointer;
37
+ display: block;
38
+ filter: alpha(opacity=0);
39
+ min-height: 100%;
40
+ min-width: 100%;
41
+ opacity: 0;
42
+ position: absolute;
43
+ right: 0;
44
+ text-align: right;
45
+ top: 0;
46
+ }
47
+
48
+ .aclaration {
49
+ margin-bottom: 16px;
50
+ text-align: center;
51
+ }
52
+
53
+ .previewContainer {
54
+ align-items: center;
55
+ border-radius: 5px;
56
+ box-shadow: 0px 3px 6px $box-shadow;
57
+ cursor: initial;
58
+ display: flex;
59
+ flex-direction: row;
60
+ grid-gap: 16px;
61
+ justify-content: space-between;
62
+ margin: 16px 16px 0;
63
+ padding: 16px;
64
+ width: calc(100% - 32px);
65
+ z-index: 5;
66
+ }
67
+
68
+ .positionRelative {
69
+ position: relative;
70
+ }
71
+
72
+ .fileContainer {
73
+ display: flex;
74
+ display: flex;
75
+ flex: 1;
76
+ flex-direction: column;
77
+ grid-gap: 4px;
78
+ overflow-wrap: anywhere;
79
+ }
80
+
81
+ .helpText {
82
+ margin-top: 12px;
83
+ }
84
+
85
+ .errorLabelContainer {
86
+ display: flex;
87
+ flex-direction: row;
88
+ grid-gap: 8px;
89
+ margin-top: 12px;
90
+ }
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.retrieveStyle = void 0;
7
+ const retrieveStyle = _ref => {
8
+ var _theme$Palette, _theme$Palette2, _theme$Palette3, _theme$Palette4, _theme$Palette5, _theme$Palette6, _theme$Palette7, _theme$Palette8;
9
+ let {
10
+ theme
11
+ } = _ref;
12
+ return {
13
+ container: {
14
+ backgroundColor: (_theme$Palette = theme.Palette) === null || _theme$Palette === void 0 ? void 0 : _theme$Palette.light['03'],
15
+ border: "1px dashed ".concat((_theme$Palette2 = theme.Palette) === null || _theme$Palette2 === void 0 ? void 0 : _theme$Palette2.actions.accent['04'])
16
+ },
17
+ errorContainer: {
18
+ border: "2px solid ".concat((_theme$Palette3 = theme.Palette) === null || _theme$Palette3 === void 0 ? void 0 : _theme$Palette3.error['04'])
19
+ },
20
+ filesIcon: {
21
+ fill: (_theme$Palette4 = theme.Palette) === null || _theme$Palette4 === void 0 ? void 0 : _theme$Palette4.actions.accent['03']
22
+ },
23
+ previewContainer: {
24
+ backgroundColor: (_theme$Palette5 = theme.Palette) === null || _theme$Palette5 === void 0 ? void 0 : _theme$Palette5.light['01']
25
+ },
26
+ actionAccentIcon: {
27
+ fill: (_theme$Palette6 = theme.Palette) === null || _theme$Palette6 === void 0 ? void 0 : _theme$Palette6.actions.accent['04']
28
+ },
29
+ uploadIcon: {
30
+ fill: (_theme$Palette7 = theme.Palette) === null || _theme$Palette7 === void 0 ? void 0 : _theme$Palette7.actions.accent['05']
31
+ },
32
+ actionNeutralIcon: {
33
+ fill: (_theme$Palette8 = theme.Palette) === null || _theme$Palette8 === void 0 ? void 0 : _theme$Palette8.actions.neutral['05']
34
+ }
35
+ };
36
+ };
37
+ exports.retrieveStyle = retrieveStyle;
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.pdfAspectRatioValidation = exports.isVideo = exports.isValidFile = exports.isPDF = exports.isNewFile = exports.isImage = exports.isHTML = exports.isAudio = exports.hasPreview = exports.getSizeInMB = exports.getNotRepeatedFiles = exports.getDefaultAttachment = exports.getBlobFromUrl = exports.getAvailableFileTypesLabel = void 0;
7
+ var _files = require("@widergy/web-utils/lib/constants/files");
8
+ var _constants = require("./constants");
9
+ if (window['pdfjs-dist/build/pdf']) window['pdfjs-dist/build/pdf'].GlobalWorkerOptions.workerSrc = "//cdnjs.cloudflare.com/ajax/libs/pdf.js/".concat(window['pdfjs-dist/build/pdf'].version, "/pdf.worker.js");
10
+ const getImage = async imageUrl => fetch(imageUrl, {
11
+ method: 'GET'
12
+ }).catch(error => console.error(error)); // eslint-disable-line no-console
13
+
14
+ const getBlobFromUrl = async (imageUrl, callback) => {
15
+ if (!imageUrl || !callback) return false;
16
+ const response = await getImage(imageUrl);
17
+ if (response !== null && response !== void 0 && response.ok) response.blob().then(blob => callback(blob));else callback(null);
18
+ };
19
+ exports.getBlobFromUrl = getBlobFromUrl;
20
+ const lengthMatches = (length1, length2, toleranceInPercentage) => {
21
+ const delta = length1 * (toleranceInPercentage / 100);
22
+ return Math.abs(length1 - length2) < delta;
23
+ };
24
+ const pageMatches = (page, allowedPDFUploadSizes) => {
25
+ const viewport = page.getViewport({
26
+ scale: 1
27
+ });
28
+ return allowedPDFUploadSizes.some(size => lengthMatches(size.heightInPt, viewport.height, size.toleranceInPercentage) && lengthMatches(size.widthInPt, viewport.width, size.toleranceInPercentage) || lengthMatches(size.heightInPt, viewport.width, size.toleranceInPercentage) && lengthMatches(size.widthInPt, viewport.height, size.toleranceInPercentage));
29
+ };
30
+ const pdfAspectRatioValidation = async (file, allowedPDFUploadSizes) => {
31
+ const documentLoadingTask = window['pdfjs-dist/build/pdf'].getDocument(URL.createObjectURL(file));
32
+ const document = await documentLoadingTask.promise;
33
+ const totalPages = document.numPages;
34
+ const getPagePromises = [];
35
+ for (let pageNumber = 1; pageNumber <= totalPages; pageNumber += 1) {
36
+ getPagePromises.push(document.getPage(pageNumber));
37
+ }
38
+ const pages = await Promise.all(getPagePromises);
39
+ return pages.every(page => pageMatches(page, allowedPDFUploadSizes));
40
+ };
41
+ exports.pdfAspectRatioValidation = pdfAspectRatioValidation;
42
+ const isImage = file => _files.inputFiles.image.validType.includes(file === null || file === void 0 ? void 0 : file.type);
43
+ exports.isImage = isImage;
44
+ const isPDF = file => _files.inputFiles.pdf.validType.includes(file === null || file === void 0 ? void 0 : file.type);
45
+ exports.isPDF = isPDF;
46
+ const isAudio = file => _files.inputFiles.audio.validType.includes(file === null || file === void 0 ? void 0 : file.type);
47
+ exports.isAudio = isAudio;
48
+ const isVideo = file => _files.inputFiles.video.validType.includes(file === null || file === void 0 ? void 0 : file.type);
49
+ exports.isVideo = isVideo;
50
+ const isHTML = file => _files.inputFiles.html.validType.includes(file === null || file === void 0 ? void 0 : file.type);
51
+ exports.isHTML = isHTML;
52
+ const hasPreview = file => isImage(file) || isAudio(file) || isVideo(file);
53
+ exports.hasPreview = hasPreview;
54
+ const isValidFile = file => hasPreview(file) || isPDF(file) || isHTML(file);
55
+ exports.isValidFile = isValidFile;
56
+ const isNewFile = (newFile, oldFile) => {
57
+ var _newFile$file, _oldFile$file;
58
+ if (!newFile && !oldFile) return false;
59
+ if (!newFile || !oldFile) return true;
60
+ const newFileType = typeof newFile;
61
+ const oldFileType = typeof oldFile;
62
+ if (newFileType !== oldFileType) return true;
63
+ if (newFileType === 'string') return newFile !== oldFile;
64
+ return ((_newFile$file = newFile.file) === null || _newFile$file === void 0 ? void 0 : _newFile$file.lastModified) !== ((_oldFile$file = oldFile.file) === null || _oldFile$file === void 0 ? void 0 : _oldFile$file.lastModified);
65
+ };
66
+ exports.isNewFile = isNewFile;
67
+ const getAvailableFileTypesLabel = acceptedFileTypes => {
68
+ if (Array.isArray(acceptedFileTypes)) {
69
+ return acceptedFileTypes.join(', ').replace(/,\s([^,]+)$/, ' o $1');
70
+ }
71
+ return acceptedFileTypes.split(',').filter(type => type.trim().startsWith('.')).join(', ').replace(/,\s([^,]+)$/, ' o $1');
72
+ };
73
+ exports.getAvailableFileTypesLabel = getAvailableFileTypesLabel;
74
+ const getSizeInMB = maxFileSize => (maxFileSize / 1048576).toFixed(2);
75
+ exports.getSizeInMB = getSizeInMB;
76
+ const getNotRepeatedFiles = files => files.filter((file, index, self) => index === self.findIndex(f => f.name === file.name));
77
+ exports.getNotRepeatedFiles = getNotRepeatedFiles;
78
+ const getDefaultAttachment = (fileType, index) => "".concat(_constants.DEFAULT_ATTACHMENT_NAME, "-").concat(index).concat(fileType && ".".concat(fileType));
79
+ exports.getDefaultAttachment = getDefaultAttachment;
@@ -8,7 +8,7 @@ Selectable card component.
8
8
  | Name | Type | Default |Description |
9
9
  |-----------------|------------------------------------------|-----------|----------------------------------------------------------------------|
10
10
  | aditionalInfo | object: { title: '', description: ''} | | Aditional information to show in the card |
11
- | apareance | string: 'white' \| 'gray' \| | white | The card apareance. |
11
+ | appareance | string: 'white' \| 'gray' \| | white | The card appareance. |
12
12
  | checkIcon | bool | true | Indicates if on "active" status shows a check icon |
13
13
  | classes | string | | Classes returned by UTLabel's own [theme](./theme.js#)retrieveStyle. |
14
14
  | className | string | | Additional classes. |
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M20.7071 6.29289C21.0976 6.68342 21.0976 7.31658 20.7071 7.70711L10.7071 17.7071C10.3166 18.0976 9.68342 18.0976 9.29289 17.7071L4.29289 12.7071C3.90237 12.3166 3.90237 11.6834 4.29289 11.2929C4.68342 10.9024 5.31658 10.9024 5.70711 11.2929L10 15.5858L19.2929 6.29289C19.6834 5.90237 20.3166 5.90237 20.7071 6.29289Z" fill="#0136E7"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path fill-rule="evenodd" clip-rule="evenodd" d="M10.0001 3.33341C6.31818 3.33341 3.33341 6.31818 3.33341 10.0001C3.33341 13.682 6.31818 16.6667 10.0001 16.6667C13.682 16.6667 16.6667 13.682 16.6667 10.0001C16.6667 6.31818 13.682 3.33341 10.0001 3.33341ZM1.66675 10.0001C1.66675 5.39771 5.39771 1.66675 10.0001 1.66675C14.6025 1.66675 18.3334 5.39771 18.3334 10.0001C18.3334 14.6025 14.6025 18.3334 10.0001 18.3334C5.39771 18.3334 1.66675 14.6025 1.66675 10.0001ZM8.72905 5.28749C9.14521 5.08156 9.6035 4.97505 10.0678 4.97634C10.5322 4.97763 10.9899 5.08668 11.4049 5.29491C11.8199 5.50314 12.1809 5.80487 12.4595 6.17633C12.7381 6.54779 12.9267 6.97886 13.0104 7.43558C13.0941 7.89231 13.0706 8.36222 12.9418 8.80834C12.8131 9.25445 12.5825 9.66459 12.2683 10.0065C11.9541 10.3483 11.5648 10.6126 11.1311 10.7784C11.124 10.7811 11.117 10.7837 11.1099 10.7862C11.0246 10.8162 10.9515 10.873 10.9014 10.9482C10.8513 11.0233 10.827 11.1127 10.8321 11.2029C10.8581 11.6624 10.5068 12.056 10.0473 12.0821C9.58777 12.1081 9.19415 11.7568 9.16809 11.2973C9.14251 10.8464 9.26414 10.3994 9.51464 10.0237C9.76252 9.65183 10.1233 9.36967 10.5437 9.21866C10.7332 9.14477 10.9034 9.02847 11.0412 8.87861C11.1808 8.72667 11.2833 8.54438 11.3405 8.34611C11.3978 8.14784 11.4082 7.93898 11.371 7.736C11.3338 7.53301 11.25 7.34142 11.1262 7.17633C11.0024 7.01123 10.8419 6.87713 10.6574 6.78459C10.473 6.69204 10.2696 6.64357 10.0632 6.643C9.85684 6.64243 9.65316 6.68977 9.46819 6.78129C9.28323 6.87281 9.12203 7.00602 8.9973 7.17042C8.71912 7.53708 8.19638 7.6088 7.82972 7.33062C7.46307 7.05244 7.39135 6.5297 7.66953 6.16304C7.95019 5.79313 8.31288 5.49341 8.72905 5.28749ZM10.0001 13.3334C10.4603 13.3334 10.8334 13.7065 10.8334 14.1667V14.1751C10.8334 14.6353 10.4603 15.0084 10.0001 15.0084C9.53984 15.0084 9.16675 14.6353 9.16675 14.1751V14.1667C9.16675 13.7065 9.53984 13.3334 10.0001 13.3334Z" fill="#091E42"/>
3
+ </svg>
@@ -3,23 +3,12 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.shade05 = exports.shade04 = exports.shade03 = exports.shade01 = exports.PRESSED_STATE = exports.LIGHT = exports.HOVER_STATE = exports.GRAY = exports.DARK = exports.ACTIVE_STATE = exports.ACCENT = void 0;
7
- // States
8
-
9
- const ACTIVE_STATE = exports.ACTIVE_STATE = 'active';
10
- const HOVER_STATE = exports.HOVER_STATE = 'hover';
11
- const PRESSED_STATE = exports.PRESSED_STATE = 'pressed';
12
-
13
- // Label colors
14
-
15
- const ACCENT = exports.ACCENT = 'accent';
16
- const DARK = exports.DARK = 'dark';
17
- const GRAY = exports.GRAY = 'gray';
18
- const LIGHT = exports.LIGHT = 'light';
19
-
20
- // Label shades
21
-
22
- const shade01 = exports.shade01 = '01';
23
- const shade03 = exports.shade03 = '03';
24
- const shade04 = exports.shade04 = '04';
25
- const shade05 = exports.shade05 = '05';
6
+ exports.SIZES = exports.APPEARANCES = void 0;
7
+ const APPEARANCES = exports.APPEARANCES = {
8
+ GRAY: 'gray',
9
+ WHITE: 'white'
10
+ };
11
+ const SIZES = exports.SIZES = {
12
+ MEDIUM: 'medium',
13
+ SMALL: 'small'
14
+ };