@gnwebsoft/ui 4.0.0 → 4.0.2

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 (56) hide show
  1. package/dist/chunk-BXF3QEBN.js +2181 -0
  2. package/dist/chunk-DS524L7W.cjs +467 -0
  3. package/dist/chunk-FYU2OIMD.js +15 -0
  4. package/dist/chunk-GHW77WIM.cjs +72 -0
  5. package/dist/chunk-GLN5JSFF.cjs +2181 -0
  6. package/dist/chunk-GVWCGJ3F.js +140 -0
  7. package/dist/chunk-LUW7V5GI.cjs +15 -0
  8. package/dist/chunk-M526GQZS.js +2490 -0
  9. package/dist/chunk-MULSVYFT.js +72 -0
  10. package/dist/chunk-MVPLBJRK.cjs +1 -1
  11. package/dist/chunk-PUQIPRL2.js +467 -0
  12. package/dist/chunk-QLQ6OH25.cjs +2490 -0
  13. package/dist/chunk-Y3QTSDLJ.cjs +140 -0
  14. package/dist/core/index.cjs +121 -0
  15. package/dist/core/index.js +121 -0
  16. package/dist/hooks/index.cjs +3 -3
  17. package/dist/hooks/index.js +1 -1
  18. package/dist/index.cjs +85 -7
  19. package/dist/index.js +147 -69
  20. package/dist/types/index.cjs +3 -3
  21. package/dist/types/index.js +1 -1
  22. package/dist/utils/index.cjs +4 -24
  23. package/dist/utils/index.js +6 -26
  24. package/dist/wrappers/index.cjs +7 -4
  25. package/dist/wrappers/index.js +21 -18
  26. package/package.json +22 -17
  27. package/dist/AsyncSelectPayload-B9-6l33R.d.cts +0 -10
  28. package/dist/AsyncSelectPayload-B9-6l33R.d.ts +0 -10
  29. package/dist/chunk-3OPVOWQK.js +0 -140
  30. package/dist/chunk-AEOF2TUF.cjs +0 -2273
  31. package/dist/chunk-ALHC7RLK.js +0 -575
  32. package/dist/chunk-BRRLB22L.js +0 -72
  33. package/dist/chunk-CHZU4PZB.js +0 -2273
  34. package/dist/chunk-EBRUE2WR.cjs +0 -493
  35. package/dist/chunk-HEHPKM4B.cjs +0 -140
  36. package/dist/chunk-K2EJ4YKO.cjs +0 -72
  37. package/dist/chunk-U6SDYCWF.js +0 -493
  38. package/dist/chunk-XY4U6A77.cjs +0 -575
  39. package/dist/components/index.cjs +0 -25
  40. package/dist/components/index.d.cts +0 -752
  41. package/dist/components/index.d.ts +0 -752
  42. package/dist/components/index.js +0 -25
  43. package/dist/enhanced-CDTkKUlj.d.ts +0 -134
  44. package/dist/enhanced-ZQoS03Cd.d.cts +0 -134
  45. package/dist/events-BcHVCLBz.d.cts +0 -77
  46. package/dist/events-BcHVCLBz.d.ts +0 -77
  47. package/dist/hooks/index.d.cts +0 -96
  48. package/dist/hooks/index.d.ts +0 -96
  49. package/dist/index.d.cts +0 -16
  50. package/dist/index.d.ts +0 -16
  51. package/dist/types/index.d.cts +0 -820
  52. package/dist/types/index.d.ts +0 -820
  53. package/dist/utils/index.d.cts +0 -683
  54. package/dist/utils/index.d.ts +0 -683
  55. package/dist/wrappers/index.d.cts +0 -1753
  56. package/dist/wrappers/index.d.ts +0 -1753
