payload 0.15.3 → 0.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/dist/admin/components/elements/WhereBuilder/field-types.d.ts +2 -2
- package/dist/admin/components/elements/WhereBuilder/field-types.js +11 -7
- package/dist/admin/components/forms/DraggableSection/index.js +2 -3
- package/dist/admin/components/forms/Form/buildStateFromSchema.d.ts +10 -1
- package/dist/admin/components/forms/Form/buildStateFromSchema.js +14 -6
- package/dist/admin/components/forms/Form/getDataByPath.js +6 -11
- package/dist/admin/components/forms/Form/getSiblingData.js +12 -14
- package/dist/admin/components/forms/Form/index.js +23 -6
- package/dist/admin/components/forms/Form/reduceFieldsToValues.d.ts +1 -1
- package/dist/admin/components/forms/Form/reduceFieldsToValues.js +1 -2
- package/dist/admin/components/forms/Form/types.d.ts +3 -2
- package/dist/admin/components/forms/RenderFields/index.d.ts +1 -2
- package/dist/admin/components/forms/RenderFields/index.js +6 -16
- package/dist/admin/components/forms/RenderFields/types.d.ts +0 -5
- package/dist/admin/components/forms/field-types/Array/Array.js +18 -9
- package/dist/admin/components/forms/field-types/Blocks/Blocks.js +21 -15
- package/dist/admin/components/forms/field-types/Checkbox/index.js +3 -4
- package/dist/admin/components/forms/field-types/Code/Code.js +4 -5
- package/dist/admin/components/forms/field-types/DateTime/index.js +2 -3
- package/dist/admin/components/forms/field-types/Email/index.js +2 -3
- package/dist/admin/components/forms/field-types/Number/index.js +3 -4
- package/dist/admin/components/forms/field-types/Password/index.js +2 -2
- package/dist/admin/components/forms/field-types/Point/index.js +2 -3
- package/dist/admin/components/forms/field-types/RadioGroup/index.js +3 -4
- package/dist/admin/components/forms/field-types/Relationship/index.js +49 -17
- package/dist/admin/components/forms/field-types/RichText/RichText.js +3 -4
- package/dist/admin/components/forms/field-types/RichText/elements/upload/Element/EditModal/index.js +4 -2
- package/dist/admin/components/forms/field-types/Row/index.js +7 -2
- package/dist/admin/components/forms/field-types/Select/index.js +4 -5
- package/dist/admin/components/forms/field-types/Text/index.js +6 -3
- package/dist/admin/components/forms/field-types/Textarea/index.js +4 -5
- package/dist/admin/components/forms/field-types/Upload/Add/index.js +1 -1
- package/dist/admin/components/forms/field-types/Upload/Input.d.ts +2 -1
- package/dist/admin/components/forms/field-types/Upload/Input.js +3 -1
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/index.js +27 -4
- package/dist/admin/components/forms/field-types/Upload/SelectExisting/types.d.ts +3 -0
- package/dist/admin/components/forms/field-types/Upload/index.js +4 -5
- package/dist/admin/components/forms/field-types/getFilterOptionsQuery.d.ts +5 -0
- package/dist/admin/components/forms/field-types/getFilterOptionsQuery.js +11 -0
- package/dist/admin/components/forms/useField/index.js +39 -8
- package/dist/admin/components/utilities/OperationProvider/index.d.ts +4 -0
- package/dist/admin/components/utilities/OperationProvider/index.js +3 -0
- package/dist/admin/components/views/Account/Default.js +41 -39
- package/dist/admin/components/views/Account/index.js +4 -2
- package/dist/admin/components/views/CreateFirstUser/index.js +1 -1
- package/dist/admin/components/views/Global/Default.js +45 -43
- package/dist/admin/components/views/Global/index.js +5 -5
- package/dist/admin/components/views/collections/Edit/Auth/APIKey.js +1 -1
- package/dist/admin/components/views/collections/Edit/Default.js +55 -53
- package/dist/admin/components/views/collections/Edit/index.js +5 -5
- package/dist/collections/tests/pointField.spec.js +26 -15
- package/dist/collections/tests/relationships.spec.js +21 -1
- package/dist/config/load.d.ts +3 -1
- package/dist/config/load.js +5 -3
- package/dist/config/types.d.ts +3 -0
- package/dist/config/types.js +1 -1
- package/dist/config/validate.d.ts +2 -1
- package/dist/config/validate.js +2 -4
- package/dist/email/build.d.ts +2 -1
- package/dist/email/build.js +7 -9
- package/dist/express/middleware/errorHandler.spec.js +2 -2
- package/dist/fields/config/sanitize.js +2 -2
- package/dist/fields/config/schema.js +3 -1
- package/dist/fields/config/types.d.ts +25 -1
- package/dist/fields/config/types.js +1 -1
- package/dist/fields/performFieldOperations.js +3 -3
- package/dist/fields/traverseFields.js +15 -5
- package/dist/fields/validationPromise.d.ts +10 -3
- package/dist/fields/validationPromise.js +16 -5
- package/dist/fields/validations.d.ts +33 -35
- package/dist/fields/validations.js +130 -76
- package/dist/fields/validations.spec.js +115 -43
- package/dist/graphql/schema/fieldToSchemaMap.js +7 -7
- package/dist/index.d.ts +2 -2
- package/dist/index.js +5 -5
- package/dist/mongoose/buildQuery.js +2 -2
- package/dist/mongoose/connect.d.ts +2 -1
- package/dist/mongoose/connect.js +2 -4
- package/dist/mongoose/sanitizeFormattedValue.js +12 -3
- package/dist/utilities/logger.d.ts +1 -1
- package/dist/utilities/logger.js +10 -6
- package/dist/webpack/getBaseConfig.js +2 -1
- package/docs/fields/overview.mdx +39 -3
- package/docs/fields/relationship.mdx +45 -0
- package/docs/fields/upload.mdx +1 -0
- package/docs/getting-started/installation.mdx +14 -10
- package/docs/queries/overview.mdx +2 -1
- package/package.json +1 -1
|
@@ -3,34 +3,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.point = exports.blocks = exports.radio = exports.select = exports.array = exports.relationship = exports.upload = exports.date = exports.checkbox = exports.richText = exports.code = exports.
|
|
6
|
+
exports.point = exports.blocks = exports.radio = exports.select = exports.array = exports.relationship = exports.upload = exports.date = exports.checkbox = exports.richText = exports.code = exports.textarea = exports.email = exports.password = exports.text = exports.number = void 0;
|
|
7
7
|
const defaultValue_1 = __importDefault(require("./richText/defaultValue"));
|
|
8
|
+
const canUseDOM_1 = __importDefault(require("../utilities/canUseDOM"));
|
|
9
|
+
const index_1 = __importDefault(require("../index"));
|
|
8
10
|
const defaultMessage = 'This field is required.';
|
|
9
|
-
const number = (value,
|
|
11
|
+
const number = (value, { required, min, max }) => {
|
|
10
12
|
const parsedValue = parseInt(value, 10);
|
|
11
|
-
if ((value && typeof parsedValue !== 'number') || (
|
|
13
|
+
if ((value && typeof parsedValue !== 'number') || (required && Number.isNaN(parsedValue))) {
|
|
12
14
|
return 'Please enter a valid number.';
|
|
13
15
|
}
|
|
14
|
-
if (
|
|
15
|
-
return `"${value}" is greater than the max allowed value of ${
|
|
16
|
+
if (max && parsedValue > max) {
|
|
17
|
+
return `"${value}" is greater than the max allowed value of ${max}.`;
|
|
16
18
|
}
|
|
17
|
-
if (
|
|
18
|
-
return `"${value}" is less than the min allowed value of ${
|
|
19
|
+
if (min && parsedValue < min) {
|
|
20
|
+
return `"${value}" is less than the min allowed value of ${min}.`;
|
|
19
21
|
}
|
|
20
|
-
if (
|
|
22
|
+
if (required && typeof parsedValue !== 'number') {
|
|
21
23
|
return defaultMessage;
|
|
22
24
|
}
|
|
23
25
|
return true;
|
|
24
26
|
};
|
|
25
27
|
exports.number = number;
|
|
26
|
-
const text = (value,
|
|
27
|
-
if (value &&
|
|
28
|
-
return `This value must be shorter than the max length of ${
|
|
28
|
+
const text = (value, { minLength, maxLength, required }) => {
|
|
29
|
+
if (value && maxLength && value.length > maxLength) {
|
|
30
|
+
return `This value must be shorter than the max length of ${maxLength} characters.`;
|
|
29
31
|
}
|
|
30
|
-
if (value &&
|
|
31
|
-
return `This value must be longer than the minimum length of ${
|
|
32
|
+
if (value && minLength && (value === null || value === void 0 ? void 0 : value.length) < minLength) {
|
|
33
|
+
return `This value must be longer than the minimum length of ${minLength} characters.`;
|
|
32
34
|
}
|
|
33
|
-
if (
|
|
35
|
+
if (required) {
|
|
34
36
|
if (typeof value !== 'string' || (value === null || value === void 0 ? void 0 : value.length) === 0) {
|
|
35
37
|
return defaultMessage;
|
|
36
38
|
}
|
|
@@ -38,56 +40,49 @@ const text = (value, options = {}) => {
|
|
|
38
40
|
return true;
|
|
39
41
|
};
|
|
40
42
|
exports.text = text;
|
|
41
|
-
const password = (value,
|
|
42
|
-
if (value &&
|
|
43
|
-
return `This value must be shorter than the max length of ${
|
|
43
|
+
const password = (value, { required, maxLength, minLength }) => {
|
|
44
|
+
if (value && maxLength && value.length > maxLength) {
|
|
45
|
+
return `This value must be shorter than the max length of ${maxLength} characters.`;
|
|
44
46
|
}
|
|
45
|
-
if (value &&
|
|
46
|
-
return `This value must be longer than the minimum length of ${
|
|
47
|
+
if (value && minLength && value.length < minLength) {
|
|
48
|
+
return `This value must be longer than the minimum length of ${minLength} characters.`;
|
|
47
49
|
}
|
|
48
|
-
if (
|
|
50
|
+
if (required && !value) {
|
|
49
51
|
return defaultMessage;
|
|
50
52
|
}
|
|
51
53
|
return true;
|
|
52
54
|
};
|
|
53
55
|
exports.password = password;
|
|
54
|
-
const email = (value,
|
|
56
|
+
const email = (value, { required }) => {
|
|
55
57
|
if ((value && !/\S+@\S+\.\S+/.test(value))
|
|
56
|
-
|| (!value &&
|
|
58
|
+
|| (!value && required)) {
|
|
57
59
|
return 'Please enter a valid email address.';
|
|
58
60
|
}
|
|
59
61
|
return true;
|
|
60
62
|
};
|
|
61
63
|
exports.email = email;
|
|
62
|
-
const textarea = (value,
|
|
63
|
-
if (value &&
|
|
64
|
-
return `This value must be shorter than the max length of ${
|
|
64
|
+
const textarea = (value, { required, maxLength, minLength, }) => {
|
|
65
|
+
if (value && maxLength && value.length > maxLength) {
|
|
66
|
+
return `This value must be shorter than the max length of ${maxLength} characters.`;
|
|
65
67
|
}
|
|
66
|
-
if (value &&
|
|
67
|
-
return `This value must be longer than the minimum length of ${
|
|
68
|
+
if (value && minLength && value.length < minLength) {
|
|
69
|
+
return `This value must be longer than the minimum length of ${minLength} characters.`;
|
|
68
70
|
}
|
|
69
|
-
if (
|
|
71
|
+
if (required && !value) {
|
|
70
72
|
return defaultMessage;
|
|
71
73
|
}
|
|
72
74
|
return true;
|
|
73
75
|
};
|
|
74
76
|
exports.textarea = textarea;
|
|
75
|
-
const
|
|
76
|
-
if (
|
|
77
|
-
return defaultMessage;
|
|
78
|
-
}
|
|
79
|
-
return true;
|
|
80
|
-
};
|
|
81
|
-
exports.wysiwyg = wysiwyg;
|
|
82
|
-
const code = (value, options = {}) => {
|
|
83
|
-
if (options.required && value === undefined) {
|
|
77
|
+
const code = (value, { required }) => {
|
|
78
|
+
if (required && value === undefined) {
|
|
84
79
|
return defaultMessage;
|
|
85
80
|
}
|
|
86
81
|
return true;
|
|
87
82
|
};
|
|
88
83
|
exports.code = code;
|
|
89
|
-
const richText = (value,
|
|
90
|
-
if (
|
|
84
|
+
const richText = (value, { required }) => {
|
|
85
|
+
if (required) {
|
|
91
86
|
const stringifiedDefaultValue = JSON.stringify(defaultValue_1.default);
|
|
92
87
|
if (value && JSON.stringify(value) !== stringifiedDefaultValue)
|
|
93
88
|
return true;
|
|
@@ -96,96 +91,156 @@ const richText = (value, options = {}) => {
|
|
|
96
91
|
return true;
|
|
97
92
|
};
|
|
98
93
|
exports.richText = richText;
|
|
99
|
-
const checkbox = (value,
|
|
94
|
+
const checkbox = (value, { required }) => {
|
|
100
95
|
if ((value && typeof value !== 'boolean')
|
|
101
|
-
|| (
|
|
96
|
+
|| (required && typeof value !== 'boolean')) {
|
|
102
97
|
return 'This field can only be equal to true or false.';
|
|
103
98
|
}
|
|
104
99
|
return true;
|
|
105
100
|
};
|
|
106
101
|
exports.checkbox = checkbox;
|
|
107
|
-
const date = (value,
|
|
102
|
+
const date = (value, { required }) => {
|
|
108
103
|
if (value && !isNaN(Date.parse(value.toString()))) { /* eslint-disable-line */
|
|
109
104
|
return true;
|
|
110
105
|
}
|
|
111
106
|
if (value) {
|
|
112
107
|
return `"${value}" is not a valid date.`;
|
|
113
108
|
}
|
|
114
|
-
if (
|
|
109
|
+
if (required) {
|
|
115
110
|
return defaultMessage;
|
|
116
111
|
}
|
|
117
112
|
return true;
|
|
118
113
|
};
|
|
119
114
|
exports.date = date;
|
|
120
|
-
const
|
|
121
|
-
if (
|
|
115
|
+
const validateFilterOptions = async (value, { filterOptions, id, user, data, siblingData, relationTo }) => {
|
|
116
|
+
if (!canUseDOM_1.default && typeof filterOptions !== 'undefined' && value) {
|
|
117
|
+
const options = {};
|
|
118
|
+
const collections = typeof relationTo === 'string' ? [relationTo] : relationTo;
|
|
119
|
+
const values = Array.isArray(value) ? value : [value];
|
|
120
|
+
await Promise.all(collections.map(async (collection) => {
|
|
121
|
+
const optionFilter = typeof filterOptions === 'function' ? filterOptions({
|
|
122
|
+
id,
|
|
123
|
+
data,
|
|
124
|
+
siblingData,
|
|
125
|
+
user,
|
|
126
|
+
relationTo: collection,
|
|
127
|
+
}) : filterOptions;
|
|
128
|
+
const valueIDs = [];
|
|
129
|
+
values.forEach((val) => {
|
|
130
|
+
if (typeof val === 'object' && (val === null || val === void 0 ? void 0 : val.value)) {
|
|
131
|
+
valueIDs.push(val.value);
|
|
132
|
+
}
|
|
133
|
+
if (typeof val === 'string' || typeof val === 'number') {
|
|
134
|
+
valueIDs.push(val);
|
|
135
|
+
}
|
|
136
|
+
});
|
|
137
|
+
const result = await index_1.default.find({
|
|
138
|
+
collection,
|
|
139
|
+
depth: 0,
|
|
140
|
+
where: {
|
|
141
|
+
and: [
|
|
142
|
+
{ id: { in: valueIDs } },
|
|
143
|
+
optionFilter,
|
|
144
|
+
],
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
options[collection] = result.docs.map((doc) => doc.id);
|
|
148
|
+
}));
|
|
149
|
+
const invalidRelationships = values.filter((val) => {
|
|
150
|
+
let collection;
|
|
151
|
+
let requestedID;
|
|
152
|
+
if (typeof relationTo === 'string') {
|
|
153
|
+
collection = relationTo;
|
|
154
|
+
if (typeof val === 'string' || typeof val === 'number') {
|
|
155
|
+
requestedID = val;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
if (Array.isArray(relationTo) && typeof val === 'object' && (val === null || val === void 0 ? void 0 : val.relationTo)) {
|
|
159
|
+
collection = val.relationTo;
|
|
160
|
+
requestedID = val.value;
|
|
161
|
+
}
|
|
162
|
+
return options[collection].indexOf(requestedID) === -1;
|
|
163
|
+
});
|
|
164
|
+
if (invalidRelationships.length > 0) {
|
|
165
|
+
return invalidRelationships.reduce((err, invalid, i) => {
|
|
166
|
+
return `${err} ${JSON.stringify(invalid)}${invalidRelationships.length === i + 1 ? ',' : ''} `;
|
|
167
|
+
}, 'This field has the following invalid selections:');
|
|
168
|
+
}
|
|
122
169
|
return true;
|
|
123
|
-
|
|
170
|
+
}
|
|
171
|
+
return true;
|
|
172
|
+
};
|
|
173
|
+
const upload = (value, options) => {
|
|
174
|
+
if (!value && options.required) {
|
|
175
|
+
return defaultMessage;
|
|
176
|
+
}
|
|
177
|
+
return validateFilterOptions(value, options);
|
|
124
178
|
};
|
|
125
179
|
exports.upload = upload;
|
|
126
|
-
const relationship = (value, options
|
|
127
|
-
if (value ||
|
|
128
|
-
return
|
|
129
|
-
|
|
180
|
+
const relationship = async (value, options) => {
|
|
181
|
+
if ((!value || (Array.isArray(value) && value.length === 0)) && options.required) {
|
|
182
|
+
return defaultMessage;
|
|
183
|
+
}
|
|
184
|
+
return validateFilterOptions(value, options);
|
|
130
185
|
};
|
|
131
186
|
exports.relationship = relationship;
|
|
132
|
-
const array = (value,
|
|
133
|
-
if (
|
|
134
|
-
return `This field requires at least ${
|
|
187
|
+
const array = (value, { minRows, maxRows, required }) => {
|
|
188
|
+
if (minRows && value < minRows) {
|
|
189
|
+
return `This field requires at least ${minRows} row(s).`;
|
|
135
190
|
}
|
|
136
|
-
if (
|
|
137
|
-
return `This field requires no more than ${
|
|
191
|
+
if (maxRows && value > maxRows) {
|
|
192
|
+
return `This field requires no more than ${maxRows} row(s).`;
|
|
138
193
|
}
|
|
139
|
-
if (!value &&
|
|
194
|
+
if (!value && required) {
|
|
140
195
|
return 'This field requires at least one row.';
|
|
141
196
|
}
|
|
142
197
|
return true;
|
|
143
198
|
};
|
|
144
199
|
exports.array = array;
|
|
145
|
-
const select = (value, options
|
|
200
|
+
const select = (value, { options, hasMany, required }) => {
|
|
146
201
|
var _a;
|
|
147
|
-
if (Array.isArray(value) && value.some((input) => !options.
|
|
202
|
+
if (Array.isArray(value) && value.some((input) => !options.some((option) => (option === input || (typeof option !== 'string' && (option === null || option === void 0 ? void 0 : option.value) === input))))) {
|
|
148
203
|
return 'This field has an invalid selection';
|
|
149
204
|
}
|
|
150
|
-
if (typeof value === 'string' && !options.
|
|
205
|
+
if (typeof value === 'string' && !options.some((option) => (option === value || (typeof option !== 'string' && option.value === value)))) {
|
|
151
206
|
return 'This field has an invalid selection';
|
|
152
207
|
}
|
|
153
|
-
if (
|
|
208
|
+
if (required && ((typeof value === 'undefined' || value === null) || (hasMany && Array.isArray(value) && ((_a = value) === null || _a === void 0 ? void 0 : _a.length) === 0))) {
|
|
154
209
|
return defaultMessage;
|
|
155
210
|
}
|
|
156
211
|
return true;
|
|
157
212
|
};
|
|
158
213
|
exports.select = select;
|
|
159
|
-
const radio = (value, options
|
|
214
|
+
const radio = (value, { options, required }) => {
|
|
160
215
|
const stringValue = String(value);
|
|
161
|
-
if ((typeof value !== 'undefined' || !
|
|
216
|
+
if ((typeof value !== 'undefined' || !required) && (options.find((option) => String(typeof option !== 'string' && (option === null || option === void 0 ? void 0 : option.value)) === stringValue)))
|
|
162
217
|
return true;
|
|
163
218
|
return defaultMessage;
|
|
164
219
|
};
|
|
165
220
|
exports.radio = radio;
|
|
166
|
-
const blocks = (value,
|
|
167
|
-
if (
|
|
168
|
-
return `This field requires at least ${
|
|
221
|
+
const blocks = (value, { maxRows, minRows, required }) => {
|
|
222
|
+
if (minRows && value < minRows) {
|
|
223
|
+
return `This field requires at least ${minRows} row(s).`;
|
|
169
224
|
}
|
|
170
|
-
if (
|
|
171
|
-
return `This field requires no more than ${
|
|
225
|
+
if (maxRows && value > maxRows) {
|
|
226
|
+
return `This field requires no more than ${maxRows} row(s).`;
|
|
172
227
|
}
|
|
173
|
-
if (!value &&
|
|
228
|
+
if (!value && required) {
|
|
174
229
|
return 'This field requires at least one row.';
|
|
175
230
|
}
|
|
176
231
|
return true;
|
|
177
232
|
};
|
|
178
233
|
exports.blocks = blocks;
|
|
179
|
-
const point = (value = ['', ''],
|
|
234
|
+
const point = (value = ['', ''], { required }) => {
|
|
180
235
|
const lng = parseFloat(String(value[0]));
|
|
181
236
|
const lat = parseFloat(String(value[1]));
|
|
182
|
-
if ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number')
|
|
183
|
-
|| (
|
|
184
|
-
|| (Array.isArray(value) && value.length !== 2)) {
|
|
237
|
+
if (required && ((value[0] && value[1] && typeof lng !== 'number' && typeof lat !== 'number')
|
|
238
|
+
|| (Number.isNaN(lng) || Number.isNaN(lat))
|
|
239
|
+
|| (Array.isArray(value) && value.length !== 2))) {
|
|
185
240
|
return 'This field requires two numbers';
|
|
186
241
|
}
|
|
187
|
-
if (
|
|
188
|
-
return 'This field
|
|
242
|
+
if ((value[1] && Number.isNaN(lng)) || (value[0] && Number.isNaN(lat))) {
|
|
243
|
+
return 'This field has an invalid input';
|
|
189
244
|
}
|
|
190
245
|
return true;
|
|
191
246
|
};
|
|
@@ -197,7 +252,6 @@ exports.default = {
|
|
|
197
252
|
email: exports.email,
|
|
198
253
|
textarea: exports.textarea,
|
|
199
254
|
code: exports.code,
|
|
200
|
-
wysiwyg: exports.wysiwyg,
|
|
201
255
|
richText: exports.richText,
|
|
202
256
|
checkbox: exports.checkbox,
|
|
203
257
|
date: exports.date,
|
|
@@ -209,4 +263,4 @@ exports.default = {
|
|
|
209
263
|
blocks: exports.blocks,
|
|
210
264
|
point: exports.point,
|
|
211
265
|
};
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmllbGRzL3ZhbGlkYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJFQUEyRDtBQUczRCxNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQztBQUUxQyxNQUFNLE1BQU0sR0FBYSxDQUFDLEtBQWEsRUFBRSxPQUFPLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDOUQsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV4QyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxDQUFDLEVBQUU7UUFDakcsT0FBTyw4QkFBOEIsQ0FBQztLQUN2QztJQUVELElBQUksT0FBTyxDQUFDLEdBQUcsSUFBSSxXQUFXLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRTtRQUM1QyxPQUFPLElBQUksS0FBSyw4Q0FBOEMsT0FBTyxDQUFDLEdBQUcsR0FBRyxDQUFDO0tBQzlFO0lBRUQsSUFBSSxPQUFPLENBQUMsR0FBRyxJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsR0FBRyxFQUFFO1FBQzVDLE9BQU8sSUFBSSxLQUFLLDJDQUEyQyxPQUFPLENBQUMsR0FBRyxHQUFHLENBQUM7S0FDM0U7SUFFRCxJQUFJLE9BQU8sQ0FBQyxRQUFRLElBQUksT0FBTyxXQUFXLEtBQUssUUFBUSxFQUFFO1FBQ3ZELE9BQU8sY0FBYyxDQUFDO0tBQ3ZCO0lBRUQsT0FBTyxJQUFJLENBQUM7QUFDZCxDQUFDLENBQUM7QUFwQlcsUUFBQSxNQUFNLFVBb0JqQjtBQUVLLE1BQU0sSUFBSSxHQUFhLENBQUMsS0FBYSxFQUFFLE9BQU8sR0FBRyxFQUFFLEVBQUUsRUFBRTtJQUM1RCxJQUFJLEtBQUssSUFBSSxP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
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZmllbGRzL3ZhbGlkYXRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLDJFQUEyRDtBQXFCM0QsdUVBQStDO0FBQy9DLHFEQUErQjtBQUUvQixNQUFNLGNBQWMsR0FBRyx5QkFBeUIsQ0FBQztBQUUxQyxNQUFNLE1BQU0sR0FBNEMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUU7SUFDdkcsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUV4QyxJQUFJLENBQUMsS0FBSyxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRTtRQUN6RixPQUFPLDhCQUE4QixDQUFDO0tBQ3ZDO0lBRUQsSUFBSSxHQUFHLElBQUksV0FBVyxHQUFHLEdBQUcsRUFBRTtRQUM1QixPQUFPLElBQUksS0FBSyw4Q0FBOEMsR0FBRyxHQUFHLENBQUM7S0FDdEU7SUFFRCxJQUFJLEdBQUcsSUFBSSxXQUFXLEdBQUcsR0FBRyxFQUFFO1FBQzVCLE9BQU8sSUFBSSxLQUFLLDJDQUEyQyxHQUFHLEdBQUcsQ0FBQztLQUNuRTtJQUVELElBQUksUUFBUSxJQUFJLE9BQU8sV0FBVyxLQUFLLFFBQVEsRUFBRTtRQUMvQyxPQUFPLGNBQWMsQ0FBQztLQUN2QjtJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2QsQ0FBQyxDQUFDO0FBcEJXLFFBQUEsTUFBTSxVQW9CakI7QUFFSyxNQUFNLElBQUksR0FBMEMsQ0FBQyxLQUFhLEVBQUUsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUU7SUFDL0csSUFBSSxLQUFLLElBQUksU0FBUyxJQUFJLEtB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
|