@@ -0,0 +1,467 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }// src/utils/api.ts
2
+ var makeRequest = async (url, options) => {
3
+ const response = await fetch(url, options);
4
+ if (response.ok) {
5
+ const apiData = await response.json();
6
+ return {
7
+ apiData,
8
+ status: response.status
9
+ };
10
+ } else if (response.status === 404) {
11
+ const apiData = await response.json();
12
+ const data = {
13
+ status: response.status,
14
+ title: apiData.title
15
+ };
16
+ return data;
17
+ }
18
+ const apiResponse = await response.json();
19
+ return apiResponse;
20
+ };
21
+ var api = class {
22
+ static async filter(url, postModel) {
23
+ const alteredOptions = {
24
+ headers: {
25
+ "Content-Type": "application/json",
26
+ Authorization: `Bearer ${localStorage.getItem("serviceToken")}`
27
+ },
28
+ body: JSON.stringify({ ...postModel, ...postModel.filterModel }),
29
+ method: "POST"
30
+ };
31
+ const apiResponse = await makeRequest(url, alteredOptions);
32
+ return apiResponse;
33
+ }
34
+ static async post(url, body = {}) {
35
+ const alteredOptions = {
36
+ headers: {
37
+ "Content-Type": "application/json",
38
+ Authorization: `Bearer ${localStorage.getItem("serviceToken")}`
39
+ },
40
+ body: JSON.stringify(body),
41
+ method: "POST"
42
+ };
43
+ const apiResponse = await makeRequest(url, alteredOptions);
44
+ return apiResponse;
45
+ }
46
+ static async get(url) {
47
+ const alteredOptions = {
48
+ headers: {
49
+ "Content-Type": "application/json",
50
+ Authorization: `Bearer ${localStorage.getItem("serviceToken")}`
51
+ },
52
+ method: "GET"
53
+ };
54
+ const data = await makeRequest(url, alteredOptions);
55
+ return data;
56
+ }
57
+ static async delete(url) {
58
+ const alteredOptions = {
59
+ headers: {
60
+ "Content-Type": "application/json",
61
+ Authorization: `Bearer ${localStorage.getItem("serviceToken")}`
62
+ },
63
+ method: "DELETE"
64
+ };
65
+ const data = await makeRequest(url, alteredOptions);
66
+ return data;
67
+ }
68
+ static async put(url, body = {}) {
69
+ const alteredOptions = {
70
+ headers: {
71
+ "Content-Type": "application/json",
72
+ Authorization: `Bearer ${localStorage.getItem("serviceToken")}`
73
+ },
74
+ body: JSON.stringify(body),
75
+ method: "PUT"
76
+ };
77
+ const apiResponse = await makeRequest(url, alteredOptions);
78
+ return apiResponse;
79
+ }
80
+ static async fetch(url, options = {}) {
81
+ const alteredOptions = {
82
+ headers: {
83
+ "Content-Type": "application/json",
84
+ Authorization: `Bearer ${localStorage.getItem("serviceToken")}`
85
+ },
86
+ ...options
87
+ };
88
+ const result = await fetch(url, alteredOptions);
89
+ return result;
90
+ }
91
+ static async tempFetch(url, options = { method: "GET" }) {
92
+ const alteredOptions = {
93
+ headers: {
94
+ "Content-Type": "application/json"
95
+ },
96
+ ...options
97
+ };
98
+ const apiResponse = await makeRequest(url, alteredOptions);
99
+ return apiResponse;
100
+ }
101
+ static async upload(url, formData) {
102
+ const alteredOptions = {
103
+ headers: {
104
+ Authorization: `Bearer ${localStorage.getItem("serviceToken")}`
105
+ },
106
+ body: formData,
107
+ method: "POST"
108
+ };
109
+ const apiResponse = await makeRequest(url, alteredOptions);
110
+ return apiResponse;
111
+ }
112
+ };
113
+
114
+ // src/utils/api2.ts
115
+ var makeRequest2 = async (url, options) => {
116
+ const response = await fetch(url, options);
117
+ if (response.ok) {
118
+ const apiData = await response.json();
119
+ return {
120
+ apiData,
121
+ status: response.status
122
+ };
123
+ } else if (response.status === 404) {
124
+ const apiData = await response.json();
125
+ const data = {
126
+ status: response.status,
127
+ title: apiData.title
128
+ };
129
+ return data;
130
+ }
131
+ const apiResponse = await response.json();
132
+ return apiResponse;
133
+ };
134
+ var api2 = class {
135
+ static async filter(url, postModel) {
136
+ const alteredOptions = {
137
+ headers: {
138
+ "Content-Type": "application/json",
139
+ Authorization: `Bearer ${sessionStorage.getItem("serviceToken")}`
140
+ },
141
+ body: JSON.stringify({ ...postModel, ...postModel.filterModel }),
142
+ method: "POST"
143
+ };
144
+ const apiResponse = await makeRequest2(url, alteredOptions);
145
+ return apiResponse;
146
+ }
147
+ static async post(url, body = {}) {
148
+ const alteredOptions = {
149
+ headers: {
150
+ "Content-Type": "application/json",
151
+ Authorization: `Bearer ${sessionStorage.getItem("serviceToken")}`
152
+ },
153
+ body: JSON.stringify(body),
154
+ method: "POST"
155
+ };
156
+ const apiResponse = await makeRequest2(url, alteredOptions);
157
+ return apiResponse;
158
+ }
159
+ static async get(url) {
160
+ const alteredOptions = {
161
+ headers: {
162
+ "Content-Type": "application/json",
163
+ Authorization: `Bearer ${sessionStorage.getItem("serviceToken")}`
164
+ },
165
+ method: "GET"
166
+ };
167
+ const data = await makeRequest2(url, alteredOptions);
168
+ return data;
169
+ }
170
+ static async delete(url) {
171
+ const alteredOptions = {
172
+ headers: {
173
+ "Content-Type": "application/json",
174
+ Authorization: `Bearer ${sessionStorage.getItem("serviceToken")}`
175
+ },
176
+ method: "DELETE"
177
+ };
178
+ const data = await makeRequest2(url, alteredOptions);
179
+ return data;
180
+ }
181
+ static async put(url, body = {}) {
182
+ const alteredOptions = {
183
+ headers: {
184
+ "Content-Type": "application/json",
185
+ Authorization: `Bearer ${sessionStorage.getItem("serviceToken")}`
186
+ },
187
+ body: JSON.stringify(body),
188
+ method: "PUT"
189
+ };
190
+ const apiResponse = await makeRequest2(url, alteredOptions);
191
+ return apiResponse;
192
+ }
193
+ static async fetch(url, options = {}) {
194
+ const alteredOptions = {
195
+ headers: {
196
+ "Content-Type": "application/json",
197
+ Authorization: `Bearer ${sessionStorage.getItem("serviceToken")}`
198
+ },
199
+ ...options
200
+ };
201
+ const result = await fetch(url, alteredOptions);
202
+ return result;
203
+ }
204
+ static async tempFetch(url, options = { method: "GET" }) {
205
+ const alteredOptions = {
206
+ headers: {
207
+ "Content-Type": "application/json"
208
+ },
209
+ ...options
210
+ };
211
+ const apiResponse = await makeRequest2(url, alteredOptions);
212
+ return apiResponse;
213
+ }
214
+ static async upload(url, formData) {
215
+ const alteredOptions = {
216
+ headers: {
217
+ Authorization: `Bearer ${sessionStorage.getItem("serviceToken")}`
218
+ },
219
+ body: formData,
220
+ method: "POST"
221
+ };
222
+ const apiResponse = await makeRequest2(url, alteredOptions);
223
+ return apiResponse;
224
+ }
225
+ };
226
+
227
+ // src/utils/flattenObjectKeys.ts
228
+ var isNested = (obj) => typeof obj === "object" && obj !== null && !Array.isArray(obj);
229
+ var isArray = (obj) => Array.isArray(obj);
230
+ var flattenObjectKeys = (obj, prefix = "") => {
231
+ if (!isNested(obj)) {
232
+ return {
233
+ [prefix]: obj
234
+ };
235
+ }
236
+ return Object.keys(obj).reduce((acc, key) => {
237
+ const currentPrefix = prefix.length ? `${prefix}.` : "";
238
+ if (isNested(obj[key]) && Object.keys(obj[key]).length) {
239
+ if (isArray(obj[key]) && obj[key].length) {
240
+ obj[key].forEach((item, index) => {
241
+ Object.assign(
242
+ acc,
243
+ flattenObjectKeys(item, `${currentPrefix + key}.${index}`)
244
+ );
245
+ });
246
+ } else {
247
+ Object.assign(acc, flattenObjectKeys(obj[key], currentPrefix + key));
248
+ }
249
+ acc[currentPrefix + key] = obj[key];
250
+ } else {
251
+ acc[currentPrefix + key] = obj[key];
252
+ }
253
+ return acc;
254
+ }, {});
255
+ };
256
+
257
+ // src/utils/getTimezone.ts
258
+ function getTimezone(adapter, value) {
259
+ return value == null || !adapter.utils.isValid(value) ? null : adapter.utils.getTimezone(value);
260
+ }
261
+
262
+ // src/utils/handleServerErrors.ts
263
+ var handleServerErrors = function handleServerErrors2(args) {
264
+ const { errors, setError } = args;
265
+ for (const key in errors) {
266
+ const isKeyInVariables = Object.keys(flattenObjectKeys(errors)).includes(
267
+ key
268
+ );
269
+ if (!isKeyInVariables) {
270
+ continue;
271
+ }
272
+ const fieldError = errors[key];
273
+ let errorMessage = "";
274
+ if (Array.isArray(fieldError)) {
275
+ errorMessage = fieldError.join(" ");
276
+ }
277
+ if (typeof fieldError === "string") {
278
+ errorMessage = fieldError;
279
+ }
280
+ if (typeof fieldError === "boolean" && fieldError) {
281
+ errorMessage = "Field is not valid.";
282
+ }
283
+ setError(key, {
284
+ message: errorMessage
285
+ });
286
+ }
287
+ };
288
+
289
+ // src/utils/propertyExists.ts
290
+ function propertyExists(obj, prop) {
291
+ return typeof obj === "object" && obj !== null && Object.prototype.hasOwnProperty.call(obj, prop);
292
+ }
293
+
294
+ // src/utils/removeLeadingTrailingSlashes.ts
295
+ var removeLeadingTrailingSlashes = (route) => {
296
+ return route.replace(/^\/|\/$/g, "");
297
+ };
298
+
299
+ // src/utils/schemaTools.ts
300
+ var _dayjs = require('dayjs'); var _dayjs2 = _interopRequireDefault(_dayjs);
301
+ var _zod = require('zod');
302
+ var schemaTools = {
303
+ // Date validations
304
+ date: ({ message } = {}) => _zod.z.coerce.string().transform((c) => c === "null" || c === "undefined" ? null : c).refine((c) => !!c, { message: message || "Date is required" }).refine((c) => c ? _dayjs2.default.call(void 0, c).isValid() : true, {
305
+ message: message || "Invalid date"
306
+ }),
307
+ nullableDate: ({ message } = {}) => _zod.z.coerce.string().transform((c) => c === "null" ? null : c).transform((c) => c === "undefined" ? null : c).refine((c) => !c && c !== null ? _dayjs2.default.call(void 0, c).isValid() : true, {
308
+ message: message || "Invalid date"
309
+ }),
310
+ dateRange: ({ message } = {}) => _zod.z.object({
311
+ start: _zod.z.coerce.date(),
312
+ end: _zod.z.coerce.date()
313
+ }).refine((data) => data.start <= data.end, {
314
+ message: message || "Start date must be before or equal to end date"
315
+ }),
316
+ // String validations
317
+ requiredString: ({ message, min, max } = {}) => _zod.z.string().trim().min(min || 1, message || `String must be at least ${min || 1} characters`).max(max || 255, message || `String must be at most ${max || 255} characters`),
318
+ email: ({ message } = {}) => _zod.z.string().email(message || "Invalid email address").max(254, "Email must be at most 254 characters"),
319
+ url: ({ message } = {}) => _zod.z.string().url(message || "Invalid URL format"),
320
+ phone: ({ message } = {}) => _zod.z.string().regex(/^[+]?[1-9][\d]{0,15}$/, message || "Invalid phone number format"),
321
+ alphanumeric: ({ message } = {}) => _zod.z.string().regex(/^[a-zA-Z0-9]+$/, message || "Only letters and numbers are allowed"),
322
+ slug: ({ message } = {}) => _zod.z.string().regex(/^[a-z0-9]+(?:-[a-z0-9]+)*$/, message || "Invalid slug format"),
323
+ // Number validations
324
+ positiveNumber: ({ message, min, max } = {}) => _zod.z.number().positive(message || "Number must be positive").min(min || 0.01, `Number must be at least ${min || 0.01}`).max(max || Number.MAX_SAFE_INTEGER, `Number must be at most ${max || Number.MAX_SAFE_INTEGER}`),
325
+ nonNegativeNumber: ({ message, max } = {}) => _zod.z.number().min(0, message || "Number must be non-negative").max(max || Number.MAX_SAFE_INTEGER, `Number must be at most ${max || Number.MAX_SAFE_INTEGER}`),
326
+ integer: ({ message, min, max } = {}) => _zod.z.number().int(message || "Must be an integer").min(min || Number.MIN_SAFE_INTEGER, `Number must be at least ${min || Number.MIN_SAFE_INTEGER}`).max(max || Number.MAX_SAFE_INTEGER, `Number must be at most ${max || Number.MAX_SAFE_INTEGER}`),
327
+ percentage: ({ message } = {}) => _zod.z.number().min(0, message || "Percentage must be between 0 and 100").max(100, message || "Percentage must be between 0 and 100"),
328
+ // Array validations
329
+ nonEmptyArray: (schema, { message } = {}) => _zod.z.array(schema).min(1, message || "At least one item is required"),
330
+ uniqueArray: (schema, { message } = {}) => _zod.z.array(schema).refine((items) => new Set(items).size === items.length, {
331
+ message: message || "All items must be unique"
332
+ }),
333
+ // Boolean validations
334
+ requiredBoolean: ({ message } = {}) => _zod.z.boolean({
335
+ message: message || "This field is required"
336
+ }),
337
+ // Object validations
338
+ nonEmptyObject: (schema, { message } = {}) => schema.refine((obj) => Object.keys(obj).length > 0, {
339
+ message: message || "Object cannot be empty"
340
+ }),
341
+ // File validations
342
+ fileSize: ({ maxSize, message }) => _zod.z.instanceof(File).refine((file) => file.size <= maxSize, {
343
+ message: message || `File size must be less than ${Math.round(maxSize / 1024 / 1024)}MB`
344
+ }),
345
+ fileType: ({ allowedTypes, message }) => _zod.z.instanceof(File).refine((file) => allowedTypes.includes(file.type), {
346
+ message: message || `File type must be one of: ${allowedTypes.join(", ")}`
347
+ }),
348
+ // Custom validators
349
+ conditional: (condition, trueSchema, falseSchema) => _zod.z.union([trueSchema, falseSchema]).superRefine((data, ctx) => {
350
+ const shouldUseTrue = condition(data);
351
+ const schema = shouldUseTrue ? trueSchema : falseSchema;
352
+ const result = schema.safeParse(data);
353
+ if (!result.success) {
354
+ ctx.addIssue({
355
+ code: _zod.z.ZodIssueCode.custom,
356
+ message: result.error.message
357
+ });
358
+ }
359
+ }),
360
+ transform: {
361
+ toLowerCase: _zod.z.string().transform((val) => val.toLowerCase()),
362
+ toUpperCase: _zod.z.string().transform((val) => val.toUpperCase()),
363
+ trim: _zod.z.string().transform((val) => val.trim()),
364
+ toNumber: _zod.z.string().transform((val) => Number(val)),
365
+ toBoolean: _zod.z.string().transform((val) => val === "true"),
366
+ parseJson: (schema) => _zod.z.string().transform((val, ctx) => {
367
+ try {
368
+ const parsed = JSON.parse(val);
369
+ const result = schema.safeParse(parsed);
370
+ if (result.success) return result.data;
371
+ ctx.addIssue({
372
+ code: _zod.z.ZodIssueCode.custom,
373
+ message: result.error.message
374
+ });
375
+ return _zod.z.NEVER;
376
+ } catch (e) {
377
+ ctx.addIssue({
378
+ code: _zod.z.ZodIssueCode.custom,
379
+ message: "Invalid JSON"
380
+ });
381
+ return _zod.z.NEVER;
382
+ }
383
+ })
384
+ }
385
+ };
386
+
387
+ // src/utils/typeGuards.ts
388
+ function isRecord(value) {
389
+ return typeof value === "object" && value !== null && !Array.isArray(value);
390
+ }
391
+ function hasProperty(obj, key) {
392
+ return isRecord(obj) && key in obj;
393
+ }
394
+ function isNonEmptyString(value) {
395
+ return typeof value === "string" && value.length > 0;
396
+ }
397
+ function isArray2(value) {
398
+ return Array.isArray(value);
399
+ }
400
+ function isNonEmptyArray(value) {
401
+ return Array.isArray(value) && value.length > 0;
402
+ }
403
+ function isFunction(value) {
404
+ return typeof value === "function";
405
+ }
406
+ function isString(value) {
407
+ return typeof value === "string";
408
+ }
409
+ function isNumber(value) {
410
+ return typeof value === "number" && !isNaN(value);
411
+ }
412
+ function isBoolean(value) {
413
+ return typeof value === "boolean";
414
+ }
415
+ function isNull(value) {
416
+ return value === null;
417
+ }
418
+ function isUndefined(value) {
419
+ return value === void 0;
420
+ }
421
+ function isNullish(value) {
422
+ return value === null || value === void 0;
423
+ }
424
+ function isDefined(value) {
425
+ return value !== null && value !== void 0;
426
+ }
427
+ function isDate(value) {
428
+ return value instanceof Date && !isNaN(value.getTime());
429
+ }
430
+ function isPromise(value) {
431
+ return value instanceof Promise || isRecord(value) && typeof value.then === "function";
432
+ }
433
+ function isError(error) {
434
+ return error instanceof Error;
435
+ }
436
+ function matches(value, validator) {
437
+ return validator(value);
438
+ }
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+ exports.api = api; exports.api2 = api2; exports.flattenObjectKeys = flattenObjectKeys; exports.getTimezone = getTimezone; exports.handleServerErrors = handleServerErrors; exports.propertyExists = propertyExists; exports.removeLeadingTrailingSlashes = removeLeadingTrailingSlashes; exports.schemaTools = schemaTools; exports.isRecord = isRecord; exports.hasProperty = hasProperty; exports.isNonEmptyString = isNonEmptyString; exports.isArray = isArray2; exports.isNonEmptyArray = isNonEmptyArray; exports.isFunction = isFunction; exports.isString = isString; exports.isNumber = isNumber; exports.isBoolean = isBoolean; exports.isNull = isNull; exports.isUndefined = isUndefined; exports.isNullish = isNullish; exports.isDefined = isDefined; exports.isDate = isDate; exports.isPromise = isPromise; exports.isError = isError; exports.matches = matches;
467
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImM6XFxVdHRhbVxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFxjaHVuay1EUzUyNEw3Vy5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxJQUFJLFlBQVksRUFBRSxNQUFNLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxHQUFHO0FBQzFDLEVBQUUsTUFBTSxTQUFTLEVBQUUsTUFBTSxLQUFLLENBQUMsR0FBRyxFQUFFLE9BQU8sQ0FBQztBQUM1QyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFO0FBQ25CLElBQUksTUFBTSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDekMsSUFBSSxPQUFPO0FBQ1gsTUFBTSxPQUFPO0FBQ2IsTUFBTSxNQUFNLEVBQUUsUUFBUSxDQUFDO0FBQ3ZCLElBQUksQ0FBQztBQUNMLEVBQUUsRUFBRSxLQUFLLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxJQUFJLEdBQUcsRUFBRTtBQUN0QyxJQUFJLE1BQU0sUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3pDLElBQUksTUFBTSxLQUFLLEVBQUU7QUFDakIsTUFBTSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU07QUFDN0IsTUFBTSxLQUFLLEVBQUUsT0FBTyxDQUFDO0FBQ3JCLElBQUksQ0FBQztBQUNMLElBQUksT0FBTyxJQUFJO0FBQ2YsRUFBRTtBQUNGLEVBQUUsTUFBTSxZQUFZLEVBQUUsTUFBTSxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDM0MsRUFBRSxPQUFPLFdBQVc7QUFDcEIsQ0FBQztBQUNELElBQUksSUFBSSxFQUFFLE1BQU07QUFDaEIsRUFBRSxPQUFPLE1BQU0sTUFBTSxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUU7QUFDdEMsSUFBSSxNQUFNLGVBQWUsRUFBRTtBQUMzQixNQUFNLE9BQU8sRUFBRTtBQUNmLFFBQVEsY0FBYyxFQUFFLGtCQUFrQjtBQUMxQyxRQUFRLGFBQWEsRUFBRSxDQUFDLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0FBQ3RFLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLFFBQUE7QUFDQSxVQUFBO0FBQ0EsWUFBQTtBQUNBLFlBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsTUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsTUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0EsRUFBQTtBQUNBLElBQUE7QUFDQSxFQUFBO0FBQ0E7QUFDQSxFQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLE1BQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLE1BQUE7QUFDQSxJQUFBO0FBQ0EsRUFBQTtBQUNBLEVBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxJQUFBO0FBQ0EsSUFBQTtBQUNBLElBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxRQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsUUFBQTtBQUNBLFVBQUE7QUFDQSxVQUFBO0FBQ0EsUUFBQTtBQUNBLFFBQUE7QUFDQSxNQUFBO0FBQ0EsSUFBQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQSxFQUFBO0FBQ0E7QUFDQTtBQUNBLEVBQUE7QUFDQTtBQUNBO0FBQ0EsRUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJmaWxlIjoiQzpcXFV0dGFtXFxQcm9qZWN0c1xcR05XZWJTb2Z0LlVJXFxwYWNrYWdlc1xcdWlcXGRpc3RcXGNodW5rLURTNTI0TDdXLmNqcyIsInNvdXJjZXNDb250ZW50IjpbbnVsbF19
@@ -0,0 +1,15 @@
1
+ // src/utils/readValueAsDate.ts
2
+ function readValueAsDate(adapter, value) {
3
+ if (typeof value === "string") {
4
+ if (value === "") {
5
+ return null;
6
+ }
7
+ return adapter.utils.date(value);
8
+ }
9
+ return value;
10
+ }
11
+
12
+ export {
13
+ readValueAsDate
14
+ };
15
+ //# sourceMappingURL=data:application/json;base64,ewogICJ2ZXJzaW9uIjogMywKICAic291cmNlcyI6IFsiLi4vc3JjL3V0aWxzL3JlYWRWYWx1ZUFzRGF0ZS50cyJdLAogICJzb3VyY2VzQ29udGVudCI6IFsiaW1wb3J0IHR5cGUgeyBQaWNrZXJWYWxpZERhdGUgfSBmcm9tIFwiQG11aS94LWRhdGUtcGlja2Vyc1wiO1xuaW1wb3J0IHR5cGUgeyB1c2VMb2NhbGl6YXRpb25Db250ZXh0IH0gZnJvbSBcIkBtdWkveC1kYXRlLXBpY2tlcnMvaW50ZXJuYWxzXCI7XG5cbmV4cG9ydCBmdW5jdGlvbiByZWFkVmFsdWVBc0RhdGU8VERhdGUgZXh0ZW5kcyBQaWNrZXJWYWxpZERhdGU+KFxuICBhZGFwdGVyOiBSZXR1cm5UeXBlPHR5cGVvZiB1c2VMb2NhbGl6YXRpb25Db250ZXh0PixcbiAgdmFsdWU6IHN0cmluZyB8IG51bGwgfCBURGF0ZVxuKTogVERhdGUgfCBudWxsIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGlmICh2YWx1ZSA9PT0gXCJcIikge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIGFkYXB0ZXIudXRpbHMuZGF0ZSh2YWx1ZSkgYXMgVERhdGU7XG4gIH1cblxuICByZXR1cm4gdmFsdWU7XG59XG4iXSwKICAibWFwcGluZ3MiOiAiO0FBR08sU0FBUyxnQkFDZCxTQUNBLE9BQ2M7QUFDZCxNQUFJLE9BQU8sVUFBVSxVQUFVO0FBQzdCLFFBQUksVUFBVSxJQUFJO0FBQ2hCLGFBQU87QUFBQSxJQUNUO0FBRUEsV0FBTyxRQUFRLE1BQU0sS0FBSyxLQUFLO0FBQUEsRUFDakM7QUFFQSxTQUFPO0FBQ1Q7IiwKICAibmFtZXMiOiBbXQp9Cg==
@@ -0,0 +1,72 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }// src/types/api.ts
2
+ function isJsonObject(value) {
3
+ return typeof value === "object" && value !== null && !Array.isArray(value) && !(value instanceof FormData);
4
+ }
5
+ function isJsonArray(value) {
6
+ return Array.isArray(value);
7
+ }
8
+ function isFormData(value) {
9
+ return value instanceof FormData;
10
+ }
11
+ function isRequestBody(value) {
12
+ return isJsonObject(value) || isJsonArray(value) || isFormData(value);
13
+ }
14
+
15
+ // src/types/events.ts
16
+ function isInputChangeEvent(value) {
17
+ return typeof value === "object" && value !== null && "target" in value && typeof value.target === "object" && value.target !== null && "value" in value.target;
18
+ }
19
+ function isSelectChangeEvent(value) {
20
+ return isInputChangeEvent(value);
21
+ }
22
+ function isFormChangeEvent(value) {
23
+ return isInputChangeEvent(value) || isSelectChangeEvent(value);
24
+ }
25
+ function extractEventValue(eventOrValue, fallbackValue) {
26
+ if (isFormChangeEvent(eventOrValue)) {
27
+ return eventOrValue.target.value;
28
+ }
29
+ if (typeof eventOrValue === "object" && eventOrValue !== null && "target" in eventOrValue && typeof eventOrValue.target === "object" && eventOrValue.target !== null && "value" in eventOrValue.target) {
30
+ return eventOrValue.target.value;
31
+ }
32
+ return _nullishCoalesce(eventOrValue, () => ( fallbackValue));
33
+ }
34
+ function createEventValueExtractor() {
35
+ return (eventOrValue, directValue) => {
36
+ if (directValue !== void 0) {
37
+ return directValue;
38
+ }
39
+ return extractEventValue(eventOrValue);
40
+ };
41
+ }
42
+
43
+ // src/types/utilities.ts
44
+ function brand(value) {
45
+ return value;
46
+ }
47
+ function typedKeys(obj) {
48
+ return Object.keys(obj);
49
+ }
50
+ function typedEntries(obj) {
51
+ return Object.entries(obj);
52
+ }
53
+ function typedValues(obj) {
54
+ return Object.values(obj);
55
+ }
56
+
57
+
58
+
59
+
60
+
61
+
62
+
63
+
64
+
65
+
66
+
67
+
68
+
69
+
70
+
71
+ exports.isJsonObject = isJsonObject; exports.isJsonArray = isJsonArray; exports.isFormData = isFormData; exports.isRequestBody = isRequestBody; exports.isInputChangeEvent = isInputChangeEvent; exports.isSelectChangeEvent = isSelectChangeEvent; exports.isFormChangeEvent = isFormChangeEvent; exports.extractEventValue = extractEventValue; exports.createEventValueExtractor = createEventValueExtractor; exports.brand = brand; exports.typedKeys = typedKeys; exports.typedEntries = typedEntries; exports.typedValues = typedValues;
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImM6XFxVdHRhbVxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFxjaHVuay1HSFc3N1dJTS5janMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxTQUFTLFlBQVksQ0FBQyxLQUFLLEVBQUU7QUFDN0IsRUFBRSxPQUFPLE9BQU8sTUFBTSxJQUFJLFNBQVMsR0FBRyxNQUFNLElBQUksS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUMsTUFBTSxXQUFXLFFBQVEsQ0FBQztBQUM3RztBQUNBLFNBQVMsV0FBVyxDQUFDLEtBQUssRUFBRTtBQUM1QixFQUFFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7QUFDN0I7QUFDQSxTQUFTLFVBQVUsQ0FBQyxLQUFLLEVBQUU7QUFDM0IsRUFBRSxPQUFPLE1BQU0sV0FBVyxRQUFRO0FBQ2xDO0FBQ0EsU0FBUyxhQUFhLENBQUMsS0FBSyxFQUFFO0FBQzlCLEVBQUUsT0FBTyxZQUFZLENBQUMsS0FBSyxFQUFFLEdBQUcsV0FBVyxDQUFDLEtBQUssRUFBRSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUM7QUFDdkU7QUFDQTtBQUNBO0FBQ0EsU0FBUyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7QUFDbkMsRUFBRSxPQUFPLE9BQU8sTUFBTSxJQUFJLFNBQVMsR0FBRyxNQUFNLElBQUksS0FBSyxHQUFHLFNBQVMsR0FBRyxNQUFNLEdBQUcsT0FBTyxLQUFLLENBQUMsT0FBTyxJQUFJLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLEtBQUssR0FBRyxRQUFRLEdBQUcsS0FBSyxDQUFDLE1BQU07QUFDaks7QUFDQSxTQUFTLG1CQUFtQixDQUFDLEtBQUssRUFBRTtBQUNwQyxFQUFFLE9BQU8sa0JBQWtCLENBQUMsS0FBSyxDQUFDO0FBQ2xDO0FBQ0EsU0FBUyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUU7QUFDbEMsRUFBRSxPQUFPLGtCQUFrQixDQUFDLEtBQUssRUFBRSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQztBQUNoRTtBQUNBLFNBQVMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRTtBQUN4RCxFQUFFLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsRUFBRTtBQUN2QyxJQUFJLE9BQU8sWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLO0FBQ3BDLEVBQUU7QUFDRixFQUFFLEdBQUcsQ0FBQyxPQUFPLGFBQWEsSUFBSSxTQUFTLEdBQUcsYUFBYSxJQUFJLEtBQUssR0FBRyxTQUFTLEdBQUcsYUFBYSxHQUFHLE9BQU8sWUFBWSxDQUFDLE9BQU8sSUFBSSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sSUFBSSxLQUFLLEdBQUcsUUFBUSxHQUFHLFlBQVksQ0FBQyxNQUFNLEVBQUU7QUFDMU0sSUFBSSxPQUFPLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSztBQUNwQyxFQUFFO0FBQ0YsRUFBRSx3QkFBTyxZQUFhLFVBQUcsZUFBYTtBQUN0QztBQUNBLFNBQVMseUJBQXlCLENBQUMsRUFBRTtBQUNyQyxFQUFFLE9BQU8sQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLEdBQUc7QUFDeEMsSUFBSSxHQUFHLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQyxFQUFFO0FBQ2hDLE1BQU0sT0FBTyxXQUFXO0FBQ3hCLElBQUk7QUFDSixJQUFJLE9BQU8saUJBQWlCLENBQUMsWUFBWSxDQUFDO0FBQzFDLEVBQUUsQ0FBQztBQUNIO0FBQ0E7QUFDQTtBQUNBLFNBQVMsS0FBSyxDQUFDLEtBQUssRUFBRTtBQUN0QixFQUFFLE9BQU8sS0FBSztBQUNkO0FBQ0EsU0FBUyxTQUFTLENBQUMsR0FBRyxFQUFFO0FBQ3hCLEVBQUUsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztBQUN6QjtBQUNBLFNBQVMsWUFBWSxDQUFDLEdBQUcsRUFBRTtBQUMzQixFQUFFLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7QUFDNUI7QUFDQSxTQUFTLFdBQVcsQ0FBQyxHQUFHLEVBQUU7QUFDMUIsRUFBRSxPQUFPLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDO0FBQzNCO0FBQ0E7QUFDQTtBQUNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0YsOGdCQUFDIiwiZmlsZSI6IkM6XFxVdHRhbVxcUHJvamVjdHNcXEdOV2ViU29mdC5VSVxccGFja2FnZXNcXHVpXFxkaXN0XFxjaHVuay1HSFc3N1dJTS5janMiLCJzb3VyY2VzQ29udGVudCI6W251bGxdfQ==